KASE: An Integrated Environment for Software Design

Software design consists of determining a high-level organization of a system that meets a given problem specification. We present a prototype system called KASE (Knowledge Assisted Software Engineering) that helps system analysts and designers design and redesign software systems. The KASE environment provides knowledge representation and reasoning tools to integrate knowledge about general software design principles, prototypical software architectures, and application domain. Unlike CASE tools and module interconnection languages that represent the structure of a software system without its semantics, the goal of KASE is to integrate both the structure and the semantics of software modules and to provide active assistance in the design of systems. We illustrate the design process in KASE through an example, focusing on the ability of KASE to provide a co-operative man-machine design environment.

[1]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[2]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

[3]  Richard C. Waters The Programmer's Apprentice: A Session with KBEmacs , 1985, IEEE Transactions on Software Engineering.

[4]  B. Chandrasekaran,et al.  Generic Tasks in Knowledge-Based Reasoning: High-Level Building Blocks for Expert System Design , 1986, IEEE Expert.

[5]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[6]  Robert Balzer,et al.  On the inevitable intertwining of specification and implementation , 1982, CACM.

[7]  James Martin,et al.  Structured Techniques: The Basis for Case , 1988 .

[8]  James M. Neighbors,et al.  The Draco Approach to Constructing Software from Reusable Components , 1984, IEEE Transactions on Software Engineering.

[9]  Gary S. Kahn,et al.  The Mud System , 1986, IEEE Expert.

[10]  Bruce Delagi,et al.  An Experiment in Knowledge-based Signal Understanding Using Parallel Architectures , 1986 .

[11]  Michael L. Begeman,et al.  gIBIS: A tool for all reasons , 1989, JASIS.

[12]  Raymonde Guindon,et al.  Requirements and design of DesignVision and object-oriented graphical interface to an intelligent software design assistant , 1992, CHI.

[13]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .

[14]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[15]  David Lorge Parnas,et al.  A rational design process: How and why to fake it , 1986, IEEE Transactions on Software Engineering.

[16]  D. Corkill Blackboard Systems , 1991 .

[17]  Barr and Feigenbaum Edward A. Avron,et al.  The Handbook of Artificial Intelligence , 1981 .

[18]  David C. Brown,et al.  Design Problem Solving: Knowledge Structures and Control Strategies , 1989 .

[19]  Michael R. Lowry,et al.  Automating software design , 1989, Digest of Papers. COMPCON Spring 89. Thirty-Fourth IEEE Computer Society International Conference: Intellectual Leverage.

[20]  Edward A. Feigenbaum,et al.  Signal-to-Symbol Transformation: HASP/SIAP Case Study , 1982, AI Mag..

[21]  Raymonde Guindon,et al.  Knowledge Exploited by Experts during Software System Design , 1990, Int. J. Man Mach. Stud..

[22]  Martin S. Feather,et al.  Using Evolution Transformations to Construct Specifications , 1991 .

[23]  Mehdi T. Harandi,et al.  Synthesizing UNIX Shell Scripts Using Derivational Analogy: An Empirical Assessment , 1991, AAAI.

[24]  Rubén Prieto-Díaz,et al.  Software reusability , 1993 .

[25]  M. D. Lubars,et al.  Addressing software reuse through knowledge-based design , 1989 .

[26]  Henson Graves Lockheed Environment For Automatic Programming , 1991, Proceedings., 6th Annual Knowledge-Based Software Engineering Conference.

[27]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .