Pub Date : 1994-09-20DOI: 10.1109/KBSE.1994.342684
Gordon Kotik, L. Markosian
We demonstrate REFINE Language Tools, a family of interactive, extensible software evaluation and reengineering tools. We also demonstrate applications of REFINE Language Tools to software quality assurance. These applications were built using Software Refinery and the REFINE Language Tools' application programmer's interface. REFINE Language Tools provide functionality for evaluating and reengineering code in Ada, C, COBOL and FORTRAN. Each REFINE Language Tool has an extensive application programmer's interface (API) for building customizations. REFINE Language Tools use an intuitive X Window System-based graphical user interface.<>
我们展示了REFINE Language Tools,这是一系列交互式、可扩展的软件评估和再工程工具。我们还演示了REFINE语言工具在软件质量保证方面的应用。这些应用程序是使用Software Refinery和REFINE Language Tools的应用程序程序员接口构建的。REFINE Language Tools提供了用Ada、C、COBOL和FORTRAN评估和重新设计代码的功能。每个REFINE Language Tool都有一个用于构建定制的广泛的应用程序程序员接口(API)。REFINE Language Tools使用直观的基于X窗口系统的图形用户界面
{"title":"Application of REFINE Language Tools to software quality assurance","authors":"Gordon Kotik, L. Markosian","doi":"10.1109/KBSE.1994.342684","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342684","url":null,"abstract":"We demonstrate REFINE Language Tools, a family of interactive, extensible software evaluation and reengineering tools. We also demonstrate applications of REFINE Language Tools to software quality assurance. These applications were built using Software Refinery and the REFINE Language Tools' application programmer's interface. REFINE Language Tools provide functionality for evaluating and reengineering code in Ada, C, COBOL and FORTRAN. Each REFINE Language Tool has an extensive application programmer's interface (API) for building customizations. REFINE Language Tools use an intuitive X Window System-based graphical user interface.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116399636","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342674
J. Jeng, B. Cheng
Using formal specifications to represent software components facilitates tire determination of reusability because they more precisely characterize the functionality of the software, and the well-defined syntax makes processing amenable to automation. This paper presents an approach, based on formal methods, to the modification of reusable software components. From a two-tiered hierarchy of reusable software components, the existing components that are more general than the query specification are retrieved from the hierarchy. The specification for a more general retrieved component is compared to the query specification to determine what changes need to be applied to the corresponding program component in order to make it satisfy the query specification. This paper also describes an approach for assisting in the modification of more general components and gives an example to demonstrate its use.<>
{"title":"A formal approach to reusing more general components","authors":"J. Jeng, B. Cheng","doi":"10.1109/KBSE.1994.342674","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342674","url":null,"abstract":"Using formal specifications to represent software components facilitates tire determination of reusability because they more precisely characterize the functionality of the software, and the well-defined syntax makes processing amenable to automation. This paper presents an approach, based on formal methods, to the modification of reusable software components. From a two-tiered hierarchy of reusable software components, the existing components that are more general than the query specification are retrieved from the hierarchy. The specification for a more general retrieved component is compared to the query specification to determine what changes need to be applied to the corresponding program component in order to make it satisfy the query specification. This paper also describes an approach for assisting in the modification of more general components and gives an example to demonstrate its use.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124374968","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342678
M. Lowry, A. Philpot, T. Pressburger, Ian Underwood
This paper describes a formal approach to domain-oriented software design environments, based on declarative domain theories, formal specifications, and deductive program synthesis. A declarative domain theory defines the semantics of a domain-oriented specification language and its relationship to implementation-level subroutines. Formal specification development and reuse is made accessible to users through an intuitive graphical interface that guides them in creating diagrams denoting formal specifications. Deductive program synthesis ensures that specifications are correctly implemented. This approach has been implemented in AMPHION, a generic KBSE system that targets scientific subroutine libraries. AMPHION has been applied to the domain of solar system kinematics. AMPHION enables space scientists to develop, modify, and reuse specifications an order of magnitude more rapidly than manual program development. Program synthesis is efficient and completely automatic.<>
{"title":"A formal approach to domain-oriented software design environments","authors":"M. Lowry, A. Philpot, T. Pressburger, Ian Underwood","doi":"10.1109/KBSE.1994.342678","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342678","url":null,"abstract":"This paper describes a formal approach to domain-oriented software design environments, based on declarative domain theories, formal specifications, and deductive program synthesis. A declarative domain theory defines the semantics of a domain-oriented specification language and its relationship to implementation-level subroutines. Formal specification development and reuse is made accessible to users through an intuitive graphical interface that guides them in creating diagrams denoting formal specifications. Deductive program synthesis ensures that specifications are correctly implemented. This approach has been implemented in AMPHION, a generic KBSE system that targets scientific subroutine libraries. AMPHION has been applied to the domain of solar system kinematics. AMPHION enables space scientists to develop, modify, and reuse specifications an order of magnitude more rapidly than manual program development. Program synthesis is efficient and completely automatic.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124899699","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342676
R. Hall
Validating the specification of a reactive system, such as a telephone switching system, traffic controller, or automated network service, is difficult, primarily because it is extremely hard even to state a complete and correct set of requirements, let alone to prove that a specification satisfies them. A previous paper, R.J. Hall(1993), described a new validation proof technique, sound scenario generalization, which computes and proves a general validation lemma from a specific requirement-scenario and a candidate specification. That paper left open how the user should employ the technique to systematically validate a complete system. This paper describes an approach, based on a novel knowledge structure called a library of generalized scenario fragments, that combines the advantages of traditional software testing and automated theorem proving of specifications, avoiding most of their shortcomings. I also describe preliminary experience with ISAT-VA, a prototype of such an assistant.<>
{"title":"Systematic incremental validation of rule-based reactive systems","authors":"R. Hall","doi":"10.1109/KBSE.1994.342676","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342676","url":null,"abstract":"Validating the specification of a reactive system, such as a telephone switching system, traffic controller, or automated network service, is difficult, primarily because it is extremely hard even to state a complete and correct set of requirements, let alone to prove that a specification satisfies them. A previous paper, R.J. Hall(1993), described a new validation proof technique, sound scenario generalization, which computes and proves a general validation lemma from a specific requirement-scenario and a candidate specification. That paper left open how the user should employ the technique to systematically validate a complete system. This paper describes an approach, based on a novel knowledge structure called a library of generalized scenario fragments, that combines the advantages of traditional software testing and automated theorem proving of specifications, avoiding most of their shortcomings. I also describe preliminary experience with ISAT-VA, a prototype of such an assistant.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128783376","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342681
Andreas Girgensohn, D. Redmiles, Frank M. Shipman
Research in knowledge-based software engineering has led to advances in the ability to specify and automatically generate software. Advances in the support of upstream activities have focussed on assisting software developers. We examine the possibility of extending computer-based support in the software development process to allow end users to participate, providing feedback directly to developers. The approach uses the notion of "agents" developed in artificial intelligence research and concepts of participatory design. Namely, agents monitor end users working with prototype systems and report mismatches between developers' expectations and a system's actual usage. At the same time, the agents provide end users with an opportunity to communicate with developers, either synchronously or asynchronously. The use of agents is based on actual software development experiences.<>
{"title":"Agent-based support for communication between developers and users in software design","authors":"Andreas Girgensohn, D. Redmiles, Frank M. Shipman","doi":"10.1109/KBSE.1994.342681","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342681","url":null,"abstract":"Research in knowledge-based software engineering has led to advances in the ability to specify and automatically generate software. Advances in the support of upstream activities have focussed on assisting software developers. We examine the possibility of extending computer-based support in the software development process to allow end users to participate, providing feedback directly to developers. The approach uses the notion of \"agents\" developed in artificial intelligence research and concepts of participatory design. Namely, agents monitor end users working with prototype systems and report mismatches between developers' expectations and a system's actual usage. At the same time, the agents provide end users with an opportunity to communicate with developers, either synchronously or asynchronously. The use of agents is based on actual software development experiences.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125736084","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342677
J. Chilenski, P. Newcomb
This paper describes a prototype software tool that supports analyses for 21 structural coverage criteria. Formal techniques were developed for axiomatizing Ada and translating the path expressions of subprogram bodies into conjunctive normal form for use in a resolution-refutation theorem prover to determine feasibility. Coverage specifications were combined with feasible path construct a minimal specifications. These methods proved effective for small subprograms written in a restricted subset of the Ada language. This work laid the groundwork for subsequent research into automating test generation and coverage determination. Directions for future research are outlined and briefly discussed.<>
{"title":"Formal specification tools for test coverage analysis","authors":"J. Chilenski, P. Newcomb","doi":"10.1109/KBSE.1994.342677","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342677","url":null,"abstract":"This paper describes a prototype software tool that supports analyses for 21 structural coverage criteria. Formal techniques were developed for axiomatizing Ada and translating the path expressions of subprogram bodies into conjunctive normal form for use in a resolution-refutation theorem prover to determine feasibility. Coverage specifications were combined with feasible path construct a minimal specifications. These methods proved effective for small subprograms written in a restricted subset of the Ada language. This work laid the groundwork for subsequent research into automating test generation and coverage determination. Directions for future research are outlined and briefly discussed.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128132879","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342679
G. S. Novak
The ability to combine separate reusable software components to form a complete program is necessary for effective software reuse. Views provide a clean, flexible, and efficient mechanism for combining reusable software components. A view describes how an application data type implements features of an abstract type; it provides a bidirectional mapping between a generic concept and a particular implementation of that concept. Parameterizing a generic procedure by means of views allows a single copy of the procedure to be specialized for a variety of application data types and target languages. Both composition of views and multiple views of the same data as different abstract types are often required. Automated support makes it easy to create views and to generate specialized code for an application in a desired target language. These techniques have been implemented. Examples are presented that illustrate combination of components through views to specialize a generic procedure and to instantiate a software framework.<>
{"title":"Composing reusable software components through views","authors":"G. S. Novak","doi":"10.1109/KBSE.1994.342679","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342679","url":null,"abstract":"The ability to combine separate reusable software components to form a complete program is necessary for effective software reuse. Views provide a clean, flexible, and efficient mechanism for combining reusable software components. A view describes how an application data type implements features of an abstract type; it provides a bidirectional mapping between a generic concept and a particular implementation of that concept. Parameterizing a generic procedure by means of views allows a single copy of the procedure to be specialized for a variety of application data types and target languages. Both composition of views and multiple views of the same data as different abstract types are often required. Automated support makes it easy to create views and to generate specialized code for an application in a desired target language. These techniques have been implemented. Examples are presented that illustrate combination of components through views to specialize a generic procedure and to instantiate a software framework.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"159 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130687645","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342670
A. Quilici, David N. Chin
The large size and high-percentage of domain-specific code in most legacy systems makes it unlikely that automated understanding tools will be able to completely understand them. Yet automated tools can clearly recognize portions of the design. That suggests exploring environments in which programmer and system work together to understand legacy software. This paper describes such an environment that supports programmer and system cooperating to extract an object-oriented design from legacy software systems. It combines an automated program understanding component that recognizes standard implementations of domain independent plans with with a structured notebook that the programmer uses to link object-oriented design primitives to arbitrary source code fragments. This jointly extracted information is used to support conceptual queries about the program's code and design.<>
{"title":"A cooperative program understanding environment","authors":"A. Quilici, David N. Chin","doi":"10.1109/KBSE.1994.342670","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342670","url":null,"abstract":"The large size and high-percentage of domain-specific code in most legacy systems makes it unlikely that automated understanding tools will be able to completely understand them. Yet automated tools can clearly recognize portions of the design. That suggests exploring environments in which programmer and system work together to understand legacy software. This paper describes such an environment that supports programmer and system cooperating to extract an object-oriented design from legacy software systems. It combines an automated program understanding component that recognizes standard implementations of domain independent plans with with a structured notebook that the programmer uses to link object-oriented design primitives to arbitrary source code fragments. This jointly extracted information is used to support conceptual queries about the program's code and design.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124926613","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342685
M. Lowry, A. Philpot, T. Pressburger, Ian Underwood
AMPHION is a generic architecture that is specialized to a particular domain and subroutine library through a domain theory and domain-specific theorem-proving tactics. This paper discusses AMPHION-NAIF, the application of AMPHION to the domain of solar system kinematics as implemented in the SPICELIB subroutine library. The Navigation Ancillary Information Facility (NAIF) at NASA's Jet Propulsion Laboratory (JPL) is charged with developing software to support the planetary science community in planning and analyzing the observation geometries of solar system bodies in interplanetary scientific missions. The objective of SPICELIB is to enable end-users in the planetary science community to construct their own application programs.<>
{"title":"AMPHION: automatic programming for subroutine libraries","authors":"M. Lowry, A. Philpot, T. Pressburger, Ian Underwood","doi":"10.1109/KBSE.1994.342685","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342685","url":null,"abstract":"AMPHION is a generic architecture that is specialized to a particular domain and subroutine library through a domain theory and domain-specific theorem-proving tactics. This paper discusses AMPHION-NAIF, the application of AMPHION to the domain of solar system kinematics as implemented in the SPICELIB subroutine library. The Navigation Ancillary Information Facility (NAIF) at NASA's Jet Propulsion Laboratory (JPL) is charged with developing software to support the planetary science community in planning and analyzing the observation geometries of solar system bodies in interplanetary scientific missions. The objective of SPICELIB is to enable end-users in the planetary science community to construct their own application programs.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123155121","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 : 1994-09-20DOI: 10.1109/KBSE.1994.342680
S. Minton, S. Wolfe
This paper describes how machine learning techniques are used in the MULTI-TAC system to specialize generic algorithm schemas for particular problem classes. MULTI-TAC is a program synthesis system that generates Lisp code to solve combinatorial integer constraint satisfaction problems. The use of algorithm schemas enables machine learning techniques to be applied in a very focused manner. These learning techniques enable the system to be sensitive to the distribution of instances that the system is expected to encounter. We describe two applications of machine learning in MULTI-TAC. The system learns domain specific heuristics, and then learns the most effective combination of heuristics on the training instances. We also describe empirical results that reinforce the viability of our approach.<>
{"title":"Using machine learning to synthesize search programs","authors":"S. Minton, S. Wolfe","doi":"10.1109/KBSE.1994.342680","DOIUrl":"https://doi.org/10.1109/KBSE.1994.342680","url":null,"abstract":"This paper describes how machine learning techniques are used in the MULTI-TAC system to specialize generic algorithm schemas for particular problem classes. MULTI-TAC is a program synthesis system that generates Lisp code to solve combinatorial integer constraint satisfaction problems. The use of algorithm schemas enables machine learning techniques to be applied in a very focused manner. These learning techniques enable the system to be sensitive to the distribution of instances that the system is expected to encounter. We describe two applications of machine learning in MULTI-TAC. The system learns domain specific heuristics, and then learns the most effective combination of heuristics on the training instances. We also describe empirical results that reinforce the viability of our approach.<<ETX>>","PeriodicalId":412417,"journal":{"name":"Proceedings KBSE '94. Ninth Knowledge-Based Software Engineering Conference","volume":"81 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127752020","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}