690 likes | 841 Views
OBJECT-ORIENTATION by Khoshafian and Abnous. Chap 5. OO Analysis and Design. 서울대학교 컴퓨터공학부 Internet Data Base Lab 교수 김형주. Overall Pictures of OO SW Design. Object-Oriented Software Engineering History of Software Engineering Designing Reusable Classes
E N D
OBJECT-ORIENTATION by Khoshafian and Abnous Chap 5. OO Analysis and Design 서울대학교 컴퓨터공학부 Internet Data Base Lab 교수 김형주
Overall Pictures of OO SW Design • Object-Oriented Software Engineering • History of Software Engineering • Designing Reusable Classes • Object-Oriented Analyasis / Design • E-R Modeling / Semantic Modeling • Booch method, Rambaugh OMT, Scheller-Mellor method • Unified Modeling Method (UML)
Contents 1. Introduction 2. Inventions, Aspirations, and Requirements 3. Object-Oriented Analysis 4. Defining Object-Oriented Design 5. Semantic and ER Modeling 6. Overview of Existing Methodologies Booch method Rambaugh OMT method Shlaer and Mellor method
1. Introduction(1) • The OO concepts are used throughout the process • requirement specification ( problem definition ) • analysis ( what the product in question is ) • design ( howit should be built )
Introduction (2) Real-world Problem Object-oriented Concepts ADT OO Analysis OO Design Inheritance Identity Object-Oriented Programming
Modeling SW Development Processes (1) Requirement Specification Waterfall model (W. Royce, 1970) Analysis Design Coding Test A “traditional” software development “waterfall” process Production
Modeling SW Development Processes (2) • Dynamic and iterative nature of OO Development • In object-oriented development, third-party “components” or class hierarchies are integrated • Redesign an entirely new class structure, as the incrementally extended “forest” becomes unmanageable
The dynamic & iterative nature of OO development Requirement Innovations in Analysis and Design Proposed Enhancements OO Analysis New Possibilities OO Design Performance Issues Client/Server Computing Component Object Computing OO Programming C S New Third-party Class Hierarchies New Technologies
Object-Oriented Analysis and Design • OOA(Object-Oriented Analysis) - what • is used to provide a detailed description of a system using object-oriented notation, concepts, and methodology • OOD(Object-Oriented Design) - how • concentrates on providing the blueprint for implementation • Design-before-Implementation Software Engineering
OOA/OOD Methodologies (1) • Shlaer and Mellor OOA/OOD • ( Shlaer and Mellor, 1988, 1992 ) • Wirfs-Brock Responsibility Driven Design • ( Wirfs-Block and Wilkerson, 1989 ) • Coad and Yourdon OOA/OOD • ( Coad and Yourdon, 1991a, 1991b ) • Object Behavior Analysis • ( Rubin and Goldberg, 1992 ) • Objectory method • ( Jacobson et al. , 1992 )
OOA/OOD Methodologies (2) • Martin and Odell OOA/OOD • ( Martin and Odell, 1993 ) • Fusion • ( Coleman et al. , 1994 ) • Booch OOA/OOD • ( Booch, 1994 ) • Rumbaugh Object Modeling Technique(OMT) • ( Rumbaugh et al. , 1994 ) • UML (Unified Modeling Language) !!!
Contents 1. Introduction 2. Inventions, Aspirations, and Requirements 3. Object-Oriented Analysis 4. Defining Object-Oriented Design 5. Semantic and ER Modeling 6. Overview of Existing Methodologies Booch method Rambaugh OMT method Shlaer and Mellor method
2. Inventions, Aspirations, Requirements • Requirements • The system functionality (by what, for whom) • The user/machine/system interaction • The environment (hw/sw platform, network) • The observation: Feedback and prototyping can further enhance and clarify the system • SW development methodology should consider the above issue!
Contents 1. Introduction 2. Inventions, Aspirations, and Requirements 3. Object-Oriented Analysis 4. Defining Object-Oriented Design 5. Semantic and ER Modeling 6. Overview of Existing Methodologies Booch method Rambaugh OMT method Shlaer and Mellor method
3. Object-Oriented Analysis (1) • Booch’s definition of OOA • A method of analysis that examines requirements from the perspective of classes and objects found in the vocabulary of the problem domain. • What • What is the application being built from the end user’s perspective?
Object-Oriented Analysis (2) • Programmers must identify • Entities, relationships, and operations • Aspects of the behavior of entities • static( definition of classes ) • dynamic( interaction between objects, state transition, and so on ) • All operations • All constraints • Classification • The identification of the classes that contain objects similar to one another
Object-Oriented Analysis (3) Major Findings of OOA 1. Objects and classes 2. Object attributes 3. Object and Class relationships • Inheritance Relationships • One-to-One, One-to-Many, Many-to-Many Relationships
Person Multimedia Employee Student Audio Video Images SalesPerson Secretary Graphic Raster < A number of inheritance relationships >
< Entity Relationship for a workflow schema > Created By 1 N WorkFlow Person N 1 Policy of Department 1 N Department Has Link Has Node N N Node Link N/1 1/N N Destination Node 1 Relationship N Source Code 1 Entity
Boolean Person Integer Object-Oriented Analysis (4) • Major Findings of OOA • 4. Operations on objects and classes Workflow CreatorWorkflow < A number of methods associated with the class Workflow > NumberOfActiveWorkflows ContainsNode (Rule)
Object-Oriented Analysis (4) Major Findings of OOA 5. Dynamic concepts • State transition diagrams • Data flow diagrams • Timing diagrams Immediate State Immediate State Event or Action Start State End or Result State State transition
Data flow User Data 1 Process Process 2 1 Data 2 Storage 1 Data 3 Process Process 4 3 Storage 2
Contents 1. Introduction 2. Inventions, Aspirations, and Requirements 3. Object-Oriented Analysis 4. Defining Object-Oriented Design 5. Semantic and ER Modeling 6. Overview of Existing Methodologies Booch method Rambaugh OMT method Shlaer and Mellor method
4. Defining Object-Oriented Design (1) • Berard’s definition of OOD • Object-oriented design is that portion of the sw lifecycle that prepares definitions as to how the system will accomplish its requirements. • The models prepared in analysis are either refined, or transformed, into design models that depict the physical nature of the software product
Defining Object-Oriented Design (2) • The goal of design • To produce the structure of detailed implementation specifications • Analysis: requirement specification • Design: implementation specification • The design phase • A coarse-grained design phase • A more detailed design phase
Coarse-Grained Design (1) • Coarse-Grained Approach • is to break the system into smaller subsystems • subsystems could be supported by different OOA and OOD methods • often this approach takes the form of layered systems & architectures with clean interfaces between the layers ( I.e., Client/Sever coarse-grained architecture )
Coarse-Grained Design (2) • The coarse-grained design phase • Identification of all the subsystems or class categories involved in the system • Mapping of various categories onto different processes and processors • Identification of the third-party software modules • Identification of the various add-on components
Workflow Alerter, In/Out-Box, etc. Workflow Design Tool Workflow Activation Tool Workflow Tracking-Status Workflow Interpreter Route Manager / Rule Manager Workflow Tracking Manager Workflow User & Group Manager Workflow Administrator Manager GUI & Enviroment Client Site < Coarse-Grained architecture of a Workflow system > Workflow Manager Services Server Site DBMS E-Mail & Message Service
More Detailed Design • More Detailed Design • the next phase of coarse-grained design, in the development life cycle • each class category is designed in great detail • all the structures, operations, object interactions, and dynamic concepts of the system are specified here
Design Specification (More Detailed) • Subsystems or class categories • Class definition • Class relationships • Object diagrams and object relationships • State transition • Timing diagrams • Designing algorithms • Physical compilation units
Contents 1. Introduction 2. Inventions, Aspirations, and Requirements 3. Object-Oriented Analysis 4. Defining Object-Oriented Design 5. Semantic and ER Modeling 6. Overview of Existing Methodologies Booch method Rambaugh OMT method Shlaer and Mellor method
5. Semantic and E-R Modeling • DB structures and DB design • ER modeling has been one of the most successful paradigms for designing types and objects • ERs are the forerunners of more powerful semantic data models • ER model: Peter Chen, MIT, 1976
Semantic Data Modeling • Goal: to model the real world as closely as possible • do not incorporate behavioral abstraction • model structural abstraction • Design tools for DB • Assigning semantics: Node and Link • Many ideas from AI Knowledge Representation • Semantic Data Models • ER(Entity-Relationship) Model (Chen, 1976) • GSM(Generalized Semantic Model, (Hull and King, 1987) • And many many others
Link Types in GSM Node Types in GSM A Printable Entity Type Single-valued Attribute An AbstractEntity Type Multivalued Attribute Entity Types That Are Subtypesof Other Entity Types IS-A Inheritance Element of Constructed Type Aggregation(Cartesian Product) Constructed Type tuple Grouping Constructed Type set
PersonAge NAME Name last first Age middle Person Address Address A GSM model for the sales office automation EmployeeSalary Department Salary Department Office Worker Account Accounts Orders SalesPerson Order
Entity Relationship Modeling (1) • Entity type • A set of objects(entities) • Attributes • A function that can apply to an entity • Relationship • Cardinality (one-to-one, many-to-one, many-to-many)
Entity Relationship Modeling (2) • Implementation steps of RDB applications 1. Identify Entity and Relationship of problem domain (Drawing ER diagrams) 2. Merge views from different perspectives 3. Map an ER diagram onto a DB schema (a set of tables) 4. Physical design (Keys, Index, Replication)
Name Salary DeptName Budget < An ER model for the sales office automation > Age Works In M N SalesPerson Department N Lives At 1 1 1 Has Accounts Has Orders Address Zip N N StName State Account Order StNumber City
Contents 1. Introduction 2. Inventions, Aspirations, and Requirements 3. Object-Oriented Analysis 4. Defining Object-Oriented Design 5. Semantic and ER Modeling 6. Overview of Existing Methodologies Booch method Rambaugh OMT method Shlaer and Mellor method
6. Overview of Existing Methodologies • Issues for Selecting OO Methodology 1. Software Development Process 2. Notations and Diagrams 3. Application Domain (General vs Specific) 4. Language Constructs 5. Availability of Tools
Booch’s OOA and OOD (1) • Grady Booch, 1994 • Rational Rose/C++ • The major steps using Booch’s method • Requirement analysis (RA) • Domain analysis (OOA) • Design (OOD)
Booch’s OOA and OOD (2) • Requirement Analysis • use-case( Jacobson et al. , 1992 ) • Domain Analysis • Identification of the classes • Identification of relationships • Identification of object diagrams • Identification of attributes and operations • Identify inheritance
USE CASE • What is Use Case? • Scenario between System and User • Specific pattern of using System Use Case Diagram • Use Case • Making new schedule • Notifying important promise • Showing someone’s public schedule Show Calendar for new schedule Scheduler Notify important promise Actor1 Show someone’s public schedule Actor2
< Booch OOA: Identification of the classes in the problem > Manager Text Candidate Person University Employee
Booch OOA < Class diagrams showing attributes & inheritance > < Identification of object diagrams > 1. Manager qualifies 2. Most people in department approve 3. An offer is made Manager Personnel 1 Propose N 1 Text 3. Make Offer (New Candidate) 1 Biography Candidate 1 Interview N References 1 Universities Attended N N Interview 2. Linked by Most (New Candidate) Person 1. Qualifies (New Candidate) University M Manager Department Employee
Booch OOA < Attributes & operations for class Candidates > <Inheritance hierarchies in Booch notation> Person Candidate Name : String Date of Birth : Date Social Security : String Employee Student Corporate Hiring Process SalesPerson Graduate Candidate HighestDegree( ) NumberOfYears WorkExperience( ) Department Hiring Process Manager Hiring Process
Booch’s OOA and OOD (3) • The steps of Booch’s OOD • Class categories for major components of the architecture • Detailed design • Processes and devices • Modules
Booch’s OOD Some of the devices and processors in a document imaging system Class categories for a workflow system Workflow User Interface FAX Station OCR Processing Computer Operating System Graphical Interface Workflow System Scanner Station Database Storage Engine Full-Text Retrieval Engine Workflow Database Manager Electronic Messaging Storage Subsystem
The OMT OOA and OOD • James Rumbaugh, 1991 • Object-Oriented Analysis (OOA) • Problem Statement • Object Model -- object diagram • Dynamic Model -- event trace, state transition diagram • Functional Model -- data flow diagram • Object-Oriented Design (OOD) • System Design • Object Design
Object Model • The definitions of Object Model • the object model describes the structure of the objects in a system --- their identity, relationships to other objects, and attributes. • ( Rumbaugh et al. , 1991 ) • Object Diagram • captures the notation for objects