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
   27   28   29   30   31   32   33   34   35   36   37