Faculté informatique et communications IC, Section des systèmes de communication, Institut d'informatique fondamentale IIF (Laboratoire de modélisation systémique LAMS)

Foundations of systems and properties : methodological support for modeling properties of software-intensive systems

Preiss, Otto ; Wegmann, Alain (Dir.)

Thèse sciences Ecole polytechnique fédérale de Lausanne EPFL : 2004 ; no 3013.

Ajouter à la liste personnelle
    Summary
    Engineering of software-intensive systems is concerned with the creation and evolution of systems that shall exhibit desired properties in their execution as well as development environment. In this context, the motivation of this thesis, derived from current development practice, was twofold. Firstly, software development methods are increasingly required to extend their scope of applicability towards systems engineering. As a consequence, their modeling approaches must be able to cope with a larger diversity of systems and consequently a larger diversity of properties. But these approaches still need to provide a smooth transition to software modeling. Secondly, non-functional properties, which are largely a result of this implicit systems scope, play a major role in the way we design our software-intensive systems. The conceptual aids of current development methods, however, are still less mature in their explicit support for non-functional properties compared with their ability to support functional ones. The principal objective of this thesis is to contribute toward an improved model-based treatment of non-functional properties in development methods. Because we cannot discuss properties independently of the objects they are ascribed to, this objective amounts to a progression from modeling of software and its properties to modeling of interrelated systems and their properties. To address this aim a philosophy of properties and systems is proposed. The philosophy is expressed as a holistic conceptual model of properties and/of systems. It is complemented with some basic rules, which we call tenets. Tenets formulate how we use the philosophical knowledge. The conceptual model offers the foundations for a more generalized understanding of those fundamentally different types of systems and different types of properties that are relevant in software-intensive systems engineering. The generality of our holistic model draws the benefits from our investigations in the areas of systems science, cognitive science, and basic philosophy. The model helps to scrutinize and make sense of the large amount of data in the literature about "non-functional" issues in software engineering. The model is applicable in the derivation of methodological building blocks that can be incorporated into development methods. The building blocks include (a) a general model to discover stakeholders and properties for a given system, (b) a principled manner to trace the fundamentally different types of properties through hierarchies of systems, and (c) a proposal for the representation of systems, their properties and property traces in the UML. The concrete application of the gained knowledge to software engineering results in a proposal for a context-sensitive, customizable quality attribute model. It also results in a proposal on how to structure quality descriptions of software components. In order for such descriptions to be standardized and possibly tool-automated, this thesis proposes to utilize the Reusable Asset Specification and suggests alternatives for its XML-based representation.
    Résumé
    L'ingénierie de systèmes informatisés concerne la création et l'évolution de systèmes impliquant de nombreux logiciels. Ces systèmes exhibent des propriétés à la fois dans leur environnement d'exécution et de développement. Dans ce contexte, la motivation de cette thèse, basée sur des méthodes de développement actuelles, est double. Premièrement, il y a une demande grandissante pour que les méthodes de génie logiciel soient étendues et applicables à l'ingénierie de systèmes. Pour satisfaire cette demande, les méthodes de modélisation issues du génie logiciel doivent supporter une plus grande diversité de systèmes, et par conséquent une diversité de propriétés plus grande, tout en préservant une transition aisée vers la modélisation de logiciel. Deuxièmement, les propriétés non fonctionnelles, qui résultent largement de ce cadre implicite des systèmes, jouent un rôle majeur dans la manière de concevoir les systèmes impliquant de nombreux logiciels. Cependant, les méthodes de développement actuelles n'offrent qu'une aide conceptuelle limitée pour les propriétés non fonctionnelles et bien moins mature que pour des propriétés fonctionnelles. L'objectif principal de cette thèse est de contribuer à l'amélioration du traitement des propriétés non fonctionnelles dans les méthodes de développement, en proposant une méthode systématique et basée sur des modèles. A cause de la dépendance mutuelle entre système et propriétés, cet objectif se traduit par une progression de la compréhension et de la modélisation du logiciel et de ses propriétés jusqu'à la compréhension et la modélisation de systèmes interdépendants et de leurs propriétés. Une philosophie de propriétés et de systèmes est proposée dans ce but. Cette philosophie s'exprime en termes d'un modèle conceptuel et holistique de propriétés et/de systèmes et est complétée par des principes de base qui forment nos états d'esprit. Ce modèle conceptuel donne les fondations pour une compréhension plus généralisée des types fondamentalement différents de systèmes ainsi que des différents types de propriétés, tous deux étant pertinents dans l'ingénierie de systèmes impliquant de nombreux logiciels. Ce modèle holistique est général, grâce à nos recherches dans les domaines de la science de systèmes, de la science cognitive et de la philosophie de base. Sa valeur se montre dans le support à scruter et à synthétiser une grande quantité de données trouvées dans la littérature traitant de problèmes "non fonctionnels" en génie logiciel. Son applicabilité se montre dans la définition de blocs méthodologiques fondamentaux qui peuvent être incorporés dans les méthodes de développement. Ces blocs fondamentaux incluent un modèle général qui permet de découvrir les porteurs de tutelle et les propriétés d'un système donné, une manière explicite de retrouver les propriétés fondamentalement différentes à travers des hiérarchies de systèmes, ainsi qu'une proposition pour la représentation de systèmes, de leurs propriétés et des traces de propriété en UML. L'application concrète des connaissances acquises au génie logiciel résulte en une proposition d'un modèle de qualité adaptable aux besoins de clients, dépendent du contexte, ainsi qu'en une proposition sur la manière de structurer des descriptions de qualité de composants logiciels. Pour que ces descriptions soient standardisées voire automatisées dans des outils de développement, cette thèse propose d'utiliser la spécification RAS (angl. Reusable Asset Specification) et suggère des alternatives pour sa représentation basée sur XML.