Advanced software architectures and methodologies

Research focus

The Peer review has evaluated this group as Excellent

The research activity of this group focuses on techniques, tools, frameworks for the development of complex software systems. It encompasses a variety of aspects of such systems, ranging from modeling and analysis issues in the early phases of their development, to issues related to their implementation and runtime management and optimization. The group also investigates the issues related to the economic and strategic impact of software on industry and society in general. The applications that are the focus of this research group can be characterized, in varying degrees and flavors, as distributed, pervasive, adaptive, reconfigurable, dynamic and critical. Formal languages and techniques for the modeling and verification of the target applications play a central role in the research activity of the group. Most of the research activities eventually lead to software prototypes and experimentation, and several products have been released as open packages. Yet various members of the group are committed also to methodological and theoretical investigation, which at a later time may turn into practical studies. Software Engineering for Pervasive, Distributed and Embedded Applications Software applications more and more need to integrate heterogeneous components in ways that are flexible, self-adaptable and dynamic. Advances in technology as well as new and emerging requirements, are fostering cooperation paradigms where components federate dynamically, the ownership of the different parts is distributed, and quality parameters are continuously negotiated. These applications require solid cooperation paradigms (architectural styles), powerful modeling languages, effective validation techniques and suitable underlying technologies. Regarding the communication and interaction paradigms, the group mainly targets service-based applications (such as Web services), publish/subscribe and mobile systems, while focusing on formally-based techniques for modeling and verification. As far as the enabling technology is concerned, the research group focuses on algorithms, protocols, and middleware platforms to support the development of largely distributed and highly reconfigurable applications running on dynamic environments, including peer-to-peer systems, mobile and ad-hoc networks (MANETs) and sensor netoworks. Part of the research activity also addresses the development of advanced compiler technology for improving the efficiency of program execution on parallel, distributed and embedded systems (e.g. technology enabling dynamic compilation and handling of different execution platforms, including reconfigurable hardware). Also, to facilitate the dynamical adaptability of software systems, the group studies the definition of contextualized user profiles, and the modeling of the cognitive processes involved in communication, cooperation and multimodal interaction. Safety-critical Systems An important class of applications studied by the research group consists of safety-critical systems, which have stringent requirements on quality, performance and reliability. They are often real-time distributed applications with strict constraints (e.g. avionic, industrial control, embedded systems), and their development can benefit from the use of rigorous methods in the specification, design, and verification phases. The group investigates formally-based techniques and tools for the development of safety-critical (real-time) industrial applications and novel verification methods based on sound mathematical concepts. A research activity is also devoted to the automatic generation of software performance and reliability models for mobile, component-based, embedded systems. Representation and Manipulation of Complex Information 83 Finally, this group focuses on the representation and manipulation of complex information. The contributions are in two directions. On the one hand, picture languages for syntactic pattern recognition and image compression are investigated. On the other, techniques such as computational linguistics, multimodality and virtual reality are used to design innovative and adaptable applications for users with congenital or acquired impairments. We examined special applications for learning, social life and therapy, to study software properties in critical contexts. Future plans In the next years, the research activity of the group will continue to focus on the methodological, technological and theoretical aspects underlying the development of complex, dynamic and open systems. More precisely, we will investigate self-adaptable, service-based systems, with the goal of offering coherent and sound approaches to support their design and their controlled evolution at runtime, with an emphasis on modeling and analysis. In addition, we will develop innovative models, protocols, and middleware to support communication and coordination in dynamic environments like wireless sensor networks, mobile and peer-to-peer networks. Also, communication and coordination models and protocols will be defined for computational linguistics applications. We will also develop industrial-strength, user-friendly, UML-compatible formal methods, methodologies and tools for the modeling, analysis and verification of safety-critical systems. Finally, we will focus our research on compilation and abstract computing models on parallel applications, as difficult problems on resource-constrained parallelization are currently preventing an effective exploitation of foreseeable high-performance machines and systems.

Departments

Dipartimento di Elettronica e Informazione (DEI)

Professors

Stefano Crespi Reghizzi (full professor)
Alfonso Fuggetta (full professor)
Carlo Grezzi (full professor)
Dino Mandrioli (full professor)
Angelo Morzenti (full professor)
Pierluigi San Pietro (full professor)
Luciano Baresi (associate professor)
Luca Breveglieri (associate professor)
Gianpaolo Cugola (associate professor)
Elisabetta Di Nitto (associate professor)
Licia Sbattella (associate professor)
Giovanni Agosta (assistant professor)
Raffaela Mirandola (assistant professor)
Matteo Rossi (assistant professor)