Fall 2002 SJSU -- CMPE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José State University One Washington Square San José, CA URL:
L2-S2Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 2 Lesson 2: Modeling
L2-S3Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Lesson Objectives 3 Understand modeling Discuss Model essentials Explore Different Models Understand the differences between a method and a process Understand the differences between multiple models and multiple views
L2-S4Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Define: –Standards –Methodologies –Method & Process –Model & View –Tools –Environments 4 Definitions
L2-S5Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Standards imply regulations, guidelines, rules, laws, and so on. Standards can dictate named methodologies, such as IEEE standards or DOD standards (Ex: DOD-STD-2167A). A standard alone is not sufficient on getting a task completed. Why? 5 Standards [Fayad-Laitinen 1998]
L2-S6Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Because standards focus on the attributes of the results instead of how the results will be achieved A standard also includes a type, model, or example commonly or generally accepted or adhered to, such a criterion set for usage or practices (moral standards) Standards applies to some measure, principle, model, and so on, with which things of the same class are compared to determine their quantity, value, quality, and so forth (standards of purity in drugs) 6 Standards [Fayad-Laitinen 1998]
L2-S7Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad A methodology is “a science of method or orderly arrangement” Webster. A methodology is used to refer to the very highest level of the way we do things. A methodology also refers to “a system of methods, as in particular science” The methodology we will consider here cover only the development of software applications. 7 Methodology [Fayad-Laitinen 1998]
L2-S8Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad A method implies a regular, orderly, logical procedure for doing something, such as a method of finding software requirements. Exs: Waterfall model, spiral model [Boehm84], and fountain model [Henderson-Selers90]. Jacobson defines a method as a planned procedure by which a specific goal is approached step by step [Jacobson92]. Examples of software design method are a set of work procedures, a set of notations, or a set of heuristics. 8 Methods or Techniques
L2-S9Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Software engineering methods can be divided into three major categories: 1. Process-Oriented Methods [Yourdon89] 2. Data-Oriented Methods [Martin90] 3. Object-Oriented Methods [Fayad93, Rumnaugh91, etc..] 9 Methods or Techniques
L2-S10Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 10 POM vs. OOM
L2-S11Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 11 Method Provides Foundation for Software Engineering
L2-S12Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 12 The Myth of the Single Software Development Method
L2-S13Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 13 How Many OO Methods Exist? UML
L2-S14Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 14 Engineering Process Hierarchy Engineering ComputerElectronics SoftwareHardware SASDOOT UML Scientific Area Standards Methodologies (Macrodevelopment Processes) Techniques (Methods) (Minidevelopment Processes) Processes (Microdevelopment Processes OMT Identify Classes Identify Attributes
L2-S15Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 15 Processes are Important for a new OO Teams New methods and tools introduce confusion Processes define exactly who, what, when, and how –“big-picture”
L2-S16Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 16 Method vs. Process Processes take OO methods out of the classroom and put them to work Theoretical Ideas Predictions Practical Concrete Actions Metrics
L2-S17Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 17 Defined Processes are Baseline for Improvements Can’t improve anything that you can’t repeat
L2-S18Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 18 Software Process Hierarchy
L2-S19Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 19 General Processes Must be Tailored to Your Projects
L2-S20Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 20 Identifying Appropriate Process Details Cost effective range –depends upon environment –specifies “who”, “what”, “when” –reference “how” Too Much not cost effective typically too much “why” Not Enough useless typically only “what”
L2-S21Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Building a model is a well-established human process. A model is a description of something. Models allow us to answer questions about a real thing before we build it. Models capture only those features deemed essential by model builders for their goals. A single thing might be represented by multiple model. Models can be validated. 21 Modeling – Definition
L2-S22Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 22 Model Essentials Simple Complete (most likely to be correct) Stable to technological changes Testable Easy to understand Visual or graphical [Fayad98]
L2-S23Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 23 Modeling Classifications [1] Tangible –Physical –Examples Mall Aircraft Intangible –Logical –Examples Flowcharts STDs DFDs
L2-S24Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 24 Modeling Classifications [2] Static –Object models –Domain models –DFDs Dynamic –Behavior models Flowcharts Petri-Net –Three properties: Control, Behavior, Time
L2-S25Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 25 Modeling Classifications [3] Object Model (class diagram) Control Model (STDs) Transformation Model (DFDs)
L2-S26Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 26 Modeling Classifications [4]: UML Static Type diagrams, CRC cards, class diagrams Dynamic or Behavior Activity diagrams, collaboration diagram, sequence diagram, and state diagram Implementation Component diagram & deployment diagram
L2-S27Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 27 Multiple Models vs. Multiple Views UML has 9 different models. This called “multiple models” and represents: –Abstraction, what and how, etc. It is not “multiple views” Multiple view represents: –Presentations –Levels, layers, slices, details –Scalability, accessibility, authorization, information hiding, dimensions
L2-S28Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad 28 Tools: Select Tools to Meet Specific Needs
L2-S29Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad What are the differences between multiple models and multiple views? T/F –UML stands for United Modeling Level. –Software design is part of UML. Define: Static models, dynamic models, transformation models What are the differences between a method and a process? 29 Discussion Questions
L2-S30Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Discuss the following guidelines –Go Beyond the Problem Domain –Speculate About Likely Changes –Separate General Functionality from Specific Policy –Object should have Cohesive Interfaces –Objects Should Be Intelligent Agents –Objects Should Export Services –Avoid “Object Machismo” 30 Questions for the Next Lecture
L2-S31Modeling Fall 2002 SJSU – CMPE ---- M.E. Fayad Task 1: Problem Statements for team assignments and team projects are needed (see sample problems on OOPSLA – DesignFest). This is due on the second week of the semester. Task 2: Identify the team members of your team. Select a team name. me your team name, team members’ names, s, phone numbers immediately. 31 Tasks for Next Lecture