Requirements engineering
The goal of the research in requirement analysis is to provide methods and techniques for the specification and the management of the requirements of complex software systems, such as networked systems, which span over different and heterogeneous organizations or ambient assisted living solutions. Major challenges posed by this type of applications, are the diversity of users and the evolution of user needs, after the system has been deployed. Promising methods and techniques to address these issues are goal-oriented approaches for requirements modelling and analysis. Moreover, agent oriented software development and agent platforms represent an opportunity to validate innovative ideas in the field and to experiment the proposed solutions in terms of their actual realization and functioning. In detail, the work plan can be decomposed along the following research topics:
- Norm compliant systems: : Requirements of a software intensive system derive from a collection of needs arising from the user and various other stakeholders, including general organization, community and institutional body with their governing norms. We intend to develop specific methods for norm elicitation during domain analysis and for the evaluation of the impact of norms on the system requirements. A goal-oriented approach for requirements modelling is adopted. We will enhance it by providing a framework for requirement modelling that considers norms since the early requirements stage and reasoning algorithms, which exploit this explicit representation of normative concerns, at support of norms analysis.
- Self-adaptive software: The Autonomic Computing paradigm defines a set of desirable properties for complex networked software, such as self-configuration, self-optimization, self-healing and self-protection (usually referred as self-* properties). At the core of these properties is self-adaptivity, which has been defined as the ability of software of using available information about changes in its environment to improve its behavior. A control-loop based architecture has been proposed to realize self-adaptive software, which basically gives to a system the ability to sense its execution environment and to choose a behavior aiming at maximizing system availability and reliability. We intend to investigate how to design self-adaptive software and to focus on specific autonomic properties based on it, such as self-healing, which refers to the ability of predicting problems and taking actions to prevent a failure. We adopt an agent-oriented paradigm for requirements analysis and design, and Multi-agent systems (MAS) technologies, which allow to implement the control-loop architecture and to enhance it with knowledge representation and reasoning techniques (e.g. belief-desire-intention-BDI agents). The resulting framework will provide: methods for specifying design alternatives, borrowed from goal-oriented methodologies; MAS techniques (specifically, BDI agents) to execute system specifications into a simulated environment, in order to observe system behavior and to support the dynamic refinement of design artifacts using feedback from run-time behavior; traceability between design and code artifacts.
- Aspects of services: aspect oriented modelling of transversal properties and functionalities (crosscutting concerns) of service oriented software systems. For example, workflow composition can be made flexible, reusable and reconfigurable by means of an aspect oriented approach. The separation of the transversal functionalities from the principal view enables the independent definition of processes and crosscutting concerns, which can thus be added, removed or modified without any impact on the main process flow. We are interested in formalisms and languages for the separate representation of aspects of services and of service composition. We intend to develop research prototypes supporting them and allowing us to experiment the effects of aspect oriented service and composition modelling on realistic examples.
- User-centered requirements: User-centered approaches for system design, assign a key role to potential users of the system-to-be during requirements elicitation and analysis, which typically result in a reach textual documentation of the user domain. Nevertheless, no explicit model of user expectations is available for requirements analysis. Goal-oriented approaches allow to model explicitly the stakeholders of a given application domain, together with their goal and strategic dependencies for goal achievement. We intend to investigate the role of goal-oriented modeling inside a user-centered approach and to propose a methodology which exploits the advantages of both, user-centered and goal-oriented approaches, to design applications for users not aware of innovative ICT technology, such as ambient assisted living solutions.
- Requirement prioritization: Requirements prioritization aims at identifying the most important requirements for a system, a crucial step to decide which requirements to implement in each product release, taking into account budget and time constraints as well as customer expectations. A variety of methods have been proposed to help decision makers in performing this activity, some of them provide supporting tools, but they are still limited with respect to their usability in real projects with a large number of requirements and with respect to technical issues like requirements interdependencies and volatility. We developed a case-based framework for requirements prioritization, called Case-Based Ranking, which exploits machine learning techniques to overcome the scalability problem. This method reduces the acquisition effort by combining human preference elicitation and automatic preference approximation. We intend to evaluate this method against state-of-the art approaches within structured empirical studies and to extend the framework by addressing the above mentioned open issues, such as requirements interdependency.


