Aspect oriented technologies enable concerns like concurrency or security to be coded in separate units. This paper suggests that relevant system properties can be verified just based on such separated code. A simple experience is reported for showing how the proposed approach works.
{"title":"An experience on verification of aspect properties","authors":"G. Denaro, Mattia Monga","doi":"10.1145/602461.602506","DOIUrl":"https://doi.org/10.1145/602461.602506","url":null,"abstract":"Aspect oriented technologies enable concerns like concurrency or security to be coded in separate units. This paper suggests that relevant system properties can be verified just based on such separated code. A simple experience is reported for showing how the proposed approach works.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"172 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116390168","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}
We analyze two trends that have influenced the evolvability of component-based applications: increase of component exchangeability and increase of component distance. Exchangeability mechanisms can be classified either as code reuse or as service reuse. Component distance can vary from file scope to Internet scope. We discuss the various stages of evolvability in these dimensions, describe the state of the art, and speculate on future developments.
{"title":"The evolution of software evolvability","authors":"Chris Lüer, David S. Rosenblum, A. Hoek","doi":"10.1145/602461.602490","DOIUrl":"https://doi.org/10.1145/602461.602490","url":null,"abstract":"We analyze two trends that have influenced the evolvability of component-based applications: increase of component exchangeability and increase of component distance. Exchangeability mechanisms can be classified either as code reuse or as service reuse. Component distance can vary from file scope to Internet scope. We discuss the various stages of evolvability in these dimensions, describe the state of the art, and speculate on future developments.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115258090","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}
Though significant amount of work has been done so far, software evolution problem is still a challenge. It is not only due to the inherent difficulty of changing complex objects such as software, but also it comes from the fact that evolution activities are not performed properly. In this paper, aiming at establishing a sound and scientific basis for software evolution, we propose a general framework of software evolution. It is based on the concept of evolutionary domains and evolutionary development between them. We consider that this will serve as a reference model of software evolution and can be used for evaluating, assessing and guiding evolution activities.
{"title":"Evolutionary domains: a basis for sound software evolution","authors":"T. Katayama","doi":"10.1145/602461.602484","DOIUrl":"https://doi.org/10.1145/602461.602484","url":null,"abstract":"Though significant amount of work has been done so far, software evolution problem is still a challenge. It is not only due to the inherent difficulty of changing complex objects such as software, but also it comes from the fact that evolution activities are not performed properly. In this paper, aiming at establishing a sound and scientific basis for software evolution, we propose a general framework of software evolution. It is based on the concept of evolutionary domains and evolutionary development between them. We consider that this will serve as a reference model of software evolution and can be used for evaluating, assessing and guiding evolution activities.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130340540","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}
In a software system, dynamic adaptability is the ability for dynamic adaptation on runtime environments. A software system with dynamic adaptability can adapt itself to the changes of runtime environments by changing its own behavior in dynamic & flexible way. Such dynamic adaptability can be considered as a basic mechanism of software evolution. We have proposed a software model with dynamic adaptability named DAS and its description language named LEAD++. In this paper, we consider about safety issues on dynamic adaptability of component-based software systems and propose an improved DAS model named Safe DAS. The safety means that adaptable behavior of component-based software systems does not violate their consistency. The Safe DAS model supports exceptions & assertions mechanisms, atomicity & serialization of adaptable behavior and a unique mechanism named dynamic assertions.
{"title":"Towards constructing component-based software systems with safe dynamic adaptability","authors":"N. Amano, Takuo Watanabe","doi":"10.1145/602461.602504","DOIUrl":"https://doi.org/10.1145/602461.602504","url":null,"abstract":"In a software system, dynamic adaptability is the ability for dynamic adaptation on runtime environments. A software system with dynamic adaptability can adapt itself to the changes of runtime environments by changing its own behavior in dynamic & flexible way. Such dynamic adaptability can be considered as a basic mechanism of software evolution. We have proposed a software model with dynamic adaptability named DAS and its description language named LEAD++. In this paper, we consider about safety issues on dynamic adaptability of component-based software systems and propose an improved DAS model named Safe DAS. The safety means that adaptable behavior of component-based software systems does not violate their consistency. The Safe DAS model supports exceptions & assertions mechanisms, atomicity & serialization of adaptable behavior and a unique mechanism named dynamic assertions.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114630891","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}
Software evolution is a challenging issue. For example, how do we judge whether one kind of structure supports evolution better than another kind of structure without comparing them in a fairly controlled way? In this paper we claim that certain aspects of software evolution should be evaluated in controlled experiments with first students, and then professionals, as subjects. Although we may have to compromise on longevity (due to enormous costs), we may observe cause-effect relationships in experiments that cannot be identified in case studies. We describe various challenges of conducting such experiments. We illustrate these issues by a controlled experiment on changeability decay conducted with students and a planned, more realistic extension with mostly software professionals as subjects.
{"title":"Conducting experiments on software evolution","authors":"Dag I.K. Sjøberg, E. Arisholm, M. Jørgensen","doi":"10.1145/602461.602493","DOIUrl":"https://doi.org/10.1145/602461.602493","url":null,"abstract":"Software evolution is a challenging issue. For example, how do we judge whether one kind of structure supports evolution better than another kind of structure without comparing them in a fairly controlled way? In this paper we claim that certain aspects of software evolution should be evaluated in controlled experiments with first students, and then professionals, as subjects. Although we may have to compromise on longevity (due to enormous costs), we may observe cause-effect relationships in experiments that cannot be identified in case studies. We describe various challenges of conducting such experiments. We illustrate these issues by a controlled experiment on changeability decay conducted with students and a planned, more realistic extension with mostly software professionals as subjects.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117076531","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}
This article discusses continuous and discontinuous evolutions across multiple products lines of software systems. As an empirical study, we analyzed the evolution of mobile phone software systems, which have undergone an extremely fast evolution from voice communication systems through mobile Internet terminals, to mobile Javaenabled terminals for the last four years. Along with the evolution, the software systems created three product lines and the size has quadrupled. This article discusses aspects of such extremely fast evolution and reveals continuity and discontinuity of software evolution. We claim that discontinuity is essential aspect of software evolution and taming discontinuous evolution is the challenge in the evolutionary development of software systems.
{"title":"Continuous and discontinuous software evolution: aspects of software evolution across multiple product lines","authors":"M. Aoyama","doi":"10.1145/602461.602477","DOIUrl":"https://doi.org/10.1145/602461.602477","url":null,"abstract":"This article discusses continuous and discontinuous evolutions across multiple products lines of software systems. As an empirical study, we analyzed the evolution of mobile phone software systems, which have undergone an extremely fast evolution from voice communication systems through mobile Internet terminals, to mobile Javaenabled terminals for the last four years. Along with the evolution, the software systems created three product lines and the size has quadrupled. This article discusses aspects of such extremely fast evolution and reveals continuity and discontinuity of software evolution. We claim that discontinuity is essential aspect of software evolution and taming discontinuous evolution is the challenge in the evolutionary development of software systems.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125781139","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}
After briefly discussing the meaning of the term evolution in the context of software, its technology, the software process and related domains, the paper describes some of the facets and implications of the evolution phenomenon as identified during many years of active interest in the topic, most recently during the FEAST (Feedback, Evolution And Software Technology) projects.
{"title":"Evolution in software and related areas","authors":"M. Lehman, J. Fernández-Ramil","doi":"10.1145/602461.602463","DOIUrl":"https://doi.org/10.1145/602461.602463","url":null,"abstract":"After briefly discussing the meaning of the term evolution in the context of software, its technology, the software process and related domains, the paper describes some of the facets and implications of the evolution phenomenon as identified during many years of active interest in the topic, most recently during the FEAST (Feedback, Evolution And Software Technology) projects.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114260470","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}
Software evolution is a phase in the software lifecycle where major changes in software are made. Incremental change adds new functionality to software and is one of the key principles of software evolution. This paper presents a methodology for incremental change and a case study of a small application written in Java. Domain concepts play a key role.
{"title":"Role of concepts in software evolution","authors":"V. Rajlich","doi":"10.1145/602461.602474","DOIUrl":"https://doi.org/10.1145/602461.602474","url":null,"abstract":"Software evolution is a phase in the software lifecycle where major changes in software are made. Incremental change adds new functionality to software and is one of the key principles of software evolution. This paper presents a methodology for incremental change and a case study of a small application written in Java. Domain concepts play a key role.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124977903","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}
There is a constant need for practical, efficient and cost-effective software evolution techniques. We propose a novel evolution methodology that integrates the concepts of features and component-based software engineering (CBSE). We collect information about a legacy system's features through interviews with key developers, users of the system and analyzing the existing regression test cases. We found that regression test cases are untapped resources, as far as information about system features is concerned. By exercising each feature with their associated test cases using code profilers and similar tools, we are able to locate code that we can refactor to create components. These components are then inserted back into the legacy system, ensuring a working system structure. Our methodology has three parts, part one addresses identification of features using regression test cases, part two addresses refractoring and creation of components and part three measures the results of evolution.
{"title":"Evolving legacy systems features using regression test cases and components","authors":"A. Mehta, G. Heineman","doi":"10.1145/602461.602507","DOIUrl":"https://doi.org/10.1145/602461.602507","url":null,"abstract":"There is a constant need for practical, efficient and cost-effective software evolution techniques. We propose a novel evolution methodology that integrates the concepts of features and component-based software engineering (CBSE). We collect information about a legacy system's features through interviews with key developers, users of the system and analyzing the existing regression test cases. We found that regression test cases are untapped resources, as far as information about system features is concerned. By exercising each feature with their associated test cases using code profilers and similar tools, we are able to locate code that we can refactor to create components. These components are then inserted back into the legacy system, ensuring a working system structure. Our methodology has three parts, part one addresses identification of features using regression test cases, part two addresses refractoring and creation of components and part three measures the results of evolution.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131095957","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}
Adaptation of software systems is almost an inevitable process, due to the change in customer requirements, needs for faster development of new, or maintenance of existing, software systems, etc. No doubt numerous techniques have been developed to deal with adaptation of software systems. In this paper we present an overview of some of these techniques. As the first step in the development of software solution it is our opinion that software architecture should itself be adaptable for the final software system to be adaptable. In order to systematically support adaptation at the architectural level, this paper adapts the NFR (Non-Functional Requirements) Framework and treats software adaptability requirement as a goal to be achieved during development. Through this adaptation, then, consideration of design alternatives, analysis of tradeoffs and rationalization of design decisions are all carried out in relation to the stated goals, and captured in historical records. This NFR approach can also be adapted to a knowledge-based approach for (semi-)automatically generating architectures for adaptable software systems and we also discuss how this can be achieved.
{"title":"Software architecture adaptability: an NFR approach","authors":"N. Subramanian, L. Chung","doi":"10.1145/602461.602470","DOIUrl":"https://doi.org/10.1145/602461.602470","url":null,"abstract":"Adaptation of software systems is almost an inevitable process, due to the change in customer requirements, needs for faster development of new, or maintenance of existing, software systems, etc. No doubt numerous techniques have been developed to deal with adaptation of software systems. In this paper we present an overview of some of these techniques. As the first step in the development of software solution it is our opinion that software architecture should itself be adaptable for the final software system to be adaptable. In order to systematically support adaptation at the architectural level, this paper adapts the NFR (Non-Functional Requirements) Framework and treats software adaptability requirement as a goal to be achieved during development. Through this adaptation, then, consideration of design alternatives, analysis of tradeoffs and rationalization of design decisions are all carried out in relation to the stated goals, and captured in historical records. This NFR approach can also be adapted to a knowledge-based approach for (semi-)automatically generating architectures for adaptable software systems and we also discuss how this can be achieved.","PeriodicalId":321820,"journal":{"name":"International Workshop on Principles of Software Evolution","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123877490","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}