Title: Unified Software Development Process (UP)
1Unified 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
2- 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
3- 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
4RUP 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
5UP 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
6UP 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
7- 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
8- 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
9- Projects can be a sequence of steps/iteration
- Identify dependencies
- Parallelize activities
- Agreed baselines
- Review of each phase
- Formal process of change management
10- 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
11Inception 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
12- 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
13Elaboration Milestones
Milestone Deliverable
Detailed executable and architectural model UML Static and Dynamic Model, Use-case 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
14- 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
15Construction 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
16- 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
17Transition 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
18Stages 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
19Different Hats
- Systems Analyst
- Requirements Engineer
- Use-case engineer
- Software analyst
- Design Engineer
- Architect
- Component Engineer