SlideShare a Scribd company logo
1 of 56
SOFTWARE ENGINEERING
METHODOLOGY
1
SOFTWARE ENGINEERING METHODOLOGY
Waterfall Model
Iterative Model
Rational Unified Process
Agile
 XP
 Scrum
2
1. CLASSICAL WATERFALL MODEL
 Classical waterfall model divides life cycle into phases:
 feasibility study,
 requirements analysis and specification,
 design,
 coding and unit testing,
 integration and system testing,
 maintenance.
3
CLASSICAL WATERFALL MODEL
Feasibility Study
Req. Analysis
Design
Coding &
Unit Testing
Integration
Testing
Maintenance
4
ITERATIVE WATERFALL MODEL (CONT.)
Feasibility Study
Req. Analysis
Design
Coding
Testing
Maintenance
5
2. ITERATIVE MODEL
Requirements
Gathering Quick Design
Refine
Requirements
Build Prototype
Customer
Evaluation of
Prototype
Design
Implement
Test
Maintain
Customer
satisfied
6
3. RATIONAL UNIFIED PROCESS (RUP)
 The Rational Unified Process (RUP) is an iterative
software development process framework created
by the Rational Software Corporation, a division of
IBM since 2003.
 It has four phases:
 Inception
 Elaboration
 Construction
 Transition
7
RATIONAL UNIFIED PROCESS (RUP)
(CONTD…)
 In each of the iteration, the unit of work is divided
into 9 disciplines:
 6 of 9 are engineering disciplines are:
1)Business modeling
2)Requirements
3)Analysis and Design
4)Implementation
5)Test
6)Deployment
 3 of 9 are supporting disciplines are:
1)Configuration and Change Management
2)Project Management
3)Environment
8
PHASES OF RUP
9
MILESTONE OF PHASES
10
Each phase is concluded with a well-defined milestone—a
point in time at which certain critical decisions must be
made, and therefore key goals must have been achieved.
INCEPTION
 During the inception phase, you establish the
business case for the system and delimit the project
scope.
 To accomplish this you must identify all external
entities with which the system will interact (actors)
and define the nature of this interaction at a high-
level.
 This involves identifying all use cases and
describing a few significant ones. The business
case includes success criteria, risk assessment,
and estimate of the resources needed, and a phase
plan showing dates of major milestones. 11
INCEPTION (CONTD…)
The outcome of the inception phase is:
 A vision document: a general vision of the core project's
requirements, key features, and main constraints.
 A initial use-case model (10% -20%) complete).
 An initial project glossary (may optionally be partially
expressed as a domain model).
 An initial business case, which includes business context,
success criteria (revenue projection, market recognition,
and so on), and financial forecast.
 An initial risk assessment.
 A project plan, showing phases and iterations.
 A business model, if necessary.
 One or several prototypes. 12
ELABORATION PHASE
 The purpose of the elaboration phase is to analyze
the problem domain, establish a sound architectural
foundation, develop the project plan, and eliminate
the highest risk elements of the project.
 Architectural decisions have to be made with an
understanding of the whole system: its scope,
major functionality and nonfunctional requirements
such as performance requirements.
 In the elaboration phase, an executable
architecture prototype is built in one or more
iterations, depending on the scope, size, risk, and
novelty of the project.
13
ELABORATION PHASE
The outcome of the elaboration phase is:
 A use-case model (at least 80% complete) — all use cases
and actors have been identified, and most use case
descriptions have been developed.
 Supplementary requirements capturing the non functional
requirements and any requirements that are not associated
with a specific use case.
 A Software Architecture Description.
 An executable architectural prototype.
 A revised risk list and a revised business case.
 A development plan for the overall project, including the
coarse-grained project plan, showing iterations” and
evaluation criteria for each iteration.
 An updated development case specifying the process to be
used.
 A preliminary user manual (optional). 14
CONSTRUCTION PHASE
 During the construction phase, all remaining
components and application features are developed
and integrated into the product, and all features are
thoroughly tested.
 The construction phase is, in one sense, a
manufacturing process where emphasis is placed
on managing resources and controlling operations
to optimize costs, schedules, and quality.
 The outcome of the construction phase is a product
ready to put in hands of its end-users.
15
CONSTRUCTION PHASE (CONTD…)
At minimum, it consists of:
 The software product integrated on the adequate
platforms.
 The user manuals.
 A description of the current release.
 Here you decide if the software, the sites, and the
users are ready to go operational, without exposing
the project to high risks. This release is often called
a “beta” release.
16
TRANSITION PHASE
 The purpose of the transition phase is to transition
the software product to the user community.
 Once the product has been given to the end user,
issues usually arise that require you to develop new
releases, correct some problems, or finish the
features that were postponed.
 The transition phase is entered when a baseline is
