Post on 21-Dec-2015
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 1
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
SE470 - Rational Unified Process Overview
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Larry Dribin, Ph.D. - DePaul University
Phone: (847)807-7390 - Fax: (847)459-1650
Email: dribin@cs.depaul.edu
Copyright 2001 - Larry Dribin, Ph.D. - v1.1 4-21-02
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 2
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Our Goal is to fix the Root Causes through the use of Good Software Engineering Practices
Definition of Software Engineering:
“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”
Fritz Bauer -1969
Sound Engineering principles consist of: Processes - Procedures and Life Cycles Techniques - or Methods Practices - Repeated performances of activities Tools - to support Processes, Techniques and Practices
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 3
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Software Product
The Software Engineering Process
Requirements
User Team (Suppliers)Expectations• Features• Cost• Benefit• Delivery Dates• Quality
Users Team(Customer)Perceptions• Features• Cost• Benefit• Delivery Dates• Quality
SoftwareEngineering
Process
Software Development Team
Processes, Techniques & Tools
PerformanceMeasures
Software is developed in Teams:
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 4
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Why have a Software Development Process?
Provides a guideline for software development Reduces risk and increases predictability Basis for improvement Captures and institutionalizes best practices
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 5
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Best Practices
“An organized and documented set of principles, methods and processes that increase quality and productivity of software development.”
“An organized and documented set of principles, methods and processes that increase quality and productivity of software development.”
Source: Rational - “Principles of Managing Iterative Development v2.0”
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 6
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.
The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 7
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
The Rational Unified Process
Developed through the combined efforts of: Grady Booch Ivar Jacobson James Rumbaugh
Features Based on the Unified Modeling Language Iterative Architecture-centric Use-case driven Risk driven
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 8
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational Unified Process
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 9
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational Objectory Process 4.1
Rational Approach
Rational Unified Process 5.5
Rational Unified Process 5.0
Rational Objectory Process 4.1
Rational Unified Process 2000
Objectory Process 3.8
The History of the Rational Unified Process
2000
1999
1998
1997
1996
1995
UML v1.0
UML v1.1
UML v1.3
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 10
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
RUP Model Notation
A role played by an individual or a
team.
A unit of work that a worker may
perform.
A piece of information that
is produced, modified or used
by a process.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 11
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Workers
A Worker is a role played by an individual or a team.
Example: Stakeholder Systems Analyst Designer Test Designer Project Manager
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 12
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Artifacts (Work Products)
An artifact is a piece of information that is used, modified or produced by a process.
Artifacts are the intangible products of the project Examples:
A use-case model A document such as a business case Source Code Executable code
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 13
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
A piece of information that is produced, modified or used by a process.
Artifacts are the intangible products of the project
Examples: A use-case model A document such as a
business case Source Code Executable code
Artifacts
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 14
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Artifacts - Examples
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 15
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Activities
An Activity is a unit of work that a worker may perform.
Examples: Plan an interaction performed by
Project Manager Find use cases and actors Review the design Execute a performance test
Activities are typically broken into steps of which there are three main Categories:
Thinking steps Performing steps Reviewing steps
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 16
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Activities
Example decomposition for Activity: “Find use cases and actors” Find actors Find use cases Describe how actors and use cases interact Package use cases and actors Present the use-case model in use-case diagram Develop a survey of the use-case model Evaluate your results
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 17
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Additional Process Elements
Guidelines - are rules, recommendations, or heuristics that support activities and steps.
Templates - are models or prototypes of artifacts Ex. Word template for Vision Document
Tool mentors - are a means of providing guidance by showing you how tuo use a specific software tool (Similary to wizards
Concepts - Separate material that describe some of the reasons and background on a specific topic
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 18
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Software Product
Rational’s Nomenclature of the Software Engineering Process
Requirements
User Team (Suppliers)Expectations• Features• Cost• Benefit• Delivery Dates• Quality
Users Team(Customer)Perceptions• Features• Cost• Benefit• Delivery Dates• Quality
SoftwareEngineering
Process(Workflows)
Software Development Team
Processes, Techniques & Tools
PerformanceMeasures(Activities)
Software is developed in Teams:
Workers
Workers
Workers
ArtifactsArtifacts
Artifacts
Activities
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 19
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
The Rational Unified Process
Basic phases Inception Elaboration Construction Transition
Core Workflows Engineering Workflows
– Business Modeling– Requirements Definition– Analysis and Design– Implementation– Test– Deployment
Supporting– Project Management– Configuration and change management– Environment
Iterations
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 20
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational Unified Process Lifecycle Phases
Inception - defines the scope of the project
Elaboration - plans the project, develops a baseline architecture and specifies features
Construction - builds the project
Transition - transitions the project into the end user community
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 21
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Workflows
A Workflow is a sequential description of the activities that produces a result of value
The Nine Core Workflows
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 22
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Workflow Details for Requirements Overview
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 23
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational Unified Process
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 24
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.
The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 25
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 26
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Software Lifecycles
Fundamental process - the Development Lifecycle Waterfall Iterative
– Spiral– Evolutionary– Rational Unified Process (RUP) - Unified Development Process– Extreme Programming
Define the software development process in detail Often described at as a Methodology
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 27
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Waterfall model
Requirementsdefinition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 28
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Issues with the Waterfall Life Cycle
Real projects do not appear to follow the Waterfall life cycle - they appear to iterate.
Requirements must be defined up front which causes problems due to: Users often do not know what they want. Most Analysis and Design Techniques do not provide a good clear
representation of the solution for the user.
The customer must wait a long time for the first deliverable. The “Large Specifications” produced are hard to use and hard to
validate.
The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway
The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 29
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Waterfall Advantages/Disadvantages
Advantages Well defined Can easily review & revise Easy to see status Logical Understandable Easy to estimate Used as a component of iterative life
cycles
Disadvantages You can’t know everything initially
and late discovery increase costs and risks
Rigid / Brittle for large projects Difficult to handle changes in
requirements Lot of overhead Must define complete problem at the
start
Waterfall life cycle best used for well defined problems and as a component of iterative life cycles.
Waterfall life cycle best used for well defined problems and as a component of iterative life cycles.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 30
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Iterative Models – the Spiral Life Cycle
Riskanalysis
Riskanalysis
Riskanalysis
Riskanalysis Proto-
type 1
Prototype 2Prototype 3
Opera-tionalprotoype
Concept ofOperation
Simulations, models, benchmarks
S/Wrequirements
Requirementvalidation
DesignV&V
Productdesign Detailed
design
CodeUnit test
IntegrationtestAcceptance
testService Develop, verifynext-level product
Evaluate alternativesidentify, resolve risks
Determine objectivesalternatives and
constraints
Plan next phase
Integrationand test plan
Developmentplan
Requirements planLife-cycle plan
REVIEW
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 31
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Phases of the Spiral Model
Objective setting Specific objectives for the project phase are identified
Risk assessment and reduction Key risks are identified, analyzed and information is sought to reduce these
risks Development and validation
An appropriate model is chosen for the next phase of development. Planning
The project is reviewed and plans drawn up for the next round of the spiral
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 32
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Iterative - Evolutionary Life Cycle
Iterative life cycle best used for problems that are not well understood. Iterative life cycle best used for problems that are not well understood.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 33
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
The Rational Unified Process
Iterations and Releases
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 34
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Iterations and Phases
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 35
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Iterative Development
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 36
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Each Iteration, follows a mini-Waterfall
Selected Scenarios
ProductRelease
The Iteration Life Cycle is a mini-waterfall.The Iteration Life Cycle is a mini-waterfall.
AD - Analysis & Design
RD - Requirements Definition
IM - Implementation
DE - Deployment
BM - Business Modeling
TE - Testing
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 37
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Iterative Advantages/Disadvantages
Advantages Resolves risks before making large
investiments Enables early user feedback Makes testing and integration
continuous Focuses project on short-term
objectives Makes partial deployments possible
Disadvantages Waterfall life cycle is more familiar
since it is similar to hardware life cycle
Iterative Life Cycles difficult to estimate and manage.
Only recently used on real projects - therefore little track record
Iterative life cycle best used for problems that are not well understood. Iterative life cycle best used for problems that are not well understood.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 38
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 39
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Manage Requirements
A systematic approach to eliciting organizing documenting and managing
the changing requirements of the software application
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 40
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
The System is a Model of the Real World
Real World
System
Inputs Outputs
Computer
System Model of
Real World
Inputs Outputs
Requirements Definition Goal:
Discover, define and document the goals of the system model so that we can quickly develop computer software which accurately models the real world system.
Requirements Definition Goal:
Discover, define and document the goals of the system model so that we can quickly develop computer software which accurately models the real world system.
However, real world systems are constantly changing and adapting to changes in other real world systems with which they interact.
Therefore, systems which model the real world must constantly change, to accurately represent the real world system in real time.
However, real world systems are constantly changing and adapting to changes in other real world systems with which they interact.
Therefore, systems which model the real world must constantly change, to accurately represent the real world system in real time.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 41
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Requirements Management (Engineering) Activities
Requirements Analysis Discover System Requirements Outline Requirements
Requirements Definition Describe the system from the user’s point of view
Requirements Specification Develop a detailed and precise description of the system requirements from
the software developer and users point of view This document often acts as a basis for a contract between the the software
developer and the client Describe the Acceptance Testing requirements for the system
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 42
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Requirements Management Engineering Activities
Develop As Is Model:
1. Study Current System & its Functions
2. Develop Model of Current System
3. Document Current System - As Is Model
Develop (Design) To Be Model:
4. Determine Problems to be Corrected and any New Requirements
5. Develop Model of Future System =
Current System Function + Problems + New Features
6. Document Future System - To Be Model
7. Validate that “To Be” model solves problems identifiedin “As Is” Analysis
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 43
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Requirements Analysis Techniques
Variety of Techniques can be used to determine (capture) the requirements:
Individual Interviews Group Interviews Facilitated Workshops Review Current System DILO Use Cases Task and Work Flow Analysis Observation Storyboards Brainstorming Sessions JAD - Joint Applications Development (Formal Joint User / Developer
Analysis & Design) No Magic Solutions No Magic Questions
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 44
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Managing Changing Requirements
Establish a Baseline Evaluate changes and determine their impact Track and document tradeoffs and decisions
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 45
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 46
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 47
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 48
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Features of Component Architectures
Resilient Meets current and future requirements Improves extensibility Enables reuse Encapsulates system dependencies
Component based Reuse or customize components Select form Commercially-available components Evolve existing software incrementally
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 49
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 50
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 51
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Model Visually - Use the UML
Capture the structure and behavior of architectures and components
Show how the elements of the system fit together
Maintain consistency between a design and its implementation
Promote unambiguous communication
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 52
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
The Unified Modeling Language
Developed through the combined efforts of: Grady Booch Ivar Jacobson James Rumbaugh
Is a language for: Visualizing Specifying Constructing Documenting
The artifacts of a software-intensive system.
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 53
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
History of the UML
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 54
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
UML Components
Multiple Views Precise Syntax and semantics Include
Use-Case Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Activity Diagrams State Chart Diagrams Collaboration Diagrams Sequence Diagrams
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 55
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 56
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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."
Therefore, achieving quality is not 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).
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 57
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 58
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Rational’s View of Best Practices
Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 59
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 60
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
Controlling Parallel Development
Multiple developers Multiple teams Multiple sites Multiple iterations Multiple releases Multiple projects Multiple platforms
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 61
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt
Software Engineering
SE470 - RUP - 62
Excellence in Software Engineering
Repeatable Level
Defined Level
Managed Level
Initial Level
Optimized Level
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