{"title":"Frame-based method for customizing generic software architectures","authors":"Y. C. Cheong, S. Jarzabek","doi":"10.1145/303008.303043","DOIUrl":null,"url":null,"abstract":"One way to support development and maintenance of a software system family is to design a generic software architecture for a family. A generic architecture captures requirements common to all (or most of) the family members. Then, we develop specific software systems, members of a family, by customizing a generic architecture. During customization, we address variant requirements to be met by a specific system we wish to implement. In this paper, we describe how we applied frame technology an advanced form of pre-processing to design a mechanism for customizing generic software architectures. Customization of a generic architecture involves selecting architecture components, customization of connectors and customization of components’ code. We turn architecture components and connectors into frames and map variant requirements into sequences of customization activities. The frame processor and Perl scripts automate the customization process. Our customization method can be applied to a wide range of generic architectures. It can be used together with other customization techniques such as inheritance (in Object-Oriented frameworks), table-driven techniques (in compiler-compilers) or parameterization. The overall objective of the work described in this paper is to create formal links between requirements for system families and the process of customizing a generic architecture during architecture-based system engineering. Ideally, a system engineer would define only novel requirements for a specific system (based on a domain model) and an automated engineering environment would actively guide him/her in obtaining the architecture and code for the specific system. This paper describes some of the techniques that lead towards this objective.","PeriodicalId":270366,"journal":{"name":"ACM SIGSOFT Symposium on Software Reusability","volume":"38 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"27","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGSOFT Symposium on Software Reusability","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/303008.303043","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 27
Abstract
One way to support development and maintenance of a software system family is to design a generic software architecture for a family. A generic architecture captures requirements common to all (or most of) the family members. Then, we develop specific software systems, members of a family, by customizing a generic architecture. During customization, we address variant requirements to be met by a specific system we wish to implement. In this paper, we describe how we applied frame technology an advanced form of pre-processing to design a mechanism for customizing generic software architectures. Customization of a generic architecture involves selecting architecture components, customization of connectors and customization of components’ code. We turn architecture components and connectors into frames and map variant requirements into sequences of customization activities. The frame processor and Perl scripts automate the customization process. Our customization method can be applied to a wide range of generic architectures. It can be used together with other customization techniques such as inheritance (in Object-Oriented frameworks), table-driven techniques (in compiler-compilers) or parameterization. The overall objective of the work described in this paper is to create formal links between requirements for system families and the process of customizing a generic architecture during architecture-based system engineering. Ideally, a system engineer would define only novel requirements for a specific system (based on a domain model) and an automated engineering environment would actively guide him/her in obtaining the architecture and code for the specific system. This paper describes some of the techniques that lead towards this objective.