0% found this document useful (0 votes)
20 views

Unit - 1

Uploaded by

Vrinda
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Unit - 1

Uploaded by

Vrinda
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Unit – 1

Software Process Models &


Lifecycle

BE Sem – VII SE – 3173213

Ms. Zarana Gajjar (IT-ICT Department)


Software :-
- It’s a collection of Data or Computer instructions that tell the computer how to work.

- Computer Program that when executed provide desired features, function &
performance

- Data Structure that enable programs to easily manipulate information

- Descriptive information in both hard and soft copy that describes the operation and
use of programs

+ +
Computer Data
Documents
Program Structure

Ms. Zarana Gajjar (IT-ICT Department)


Characteristics of Software :-
- Software is developed or engineered, it’s not manufactured in the classical sense

- Software doesn’t “Wear out”

- Custom build rather than Component based

Bathtub curve of hardware failure Software failure curve

Ms. Zarana Gajjar (IT-ICT Department)


Software Applications :-

System
Software
Artificial Application
Intelligence Software
Software
Software
Application Engineering
Web-based Domains & Scientific
Software Software

Product -
line
Software

Ms. Zarana Gajjar (IT-ICT Department)


Software Engineering:-
- Software Engineering is the Science and Art of building (designing and writing
programs) a software systems that are:

- on time
- on budget
- with acceptable performance
- with correct operation

- An establishment and use of sound engineering principles in order to obtain


economically software that is reliable and works efficiently in real machines.

Ms. Zarana Gajjar (IT-ICT Department)


Software Engineering Layered Approach :-

Software Engineering Tools allows automation of activities which helps to perform


systematic activities. A system for the support of software development, called computer-
aided software engineering (CASE). Examples: Testing Tools, Bug/Issue Tracking Tools etc…

It provides technical how-


to’s for building software, it Tools
encompasses many tasks
including communication, Methods
requirement analysis,
design modeling, program
construction, testing and Process
support
Quality Focus

Defines continuous process It is a foundation of Software Engineering,


improvement principles It is the glue the holds the technology
layers, It defines a framework activities

Ms. Zarana Gajjar (IT-ICT Department)


Quality Focus Process
- Main principle is “Quality Focus”. - Defines a framework with activities for
- Total Quality Management (TQM), Six effective delivery of software engineering
Sigma, ISO 9001, ISO 9000-3, technology
CAPABILITY MATURITY MODEL (CMM), - Establish the context in which technical
CMMI & similar approaches encourages methods are applied, work products are
a continuous process improvement produced, milestones are established, quality
culture is ensured, and change is properly managed.

Tools Methods
- Provide automated or semi - Provides technical how-to’s for
automated support for the process building software
and the methods - Encompasses many tasks including
- Results in High-Quality, defect-free communication, requirement
and maintainable software products analysis, design modeling, program
- Eg. Testing tools, Support system for construction, testing and support
software engineering

Ms. Zarana Gajjar (IT-ICT Department)


Software Process:-
Process Framework Activities
- Collection of activities, actions and
tasks that are performed when some
work product is to be created
- Adaptable approach that enables to pick
and choose appropriate set of work
actions and tasks
- Each of these activities, actions & tasks
reside within a framework or model
- Purpose of a software is to
a) Deliver software timely
b) Satisfactory Quality

Ms. Zarana Gajjar (IT-ICT Department)


Software Development life Cycle:-

Communication Planning Modeling Construction Deployment

Communication Communication with Planning Software Project Plan


Customers / which defines workflow
stockholders to that is to follow.
understand project It describes technical task,
requirements for risks, resources, product to
defining software be produced & work
features schedule

Modeling Creating models to Construction Code Generation


understand (manual or automated)
requirements and shows & Testing
design of software to (to uncover errors in the
achieve requirements code)

Deliver Software to Customer


Deployment Collect feedback from customer based on evaluation
Software Support
Ms. Zarana Gajjar (IT-ICT Department)
Umbrella Activities:-
- It establish a skeleton architecture for software engineering work.
- Umbrella activities applied throughout the software project & help a
software team to manage and control progress, quality, change & risks
- Umbrella activities are those which keep running in the background
throughout the software development

Software project Risk Software


Tracking & Control Management quality
assurance
Technical Reviews Measurement
Reusability
Software Configuration Management Management

Ms. Zarana Gajjar (IT-ICT Department)


Software Myths :-
“Some misleading
beliefs that caused
serious problems”
are Myths.

Customer Myths

Management Myths Practitioner’s


(Developer) Myths

Ms. Zarana Gajjar (IT-ICT Department)


