Software design - Lecture 4. The main topics covered in this chapter include: rational unified process (RUP); product development process based on object oriented model; iterative development; manage requirements; component-based architectures;...
1 Software Design Lecture : 4 Rational Unified Process (RUP) Ø Gang of 3 Booch, Rumbaugh, Jacobsen Ø RUP is an iterative process product framework created by Rational Software Corporation, acquired by IBM in 2003 Ø Product development process based on Object Oriented RUP • Implementation of Best Practices • RUP is a configurable process • It is supported by tool which automate the process and are used to maintain Artifacts 4 Best Practices Iterative Development Ø Ø Ø Increasing understanding of requirements with passage of time and iterations Address highest risk early in the lifecycle Each iteration end with an executable release so team members stay focused on producing results 5 2. Manage Requirements Ø Describes how to elicit, organize, and document required functionality and constraints Ø Utilize Use Case to capture requirements Ø Driving force behind design and software test Ø They provide coherent and traceable threads through both the development and the delivered system 3. Componentbased Architectures Components represents subsystems which fulfils a clear Ø function Ø Ø Ø Components can be developed and tested isolated RUP provides a systematic approach to defining an architecture using new and existing components Components can be purchased 7 Example – Component diagram of UML 4. Visually Model Software Ø RUP use UML to visually model software to capture the structure and behavior of architectures and components Ø Visual abstraction helps in better understanding the different components of the software 9 5. Verify Software Quality • • UML assist in ensuring the software quality by building quality assessment into the process Deliverable produced at the end of each iteration as per UML notation ensure objective measurement of quality criteria 10 6. Change Control Management Ø Ø Ø The process describes how to control, track and monitor changes to enable successful iterative development Establish secure workspace for developers by isolating it from change Identify build management 11 7. Tool Support 12 Process Overview 13 Inception Phase Ø Ø Identify project vision delimiting the project scope Identify actors and develop initial use case (2030% complete) Ø Credibility of estimates and development process is established 14 Elaboration Phase Ø Ø Corresponds to the transition from a lowrisk operation to a highcost, highrisk operation with substantial inertia Analyze the problem domain and establish solid architectural foundation Ø Establish use case model – 80% complete Ø Provide Software Architecture description 15 Construction Phase Ø During the construction phase, all remaining components and application features are developed and integrated into the product, and all features are thoroughly tested Ø User Manuals 16 Transition Phase Ø Release the product to limited user community for early feedback Ø BetaTesting against user expectations Ø UAT and deployment after certain level of stableness Ø Rollout software to marketing and sales team 17 Static Structure of the Process Ø Ø A process describes who is doing what, how, and when Four Elements ü Workers, the ‘who’ ü Activities, the ‘how’ ü Artifacts, the ‘what’ 18 19 Worker 20 Artifact Ø Ø Ø An artifact is a piece of information that is produced, modified, or used by a process Artifacts are used as input by workers to perform an activity A model, such as the UseCase Model or the Design Model 21 Work Flows Ø Ø A workflow is a sequence of activities that produces a result of observable value In UML terms, a workflow can be expressed as a sequence diagram, a collaboration diagram, or an activity diagram 22 Work Flow Example 23 Workflow Name UML Diagram Business Modelling Business Object Model Requirement Use Case Model Analysis and Design Activity and sequential diagrams, Classes and Packages Implementation Classes and Objects Test Iterative Testing Deployment Deployment Diagram ... Components can be purchased 7 Example – Component diagram of UML 4. Visually Model? ?Software Ø RUP use UML to visually model? ?software? ?to capture the structure and behavior of architectures and ... Visual abstraction helps in better understanding the different components of the? ?software 9 5. Verify? ?Software? ?Quality • • UML assist in ensuring the? ?software? ?quality by building quality assessment into the process... functionality and constraints Ø Utilize Use Case to capture requirements Ø Driving force behind design and? ?software? ?test Ø They provide coherent and traceable threads through both the development and the delivered system