0% found this document useful (0 votes)
20 views41 pages

Module-1.2 SE&PM

The document outlines various software engineering processes, including linear, iterative, evolutionary, and concurrent models, emphasizing the importance of structured approaches to software development. It discusses specific methodologies such as the Waterfall, V-Model, Incremental, Prototyping, and Spiral models, along with their applications and advantages. Additionally, it highlights the significance of requirements gathering and process patterns in improving software quality and efficiency.

Uploaded by

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

Module-1.2 SE&PM

The document outlines various software engineering processes, including linear, iterative, evolutionary, and concurrent models, emphasizing the importance of structured approaches to software development. It discusses specific methodologies such as the Waterfall, V-Model, Incremental, Prototyping, and Spiral models, along with their applications and advantages. Additionally, it highlights the significance of requirements gathering and process patterns in improving software quality and efficiency.

Uploaded by

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

|| 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: DR.ABHILASH C N
Professor, Dept.of 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.
5.Comprehensive 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

You might also like