mature enough to be deployed in the end-user
domain.
17
TRANSITION PHASE (CONTD…)
This includes:
 “beta testing” to validate the new system against
user expectations
 parallel operation with a legacy system that it is
replacing
 conversion of operational databases
 training of users and maintainers
 roll-out the product to the marketing, distribution,
and sales teams
18
TRANSITION PHASE (CONTD…)
 The transition phase focuses on the activities
required to place the software into the hands of the
users.
 Typically, this phase includes several iterations,
including beta releases, general availability
releases, as well as bug-fix and enhancement
releases.
19
WORKFLOW
 A workflow is a sequence of activities that produces
a result of observable value.
 In UML terms, a workflow can be expressed as a
sequence diagram, a collaboration diagram, or an
activity diagram.
 There are nine core process workflows in the
Rational Unified Process, which represent a
partitioning of all workers and activities into logical
groupings.
20
CORE WORKFLOW
The core process workflows are divided into six core
“engineering” workflows:
1. Business modeling workflow
2. Requirements workflow
3. Analysis & Design workflow
4. Implementation workflow
5. Test workflow
6. Deployment workflow
And three core “supporting” workflows:
1. Project Management workflow
2. Configuration and Change Management workflow
3. Environment workflow
21
BUSINESS MODELING
 In Business Modeling we document business
processes using so called business use cases.
 This assures a common understanding among all
stakeholders of what business process needs to be
supported in the organization.
 The business use cases are analyzed to
understand how the business should support the
business processes.
 This is documented in a business object-model.
Many projects may choose not to do business
modeling
22
REQUIREMENTS
 The goal of the Requirements workflow is to describe
what the system should do and allows the developers
and the customer to agree on that description.
 To achieve this, we elicit, organize, and document
required functionality and constraints; track and
document tradeoffs and decisions.
 A Vision document is created, and stakeholder needs
are elicited. Actors are identified, representing the users,
and any other system that may interact with the system
being developed.
 Use cases are identified, representing the behavior of
the system.
 Because use cases are developed according to the
actor's needs, the system is more likely to be relevant to
the users.
23
ANALYSIS & DESIGN
 The goal of the Analysis & Design workflow is to
show how the system will be realized in the
implementation phase. You want to build a system
that:
 Performs—in a specific implementation
environment—the tasks and functions specified in
the use-case descriptions.
 Fulfills all its requirements.
 Is structured to be robust (easy to change if and
when its functional requirements change).
24
IMPLEMENTATION
The purpose of implementation is:
 To define the organization of the code, in terms of
implementation subsystems organized in layers.
 To implement classes and objects in terms of
components (source files, binaries, executables,
and others).
 To test the developed components as units.
 To integrate the results produced by individual
implementers (or teams), into an executable
system.
25
TEST
The purposes of testing are:
 To verify the interaction between objects.
 To verify the proper integration of all components of
the software.
 To verify that all requirements have been correctly
implemented.
 To identify and ensure defects are addressed prior
to the deployment of the software.
26
DEPLOYMENT
The purpose of the deployment workflow is to successfully
produce product releases, and deliver the software to its
end users. It covers a wide range of activities including:
 Producing external releases of the software.
 Packaging the software.
 Distributing the software.
 Installing the software.
 Providing help and assistance to users.
 In many cases, this also includes activities such as:
 Planning and conduct of beta tests.
 Migration of existing software or data.
 Formal acceptance.
27
PROJECT MANAGEMENT
 Software Project Management is the art of
balancing competing objectives, managing risk, and
overcoming constraints to deliver, successfully, a
product in which meets the needs of both
customers and the users.
 This workflow focuses mainly on the specific aspect
of an iterative development process. Our goal with
this section is to make the task easier by providing:
 A framework for managing software-intensive projects.
 Practical guidelines for planning, staffing, executing, and
monitoring projects.
 A framework for managing risk.
28
CONFIGURATION & CHANGE MANAGEMENT
 In this workflow we describe how to control the numerous
artifacts produced by the many people who work on a common
project.
 Control helps avoid costly confusion, and ensures that resultant
artifacts are not in conflict due to some of the following kinds of
problems:
 Simultaneous Update When two or more workers work
separately on the same artifact, the last one to make changes
destroys the work of the former.
 Limited Notification When a problem is fixed in artifacts
shared by several developers, and some of them are not notified
of the change.
 Multiple Versions Most large programs are developed in
evolutionary releases. One release could be in customer use,
while another is in test, and the third is still in development. If
problems are found in any one of the versions, fixes need to be
propagated between them. Confusion can arise leading to costly
fixes and re-work unless changes are carefully controlled and
monitored.
29
ENVIRONMENT
 The purpose of the environment workflow is to
provide the software development organization with
the software development environment—both
processes and tools—that are needed to support
the development team.
 It focuses on activities to develop the guidelines
