Unified Software Development Process (UP)

Download Report

Transcript Unified Software Development Process (UP)

Unified Software Development
Process (UP)
• Also known as software engineering
process
• SEP describes how requirements are
turned into software
• Defines who, what, when and how of
developing software.
• UML is the visual part
• UP is the process part
• A divide and conquer approach to capture
and handle complexity
• The complete large system may be
incomprehensible
• Break down into blocks
• Large blocks are called subsystems
• Subsystems are made up of components
• Also try to describe how the components
and subsystems are to be used
• Describe the intended interaction and
sequence of interactions
• SEP specification work started in 1967
• Interactive-Iterative development was
formalized
RUP is a commercial variant of UP
• ‘Who’ introduces the concept of worker or
roles
• ‘When’ describes activities to be
performed by individuals or teams
• A sequence of related activities is known
as a workflow
• ‘What’ describes artifacts (inputs and
outputs) – in other words : deliverables
UP instantiation
•
•
•
•
•
Setting up the environment
Setting up the standards
Setting up tracking process and reports
Adopting quality control methods
Permeate this mindset through the
organization
UP axioms
• Identify and develop use cases
• Do risk analysis of software development
• Risk analysis done by project manager
and architect
• Architect – strategic aspects of system
composition and its deployment on
hardware
• Stepwise requirement
• Mini projects – contain all elements of a
complete software development
– Planning
– Analysis and design
– Construction
– Integration and testing
– Internal/external release
– Complete documentation
• Baseline increments
• Requirements – what the system should
do
• Analysis – refining and
structuring/modeling requirements
• Design – system architecture, with details,
that realizes the requirements
• Implementation – building the software
• Test – verifying the software against
requirements
• Projects can be a sequence of
steps/iteration
• Identify dependencies
• Parallelize activities
• Agreed baselines
• Review of each phase
• Formal process of change management
• Inception – life cycle objectives (initiate
project)
– Establish feasibility
– Create business case
– Capturing essential requirements and scope
– Identifying critical risks
•
•
•
•
Project managers and system architect
Mostly requirements and analysis
Maybe prototype for proof of concept
Not much testing
Inception Milestones
Milestone
Deliverable
Project Objectives
Vision Document
Scope and Key requirements
Understood
Initial Use-case model + Glossary
Cost and Schedule Estimate/Business
case made
Project Plan and Estimate signed off
Risk Assessment
Risk Assessment document
Feasibility Studies
Prototypes developed
Outline Architecture
Initial Architecture Document
• Elaboration – life cycle architecture (establishing
project)
–
–
–
–
–
Create a baseline architecture
Refine risk assessment
Define quality attributes
Capture use cases and functional requirements
Detailed plan for construction
• Establish core workflows w.r.t. requirements,
analysis and design
Elaboration Milestones
Milestone
Deliverable
Detailed executable and architectural
model
UML Static and Dynamic Model, Usecase Model
Vision well defined
Vision Document /Glossary– revised
Risk re-assessed
Revised Risk Assessment document
Usability agreed with stakeholders
SRS document with details
Project Plan with details
Project Plan document and
dissemination
Agreement for Continuation
Project Signoff
• Construction – initial operational capability
(implementation)
– Ensuring consistency with the goals of the first
two phases
– Maintenance and flexibility are core issues
• Detect inconsistencies or hidden
requirements
• Finish analysis and design model
• Code
• Test
Construction Milestones
Milestone
Deliverable
Develop a stable software that is
deployable
Software product, UML Models, Test
Suite
Stakeholders ready for transition
User manuals, release preparation
Cost re-evaluation
Revise project plan
• Transition – product release – deployment
– Correct defects
– Prepare user site
– Customize software for user
– Modify for unforeseen needs
– Manuals and documentation
– Consultancy and training
– Project review
• Mainly testing and acceptance testing at
user site
Transition Milestones
Milestone
Deliverable
Beta testing completed, changes
made and stakeholders agree on
successful deployment
Software product
Users using the product
Feedback
Product Support
User support plans
Stages within UP
• Get off ground with prototype
• Develop project model with baseline increments
• Detail requirements and develop structured use
cases
• Specify details for implementation for functional
and non-functional requirements with flexibility
• Implement, module/unit test
• Performance testing, field testing, deployment
setup
• Release, customize and maintain
Different Hats
•
•
•
•
•
•
•
Systems Analyst
Requirements Engineer
Use-case engineer
Software analyst
Design Engineer
Architect
Component Engineer