1.software Development Process
1.software Development Process
1.software Development Process
Unit 1
12 marks
Definition of Software
Software is:
1. Instructions (computer programs) that when
executed provide desired features, function, and
performance;
2. Data structures that enable the programs to
adequately manipulate information, and
3. Descriptive information (documents) in both
hard copy and virtual forms that describes the
operation and use of the programs.
Characteristics of software
Software is developed or engineered; it is not
manufactured in the classical sense.
Application software
Stand-alone programs that solve a specific business need.
Applications in this area process business or technical data in a
way that facilitates business operations or management/technical
decision making
Engineering/scientific software
Applications range from astronomy to volcanology, from
automotive stress analysis to space shuttle orbital dynamics, and
from molecular biology to automated manufacturing
E.g.: CAD software.
Embedded software
Resides within a product or system and is used to implement and
control features and functions for the end user and for the system
itself.
Embedded software can perform limited functions (e.g., key pad
control for a microwave oven) or provide significant function and
control capability (e.g., digital functions in an automobile such as
fuel control, dashboard displays, and braking systems).
E.g. Control buttons of washing machine.
Product-line software
Designed to provide a specific capability for use by many different
customers.
Product-line software can focus on a limited marketplace (e.g.,
inventory control products) or address mass consumer markets (e.g.,
word processing, spreadsheets, computer graphics, multimedia,
entertainment, database management, and personal and business
financial applications).
Web applications
Called “WebApps,” this network-centric software category spans a
wide array of applications.
In their simplest form, WebApps can be little more than a set of
linked hypertext files that present information using text and limited
graphics.
Artificial intelligence software
Makes use of non-numerical algorithms to solve
complex problems that are not amenable to
computation or straightforward analysis.
2. Planning:
Planning activity establishes a plan for software
engineering work that follows. Planning describes the
technical tasks to be conducted, the resources that will
be required, schedule, and the risks that
are likely in the work products to be produced.
3. Modeling:
• Modeling activity encompasses the creation of
models that allow the developer and the
customer to better understand software
requirements specifications and the design that
will achieve those requirements.
5. Deployment:
The software is delivered to the customers who
evaluates the delivered product and provides
feedback based on the evaluation.
Umbrella Activities:
• Generic views of SE is complemented by a set of
unbrella activities.
1. Waterfall Model
2. Incremental Model
3. RAD Model
4. Prototype Model
5. Spiral Model
The Waterfall Model:
Communication:
It involves heavy communication with the customer (or stakeholder) and encompasses
requirement gathering and related activities.
Planning:
In this activity, effort required, cost/budget, risk analysis ,time duration are estimated (project
plan is made)
Modeling:
This activity creates analysis and design models that both developers and customer to better
understand the requirements. Data structure, software architecture and other details are made.
Construction:
This activity performs code generation and testing to ensure whether requirements are fulfilled.
Code generation is done first and then testing is done after that.
Deployment:
Once the product is fully developed, it is delivered to the customer. Customer evaluates the
product and provides feedback.
• one stage should be completed before the other begins.
• All phases are clearly defined.
• Being oldest, this is one of the time tested Methods
• Real projects rarely follow sequential model.
• It is often difficult for the customer to state all
requirements explicitly.
• The working model is available only in the latter part of
the development.
• This model presents a high level view and
suggests to the developer the sequence of
events they should expect to encounter. This
model is used to prescribe software
development activities in variety of contexts.
• It is iterative in nature.
Disadvantages:
Cost is higher than waterfall model.
Needs good planning and design
The RAD Model:
• Rapid Application Development (RAD) is a modern software process model
that emphasizes a short development cycle.
• This model should be used if domain experts are available with relevant
business knowledge.
•
Advantages:
3. Productivity with small team in short development time and quick reviews,
risk control increases reusability of components, better quality.
4. May not be appropriate for very large scale systems where the
technical risks are high.
drawback of RAD model.
1. RAD needs enough human resources to create the required
number of RAD teams.
Disadvantages:
Overall software quality or maintainability may not get
considered when the prototype is being developed.
An inefficient algorithm may be implemented.
Inappropriate OS or programming language maybe used simply
because it is available.
The Spiral Model
• Using the spiral model, software is developed in a
series of evolutionary releases. During early
iterations, the release might be a model or
prototype.
• During later iterations, increasingly more complete
versions of the engineered system are produced.
• A spiral model is divided into a set of framework
activities defined by the software engineering team.
• Risk is considered as each revolution is made.
• Each pass through the planning region results in
adjustments to the project plan.
• Cost and schedule are adjusted based on feedback
derived from the customer after delivery.
Advantages:
The spiral model is a realistic approach to the development
of large-scale systems and software.
High amount of risk analysis hence, avoidance of risk is
enhanced.
Disadvantages:
It may be difficult to convince customers (particularly in
contract situations) that the evolutionary approach is
controllable.
It demands considerable risk assessment expertise and relies
on this expertise for success.
If a major risk is not uncovered and managed, problems will
undoubtedly occur.
Agile Software Development
Agile :
“Our highest priority is to satisfy the customer through early
and continuous delivery of valuable software“
IXP differs most from the original XP in its greater inclusion of management,
its expanded role for customers, and its upgraded technical practices.”
IXP incorporates six new practices that are designed to help ensure that an XP
project works successfully for significant projects within a large organization.
Readiness assessment.
i. Openness
ii. Commitment
iii. Courage
iv. Respect
v. Focus
Advantages:
• Transparency in project development status.
• Flexibility towards the changes.
• Improved communication, minimum overhead in
development process.
• Productivity can be improved.
Disadvantages:
• Some decisions are hard to track in fixed time span.
• There are problems to deal with non-functional
requirements of the system.
Dynamic Systems Development
Method(DSDM)
DSDM is a,
When project
requirements are not
clear.