Search This Blog

Wednesday, 14 September 2011

SOFTWARE DEVELOPMENT LIFE CYCLE MODELS

 PHASES OF SOFTWARE PROJECT
1.      Requirement gathering and analysis
2.      Planning
3.      Design
4.      Development or coding
5.      Testing
6.      Deployment and maintenance

LIFE CYCLE MODELS – Describes how the phases combine together to form a complete project

Waterfall Model
1.      Here the project is divided into separate, distinct phases.
2.      Each phase communicates to the next through pre-specified outputs.
3.      When an error is detected, it is traced back to one previous phase at a time, until it gets resolved at some earlier phase.
4.      Application : Used where the requirements is known fully and ther is no change in requirements.
5.      Limitation : Not suitable for change driven and large projects.

Prototyping Model
1.      A prototyping model uses constant user interaction, early in the requirements gathering stage, to produce a prototype.
2.      The proto-type is used to derive the system requirements specification and can be discarded after the SRS is built.
3.      An appropriate life cycle model is chosen for building the actual product after the user accepts the SRS.
4.      Limitation: Development cost is high if we not use it properly.

Rapid Application Development model
1.      RAD is a variation of the prototyping model.
2.      First, in the RAD Model, it is not a prototype that is built but the actual product itself. That is, the built application is not discarded.

Spiral or Iterative Model
1.      In this model activity organized in spiral that has many iterations.
2.      It follows a process in which the activites are performed iteratively tell the requirements are met.
3.      It also enable the increments to be sent to the cusomer for approval.
4.      Each spiral has Go/No Go for the project at end of the review.
5.      Preferred for high risk projects.

V model
1.      The V-model splits into two parts- design and execution
2.      Test design is done early, while test execution is done in the end.
3.      There are different types of tests for each phase of life cycle
4.      Limitation: The execution of tests of different types cannot happen untel the entire product is built.

Modified V Model
 1.      The modified V model recognizes that different parts of a product are in different stages of evolution.
 2.      Each part enters the appropriate testing phase when the appropriate entry criteria are met.
 3.      This model can be implemented when the product can be broken into small parts which evolves independently.

SOFTWARE TESTING INTRODUCTION



TESTING
      Testing is the process of executing a program or system with the intent of finding errors.

PRINCIPLES OF TESTING
1.      The goal of testing is to find defects bofore customers find them out.
2.      Testing applies all through the software life cycle and is not at the end of cycle.
3.      Understand the reason behind the test.
4.      Test the tests first.
5.      Testing requires talented,committed people who believe in themselves and work in teams

QUALITY
     Quality is meeting the requirements expected of the software, consistently and predictably.

QUALITY ASSURANCE
1.      Concentrates on the process of producing the products.
2.      Defect prevention oriented.
3.      Usually done throughout the life cycle.
4.      Example : reviews and audits.

QUALITY CONTROL
1.      Concentrates on specific products.
2.      Defect-detection and correction oriented.
3.      Usually done after the product is built.
4.      Example: Software testing at various levels.

VERIFICATION
     Verification is the process of evaluating a system or component to determine whether the products of a given phase satisfy the conditions imposed at the start of that phase.

VALIDATION
     Validation is the process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements

LEVELS OF TESTING
1.      Verification testing  2. Unit testing  3. Integration testing  4. System testing  5. User acceptance testing

STATIC VERSUS DYANAMIC TESTING
     Statis testing is perfomed using the software documentation. The code is not executing during static testing. Most verification techniques are static tests.
     Dynamic testing requires the code to be in an executable state to perform the tests. Most validation tests are dynamic tests.