Saturday, 18 March 2017

Software Process Model



Software Process Model - A (software/system) process model is a description of the sequence of activities carried out in an SE project, and the relative order of these activities. These models provide a basis for controlling various activities required to develop and maintain the software. In addition, they help the software development team in  understanding the activities involved in the project. There are hundreds of different process models to choose from, e.g:
•waterfall,
•Build-and-fix
•spiral
•rapid prototyping
•Evolutionary
•Incremental

By changing the process model, we can improve and/or tradeoff:
•Development speed (time to market)
•Product quality
•Project visibility
•Cost overhead
•Risk
•Customer relations
Normally, a process model covers the entire lifetime of a product.

Advantages of Software Process Model are:
Enabling Effective Communication: It helps in understanding and provides a specific basis for process execution.
Facilitating process reuse: Process development is a time-consuming and expensive activity. Thus, the software development team utilizes the existing processes for different projects.
Effectiveness: Process models can be used again and again; reusable processes provide an effective means for implementing processes for software development.
Facilitating process management: Process models provide a framework for defining process status criteria and measures for software development.
Every Software development process model takes requirements as input and delivers products as output. However, a process should detect defects in the phases in which they occur. This requires verification and validation of the products after each and every phase of the software development life cycle.

Process
Phase

Verification                         
and
Validation


.                               Input                                                                                                                                                                                                               output                                     
Requirements                                                     Products      

                                              Phases in Development Process
Verification is the process of evaluating a system or its components for determining the product developed at each phase of software development. IEEE defines verification as “a process for determining whether the software products of an activity fulfill the requirements or conditions imposed on them in the previous activities.
Verification: Are we building the right product?
Validation is the process of evaluating the product at the end of each phase to check whether the requirements are fulfilled or not. In addition, it is the process of establishing a procedure and method, which performs according to the intended outputs. IEEE defines Validation as “a process for determining whether the requirements fulfills its specific intended use.
Validation: Are we building the product right?

No comments:

Post a Comment