Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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) Fax: (847) Copyright Larry Dribin, Ph.D. - v
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 2 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 3 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Software Engineering Process Software Development Team Processes, Techniques & Tools Performance Measures Software is developed in Teams:
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 4 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 5 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.” Source: Rational - “Principles of Managing Iterative Development v2.0”
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 6 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 7 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 8 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational Unified Process
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 9 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 UML v1.0 UML v1.1 UML v1.3
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 10 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 11 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 12 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 13 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 14 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Artifacts - Examples
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 15 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 16 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 17 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 18 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Software Engineering Process (Workflows) Software Development Team Processes, Techniques & Tools Performance Measures (Activities) Software is developed in Teams: Workers Artifacts Activities
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 19 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 20 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 21 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 22 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Workflow Details for Requirements Overview
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 23 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational Unified Process
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 24 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 25 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 26 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 27 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Waterfall model
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 28 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 29 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 30 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative Models – the Spiral Life Cycle
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 31 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 32 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative - Evolutionary Life Cycle Iterative life cycle best used for problems that are not well understood.
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 33 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The Rational Unified Process Iterations and Releases
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 34 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterations and Phases
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 35 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Iterative Development
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 36 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Each Iteration, follows a mini-Waterfall Selected Scenarios Product Release The Iteration Life Cycle is a mini-waterfall. AD - Analysis & Design RD - Requirements Definition IM - Implementation DE - Deployment BM - Business Modeling TE - Testing
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 37 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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.
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 38 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 39 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Manage Requirements A systematic approach to eliciting organizing documenting and managing the changing requirements of the software application
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 40 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The System is a Model of the Real World Real World System InputsOutputs Computer System Model of Real World InputsOutputs 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 41 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 42 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 identified in “ As Is ” Analysis
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 43 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 44 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Managing Changing Requirements Establish a Baseline Evaluate changes and determine their impact Track and document tradeoffs and decisions
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 45 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 46 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 47 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 48 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 49 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 50 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 51 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 52 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 53 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level History of the UML
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 54 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 55 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 56 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 57 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 58 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 59 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 60 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Controlling Parallel Development Multiple developers Multiple teams Multiple sites Multiple iterations Multiple releases Multiple projects Multiple platforms
Copyright Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 61 Excellence in Software Engineering Repeatable Level Defined Level Manage d 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 Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 62 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Change Control Process Create Initial Sections Create/Modify Draft Review Draft (V&V) Create Changes to Incorporate Changes Needed In Document Document Approved CreateReviewReviseReview Approved Time... Document in Production and Under Formal Change Control Document Under Development and User Change Control