Systems Analysis and Design: Software Development Life Cycle
Systems Analysis and Design: Software Development Life Cycle
• Kanban
• Scrum
• XP
• Feature-driven development (FDD)
• Dynamic Systems Development Method (DSDM)
• Crystal
• Lean
What is Rational Unified Process ?
1.2 Describe the RUP methodologies
A software engineering process based on best practices in
modern software development
A disciplined approach to assigning and managing tasks
and responsibilities in a development organization
Focus on high quality software that meets the needs of its
end users within a predictable schedule and budget
Team-Unifying Approach
The RUP unifies a software team by providing a common view of
the development process and a shared vision of a common goal
Increased Team Productivity
knowledge base of all processes
view of how to develop software
Tool
modeling language Specialist
Rational provides many tools
Architect
Release
Engineer
Project
Management
time
Phases
Process Workflows Inception Elaboration Construction Transition
Business Modeling
content
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration & Change Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Dynamic Elements Phases and Milestones
1.2 Describe the RUP methodologies
Initial
Major Lifecycle Lifecycle Product
Operational
Milestones Objectives Architecture Release
Capability
time
… … … …
Inception Phase
1.2 Describe the RUP methodologies
Objective:
Inception is the first of four RUP phase
Understand what to build. its all about getting familiar with
A vision document: Project goal and Scope .this phase help
Optional business model you determine the project feasibility ,
An initial project glossary what customer want and how will you
get into more resource consumable
Identify key system functionality. phase.
A initial use-case model (10% -20%) complete.
Understand the costs, schedule, and risks associated with the project.
An initial risk assessment.
Business case
Objectives:
Elaboration is the second of the
Deeper Requirement understanding four phases in the RUP approach.
At least 80% complete use-case model
Supplementary requirements capturing The goal of the Elaboration phase
non functional requirements is to define and baseline the
None Use case requirement
architecture of the system in order
Architect consideration.
A Software Architecture Description. to provide a stable basis for the
An executable architectural prototype. bulk of the design and
implementation effort in the
Risk mitigation and Accurate Cost/Scapulae Construction phase. The
A revised risk list and a revised business case.
architecture evolves out of a
consideration of the most
Development Case refinement
A development plan for the overall project
significant requirements (those
coarse-grained project plan that have a great impact on the
showing iterations
evaluation criteria for each iteration.
architecture of the system) and an
assessment of risks.
Construction Phase
1.2 Describe the RUP methodologies
Objectives:
Minimize development costs and achieve some degree of
parallelism
Iteratively develop a complete product that is ready to transition
to its user community
The software product integrated on the adequate platforms.
The user manuals.
A description of the current release.
Transition Phase
1.2 Describe the RUP methodologies
Objectives:
“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
Improve future project performance through lessons learned
RUP Disciplines
1.2 Describe the RUP methodologies
Requirements
Workflow
Implementation
Test Workflow Model
Used by
Deployment Test Model
Workflows
Deployment model
Workflow Detail: Prepare Environment for Project
Bringing It All Together... In an iteration,
you walk through
all workflows
Phases
Process Workflows Inception Elaboration Construction Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration & Change Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
What is Agile?
1.3 Describe the Agile methodologies
Dynamic Systems
Development Method (Agile
delivery Framework)
2
What is Agile?
1.3 Describe the Agile methodologies
Rapid Adaptable
AGILE
Cooperative Iterative
Quality-driven
Deliver Value
Make Safety a
Continuously
Prerequisite
Anything valuable that hasn’t
Means establishing safety
been delivered isn’t helping
before engaging in
anyone. How might we
potentially hazardous work
deliver the right outcomes
faster
Agile Umbrella
1.4 The great methodologies debate
More Prescriptive
more rules to follow
RUP (120+)
RUP has over 30 roles, over 20
activities, and over 70 artifacts
Agile XP (13)
Scrum (9)
Scrum XP
Kanban (3)
DSDM
Crystal FDD
Kanban RUP Do Whatever!!
And few more… (0)
More Adaptive
* Check wikipedia for list of all Agile fewer rules to follow
methods
How is Agile different?
1.4 The great methodologies debate
The RUP has determined a project life-cycle You are never done A&D, coding and testing
consisting of four phases. These phases can on Agile project. So long as there are
break down into small iterations if needed features to build, these activities continue
for the duration of the project
RUP vs Agile: another view
RUP model
Agile model
Large Companies that use Agile…and lots of local guys, too
Main characteristics comparison: RUP vs Agile
1.4 The great methodologies debate
RUP: Agile:
Heavyweight, Is a Framework Lightweight, Like a Philosophy
RUP: Agile:
• It can be difficult to keep the interest of
• It mostly relies on the ability of experts
customers / users who are involved in the
and professionals to assign the
process.
activities to individuals
• Team members may be unsuited to the
• It is a rather complex method which intense involvement that characterizes
makes its implementation challenging, agile methods.
particularly for smaller businesses, • Prioritizing changes can be difficult where
teams or projects there are multiple stakeholders.
• A long time is spent doing • Maintaining simplicity requires extra work.
requirements or design work before • Contracts may be a problem as with other
programming starts approaches to iterative development.
• Too many roles, artifacts required • Because of their focus on small, tightly-
integrated teams, there are problems in
• High cost in managing, following RUP scaling agile methods to large systems.
project • Less emphasis on documentation - harder
to maintain when you get a new team for
• Tool-set are useful but expensive
maintenance
Experts review (1)
1.4 The great methodologies debate
Experts review (2)
1.4 The great methodologies debate
Experts review (3)
1.4 The great methodologies debate
Conclusion
• RUP will be main methodology in this course due to the following reasons:
– It is a framework
– Well documented, having templates, tools, well explanation
– Model visually
– Easy to learn, do not required much experience as Agile
– Good method to learn OOP, OOD
– Can be customized into small version with less artifacts