DMCA
A Study of Semi-Automated Program Construction (1998)
Cached
Download Links
- [www.cs.queensu.ca]
- [www.cs.queensu.ca]
- [ftp.qucis.queensu.ca]
- DBLP
Other Repositories/Bibliography
Citations: | 1 - 0 self |
Citations
4017 |
Introduction to modern information retrieval
- Salton, McGill
- 1983
(Show Context)
Citation Context ... components, as well as helping the user in comprehension of the retrieved information. The Reuse Assistant takes a hybrid approach to storage and retrieval of software components: automatic indexing =-=[42]-=-, from traditional information retrieval, to capture syntactic information, and a case-based representation of components to capture the semantic knowledge. Every component in the library is indexed u... |
307 | Software reuse.
- Krueger
- 1992
(Show Context)
Citation Context ...is" still remains. The modern definition of the software crisis relates to the problem of building and maintaining large, complex, and reliable software systems in a controlled and cost effective=-= way [24, 32]-=-. Thus far, the growth of software needs has been addressed in part by the increase in the number of trained professionals. However, this trend cannot continue [25]. A proposed alternative solution to... |
269 |
Mass Produced Software Components”;
- McIlroy
- 1976
(Show Context)
Citation Context ...on behind this hybrid approach is the nature of the software itself. Software has been compared to hardware IC's and the process of software construction as the composition of the software components =-=[29]-=-. This analogy was considered de facto by most researchers until it was suggested (for example, see Software Reusability [8]) that unlike hardware components software does not wear or tear: there is n... |
194 |
Implementing faceted classification for software reuse.
- Prieto-Diaz
- 1991
(Show Context)
Citation Context ...hed by matching the specifications of program subparts in conjunction with the domain knowledge. The use of domain knowledge relaxes the reliance of the matching process on exact syntactic similarity =-=[36]-=-. The refined specification can be seen as a decomposition of original function calls into a sequence of lower-level function calls. CAESAR tries to find cases matching these function calls and upon s... |
167 |
The Draco approach to constructing software from reusable components,
- Neighbors
- 1984
(Show Context)
Citation Context ...is" still remains. The modern definition of the software crisis relates to the problem of building and maintaining large, complex, and reliable software systems in a controlled and cost effective=-= way [24, 32]-=-. Thus far, the growth of software needs has been addressed in part by the increase in the number of trained professionals. However, this trend cannot continue [25]. A proposed alternative solution to... |
126 |
Program Transformation Systems.
- Partsch, Steinbrüggen
- 1983
(Show Context)
Citation Context ... predefined collection of transformation rules called a catalog. A catalog is a hierarchically structured collection of transformation rules relevant to a particular aspect of the development process =-=[34]-=-. Catalogs may contain rules about solution strategies such as binary search, optimization rules such as recursion removal, or domain knowledge such as set operations. The goal of the transformational... |
85 | Draco: A Method for Engineering Reusable Software Components”.
- Neighbors
- 1989
(Show Context)
Citation Context ...ide replay mechanisms and also helps in a better understanding of the system [32]. However, this history is very large ---Neighbor estimates the history to be ten times the size of the resulting code =-=[33]-=---- and does not capture design rationales. The motivations and rationales are to some degree implicit in the domain where objects and operations are annotated by implementation techniques or applicab... |
81 | Kids - a knowledge-based software development system
- Smith
- 1988
(Show Context)
Citation Context ...are engineering can be viewed as the application of expert systems to the domain of software engineering [27]. There have been many efforts invested in knowledge-based software engineering (e.g. KIDS =-=[45]-=-, GLITTER [14], and DRACO [32]). There are special issues of journals and conferences that are dedicated to this topic. However, at the time of writing this paper, there has not been any comparative s... |
74 |
A 15 year perspective on automatic programming.
- Balzer
- 1985
(Show Context)
Citation Context ...oftware crisis, since the early days of computers, has been the use of automatic programming techniques. In the 1950's, a Fortran compiler was considered by many to be an automatic programming system =-=[4]-=-: high-level programs could be translated automatically into machine language. Today, even very high-level languages can hardly qualify as automatic programming systems. Automatic programming is a mov... |
67 |
1983>. "Software Technology in the 1990's: Using a New Paradigm
- BALZER, CHEATHAM, et al.
(Show Context)
Citation Context ...ecisions employed during the design process; ffl to transform a formal specification of a system into an efficient implementation. The ideas of TI were based on the automation-based software paradigm =-=[5]-=-, which influenced future projects in this area. According to this paradigm, a high-level specification can be converted to a low-level specification through an interactive transformation; the low-lev... |
67 |
Cognitive view of reuse and redesign.
- Fischer
- 1987
(Show Context)
Citation Context ...o approach focused on domain specific software systems. Hence, the underlying assumption of this approach is that numerous similar systems would be constructed over time in a given application domain =-=[15]-=-. The Draco's view of software design differs from the traditional view with respect to the notion of domain analysis. In the traditional view there are two phases in software design: the analysis pha... |
57 | Automatic programming: myths and prospects.
- Rich, Waters
- 1988
(Show Context)
Citation Context ... language. Today, even very high-level languages can hardly qualify as automatic programming systems. Automatic programming is a moving target, which reflects the increasing expectation of automation =-=[38]. The main-=- idea behind automatic programming is to translate a "specification " of a problem into an executable program with little or no intervention on the user's part. The false assumptions in this... |
52 | Program Developments: Formal Explanations of Implementations - Wile - 1983 |
45 |
Dtjh Vu: A Hierarchical Case-Based Reasoning System for Software Design.
- Smyth, Cunningham
- 1992
(Show Context)
Citation Context ...cused more on pre-existing components. Furthermore, the degree of automation provided by these systems varies depending on their domain of application. In the following subsection, we look at Deja Vu =-=[46]-=-, a task oriented program generator, PROSA [30], an experimental program synthesis system for educational purposes, CAESAR [16, 17] a semi-automatic program synthesis system that uses pre-existing pro... |
45 |
The Programmer's Apprentice: A Session with KBEmacs
- Waters
- 1985
(Show Context)
Citation Context ... not exhaustive and we focus on the chronological progress of automatic programming concepts rather than the developed systems. The Transformational Implementation [4] and the Programmer's Apprentice =-=[47]-=-, discussed in Section 2.1, have been exemplars of the semi-automatic programming paradigm, while GLITTER [48], PADDLE [14], and Draco [32] have tried to improve upon the lessons learned from these ap... |
32 | Automating the Transformational Development of Software - Fickas - 1985 |
30 |
Telos: Features and Formalization
- Koubarakis, Mylopoulos, et al.
- 1989
(Show Context)
Citation Context ...ngineering knowledge. Furthermore, new knowledge representations need to be devised to capture shortcomings of other methods mainly with respect to non-functional requirements (for example, see Telos =-=[23]-=-). In this section, I describe some AI approaches to software reuse. This study is by no means comprehensive. Instead, I have included those approaches that focus on the problem of the lost history of... |
27 |
A conceptual analysis of the draco approach to constructing software systems.
- Freeman
- 1987
(Show Context)
Citation Context ..., to reduce its reliance on the user. However, to further improve the behavior of the system, domain knowledge must be introduced into the system. This problem is partially solved by the DRACO system =-=[18]-=- which will be described in Section 2.1.3. 2.1.2 Programmer's Apperentice The Programmer's Apprentice project (PA) started in the mid 1970's with the goal of providing intelligent assistance for softw... |
24 |
On the Transformational Implementation Approach to Programming”,
- Balzer, Goldman, et al.
- 1986
(Show Context)
Citation Context ... extremely difficult to perform maintenance tasks. One of the early attempts at using the transformational paradigm for program synthesis was made by Balzer [2]. This work focused on the project SAFE =-=[6]-=-. The motivation behind this project was to acquire and validate a specification using an operational specification language, which could then Interactive Trasformation Tuning Automatic Compilation So... |
22 |
Seven layers of knowledge representation and reasoning in support of software development’,
- Rich, Feldman
- 1992
(Show Context)
Citation Context ...lays are mappings between two plans. They differ from transformations in that they are bidirectional. The underlying reasoning mechanism for plans is a multi-layer hybrid reasoning system called CAKE =-=[37]-=-. CAKE has several layers for reasoning about different aspects of plans (see Fig. 3). The bottom three layers of Overlays Plan Diagrams Frames Algebraic Reasoning Proposotional Logic General Purpose ... |
19 |
Cognitive Issues in Reusing Software Artifacts
- Curtis
- 1989
(Show Context)
Citation Context ...ed. 3.1 Knowledge Acquisition Knowledge representation is a crucial issue in semi-automatic programming systems. Software engineering is a problem solving activity and as a result knowledge intensive =-=[11]-=-. In order for a semi-automatic programming system to be able to provide assistance in the process of programming, it must reflect the knowledge of the expert. The importance of the knowledge, in turn... |
16 |
Developing domain knowledge through the reuse of project experiences,"
- Henninger
- 1995
(Show Context)
Citation Context ... software engineering, due to the diverse computational needs, is no longer a homogeneous field: the knowledge of the domain of application plays a crucial role in the success of software engineering =-=[20, 21]-=-. For the reasons mentioned above, a new approach to software engineering has evolved: knowledge-based software engineering [27]. The idea behind knowledge-based software engineering is that programme... |
15 | Software Engineering
- Lowry
- 1992
(Show Context)
Citation Context ...ions of semi-automatic programming systems. 2 Semi-Automated Programming Systems There have been many studies done on the applications of AI techniques to software engineering (for example, see Lowry =-=[26]-=-). More and more, researchers and practitioners try to find ways to employ AI to achieve the goals of higher reliability and shorter design time in software engineering in general and software reuse i... |
13 |
A case-based approach to software reuse
- Fouqué, Matwin
- 1993
(Show Context)
Citation Context ...r domain of application. In the following subsection, we look at Deja Vu [46], a task oriented program generator, PROSA [30], an experimental program synthesis system for educational purposes, CAESAR =-=[16, 17]-=- a semi-automatic program synthesis system that uses pre-existing programs from a well-defined application domain to generate new programs, and finally we study the Reuse Assistant [13], which focuses... |
10 |
Program Refinement by Transformation
- Cheatham, Holloway, et al.
- 1979
(Show Context)
Citation Context ...ion systems were manual; the designer had to select a transformation and apply it. More ambitious systems later on attempted to fully automate the transformational process. As an example consider PSI =-=[10]-=-, which starts with an abstract algorithm and automatically refines it to an executable program. Due to the narrow domain of application for a fully automated system on one end and the lack of any for... |
10 |
KIDS: A Semi-automated Program Development System
- Smith
- 1990
(Show Context)
Citation Context ... full automation. The newer systems attempted to include a knowledge-base in their systems to provide support in the decision making process. Further, the commercially available systems, such as KIDS =-=[44]-=- from Kestrel Institute, were built on top of available knowledge-bases. The next section presents three semi-automated approaches. First, the Transformational Implementation paradigm is studied, whic... |
8 |
Formalizing Reusable Software Components in the Programmer's Apprentice
- Rich, Waters
- 1989
(Show Context)
Citation Context ...ed in Section 2.1.3. 2.1.2 Programmer's Apperentice The Programmer's Apprentice project (PA) started in the mid 1970's with the goal of providing intelligent assistance for software engineering tasks =-=[47, 39, 40]-=-. The idea behind the intelligent assistance was the IBM's Chief Programmer 's Team approach [7]. In the chief programmer's team approach, a chief programmer is supported by a group of junior programm... |
6 |
An Overview of the
- Waters
- 2013
(Show Context)
Citation Context ...ed in Section 2.1.3. 2.1.2 Programmer's Apperentice The Programmer's Apprentice project (PA) started in the mid 1970's with the goal of providing intelligent assistance for software engineering tasks =-=[47, 39, 40]-=-. The idea behind the intelligent assistance was the IBM's Chief Programmer 's Team approach [7]. In the chief programmer's team approach, a chief programmer is supported by a group of junior programm... |
6 |
Managing design knowledge to provide assistance to large-scale software development
- Selfridge, Terveen, et al.
- 1992
(Show Context)
Citation Context ...tion. The software evolution has become a significant issue in software engineering and as Balzer [5] foresaw in the early 1980's and further realized in the 1990's (for example, see Selfridge et al. =-=[43]-=-), software development is indeed an ongoing evolution process. Lastly, the domain analysis is more and more becoming a determining success in software engineering [1]. The semi-automated systems are ... |
6 | Implementing Faceted Classi cation For Software Reuse - Prieto-Diaz - 1991 |
5 |
A Global View of Automatic Programming
- Balzer
- 1973
(Show Context)
Citation Context ... capture knowledge about software systems. 2.1.1 Transformational Implementation The program transformation paradigm has been studied as a means of program synthesis since the early 1970's (e.g. SAFE =-=[2]-=-, TI [4], PADDLE [48]). The basic idea behind this paradigm is to apply a set of transformations to a formal specification of a system to produce an efficient implementation. The process of transforma... |
5 |
knowledge representation and reasoning in software development
- Borgida, Jarke
- 1992
(Show Context)
Citation Context ...s trend stems from the thought that in order to solve difficult problems using computers, one will generally have to use a great deal of domain specific knowledge rather than a few general principles =-=[9]-=-. To be able to use this knowledge automatically, or semi-automatically, it must be represented in some manner inside the computer. Some of the existing knowledge representations used in main stream A... |
4 |
Finding the right tool for the job
- Henninger, Lappala
- 1994
(Show Context)
Citation Context ... software engineering, due to the diverse computational needs, is no longer a homogeneous field: the knowledge of the domain of application plays a crucial role in the success of software engineering =-=[20, 21]-=-. For the reasons mentioned above, a new approach to software engineering has evolved: knowledge-based software engineering [27]. The idea behind knowledge-based software engineering is that programme... |
3 | CAESAR: a system for CAse basEd SoftwAre Reuse - Fouque, Matwin - 1992 |
3 |
Software engineering: Report on a conference by the NATO science committee. NATO Scienti c A airs Division
- Nauer, Randell
- 1968
(Show Context)
Citation Context ...aters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 i 1 Introduction The term "Software Engineering" was supposedly first introduced at the 1968 NATO software engineering c=-=onference [31], the theme of which-=- was the "software crisis." From that date, computer applications have grown in number, size, and complexity but the "crisis" still remains. The modern definition of the software c... |
2 |
Final report on GIST
- Balzer
- 1981
(Show Context)
Citation Context ...mation rules, either to replace specification constructs or to simplify algorithmic constructs. A side benefit of the TI project was the development of a high-level specification language called GIST =-=[3]-=-. GIST was developed to provide the flexibility and ease of expression needed for describing acceptable system behaviors. Furthermore, GIST is a wide spectrum language: it is not only a specification ... |
2 |
A transformational approach to modification
- Darlington, Feather
- 1980
(Show Context)
Citation Context ...Simplify the resulting program. This development process is based on the observation that a formal structure representing the transformation of a specification can partially be replayed automatically =-=[12]-=-. However, having only the explanations is not sufficient to enable the replay of the development process accurately [48]. The PADDLE system does not record the rationales, motivations, and assumption... |
2 |
Case-based retrieval of software components
- Fernandez-Chamizo, Gonzalez-Calero, et al.
- 1995
(Show Context)
Citation Context ...es, CAESAR [16, 17] a semi-automatic program synthesis system that uses pre-existing programs from a well-defined application domain to generate new programs, and finally we study the Reuse Assistant =-=[13]-=-, which focuses on the retrieval of classes from commercially available class libraries. 2.2.1 Deja Vu Deja Vu [46] is a case-based reasoning system for constructing software for a task oriented appli... |
2 |
A knowledge base for code reuse by similarity
- MacKellar, Maryanski
- 1989
(Show Context)
Citation Context ...community in applying case-based reasoning to compositional software reuse. One of the earliest attempts to apply case-based reasoning to software construction was outlined by MacKellar and Maryauski =-=[28]. Their wo-=-rk focused on the construction of a knowledge base for code reuse called WharfRat. WharfRat was limited to retrieval of "data types," which are structured definitions of the data and the ope... |
2 | Learning in the Large: Case-Based Software Systems Design - Rubin - 1991 |
1 | Educating knowledge-based software engineers - Bailor - 1992 |
1 |
Chief programmer team management
- Barker
- 1972
(Show Context)
Citation Context ...he mid 1970's with the goal of providing intelligent assistance for software engineering tasks [47, 39, 40]. The idea behind the intelligent assistance was the IBM's Chief Programmer 's Team approach =-=[7]-=-. In the chief programmer's team approach, a chief programmer is supported by a group of junior programmers (apprentices) . The chief programmer makes the difficult decisions and performs the high-lev... |
1 |
Case-Based Reasoning
- Kolondner
- 1993
(Show Context)
Citation Context ...ER [14]. An alternative approach uses case-based reasoning. The fundamental idea of case-based reasoning is that problem solvers use their previous experiences -- called cases-- to solve new problems =-=[22]-=-. Cases are semi-formal representations of individual instances of problem solving knowledge which can be reused to solve new problems. The main tasks involved in case-based reasoning are abstraction,... |
1 |
Program synthesis using case based reasoning
- Mendiz, Fernandez-Chazimo, et al.
- 1992
(Show Context)
Citation Context ...ore, the degree of automation provided by these systems varies depending on their domain of application. In the following subsection, we look at Deja Vu [46], a task oriented program generator, PROSA =-=[30]-=-, an experimental program synthesis system for educational purposes, CAESAR [16, 17] a semi-automatic program synthesis system that uses pre-existing programs from a well-defined application domain to... |
1 |
Classification of software modules
- Prieto-Diaz
- 1987
(Show Context)
Citation Context ... not trivial and are among the main focuses of research in case-based reasoning. Case-based reasoning has a striking resemblance to the compositional software reuse approach as defined by Prieto-Diaz =-=[35]-=-. As a result, in recent years, there has been a growing interest in the research community in applying case-based reasoning to compositional software reuse. One of the earliest attempts to apply case... |
1 | Program re nement by transformation - Cheatham, Holloway, et al. - 1981 |
1 | A transformational approach to modi cation - Darlington, Feather - 1979 |
1 | Knowledge, Skill and Arti cial Intelligence - Goranzon, Josefson - 1988 |
1 | Classi cation of software modules - Prieto-Diaz - 1987 |
1 | KIDS {aknowledge-based software development system - Smith - 1991 |