|| Jai Sri Gurudev ||
SJB Institute of Technology
Department of Information Science & Engineering
With the Blessings of
His Divine Soul Jagadguru Padmabushana His Holiness Jagadguru
Sri Sri Sri Dr. Balagangadharanatha
Revered
Sri Sri Sri Dr. Nirmalanandanatha
Maha Swamiji, Maha Swamiji, Sri Sri Dr. Prakashanath Swamiji,
Founder President, President, Chief Pontiff Managing Director,
Sri Adichunchanagiri Shikshana Trust ® Sri Adichunchanagiri Shikshana Trust ® SJB and BGS Group of Institutions
2
Program: B.E. ISE
Course name: SOFTWARE ENGG.
and
PROJECT
MANAGEMENT
Course code: BCS501
VI semester, MODULE -1
Faculty: [Link] C N
Professor, [Link] ISE, SJBIT
Software Process Flow
Engineering
The
Software Process Flow – Relating the
Framework
A software team would need significantly
more information before it could
properly execute any one of these
activities as part of the software
process.
Therefore, you are faced with a key
question: What actions are appropriate
for a framework activity, given the
nature of the problem to be solved, the
Software Process Flow – Types
process flow—describes how the framework activities,
actions and tasks that occur within each framework
activity are organized with respect to sequence and
A linear process flow executes each of the five
time.
framework activities in sequence, beginning with
communication and culminating with
deployment.
An iterative process flow repeats one or more of
the activities before proceeding to the next.
An evolutionary process flow executes the
activities in a “circular” manner. Each circuit
through the five activities leads to a more
complete version of the software.
“Building computer software is an iterative social
learning process”
process flow—describes how the framework activities, actions
and tasks that
are organized with respect to sequence and
time, when a product
A linear process flow & iterative process flow
has to be created.
representation
Software Process Flow – Types
process flow—describes how the framework activities,
actions and tasks that occur within each framework
activity are organized with respect to sequence and
An Evolutionary process flow representation.
time.
Software Process Flow – Types
process flow—describes how the framework activities,
actions and tasks that occur within each framework
activity are organized with respect to sequence and
A Parallel process flow representation
time.
Software Process – Identification of Task
Set
Each software engineering action can be
represented by a number of different task sets—
each a collection of software engineering work
tasks, related work products, quality assurance
points, and project milestones.
A task set defines the actual work to be done to
accomplish the objectives of a software
engineering action.
Ex: Requirements Gathering
Software Process – Requirements
Gathering
For a Small Project
1. Make a list of stakeholders for the project.
2. Invite all stakeholders to an informal meeting.
3. Ask each stakeholder to make a list of features
and functions
required.
4. Discuss requirements and build a final list.
5. Prioritize requirements.
6. Note areas of uncertainty
Software Process – Requirements
Gathering
For a Large Project
1. Make a list of stakeholders for the 7. Refine user scenarios based on
project. stakeholder
2. Interview each stakeholder separately feedback.
to determine overall wants and needs. 8. Build a revised list of stakeholder
3. Build a preliminary list of functions requirements.
and features 9. Use quality function deployment
based on stakeholder input. techniques to
4. Schedule a series of facilitated prioritize requirements.
application 10. Package requirements so that they
specification meetings. can be delivered incrementally.
5. Conduct meetings. 11. Note constraints and restrictions
that will be placed on the system.
6. Produce informal user scenarios as
part of each meeting. 12. Discuss methods for validating the
system.
Software Process Pattern
Every software team encounters problems as it
moves through the software process, so if proven
solutions to these problems were readily available,
it can be resolved quickly.
A process pattern describes a process-related
problem that is encountered during software
engineering work, identifies the environment
providing one or more solutions to the problem.
In otherwords,
It provides you with a template with a consistent
method for describing solutions to the problem
within the context of the software process.
Software Process Pattern
Every Patterns can be defined at any level of
abstraction.
It can be with a complete process model, or with
framework activity or with an action inside an
framework activity.
THE TEMPLATE TO DESCRIBE A PROCESS
PATTERN:
Pattern Name
Intent
Type – Stage, Task and Phase Pattern
Initial Context
Problem
Solution
Software Process Pattern – Template
Description
Pattern Name - Technical Reviews
Intent - Environment
Type – Stage, Task and Phase Pattern – Level,
Work, Flow
Initial Context – Planning & Communication
Problem – Initialization of Process
Solution – Execution of Process
Resulting context – Project development
Related Patterns – Constraints & Scenario
Known uses & Examples – Communication &
Software Process Assessment – Various
Approaches
1. Standard CMMI Assessment Method for Process
Improvement (SCAMPI)—provides a five-step
process assessment model that incorporates five
phases:
initiating, diagnosing, establishing, acting, and
learning.
2. CMM-Based Appraisal for Internal Process
Improvement (CBA IPI)—provides a diagnostic
technique for assessing the relative maturity of
a software organization.
3. SPICE (ISO/IEC15504)—a standard that defines a
set of requirements for software process
Software Process Assessment &
Improvement
4. ISO 9001:2000 for Software—a generic standard
that applies to any organization that wants to
improve the overall quality of the products,
systems, or services that it provides. Therefore,
the standard is directly applicable to software
organizations and companies.
CMM stands for Capability Maturity Model, a
methodology used to develop and refine an
organization's software development process.
Prescriptive Process Models
Prescriptive process models were originally
proposed to bring order to the chaos of software
development.
The edge of chaos is defined as “a natural state
between order and chaos, a grand compromise
between structure and surprise.
The Waterfall Model
PRESCRIPTIVE PROCESS MODEL – WATERFALL
MODEL
The waterfall model, sometimes called the
classic life cycle, suggests a systematic,
sequential approach to software development
that begins with customer specification of
requirements and progresses through planning,
modeling, construction, and deployment,
culminating in ongoing support of the completed
software.
PRESCRIPTIVE PROCESS MODEL – V -MODEL
A variation in the
representation of
the waterfall
model is called the
V-model.
PRESCRIPTIVE PROCESS MODEL – V -MODEL
V-Model depicts the relationship of quality assurance
actions to the actions associated with
communication, modeling, and early construction
activities.
As a software team moves down the left side of the
V, the basic problem requirements are refined into
progressively more detailed and technical
representations of the problem and its solution.
Once code has been generated, the team moves up
the right side of the V, essentially performing a
series of tests (quality assurance actions) that
validate each of the models created as the team
moved down the left side.
Incremental Process Models
There are many situations in which initial software
requirements are reasonably well defined, but the
overall scope of the development effort precludes a
purely linear process.
Based on the functionality and set of features you
can choose a process model that is designed to
produce the software in increments, called as the
Incremental Model.
The incremental model combines elements of linear
and parallel process flows.
Incremental Model
Incremental Model - Example
For example, word-processing software
developed using the incremental paradigm
might deliver :
1. Basic file management, editing, and document
production functions in the first increment;
2. More sophisticated editing and document production
capabilities in the second increment;
3. Spelling and grammar checking in the third
increment; and
4. Advanced page layout capability in the fourth
increment.
Evolutionary Process Models
Software, like all complex systems, evolves over
a period of time. Business and product
requirements often change as development
proceeds:
making a straight line path to an end product
unrealistic.
tight market deadlines make completion of a
comprehensive software product impossible.
limited version must be introduced to meet
competitive or business pressure.
Evolutionary Process Models
Evolutionary models are iterative. They are
characterized in a manner that enables you to develop
increasingly more complete versions of the software.
PROTOTYPING Paradigm SPIRAL
Model
Evolutionary Process Models -
PROTOTYPING
The Software developer may be unsure of the
efficiency of an algorithm, the adaptability of an
operating system, or the form that human-
machine interaction should take.
Prototyping can be used as a stand-alone
process model, it is more commonly used as a
technique that can be implemented within the
context of any one of the process models.
It begins with communication. You meet with other
stakeholders to define the overall objectives for the
software, identify whatever requirements are known,
and outline areas where further definition is
Evolutionary Process Models -
PROTOTYPING
A prototyping iteration is planned quickly, and
modeling (in the form of a “quick design”) occurs.
A quick design focuses on a representation of those
aspects of the software that will be visible to end
users (e.g., human interface layout or output
display).
The quick design leads to the construction of a
prototype.
The prototype is deployed and evaluated by
stakeholders, who provide feedback that is used to
further refine requirements.
Both stakeholders and software engineers like
Evolutionary Process Models – SPIRAL
Model
The spiral model is an evolutionary software process
model that couples the iterative nature of
prototyping with the controlled and systematic
aspects of the waterfall 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
Evolutionary Process Models – SPIRAL
Model
Each of the framework activities represent one
segment of the spiral path.
As this evolutionary process begins, the software
team performs activities that are implied by a
circuit around the spiral in a clockwise direction,
beginning at the center.
The first circuit around the spiral might result in the
development of a product specification;
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.
Evolutionary Process Models – SPIRAL
Model
In otherwords,
Barry Boehm
Concurrent Process Model
The concurrent
development
model, sometimes
called concurrent
engineering,
allows a software
team to represent
iterative and
concurrent
elements of any of
the process
Concurrent Process Model
The activity—modeling—may be in any one of the
states.
Other activities, actions, or tasks (e.g.,
communication or construction) can be represented
in an analogous manner.
Concurrent modeling defines a series of events that
will trigger transitions from state to state for each
of the software engineering activities, actions, or
tasks.
Concurrent modeling is applicable to all types of
software development and provides an accurate
picture of the current state of a project.
Specialized Process Models
Specialized process models take on many of the
characteristics and tend to be applied when a
specialized or narrowly defined software
engineering approach is chosen.
1. Component-Based Development
2. The Formal Methods Model
3. Aspect-Oriented Software Development
Specialized Process Models
I Component-Based Development
1. Available component-based products are
researched and evaluated for the application
domain in question.
2. Component integration issues are considered.
3. A Software architecture is designed to
accommodate the components.
4. Components are integrated into the architecture.
[Link] testing is conducted to ensure
proper functionality
Software engineering team can achieve a reduction in
development cycle time as well as a reduction in
Specialized Process Models II The Formal
Method Model
The formal methods model encompasses a set of
activities that leads to formal mathematical
specification of computer software.
Formal methods enable you to specify, develop, and
verify a computer-based system by applying a
rigorous, mathematical notation. (e.g., developers of
aircraft avionics and medical devices)
Why its not being commonly used.?
1. The development of formal models is currently quite
time consuming and expensive.
2. Because few software developers have the necessary
background to apply formal methods, extensive
Specialized Process Models
III Aspect-Oriented Software Development (AOSD)
AOSD is a relatively new software engineering
paradigm that provides a process and
methodological approach for defining, specifying,
designing, and constructing aspects testing is
conducted to ensure proper functionality. Few
examples like
Customer required properties
High Level Properties (e.g., security, fault
tolerance)
Functions (e.g., the application of business rules)
Others are systemic (e.g., task sync or memory
UNIFIED Process
Examples for Work Product
Work Product includes, but is not limited to,
documents, text, software (including source code),
Research, reports, proposals, specifications, plans,
notes, studies, data, images, photographs,
negatives, pictures,
Drawings, designs, models, surveys, maps,
materials, ideas, concepts, etc.
UML Diagram
THANK YOU
HAPPY LEARNING, WRITE AND
PRACTICE TO GET BETTER OUTCOME