Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN: 0-201-43289-7.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Week 2 The Object-Oriented Approach to Requirements
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
1 The Business Modeling Discipline. 2 Purpose of Business Modeling  To understand the structure and dynamics of the organization in which a system is.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Copyright ©2004 Cezary Z Janikow 1 Domain Model n Visualization of entities and relationships n In UP presented as Class Diagrams – Classes, Relationships,
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Business Modeling – The Domain Model
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
171 Use Case Descriptions Chapter 4 – Facade Iteration Initial Requirements (Inception Phase)
© Copyright Eliyahu Brutman Programming Techniques Course.
Introductory case study. 2 The problem The most difficult part of any design project is understanding the task you are attempting You have been contacted.
Sharif University of Technology Session # 7.  Contents  Systems Analysis and Design  Planning the approach  Asking questions and collecting data 
1/24 Business Modeling – The Domain Model Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
Object Oriented Analysis and Design Using the UML
Software Engineering Case Study Slide 1 Introductory case study.
The chapter will address the following questions:
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 5 Analysis Model. Analysis model (AM) The first step in describing how the system will implement the requirements specification The first step.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 7 Structuring System Process Requirements
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 ER Modeling BUAD/American University Entity Relationship (ER) Modeling.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
17 1 Use Case Descriptions Chapter 4 – Facade Iteration Requirements Inception Phase.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
ICONIX P ROCESS FOR S OFTWARE D EVELOPMENT Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn 1.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Activity & Class Modeling Labs Discussion p3 T120B pavasario sem.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Business Modeling – The Domain Model Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN: Also,
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Design Model Lecture p6 T120B pavasario sem.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Activity & Class Modeling Labs Discussion p3 T120B pavasario sem.
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Distributed Java Programming Distributed Java Programming Class #1 August 20, 2002.
UA. Unified Approach ( UA ) It combines best practices, methods process, guidelines & methodology (Rumbaugh, Booch and Jacobson) along with UML notations.
Introduction to Unified Modeling Language (UML)
Week 10: Object Modeling (1)Use Case Model
Today in OOAD Today in Lab Review EU-Lease Assignment (Vision)
Object Oriented Analysis and Design
Use Case Analysis – continued
Presentation transcript:

Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:

Background  A key component of Business Modeling is creating the Domain Model –Contains Key Abstractions present in the problem domain.  Prior to embarking on Use Case Modeling, we need to understand the key entities in the problem space.

Put our Approach into Perspective  Three schools of thought in the OO community for developing systems.  1. Data centered approach –Derived largely from ER modeling –Method includes ERDs, DFDs, STDs. –Method decomposes a system along data boundaries.  2. Structural approach –Start with OO programming perspective and work up –Good for detailed design and coding; not much analysis  3. Scenario-based approach – grounded in usage scenarios. –Decomposed a system along usage boundaries.  We really combine all of these, but especially Jacobson’s Objectory process (  RUP) and also OMT (Rumbaugh) for high level static modeling (preliminary design), and Booch for detailed static and dynamic modeling…

Fundamental Questions – to Always Guide your Activities  Who are the users of the system (actors) and what are they trying to do?  What are the ‘real world’ (problem domain) objects and associations between them?  That is, what are the key abstractions???  What objects are needed for each use case?  How do the objects collaborating within each use case interact?  How will we handle real-time control issues? (depends on application, of course)  How are we really going to build this system on a nuts-and-bolts level?

 All successful development efforts require answers to all these questions.  Keep this in mind at all times.  They are all answered over time and in various activities developers undertake.  Involve business modeling, requirements, analysis, design (preliminary and detailed design) activities to answer all of these….

The Main Initial Activities  Business Modeling –vision, business rules, domain model and glossary artifacts are essential.  Business Model  Business Object Model  Then, we will need to (soon) –Create a rapid prototype of system –Identify your use cases using use case diagrams –Organize these into packages –Allocate functional requirements to the use cases and domain objects at this stage….  Review like Mad. A Milestone.

Emphasis on Domain Model  Such an important activity!!  Domain Modeling is the task of discovering ‘objects’ (classes really) that represent real world things and concepts in the problem domain.  We actually work ‘outward’ from data requirements to build a ‘static model’ of the problem domain relative to the proposed system. –Note: this static model is a first cut! –There is much we will not know – but will later…. –Dynamic modeling later will drive the static model.   The Domain Model serves as a glossary of terms (sometimes documented separately) for use by developers of the use cases.

Sources of Information for Domain Modeling  High-level problem statements  Lower level requirements  Expert knowledge of problem space  Others discussed –Interviews –Questionnaires –Web pages –Quarterly reports…..

Procedure for Discovery  Go through written material (requesting clarification when necessary)  Circle nouns / noun phrases –  domain objects.. Nouns and noun phrases tend to become objects and attributes. –Eliminate unnecessary ones, too vague, things out of scope, …. –‘Bold’ these items in appropriate documents or create a separate candidate class list. –May be too large; after pairing, may be too small. Read between lines of source documents. –No more than one-hour max…. Will be refined later in creating analysis model – static.

Generalization Relationships and Associations  Build generalization relationships –Parents, subclasses…. Inheritance of attributes, methods, and associations! –‘is a’ relationships….  Associations are static relationships between classes. –Show dependencies but not actions or messages. –(actions best shown by operations and messages – later)  Domain Model serves as the foundation of our static class model! So very essential!

Associations and Multiplicity  Label the associations as best you can.  Try to identify multiplicities, but don’t spend too much time.  Aggregations – identify classes such that one class is ‘made up’ from smaller pieces… ‘has a’ or ‘kind of’.  Also, there is composition – where one piece is ‘owned’ by another – later…..  Focus on simple aggregations now.

Association Classes  Classes that particularly address the many-to-many relationships that tend to pair classes or link classes.  These do have properties independent of classes they are linking.  Most domain models have at least one or two link classes.  Don’t overuse these….

Relational Databases  Sometimes relational databases have tables that are excellent sources of domain classes. –Normally contain too many attributes that don’t belong in the context of an object model…. –Can factor out a lot of these into groupings and call them ‘helper classes’ that may be linked via aggregations.

Consolidate  Put all this together….  Create your Domain Model. –Actually at the ‘analysis level’ –Problem space –No implementation dependencies…  Iterate and refine.  Build this glossary of terms that will serve as nouns in your use case text.  Recognize that this is still only a skeleton of your object model.  You will update as you go…

10 Top Domain Modeling Errors  10. Start assigning multiplicities to associations right off the bat. Make sure that every association has an explicit multiplicity.  9. Do noun and verb analysis so exhaustive that you pass out along the way.  8. Assign operations to classes without exploring use cases and sequence diagrams.  7. Optimize your code for reusability before making sure you’ve satisfied the users’ requirements.  6. Debate whether to use aggregation or composition for each of your part-of associations

Continuing…  5. Presume a specific implementation strategy without modeling the problem space.  4. use hard-to-understand names for your classes – like cPortMgrIntf – instead of intuitively obvious ones, such as PortfolioManager.  3. Jump directly to implementation constructs such as friend relationships and parameterized classes  2. Create a one-for-one mapping between domain classes and relational database tables.  1. Perform “premature patternization,” which involves building cool solutions, from patterns, that have little or no connection to user problems.