Management myth - 1 & 2
Standards and procedures The newest
to build a system, which computers and
is enough. development tools.

Reality Reality
• Do not look at the standards and • Computer-aided software
procedures. engineering (CASE) tools are
• Are software practitioners aware of more important than
standard’s existence? hardware.

• Is it complete? • It takes much more than the


latest model computers to do
• Does it reflect modern software high-quality software
engineering practice? development.
• Is it streamlined to improve time to
delivery while still maintaining a
focus on quality?
Ms. Zarana Gajjar (IT-ICT Department)
Management myth - 3 & 4 Outsourced the
development activity,
Add more now relax & wait for
programmers and can the final working
catch up the schedule. product.

Reality Reality
• Software development is not a
• Major cause of failure
mechanistic process like
manufacturing. • If an organization does not
understand how to manage and
• In the words of Fred Brooks : "adding
control software projects
people to a late software project
internally, it will invariably
makes it later."
struggle when it outsources
• People who were working must spend software projects.
time educating the newcomers.
• People can be added but only in a
planned and well-coordinated
manner.
Ms. Zarana Gajjar (IT-ICT Department)
Customer myth - 1 & 2
Requirement Changes
A general statement
easily accommodated
of objectives is
as software is very
sufficient to start a
flexible.
development.
Reality Reality
• Comprehensive (detailed) statements • It is true that software
of requirements is not always requirements change, but the
possible, an ambiguous (unclear) impact of change varies with
“statement of objectives” can lead the time at which it is
to disaster. introduced.
• Unambiguous (clear) requirements • When requirements changes
can be gathered only through are requested early the cost
effective and continuous impact is relatively small.
communication between customer
and developer.

Ms. Zarana Gajjar (IT-ICT Department)


Practitioner's (Developer) myth - 1 & 2
Once we write the I can’t access
program, our job is quality until it is
done. running.

Reality Reality
• Experts say "the sooner you begin • Most effective software quality
'writing code', the longer it will take assurance mechanisms can be
you to complete." applied from the beginning of a
• 50-70 % of the effort is spent after project - the technical review.
delivery to the customer for the • Software reviews are more
first time. effective “quality filter” than
testing.

Ms. Zarana Gajjar (IT-ICT Department)


Practitioner's (Developer) myth - 3 & 4
Software
Working program is
engineering is
the only deliverable
about unnecessary
work product.
documentation.

Reality Reality
• A working program is only one part • Software engineering is not
of a software configuration. about creating documents. It is
• A variety of work products (e.g., about creating a quality
plans, models, documents etc.) product.
provide a foundation for successful • Better quality leads to reduced
engineering and, more important, rework. And reduced rework
guidance for software support. results in faster delivery times.

Ms. Zarana Gajjar (IT-ICT Department)


Software Process Models :-
• Also known as Software development life
cycle (SDLC)
• Prescribe a distinct set of activities, actions,
tasks and milestones (deliverables) required
to engineer high quality software.
• Process models are not perfect, but provide
roadmap for software engineering work.
• Provide stability, control and organization to
a process that if not managed can easily get
out of control.
• Adapted to meet the needs of software
engineers and managers for a specific
project.

SDLC Phases

Ms. Zarana Gajjar (IT-ICT Department)


Different Process Models :-

• Selection of Process model is Process Models


based on different parameters • Waterfall Model(Linear Sequential
Model)
o Classical Waterfall Model
o Type of the project & people
o Iterative Waterfall Model
o Complexity of the project
o Team size • Incremental Process Model
o Expert people in team • Evolutionary Model
o Working environment of team o Prototyping Model
o Software delivery deadline o The Spiral Model
• Rapid Application Development
Model(RAD Model)
• Component Based Development
Model

Ms. Zarana Gajjar (IT-ICT Department)


Classical Waterfall Model :-

When requirements for a problems are well understood


then this model is used in which work flow from
communication to deployment is linear
Ms. Zarana Gajjar (IT-ICT Department)
Advantages Disadvantages
• This model is very simple and • Classical waterfall model
is easy to understand. suffers from various
• Phases in this model are shortcomings, basically
processed one at a time. we can’t use it in real
projects.
• Each stage in the model is
clearly defined. • No feedback path
• This model has very clear and • Difficult to accommodate
well understood milestones. change requests
• Process, actions and results • No overlapping of phases
are very well documented.
• This model works well for
smaller projects and projects
where requirements are well
understood.
Ms. Zarana Gajjar (IT-ICT Department)
Iterative Waterfall Model :-

Provides feedback paths from every phase to its preceding


phases, which is the main difference from the classical
waterfall model.
Ms. Zarana Gajjar (IT-ICT Department)
Advantages Disadvantages

