Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972707
Anthony Cox, C. Clarke
Source code repositories best support program, comprehension tasks when they can successfully answer the many questions a maintainer conceives. To provide the flexibility needed to answer these questions, the Jupiter repository system has been developed. Jupiter using Maia, a model based on annotations, indices and attributes, can store any of the syntactic, type and flow information extractable from a program. Jupiter's query language, Mercury, formed by merging an existing query language with Scheme, is used to access the repository and manipulate query solutions. Together these components provide a foundation on which to build systems for solving the queries that occur during program comprehension.
{"title":"Representing and accessing extracted information","authors":"Anthony Cox, C. Clarke","doi":"10.1109/ICSM.2001.972707","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972707","url":null,"abstract":"Source code repositories best support program, comprehension tasks when they can successfully answer the many questions a maintainer conceives. To provide the flexibility needed to answer these questions, the Jupiter repository system has been developed. Jupiter using Maia, a model based on annotations, indices and attributes, can store any of the syntactic, type and flow information extractable from a program. Jupiter's query language, Mercury, formed by merging an existing query language with Scheme, is used to access the repository and manipulate query solutions. Together these components provide a foundation on which to build systems for solving the queries that occur during program comprehension.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124946324","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972786
Jianjun Zhao, Jingde Cheng, K. Ushijima
The authors propose a program dependence model for concurrent logic programs. They present three types of primary program dependences named the sharing dependence, communication dependence, and unification dependence between arguments in a concurrent logic program. We formally define these primary program dependences based on mode information. We further present a dependence-based representation named the argument dependence net (ADN), which explicitly represents all primary program dependences between arguments in a concurrent logic program. We also discuss some applications of the ADN for developing software engineering tools of concurrent logic programs. Finally, we briefly introduce a program analysis system called CLPKIDS for concurrent logic programs, which is a prototype implementation of the techniques introduced.
{"title":"A program dependence model for concurrent logic programs and its applications","authors":"Jianjun Zhao, Jingde Cheng, K. Ushijima","doi":"10.1109/ICSM.2001.972786","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972786","url":null,"abstract":"The authors propose a program dependence model for concurrent logic programs. They present three types of primary program dependences named the sharing dependence, communication dependence, and unification dependence between arguments in a concurrent logic program. We formally define these primary program dependences based on mode information. We further present a dependence-based representation named the argument dependence net (ADN), which explicitly represents all primary program dependences between arguments in a concurrent logic program. We also discuss some applications of the ADN for developing software engineering tools of concurrent logic programs. Finally, we briefly introduce a program analysis system called CLPKIDS for concurrent logic programs, which is a prototype implementation of the techniques introduced.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115974963","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972788
David Byers, Mariam Kamkar, Ture Pålsson
Most software analysis and assessment techniques operate on graph representations of the target software. One of the most common representations is the Program Dependence Graph in one of its many variations. The Value Dependence Graph is an alternative that is more suitable for many types of analyses, including static slicing and many code transformations, such as instruction scheduling and invariant analysis. The authors present a new algorithm that builds Value Dependence Graphs from the parse tree of a program. By generating the Value Dependence Graph from the parse tree, our algorithm is significantly simpler and clearer than previously published algorithms.
{"title":"Syntax-directed construction of Value Dependence Graphs","authors":"David Byers, Mariam Kamkar, Ture Pålsson","doi":"10.1109/ICSM.2001.972788","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972788","url":null,"abstract":"Most software analysis and assessment techniques operate on graph representations of the target software. One of the most common representations is the Program Dependence Graph in one of its many variations. The Value Dependence Graph is an alternative that is more suitable for many types of analyses, including static slicing and many code transformations, such as instruction scheduling and invariant analysis. The authors present a new algorithm that builds Value Dependence Graphs from the parse tree of a program. By generating the Value Dependence Graph from the parse tree, our algorithm is significantly simpler and clearer than previously published algorithms.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"323 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116001561","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972772
A. Rashid
The paper describes a composite evolution approach which integrates the evolution of the various types of entities in an object-oriented database into one model. The approach provides maintainers with a coherent and comprehensible view of the system and at the same time maintains change histories at a fine granularity. Links among meta-objects are implemented using dynamic relationships which are semantic constructs and first-class objects. Referential integrity is maintained by the relationships architecture reducing the evolution complexity at the meta-object level. A customisable and exchangeable instance adaptation approach is proposed. The approach is based on separating the instance adaptation code from class versions using aspects, abstractions used in Aspect-Oriented Programming to localise crosscutting concerns. A high level object-oriented model offering transparent access to the proposed evolution functionality is provided.
{"title":"A database evolution approach for object-oriented databases","authors":"A. Rashid","doi":"10.1109/ICSM.2001.972772","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972772","url":null,"abstract":"The paper describes a composite evolution approach which integrates the evolution of the various types of entities in an object-oriented database into one model. The approach provides maintainers with a coherent and comprehensible view of the system and at the same time maintains change histories at a fine granularity. Links among meta-objects are implemented using dynamic relationships which are semantic constructs and first-class objects. Referential integrity is maintained by the relationships architecture reducing the evolution complexity at the meta-object level. A customisable and exchangeable instance adaptation approach is proposed. The approach is based on separating the instance adaptation code from class versions using aspects, abstractions used in Aspect-Oriented Programming to localise crosscutting concerns. A high level object-oriented model offering transparent access to the proposed evolution functionality is provided.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"163 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122863659","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972716
Siegfried Göschl
GEOS (Global Entity Order System) is a mainframe-based financial software system developed for straight-through real-time processing of securities and derivatives transactions. It consists of 6000 KLOC written in C and is accessed by a C++ front-end. In 1999 it was decided to extend the functionality to online stock brokerage with multiple front-ends such as a Java Swing client, HTML browser or WAP-enabled device. Due to its size and complexity, enhancing the mainframe system beyond its original design scope is difficult and might decrease its reliability. Consequently, the new functionality was moved into a satellite system (SDS Internet Banking), considering the mainframe system a black box. The online stock brokerage extension was implemented as a distributed system using JAVA, CORBA, Servlet API, JSP and XML.
GEOS (Global Entity Order System)是一个基于大型机的金融软件系统,用于直接实时处理证券和衍生品交易。它由用C编写的6000个KLOC组成,并由c++前端访问。1999年,它决定将该功能扩展到在线股票经纪,使用多个前端,如Java Swing客户端、HTML浏览器或支持wap的设备。由于主机系统的规模和复杂性,在其原始设计范围之外进行增强是困难的,并且可能会降低其可靠性。因此,将新功能转移到卫星系统(SDS Internet Banking)中,将大型机系统视为黑盒子。该在线股票经纪扩展是使用JAVA、CORBA、Servlet API、JSP和XML实现的分布式系统。
{"title":"SDS Internet Banking","authors":"Siegfried Göschl","doi":"10.1109/ICSM.2001.972716","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972716","url":null,"abstract":"GEOS (Global Entity Order System) is a mainframe-based financial software system developed for straight-through real-time processing of securities and derivatives transactions. It consists of 6000 KLOC written in C and is accessed by a C++ front-end. In 1999 it was decided to extend the functionality to online stock brokerage with multiple front-ends such as a Java Swing client, HTML browser or WAP-enabled device. Due to its size and complexity, enhancing the mainframe system beyond its original design scope is difficult and might decrease its reliability. Consequently, the new functionality was moved into a satellite system (SDS Internet Banking), considering the mainframe system a black box. The online stock brokerage extension was implemented as a distributed system using JAVA, CORBA, Servlet API, JSP and XML.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"1995 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131162891","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972759
T. Otani, Yoshikazu Yamamoto
The construction of systems for network management (NMS) is based on software components (hereunder referred to as "components"). Two types of component are used to build NMS: off-the-shelf components for general use, and customized components designed for a specific operator. However user requirements may also change after the user starts to use the NMS, and some components may be inadequate for these new requirements. In this paper, we propose components that enable functions provided by off-the-shelf components to be customized after NMS construction. We call these components RevCompo. RevCompo components intercept messages transmitted from or sent to an off-the-shelf component providing the functions to be customized. The RevCompo component in question then adds new data and/or procedures externally, or removes functions provided by the off-the-shelf component. Consequently, it is not necessary to change an off-the-shelf component in order to customize its function if RevCompo is installed. RevCompo makes it easier to satisfy user requirements when there are changes or modifications after the NMS construction stage.
{"title":"A customization method for network management functions without modification of off-the-shelf components","authors":"T. Otani, Yoshikazu Yamamoto","doi":"10.1109/ICSM.2001.972759","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972759","url":null,"abstract":"The construction of systems for network management (NMS) is based on software components (hereunder referred to as \"components\"). Two types of component are used to build NMS: off-the-shelf components for general use, and customized components designed for a specific operator. However user requirements may also change after the user starts to use the NMS, and some components may be inadequate for these new requirements. In this paper, we propose components that enable functions provided by off-the-shelf components to be customized after NMS construction. We call these components RevCompo. RevCompo components intercept messages transmitted from or sent to an off-the-shelf component providing the functions to be customized. The RevCompo component in question then adds new data and/or procedures externally, or removes functions provided by the off-the-shelf component. Consequently, it is not necessary to change an off-the-shelf component in order to customize its function if RevCompo is installed. RevCompo makes it easier to satisfy user requirements when there are changes or modifications after the NMS construction stage.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116667197","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}
Pub Date : 2001-11-07DOI: 10.1109/ICSM.2001.972730
H. Sneed
SoftAnal and SoftRepo are tools developed to provide repository services to a Viennese software house-Software Data Service-that has developed a series of financial service software systems now in the evolution phase. Repository services include automated software measurement, automated code inspection, automated post-documentation, automated generation of test cases, impact analysis, evolution project estimation and software structure visualization.
{"title":"Object-oriented repository services","authors":"H. Sneed","doi":"10.1109/ICSM.2001.972730","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972730","url":null,"abstract":"SoftAnal and SoftRepo are tools developed to provide repository services to a Viennese software house-Software Data Service-that has developed a series of financial service software systems now in the evolution phase. Repository services include automated software measurement, automated code inspection, automated post-documentation, automated generation of test cases, impact analysis, evolution project estimation and software structure visualization.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126488689","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}
Pub Date : 2001-03-14DOI: 10.1109/ICSM.2001.972768
N. Gold
Software maintenance is typically the most expensive part of the software lifecycle, with program comprehension forming the most costly part of software maintenance. This paper outlines a method for assisting program comprehension by addressing the concept assignment problem. The method, termed Hypothesis-Based Concept Assignment, uses informal information contained within source code to reason plausibly about the concepts contained within the code. An extensive evaluation has shown that the method can accurately recognise concepts in a range of real-world programs.
{"title":"Hypothesis-based concept assignment to support software maintenance","authors":"N. Gold","doi":"10.1109/ICSM.2001.972768","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972768","url":null,"abstract":"Software maintenance is typically the most expensive part of the software lifecycle, with program comprehension forming the most costly part of software maintenance. This paper outlines a method for assisting program comprehension by addressing the concept assignment problem. The method, termed Hypothesis-Based Concept Assignment, uses informal information contained within source code to reason plausibly about the concepts contained within the code. An extensive evaluation has shown that the method can accurately recognise concepts in a range of real-world programs.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"92 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-03-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124551240","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}
Pub Date : 1900-01-01DOI: 10.1109/ICSM.2001.972703
K. Bennett, V. Rajlich
The aim of the panel session is to clarify issues involved in software evolution, but more particularly, to identify and explore promising solutions and research directions, in order to identify strategic goals for the research community and solution visions for practitioners. By evolution, we mean a stage of software lifecycle where the software undergoes substantial changes and this also includes iterative software development and/or agile software processes. Evolution methodology In broad terms, two types of solution are emerging as promising ways forward. The first may be termed anticipatory, and is based on the idea that processes and product evolution can both be planned, and preparation made for changes before they actually occur. This is the traditional view of the waterfall lifecycle and software engineering textbooks. The second is termed reactive, and offers a much more opportunistic view: that software change is too unpredictable to be planned, and we must put in place the right mechanisms to make changes when and as they are demanded. In both cases, there is increasing empirical evidence available from real-world software maintenance projects to inform the debate. Also in both cases, we have radically different perspectives of the software lifecycle that is employed. Speed of evolution Ultimately, we must meet the demands and needs of our users, who are increasingly demanding faster time to market as the key competitive edge. So we must accomplish evolutionary software change, not in the months or weeks that have been the norm, but in days or, better, hours. Businesses involved in the Internet are having to go constant urgent change, continually reinventing themselves to meet new challenges. This emergent organisational behaviour poses many new practical and research problems for the maintenance community. Panel format The panel will address this by inviting a team of distinguished and experienced software engineers to consider two key questions: Is the best way forward for software evolution to concentrate on the reactive or anticipatory approach? Can we attain a better understanding of evolution and meet the demands of our users, many of whom operate in emergent organisations and need very rapid software changes?
{"title":"Software evolution: a road map","authors":"K. Bennett, V. Rajlich","doi":"10.1109/ICSM.2001.972703","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972703","url":null,"abstract":"The aim of the panel session is to clarify issues involved in software evolution, but more particularly, to identify and explore promising solutions and research directions, in order to identify strategic goals for the research community and solution visions for practitioners. By evolution, we mean a stage of software lifecycle where the software undergoes substantial changes and this also includes iterative software development and/or agile software processes. Evolution methodology In broad terms, two types of solution are emerging as promising ways forward. The first may be termed anticipatory, and is based on the idea that processes and product evolution can both be planned, and preparation made for changes before they actually occur. This is the traditional view of the waterfall lifecycle and software engineering textbooks. The second is termed reactive, and offers a much more opportunistic view: that software change is too unpredictable to be planned, and we must put in place the right mechanisms to make changes when and as they are demanded. In both cases, there is increasing empirical evidence available from real-world software maintenance projects to inform the debate. Also in both cases, we have radically different perspectives of the software lifecycle that is employed. Speed of evolution Ultimately, we must meet the demands and needs of our users, who are increasingly demanding faster time to market as the key competitive edge. So we must accomplish evolutionary software change, not in the months or weeks that have been the norm, but in days or, better, hours. Businesses involved in the Internet are having to go constant urgent change, continually reinventing themselves to meet new challenges. This emergent organisational behaviour poses many new practical and research problems for the maintenance community. Panel format The panel will address this by inviting a team of distinguished and experienced software engineers to consider two key questions: Is the best way forward for software evolution to concentrate on the reactive or anticipatory approach? Can we attain a better understanding of evolution and meet the demands of our users, many of whom operate in emergent organisations and need very rapid software changes?","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"12 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":"134350985","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}
Pub Date : 1900-01-01DOI: 10.1109/ICSM.2001.972737
M. Jonge, R. Monajemi
Maintenance of proprietary languages and corresponding tooling is expensive. Postponing maintenance to reduce these costs is an often applied, short-term solution which eventually may lead to an unoperational toolset. The paper describes a case study carried out in cooperation with Lucent Technologies where maintenance cost is decreased by simplifying the development process of languages and tools. The development process is simplified by using a language-centered software engineering approach which increases software reuse and language dependent code generation. The case study was concerned with Lucent's proprietary SDL dialect and involved the re-engineering of an SDL grammar and the construction of an SDL documentation generator.
{"title":"Cost-effective maintenance tools for proprietary languages","authors":"M. Jonge, R. Monajemi","doi":"10.1109/ICSM.2001.972737","DOIUrl":"https://doi.org/10.1109/ICSM.2001.972737","url":null,"abstract":"Maintenance of proprietary languages and corresponding tooling is expensive. Postponing maintenance to reduce these costs is an often applied, short-term solution which eventually may lead to an unoperational toolset. The paper describes a case study carried out in cooperation with Lucent Technologies where maintenance cost is decreased by simplifying the development process of languages and tools. The development process is simplified by using a language-centered software engineering approach which increases software reuse and language dependent code generation. The case study was concerned with Lucent's proprietary SDL dialect and involved the re-engineering of an SDL grammar and the construction of an SDL documentation generator.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"56 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":"122491921","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}