needed to support a project.
 A step-by-step procedure is provided describing
how you implement a process in an organization.
 The environment workflow also contains a
Development Kit providing you with the guidelines,
templates and tools necessary to customize the
process. 30
AGILE METHODOLOGY
 An extension to the iterative approach to build
applications in a nimble fashion with a light weight
process.
 Agile methodology is an alternative to traditional
project management, typically used in software
development.
 It helps teams respond to unpredictability through
incremental, iterative work cadences, known as
sprints. Agile methodologies are an alternative to
waterfall, or traditional sequential development.
31
TWELVE PRINCIPLES BEHIND THE AGILE
MANIFESTO
 satisfy the customer through early and continuous
delivery of valuable software.
 Welcome changing requirements, even late in
development.
 Deliver working software frequently, from a couple
of weeks to a couple of months, with a preference
to the shorter timescale.
 Business people and developers must work
together daily throughout the project.
 Build projects around motivated individuals. Give
them the environment and support they need, and
trust them to get the job done.
32
TWELVE PRINCIPLES BEHIND THE AGILE
MANIFESTO
 The most efficient and effective method of conveying
information to and within a development team is face-to-
face conversation.
 Working software is the primary measure of progress.
 Agile processes promote sustainable development. The
sponsors, developers, and users should be able to
maintain a constant pace indefinitely.
 Continuous attention to technical excellence and good
design enhances agility.
 Simplicity is essential.
 The best architectures, requirements, and designs
emerge from self-organizing teams.
 At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behavior
accordingly. 33
PLAN DRIVEN SOFTWARE DEVELOPMENT
VS AGILE SOFTWARE DEVELOPMENT
34
PLAN DRIVEN SOFTWARE DEVELOPMENT
VS AGILE SOFTWARE DEVELOPMENT(CONTD..)
 the team will deploy
one increment of
software at the end of
the project
 a process starts after
successful completion
of another (Sequential)
 the team will deploy a
very small change of
the software or more
frequently.
 we plan all the time
(Concurrent)
Plan driven development Agile driven development
35
WATERFALL VS AGILE
•Customer satisfaction by rapid, continuous delivery
of useful software.
•People and interactions are emphasized rather than
process and tools.
•Customers, developers and testers constantly
interact with each other.
36
WATERFALL VS AGILE (CONTD…)
 Working software is delivered frequently (weeks
rather than months).
 Face-to-face conversation is the best form of
communication.
 Close, daily cooperation between business people
and developers.
 Continuous attention to technical excellence and
good design.
 Regular adaptation to changing circumstances.
 Even late changes in requirements are welcomed.
37
WATERFALL VS AGILE (CONTD…)
 The key is in Agile technique compressing the five
sequences of the conventional software
development method - called the Waterfall method -
to a one-week cycle. It manages to do this by
developing a system through repeated cycles
(iterative) and in smaller portions (incremental),
allowing developers to test and review during
development. Speed, lower cost, and flexibility are
key benefits.
38
AGILE
 The participants in an agile process
are not afraid of change.
 They view changes to the
requirements as good things,
because those changes mean that
the team has learned more about
what it will take to satisfy the
customer.
 Agile team members work together
on all aspects of the project. Each
member is allowed input into the
whole.
 No single team member is solely
responsible for the architecture or
the requirements or the tests. The
team shares those responsibilities,
and each team member has
influence over them.
39
AGILE PROCESSES
 There are many agile processes: SCRUM, Crystal,
Behavior-Driven Development (BDD), Test-Driven
Development (TDD), Feature-Driven Development
(FDD), Adaptive Software Development (ADP),
Extreme Programming (XP), and more... However,
the vast majority of successful agile teams have
drawn from all these processes to tune their own
particular flavor of agility. These adaptations appear
to come together with the combination of SCRUM
and XP, in which SCRUM practices are used to
manage multiple teams that use XP.
40
EXTREME PROGRAMMING (XP)
 Extreme Programming emphasizes teamwork.
Managers, customers, and developers. It improves a
software project in five essential ways: communication,
simplicity, feedback, respect, and courage.
 According to Wiki definition: "Extreme Programming
(XP) is a software development methodology which is
intended to improve software quality and
responsiveness to changing customer requirements. As
a type of agile software development, it advocates
frequent "releases" in short development cycles, which
is intended to improve productivity and introduce
checkpoints where new customer requirements can be
adopted." 41
EXTREME PROGRAMMING (XP) (CONTD…)
 Extreme Programming is a set of simple and
concrete practices that combine into an agile
development process.
 XP is a good general-purpose method for
developing software.
 Many project teams will be able to adopt it as it is.
 Many others will be able to adapt it by adding or
modifying practices.
42
EXTREME PROGRAMMING (XP) (CONTD…)
 XP is a set of practices that conforms to the values