• Feedback Path • Difficult to incorporate


• Simple to understand and easy change requests
to implement. • Incremental delivery not
• Most widely used software supported
development model • Risk handling not supported
• Limited customer
interactions

Ms. Zarana Gajjar (IT-ICT Department)


Evolutionary Process Models
• When a set of core product or system requirements is well understood
but the details of product or system extensions have yet to be
defined.
• In this situation there is a need of process model which specially
designed to accommodate product that evolve with time.
• Evolutionary Process Models are specially meant for that which
produce an increasingly more complete version of the software with
each iteration.
• Evolutionary Models are iterative.
• They are characterized in a manner that enables you to develop
increasingly more complete versions of the software.
• Evolutionary models are
o Prototyping Model
o Spiral Model

Ms. Zarana Gajjar (IT-ICT Department)


Prototyping model
When to use ?
• Customers have general objectives of software but do not have detailed
requirements for functions & features.
• Developers are not sure about efficiency of an algorithm & technical
feasibilities.

• It serves as a mechanism for identifying software requirements.


• Prototype can be serve as “the first system”.
• Both stakeholders and software engineers like prototyping model
▪ Users get feel for the actual system
▪ Developers get to build something immediately

Ms. Zarana Gajjar (IT-ICT Department)


Prototyping model cont.
• Communicate with stockholders
& define objective of Software
• Identify requirements & design
quick plan
• Model a quick design (focuses on
visible part of software)
• Construct Prototype & deploy
• Stakeholders evaluate this
prototype and provides
feedback
• Iteration occurs and prototype is
tuned based on feedback

Prototype Model

Ms. Zarana Gajjar (IT-ICT Department)


Prototyping model cont.

Problem Areas
• Customer demand that “a few fixes” be applied to make the prototype a
working product, due to that software quality suffers as a result
• Developer often makes implementation in order to get a prototype working
quickly; without considering other factors in mind like OS, Programming
language, etc.
• Incomplete application may cause application not to be used as the full
system was designed.

Advantages
• Users are actively involved in the development
• Since in this methodology a working model of the system is provided, the
users get a better understanding of the system being developed
• Errors can be detected much earlier

Ms. Zarana Gajjar (IT-ICT Department)


The Spiral Model
• It provides the potential for rapid
development.
• Software is developed in a series of
evolutionary releases.
• Early iteration release might be
prototype but later iterations
provides more complete version of
software.
• It is divided into framework
activities. Each activity represent
one segment of the spiral
• Each pass through the planning
region results in adjustments to
▪ the project plan
▪ Cost & schedule based on feedback Spiral Model

Ms. Zarana Gajjar (IT-ICT Department)


The Spiral Model Cont.

When to use Spiral Model?

• For development of large scale / high-risk projects.


• When costs and risk evaluation is important.
• Users are unsure of their needs.
• Requirements are complex.
• New product line.
• Significant (considerable) changes are expected.

Ms. Zarana Gajjar (IT-ICT Department)


The Spiral Model Cont.
Advantages Disadvantages

• High amount of risk analysis • Can be a costly model to use.


hence, avoidance of Risk is • Risk analysis requires highly specific
enhanced. expertise.
• Strong approval and • Project’s success is highly dependent
documentation control. on the risk analysis phase.
• Additional functionality can be
• Doesn’t work well for smaller
added at a later date.
projects.
• Software is produced early in
the Software Life Cycle.

Ms. Zarana Gajjar (IT-ICT Department)


Incremental Process Model

• Many situations in which initial software requirements are reasonably


well defined, but the overall scope of the development effort
prevent a purely linear process.
• There may be a fascinating need to provide a limited set of software
functionality to users quickly and then refine and expand on that
functionality in later software releases.
• In such cases, there is a need of a process model that is designed to
produce the software in increments.
• It is a process of software development where requirements divided
into multiple standalone modules of the software development cycle.

Ms. Zarana Gajjar (IT-ICT Department)


Incremental Process Model cont.
• Each module goes through the Communication, Planning, Modeling,
Construction & Deployment phases.
• Every subsequent release of the module adds function to the previous
release.
• Process continues until the complete system achieved.
• A simple working system implementing only a few basic features is
built and then that is delivered to the customer.
• Thereafter many successive iterations/ versions are implemented and
delivered to the customer until the desired system is released.

Ms. Zarana Gajjar (IT-ICT Department)


Incremental Process Model cont.

• The incremental model combines elements of linear and parallel


