Software architecture is designed to guarantee the fulfillment of a given set of non-functional requirements.
This is done by defining constraints on specific aspects of the implementation. Architectural constraints are commonly used in practice but have never been studied analytically.
This main goals of this project are:
- explore commonly used quality requirements: find out which types of quality requirements are defined in practice by talking to architects.
- research new ways to express quality requirements: define a notation that allows to write a readable specification of an architectural design invariants.
- reduce the cost of architectural validation: simplify the use of existing tools by making them compatible with our notation.
- monitor system evolution for compliance: actively and continuously analyze the system as it gets developed to discover inconsistencies with defined constraints.
- Empirical study: How Do Software Architects Specify and Validate Quality Requirements?, an empirical study aimed at exploring, classifying and ranking architectural constraints.
- Solution: Dictō, a DSL for expressing architectural constraints
- Evaluation: Industrial Validation, a set a case studies in which the solution was applied.
For further information, please contact Andrea Caracciolo