James Nowotarski 13 April 2004 IS 553 Advanced Systems Development Practices.
-
date post
19-Dec-2015 -
Category
Documents
-
view
216 -
download
0
Transcript of James Nowotarski 13 April 2004 IS 553 Advanced Systems Development Practices.
2
Course Map
Underpinnings. Introduction. Essentials
Content. Rational Unified Process. Agile
Implementation. Metrics. CMM. Distributed development. Tools & training
Briefings (Term Papers)
1 2 3 4 6 7 8 9 10 115
Assignments
Quizzes
Week
(RUP) (Agile) (CMM) (Distr. Dev.)
3
Understand the basics of the Rational Unified Process (RUP) Structure Content Guiding principles
In particular, understand how RUP enables iterative development
Discuss the term project
Today’s Objectives
4
Topic Duration
RUP Overview 75 minutes
*** Break 15 minutes
Current Event Recaps (Asgn #5)15 minutes
RUP and Iterative Development 45 minutes
Asgn #1, Quiz #1, Term Project 30 minutes
Today’s Agenda
5
Topic Duration
RUP Overview 75 minutes
*** Break 15 minutes
Current Event Recaps (Asgn #5)15 minutes
RUP and Iterative Development 45 minutes
Asgn #1, Quiz #1, Term Project 30 minutes
Today’s Agenda
6
Think to yourself how many of the projects you have worked were:
On Time? On Budget?
High Quality?
The Bottom Line: Our Customers are upset with us.The Bottom Line: Our Customers are upset with us.
7
Symptoms and Root CausesSome Symptoms: Requirements in flux
Some Root Causes:• Insufficient and misunderstood
requirement
8
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
9
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
10
Continuously Verify Quality
In the Rational Unified Process, quality is defined as:
“The characteristic identified by the following: • satisfies or exceeds an agreed upon set of requirements, and • assessed using agreed upon measures and criteria, and • produced using an agreed upon process."
More than simply "meeting requirements" or producing a product that meets user needs, or expectations, etc.
Quality also includes identifying the measures and criteria to demonstrate the achievement of quality, and the implementation of a process to ensure that the product created by the process, has achieved the desired degree of quality (and can be repeated and managed).
11
Test Each Iteration
Start testing early Continuously test Test each iteration for functionality
and performance Iterative development makes
regression testing necessary Use automated tests whenever
possible
12
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
15
Control Changes
You must control, track and monitor changes to enable iterative development
Control changes for all software artifacts: Models Documents Source code Project plans
Establish secure workspaces fore each developer
Automated integration and build management
16
Controlling Parallel Development
Multiple developers Multiple teams Multiple sites Multiple iterations Multiple releases Multiple projects Multiple platforms
17
Configuration Management
Configuration Management is the process which controls the changes made to a software system and manages the different versions and releases of the evolving software products Librarian like function Manages the version number for each software product Changes made are controlled by a Change Control Process Can be managed manually or through the use of a
configuration management tool (Difficult to do manually, but it can be done.)
• Check In• Check Out• Read only for others
18
Change Control Process
Create InitialSections
Create/ModifyDraft
Review Draft(V&V)
Create Changes to Incorporate
Changes Needed In Document
DocumentApproved
Create Review Revise ReviewReview Approved
Time
...
Document in Production and Under Formal Change Control
Document in Production and Under Formal Change Control
Document Under Development and User Change Control
Document Under Development and User Change Control
19
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
20
Why emphasis on executable software?
“Without this first pass, the project manager is at the mercy of human judgment. With this first-pass ‘simulation,’ he can at least perform experimental tests of some key hypotheses and scope down what remains for human judgment, which in the case of computer program design . . . is invariably and seriously optimistic”
21
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
22
Architecture: Compelling need to stay ahead
Think of the architecture as an “application” to be used by systems developers
Architecture development and application development are related but separate activities that are staggered and occur in parallel:
Architecture
Application
Analyze
Analyze
Design
Design
Implement
Implement
Support
Support
23
Benefits of Architecture
Intellectual control Manage complexity Maintain integrity
Basis for reuse Component reuse Architecture reuse (patterns)
Basis for project management Focus on early iterations Planning Staffing
24
RUP Guiding Principles
IterativeDevelopment
QualityCustomerValue
Attack riskAccommodatechange
Work togetherExecutablesoftware
Architecturebaseline
Component-baseddevelopment
Objectives
Strategies
Tactics
25
Software Components
Definition:
A software component can be defined as a nontrivial piece of software, a module, a package, or a subsystem, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. It is the physical realization of an abstraction in your design.
Definition:
A software component can be defined as a nontrivial piece of software, a module, a package, or a subsystem, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. It is the physical realization of an abstraction in your design.
26
Components
Airplane
Private Data
Object Operations
Airplane
Private Data
Object Operations
Engines
Private Data
Object Operations
Engines
Private Data
Object Operations
Wings
Private Data
Object Operations
Wings
Private Data
Object Operations
Fuselage
Private Data
Object Operations
Fuselage
Private Data
Object Operations
Tail
Private Data
Object Operations
Tail
Private Data
Object Operations
COMPONENTS - Are objects that are combined into new objects without the use of inheritance
27
Benefits of Component Architectures Resilient
Meets current and future requirements
Improves extensibility Enables reuse Encapsulates system
dependencies Reuse proven solution elements
Reuse or customize components Select from Commercially-available
components Evolve existing software
incrementally
29
Vertical (Static) Dimension
Core Process Disciplines(sometimes referred to generically as Workflows)
31
Vertical dimension deals with 4 key modeling elements
Roles (who) Activities (how) Artifacts (what) Workflows (when)
32
Roles
A role is played by an individual or a team.
Examples: Stakeholder Systems Analyst Designer Test Designer Project Manager
33
Role - ExampleRole: Requirements SpecifierThe requirements specifier role details the specification of a part of the system's functionality by describing the Requirements aspect of one or several use cases and other supporting software requirements
StaffingA person acting as the requirements specifier needs good communication skills, both person-to-person and written. A requirements specifier must be familiar with all tools used to capture the requirements.
34
A piece of information that is produced, modified or used by a process.
Artifacts include the intangible products of the project
Examples: A use-case model Model element, e.g., use case A document such as a
business case Source code Executable code
Artifacts
36
Activities
An Activity is a unit of work assigned to a single role.
Examples: Find use cases and
actors Review the design Execute a
performance test Activities may be broken
down into steps
37
Workflows/Disciplines
Workflow/Discipline:• A sequence of
activities (and related roles and artifacts) that produces some result of observable value
• These are the 9 “core process disciplines” in the RUP product
• “Workflow” is the generic term – may be very detailed
38
Example of detailed workflow
Workflows show all activities you may go through to produce a particular set of artifacts.
A typical sequence of events when conducting the flow of work.
39
Additional Process Elements
Guidelines - are rules, recommendations, or heuristics that support activities and steps.
Templates - are models or prototypes of artifacts Example: Word template for Vision
Document Tool mentors - are a means of providing
guidance by showing you how to use a specific software tool (Similar to wizards)
Concepts - Separate material that describe some of the reasons and background on a specific topic
41
Topic Duration
RUP Overview 75 minutes
*** Break 15 minutes
Current Event Recaps (Asgn #5)15 minutes
RUP and Iterative Development 45 minutes
Asgn #1, Quiz #1, Term Project 30 minutes
Today’s Agenda
42
Topic Duration
RUP Overview 75 minutes
*** Break 15 minutes
Current Event Recaps (Asgn #5)15 minutes
RUP and Iterative Development 45 minutes
Asgn #1, Quiz #1, Term Project 30 minutes
Today’s Agenda
43
Topic Duration
RUP Overview 75 minutes
*** Break 15 minutes
Current Event Recaps (Asgn #5)15 minutes
RUP and Iterative Development 45 minutes
Asgn #1, Quiz #1, Term Project 30 minutes
Today’s Agenda
45
Iterative Development
Each iteration: includes some or most of the development disciplines has a set of well-defined objectives produces a partial working implementation of the final
system builds on work of previous iterations to evolve and
refine the system until the final product is complete Early iterations have greater emphasis on
requirements and analysis and design Later iterations have greater emphasis on
implementation and testing
46
Anatomy of TerminologyProduct
Development Cycle
Phase
Iteration
Activity
is the result of
consists of
consists of
consists of
47
Iterative Development
Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases
A D IVersion 1
A D IVersion 2
A D IVersion 3
48
Product is the result of development cycles
Version 1
Development CycleVersion 2
Development CycleVersion 3
Development Cycle
Product delivered to users
49
Development cycle consists of phases
Development Cycle
Inception Elaboration Construction Transition
51
Iteration consists of ActivitiesDevelopment Cycle
Elaboration
Iterationn+1IterationnR
A&D
C
T
R
A&D
C
T
Each phase contains one or more iterations
54
Milestones
• Exit criteria• Decide to proceed, abort, or change course• Measure progress, e.g.,
– use cases completed– features completed– performance requirements satisfied– risks eliminated– test cases passed
56 Copyright © 1997 by Rational Software Corporation
Risk
Transition
Inception
Elaboration
Construction
PreliminaryIteration
Architect.Iteration
Architect.Iteration
Devel. Iteration
Devel. Iteration
Devel. Iteration
TransitionIteration
TransitionIteration
Post-deployment
Waterfall
Time
Risk Profile: Iterative vs. Waterfall
Iterative
57
Topic Duration
RUP Overview 75 minutes
*** Break 15 minutes
Current Event Recaps (Asgn #5)15 minutes
RUP and Iterative Development 45 minutes
Asgn #1, Quiz #1, Term Project 30 minutes
Today’s Agenda