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

Slides:



Advertisements
Similar presentations
Entity Relationship Diagrams
Advertisements

Object-oriented modeling Class/Object Diagrams
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
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.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Chapter 2 Data Models Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Chapter 14 (Web): Object-Oriented Data Modeling
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
231 Business Modeling - Domain Analysis Most materials taken from the RUP textbook Chapter 8 and OOSE, pp
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
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)
Use Case Analysis – continued
1/24 Business Modeling – The Domain Model Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
Business Modeling - Domain Analysis Most materials taken from the RUP textbook Chapter 8 25.
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
CSC271 Database Systems Lecture # 21. Summary: Previous Lecture  Phases of database SDLC  Prototyping (optional)  Implementation  Data conversion.
Introduction To System Analysis and design
What is a domain model? “A domain model captures the most important types of objects in the context of the business. The domain model represents the ‘things’
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
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.
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
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.
231 Business Modeling - Domain Analysis Most materials taken from the RUP textbook Chapter 8 and OOSE, pp
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.
Introduction To System Analysis and Design
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
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.
1 Introduction to Software Engineering Lecture 1.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data Modeling Modern Database Management 9 h Edition Jeffrey A.
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Design Model Lecture p6 T120B pavasario sem.
Repetition af Domæne model. Artifact influence emphasizing the Domain Model.
Human Computer Interaction
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
1 Introduction to Classes. 2 Terms and Concepts A class is... –The most important building block of any object- oriented system. –A description of a set.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
 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.
2 1 Database Systems: Design, Implementation, & Management, 7 th Edition, Rob & Coronel Data Models Why data models are important About the basic data-modeling.
1 SWE Introduction to Software Engineering Lecture 14 – System Modeling.
1 CS 430 Database Theory Winter 2005 Lecture 3: A Fifty Minute Introduction to Data Modeling.
DBS201: Data Modeling. Agenda Data Modeling Types of Models Entity Relationship Model.
Elaboration popo.
Business System Development
The Movement To Objects
Physical Data Model – step-by-step instructions and template
SYS466 Domain Classes – Part 1.
Use Case Analysis – continued
Presentation transcript:

Business Modeling – The Domain Model Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN: Also, pp OOSE Text Modified 10/10/11

Background  A key component of Business Modeling (Domain Analysis) - is creating the Domain Model  The Domain Model contains Key Abstractions (business / technology)  Is a Visual Model of entities, relationships, multiplicities, and more.

Domain Modeling - an Introduction  Domain Modeling is the task of discovering “business objects” that represent those business entities and concepts.   Recognize that the domain model will be a superset of your entity classes needed for your application development. Your class diagrams – later on - will likely contain some of the entities found in your domain model. Similar to ERDs, but not the same.  Fully-attributed list (not a schema or physical database design…)

Domain Modeling - continued  Domain Models sometimes considered ‘informal’ class diagrams.  Developed as part of domain analysis (business modeling)  The ‘classes’ (entities) represent what you have learned about various ‘things’ (entities) and relationships between/among them in the domain itself.  As a Visual Model, they will help in understanding the domain.  Also serves as a Glossary, in that the entities will contain attributes and other defining qualities.

Domain Modeling - continued  The Domain Model: not a class diagram Does NOT wholly support requirements analysis (ahead). Is not INTENDED to… Addresses entities are in the domain of the organization – that may be quite apart from a computer application that may use them.  Domain models are normally not concerned with representations of inheritance, polymorphism, … (as we would be when embarking on development of an application.)

Domain Modeling - continued  During requirements analysis – we will be developing class diagrams that will contain entities (classes) taken from the domain model.  (Software) class diagrams (for development) will represent data that will be stored ( often as persistent objects) and manipulated by the application. Application deals with real software modules – likely stored in a database Instances (objects) will be loaded from and stored back into a database as the application runs.

Domain Modeling - continued  Models produced as part of requirements analysis (ahead lectures) are frequently: Entity classes - some may be derived from Domain Model, Boundary classes - used for the user interface, and Control Classes used for controlling logic and business rules, and more.

So, what do we do?  Domain modeling is very important.  Don’t spend too much time trying to model everything!!!  Yet we need to have a good starting point for requirements analysis to solve the ‘problem.’  So, do domain modeling to develop an ‘initial’ set of classes. We are developing a static model of the domain by finding appropriate entities that represent the real key abstractions in the domain.

