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.