Monday 21 January 2013

software development life cycle

software development life cycle






As in other engineering discipline Any, software engineering HAS aussi some structured models for software development.

This document will Provide you with a generic overview about different software development methodologies ADOPTED by

contemporary software FIRMS. Read on to know more about the Software Development Life Cycle (SDLC) in detail.

Curtain Raiser

Like Any Other set of engineering products, software products are oriented aussi Towards the customer. Either it is market

driven or it drives the market. Customer Satisfaction and Customer Delight Were buzzwords Many decades ago.

Customer Co-creation is the new buzzword that's doing the rounds beens. Products That Are not customer or user friendly

Have No place in the market although They are engineered using the best technology. The experience of the product and

the participation of the customer in Creating the product is as crucial as the internal technology of the product.

Market Research

A market study is made to Identify a potential customer's need. This process is known as aussi market research. Here, the

Already Existing as possible and the need and potential needs That are available in a segment of the society are Studied

carefully. The market study is done based on a lot of Assumptions. Assumptions are the crucial factoring in the

development or inception of a product's development. Unrealistic Assumptions can because a nosedive in the Entire

venture. Though Assumptions are abstract, there shoulds be a move to economic development of tangible Assumptions to come up with a

successful product.



Research and Development

Once the Market Research is Carried out, the customer's need is Given to the Research & Development division (R & D) to

conceptualize a cost-effective system That Could Potentially solve the customer's needs in a Manner That is better than the

one ADOPTED by the Competitors at present. Once the conceptual system is Developed and tested in a hypothetical

environment, the development team takes control of it. The development team Adopts one of the software development

That Is Given below methodologies, develops the Proposed System, and Gives it to the customer.

The Sales & Marketing division starts selling the software to the available customers and simultaneously works to

economic development of a Niche That Could Potentially segment buy the software. In addition, the division assists aussi feedback from the

the customers to the developers and the R & D division to make value additions to be the product.

While Developing a software, the company outsourced the non-core activities to other companies who specialize in Those

activities. This ACCELERATES the software development process Largely. Some companies work on tie-ups to bring out a

highly matured product in a short period.

Popular Software Development Models

The Following are some basic popular models That Are ADOPTED by Many software development FIRMS

A. System Development Life Cycle (SDLC) Model
B. Prototyping Model
C. Rapid Application Development Model
D. Component Assembly Model

A. System Development Life Cycle (SDLC) Model

This is known as aussi Classic Life Cycle Model (or) Linear Sequential Model (or) Waterfall Method. This model Has the

Following activities.

1. System / Information Engineering and Modeling

As software is always of a wider system (or business), work begins by the Establishing Requirements for all system

items and then allocating some subset of These Requirements to software. This system view is essential When the

software must interface with other items Such as hardware, people and other resources. System is the basic and very

critical requirement for the existence of software in Any entity. So if the system is not in place, the system shoulds be

engineered and put in place. In some cases, to extract the maximum output, the system shoulds be re-engineered and

spruced up. Once the ideal system is engineered or tuned, the development team studies the software requirement for

the system.



2. Software Requirement Analysis

This process is known as aussi feasibility study. In this phase, the development team visits the customer and studies Their

system. They Investigate the need for automation in the software can Given system. By the end of the Feasibility

study, the team furnishes a Document That holds the different specific recommendations for the candidate system. It aussi

includes the staff assignments, costs, project schedule, target dates etc. .... The requirement gathering process is

Intensified and focussed specially on software. To Understand the Nature of the program (s) to be built, the system

engineer or "Analyst" must Understand the information domain for the software, as well as required function, behavior,

performance and interfacing. The essential purpose of this stage is to find the need and to define the problem That needs

to be solved.

3. System Analysis and Design

In this phase, the software development process, the software's overall structure and Its nuances are defined. In terms of

the client / server technology, the number of third needed for the package architecture, the database design, the data

structure design etc ... are all Defined in this phase. A software development model is created Malthus. Analysis and Design

are very crucial in the whole development cycle. Any glitch in the design stage Could be very expensive to solve in the

later course of the software development. Much care is taken falling on this phase. The logical system of the product is

Developed in this phase.

4. Code Generation

