DOC PREVIEW
CU-Boulder CSCI 6448 - Object-Oriented Design Methods

This preview shows page 1-2-3-18-19-37-38-39 out of 39 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 39 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Lecture 16: Object-Oriented Design MethodsKenneth M. AndersonUniversity of Colorado, BoulderCSCI 4448/6448 — Lecture 16 — 10/18/2007© University of Colorado, 20071Tuesday, October 23, 2007Goals for this Lecture• Review various OO design methods (software development life cycles)• Briefly review two additional UML diagrams• Activity Diagrams• State Diagrams2Tuesday, October 23, 2007Background• In Software Engineering:• “Process is King”• We want our activities to be coordinated and planned, e.g. “engineered”3Tuesday, October 23, 2007Life Cycle Characteristics• Life cycles make software development• predictable• repeatable• measurable• efficient• High-quality processes should lead to high-quality products• at least it improves the odds of producing good software4Tuesday, October 23, 2007Survey of OOA&D Methods• Generalization• Taken from “SE: A Practitioner’s approach, 4th ed.” by Roger S. Pressman, McGraw-Hill, 1997• The Booch Method• The Jacobson Method• The Rambaugh Method• The Unified Software Process5Tuesday, October 23, 2007OO Methods in General...• Obtain customer requirements for the OO System• Identify scenarios or use cases• Build a requirements model• Select classes and objects using basic requirements• Identify attributes and operations for each object• Define structures and hierarchies that organize classes• Build an object-relationship model• Build an object-behavior model• Review the OO analysis model against use cases• Once complete, move to design and implementation: These phases simply elaborate the previously created models with more and more detail, until it is possible to write code straight from the models6Tuesday, October 23, 2007Detailed comparisons• What follows is a barebones description of each method, detailed comparisons can be found in:• Graham, I. Object-Oriented Methods, Addison-Wesley, Third Edition, 20017Tuesday, October 23, 2007Background on OO Methods• An OO Method should cover and include• requirements and business process modeling• a lightweight, customizable process framework• project management• component architecture• system specification• use cases, UML, architecture, etc.• component design and decomposition• testing throughout the life cycle• Software quality assurance• Configuration management8Tuesday, October 23, 2007The Booch Method• Identify classes and objects• Propose candidate objects• Conduct behavior analysis• Identify relevant scenarios• Define attributes and operations for each class• Identify the semantics of classes and objects• Select scenarios and analyze• Assign responsibility to achieve desired behavior• Partition responsibilities to balance behavior• Select an object and enumerate its roles and responsibilities• Define operations to satisfy the responsibilities9Tuesday, October 23, 2007Booch, continued• Identify relationships among classes and objects• Define dependencies that exist between objects• Describe the role of each participating object• Validate by walking through scenarios• Conduct a series of refinements• Produce appropriate diagrams for the work conducted above• Define class hierarchies as appropriate• Perform clustering based on class commonality• Implement classes and objects• In analysis and design, this means specify everything!10Tuesday, October 23, 2007The Jacobson Method• Object-Oriented Software Engineering• Primarily distinguished by the use-case• Simplified model of Objectory• Objectory evolved into the Rational Unified Software Development Process• For more information on this Objectory precursor, see• Jacobson, I., Object-Oriented Software Engineering, Addison-Wesley, 1992.11Tuesday, October 23, 2007Jacobson, continued• Identify the users of the system and their overall responsibilities• Build a requirements model• Define the actors and their responsibilities• Identify use cases for each actor• Prepare initial view of system objects and relationships• Review model using use cases as scenarios to determine validity• Continued on next slide12Tuesday, October 23, 2007Jacobson, continued• Build analysis model• Identify interface objects using actor-interaction information• Create structural views of interface objects• Represent object behavior• Isolate subsystems and models for each• Review the model using use cases as scenarios to determine validity13Tuesday, October 23, 2007The Rumbaugh Method• Object Modeling Technique (OMT)• Rumbaugh, J. et al., Object-Oriented Modeling and Design, Prentice-Hall, 1991• Analysis activity creates three models• Object model• Objects, classes, hierarchies, and relationships• Dynamic model• object and system behavior• Functional model• High-level Data-Flow Diagram14Tuesday, October 23, 2007Rumbaugh, continued• Develop a statement of scope for the problem• Build an object model• Identify classes that are relevant for the problem• Define attributes and associations• Define object links• Organize object classes using inheritance• Develop a dynamic model• Prepare scenarios• Define events and develop an event trace for each scenario• Construct an event flow diagram and a state diagram• Review behavior for consistency and completeness15Tuesday, October 23, 2007Rumbaugh, continued• Construct a functional model for the system• Identify inputs and outputs• Use data flow diagrams to represent flow transformations• Develop a processing specification for each process in the DFD• Specify constraints and optimization criteria• Iterate16Tuesday, October 23, 2007Rational Unified Process: OverviewPHASES PRODUCT CYCLES CORE WORKFLOWS CYCLE 1 CYCLE 2 CYCLE 3 . . . CYCLE N INCEPTION ELABORATION CONSTRUCTION TRANSITION iteration 1 iteration 2 iteration 3 iteration 4 iteration 5 iteration 6 . . . iteration n - 1 iteration n Requirements Analysis Design Implementation Test ITERATIONS 17Tuesday, October 23, 2007Inception• High-level planning for the project• Determine the project’s scope• If necessary• Determine business case for the project• Estimate cost and projected revenue18Tuesday, October 23, 2007Elaboration• Develop requirements and initial design• Develop Plan for Construction phase• Risk-driven approach• Requirements Risks• Technological Risks• Skills Risks• Political Risks19Tuesday, October 23, 2007Requirements


View Full Document

CU-Boulder CSCI 6448 - Object-Oriented Design Methods

Documents in this Course
Struts

Struts

12 pages

Adapter

Adapter

23 pages

Prototype

Prototype

16 pages

Weka

Weka

15 pages

qooxdoo

qooxdoo

16 pages

Django

Django

12 pages

Overview

Overview

22 pages

XNA

XNA

5 pages

Load more
Download Object-Oriented Design Methods
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Object-Oriented Design Methods and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Object-Oriented Design Methods 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?