and principles of Agile. XP is a discrete method,
whereas Agile is a classification.
 There are many Agile methods, XP is just one of
them.
43
SCRUM & XP
 None of the other Agile methods are as well
defined, or as broad in scope as XP. Scrum, for
example, is roughly equivalent to XP’s Planning
game practice, with elements of Whole Team.
 It is fair to say that Scrum is a subset of XP.
 Indeed, many Scrum teams augment their process
by adding in many of the XP practices such as
Acceptance Testing, Pair Programming, Continuous
Integration, and especially Test Driven
Development.
44
XP PRACTICES
45
SCRUM
 Scrum is an iterative and incremental agile software
development framework for managing software
projects and product or application development.
 Its focus is on "a flexible, holistic product
development strategy where a development team
works as a unit to reach a common goal" as
opposed to a "traditional, sequential approach”.
46
SCRUM (CONTD…)
 Scrum asks why does it take so long and so much
effort to do stuff.
 And why are we so bad at figuring out how long and
how much effort things will take.
 Scrum embraces uncertainty and creativity.
 It places a structure around the learning process,
enabling teams to assess both what they’ve
created, and just as importantly, how they created
it.
47
SCRUM PROCESS
48
SCRUM (CONTD…)
49
SCRUM ROLES
 There are these core roles for producing the
product:
 Product Owner
 Development Team
 ScrumMaster
 Stakeholders
 Managers
50
PRODUCT OWNER
51
•The Product Owner should be a person with vision, authority, and
availability.
•The Product Owner is responsible for continuously communicating the
vision and priorities to the development team.
•Product Owners must be available to answer questions from the team.
DEVELOPMENT TEAM
 Responsible for delivering potentially shippable
product increments at the end of each Sprint.
 Made up of 3–9 people with cross-functional skills
who do the actual work (analyze, design, develop,
test, technical communication, document, etc.).
 Self-organizing, even though they may interface
with project management organizations (PMOs).
52
SCRUMMASTER
 Accountable for removing impediments to the ability
of the team to deliver the sprint goal/deliverables.
 Is not the team leader, but acts as a buffer between
the team and any distracting influences.
 Ensures that the Scrum process is used as
intended.
 Enforcer of rules.
 Protector of the team and keep it focused on the
tasks at hand.
53
SCRUMMASTER
 Also been referred to as a servant-leader to
reinforce these dual perspectives.
 Differs from a Project Manager in that the latter may
have people management responsibilities unrelated
to the role of ScrumMaster.
 Excludes any such additional people
responsibilities.
54
BARRIERS TO FURTHER AGILE ADOPTION
55
AGILE SUCCESS FACTORS
56

More Related Content

What's hot

What's hot (20)

Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Python: Common Design Patterns
Python: Common Design PatternsPython: Common Design Patterns
Python: Common Design Patterns
 
The principles of simulation system design.pptx
The principles of simulation system design.pptxThe principles of simulation system design.pptx
The principles of simulation system design.pptx
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
 
Android Development Tools Overview
Android Development Tools OverviewAndroid Development Tools Overview
Android Development Tools Overview
 
Documenting Software Architectures
Documenting Software ArchitecturesDocumenting Software Architectures
Documenting Software Architectures
 
Srs
SrsSrs
Srs
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Design Pattern in Software Engineering
Design Pattern in Software EngineeringDesign Pattern in Software Engineering
Design Pattern in Software Engineering
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and Methods
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
The Traditional Approach to Requirement
The Traditional Approach to RequirementThe Traditional Approach to Requirement
The Traditional Approach to Requirement
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Class based modeling
Class based modelingClass based modeling
Class based modeling
 

Viewers also liked

Jayashan-cb004082-Criminal Face Recognition-Final
Jayashan-cb004082-Criminal Face Recognition-FinalJayashan-cb004082-Criminal Face Recognition-Final
Jayashan-cb004082-Criminal Face Recognition-Final
Jayashan Fernando
 

Viewers also liked (20)

Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Introduction and life cycle models
Introduction and life cycle modelsIntroduction and life cycle models
Introduction and life cycle models
 
Software as Hypothesis: Research-Based Design Methodology
Software as Hypothesis: Research-Based Design MethodologySoftware as Hypothesis: Research-Based Design Methodology
Software as Hypothesis: Research-Based Design Methodology
 
Agile vs Iterative vs Waterfall models
Agile vs Iterative vs Waterfall models Agile vs Iterative vs Waterfall models
Agile vs Iterative vs Waterfall models
 
Research Methodology
Research MethodologyResearch Methodology
Research Methodology
 
Agile and XP
Agile and XPAgile and XP
Agile and XP
 
Types of Language in Theory of Computation
Types of Language in Theory of ComputationTypes of Language in Theory of Computation
Types of Language in Theory of Computation
 
Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)
 
