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.
For further information, please contact Andrea Caracciolo