{"title":"Software evolution and 'light' semantics","authors":"D. Perry","doi":"10.1109/icse.1999.841049","DOIUrl":"https://doi.org/10.1109/icse.1999.841049","url":null,"abstract":"The motivation for Inscape came from my experience as a programmer, designer and architect. There were two major (and inter-related) problems that I encountered while building software systems where I had to use components built by other people: the pieces often did not fit when I put them together and changing code often produced surprising and unexpected results. The first problem was due primarily to the informality and often incompleteness of component interfaces. The second problem was due ultimately to the complexity of the software and an inability to foresee or determine the consequences of changes. These problems result from three essential and intertwined properties of building software systems: composition, evolution and complexity. In coming to grips with the problem of composition, using formal interface specifications is the obvious choice. Enhancing the syntactic interfaces with semantic information is one way of expressing the intent of the interface provider and enabling the user to have all the information necessary to its correct and effective use. How to attack the problem of evolution is not as obvious. The approach I took in the Inscape experiment was to use the specifications constructively in order to determine and maintain semantic dependencies. Keeping track semantically as to how the interfaces are used is the analog of expressing the interface creator's intent: it is capturing the users intent. Given that both interfaces and implementations evolve, keeping track of the dependencies enables the environment to help in understanding the effects of changes and where those effects take place.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133545805","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":"Highly reliable upgrading of components","authors":"J. Cook, Jeffrey A. Dage","doi":"10.1145/302405.302466","DOIUrl":"https://doi.org/10.1145/302405.302466","url":null,"abstract":"After a system is deployed, fixes, enhancements, and modifications all occur that change the components that make up the system. Unfortunately, new versions of components can introduce new errors and break existing, depended-upon behavior. When this happens, the old component version could have provided the correct behavior, but it is no longer part of the system. We propose a framework, HERCULES, for upgrading system components that, instead of removing the old version of the component, keeps multiple versions of a component running. Doing so allows behavior to be utilized from all versions, and maintains system integrity and correctness even in the presence of newly introduced errors. This framework ensures that the move towards dynamic, configurable software systems does not lessen, but rather provides capabilities to enhance the reliability that software will achieve through the next century.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125907095","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":"Identifying objects using cluster and concept analysis","authors":"A. Deursen, T. Kuipers","doi":"10.1145/302405.302629","DOIUrl":"https://doi.org/10.1145/302405.302629","url":null,"abstract":"Many approaches to support (semi-automatic) identification of objects in legacy code take data structures as the starting point for candidate classes. Unfortunately, legacy data structures tend to grow over time, and may contain many unrelated fields at the time of migration. We propose a method for identifying objects by semi-automatically restructuring the legacy data structures. Issues involved include the selection of record fields of interest, the identification of procedures actually dealing with such fields, and the construction of coherent groups of fields and procedures into candidate classes. We explore the use of cluster and concept analysis for the purpose of object identification, and we illustrate their effect on a 100000 LOC Cobol system. Furthermore, we use these results to contrast clustering with concept analysis techniques.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117264090","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":"Research summary for dynamic detection of program invariants","authors":"Michael D. Ernst","doi":"10.1145/302405.302992","DOIUrl":"https://doi.org/10.1145/302405.302992","url":null,"abstract":"Explicitly stated program invariants can help programmers by identifying program properties that must be preserved when modifying code; invariants also play a number of other valuable roles in program development and evolution. In practice, however, these invariants are usually implicit. An alternative to expecting programmers to fully annotate code with invariants is to automatically infer invariants from the program itself. This research aims to develop and evaluate dynamic techniques for discovering invariants from execution traces. Our hypothesis is that such techniques are effective at extracting invariants from programs and that the extracted invariants are useful to programmers. Experiments with our prototype implementation provide preliminary support for this hypothesis.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129294759","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":"WinWin: a system for negotiating requirements","authors":"E. Horowitz, J. Lee, June Sup Lee","doi":"10.1145/302405.302915","DOIUrl":"https://doi.org/10.1145/302405.302915","url":null,"abstract":"WinWin is a system that aids in the capture and recording of system requirements. It also assists in negotiation. The WinWin system has been available for several years and is being used by dozens of software development groups. In this presentation we go over the capabilities of the system and discuss how it might be used on your software development project.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123481481","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":"Modeling and analyzing software architectures","authors":"Robert T. Monroe","doi":"10.1145/302405.302960","DOIUrl":"https://doi.org/10.1145/302405.302960","url":null,"abstract":"This tutorial provides an overview of emerging approaches to architectural modeling and an in-depth treatment of selected architectural specification, analysis, and design techniques.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124445684","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":"An incremental flow- and context-sensitive pointer aliasing analysis","authors":"Jyh-Shiarn Yur, B. Ryder, W. Landi","doi":"10.1145/302405.302676","DOIUrl":"https://doi.org/10.1145/302405.302676","url":null,"abstract":"Pointer aliasing analysis is used to determine if two object names containing dereferences and/or field selectors (e.g., *P,9->t) may refer to the same location during execution. Such information is necessary for applications such as data-flow-based testers, program understanding tools, and debuggers, but is expensive to calculate with acceptable precision. Incremental algorithms update data flow information after a program change rather than recomputing it from scratch, under the assumption that the change impact will be limited. Two versions of a practical incremental pointer aliasing algorithm have been developed, based on Landi-Ryder flow- and context-sensitive alias analysis. Empirical results attest to the time savings over exhaustive analysis (a six-fold speedup on average), and the precision of the approximate solution obtained (on average same solution as exhaustive algorithm for 75% of the tests.).","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126197971","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":"Investigating quality factors in object-oriented designs: an industrial case study","authors":"L. Briand, J. Wüst, S. V. Ikonomovski, H. Lounis","doi":"10.1145/302405.302654","DOIUrl":"https://doi.org/10.1145/302405.302654","url":null,"abstract":"This paper aims at empirically exploring the relationships between most of the existing coupling and cohesion measures for object-oriented (OO) systems, and the fault-proneness of OO system classes. The underlying goal of such a study is to better understand the relationship between existing design measurement in OO systems and the quality of the software developed. The study described here is a replication of an analogous study conducted in an university environment with systems developed by students. In order to draw more general conclusions and to (dis)confirm the results obtained there, we now replicated the study using data collected on an industrial system developed by professionals. Results show that many of our findings are consistent across systems, despite the very disparate nature of the systems under study. Some of the strong dimensions captured by the measures in each data set are visible in both the university and industrial case study. For example, the frequency of method invocations appears to be the main driving factor of fault-proneness in all systems. However, there are also differences across studies which illustrate the fact that quality does not follow universal laws and that quality models must be developed locally, wherever needed.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130095998","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":"Specification, analysis, and prototyping of mobile systems","authors":"C. Mascolo","doi":"10.1145/302405.302996","DOIUrl":"https://doi.org/10.1145/302405.302996","url":null,"abstract":"Mobile code offers new strategies for the development of systems. I adopt a formal approach to study advantages, limitations, classification, and future trends of mobile code technologies.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"171 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134372307","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":"Adding more \"DL\" to IDL: towards more knowledgeable component inter-operability","authors":"Alexander Borgida, Premkumar T. Devanbu","doi":"10.1145/302405.302660","DOIUrl":"https://doi.org/10.1145/302405.302660","url":null,"abstract":"In an open component market place, interface description languages (IDLs), such as CORBA's, provide for the consumer only a weak guarantee (concerning type signatures) that a software service will work in a particular context as anticipated. Stronger guarantees, regarding the intended semantics of the service, would help, especially if formalized in a language that allowed effective, automatic and static checking of compatibility between the server and the client's service descriptions. We propose an approach based on a family of formalisms called description logics (DLs), providing three examples of the use of DLs to augment IDL: (1) for the CORBA Cos Relationship service; (2) for capturing information models described using STEP Express, the ISO standard language used in the manufacturing domain (and a basis of the OMG PDM effort); and (3) constraints involving methods. While traditional formal specification techniques are more powerful, DLs offer certain advantages: they have decidable, even efficient reasoning algorithms, yet they still excel at modeling natural domains, and are thus well-suited for specifying application and domain-specific services.","PeriodicalId":359367,"journal":{"name":"Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002)","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1999-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131020095","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}