1 - best practices rup

Upload: splustec

Post on 04-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 1 - Best Practices RUP

    1/29

    1

    IBM Software Group

    Best Practices of Software Development

    Rational Unified Process (RUP)

  • 7/29/2019 1 - Best Practices RUP

    2/29

    2

    Software Development Best Practices

    Needs not met

    Requirements churn

    Modules dont fit

    Hard to maintain

    Late discovery

    Poor quality

    Poor performance

    Colliding developers

    Build-and-release

    Insufficient requirements

    Ambiguous communications

    Brittle architectures

    Overwhelming complexityUndetectedinconsistencies

    Poor testing

    Subjective assessment

    Waterfall development

    Uncontrolled change

    Insufficient automation

    Symptoms Root Causes Best Practices

    Develop Iteratively

    Manage Requirements

    Use Component Architectures

    Model Visually (UML)

    Continuously Verify Quality

    Manage Change

  • 7/29/2019 1 - Best Practices RUP

    3/29

    3

    Best PracticesProcess Made Practical

    Develop Iteratively

    Manage RequirementsUse Component

    Architectures

    Model Visually (UML)

    Continuously Verify QualityManage Change

    Practice 1: Develop Iteratively

  • 7/29/2019 1 - Best Practices RUP

    4/29

    4

    Waterfall Development Characteristics

    Delays confirmation of critical risk resolution

    Measures progress by assessing work-products thatare poor predictors of time-to-completion

    Delays and aggregates integration and testing

    Precludes early deployment

    Frequently results in major unplanned iterations

    Waterfall Process

    Requirements

    AnalysisDesign

    Code and Unit TestSubsystem

    IntegrationSystem Test

  • 7/29/2019 1 - Best Practices RUP

    5/29

    5

    Iterative Development Produces Executables

    Planning

    Requirements

    Analysis & Design

    Implementation

    Deployment

    Test

    Evaluation

    Management

    Environment

    Each iterationresults in anexecutable release.

  • 7/29/2019 1 - Best Practices RUP

    6/29

    6

    Practice 2: Manage Requirements

    Best PracticesProcess Made Practical

    DevelopIteratively

    ManageRequirementsUse Component

    Architectures

    Model Visually (UML)

    Continuously Verify QualityManage Change

  • 7/29/2019 1 - Best Practices RUP

    7/297

    Requirements Management Means

    Making sure you

    solve the right problem

    build the right system

    by taking a systematic approach to

    eliciting

    organizing

    documenting

    managing

    the changing requirements of a softwareapplication.

  • 7/29/2019 1 - Best Practices RUP

    8/29

    8

    Problem

    SolutionSpace

    ProblemSpace

    Needs

    Features

    SoftwareRequirements

    Test ScriptsDesign User

    Docs

    TheProduct

    to BeBuilt

    Map of the Territory

  • 7/29/2019 1 - Best Practices RUP

    9/29

    9

    Use Cases as a Basis for Iteration Planning

    Use-Case Model

    SupplementarySpecifications

    Iteration Plan

    Fine-grained plan for

    a single iteration

    Project

    Management

    Constraints

    During Elaboration, usecases are implemented tovalidate the architecture.

  • 7/29/2019 1 - Best Practices RUP

    10/29

    10

    Use Cases as a Basis for System Modeling

    verification

    realizatio

    n

    Use-Case Model

    (requirements)

    Implementation Model(source code)

    Test Scripts

    influence

    Design Model(classes and objects)

  • 7/29/2019 1 - Best Practices RUP

    11/29

    11

    Use Cases as a Basis for Test Planning

    The complete behavior of a use case is tested using Test

    Scripts and Test Suites.

    Test Suite

    Test Script

    Test Script

    Test Suite

  • 7/29/2019 1 - Best Practices RUP

    12/29

    12

    Practice 3: Use Component Architectures

    Best PracticesProcess Made Practical

    DevelopIteratively

    Manage RequirementsUseComponentArchitectures

    Model Visually (UML)

    Continuously Verify QualityManage Change

  • 7/29/2019 1 - Best Practices RUP

    13/29

    13

    Purpose of a Component-Based Architecture

    Basis for reuseComponent reuseArchitecture reuse

    Basis for projectmanagementPlanning

    Staffing

    Delivery

    Intellectual controlManage complexity

    Maintain integritySystem-software

    Middleware

    Business-specific

    Application-specific

    Component-basedarchitecture withlayers

  • 7/29/2019 1 - Best Practices RUP

    14/29

    14

    Practice 4: Model Visually (UML)

    Best PracticesProcess Made Practical

    DevelopIteratively

    Manage RequirementsUse Component

    Architectures

    ModelVisually (UML)

    Continuously Verify QualityManage Change

  • 7/29/2019 1 - Best Practices RUP

    15/29

    15

    One language One toolOne team

    Data Modeling

    TecnologyModeling

    ApplicationModeling

    BusinessModeling

    RequirementsModeling

    One Language for All Practitioners

  • 7/29/2019 1 - Best Practices RUP

    16/29

    16

    Role of UML in RUP

    Rational Unified Process was developedhand-in-hand with the UML.

    Many artifacts in Rational Unified Processhave a UML representation.

    Rational Unified Process also includesguidelines for UML concepts.

  • 7/29/2019 1 - Best Practices RUP

    17/29

    17

    Practice 5: Continuously Verify Quality

    Best PracticesProcess Made Practical

    DevelopIteratively

    Manage RequirementsUse Component

    Architectures

    Model Visually (UML)

    ContinuouslyVerify Quality

    Manage Change

  • 7/29/2019 1 - Best Practices RUP

    18/29

    18

    Continuously Verify Your Softwares Quality

    Cost

    Development Phases

    Software problems are

    100 to 1000 times more costlyto find and repair after deployment

    Cost to Repair Software

    Cost of Lost Opportunities

    Cost of Lost Customers

  • 7/29/2019 1 - Best Practices RUP

    19/29

    19

    Testing Dimensions of Quality

    Reliability

    Test that the applicationbehaves consistently andpredictably.

    Performance

    Test online responseunder average and peakloading

    Functionality

    Test the accurateworkings of each

    usage scenario

    Usability

    Test application from theperspective ofconvenience to end-user.

    Supportability

    Test the ability to maintain

    and support applicationunder production use

  • 7/29/2019 1 - Best Practices RUP

    20/29

    20

    UML Modeland

    Implementation

    Tests

    Iteration 1

    Test Suite 1

    Iteration 2

    Test Suite 2

    Iteration 4

    Test Suite 4

    Iteration 3

    Test Suite 3

    Test Each Iteration

    Need for automated testing increases

  • 7/29/2019 1 - Best Practices RUP

    21/29

    21

    Practice 6: Manage Change

    Best PracticesProcess Made Practical

    DevelopIteratively

    Manage RequirementsUse Component

    Architectures

    Model Visually(UML)

    Continuously Verify QualityManage Change

  • 7/29/2019 1 - Best Practices RUP

    22/29

    22

    Muutostenhallinta - Change Request Management

    Change requests come from many sources

    throughout each iteration of the product lifecycle

    Maint

    Test

    Code

    Design

    Req

    Customer andUser inputs

    MarketingNew

    Feature

    NewRequirement

    Bug

    Help DeskUser inputs

    Approved

    Decision

    Process

    (CCB)

    Single Channel

    for Approval

    Coders inputsTesters inputs

    ChangeRequest (CR)

  • 7/29/2019 1 - Best Practices RUP

    23/29

    23

    Unified Change Management

  • 7/29/2019 1 - Best Practices RUP

    24/29

    24

    Best Practices Reinforce Each Other: An Example

    Validates architectural

    decisions early on

    Addresses complexity of

    design/implementation incrementally

    Measures quality early and often

    Evolves baselines incrementally

    Ensures users involved

    as requirements evolve

    Best Practices

    Develop Iteratively

    Manage Requirements

    Use Component Architectures

    Model Visually (UML)

    Continuously Verify Quality

    Manage Change

  • 7/29/2019 1 - Best Practices RUP

    25/29

    25

    RUP Implements Best Practices

    Best PracticesProcess Made Practical

    Develop Iteratively

    Manage Requirements

    Use Component Architectures

    Model Visually (UML)

    Continuously Verify Quality

    Manage Change

  • 7/29/2019 1 - Best Practices RUP

    26/29

    26

    Bringing It All Together: The Iterative Approach

    time

    content

    Disciplines grouprelated activities.

    In an

    iteration,

    you walkthrough all

    disciplines.

  • 7/29/2019 1 - Best Practices RUP

    27/29

    27

    Changing Focus of Phases Over Time

    Planned (Technical) Visibility Points

    Inception Elaboration Construction Transition

    Preliminary

    Iteration

    Architecture

    Iteration

    Architecture

    Iteration

    Development

    Iteration

    Development

    Iteration

    Development

    Iteration

    Transition

    Iteration

    Transition

    Iteration

    Acceptanceor end of life

    Product sufficientlymature forcustomers to use

    Architecturebaselined

    Scope and BusinessCase agreement

    Planned (Business) Decision Points

    understand

    problem

    understand

    solution

    have a

    solution

    efficient use

    of solution

  • 7/29/2019 1 - Best Practices RUP

    28/29

    28

    Typical Effort and Time Percentages by Phase

    Inc Elab Const Trans

    Effort 5% 20% 65% 10%

    Time/Schedule 10% 30% 50% 10%

    Time

    People

    ConstElab TransInc

  • 7/29/2019 1 - Best Practices RUP

    29/29

    29