Вы находитесь на странице: 1из 6

Towards a Unified Methodology for Software Engineering and Knowledge Engineering

F. Alonso, A. de Antonio, A. L. González, J. L. Fuertes, L. Martínez Facultad de Informática Universidad Politécnica de Madrid Campus de Montegancedo 28660-Boadilla del Monte, Madrid, Spain

ABSTRACT

This paper presents a first step towards building a unified methodology for both Knowledge Engineering and Software Engineering. The idea is to combine the acquisition and conceptualisation phases of the IDEAL methodology (a Knowledge Engineering methodology) with an object-oriented design and implementation. This methodology has been successfully applied to three projects at CETTICO (Centre of Computing and Communications Technology Transfer). The paper describes the techniques used and the results obtained in developing a unified methodology.

1. INTRODUCTION

The main goal of both Knowledge Engineering (KE) and Software Engineering (SE) methodologies is to develop software systems that solve problems in almost any domain area.

Initially, the SE methodologies (structured methodologies using the waterfall model [1], [2]) solved well-defined problems that had complete specifications. As these methodologies moved on to solve more complex problems, they came up against the issue of incomplete specifications. So other life cycles and methodologies were developed, like the spiral life cycle [3], prototyping [4] and finally object-oriented methodologies, which use an iterative and incremental life cycle.

There is a large number of object-oriented methodologies, including Booch [5], OMT [6], OOSE [7], etc. The proliferation of methodologies led to a notation and process unification effort. The main results of this effort are the UML notation, developed by Booch, Rumbaugh and Jacobson [8], and the OPEN methodology, developed by Henderson-Sellers, Graham and others [9].

On the other hand, KE, that is, the discipline of building knowledge-based systems (KBS), deals with poorly defined problems: they are poorly structured, have subjective requirements, are context dependent and usually have conditions of uncertainty [10]. And these incomplete specifications change over time. Methodologies like KADS [11], CommonKADS [12] and IDEAL [13] mean that knowledge-based systems can be built using life cycles that can cope with growing knowledge of the problem and its solution.

One prominent life cycle is IDEAL’s conical-spiral life cycle [10] [14].

These two disciplines are moving closer together as the problems to be solved become more and more complex:

usually problems have both a SE component and a KE component. It is also known that none of the existing methodologies is appropriate for every development; in other words, there is no ‘silver bullet’. So there is a need for a unified methodology allowing the development of systems using both SE and KE techniques depending on the characteristics of the problem to be solved. This need for unification has already been pointed out by several authors [10], [13], [14], [15], [16], [17].

This paper presents a first step in this direction: a mixed methodology, combining the acquisition and conceptualisation steps of IDEAL with an OO design and implementation that has been used to develop several projects in different areas.

The contents of this paper are as follows. First, a brief description of IDEAL and object-orientation will be given, focusing on the main aspects used in our approach. Then, the mixed methodology proposed in this paper will be presented. The fourth point will be a description of the application of the methodology to three different projects. And finally, we will draw some conclusions.

2. KNOWLEDGE ENGINEERING: IDEAL

IDEAL is a KE methodology that has been used with success in many projects [12]. This methodology incorporates a three- dimensional spiral-conical life cycle which can handle the evolution of knowledge during the development of several versions of a KBS.

The IDEAL methodology comprises five phases: application identification, demonstration prototype development, research, field and operational prototypes development, commercial system and technology transfer.

The development of each prototype can be divided into several steps: solution conception (defining the problem to be solved), knowledge acquisition (eliciting knowledge from experts or documentation), conceptualisation (obtaining a conceptual model of the system), formalisation (representing the knowledge using a knowledge representation formalism) and implementation (building the prototype).

As the Acquisition and Conceptualisation steps will be used in our proposal, a brief description of these two steps is given below.

The Knowledge Acquisition step is present throughout the development of each prototype. The goal of this step is to elicit knowledge from experts or from any suitable documentation. IDEAL specifies which techniques can be used and in what order. These techniques include: non-structured and structured interviews [18], structural analysis [19], repertory grid [20], protocol analysis [21] and Delphi [22].

Knowledge Conceptualisation is responsible for the construction of a conceptual model of the problem to be solved by a KBS. It is divided into two sub-steps:

Analysis: during this sub-step the problem is decomposed into three levels of information: strategic, conceptual and tactical.

Synthesis: this sub-step is responsible of generating a global static and dynamic model of the system under study. The final result of synthesis is the Knowledge Map.

3. SOFTWARE ENGINEERING: OBJECT ORIENTATION