Survey on Requirements Engineering Tools
Survey on Requirements Engineering Tools Survey on Requirements Engineering Tools
Survey on Requirements Engineering Tools
 
Jayashan-cb004082-Criminal Face Recognition-Final
Jayashan-cb004082-Criminal Face Recognition-FinalJayashan-cb004082-Criminal Face Recognition-Final
Jayashan-cb004082-Criminal Face Recognition-Final
 
Dbms normalization
Dbms normalizationDbms normalization
Dbms normalization
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Glossary of Agile Terms
Glossary of Agile TermsGlossary of Agile Terms
Glossary of Agile Terms
 
Concurrency control
Concurrency controlConcurrency control
Concurrency control
 
Agile Scrum software methodology
Agile Scrum software methodologyAgile Scrum software methodology
Agile Scrum software methodology
 
Rup
Rup Rup
Rup
 
Em201432 bib1220scm
Em201432 bib1220scmEm201432 bib1220scm
Em201432 bib1220scm
 
Radioaffpre
RadioaffpreRadioaffpre
Radioaffpre
 
آشنایی با Opnet
آشنایی با Opnetآشنایی با Opnet
آشنایی با Opnet
 
Agile Methodology in Software Development
Agile Methodology in Software DevelopmentAgile Methodology in Software Development
Agile Methodology in Software Development
 

Similar to Software Engineering Methodology

Difference Unified Processes
Difference Unified ProcessesDifference Unified Processes
Difference Unified Processes
HARKUL
 

Similar to Software Engineering Methodology (20)

Rup
RupRup
Rup
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle Model
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
Lec_Rational Unified Process
Lec_Rational Unified ProcessLec_Rational Unified Process
Lec_Rational Unified Process
 
se02_SW_Process.ppt
se02_SW_Process.pptse02_SW_Process.ppt
se02_SW_Process.ppt
 
I
II
I
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Difference Unified Processes
Difference Unified ProcessesDifference Unified Processes
Difference Unified Processes
 
Software development models
Software development modelsSoftware development models
Software development models
 
Dynamic System Development
Dynamic System DevelopmentDynamic System Development
Dynamic System Development
 
SE Sumerville 9th Chp 2
SE Sumerville 9th Chp 2SE Sumerville 9th Chp 2
SE Sumerville 9th Chp 2
 
SDLC
SDLCSDLC
SDLC
 
4 sdlc and stlc
4 sdlc and stlc4 sdlc and stlc
4 sdlc and stlc
 
Software process
Software processSoftware process
Software process
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
Comparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available MethodologyComparing Various SDLC Models On The Basis Of Available Methodology
Comparing Various SDLC Models On The Basis Of Available Methodology
 
Software models
Software modelsSoftware models
Software models
 
2. Software process
2. Software process2. Software process
2. Software process
 
Rational unified process lecture-5
Rational unified process lecture-5Rational unified process lecture-5
Rational unified process lecture-5
 

More from Rajandeep Gill (7)

Chronic Kidney Disease Prediction
Chronic Kidney Disease PredictionChronic Kidney Disease Prediction
Chronic Kidney Disease Prediction
 
Graph traversal-BFS & DFS
Graph traversal-BFS & DFSGraph traversal-BFS & DFS
Graph traversal-BFS & DFS
 
4. avl
4. avl4. avl
4. avl
 
Asymptotic Notation and Complexity
Asymptotic Notation and ComplexityAsymptotic Notation and Complexity
Asymptotic Notation and Complexity
 
Operating system quiz
Operating system quizOperating system quiz
Operating system quiz
 
Deadlock
DeadlockDeadlock
Deadlock
 
Enterprise and Enterprise Application
Enterprise and Enterprise ApplicationEnterprise and Enterprise Application
Enterprise and Enterprise Application
 

Recently uploaded

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 

Recently uploaded (20)

Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 

