SDLC

// Connect to the database SqlConnection myConnection = new SqlConnection(connection string); myConnection.Open();  // Specify the command to use to query the database SqlCommand myCommand = new SqlCommand(sql query, myConnection);  // If the SQL query has parameters (i.e., @ParamName), add values for // the parameters in the query... myCommand.Parameters.Add("@ParamName1", ParamValue1); myCommand.Parameters.Add("@ParamName2", ParamValue2); ... myCommand.Parameters.Add("@ParamNameN", ParamValueN);  // Retrieve the results of the query in a SqlDataReader SqlDataReader reader = myCommand.ExecuteReader();  // work with the returned data...

// Create a database object Database db = DatabaseFactory.CreateDatabase();  // Get back a DataReader IDataReader reader = db.ExecuteReader(CommandType.Text, SQL query);

http://watchmyblogger.blogspot.in/2009/02/sdlc-spiral-model.html

Waterfall Model

This is the most common and classic of life cycle models, also referred to as a linear-sequential life cycle model.  

It is very simple to understand and use.  In a waterfall model, each phase must be completed in its entirety before the next phase can begin. 

 At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. 

 Unlike what I mentioned in the general model, phases do not overlap in a waterfall model.

water fall model of sdlc

Waterfall model of SDLC

Advantages

Disadvantages

Incremental Model

The incremental model is an intuitive approach to the waterfall model.  Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle.  Cycles are divided up into smaller, more easily managed iterations.  Each iteration passes through the requirements, design, implementation and testing phases.

A working version of software is produced during the first iteration, so you have working software early on during the software life cycle.  Subsequent iterations build on the initial software produced during the first iteration.

Incremental life cycle model

Incremental Life Cycle Model

Advantages

Disadvantages

Spiral Model

The spiral model is similar to the incremental model, with more emphases placed on risk analysis.  The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation.  A software project repeatedly passes through these phases in iterations (called Spirals in this model).  The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed.  Each subsequent spirals builds on the baseline spiral.

Requirements are gathered during the planning phase.  In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.  A prototype is produced at the end of the risk analysis phase.

Software is produced in the engineering phase, along with testing at the end of the phase.  The evaluation phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.

In the spiral model, the angular component represents progress, and the radius of the spiral represents cost.

Spiral model of SDLC

Spiral model of SDLC

Advantages

Disadvantages

This model allows the client to interact and experiment with a working representation of the product. The developmental process only continues once the client is satisfied with the functioning of the prototype. At that stage the developer determines the specifications of the client’s real needs.

Advantages

--The software designer and implementer can obtain feedback from the users early in the project

--The client and the contractor can compare if the software made matches the software specification, according to which the software program is built.

--It also allows the software engineer some insight into the accuracy of initial project estimates and whether the deadlines and milestones proposed can be successfully met.

DisAdvantages

--Often clients expect that a few minor changes to the prototype will more than suffice their needs. They fail to realise that no consideration was given to the overall quality of the software in the rush to develop the prototype.

--The developers may lose focus on the real purpose of the prototype and compromise the quality of the product. For example, they may employ some of the inefficient algorithms or inappropriate programming languages used in developing the prototype. This mainly due to laziness and an over reliance on familiarity with seemingly easier methods.

-- A prototype will hardly be acceptable in court in the event that the client does not agree that the developer has discharged his/her obligations. For this reason using the prototype as the software specification is normally reserved for software development within an organisation.

When to use model?

--Prototyping is very effective in the analysis and design of on-line systems.

Systems with little user interaction, such as batch processing or systems that mostly do calculations, benefit little from prototyping. Sometimes, the coding needed to perform the system functions may be too intensive and the potential gains that prototyping could provide are too small.

--Prototyping is especially good for designing good human-computer interfaces. “One of the most productive uses of rapid prototyping to date has been as a tool for iterative user requirements engineering and human-computer interface design.”

The V-model is a software development process which can be presumed to be the extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.

The V-model deploys a well-structured method in which each phase can be implemented by the detailed documentation of the previous phase. Testing activities like test designing start at the beginning of the project well before coding and therefore saves a huge amount of the project time.

Advantages: 

1.Each Deliverable must be testable

2. Works for Small Projects

3.Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.

4. Time concern in comparison with the waterfall model is low or even we can say 50% less.

Disadvantages:

1.Doesn’t handle iterations or phases.

2.No early prototypes of software are not produced, Very rigid, like the waterfall model.

3.Little flexibility and adjusting scope is difficult and expensive.

4. Software is developed during the implementation phase, so no early prototypes of the software are produced.

5. Model doesn’t provide a clear path for problems found during testing phases.

When to use such model?

where time and cost is the constraints of the project then we can use such models for quick and cost effective delivery.

In comparison with waterfall model more or less same but the activity of testing starts very early, which leads to less time, and cost of the project.

RAD MODEL

This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data will be required). During these phases, the software's overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase