Presentation on theme: "CSC 532 Term Paper Process Models In Software Engineering By Xiancong Xiong Fall 2004."— Presentation transcript:
CSC 532 Term Paper Process Models In Software Engineering By Xiancong Xiong Fall 2004
Why we need process modeling? Several researchers report that: ► Used properly, process modeling offers great benefits for understanding processes and revealing inconsistencies. ► For example, Barghouti, Rosenblum, Belanger, and Alliegro (1995) conducted two case studies.
Basic Concepts Process: ► A series of steps involving activities, constraints, and resources that produce an intended output of some kind [Pfleeger 01].
Basic Concepts Characteristics of A Process: ► Proscribes all the major process activities. ► Process uses resources and produce products. ► Be composed of subprocesses. ► Each process activity has entry and exit criteria. ► Process activities are organized in a sequence. ► Each process has a set of guilding principles that explain the goals of each activity. ► Constraints or controls may apply to an activity,resource,or product.
Basic Concepts Process Model: ► Description of a process expressed in a suitable process modeling language. It is an abstract representation of software process [Finkelstein 94]. ► It is an abstract representation of software process.
Basic Concepts Two kinds of Process models: ► Prescriptions process models: prescriptions for the way software development should progress prescriptions for the way software development should progress ► Descriptions process models: descriptions of the way software development is done in actuality. descriptions of the way software development is done in actuality.
Basic Concepts Benefits of using process models: ► First, with a process model ’ s help, the software development team can easily understand the project they will develop. ► The description of the processes provides every one a common understanding of the activities, resources, and constraints involved in software development. ► A process model can help the development team find inconsistencies, redundancies, and omissions in the process and in its constituent parts.
Basic Concepts Desired properties of process modeling tools and techniques [Cuitis 1992]: ► ► Easy of understanding and communication. ► ► Supports process improvement. ► ► Supports process management. ► ► Provides automated guidance in performing the process. ► ► Supports automated process execution.
Process Models After many years evolution, there appear many process models, for example: ► Waterfall model, ► Rapid prototyping, ► software automation, ► V-Model ► Spiral Model ► Iteration model ► Increment model
Waterfall Model Fig 1: Waterfall Model [Royce 70]
Waterfall Model ► The Waterfall Model consists of the following main steps: ► Requirements Analysis. ► System Design and Program Design. ► Coding. ► Testing.
Waterfall Model ► Disadvantages of the Waterfall Model: ► You can not think out all the detailed requirements and goals at the beginning of most projects. Sometime you have to go further and then you can get more information to do the job. The model does not accommodate this natural uncertainty very well. ► The Waterfall Model does not tell how to transfer from one stage to another. ► Practically, there are a few project which always follow the sequential steps that the model proposes. ► Developing a system using the Waterfall Model does not yield a working version of the system until late in the process.
Prototyping ► Fig.2 : Prototyping Model [Yeh 94 ]
Prototyping Prototyping is comprised of the following steps: ► Requirements Definition/Collection. ► Design. ► System Implementation. ► Assessment. ► Prototype Refinement. ► Prototype Creation/Modification.
Prototyping ► Disadvantages of the Prototyping Model: ► Prototyping can lead to poorly designed systems. ► Prototyping can lead to false expectations.
Iterative Development ► In Iterative Development Model, the project is divided into small parts. When each of them is finished, it can be demonstrated to customers and feedbacks from customers are collected. Thus enable users to have some functionality while the rest is being developed.
Iterative Development Disadvantages of the Iterative Model: ► Communication and coordination skills play an important role in project development. ► The customers ’ expectation may change when they see the system develop. ► The user have to be actively involved throughout the project. Though this involvement is a positive for the project, sometime it may delay the project progress. ► A controlled mechanism should be developed to deal with the huge requests. Some time these requests may lead to confusion.
The Spiral Model ► Fig. 3: Spiral Model [Boehm 88]
The Spiral Model The Spiral Model is made up of the following steps: ► Project Objectives. ► Risk Assessment. ► Planning and Management. ► Engineering & Production.
The Spiral Model Disadvantages of the Spiral Model: ► The risk assessment component of the Spiral Model provides both developers and customers with a measuring tool that earlier Process Models do not have. The measurement of risk is a feature that occurs everyday in real-life situations, but (unfortunately) not as often in the system development industry. The practical nature of this tool helps to make the Spiral Model a more realistic Process Model than some of its predecessors.
Summary ► Process modeling is an very important process in software engineering. ► By using a good process model and good process, the quality of products of development can be guaranteed.
Future work ► Software simulation ► Web-based software engineering ► Software process reengineering
References ► [Keller 90] Marc Keller and H. D. Rombach, “ Comparison of software processes descriptions ”, ► [Royce 70] W.W. Royce, “ Managing the development of large software systems: Concepts and techniques. ” August, 1970 ► [Boehm 88] B.W. Boehm, “ A spiral model for software development and enhancement. ” IEEE computer, 1988 ► [Forrester 91] J. Forrester, “ System dynamics and the lessons of 35 years. ” ► [Yeh 94] Yeh, “ Rapid Prototyping ” ► [Raffo 00] D. Raffo and W. Scacchi, Special Issue on Software Process Simulation and modeling ► [Humphrey 89] W. Humphery, software process modeling: principle and entities ► [Pfleeger 01] Shari Pfleeger, Software Engineering, Pearson Education, ► [Finkelstein 94] A. Finkelstein, Software Process Modeling and Technology ► [SEI 04] ► [ESPI 04] ► [IEEE 04] ► [USC 04]