Ch 3: Unified Process

advertisement
Ch 3: Unified Process
CSCI 4320: Software Engineering
Unified Process
• Adaptable methodology for ObjectOriented Software production
• Iterative and Incremental
• UML diagrams
– Unified Modeling Language (UML)
– Redrawn as more knowledge about system is
gained (more accurate, extended)
UML Class Diagram
• Models the classes needed and relationship
associations, inheritance, compositions and
dependencies
Iteration and Incrementation
The basic software development process is
Iterative
– Each successive version is intended to be
closer to its target than its predecessor
An Incremental Process
– Miller’s Law : concentrate on ~ 7 chunks
– Use stepwise refinement
– handle in order of current importance
Waterfall vs. Unified Process
Waterfall
• One dimensional
• Each phase must be
completed before you
begin the next phase.
•
•
•
•
•
Unified Process
Incremental and
Iterative
Two dimensional
Task is divided into
increments (phases)
Within each increment
the developers have
to iterate (workflows)
until task is complete
Consecutive series of
waterfall models
Waterfall vs. Unified Process
Waterfall
Iterative and Incremental Model: Unified Process
Phases of the Unified Process
• Inception :
– Determine whether it is worthwhile to develop product
– Initial scope and financial details
• Elaboration:
– Refine requirements, produce software management
plan
• Construction
– Produce beta-release, initial user manual
• Transition
– Client feedback, correct faults, complete manuals
Workflows in the Unified Process
• Different workflows (activities) are
performed over the entire life cycle
• However, there are times when one
workflow may be dominant
• Core Workflows
– Requirements
– Analysis
– Design
– Implementation
– Test
Requirements Workflow
1. Acquire basic understanding of the application
domain (banking, automobile manufacturing)
2. Identify Customer Impact
3. Identify Constraints (deadlines, costs, existing
hardware, software)
•
•
Written in Language of Client
Problem: Sometimes the client does not know
what is going on in his organization.
GOAL: Assist client in gaining understanding of
system
Analysis Workflow
• Analyze and refine requirements for detailed
understanding
• Written in language of developer – more precise.
• Specifications produced are essential for testing
and maintenance
• OO Architectural Design: UML diagrams and
descriptions are given to client for confirmation
(Use Cases and Class Diagrams)
• Detailed planning and estimating: Software
Project Management Plan with deliverables,
milestones and budget
GOAL: Spell out what the project is to do
Design Workflow
• Refine analysis artifacts until it is a form that
can be implemented by programmers
• OO Detailed Design: For each class select
algorithms and data structures
• Have a written record of why specific
decisions were made
• Design to allow for future enhancements
GOAL: Show how the product will complete
specifications
Implementation Workflow
• Code in the chosen language(s)
• Each programmer is only given the
detailed design of his module
• Only during integration will individual
programmer know if architectural design
is correct
GOAL: Code and Integrate modules
Test Workflow
• Carried out in parallel with all other workflows
• Artifacts should be properly numbered, crossreferenced and index for traceability
 Requirements:
– SQA group review requirements
 Analysis:
– Representatives of SQA, analysis team and clients
walkthrough and inspect artifacts
– Obtain additional independent estimates of cost and
duration
GOAL: Find Faults Early!
Test Workflow (cont)
 Design
– Client is not usually present
– Look for logic faults, interface faults, error handling,
conformance to specifications
– Every aspect of design is linked with an analysis artifact
 Implementation
– Desk check each component as you code
– Code review – programmer guides members through
listing
– SQA performs unit, integration and product (comparison
against specifications) testing
– Client performs acceptance testing
GOAL: Find Faults Early!
PostDelivery Maintenance
• Common problem: Lack of existing
documentation
• A proper record must be kept of all
changes made and reasons for the
change.
• Testing ensures that:
– Required changes have been made
– No faults have been introduce
Download