Friday, July 9, 2010

Rapid application development (RAD) Model


Characteristics of RAD Model: 
  • incremental software development process model
  • extremely short development cycle
  • high-speed model
RAD is considered as a feel-good approach where in :
  • Requirements are clear 
  • Scope of the project is constarined. 
  • Chances of creating a entire system withi a short span.
Uses of RAD:
  • Business modeling.
  • Data modeling.
  • Process modeling.
  • Application generation.
  • Testing.
Drawbacks of RAD: 
  • Huge demand for human resources for large projects.
  • Lack of Commitment leads to failure.
  • Proper Modularisation is required.Used where in technical risks are low.

Monday, July 5, 2010


Characteristics of Incremental model
  • The incremental model is repetitive Linear Sequential Model.
  • It is done with iterative philosophy.
  • In each iteration,Incremental produces deliverable as a increment.

For example:
Word-processing software developed using the incremental paradigm.
1st Increment -> Core Product
It delivers basic file management, editing, and document production functions.
Core product addresses basic requirements, whereas many supplementary features remain undelivered. The core product is used by the customer. As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality. This process is repeated following the delivery of each increment, until the complete product is produced.

2nd Increment
More sophisticated editing and document production capabilities
3rd Increment
Spelling and grammar checking
4th Increment
Advanced page layout capability in the fourth increment.
Like prototyping:
The incremental process model is iterative in nature.
Unlike prototyping:
The incremental model emphasizes on the delivery of a functional product with each increment.These increments are evolve to fprm a complete product.And this provides the user its operability and capability which can calculated.
Use:
Incremental development is especially implemented when staffing is insuffucient for a complete implementation by the business deadline of the project. Early increments can be done with fewer staff. If the ultimate core and base product is very well constructed, then extra staff can be utilized to implement the next increment. Increments can also be planned to manage technical risks.

Prototyping Model


Prototyping paradigm used in following scenarios:
  • A customer defines a set of objectives which are ambiguous.
  • The developer may not guess the efficiency of an algorithm and the capability of an operating system correctly.
Requirements Gathering:
The prototyping paradigm starts with requirements gathering stage. Developer and customer meet and define the overall objectives for the software, identify whatever requirements are known, and outline areas where further definition is mandatory.
Design:
A "quick design" then occurs. The quick design focuses on a representation of those aspects of the software that will be visible to the customer/user.
Build,Test and Deploy:
The quick design leads to the construction of a prototype. The prototype is evaluated by the customer/user and used to refine requirements for the software to be developed. Iteration occurs as the prototype is tuned to satisfy the needs of the customer, while at the same time enabling the developer to better understand what needs to be done.
Advantages:
The prototype serves as a mechanism for identifying software requirements.If a working prototype is built, the developer attempts to use existing program fragments or applies tools that enable working programs to be generated quickly.
Disadvantages:
  • The first system built is barely usable.
  • It requires good planning ,design and careful partitioning of the product.
  • It requires well-defined interfaces between the increments.
  • It requires early definition of fully functional product to define the requirements.
  • Slow
  • Big
  • Throwaway
Reasons for Failure:
  • Developer's implementation compromise to get a prototype working quickly.
  • Inappropriate operating system or programming language
  • inefficient algorithm


Friday, June 25, 2010

Waterfall Model

• Waterfall Model is introduced by Winston Royce in 1970.
• Waterfall model is also known as
         1.classic life cycle
         2.linear sequential model
• It describes a systematic, sequential approach to software development which starts at the system level and progresses through analysis, design, coding, testing, and support.

• Traditional waterfall model is a one-way linear sequence.

• The Waterfall Model includes the following activities:

1. Plan and Analyse/Software requirements analysis: This process is done at strategic business level and at business area level. The requirement document mainly consists of “what the system should do?”.

2. Design: Data structure, algorithmic details and software framework and architecture are the key parameters involved in software design. The design process translates requirements into a representation of the software.

3. Build/Code Generation: In Build phase, all the design documents are translated into code which are written in programming languages.

4. Test: In test phase, Testers play a vital role in detecting the bugs in the developed software product, not to debug bugs.It also done to verify whether the product is meeting the functional requirements.

5. Deploy:After Development and Testing, product is deployed in Go-Live environment.

Advantages of Waterfall Model:
  1. It is easy to use.
  2. It guides in making structured,disciplined and stable software product.
  3. It includes planned and properly defined milestones and baselines

Disadvantages of Waterfall Model:
  1. Requirements must be completely gathered at the inital stage itself.
  2. Each stage of the development is frozen before proceeding to the next stage.
  3. Not much interactio between client and developer.

Monday, June 14, 2010

What is SDLC?

  • SDLC stands for Software Development Lifecycle.
  • It is defined as the sequential steps of process taken to produce a software product.
  • Software development process is divided into different stages.
Plan/Analyze->Gathering Requirements.
Design->Completing Project Specification

Develop->Completing Product Development
Test->Completing testing of the product
Release/Deploy->Go-live
  • SDLC plays a key role in describing the activities taking place in each stage of software development.
  • SDLC kick starts right from the capability of the product is conceived to the production.
  • In other words,SDLC is initiated from requirements phase to deployment phase.
  • SDLC implies the associations and relationships between project phases.The project phases are including exit and entry criteria,reviews,feedback mechanisms,walkthroughs,milestones,deliverables and baselines
Uses of SDLC:
  • Guide to testers,project managers,business analysts,developers and other people involved in software development.
  • It avoids discrepancies in software development.
  • It minimizes the old code-and-fix-process.
Common SDLC Models:
  • Water fall model
  • Incremental/Overlapping Model
  • Prototyping Model
  • Spiral Model