Saturday, December 24, 2011

Software Life Cycle Models


* The following are the Software Life Cycle Models:
  1. Waterfall Model
  2.  Spiral Model
  3.  V Model 
  4.  RUP Analysis Model
  5.  RAD Model
  6.  Iterative Model

1. Waterfall Model



Feasibility: In this stage feasibility study of the software is done, It is also called the conception phase of a software product. 

*
Analysis: This phase includes the Analysis of the collected requirements.

*
Design: The collected software requirements are translated in this stage so that they can be  transformed into computer programs. 

*
Implementation: This is the stage where computer programs are Created.

*
Test:  This is the stage when the all the combined programs are successfully tested to see if   they are working as per the requirements. 

*
Maintenance: This stage involves correcting errors that have gone undetected.*


Pros and Cons:
  1. A classic SDLC model, with a linear and sequential method that has goals for each  development phase.
  2. The waterfall model simplifies task scheduling, because there are no iterative or  overlapping steps. 
  3. One drawback of the waterfall model is that it does not allow for much revision.

2. Spiral Model




  • The spiral lifecycle model is the combination of the classic waterfall model and an element called risk analysis. 
  • The model consists of four main parts, or blocks, and the process is shown by a continuous loop going from the outside towards the inside. This shows the progress of the project.

Planning: This phase is where the objectives, alternatives, and constraints are determined. 

Risk Analysis:  What happens here is that alternative solutions and constraints are defined, and risks are identified and analyzed. If risk analysis indicates uncertainty in the requirements, the prototyping model might be used to assist the situation. 

Engineering: Here the customer decides when the next phase of planning and risk analysis occur. If it is determined that the risks are to high, the project can be terminated. 

Customer Evaluation:  In this phase, the customer will assess the engineering results and make changes if necessary.


Strengths:
  1. Good for large and complex projects
  2. Customer Evaluation allows for any changes deemed necessary, or would allow for new     technological advances to be used. 
Weaknesses:


  1.  Difficult to convince some customers that the evolutionary approach is controllable 
  2.  Needs considerable risk assessment.If a risk is not discovered, problems will surely occur


3. V - Model


  •  V model is a classical software development and testing process model, which ensures quality of product by combining SDLC and STLC. 
  •  It encapsulates the steps in Verification and Validation phases for each step in the SDLC. For each phase, the subsequent phase becomes the verification (QA) phase and the corresponding testing phase in the other arm of the V becomes the validating (Testing) phase..




4. RUP Analysis

  1.  Object-oriented development approach
  2.  Reinforces six best practices

    •    Develop iteratively
    •    Define and manage system requirements
    •    Use component architectures
    •    Create visual models
    •    Verify quality
    •    Control changes 

     3.  Phases : Inception, elaboration, construction, and transition



*Inception: In this phase the business case which includes business context, success factors  (expected revenue, market recognition, etc), and financial forecast is established. 


*Elaboration:  This phase is where the project really starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form.

*Construction:  In this phase the main focus goes to the development of components and other features of the system being developed. This is the phase when the actual coding takes place and produces the first release of the software which serves as its milestone.

*Transition:   In this phase the product has moved from the development organization to the end user.  The activities of the phase include: Training of the end users and maintainers, Beta testing of  the system.



5. RAD ( Rapid Application Development) Model



Business Modeling: In this phase the information flow among business functions is modeled in a way it answers all the questions of a typical businesses


Data Modeling: In this phase the information flow defined in business modeling phase is refined into a set of data objects that are  needed to support the business 



Process Modeling: In this phase the data objects defined in data modeling phase are transformed to achieve the information flow necessary to implement a business function.

Application Generation : In this phase the application defined in earlier phases are created using 4th generation techniques

Testing & Turnover: In this phase all the components generated are tested and all interfaces  will be fully exercised.



6. Iterative Model

  • The software development project is divided into mini-projects, each of which is an iteration that results in an increment. 
  • Each iteration deals with the most important risks and realizes a group of use cases that together extend the usability of the product as developed so far.
  • In the early phases, a superficial design might be replaced by a more detailed or sophisticated one In later phases, increments are typically additive
















*

Monday, December 19, 2011

WelCome

Hi QA,

Soon I will update the information/posts related to Manual and Automation Testing.