The design must be translated into a machine-readable form. The code generation step performs this task. If the design is

Performed in a detailed Manner, code generation can be accomplished without much complication. Programming tools

like compilers, interpreters, debuggers etc ... are used to generate the code. Different high level programming languages

like C, C + +, Pascal, Java are used for coding. With respect to the kind of application, the right programming language is

Chosen.

5. Testing

Once the code is generated, the software program testing begins. Different testing methodologies are available to

unravel the bugs COMMITTED That Were falling on the previous phases. Different testing tools and methodologies are Already

available. Some companies build Their own testing tools are tailor made for That Their own development operations.

6. Maintenance

The software will definitely change Undergo ounces it is Delivered to the customer. There can be Many Reasons for this

changes to Occur. Change Could Happen Because of some unexpected input values ​​into the system. In addition, the

exchange in the system Could Directly affect the software operations. The software shoulds be Developed to Accommodate

That Could Happen exchange falling on the post implementation period.

B. Prototyping Model

This is a cyclic version of the linear model. In this model, the requirement oz analysis is done and the design for a

prototype is made, the development process gets started. Once the prototype is created, it is Given to the customer for

evaluation. The customer tests the package and gives his / her feed back to the developer who REFINES the product

selon the customer's exact expectation. After a finite number of iterations, the final software package is Given to the

customer. In this methodology, the software is as a result of Evolved periodic shuttling of information entre le

customer and developer. This is the MOST popular development model in the contemporary IT industry. Most of the

successful software products Have Been Developed using this model - as it is very difficult (even for a whiz kid!) to

comprehend all the Requirements of a customer in one shot. There are Many variations of this model skewed with respect

to the project management styles of the companies. New versions of a software product evolve as a result of prototyping.

C. Rapid Application Development (RAD) Model

The RAD modelis a linear sequential software development process emphasizes That year extremely short development

cycle. The RAD model is a "high speed" adaptation of the linear sequential model in rapid development Which is

Achieved by using a component-based approach building. Primarily used for information systems applications, the

RAD approach encompasses the Following steps:

1. Business modeling

The information flow is Modeled Among business functions in a way That answers the Following Questions:

What information drives the business process?
What information is generated?
Who Generates it?
Where does the information go?
Who processes it?

2. Data modeling

The information flow Defined as share of the business modeling stage is refined into a set of data objects are needed That

Support to the business. The characteristic (Called attributes) of each Stock object is APPROBATION and the Relationships between

thesis objects are defined.

3. Process modeling

The data objects in the data-Defined modeling stage are Transformed to Achieve the Necessary information flow to

Implement a business function. Processing the descriptions are created for adding, Modifying, deleting, or retrieving a

data object.

4. Application generation

The RAD model assumed the use of the RAD tools like VB, VC + +, Delphi etc ... Rather Than Creating software using

conventional third generation programming languages. The RAD model works to reuse Existing program components

(When possible) or create reusable components (when necessary). In all cases, automated tools are used to Facilitate

Construction of the software.

5. Testing and turnover

Since the RAD process emphasizes reuse, Many of the program components Already Have beens tested. This minimizes

the development and testing time.

D. Component Assembly Model

Object technologies Provide the technical framework for a component-based process model for software engineering.

The object oriented paradigm emphasizes the establishment of classes encapsulate That Both data and the algorithm That Are

used to manipulate the data. If Properly Implemented and designed, object oriented classes are reusable across different

applicationsand computer based system architectures. Component Assembly Model leads to software reusability. The

integration / assembly of the Already Existing software components accelerate the development process. Many nowadays

component libraries are available on the Internet. If the right components are Chosen, the integration is made much appearance

simpler.

Conclusion

All different software development models thesis Have Their Own advantages and disadvantages. Nevertheless, in the

contemporary business software evelopment world, the fusion of all methodologies thesis is incorporated. Timing is

very critical in software development. If a delay happens in the development phase, the market Could be taken over by

the competitor. Also if a 'bug' filled product is Launched in a short period of time (quicker than the Competitors), it may

affect the reputation of the company. So, there shoulds be a tradeoff entre le development time and the quality of the

product. Customers do not expect a bug free product purpose They expect a user-friendly product That They Can give a thumbs-

