Software Process Models

Software Process Models

Software Process Model also can be called as Life Cycle Model. Software Process Model can describe the sequence of entire product. It’s a representation of a Software process. There are different types of Life Cycles.
·         Waterfall Model
·         Incremental Model
·         Prototyping Model
·         Rapid Application Development
·         Agile Model
·         Spiral Model
·         Dynamic System Development Model (DSDM)

Waterfall Model

This Model is the first process model which was introduced in Software engineering. This is a linear sequential model. Cascade from one phase to another is the nature of this process model.

Merits
·         This model is the model which is simple and easy to understand and use
·         Easy to use for smaller projects were requirements are very well understood
·         Phases do not overlap
·         In this model, each phase has specific deliverables and a review process. It’s easy to manage
Demerits
·         One phase has to be complete before moving onto the next phase
·         The customer must have patience. A working version of the program will not be available until late in the project time-span
·         Time consuming
·         Few business systems have stable requirements
Process Model Suitability
The waterfall model is suitable for projects which have clear and stable requirements

Incremental Model

This model is based on the idea of developing system increments by following the same Iterative. It is the main concept of this model.

Merits
·         The cost of accommodating changing customer requirements is reduced.
·         It is easier to get customer feedback on the development work that has been done.
·         Lower risk of overall project failure
·         The highest priority system services tend to receive the most testing
Demerits
·         The process is not visible.
·         Needs good planning and design
·         Total cost is higher than waterfall model
·         Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Process model Suitability
The incremental model is suitable for when the requirements of the complete system are clearly defined and understood.

Prototyping Model

It is very difficult for end-users to anticipate how they will use new software systems to support their work. It is impossible to make this assessment before the system is built and put into use if it is a large and complex system.

There are two types of Prototyping Model.
·         Throw-away Prototyping
This model is suitable if the requirements are not clear but stable.

·         Exploratory Prototyping
In this method the prototyping will become as the final system after enhancing by adding new features.
Merits
·         Faster than Waterfall model
·         High level of user involvement from the start
·         Technical or other problems discovered early-risk reduced
·         A working system is available early in the process
·         No misunderstandings between software users and developers.
Demerits
·         Not a cost-effective solution
·         Maintenance is therefore likely to be difficult and costly.
·         Languages which are good for prototyping not always best for final product
·         Impossible to tune the prototype to meet non-functional requirements, such as performance, security, robustness and reliability requirements which were ignored during prototype development.
Process model Suitability
Prototyping model should be used when the desire system needs to have a lot of interaction with the end users.

Rapid Application Development (RAD)

This model is an incremental software development process model that emphasized and extremely short development cycle. This model is helpful to create a ‘Fully functional system’ within a short period if requirements are well understood. 

Stages of Rapid Application Development (RAD)
        i.            Business Modeling
What information drives the Business process, what info is generated, who generates it, where dose the info goes and who process it are the points which highlight this model. This is the model which identify the Business functions in this customer environment.
      ii.            Data Modeling
Simply it highlights the information flow of the system and identifying the attributes and the relationships between the data objects.
    iii.            Process Modeling
In this Stage process descriptions are created for adding, updating, deleting or selecting the data object.
    iv.            Application Generation
To implement the system 4th generation languages can be used.
E.g.: C#, Php
      v.            Testing and Turnover
All the components must be tested and interfaces must be fully excessed
Merits
·         Low cost
·         Customer involvement during the complete system
·         Increased reusability of components
·         Promotes consumer feedback
Demerits
·         Need human resources to create right number of RAD teams
·         Need developers and customers to get a system completed in a much abbreviated time frame
·         Technical risk is high.
Process model suitability
This model is suitable for projects which can be time boxed and where the requirements are well defined.

Spiral Model

This model couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. This is the model which provides a clear recognition for risk.

Merits
·         High amount of risk analysis hence, avoidance of risk in enhanced
·         Good for large and mission-critical projects
·         Strong approval
·         Documentation control
·         Additional functionality can be added at a later date
·         Software is produced early in the software life cycle
Demerits
·         It can be a costly model to use
·         This risk analysis requires specific expertise
·         Project’s success is highly dependent on the risk analysis phase
·         It doesn’t work well for smaller projects

Agile Model

This software development is a group of software development methodologies based on iterative and incremental development. It promotes adaptive planning using a time boxed approach. They aim to cut down formalities and reduced documentation that will probably never be used. Planning, requirement analysis, design, coding, until testing and acceptance testing and includes in each iteration.

Dynamic System Development Methodology (DSDM)

This development methodology is originally based on Rapid Application Development (RAD) Methodology. The Dynamic System development method (DSDM) uses in incremental prototyping. It is an iterative and incremental approach that emphasis continuous user involvement. This method is useful for the system to be developed in short time span. At the start of the application the requirements cannot be frozen.

Comments

Post a Comment

Popular Posts