Software Engineering Methodology

  • 2. SOFTWARE ENGINEERING METHODOLOGY Waterfall Model Iterative Model Rational Unified Process Agile  XP  Scrum 2
  • 3. 1. CLASSICAL WATERFALL MODEL  Classical waterfall model divides life cycle into phases:  feasibility study,  requirements analysis and specification,  design,  coding and unit testing,  integration and system testing,  maintenance. 3
  • 4. CLASSICAL WATERFALL MODEL Feasibility Study Req. Analysis Design Coding & Unit Testing Integration Testing Maintenance 4
  • 5. ITERATIVE WATERFALL MODEL (CONT.) Feasibility Study Req. Analysis Design Coding Testing Maintenance 5
  • 6. 2. ITERATIVE MODEL Requirements Gathering Quick Design Refine Requirements Build Prototype Customer Evaluation of Prototype Design Implement Test Maintain Customer satisfied 6
  • 7. 3. RATIONAL UNIFIED PROCESS (RUP)  The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.  It has four phases:  Inception  Elaboration  Construction  Transition 7
  • 8. RATIONAL UNIFIED PROCESS (RUP) (CONTD…)  In each of the iteration, the unit of work is divided into 9 disciplines:  6 of 9 are engineering disciplines are: 1)Business modeling 2)Requirements 3)Analysis and Design 4)Implementation 5)Test 6)Deployment  3 of 9 are supporting disciplines are: 1)Configuration and Change Management 2)Project Management 3)Environment 8
  • 10. MILESTONE OF PHASES 10 Each phase is concluded with a well-defined milestone—a point in time at which certain critical decisions must be made, and therefore key goals must have been achieved.
  • 11. INCEPTION  During the inception phase, you establish the business case for the system and delimit the project scope.  To accomplish this you must identify all external entities with which the system will interact (actors) and define the nature of this interaction at a high- level.  This involves identifying all use cases and describing a few significant ones. The business case includes success criteria, risk assessment, and estimate of the resources needed, and a phase plan showing dates of major milestones. 11
  • 12. INCEPTION (CONTD…) The outcome of the inception phase is:  A vision document: a general vision of the core project's requirements, key features, and main constraints.  A initial use-case model (10% -20%) complete).  An initial project glossary (may optionally be partially expressed as a domain model).  An initial business case, which includes business context, success criteria (revenue projection, market recognition, and so on), and financial forecast.  An initial risk assessment.  A project plan, showing phases and iterations.  A business model, if necessary.  One or several prototypes. 12
  • 13. ELABORATION PHASE  The purpose of the elaboration phase is to analyze the problem domain, establish a sound architectural foundation, develop the project plan, and eliminate the highest risk elements of the project.  Architectural decisions have to be made with an understanding of the whole system: its scope, major functionality and nonfunctional requirements such as performance requirements.  In the elaboration phase, an executable architecture prototype is built in one or more iterations, depending on the scope, size, risk, and novelty of the project. 13
  • 14. ELABORATION PHASE The outcome of the elaboration phase is:  A use-case model (at least 80% complete) — all use cases and actors have been identified, and most use case descriptions have been developed.  Supplementary requirements capturing the non functional requirements and any requirements that are not associated with a specific use case.  A Software Architecture Description.  An executable architectural prototype.  A revised risk list and a revised business case.  A development plan for the overall project, including the coarse-grained project plan, showing iterations” and evaluation criteria for each iteration.  An updated development case specifying the process to be used.  A preliminary user manual (optional). 14
  • 15. CONSTRUCTION PHASE  During the construction phase, all remaining components and application features are developed and integrated into the product, and all features are thoroughly tested.  The construction phase is, in one sense, a manufacturing process where emphasis is placed on managing resources and controlling operations to optimize costs, schedules, and quality.  The outcome of the construction phase is a product ready to put in hands of its end-users. 15
  • 16. CONSTRUCTION PHASE (CONTD…) At minimum, it consists of:  The software product integrated on the adequate platforms.  The user manuals.  A description of the current release.  Here you decide if the software, the sites, and the users are ready to go operational, without exposing the project to high risks. This release is often called a “beta” release. 16
  • 17. TRANSITION PHASE  The purpose of the transition phase is to transition the software product to the user community.  Once the product has been given to the end user, issues usually arise that require you to develop new releases, correct some problems, or finish the features that were postponed.  The transition phase is entered when a baseline is mature enough to be deployed in the end-user domain. 17
  • 18. TRANSITION PHASE (CONTD…) This includes:  “beta testing” to validate the new system against user expectations  parallel operation with a legacy system that it is replacing  conversion of operational databases  training of users and maintainers  roll-out the product to the marketing, distribution, and sales teams 18
  • 19. TRANSITION PHASE (CONTD…)  The transition phase focuses on the activities required to place the software into the hands of the users.  Typically, this phase includes several iterations, including beta releases, general availability releases, as well as bug-fix and enhancement releases. 19
  • 20. WORKFLOW  A workflow is a sequence of activities that produces a result of observable value.  In UML terms, a workflow can be expressed as a sequence diagram, a collaboration diagram, or an activity diagram.  There are nine core process workflows in the Rational Unified Process, which represent a partitioning of all workers and activities into logical groupings. 20
  • 21. CORE WORKFLOW The core process workflows are divided into six core “engineering” workflows: 1. Business modeling workflow 2. Requirements workflow 3. Analysis & Design workflow 4. Implementation workflow 5. Test workflow 6. Deployment workflow And three core “supporting” workflows: 1. Project Management workflow 2. Configuration and Change Management workflow 3. Environment workflow 21
  • 22. BUSINESS MODELING  In Business Modeling we document business processes using so called business use cases.  This assures a common understanding among all stakeholders of what business process needs to be supported in the organization.  The business use cases are analyzed to understand how the business should support the business processes.  This is documented in a business object-model. Many projects may choose not to do business modeling 22
  • 23. REQUIREMENTS  The goal of the Requirements workflow is to describe what the system should do and allows the developers and the customer to agree on that description.  To achieve this, we elicit, organize, and document required functionality and constraints; track and document tradeoffs and decisions.  A Vision document is created, and stakeholder needs are elicited. Actors are identified, representing the users, and any other system that may interact with the system being developed.  Use cases are identified, representing the behavior of the system.  Because use cases are developed according to the actor's needs, the system is more likely to be relevant to the users. 23
  • 24. ANALYSIS & DESIGN  The goal of the Analysis & Design workflow is to show how the system will be realized in the implementation phase. You want to build a system that:  Performs—in a specific implementation environment—the tasks and functions specified in the use-case descriptions.  Fulfills all its requirements.  Is structured to be robust (easy to change if and when its functional requirements change). 24
  • 25. IMPLEMENTATION The purpose of implementation is:  To define the organization of the code, in terms of implementation subsystems organized in layers.  To implement classes and objects in terms of components (source files, binaries, executables, and others).  To test the developed components as units.  To integrate the results produced by individual implementers (or teams), into an executable system. 25
  • 26. TEST The purposes of testing are:  To verify the interaction between objects.  To verify the proper integration of all components of the software.  To verify that all requirements have been correctly implemented.  To identify and ensure defects are addressed prior to the deployment of the software. 26
  • 27. DEPLOYMENT The purpose of the deployment workflow is to successfully produce product releases, and deliver the software to its end users. It covers a wide range of activities including:  Producing external releases of the software.  Packaging the software.  Distributing the software.  Installing the software.  Providing help and assistance to users.  In many cases, this also includes activities such as:  Planning and conduct of beta tests.  Migration of existing software or data.  Formal acceptance. 27
  • 28. PROJECT MANAGEMENT  Software Project Management is the art of balancing competing objectives, managing risk, and overcoming constraints to deliver, successfully, a product in which meets the needs of both customers and the users.  This workflow focuses mainly on the specific aspect of an iterative development process. Our goal with this section is to make the task easier by providing:  A framework for managing software-intensive projects.  Practical guidelines for planning, staffing, executing, and monitoring projects.  A framework for managing risk. 28
  • 29. CONFIGURATION & CHANGE MANAGEMENT  In this workflow we describe how to control the numerous artifacts produced by the many people who work on a common project.  Control helps avoid costly confusion, and ensures that resultant artifacts are not in conflict due to some of the following kinds of problems:  Simultaneous Update When two or more workers work separately on the same artifact, the last one to make changes destroys the work of the former.  Limited Notification When a problem is fixed in artifacts shared by several developers, and some of them are not notified of the change.  Multiple Versions Most large programs are developed in evolutionary releases. One release could be in customer use, while another is in test, and the third is still in development. If problems are found in any one of the versions, fixes need to be propagated between them. Confusion can arise leading to costly fixes and re-work unless changes are carefully controlled and monitored. 29
  • 30. ENVIRONMENT  The purpose of the environment workflow is to provide the software development organization with the software development environment—both processes and tools—that are needed to support the development team.  It focuses on activities to develop the guidelines needed to support a project.  A step-by-step procedure is provided describing how you implement a process in an organization.  The environment workflow also contains a Development Kit providing you with the guidelines, templates and tools necessary to customize the process. 30
  • 31. AGILE METHODOLOGY  An extension to the iterative approach to build applications in a nimble fashion with a light weight process.  Agile methodology is an alternative to traditional project management, typically used in software development.  It helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. Agile methodologies are an alternative to waterfall, or traditional sequential development. 31
  • 32. TWELVE PRINCIPLES BEHIND THE AGILE MANIFESTO  satisfy the customer through early and continuous delivery of valuable software.  Welcome changing requirements, even late in development.  Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.  Business people and developers must work together daily throughout the project.  Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 32
  • 33. TWELVE PRINCIPLES BEHIND THE AGILE MANIFESTO  The most efficient and effective method of conveying information to and within a development team is face-to- face conversation.  Working software is the primary measure of progress.  Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.  Continuous attention to technical excellence and good design enhances agility.  Simplicity is essential.  The best architectures, requirements, and designs emerge from self-organizing teams.  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 33
  • 34. PLAN DRIVEN SOFTWARE DEVELOPMENT VS AGILE SOFTWARE DEVELOPMENT 34
  • 35. PLAN DRIVEN SOFTWARE DEVELOPMENT VS AGILE SOFTWARE DEVELOPMENT(CONTD..)  the team will deploy one increment of software at the end of the project  a process starts after successful completion of another (Sequential)  the team will deploy a very small change of the software or more frequently.  we plan all the time (Concurrent) Plan driven development Agile driven development 35
  • 36. WATERFALL VS AGILE •Customer satisfaction by rapid, continuous delivery of useful software. •People and interactions are emphasized rather than process and tools. •Customers, developers and testers constantly interact with each other. 36
  • 37. WATERFALL VS AGILE (CONTD…)  Working software is delivered frequently (weeks rather than months).  Face-to-face conversation is the best form of communication.  Close, daily cooperation between business people and developers.  Continuous attention to technical excellence and good design.  Regular adaptation to changing circumstances.  Even late changes in requirements are welcomed. 37
  • 38. WATERFALL VS AGILE (CONTD…)  The key is in Agile technique compressing the five sequences of the conventional software development method - called the Waterfall method - to a one-week cycle. It manages to do this by developing a system through repeated cycles (iterative) and in smaller portions (incremental), allowing developers to test and review during development. Speed, lower cost, and flexibility are key benefits. 38
  • 39. AGILE  The participants in an agile process are not afraid of change.  They view changes to the requirements as good things, because those changes mean that the team has learned more about what it will take to satisfy the customer.  Agile team members work together on all aspects of the project. Each member is allowed input into the whole.  No single team member is solely responsible for the architecture or the requirements or the tests. The team shares those responsibilities, and each team member has influence over them. 39
  • 40. AGILE PROCESSES  There are many agile processes: SCRUM, Crystal, Behavior-Driven Development (BDD), Test-Driven Development (TDD), Feature-Driven Development (FDD), Adaptive Software Development (ADP), Extreme Programming (XP), and more... However, the vast majority of successful agile teams have drawn from all these processes to tune their own particular flavor of agility. These adaptations appear to come together with the combination of SCRUM and XP, in which SCRUM practices are used to manage multiple teams that use XP. 40
  • 41. EXTREME PROGRAMMING (XP)  Extreme Programming emphasizes teamwork. Managers, customers, and developers. It improves a software project in five essential ways: communication, simplicity, feedback, respect, and courage.  According to Wiki definition: "Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted." 41
  • 42. EXTREME PROGRAMMING (XP) (CONTD…)  Extreme Programming is a set of simple and concrete practices that combine into an agile development process.  XP is a good general-purpose method for developing software.  Many project teams will be able to adopt it as it is.  Many others will be able to adapt it by adding or modifying practices. 42
  • 43. EXTREME PROGRAMMING (XP) (CONTD…)  XP is a set of practices that conforms to the values and principles of Agile. XP is a discrete method, whereas Agile is a classification.  There are many Agile methods, XP is just one of them. 43
  • 44. SCRUM & XP  None of the other Agile methods are as well defined, or as broad in scope as XP. Scrum, for example, is roughly equivalent to XP’s Planning game practice, with elements of Whole Team.  It is fair to say that Scrum is a subset of XP.  Indeed, many Scrum teams augment their process by adding in many of the XP practices such as Acceptance Testing, Pair Programming, Continuous Integration, and especially Test Driven Development. 44
  • 46. SCRUM  Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development.  Its focus is on "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach”. 46
  • 47. SCRUM (CONTD…)  Scrum asks why does it take so long and so much effort to do stuff.  And why are we so bad at figuring out how long and how much effort things will take.  Scrum embraces uncertainty and creativity.  It places a structure around the learning process, enabling teams to assess both what they’ve created, and just as importantly, how they created it. 47
  • 50. SCRUM ROLES  There are these core roles for producing the product:  Product Owner  Development Team  ScrumMaster  Stakeholders  Managers 50
  • 51. PRODUCT OWNER 51 •The Product Owner should be a person with vision, authority, and availability. •The Product Owner is responsible for continuously communicating the vision and priorities to the development team. •Product Owners must be available to answer questions from the team.
  • 52. DEVELOPMENT TEAM  Responsible for delivering potentially shippable product increments at the end of each Sprint.  Made up of 3–9 people with cross-functional skills who do the actual work (analyze, design, develop, test, technical communication, document, etc.).  Self-organizing, even though they may interface with project management organizations (PMOs). 52
  • 53. SCRUMMASTER  Accountable for removing impediments to the ability of the team to deliver the sprint goal/deliverables.  Is not the team leader, but acts as a buffer between the team and any distracting influences.  Ensures that the Scrum process is used as intended.  Enforcer of rules.  Protector of the team and keep it focused on the tasks at hand. 53
  • 54. SCRUMMASTER  Also been referred to as a servant-leader to reinforce these dual perspectives.  Differs from a Project Manager in that the latter may have people management responsibilities unrelated to the role of ScrumMaster.  Excludes any such additional people responsibilities. 54
  • 55. BARRIERS TO FURTHER AGILE ADOPTION 55