0% found this document useful (0 votes)
70 views37 pages

Systems Analysis and Design: Software Development Life Cycle

The document discusses the Rational Unified Process (RUP) methodology for software development. It describes the four phases of RUP: Inception, Elaboration, Construction, and Transition. The Inception phase involves understanding requirements and determining feasibility. The Elaboration phase refines requirements and designs architecture. The Construction phase iteratively develops the product. The Transition phase deploys the product to end users. RUP aims to deliver high quality software on time and on budget through its iterative and risk-driven approach.
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)
70 views37 pages

Systems Analysis and Design: Software Development Life Cycle

The document discusses the Rational Unified Process (RUP) methodology for software development. It describes the four phases of RUP: Inception, Elaboration, Construction, and Transition. The Inception phase involves understanding requirements and determining feasibility. The Elaboration phase refines requirements and designs architecture. The Construction phase iteratively develops the product. The Transition phase deploys the product to end users. RUP aims to deliver high quality software on time and on budget through its iterative and risk-driven approach.
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/ 37

Systems Analysis and Design

Chapter 2: Software development life cycle

Slides in this presentation contain


hyperlinks. JAWS users should be
able to get a list of links by using
INSERT+F7
Learning Objectives
1.1 Choose the right SDLC
1.2 Describe the RUP methodologies
1.3 Describe the Agile methodologies
1.4 The great methodologies debate
68% of all Software Projects fail – ZDNET
1.1 Choose the right SDLC

• McKinsey – 17% of large IT Projects fail miserably


• Geneca - Large IT Projects run 45% over budget, 7% over time,
delivering 56% less value
• 75% Project participants lack confidence in their project
Software Projects fail from around 5 to 47
factors – Alexandria University
1.1 Choose the right SDLC
• Organizational Structure
• Badly Defined Requirements
• Unrealistic or Unarticulated goals
• Inability to handle project complexity
• Sloppy development practices
• Inaccurate estimates
Project failures can be controlled
1.1 Choose the right SDLC

• Delivery dates impact project delivery


• Projects estimations can be made as close
as possible
• Risks can be re-assessed, controlled and
managed
• Staff can be awarded for long work hours
Unified Software Development Process
1.1 Choose the right SDLC

• Rational Unified Process


• Agile Unified Process
• Basic Unified Process
• Enterprise Unified Process
• Essential Unified Process
• Open Unified Process
• Oracle Unified Method
• RUP-Systems Engineering
Agile methodology
1.1 Choose the right SDLC

• 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

A process framework that can be tailored to specific


organization or project needs ?

RUP is a methodology for delivering projects in a maximum


performance manner
RUP uses an integration of approaches & initiatives
1.2 Describe the RUP methodologies

 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

Analyst Designer / Tester


Developer
Key Aspects of RUP
1.2 Describe the RUP methodologies
Risk-driven process
Risk management integrated into the development process
Iterations are planned based on high priority risks
Use-Case driven development
Use cases express requirements on the system’s functionality and model the
business as context for the system
Use cases are defined for the intended system and are used as the basis of
the entire development process
Architecture-centric design
Architecture is the primary artefact to conceptualize, construct, manage, and
evolve the system
Consists of multiple, coordinated views (or models) of the architecture
Rational Unified Process – Snapshot
1.2 Describe the RUP methodologies

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 Elaboration Construction Transition

Define scope Plan project, Build product Transition


of project specify features, product to
baseline end user
architecture community

… … … …
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.

 Determine at least one possible solution.


 One or several prototypes.

 Understand the costs, schedule, and risks associated with the project.
 An initial risk assessment.
 Business case

 Decide what process to follow and what tools to use.


 A project plan
Elaboration phase
1.2 Describe the RUP methodologies

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

Construction is really about cost-efficient development of a


complete product—an operational version of your system—that
can be deployed in the user community

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

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.

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

 In RUP, the process is described at two levels: the


discipline level and the workflow detail level. A Workflow
is a grouping of activities that are often performed
"together" to produce a specific result. In particular,
workflow details describe groups of activities performed
together in a discipline.

 The workflows for the RUP disciplines and workflow


details are described using Unified Modeling Language
(UML) activity diagrams. Discipline diagrams contain the
workflow details of the discipline.
Models and Workflows
Each major workflow describes how to create
Build upon
Business and maintain a particular model.
Modeling
Business Model

Requirements
Workflow

Use-Case Model realized by


verified by
Analysis Design
Workflow
Design
Model
implemented by
Implementation
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

• Agile is a time boxed, iterative approach to software delivery


that builds software incrementally from the start of the project,
instead of trying to deliver it all at once near the end.
Agile History Timeline
1.3 Describe the Agile methodologies

On February of 2001, seventeen


people met to talk about Agile.
What emerged was the Agile
Feature Driven 'Software Development' Manifesto
Development (Agile
Modeling)

Dynamic Systems
Development Method (Agile
delivery Framework)

Hirotaka Takeuchi 1993 Jeff Sutherland, Jeff McKenna, John


1986 Scumniotales

2
What is Agile?
1.3 Describe the Agile methodologies

Rapid Adaptable

AGILE
Cooperative Iterative
Quality-driven

Not a process, it's a philosophy or set of


values
What is Agile?
1.3 Describe the Agile methodologies

• It works by breaking projects down into little bits of user


functionality called user stories, prioritizing them, and then
continuously delivering them in short two week cycles
called sprints.
Modern Agile
1.3 Describe the Agile methodologies

• The industry has become overloaded with techniques, processes,


methodologies and tools that have fallen under the Agile umbrella
• Modern Agile aims to move Agile to the next level, not by adding
complexity, but by simplifying— stressing only adherence to four
principles
Modern Agile guiding principles
1.3 Describe the Agile methodologies

Experiment & Learn


Rapidly “Make People
Is a guiding principle of Awesome”
Modern Agile because it If you make customers
protects us from wasting awesome, they tend to be
time and helps us discover natural promoters of your
success faster products or services

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

• Use-case driven from inception to • Small cross-functional teams are used


deployment, small team size
• Daily status meetings are held, less
• Architecture-centric, model visually, artifact can be better
well-documented, lots of artifact
• Short timeframe increments for each
• Iterative and incremental, where large change, short-term planning
projects are divided into smaller
projects • A working project is completed at
end of each iteration and
• Long-term detailed planning demonstrated to stakeholders
Main problems comparison: RUP vs Agile
1.4 The great methodologies debate

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

You might also like