up to.

Modals Software Development Life Cycle?
Methodologies: -

Agile Agile methods-Promote Generally a disciplined project management process That encouraged frequent inspection

and adaptation, a leadership philosophy That encouraged teamwork, self-organization and accountability, a set of

Intended engineering best practices to allow for rapid delivery of high-quality software, and a business approach That

aligns development with customer needs and company goals.

Rad Modal: - Its Minimal planning in favor of rapid prototyping. The "planning" of software Developed using RAD is

interleaved with writing the software Itself. The Lack of extensive pre-planning allows software to be Generally written much

faster, and makes it Easier to changing requirements.

Modal Spiral: The spiral-methodology extends the waterfall model by Introducing prototyping. Generally it is
Chosen over the waterfall approach for large, expensive, and complicated projects.At a high-level, the steps in the spiral

model are as follows:
The new system requirements are as Defined in much detail as possible. This Usually Involves interviewing a number of

Representing all the external users or internal users and other aspects of the Existing System.
A preliminary design is created for the new system.
A first prototype of the new system is Constructed from the preliminary design. Usually this is a scaled-down system, and

Represents approximate year of the characteristics of the final product.

Waterfall Method:-The name of the waterfall lifecycle model comes from icts physical appearance, Shown in Figure, and

the process by Which the results from one phase flow into the next. An alternative name for this model is the "Big Bang"

Because working lifecycle APPEAR first results near the end of the process, scientists describe how something like the Big

Bang theory of how the universe was created. The waterfall model is simple, easy to learn, and easy to use.

Modal V: - All the Necessary steps of Software Development Life Cycle (SDLC) are Followed. Most importantly, the stage

of Software Quality Assurance (SQA) is Executed with Utmost care. The life cycle used by us for application development

is as follows.



SDLC Phases?
The systems development life cycle (SDLC) is a conceptual model used in project management That Describes the

Involved in training year information system development project, from initial feasibility study through year of the service

completed application.


 SDLC Phases: -
Schedule
Everything starts with a concept. It could be a concept of someone, or everyone. However, there are Those That do not

start out with a goal concept with a question, "What do you want?" they ask Thousands of people in a community or some

age group to Know What They Want and decided to create an answer. Aim it all goes back to schedule and conceptualization.
Requirement
In engineering, a requirement is a singular Documented need of what a Particular product or services or shoulds be

perform. It is MOST Commonly used in a formal sense in systems engineering or software engineering. It is a statement

That has identified Necessary attribute, capability, characteristic, or quality of a system in order for it to Have value and utility

to a user.
Design
Once the schedule and arguing with the manager or owner about the plane and somehow convincing em, it is time to

design or create a rough plane Regarding the software.
Implemantion
The first two stages are quite common in all SDLC models. However, things change starting on this course. When the

design and all the things you need That Have Been laid out, it is time to work on the plan. Some developers, Especially

Those That follow the standard plan of Developing Software will work on the plane and present em for approval.
Testing
Could this mean two things DEPENDING ON SDLC model year. The first kind of testing is the testing by actual users. This is

Usually done in implementation models Wherein Does not go with pre-testing with users. On the other hand, there are aussi

That uses testing professionals in the field. This testing is Aimed in the cleaning of all the software bugs altogether. For

That software are set for public release, the software is first tested by other developers who Were not in charge in Creating

the software.
Acceptance
When the software is released to be used by a company some, acceptance means clustering software is Implemented as the year

Could be added tool or the replacing another software That too has-been found wanting Effective years of use. On the other hand,

When the software is to the public Implemented new software Could be an added software for use. It is difficulty to change

They are public purpose software not closing Their ears to new software. So developers will Always Have a fighting chance in

the market as long as They Implement Good software for public use.
Maintinance
When the software is Implemented, It Does not mean que le software is good as it is. All models include SDLC

service since there are absolutely no way That will be a software working perfectly. Someone HAS to stay in the

this software to take a look and Ensure the program works perfectly. When the software is Implemented in

Either set up companies public.Software a call center or an e-mail service to address the Concerns of the consumer. Ace

We have in previous chapters Indicated Maintenance is quiet an easy task as long as the right product is used as food and

