{"title":"A compositional approach for constructing connectors","authors":"Bridget Spitznagel, D. Garlan","doi":"10.1109/WICSA.2001.948424","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948424","url":null,"abstract":"Increasingly, systems are composed from independently developed parts, and mechanisms that allow those parts to interact (connectors). In many situations, specialized forms of interaction are needed to bridge component mismatches or to achieve extra-functional properties (e.g., security, performance, reliability), making the design and implementation of these interaction mechanisms a critical issue. Unfortunately, system developers have few options: they must live with available, but often inadequate, generic support for interaction (such as RPC), or they must handcraft specialized mechanisms at great cost. The authors describe a partial solution to this problem, whereby interaction mechanisms are constructed compositionally. Specifically, we describe a set of operators that can transform generic communication mechanisms (such as RPC and publish-subscribe) to incrementally add new capabilities. We show how these transformations can be used to realize complex interactions (such as Kerberized RPC) and to generate implementations of the new connector types at relatively low cost.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122309745","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Layers, decisions, patterns, styles, and architectures","authors":"R. Schwanke","doi":"10.1109/WICSA.2001.948423","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948423","url":null,"abstract":"The pattern-composition diagram and the attribute/decision graph summarize an architecture and its rationale, respectively. The paper introduces, defines, and discusses these notations, with an example of a reference architecture for a broad class of real-time systems. The design patterns organizing the infrastructure of the example system would be highly recommended for most large systems today, and are therefore nominated as \"foundational architectural patterns\".","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131944124","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"SPIN-ning software architectures: a method for exploring complex systems","authors":"C. Kloukinas, V. Issarny","doi":"10.1109/WICSA.2001.948409","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948409","url":null,"abstract":"When designing complex software systems that provide multiple non-functional properties, it is usual to try to reuse (and finally compose) simpler existing designs, which deal with each of these properties in solitude. The paper describes a method for automatically and quickly identifying all the different ways one can compose such designs, with the aid of a model checker.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122206244","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"On the notion of variability in software product lines","authors":"J. V. Gurp, J. Bosch, Mikael Svahnberg","doi":"10.1109/WICSA.2001.948406","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948406","url":null,"abstract":"The authors discuss the notion of variability. We have experienced that this concept has so far been underdefined, although we have observed that variability techniques become increasingly important. A clear indication of this trend is the recent emergence of software product lines. Software product lines are large, industrial software systems intended to specialize into specific software products. The authors provide a framework of terminology and concepts regarding variability. In addition, they present three recurring patterns of variability. Finally, they suggest a method for managing variability in software product lines.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116921680","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Focus: a light-weight, incremental approach to software architecture recovery and evolution","authors":"Lei Ding, N. Medvidović","doi":"10.1109/WICSA.2001.948429","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948429","url":null,"abstract":"During the past decade (1991-2001), object-orientation (OO) has become the dominant software development methodology, accompanied by a number of modeling notations, programming languages, and development environments. OO applications of today are increasingly complex and user driven. They are also developed more rapidly and evolved more frequently than was the case with software systems of the past. All of these factors contribute to a plethora of potential problems when maintaining and evolving an OO application. These problems are caused by architectural erosion, where the initial architecture of an application is (arbitrarily) modified to the point where its key properties no longer hold. We propose an approach, called Focus, whose goal is to enable effective evolution of such an application with minimal effort, by recovering its architecture and using it as the basis of evolution. Focus allows engineers to direct their primary attention to the part of the system that is directly impacted by the desired change; subsequent changes will incrementally uncover additional parts of the system's architecture. We have applied Focus to four off-the-shelf applications to date. We discuss its key strengths and point out several open issues that will frame our future work.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"20 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131600722","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Detecting architectural mismatches in process algebraic descriptions of software systems","authors":"M. Bernardo, P. Ciancarini, L. Donatiello","doi":"10.1109/WICSA.2001.948411","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948411","url":null,"abstract":"Formalizing the description of software systems helps to detect the presence of architectural mismatches that can arise when assembling software components together. The authors identify three causes of architectural mismatches: incompatibility between two components due to a single interaction, incompatibility between two components due to the combination of several interactions, and lack of interoperability among a set of components forming a cyclic topology. We then show how to deal with all of them within a uniform, process algebraic framework. We begin with the first two causes by strengthening a previously defined architectural compatibility check based on observational equivalences, in order to achieve a deadlock freedom result for the set of components interacting via a certain connection. We subsequently concentrate on the third cause by defining a novel architectural interoperability check based on observational equivalences, which guarantees absence of deadlock within a set of interacting components forming a cyclic topology. We finally assess the adequacy of our architectural interoperability check by applying it to the description of a cruise control system.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122255500","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Collaboration-based design - exemplified by the Internet Session Initiation Protocol (SIP)","authors":"B. Geppert, F. Rößler","doi":"10.1109/WICSA.2001.948425","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948425","url":null,"abstract":"The concept of collaborations capturing dynamic aspects of a distributed system across agent boundaries is introduced. Some ways of composing collaborations are illustrated, with collaborations being implicitly represented as state machine fragments. The concepts are exemplified by the Internet Session Initiation Protocol (SIP) and consequences for a potential SIP implementation are discussed.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126258866","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards fault-tolerant software architectures","authors":"D. Sotirovski","doi":"10.1109/WICSA.2001.948399","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948399","url":null,"abstract":"\"Software engineering has produced no effective methods to eradicate latent software faults. \" This sentence is, of course, a stereotype, but it is as true as a stereotype can get. And yet, it begs some questions. If it is not possible to construct a large software system without residual faults, is it at least possible to construct it to degrade gracefully if and when a latent fault is encountered? This paper presents the approach adopted on CAATS (Canadian Automated Air Traffic System), and argues that OO design and certain architectural properties are the enabling elements towards a true fault-tolerant software architecture.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132319751","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A highly-extensible, XML-based architecture description language","authors":"Eric M. Dashofy, A. Hoek, R. Taylor","doi":"10.1109/WICSA.2001.948416","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948416","url":null,"abstract":"Software architecture research focuses on models of software architectures as specified in architecture description languages (ADLs). As research progresses in specific areas of software architectures, more and more architectural information is created. Ideally, this information can be stored in the model. An extensible modeling language is crucial to experimenting with and building tools for novel modeling constructs that arise from evolving research. Traditional ADLs typically support a small set of modeling constructs very well, but adapt to others poorly. XML provides an ideal platform upon which to develop an extensible modeling language for software architectures. Previous XML-based ADLs successfully leveraged XML's large base of off-the-shelf tool support, but did not take advantage of its extensibility. To give software architecture researchers more freedom to explore new possibilities and modeling techniques, while maximizing reuse of tools and modeling constructs, we have developed xADL 2.0, a highly extensible XML-based ADL. xADL 2.0 supports run-time and design time modeling, architecture configuration management and model-based system instantiation. Additionally, xADL 2.0 has a set of extensible infrastructure tools that support the creation, manipulation, and sharing of xADL 2.0 documents.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126990805","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Techniques for independent deployment to build product populations","authors":"R. van Ommering","doi":"10.1109/WICSA.2001.948407","DOIUrl":"https://doi.org/10.1109/WICSA.2001.948407","url":null,"abstract":"When building small product families, software should be shared between different members of the family, but the software can still be created as one system (with variation points) with a single architecture. For large and diverse product families (product populations), the software can no longer be developed in one context and at one moment in time. Instead, one must combine software components of which the development is separated in space and in time, each with their own evolution path. In other words, we need independent deployment of components. We discuss four aspects of independent deployment. Two of these aspects: upward and downward compatibility, deal with variation in time. The other two: reusability and portability, deal with variation in space. For each aspect, we indicate the relevance, provide some examples, and list several techniques to deal with it. The paper can thus be seen as a guide for product population development.","PeriodicalId":339670,"journal":{"name":"Proceedings Working IEEE/IFIP Conference on Software Architecture","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125460642","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}