Object-oriented methodologies are based on the concept of an object [5], which has several properties, called attributes, and defines some permitted operations on the object, called methods. Object-orientation improves the development of software because the main characteristics of objects – encapsulation, information hiding, inheritance – enforce good design rules, allowing the development of well-structured systems and improving maintenance and reuse.

Although OO methodologies differ considerably (see for example [5], [6], [7], [8] and [9]), the main concepts of analysis, design and implementation can also be applied to object-orientation.

As our proposal will use an OO design and implementation, a brief description of the main concepts of these phases is given below.

The main focus in OO Design is to completely define the classes making up the system. A class can be defined as a set of objects sharing the same behaviour. Using this definition, an object is considered as an instance of one class. The main results of OO design are [24]:

A complete class diagram, showing relationships between the classes of the system;

The definition of each class, specifying the attributes and methods of each class;

A state-chart diagram for each class which is reactive, that is, it changes its behaviour depending on its state;

Some activity diagrams showing the interaction and message-passing between the classes of the system.

Once the design has been defined, it is usually implemented using OO programming languages, like Java, C++, Eiffel and Smalltalk. Using these languages, the implementation phase consists of adapting the original design to the limitations of the chosen language and the environment in which the system will be executed.

4. INTEGRATION OF IDEAL AND OBJECT ORIENTATION

4.1 Justification Based on our experience in the development of software systems (both traditional and knowledge-based), the main issues that led us to define a mixed methodology were as follows:

The IDEAL methodology includes guidelines for the

selection of knowledge

development

process,

especially

acquisition techniques.

In IDEAL, the division of conceptualisation into three levels (strategic, conceptual and tactical) helps to classify the information obtained during acquisition.

The IDEAL methodology is not well suited for developing traditional systems because it is declarative.

Object-oriented techniques are very useful in design and implementation, because they enforce good design rules in order to build well-structured and easily maintainable systems.

On the other hand, OO (as it is normally used) it is not adequate for analysis, because it uses the same notation during the whole process, making it difficult to first concentrate on domain analysis.

Comparing SE and KE, it can be stated that analysis in SE is equivalent to conceptualisation in KE, and design in SE to formalisation in KE. This idea has been stated by Blum [25], who divided the software development process into three transformations: from the application domain to a conceptual model; from the conceptual model to a formal model and from the formal model to the implementation domain (figure

1).

Application T 1 Conceptual Models Domain T 2 T 3 Implementation Formal Models Domain
Application
T 1
Conceptual Models
Domain
T
2
T 3
Implementation
Formal Models
Domain

Figure 1. The Essential Software Process

Our idea was to combine the strengths of the two approaches in order to define a methodology with a strong emphasis on analysis (based on the conceptualisation of IDEAL) and with a smooth transition to an OO design.

4.2 Proposed Methodology The proposed methodology follows the IDEAL life cycle, and has the same five phases. In our proposal, we have modified the steps of the development of each prototype in order to be able to build object-oriented systems. We propose six steps:

solution conception, acquisition, analysis, object-oriented design, object-oriented implementation and evaluation. These steps are not sequential, they overlap, as shown in figure 2.

Sol. Conception

Acquisition

Analysis

OO Design

OO Implementation

Evaluation

Analysis OO Design OO Implementation Evaluation Time Figure 2: Steps overlapping The solution conception and

Time

Figure 2: Steps overlapping

The solution conception and acquisition steps are based on the corresponding steps in IDEAL. The analysis step is mainly based on the conceptualisation step of IDEAL, with some modifications. We still use the three levels of information (strategic, conceptual and tactical), as they facilitate the organisation of the acquired knowledge, but we have suppressed the synthesis sub-step, as it is very specific to KBS.

This sub-step has been replaced by the OO design step. This is possible because an object model represents both static and dynamic information and can be used as a synthesis of the three information levels of the analysis. Once the OO design is complete, OO implementation will allow an almost direct translation of the design into an actual system.

This combination of steps has several advantages. First, the analysis step produces a complete conceptual model of the problem to be solved, and this model is easily generated using the guidelines offered by IDEAL. Second, this conceptual

model is built in such a way that the transition to an OO design is very smooth. And third, OO design rules allow construction

of well-structured system.

A brief description of the proposed steps is given in the

following paragraphs.

Solution Conception. This step is the same as in IDEAL. The

goal of this step is to define the problem that has to be solved

by the prototype in question.

Acquisition. This step is responsible for obtaining all the knowledge needed to develop the prototype in question, using knowledge acquisition and requirements engineering

techniques. This step is present during the whole development process. Initially, the main focus is on high-level information.

At the end of the development process, the main focus is on

low-level information.

Analysis. The goal of this step is to build a conceptual model

of the problem to be solved by the prototype. This phase is

based on the conceptualisation phase of IDEAL. The conceptual model is divided into three levels:

• Strategic: this level represents the strategy used to solve the problem. This strategy is
• Strategic: this level represents the strategy used to solve
the problem. This strategy is represented by a task
decomposition tree, that is, the main task is divided into
several subtasks and so on (figure 3).
Main Task
Subtask 1
Subtask 2
Subtask n
ST 1.1
ST 1.2
ST 1.m

Figure 3: Task decomposition tree for strategic level

Apart from the above diagram, each task has its own specification in table format. The attributes used to specify each task are: goal, input, output, process and subtasks (table 1).

Task: <Task Name>

Goal

Main goal of the task

Input

Input information for the task

Output

Results of the task

Process

Description of the high-level process

Subtasks

List of subtasks

Table 1: Specification of tasks in strategic level

Conceptual: during the development of the strategic level, a glossary of terms is created, containing the definition of the main terms used in the problem domain. This dictionary is used to identify concepts, relationships between concepts, and the attributes of each concept. This level is represented using an extended entity-relationship diagram, and each concept is specified using Concept, Attribute, Value (CAV) tables, as shown in table 2.

Concept

Description

Attributes

Values

Name of the concept

Description of the meaning and use of the concept

List of names of attributes

Admissible values for each attribute

Table 2: Specification of concepts using CAV tables

Tactical: once the above levels have been defined, the tactical level represents a refinement of the strategy using the terminology identified at the conceptual level. The tactical level is used in our approach as a transition between analysis and design. We have defined and OO pseudocode for the specification of this level and each task of the strategy has to be assigned to one of the concepts of the conceptual level. Later we will show some examples of this pseudocode.

Design. The goal of this step is to define how to solve the problem using a computer system. It is based on OO design and the main results are a class diagram and the complete specification of each class.

As stated above, the transition from the analysis model to the OO model is very smooth, thanks mainly to the tactical level notation. The OO design is obtained from the analysis using the following steps:

The conceptual level is used to identify classes, their relationships and their attributes.

The strategic and tactical levels are used to specify the methods of the classes and to refine the definition of attributes and relationships.

Constructors and destructors of each class are defined in order to define the creation and destruction of instances of the classes.

Figure 4 summarises these links between the analysis and design phases, that is, between the
Figure 4 summarises these links between the analysis and
design phases, that is, between the IDEAL and OO components
of our proposal.
Analysis
OO Design
Strategic
OO Model
Tactical
- Static
- Dynamic
Conceptual
Analysis to Design
Transition

Figure 4: Links between analysis and design

Any existing notation can be used for the class diagram can be any of the existing ones, although we recommend use of the most complete notations, UML [24] and COMN (the notation defined in OPEN [9]).

Each class is specified using tables describing the attributes and methods of each class. The specification of each attribute includes its data type and visibility. For the methods, their signature (arguments), visibility and behaviour are to be specified.

Implementation. The software system is built during this step, using an object-oriented programming language. This implementation is usually an almost direct transformation of the design classes into code. The choice of the best programming language depends largely on integration criteria with other existing systems.

Evaluation. The objective of this step is to make sure that the system under development is correct. Like acquisition, this step is also present during the whole process, validating and verifying the deliverables of each step.

5. APPLICATION OF OUR APPROACH

The approach presented in this paper has been successfully applied with success to several CETTICO (Centre of Computing and Communications Technology Transfer, Spain) projects. These projects have been developed with the collaboration of students from the UPM School of Computer Science.

As an example, we will describe three of these projects. The description will focus mainly on the results obtained during the analysis step.

RUISEÑOR [26]: a musical system for the blind. It allows a blind person to record musical notes, modify the resulting score and play the musical notes. This was the first CETTICO project to apply our approach. Figure 5 shows the first level of the strategic task decomposition tree of this system. The main subtasks of this system are: recording, playing, editing and managing songs, and a subtask for system configuration, especially specific devices for blind user interfacing.

especially specific devices for blind user interfacing. Record Song Edit Song Confi gure System Manage Songs

Record Song

specific devices for blind user interfacing. Record Song Edit Song Confi gure System Manage Songs Play

Edit Song

Configure System

Manage Songs user interfacing. Record Song Edit Song Confi gure System Play Song Compose Song Figure 5: First

Play Song Record Song Edit Song Confi gure System Manage Songs Compose Song Figure 5: First level of

Compose

Song

Figure 5: First level of a task decomposition tree

As an example of task specification, table 3 shows the task “Create New Song”, which is a subtask of “Manage Songs”. This task creates a new song from scratch, initialising the system so that its state is consistent for the user.

MEHIDA-PC: an intelligent tutorial system for deaf children. It is used to teach basic communication skills to deaf children by different means: written language, sign language, mimicry and lip reading. A prototype of this system was originally developed for Macintosh [27]. The development of the complete system on PC is currently using our methodology.

Task: Create New Song

Goal

Create a new song and initialise the system

Input

Global parameters for the new song

Output

Empty song, current position initialised

Process

Initialise MIDI and speech Create an empty song Set the current position at time 0 Create an empty list of notes

Table 3: Sample of Task Specification

The development of the user interface component introduced a variant into the tactical level of the analysis. This variant was needed in order to cope with an event-driven problem [28]. Table 4 shows an example of part of a tactical definition. This task reacts to some events, for example, if the incoming event is paint (this event is system-generated), the background is painted; and if the user generates the teach event, then the system reacts starting the process of teaching the student (which is a responsibility of the teacher concept).

Task: Mehida.Ges_Mehida

EVENT Event

IDG_Mehida

Inputs

Aux. Vars.

Process

String _Student_Name

EVENT _Event

SelectAction (Event.Type)