Developing Entities for Domain Model  Sources (again) of Domain Knowledge. Here are a few: Interviews Questionnaires Quarterly Reports Mission Statements Subject Matter Experts (SMEs) Newsletters Web pages A company’s e-business….  Look for nouns – these are candidate classes in the domain model. Examples: Menu, customer, food order, Payment, On-line order…  Customer (class with attributes /behaviors) ‘orders’ (relationship) Food (class with attributes) – captured graphically.  Customer and Food are entities related by Orders….

Developing Domain Entities  Read sources very closely to capture these ‘nouns’ and noun phrases.  Possessive phrases generally indicate that the nouns should be attributes rather than objects. Try to identify attributes / operations.  Build associations (& name them) between domain classes  Add multiplicities carefully  Don’t worry about aggregations and association classes and much more unless these relationships are clearly evident.  Capture domain entities (model) in Rose or other tool.

Generalization Relationships and Associations  If clear from your info gathering, build generalization relationships Parents, subclasses…. Inheritance of attributes, methods, and associations! Not a must, but if clear: do it. ‘is a’ relationships….  Associations are static relationships between classes.  Show dependencies if needed.

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 ‘is a kind of’.  Also, there is composition – where one piece is ‘owned’ by another – later…..  Focus on simple aggregations now.  Don’t stress on relationships that are not obvious

Following slide is an example (Has a few errors in it) that you may use as a guide. See also my web page…

SYSTEM_USER Member_ID System_User_Password System_User_Title MEMBER_TYPE Member_Type_Number Member_Type_Description SALE_ORDER SO_Order_Number SL_Line_Number SO_Order_Date Member_ID SALE_LINE SL_Line_Number Item_Number MEMBER Member_ID Member_Type_Number Member_First_Name Member_Middle_Initial Member_Last_Name Member_Address Member_City Member_State Member_Zip_Code Member_Phone_Number Member_ University_ID_Number MEMORABILIA_INVENTORY Item_Number Item_Description Cost_To_Member UNIVERSITY University_ID_Number University_Name University_Address University_City University_Zip_Code FINANCE Financial_ID_Number Financial_Date Member_ID Financial_Amount Financial_Desc Payment_Type_ID PAYMENT_TYPE Payment_Type_ID Payment_Type_Desc REPLENISH_ORDER RO_Order_Number RL_Line_Number RO_Order_Date REPLENISH_LINE RL_Line_Number Supply_Number RL_Line_Quantity VENDOR Vendor_Number Vendor_Name Vendor_Address Vendor_City Vendor_State Vendor_Zip_Code Vendor_Phone SUPPLIES Supply_Number Vendor_Number Item_Number Cost_To_UPE Is an authorized Belob to Is categorized as places manages Is generated for provides Is generated foridentifies tracks references contains Domain Model

8 Top Domain Modeling Errors  8. Start assigning multiplicities to associations right off the bat. Make sure that every association has an explicit multiplicity.  7. Do noun and verb analysis so exhaustive that you pass out along the way.  6. Debate whether to use aggregation or composition for each of your part-of associations  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.

Continuing…  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.

Transition to: The Problem Space!!!  Area within which your application is to exist!

The Problem and the Scope  The term “problem domain” refers to the area that encompasses real-world persons, places, and/or things and concepts related to the problem that the system to be developed / enhanced, etc. is being ‘required’ to solve.  A ‘problem’ may be considered a ‘difficulty’ (inadequacy of current system) or ‘opportunity’ for benefit, or more

Problem Statement (‘Vision’ of the Application to be Developed)  The problem statement should be a simple sentence or two. Usually then found in a Vision Document  VERY IMPORTANT; High level…  Basis to answer the ultimate question: Have we solved the problem?  Be careful what you write!!!  Wild inferences can be made.

Sample Problem Statement (Student Registration System)  “The system will allow students to register for courses, and change their registration, as simply and rapidly as possible. It will help students achieve their personal goals of obtaining their degree in the shortest reasonable time while taking courses that they find most interesting and fulfilling.” (p. 107, OOSE)

Scope and Its Bounds  Broader the scope, the more complex the application.  Along with the problem statement, include a list of features to be accommodated. This will narrow features; Can simply be ‘bulleted’ items  Scope, hence commitment, is clarified by listing features or sub-problems.  Determine that some of these are ‘out of scope’ or will be accommodated by a different application. Good to have a comprehensive list citing features that are explicitly OUT of scope as well as those IN scope.

Scope and Bounds  Problem Statement (Vision) ‘has’ scope – that is, what the developed / enhanced application will accommodate.  This is why the Vision Statement (or Problem Statement) should be followed by a list of ‘features.’  More coming…