Advances in Engineering Software 17 (1993) 165-172
M
Development of an integrated expert system for fluvial hydrodynamics K.W. Chau & Wen-wu Yang Department of Civil and Structural Engineering, Hong Kong Polytechnic, Hung Horn, Kowloon, Hong Kong
During recent decades, rapid developments in computer science and industry have been influencing every aspect of our social life. Computer Aided Design (CAD) techniques have a significant impact in engineering fields. For fluvial engineering fields, a large number of microcomputer-based programs are applied for hydrodynamics analyses during the project design stage. Recently, achievements in Artificial Intelligence (AI) have been applied in many fields. The application of expert system techniques is an attractive trend in modern design practice.It is believed that the synthetic utilization of CAD and AI techniques would become more attractive for engineers. Yet the studies on this topic are scarce. This paper describes the architecture and implementation of an integrated expert system that assists hydraulic engineers to solve the unsteady open channel flow in river networks. A methodology of combining numerical analysis software into an expert system is presented. The verification, validation, application, and future development of this system are also presented. drawing tasks are carried out by using engineering software. Meanwhile, this development results in some problems in engineering practices. Because of the separation of the developer and user of CAD software, an inexperienced end-user has to face some obstacles during the execution of a CAD system. Owing to unfamiliarity with the hypotheses, parameters, algorithms, and description of the numerical model, it is difficult to guarantee that an engineer can obtain a correct answer from the system for his problem. The use of common CAD software implies risks in practical application. Moreover, symbolic processing and heuristic reasoning are often involved during design work and the number-crunching program is unable to handle the decision-making process in the engineering domain. Expert systems are the most active branch of Artificial Intelligence. They have been put into practical application in engineering fields. 1'2 An expert system is usually composed of a knowledge base and an inference engine. The knowledge base stores domain knowledge and expertise, while the inference engine reasons about the knowledge base to simulate the decision-making process of domain experts. Common expert systems are suitable for classification and diagnosis for symbolic or logic problems. For engineering analysis and design tasks, many kinds of problems may be encountered, e.g. the description of a project, choice of analytical models, determination of parameters, solution of governing equations, or evaluation of results. The expert system
NOTATION A B g K q Q t u z At Ax
Cross-sectional area of channel Storage width Gravitational acceleration due to gravity Conveyance factor of channel Lateral inflow Flow discharge Time Longitudinal velocity Height of the free surface above a datum Computational time step Computational grid size
INTRODUCTION During recent years, the development in computer science and technology has been tremendous. Workstations and microcomputers have been becoming common devices in offices owing to their low cost and powerful hardware. On the other hand, microcomputerbased qualified software has been developed and applied in engineering fields. The concept of CAD has brought a revolutionary change in the engineering analysis-anddesign process. Most computational tasks and some Advances in Engineering Software 0965-9978/93/$06.00 © 1993 Elsevier Science Publishers Ltd. 165
166
K.W. Chau, Wen-wu Yang
for these tasks must thus be capable of treating not only symbolic or logic problems but also numerical and graphical problems. It requires that both the numerical modelling program and the post-processing software be incorporated into the expert system. This system, called an integrated expert system, can provide intelligent aids to engineers in their engineering practice. The application of AI techniques in modern engineering analysis and design tasks is a current trend. However, the methodology to integrate numerical methods, graphical methods, and knowledge-based techniques is still immature. 3 An integrated expert system, called the RIVER_NET system, is developed for the numerical modelling of unsteady open channel flow in river networks. This paper describes the architecture of the system. A methodology of combining numerical software into expert system is studied and implemented. The verification, application and future development of this system are also presented.
NUMERICAL MODELLING IN FLUVIAL HYDRODYNAMICS In fluvial engineering, it is inevitable for an engineer to apply numerical modelling to study river or open channel hydrodynamics. Awareness of the effects of tidal propagation is very important for the environmental protection of river channels and the planning and design of coastal development. Moreover, it is desirable to be able to predict, accurately and efficiently, water levels and currents in river networks for forecasting purposes and for the design of flood protection features. The basic principle in describing the unsteady open channel flow in a mathematical model is the use of two first-order quasi-linear hyperbolic partial differential equations, called the de Saint-Venant partial differential equations, along with necessary boundary conditions. The unknown variables involved are the flow discharge Q and the free surface above a reference datum z. Assuming constant density and hydrostatic pressure variations and ignoring the effect of the turbulent shear stresses, wind stress, and the Coriolis force, the following one-dimensional governing equations can be obtained (see Appendix I for the definition of the variables): Oz 1 0 Q q Continuity -~ + B O x - B
mathematical problem. With the recent introduction of computer techniques, numerical modelling become the most feasible solution procedure that can consider realistic features (non-linearity, variation of roughness and channel shape, etc.) of a fluvial system. Nowadays, a range of explicit and implicit finite difference methods is available for the calculation of one-dimensional open channel flows. The former methods allow one to formulate relatively simple difference equations. Each equation contains only one unknown variable and hence can be solved explicitly. However, explicit methods are only conditionally stable, as a result of the Courant limitation. On the other hand, the various implicit methods are usually unconditionally stable. Nevertheless, they involve the simultaneous solution of a set of difference equations, each containing several unknown variables, which usually means a more complicated computational procedure. A mathematical model and solution algorithm for unsteady open channel flow in river networks have been developed by Chau and Lee4 and have been successfully applied to solve practical engineering problems. A microcomputer-based numerical modelling program has been developed and implemented. This model can account for the realistic characteristics of a branched channel system more precisely. 5 The flow chart for the numerical modelling is presented in Fig. 1. Each stage of the task involves personal experience, and its complexity can be demonstrated.
ARCHITECTURE OF INTEGRATED EXPERT SYSTEM Conventional expert systems are good for solving the following problems: diagnosis, identification, classification, forecasting, etc. For the subject domain, numerical modelling of unsteady open channel flow in river networks, different types of problem need to be [ TASK DEFINITION J
t PLAN OF CHANNELS Plan geometry;,Schematisstion CHANNEL CROSS SECTIONS ] Flood plain ; Schematisation /
RIVER HYDROGRAPHS | nterpo at on; Landward bounda~
NUMERICAL SCHEME [ I Implicit finite difference; Explicit finite difference I
t
(1) I
0 uQ ' AOZ AQIQI Momentum ~-~Qt+~xx( )-t-g ~xx+g - - ~ = 0
r TIDAL OBSERVATIONS [ Interpolation;Seaward boundary
MODEL PARAMETERS I T me step; Computat ona factor
INITIALCONDITIONS Initialflow ;Channel roughness
v
.
I SOLUTION OF GOVERNING EQUATIONS~
(2) The solution of the two coupled governing equations, owing to its non-linear nature, constitutes a difficult
I PROCESSING OF RESULTS I
Fig. 1. Flow chart of numerical modelling.
I
An integratedexpert system for fluvial hydrodynamics dealt with, such as definition of the task, schematization of a natural river system, choice of mathematical models and numerical schemes, presentation of initial and boundary conditions, determination of computational parameters, solution of governing equations, and representation and evaluation of results. To perform these functions by AI techniques, the decision-making modules, the numerical modelling software, and the resultant post-processing tool need to be integrated into a system in a rational way. That is, an integrated expert system that is able to accomplish not only symbolic reasoning but also numerical and graphical processing at a certain expert level is needed. It is recognized that the integration of numerical, symbolic, and graphical processing will provide a powerful solution for some engineering tasks. Some researchers have been searching for various types of integration methodology.6-1° For the problem we considered, an integration model is established and is discussed in the following sections. The architecture of the integrated expert system is illustrated in Fig. 2. Five modules are involved in the RIVER_NET system. The first is the user-interface module, which provides a friendly user-machine interface. The second is the system-monitoring module, which controls the reasoning path, integration, and data flow procedure among the modules. The third is the inference engine module; which has backward chaining and forward chaining facilities. The fourth module is the knowledge-base module, which stores the domain knowledge and expertise. The last one is the application software module, which accomplishes the numerical analysis and result representation. In this last module, the numerical modelling program (HYDRAU.EXE) and the Symphony System ACCESS.COM are integrated into the R I V E R N E T system. Although the system structure is composed of five modules, the interaction between different modules is directly integrated, and they are smoothly linked to one another. The program is, in fact, very user-friendly, and the users cannot discern the transition between modules. The users also do not need to be aware of the fact that there are five modules, and they can accomplish the commission by just following the guidelines and instructions provided. USER
I,
IOSER' -ERFACEI t I SYSTEMMON'TOR'NG1 I INFERENCEENGINE]
[KNOWLEDGEBASE1 [
FACTBASE
[
NUMERICAL [ MODELLING I
SYMPHONY SYSTEM
HYDRAU'EXEI
ACCESS.COM
Fig. 2. Architecture of the integrated expert system RIVER_NET.
167
DEVELOPMENT AND IMPLEMENTATION OF RIVER_NET SYSTEM Development tool There are two types of tool for developing an expert system, i.e. expert system shells and logical languages. Nowadays, many expert system shells, in which the inference engine and the knowledge-base skeleton have generally been built, are widely available. The task for a knowledge engineer is to encode the domain knowledge into the knowledge base. By using commercial expert system shells, the development of application systems is usually more efficient. For our purposes, VP-Expert, an expert system shell developed by Paperback Software International, was chosen to develop the RIVER_NET system. VP-Expert runs on IBM Personal Computers or compatibles. A minimum of 512kRAM and at least two double-sided 360k diskette drives (or a hard disk and one doublesided 360k diskette drive) are necessary. II A consultation menu, an editor, an induction table, a subjective confidence, an explanation, and window and graphical techniques are its common features. Furthermore, the linking of knowledge bases, the execution of external files, and working with database are the advanced functions of this shell, which are attractive in our case. Moreover, VP-Expert can itself act as an inference engine and can be used to reason about many different knowledge bases. The shell already has built into it the necessary searching and managing routines for reasoning with the facts in the fact base and rules in the knowledge base. All that is needed is therefore to create the domain knowledge base and to design the systemmonitoring mechanism.
Knowledge-base and fact-base modules The knowledge-base module contains the knowledge on unsteady open channel flow from the literature and domain experts. It is composed of four knowledge bases, namely: GEOMETRY.KBS, SCHEMAT.KBS, PARAMETER.KBS, and BOUNDARY.KBS. These knowledge bases are described below. The statements in the knowledge bases consist of query clauses and IF-THEN rules. The query clauses perform the symbolic communication between the system and the user. The rules represent the information of the river system, the knowledge of the mathematical model, etc. The following is a typical rule illustrating the format with rule_name, IF, THEN, ELSE, and BECAUSE clauses: RULE Geometry_3 IF Rivertype=River_network THEN FIND Graph_3 FIND Number of junction ELSE
K.W. Chau, Wen-wu Yang
168
I I I I ..........
I
i .......................................................
RIVER N E T W O R K
...... >
..............................................
AMAIN
RIVER
I
I ..................
I i
I I
...... >
..................................................................... What is the type of the river : Shing Mun River ? River network A main river
Enter to select
^ Discharge q
END to complete
/Q to Q u i t
? for Unknown
(m3/s)
........................................................
^ Tidal Z
> time T
(m)
l I I I I
.
.
.
.
.
.
.
.
i I ........................................................ W h a t is the nature of the landward
Discharge
condition
time
T
?
Tidal
Enter to select
END to complete
water surface ................................
flow
>
boundary
..... > ..... > ..... >
/Q to Quit
? for Unknown
iMannlng's coeff, i Type ................................. const. ~Constant Manning vary iVarying Manning linear i Const linear 0.00 I Frictlonless .................................
rough bottom
What type of b e d friction along the channel Const Manning Vary Manning Frlctlonless
Enter to select
END to complete
? Const linear
[Q to Quit
? for Unknown
1 [
I I I I
An integrated expert system for fluvial hydrodynamics
169
RIVER: Shlng Mun River SECTION •
W2
i < .........................
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
>1
.'l:S2
.Flood Plain
i I Main Conveyance Channel
I I -/-
! Zl (bed level)
I<. . . . . . . . . .
wl
D1
• l:Sl
. . . . . . . . . . >1
What type of variation of Wl of main conveyance channel along the channel? Constant Exponentially Linearly Varying
Enter to select
END to complete
/Q to Quit
? for Unknown
Fig. 3. Four typical consultation screens of the RIVER_NET system• FIND Graph_3 Number of junction=(0) BECAUSE "For a tributary-river network, the number of junction should be entered into the system. For a main river, the number of junction is assigned to zero automatically."; A rule includes the logic relationship among objects and the explanation statements of the deduction procedure. VP-Expert provides WHY and HOW functions for the user to trace the reasoning path. The facts produced during the knowledge-base consultation are saved in the fact bases: FACT1 ... FACT4. The fact bases contain variable values and the confidence factors in text mode. These files may be retrieved and edited independently• The necessary input data for the numerical modelling program HYDRAU.EXE will be determined and saved automatically in the data file, INPUT, during/after a consultation with the knowledge bases• The GEOMETRY.KBS describes the topographical geometry of the river-network system• It helps the user to describe his project and inquires about some information, such as River_Name, Tributary_Number, Type_of_Boundary. The SCHEMAT.KBS is a knowledge base that describes the schematization of the channel system• It includes the schematization of the channel plan and cross-sections for numerical computation. Since the task is a matter of personal experience, some expertise of specialists has been summarized and written into the rules. Moreover, the knowledge representation must be compatible with the format of the numerical modelling software• For the purpose of user-friendliness, many tables or diagrams are provided to end users• The following are two rules to describe sectional properties: RULE 10 IF Section_widthl =Varying THEN
FDISPLAY C:\VPX\INPUT,"3" FOR Iter = 1 TO @Number_of_grid CLS FIND Section_diagram0 DISPLAY ". . . . . . For Section No.
{Iter}
FIND Widthl FDISPLAY C:\VPX\INPUT "{Widthl}" RESET Widthl RESET Section_diagram0 END Iwl = (4) RULE 11 IF Side_slopl =Constant THEN FDISPLAY C:\VPX\INPUT,"0" CLS FIND Section_diagram0 DISPLAY ". . . . . . For All Sections . . . . . . " FIND Slopl FDISPLAY C:\VPX\INPUT "{Slopl}" RESET Section_diagram0 Isl = (0); In the above rules, the clause 'FIND Section_diagram0' fires a sectional pictorial representation rule, which helps the user schematize the channel sections. The current values of the variables in the rules are written into the specified disk file INPUT, by using FDISPLAY clause and an indirect addressing technique. The PARAMETER.KBS describes the reasoning process for the determination of some vital parameters in the simulation of an unsteady open channel. The computational parameters are usually determined by the hydraulic specialist on the basis of experimental results and engineering expertise. The decision-making process is therefore heuristic and complex. Some parameters must satisfy the constraints of the numerical model. For example, the time step At and the grid size Ax in the explicit difference scheme are constrained by the
K.W. Chau, Wen-wu Yang
170
following relationship to guarantee the convergence of the numerical iteration:
zxt <
Ax u+
(3)
The knowledge for choosing the parameters must include the heuristic experience extracted from domain experts through interview. The BOUNDARY. KBS is the knowledge base used to simulate the initial and boundary conditions of a natural river network. Two types of boundary conditions, namely, landward and seaward boundary conditions, are assumed. Some tidal curves in estuaries must be discretized or interpolated for the numerical scheme. The rules and facts are written in such a way that the user can easily describe the prevailing conditions. Four typical screens are shown in Fig. 3 to highlight the consultation mode. It can be seen that the consultation screens are designed to be as user-friendly as possible and can help the users to grasp the physical idea of a flood routing process. System monitoring and user interface modules The system monitoring module controls the integration of the system modules. The main purpose is to facilitate the preparation of the necessary data for the application software programs and to orchestrate the execution of them under the expert system environment. VP-Expert provides the function of causing external DOS files to execute. Three clauses, BCALL, CALL, AND CCALL, can be used to call and execute .BAT, .EXE, and .COM, files, respectively. After the external program has completed its execution, control is returned to the knowledge-base file from which it was called under the VP-Expert environment. The development shell therefore acts as the necessary tools to establish the full integration plan. When the inference engine has reasoned about the knowledge bases, the system monitoring module must call the numerical modelling program ( H Y D R A U . E X E ) to load and execute with the data file (INPUT). During running of H Y D R A U . E X E , the output data are saved into the files, OUT1, ... , OUT4, in a data-table format. The output of the numerical modelling program includes the variation of tidal levels, velocities, etc. The output data files can then be processed by the Lotus Symphony System. The system monitoring module would evoke the ACCESS.COM and access the output data files with Symphony. When entering the Symphony environment, the end-user may follow the system's menu for operation. Processed by the Symphony system, the output from H Y D R A U . E X E can be translated into graphic curves, which are convenient for engineers to evaluate. However, if the memory capability of the micro-
computer used is not sufficient to accommodate simultaneously the VP-Expert shell, H Y D R A U . E X E program, and Symphony system, executing the numerical modelling program or the Symphony system under the VP-Expert environment is not feasible. In such a case, a loose integration model, which ensures the smooth execution transformation among different environments, can be employed by running a batch file. The data files are used to effect the data communication among different environments. The batch file RUN.BAT instructs the operating system to set the path of the program and execute them sequentially. The contents of this file are as follows: PATH=C:\NUMERIC HYDRAU PATH=C:\SYMPHONY ACCESS The quality of the user interface is very important for an integrated expert system. We created a user-friendly interface to reflect the intelligence of this system. The graphical and tabular interactive forms are provided for the end-user to describe his/her problem, choose the proper parameters, etc. This module is implemented by several rules in the knowledge bases and facts bases.
VERIFICATION, VALIDATION AND APPLICATION The integrated expert system RIVER_NET has been implemented, verified, validated, and applied in several test cases. For a knowledge-based expert system, reliable verification and validation have been acknowledged to be the key point for acceptance of the artificial intelligence technology. Verification means building the system right: that is, ensuring that the system correctly implements the specifications. Validation means building the right system: that is, writing specifications and checking performance to make sure that the system does what it is supposed t o d o . 12 In a typical expert system, verification is done first, and then validation follows. Verification and validation are carried out during and at the end of each prototype phase. Verification determines the conformance of the knowledge base to its design requirements and with the software syntax from which it was built. It also guarantees the honest and smooth transition from one prototype to another. Validation determines the correctness of an end-product, conformance of the output to the customer's established requirements, and completeness of the system. The traditional testing method for an engineering expert system is to have domain specialists run many test cases on the system. Unfortunately, it is impracticable for the lack of expert resources. Furthermore, this technique does not guarantee finding all the errors, and the knowledge engineer never knows if the test cases have
An integrated expert system for fluvial hydrodynamics
171
reservoir, is imposed at the landward boundary and along the channel as lateral inflows. The time of concentration for all these flows is assumed to be the same (3 h). Triangular hydrographs arc assumed such that the time to peak magnitude and the time to decay to zero discharge are both 3 h. Figure 4 shows the envelope of the water elevation due to the effect of the flood hydrographs applied at the upstream end of the fiver channel with tidal forcing of amplitude 1.05 m at the ocean end, which is one of the output curves of the integrated expert system. It may bc noted that the graphical representation of the output of the RIVER_NET system may be evaluated very conveniently. It is also found that the solution of the system is satisfactory as compared with that reference and that the consultation of the system is convenient, helpful and intelligent for a non-expert end user.
been sufficient. The run-time evaluation is an efficient technique for detecting errors involved in the system in its developmental and final stages. For evaluation of a complex software system, wc have bccn concerned not only with module testing but also with integration testing and system testing. The organization of the testing activity should in some way reflect the organization of the design activity.13 Just as wc build a complex system by first designing it as a collection of well-connected modules, wc should bc able to test modules separately, one by one, and eventually test the whole system. T w o methods, white-box testing and black-box testing, arc adopted to evaluate the RIVER_NET system. The former is used to validate the knowledge bases modularly, the latter to evaluate the whole system. A detailed discussion of the vcfification procedure is not presented here. As an example, the system is used to study thc tidal dynamics and potential flood hazards in the Shing M u n River network, Hong Kong. It is a fiver network with one main channel and three tributary channels. The location of the Shing M u n River and its tributary nullahs can bc found in a paper by Chau and Lcc. 4 A case of tidal dynamics is investigated. A tidal forcing with amplitude 1.05m, 0-85m, and 0.50m corresponding to the spring tide, mean tide, and neap tide, respectively, all with a period of 12.42 h, is imposed at the ocean end. The storrnwatcr discharge, based on a rainfall intensity with a 50-year return period and with peak magnitude approximately 8 0 % of the 200-year storm, including the m a x i m u m expected overflow from a
FUTURE DEVELOPMENT This expert system helps the user define his task, choose a fiver network plan, carry out numerical modelling of an unsteady open channel flow, and represent the results as graphs. Because of the expertise involved in the implementation of mathematical models and the consideration of realistic features, the evaluation of numerical results is an important task for engineers. Future developments will be focused on establishing result evaluation and more effective help facilities. These functions will
4
3.5
3
N
-
2.5
[] ¢1
k
1.5
0.5 ¢
^ I
0
¢
CC
C C $ $ I
2
I
"~
0
C
1
Maximum
Envelope
C
I
4
¢
C
¢
C
I
6
Distance El
C
o
x (km) Minimum
Envelope
Fig. 4. Maximum and minimum envelopes of water elevations along the channel duc to the imposition of a 50-year stormwatcr discharge coincident with a high tide of amplitude 1.05m.
172
K.W. Chau, Wen-wu Yang
increase the system's capability and reliability, although there are some difficulties for their thorough implementation. Since the current model is subject to the limitation of memory capabilities of the computer system used, an expert-system shell with built-in SYMPHONY function will be considered. In this situation, fewer external DOS programs need to be loaded, and the memory requirements will be less. CONCLUSION The synthetic utilization of AI and CAD techniques is more attractive for engineers to carry out their practical projects. An integrated expert system for unsteady open channel flow in river networks, incorporating a numerical modelling program and the Lotus Symphony System, has been developed and implemented. The RIVER_NET system performs expert decision-making, numerical analysis, and result representation for typical hydraulic engineering problems. It possesses friendly user-machine interfacing facilities to assist the hydraulic engineer to define a specific task, schematize the natural-river system, choose the proper mathematical model and numerical scheme, describe initial and boundary conditions, determine computational parameters, solve the governing equations, and present the final results. By application to the solution of typical problems, it has been shown that the integration model is feasible and the performance of the integrated expert system is satisfactory. Some proposed future developments are expected to improve the reliability and capability of the system. ACKNOWLEDGEMENTS This project was supported by a grant from the Research Sub-committee of the Hong Kong Polytechnic.
REFERENCES
1. Lindsay, S. Practical Applications of Expert Systems. QED Information Sciences, Wellesley, MA, USA, 1988. 2. Robert, B. & Marche, C. An expert system to assist designers of hydraulic systems. Engng Applic. Artif. Intell., 2 (1989), 57-64. 3. Furuta, K. & Smithers, T. Numerical methods in AI-based design systems. In Applications of Artificial Intelligence in Engineering, VI, eds G. Rzevski & R.A. Adey. Computational Mechanics Publications, Elsevier Applied Science, Boston, MA, USA, 1991. 4. Chau, K.W. & Lee, J.H. Mathematical modelling of Shing Mun River network. Adv. Water Resources, 14 (1991), 106-12. 5. Chau, K.W. & Lee, J.H.W. A microcomputer model for flood prediction with applications. Microcomput. Civil Engng 6 (1991), 109-21. 6. Liu, H.H., Lai, Y.L. & Corptopassi, P. Expert systems for thermal and structural analysis in electronic system design. In Proceedings of IEEE Workshop on Expert Systems and Pattern Analysis, ed. C.H. Chen. World Scientific Publishing Co., Singapore, 1987, pp. 47-59. 7. Uzel, A.R., Edwards, R.J. & Button, B.L. A study into the feasibility of an intelligent knowledge based system (IKBS) in computational fluid mechanics (CFM). Engng Applic. Artif. Intell. 1 (1988), 187-93. 8. Kleiber, M. (Editor). Artificial Intelligence in Computational Engineering. Ellis Horwood, New York, USA, 1990. 9. Geymary, J.A.B. & Ebecken, N.F.F. A coupled expert system for flexible risers design and applications. Engng Applic. Artif. Intell. 4 (1991), 51-8. 10. Chiang, T.W. & Wang, K.W. A hybrid AI-based approach for mechanical system design problems. Artificial Intelligence, ISA Trans., 31 (1992), 159-64. 11. Friederich, S. & Gargano, M. Expert Systems Design and Development Using VP-Expert. Wiley, New York, USA, 1989. 12. Bahill, A.T. (Editor). Verifying and Validating Personal Computer-based Expert Systems. Prentice-Hall, Englewood Cliffs, N J, USA, 1991. 13. Ghezzi, C., Jazayeri, M. & Mandrioli, D. Fundamentals of Software Engineering. Prentice-Hall, Inc., Englewood Cliffs, NJ, USA, 1991.