process flows.
• Initially core working product is delivered.
• Each linear sequence produces deliverable “increments” of the
software.
Ms. Zarana Gajjar (IT-ICT Department)
Incremental Process Model cont.
When to use ?

• When the requirements are superior.


• A project has a lengthy development schedule.
• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the product.
• Funding Schedule, Risk, Program Complexity, or need for early
realization of benefits.
• Projects with new Technology.

Ms. Zarana Gajjar (IT-ICT Department)


Incremental Process Model cont.
Advantages
• Errors are easy to be recognized.
• Easier to test and debug
• More flexible.
• Lowers initial delivery cost.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.

Disadvantages

• Requires good planning and design.


• Total cost is high.
• Well defined module interfaces are required.

Ms. Zarana Gajjar (IT-ICT Department)


Rapid Application Development Model
(RAD Model)
• First proposed by IBM in 1980’s.
• It is a type of incremental model.
• Components or Functions are developed in parallel as if they were
mini projects.
• A software project can be implemented using this model if the
project can be broken down into small modules wherein each module
can be assigned independently to separate teams.
• Modules can finally be combined to form the final product.
• Another striking feature of this model is a short time span i.e the
time frame for delivery(time-box) is generally 60-90 days.

Ms. Zarana Gajjar (IT-ICT Department)


RAD Model cont.

Ms. Zarana Gajjar (IT-ICT Department)


RAD Model cont.
When to use ?

• When the system should need to create the project that modularizes
in a short span time (2-3 months).
• When the requirements are well-known.
• When the technical risk is limited.
• It should be used only if the budget allows the use of automatic code
generating tools.

Ms. Zarana Gajjar (IT-ICT Department)


RAD Model cont.
Advantages Disadvantages
• This model is flexible for change. • It required highly skilled
• Changes are adoptable. designers.

• Each phase in RAD brings highest • All application is not compatible


priority functionality to the customer. with RAD.
• For smaller projects, we cannot
• Reduced development time.
use the RAD model.
• Increases the reusability of features.
• On the high technical risk, it's
• Feedback from the customer is not suitable.
available at initial stages.
• Required user involvement.
• Use of powerful development tools
• The absence of reusable
results in better quality products in
components can lead to failure
comparatively shorter time spans.
of the project.
• The progress and development of the
project can be measured through the
various stages.

Ms. Zarana Gajjar (IT-ICT Department)


Component Based Process Model
• Commercial off-the-shelf (COTS) software components, developed by
vendors who offer them as products, can be used when software is to be
built.
• Provides targeted functionality with well defined interfaces that enables
component to be integrated into software.
• Incorporates many characteristics of the spiral model.
• It is evolutionary in nature, demanding an iterative approach to the
software development.
• Modeling and construction activities begin with the identification of
components.
• Components can be designed as either conventional software modules or
object-oriented classes or packages of classes.

Ms. Zarana Gajjar (IT-ICT Department)


Component Based Process Model cont.
Component based development incorporates the following
steps :
1. Available component-based products are researched &
evaluated for software development.
2. Component integration issues are considered.
3. A software architecture is designed to accommodate the
components.
4. Components are integrated into the architecture.
5. Comprehensive testing is conducted to ensure proper
functionality.

Ms. Zarana Gajjar (IT-ICT Department)


Product & Process
Key Product Process
Concept The product is the final result The process is a sequence or set of
of a development cycle. steps that should be followed to create
a product.
Focus Product development focus is The process focuses on each step to be
on final outcome. followed during software product
development.

Life A product life cycle tends to A process life cycle is generally long
be in the short term. term.

Goal The main goal of product The main goal of a process is to make a
development is to finish the good quality products.
work and get the product
delivered successfully.

Ms. Zarana Gajjar (IT-ICT Department)


Reference Books:-

1. Roger S.Pressman, Software Engineering- A practitioner’s Approach,


McGraw-Hill International Editions
2. Ian Sommerville, Software engineering, Pearson education Asia
3. Pankaj Jalote, Software Engineering – A Precise Approach Wiley
4. Behhforoz & Frederick Hudson, Software Engineering Fundamentals,
OXFORD
5. Rajib Mall, Fundamentals of software Engineering, Prentice Hall of
India.
6. Deepak Gaikwad, Viral Thakkar, DevOps Tools from Practitioner’s
ViewPoint, Wiley
7. Merlin Dorfman (Editor), Richard H. Thayer (Editor) ,Software
Engineering
8. Robert C. "Uncle Bob" Martin , Clean Architecture: A Craftsman's Guide
to Software Structure and Design

Ms. Zarana Gajjar (IT-ICT Department)


Ms. Zarana Gajjar (IT-ICT Department)

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy