Page 32 - DCAP405_SOFTWARE_ENGINEERING
P. 32
Unit 2: A Generic View of Process
2. A dataflow or activity model: This represents the process as a set of activities each of Notes
which carries out some data transformation. It shows how the input to the process such as
a specification is transformed to an output such as a design. The activities here may be at
a lower level than activities in a workflow model. They may represent transformations
carried out by people or by computers.
3. A role/action model: This represents the roles of the people involved in the software
process and the activities for which they are responsible.
There are a number of different general models or paradigms of software development:
The waterfall approach: This takes the above activities and represents them as separate
process phases such as requirements specification, software design, implementation, testing
and so on. After each stage is defined it is ‘signed off’ and development goes on to the
following stage.
Evolutionary development: This approach interleaves the activities of specification,
development and validation. An initial system is rapidly developed from very abstract
specifications. This is then refined with customer input to produce a system which satisfies
the customer’s needs. The system may then be delivered. Alternatively, it may be re-
implemented using a more structured approach to produce a more robust and maintainable
system.
Formal transformation: This approach is based on producing a formal mathematical
system specification and transforming this specification, using mathematical methods to
a program. These transformations are ‘correctness preserving’. This means that you can be
sure that the developed program meets its specification.
System assembly from reusable components: This technique assumes that parts of the
system already exist. The system development process focuses on integrating these parts
rather than developing them from scratch.
2.2.2 Characteristics of a Software Process
The fundamental objectives of a process are the same as that of software engineering, namely,
optimality and scalability. Optimality means that the process should be able to produce high-
quality software at low cost, and scalability means that it should also be applicable for large
software projects. To achieve these objectives, a process should have some properties. Some of
the important ones are discussed below.
Predictability
Predictability of a process determines how accurately the outcome of following a process in a
project can be predicted, before the project is completed. Predictability can be considered a
fundamental property of any process. In fact, if a process is not predictable, it is of limited use.
Effective project management is essential for the success of a project, and effective project
management revolves around the project plan. A project plan typically contains cost and schedule
estimates for the project, along with plans for quality assurance and other activities. Any
estimation about a project is based on the properties of the project, and the capability or past
experience of the organization.
Example: A simple way of estimating cost could be to say, “this project A is very similar
to the project B that we did 3 years ago, hence A’s cost will be very close to B’s cost.” However,
even this simple method implies that the process that will be used to develop project A will be
LOVELY PROFESSIONAL UNIVERSITY 25