{

ES_PAINT:

PAINT_BACKGROUND()

CE: SelectControl (Event.Control)

{

ID_TEACH:

Teacher.Teach( _Student_Name )

}

Table 4: Sample of Tactical Task

WINLEE: an OCR system adapted for the blind. The main purpose of this system is to allow a blind user to read paper documents, with the help of a scanner and an OCR system, using speech or Braille. Table 5 shows a fragment of the CAV table of this system, describing the document concept, which represents one document used by the system. One document has several attributes: its state (whether it has been modified or not), the current position of the cursor, the starting and end points of a selected block, the file name, the number of pages and, of course, its contents, which is an instance of the contents concept.

The application of our approach to these projects was very successful, especially in the analysis phase. First the strategic level was straightforward for our students, and allowed us to quickly attain a good description of the problems to be solved by each project. Another strong point of our methodology is the very smooth transition from analysis to an OO design, by means of the tactical level.

But this methodology is not perfect. We came up against several problems during its use. The main one was the excessive detail of the tactical level, which made the description of this level a very time-consuming task.

6. CONCLUSIONS AND FUTURE WORK

In this paper we have presented a first step into the unification of SE and KE methodologies. Our approach is a mixed methodology combining the analysis phase of IDEAL with an object-oriented design and implementation.

Concept

Description

Attributes

Values

DOCUMENT

Winlee Doc.

State

TState

CurrentPos

TPosition

BlockStart

TPosition

BlockEnd

TPosition

FileName

String

Num. Pag.

Number

Contents

CONTENTS

Table 5: Sample of CAV Table (fragment)

IDEAL is a KE methodology with a very powerful life-cycle, well-defined conceptualisation and a strong emphasis on guidelines for the process.

Object-orientation

incorporation of sound design rules in order to build well- structured systems that are easy to maintain.

We have shown that our approach has been successfully applied in the development of three different projects.

The main advantages of the proposed methodology are as follows:

Using the analysis of IDEAL, we can follow the guidelines and techniques of this methodology for knowledge acquisition and conceptualisation.

The three-level analysis has proven to be very useful, as it allows quick organisation of the information gathered about the problem to be solved.

The tactical level, as defined in our approach, is a very powerful tool for the transition from the analysis to the design phase. At the moment, this level represents too much information, but we are working on its simplification while maintaining its value as a transition tool between analysis and design.

The object-oriented design and implementation facilitate the development of well-structured, robust and easily maintainable systems.

allows

is

a

branch

of

SE

with

ACKNOWLEDGEMENTS

This paper has been written and prepared with the collaboration of CETTICO (Centre of Computing and Communications Technology Transfer).

REFERENCES

[1] Edward Yourdon. “Análisis estructurado moderno”. Prentice-Hall Hispanoaericana. Mexico. 1993. [2] W.W. Royce. “Managing the Development of Large Software Systems: Concepts and Techniques”. Proceedings WESCON, August, 1970. [3] Barry W. Boehm. “A Spiral Model of Software Development and Enhancement”. Computer. Nº 21, vol. 5. May 1988.

[4] L. B. S. Raccoon. “Fifty years of progress in software engineering”. Software engineering notes. Vol. 22. No. 1. pp. 88-104. January 1997. [5] Grady S. Booch Object Oriented Analysis and Design with Applications(2 nd Ed). Benjamin-Cummings Redwood City [California]. 1994. [6] James Rumbaugh. “Object-oriented modeling and design”. Prentice-Hall Englewood Cliffs, New Jersey. 1991. [7] Ivar Jacobson. “Object-oriented software engineering: a use case driven approach”. Addison-Wesley Harlow. 1996. [8] Rational Software Corporation. UML Summary.”. Version 1.1. September, 1 of 1997. http://www.rational.com. [9] Brian Henderson-Sellers, Donald G. Firesmith, Ian M. Graham. “Methods unification: the OPEN methodology”. Journal of Object Oriented Programming (ROAD). May 1997. pp 41-43 + 55. [10] Fernando Alonso Amo, José L. Fuertes, Loïc A. Martínez Normand, César Montes. “A knowledge engineering software development methodology applied to a spiral/conical life cycle”. Proceedings of the 9 th International Conference on Software Engineering and Knowledge Engineering. SEKE’97. pp. 32-37. 1997. [11] B. J. Wielinga, A. Th. Schreiber, J. A. Breuker. “KADS: A Modelling Approach to Knowledge Engineering”. Knowledge Acquisition. No. 4. 1992. [12] Guus Schreiber, Bob Wielinga, Robert de Hoog, Hans Akkermans, Walter Van de Velde. “CommonKADS: A Comprehensive Methodology for KBS Development”. IEEE Expert. December 1994. pp. 28 - 37. [13] Asunción Gómez, Natalia Juristo, César Montes, Juan Pazos. “Ingeniería del Conocimiento”. Editorial Centro de Estudios Ramón Areces. Madrid. 1997. [14] Fernando Alonso Amo, Natalia Juristo, Juan Pazos. “Trends in life-cycle models for SE and KE: proposal for a spiral-conical life-cycle approach”. International Journal of Software Engineering and Knowledge Engineering. Vol. 5. No. 3. 1995. pp. 445-465. [15] W. David Hurley (ed.). “Software engineering and knowledge engineering: trends for the next decade”. World Scientific. Singapore. 1995. [16] S. Lee, R. M. O’Keefe. “An experimental investigation into the process of knowledge-based systems development”. European Journal on Information Systems. Vol 5. No. 4. pp. 233-249. December 1996. [17] Sally Shlaer, Stephen J. Mellor. “Recursive design of an Application Independent Architecture”. IEEE Software. January 1997. pp. 61-72. [18] D. A. Waterman. “A Guide to Expert Systems”. Addison- Wesley, Massachusetts, USA. 1986. [19] N. Juristo. “Método de Construcción del Núcleo de una Base de Conocimientos a partir de un Modelo de Clasificación Documental”. PhD Thesis. Facultad de Informática. Universidad Politécnica de Madrid, Spain. 1991. [20] G. A. Kelly. “The Psychology of Personal Constructs”. Norton. New York. 1955. [21] A. Newel, H. A. Simon. “Human Problem Solving”. Prentice Hall. Englewood Cliffs, New Jersey. USA. 1972.

[22] H. Linstone, M. Turoff. “The Delphi method: Techniques and Applications”. Addison-Wesley. Reading. Massachussets.

1975.

[23] Roger S. Pressman. “Ingeniería del Software. Un enfoque práctico”. 4 th Ed. Mc Graw Hill, Madrid. 1997.

[24] Rational Software Corporation. “UML Notation”. Version 1.1. September 1, 1997. http://www.rational.com. [25] B. I. Blum. “The evaluation of SE”. Proceedings of the 1 st International Conference on Information and Knowledge Management. Baltimore, MD. November 8-11. 1992. [26] R. Gil, L. Martínez. “Proyecto Ruiseñor: sistema de composición musical para invidentes”. Technical Report. Facultad de Informática. Universidad Politécnica de Madrid.

1998.

[27] F. Alonso, A. de Antonio, J. L. Fuertes, C. Montes. “Teaching Communication Skills to Hearing-Impaired Children”. IEEE Multimedia. Vol. 2. No. 4. 1995. [28] A. L. González, C. Montes. “Análisis, Diseño e Implementación de un Modelo de Presentación de Actividades Multimedia”. Technical Report. Facultad de Informática. Universidad Politécnica de Madrid. 1998.