rup.ppt

23
Rational Unified Process

Upload: hacan-champ

Post on 08-Nov-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

  • Rational Unified Process

  • Whats Up?!G. Booch: The bad news is that the expansion of the software systems in size, complexity, distribution, and importance pushes the limits of what we in the software industry know how to develop. Trying to advance legacy systems to more modern technology brings its own set of technical and organizational problems. Compounding the problem is that businesses continue to demand increased productivity and improved quality with faster development and demployment. Additionally, the supply of qualified development personnel is not keeping pace with demand. The net result is that building and maintaining software is hard and getting harder; building quality software in a repeatable and predictable is harder still.

  • Common Software Development ProblemsInaccurate understanding of end-user needsInability to deal with changing requirementsModules dont integrateIt is difficult to maintain or extend the softwareLate discovery of flawsPoor quality and performance of the softwareNo coordinated team effort

  • Wrong Assumptions That Cause Failure Wrong Assumption 1:Requirements Will Be Frozen

    Wrong Assumption 2: We Can Get the Design Right on Paper before Proceeding

  • Software Best PracticesDevelop software iterativelyManage requirementsUse component-based architecturesVisually model softwareVerify software qualityControl changes to software

    Commercially proven approaches to software development that, when used in combination, strike at the root causes of software development problems.*

  • Classic Software DevelopmentClassic software development processes follow the waterfall lifecycle. Development proceeds linearly from requirements analysis, design, implementation, and testing.It takes too long to see results.It depends on stable, correct requirements.It delays the detection of errors until the end.It does not promote software reuse and prototyping.

  • Iterative and Incremental ProcessThis approach is one of continuous discovery, invention, and implementation, with each iteration forcing the development team to drive the desired product to closure in a predictable and repeatable way.An iteration is a complete development loop resulting in a release (internal or external) of an executable product, a subset of the final product under development, which grows incrementally from iteration to iteration to become the final system.

  • Benefits of an Iterative ApproachRisk Mitigation an iterative process lets developers mitigate risks earlier than a sequential process where the final integration is the only time that risks are discovered or addressed.Accommodating Changes an iterative process lets developers take into account requirements, tactical and technological changes continuously.Learning as You Go an advantage of the iterative process is that developers can learn along the way, and the various competencies and specialties are employed during the entire lifecycle.Increased Opportunity for Reuse an iterative process facilitates reuse of project elements because it is easy to identify common parts as they are partially design and implemented instead of identifying all commonality in the beginning.Better Overall Quality the system has been tested several times, improving the quality of testing. The requirements have been refined and are related more closely to the user real needs. At the time of delivery, the system has been running longer.

  • The Rational Unified ProcessRUP is a process product. It is developed and maintained by Rational Software and integrated with its suite of software development tools available from IBM. By Treating the RUP as product implies that RUP is never obsoleteRUP is a process framework that can be adapted and extended to suit the needs of an adopting organization.RUP captures many of best practices mentioned before (develop software iteratively, manage requirements, use component-based architectures, visually model software, continuously verify software quality, control changes to software).The Rational Unified Process (RUP) is a Software Engineering Process. It provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable schedule and budget.

  • The Rational Unified Process as a ProductIBM releases regular upgrades.

    It is delivered online using Web technology, so it is literally at the fingertips of the developers.

    It can be tailored and configured to suit the specific needs of a development organization.

    It is integrated with many of the software development tools in the IBM Rational Suites so that developers can access process guidance from within the tool they are using.

  • Key Features of the RUPUse-Case-Driven DevelopmentProcess ConfigurationTools Support

  • Who Is Using the Rational Unified Process?Telecommunications: Ericsson, Alcatel

    Transportation, aerospace, defense: Lockheed-Martin, British Aerospace

    Manufacturing: Xerox, Volvo, Intel

    Finances: Visa, Merrill Lynch, Schwab

    System integrators: CAP Gemini Ernst & Young, Oracle, Deloitte & Touche

  • Phases and IterationsEach phase can be further broken down into iterations. An iteration is a complete development loop resulting in a release (internal or external) of an executable product, a subset of the final product under development, which grows incrementally from iteration to iteration to become the final system.InceptionElaborationConstructionTransitionTimeLCOLCAIOCPRPreliminaryIterationArchitectureIterationArchitectureIterationDevelopm.IterationDevelopm.IterationDevelopm.IterationTransit.IterationTransit.IterationInternalReleaseMinor MilestoneFirst External Release (e.g. beta)Final ReleaseScope and Business Case agreement Architecture baselinedProduct sufficiently mature for customers to use Acceptanceor end of life

  • Duration of an IterationAn iteration starts with planning and requirements and finishes with an internal or external release.Ideal duration of an iteration is from two to six weeks, depending on your project size and complexity.Factors that affect duration of an iteration: Size, stability and maturity of organizationFamiliarity with the iterative processSize of projectTechnical simplicity of projectLevel of automation used to manage code, distribute information, perform testing

  • Conditions that Increase Number of IterationsInception - working with new functionality, unknown business environment, highly volatile scope, make-buy decisions Elaboration - working with new system environment (new architectural features), untested architectural elements, need for system prototypes Construction - lots of code to write and verify, new technology or development tools Transition - need for alphas and betas, conversions of customer database, incremental delivery to customers

  • Typical Distribution of Time in RUP

    For example, a two-year project would have the following:A 2-month inception phaseA 7-month elaboration phaseA 12-month construction phaseA 2-month transition phase

  • Major ArtifactsStakeholder RequestsVisionBusiness CaseRisk ListSoftware DevelopmentPlanSoftware ArchitectureDocumentGlossarySoftwareRequirementsSpecificationTestPlanDeploymentPlanUse-CaseModelAnalysisModelDesignModelImplementationModelProductSupplementarySpecification

  • Disciplines Produce and Share ModelsBusinessModelingRequirementsAnalysis &DesignImplementationTestBusinessUse-Case ModelBusinessDomain ModelBusinessProcess ModelUse-CaseModelUse-CaseModelDesignModelDesignModelImplementationModelImplementationModelTest SuiteUse cases defined for a system are the basis for the entire development process.