year in expected time frame. However, it is always a challenge When something goes wrong. The whole team might not be

there to help the developer so Addressing a major concern Could never be answered.

Advantage and Disadvantage of SDLC modals?
SDLC models Advantages & disadvantages

Advantages of Waterfall Model

1. Clear project objective.
2. Stable project requirements.
3. Progress of system is Measurable.
4. Strict sign-off requirements.

Disadvantages of Waterfall Model

1. Time consuming
2. Never backward (Traditional)
3. Little room for iteration
4. Difficulty responding to exchange

Advantages of Spiral Model

1. Avoidance of Risk is enhanced.
2. Strong approval and documentation control.
3. Implementation HAS priority over functions on.
4. Additional Functionality can be added at a later date.

Disadvantages of Spiral Model

1. Highly customized Limiting re-usability
2. Applied Differently for each Stock Application
3. Risk of not meeting budget or schedule
4. Possibility to end up as the Waterfall Implemented framework

Advantages of Prototype Model

1. Strong Dialogue between users and developers
2. Missing functions on Can Be Easily APPROBATION
3. Confusing or difficult functions can be APPROBATION
4. Requirements validation, implementation of Quick, incomplete, intended
functional, application
5. May generate specifications for a Production Application
6. Environment to resolve unclear objective
7. Encouraged innovation and flexible designs

Disadvantages of Prototype Model

1. Awarded Contract may be without Rigorous Evaluation of Prototype
2. Identifying non-functional items to document difficulties
3. Incomplete implementation because implementation may not be used to have the
full system was designed
4. Incomplete or inadequate problem analysis
5. Customer may be unacknowledged
6. Approval process and requirement is not strict
7. Requirements may change Significantly Frequently

Software requirement specification (SRS)?


Software Requirements Specification (SRS) is complete description of the behavior of the system to be Developed. It

includes a set of use cases describe all the interactions That the users with the software will Have. Use cases are aussi

known as functional requirements. In addition to use cases, the SRS aussi contains non-functional (or supplementary)

requirements. Requirements Requirements are nonfunctional Which imposes constraints on the design or implementation

(Such as Performance Requirements engineering, quality standards, and design constraints).
1. What Makes a Great Software Requirements Specification?
We have to keep in mind is not que les goal to create great specifications aim to create great products and great software.

Can you create a great product without a great specification? Absolutely! You can make your first one million aussi through the

lottery - but why take your chances? Systems and software these days are so complex That to embark on the design

before knowing what you are going to build is foolish and risky.
2. What are the benefits of a Great SRS?

ESTABLISH · The Basis for agreement entre le customers and the suppliers on what the software product is to do.
· Reduce the development effort.
· Provide a Basis for Estimating Costs and schedules.
· Provide a baseline for validation and verification.
· Facilitate transfer.
· Serve as a Basis for enhancement.
3. WHAT ARE THE CHARACTERISTICS OF A GREAT SRS?

· Correct
· Unambiguous
· Complete
· Consistent
· Ranked for importance and / or stability
· Verifiable
· Editable
· Traceable

4. DIFFERENCE BETWEEN A REQUIREMENT AND DESIGN SOFTWARE REQUIREMENT?

The SRS shoulds not include Any design requirements. However, this is a difficulty discipline. For example, Because of the

partitioning and the RTOS you are using Particular, and the hardware you are using Particular, you may require No. That task

use more than 1 ms of processing Prior to releasing control back to the RTOS. Although may be a true That requirement

and it Involves software and shoulds be tested - it is truly a design requirement and shoulds be included in the Software

Design Document or in the source code.
Consider the target audience for each Stock specification to Identify what goes into what documents.
Marketing / Product Management
Creates a product specification and Gives it to Systems. It shoulds Systems needs to define everything Specify the

product
Systems
Creates a System Specification and Gives it to Systems / Software and Mechanical and Electrical Design.
Systems / Software
Creates a Software Specification and Gives it to Software. It shoulds define everything needs to economic development of the Software

Software.
Malthus, the SRS shoulds Explicitly define everything gold (de preference) by reference to economic development of That software needs the

Software. References shoulds include the version number of the target document. Also, Consider using master documents

Which tools allow you to include other documents and Easily Access the full requirements.