ISR Subtitle Bar

Home  |   People  |   Research  |   Publications  |   Tech Transition  |   Events  |   Partnerships  |   About ISR  |   Contact Us


Towards Analyzing Non-functional Requirements in Software Architectures

Student: Lihua Xu, UCI/ISR


Advisor: Debra J. Richardson, UCI/ISR and Hadar Ziv, UCI/ICS

Abstract: Functional requirements (FRs) capture the intended behavior of the system, in terms of the services or tasks the system is required to perform, while non-functional requirements (NFRs) are requirements that impose restrictions on the product being developed. Despite the obvious importance and relevance of non-functional requirements, NFRs specified during requirement engineering are almost always left to be verified after the implementation is finished, which means NFRs are not mapped directly and explicitly from requirements engineering to architectural design. This leaves software development with potential exacerbation of the age-old problem of requirements errors that are not detected until very late in process. Modeling and analyzing NFRs in software architectures at least partially overcomes this deficiency.


This poster introduces our early research, which proposes a grouping mechanism, similar to the separation of concerns achieved in Aspect-Oriented Programming (AOP), to model NFRs in software architectures directly and explicitly. This eventually directs our ultimate research goal, which is to verify software architecture with respect to NFRs defined in requirements engineering. An example of how we model NFRs in software architecture is provided using the canonical KLAX example for the C2 architectural style.



Lihua Xu is a graduate student in ISR, studying with Professor Debra Richardson. Her interest relies mainly on specification-based analysis and testing. Her current project is on modeling and analyzing non-functional requirements in software architectures, where she proposes an architectural design pattern to offer a multi-dimensional view of software architecture design, and allows designer to verify the designed software architecture with respect to the non-functional requirements.