Thursday, 16 July 2015

Process Models (Part 2 )

Process Assessment and Improvement
The existence of a software process is no guarantee that software will be delivered on time, that it will meet the customer’s need, or that it will exhibit the technical characteristics that will lead to long term quality characteristics. Process patterns must be coupled with solid software engineering practice. Assessment attempts to understand the current state of the software process with the intent of improving it. A number of different approaches to software process assessment and improvement have been proposed over the past few decades:
·         Standard CMMI Assessment Method for process Improvement SCAMPI
·         CMM-Based Appraisal for Internal Process Improvement (CBA IPI)
·         SPICE (ISO/IEC15504)
·         ISO 9001-2000 for software
Perspective Process Model
Prescriptive process models define a prescribed set of process elements and a predictable process work flow. Each process model prescribes a set of process elements – framework activities, software engineering action, tasks, work products, quality assurance and change control mechanisms for each product. Each process model also prescribes a process flow that is manner in which the process elements are interrelated to one another. All software process models can accommodate the generic framework activities but each applies a different emphasis to these activities and defines a process flow that invokes each framework activity in a different manner.
Waterfall Model
There are times when the requirements for a problem are well understood, when work flows communication through deployment in a reasonably linear fashion. This situation is sometimes encountered when well defined adaptation or enhancement to an existing system must be made (e.g., an adaptation to accounting software that has been mandated because of changes to government regulations). It may also occur in a limited number of new development efforts, but only when requirements are well defined and reasonably stable. The waterfall model, sometimes called the classic life cycle, suggests a systematic, sequential approach to software development that begin with customer specification of requirements and progresses through planning, modeling, construction and deployment, culminating in ongoing support of the completed software.





Problems with Waterfall Model
Real projects rarely follow the sequential flow that the model proposes. It is often difficult for the customer to state all requirements explicitly. The waterfall model requires this and has difficulty accommodating the natural uncertainty that exists at the beginning of many projects. The customer must have patience. A working version of the program will not be available until late in the project time span. A major blunder, if undetected until the working program is reviewed, can be disastrous.
The V Model
A variation in the representation of the waterfall model is called the V model. As a software team moves down the left side of the V, basic problem requirements are refined into progressively more detailed and technical representations of the problem and its solution. One code has been generated, the team moves up the right side of the V, essentially performing a series of tests that  validate each of the models created as the team moved down the left side. In reality, there is no fundamental difference between the classic life cycle and the V-model.
Incremental Process Models
The incremental model delivers a series of release, called increments, that provide progressively more functionality for the customer as each increment is delivered. The incremental model combines elements of linear and parallel process flows. When an incremental model is used, the first increment is often a core product. The basic requirements are addressed but many supplementary features (some known, others unknown) remain undelivered. The core product is used by the customer or undergoes detailed evaluation. As a result of use and/or evaluation, a plan is developed for the next increment. This process is repeated following the delivery of each increment, until the complete product is produced.
Evolutionary Process Models
Software like all complex systems, evolves over a period of time. Business and product requirements often change as development proceeds making a straight line path to an end product unrealistic. Evolutionary models iterative. They are characterized in a manner that enables you to develop increasingly more complete versions of the software. Prototyping, The spiral model.
Prototyping
Often, a customer defines a set of general objectives for software, but does not identify detailed requirements for functions and features. In other cases, the developer may be unsure of the efficiency of an algorithm, the adaptability of an operating system, or the form that human machine interaction should take. In such similar cases we use prototyping paradigm. Although prototyping can be used as a stand alone process model, it is more commonly used as a technique that can be implemented within the context of any other process model. The prototyping paradigm assists you and other stakeholders to better understand what is to be built when requirements are fuzzy. Prototype is built to serve as a mechanism for defining requirements. It is then discarded (at least in part) and the actual software is engineered with an eye toward quality.
The Spiral Model
The spiral model is evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model. Using the spiral model, software is developed in a series of evolutionary release. During early iterations, the release might be a model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced. The spiral model is realistic approach to the development of large scale systems and software. Because software evolves as the process progresses, the developer and customer better understand and react to risks at each evolutionary level. The spiral model uses prototyping as a risk reduction mechanism but more important enables you to apply the prototyping approach at any stage in the evolution of the product.


1 comment:

s