Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

Similar documents
Domain Modeling: Associations and Attributes

Operations Contracts and Preliminaries on Design

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D

Domain Model and Domain Modeling

GRASP ing at the First 5 Patterns Principles CSSE 574: Session 3, Part 4

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1

Logical Architecture & Design Preliminaries

Object-Oriented Functional Analysis and Design for POS Example

CSSE 374: UML Activity Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP

Information Expert (or Expert)

Software Modeling & Analysis

GRASP: Patterns for. chapter18

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel

Four More GRASP Principles CSSE 574: Session 5, Part 2

Designing for Visibility & Mapping to Code CSSE 574: Session 4, Part 3

Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)

COMP 6471 Software Design Methodologies

THE UNIVERSITY OF THE WEST INDIES. Answer ALL questions. Marks for each question are given in the margin. This exam is worth 60 marks

Principles of Software Construction: Objects, Design and Concurrency. Object-Oriented Design: Assigning Responsibilities.

Lecture 8: Use Case -Driven Design. Where UML fits in

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Class Diagrams in Analysis

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae

COMP 6471 Software Design Methodologies

What is a Model? Copyright hebley & Associates

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency. Assigning Responsibilities to Objects. toad. Jonathan Aldrich Charlie Garrod

More Object Design with GoF Patterns (continued) CSSE 574: Session 7, Part 3

Final Exam CISC 475/675 Fall 2004

CSSE 374: GRASP ing at the First Five Patterns Principles. Shawn Bohner Office: Moench Room F212 Phone: (812)

Software Modeling & Analysis

Object Oriented Model of Objectory Process

BDSA Introduction to OOAD. Jakob E. Bardram

CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD

1: Introduction to Object (1)

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

4 Software models. often more than what people can handle not necessary to know all details at all times

Constantinos Constantinides Computer Science and Software Engineering Concordia University Montreal, Canada

OO Design2. Design Artifacts

Domain Modeling- 2. Generalization

More Object Design with GoF Patterns CSSE 574: Session 7, Part 2

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS

Design First ITS Instructor Tool

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

Responsibilities. Using several specific design principles to guide OO design decisions.

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

Introduction to UML. (Unified Modeling Language)

user.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING

CSSE 374: Even More Object Design with Gang of Four Design Patterns

ROEVER ENGINEERING COLLEGE DEPARTMENT OF INFORMATION TECHNOLOGY CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

Review sheet for Final Exam (List of objectives for this course)

Principles of Software Construction: Objects, Design, and Concurrency

CSCI-1200 Data Structures Spring 2018 Lecture 14 Associative Containers (Maps), Part 1 (and Problem Solving Too)

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

References: Applying UML and patterns Craig Larman

CSSE 374: Design Class Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

Assigning Responsibilities by Larman

Object-Oriented Software Engineering Practical Software Development using UML and Java

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Software Life-Cycle Models

17. GRASP: Designing Objects with Responsibilities

Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3

MANAGING YOUR MAILBOX: TRIMMING AN OUT OF CONTROL MAILBOX

MIS2502: Data Analytics Relational Data Modeling - 1. JaeHwuen Jung

SRI VENKATESWARA COLLEGE OF ENGINERRING AND TECHNOLOGY THIRUPACHUR,THIRUVALLUR UNIT I OOAD PART A

Object Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design

CSSE 490 Model-Based Software Engineering: Software Factories

CSSE 574 Intro to Usability Bass s perspective and the ID book s perspective

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

CS 327E Lecture 8. Shirley Cohen. February 22, 2016

Federal Plain Language Guidelines

Review: Cohesion and Coupling, Mutable, Inheritance Screen Layouts. Object-Oriented Design CRC Cards - UML class diagrams

MSO Lecture 3. Wouter Swierstra. September 14, 2015

2 GRASP Patterns and basic OO Design. Roel Wuyts OASS

Tutorial 1 Answers. Question 1

Managing Information. Technology. Lesson 7 FOCUS AND ENGAGE. Introduce the Lesson. Prepare. Discuss

CRM. Processes, Best Practices and Policies

Overview. Consolidating SCM Infrastructures - Migrating between Tools -

Math 2524: Activity 1 (Using Excel) Fall 2002

OBJECT-ORIENTED MODELING AND DESIGN. Domain Analysis

Applying Some More Gang of Four Design Patterns CSSE 574: Session 5, Part 4

Basic Structural Modeling. Copyright Joey Paquet,

SAP. Modeling Guide for PPF

History of object-oriented approaches

Systems Analysis & Design

Top-Down Network Design

Object-Oriented Design

Programming Style. Quick Look. Features of an Effective Style. Naming Conventions

On to Object-oriented Design

CSSE 374: More Object Design with Gang of Four Design Patterns

HCI and Design SPRING 2016

Data Analysis 1. Chapter 2.1 V3.1. Napier University Dr Gordon Russell

Transcription:

Domain Modeling CSSE 574: Week 1, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu

s g Where we re going Sample UP Artifact Relationships date... Sale Domain Model 1 1..* Sales... LineItem quantity... Domain Model Use Cases conceptual classes terms, concepts attributes, associations the domain objects, attributes, and associations that undergo state changes elaboration of some terms in the domain model Use-Case Model - s Process Sale 1. Customer arrives... 2.... 3. Cashier enters item identifier. 4... Use Case Text Operation: enteritem( ) Post-conditions: -... Operation Contracts Cashier: Item ID:... Glossary Design Model conceptual classes in the domain inspire the names of some software classes in the design Design Model

Domain Model An Abstraction of Conceptual Classes Most important model in Object-Oriented Analysis Illustrates noteworthy concepts in a domain Source of inspiration for designing some software objects Basic notation is trivial, but it takes practice to build a useful model

Conflicting/Competing Demands Want rich set of conceptual classes to support understanding and communication Want a short time investment Analysis Paralysis

What is a Domain Model? Visual representation of conceptual classes and their relationships Focuses on one domain Should be free of how implemented Thus, good for old and new system, etc. Illustrated using UML class diagrams without operations

Avoiding Pitfalls Such as

Avoid Premature Design Good Avoid Avoid

Domain Model versus Domain Layer

Confusion with Databases Domain model data model Data models: Only show persistent data Exclude classes that don t have attributes Domain models may include: External actors, transient data, any real-world classes Also classes without attributes/data that have a purely behavioral role

Conceptual Classes A conceptual class is an idea, thing, or object Formally, a conceptual class can be represented as: a symbol, it s intension, or it s extension

Conceptual Class, More Formally Example Not Just an OO Idea Symbol Intension A sale represents the event of a purchase transaction. It has a date and time. Extension

Why Create a Domain Model? Domain Model Easier for Users to Understand Names from domain model move into the domain layer in the software Goal: lower representational gap Helps us: Understand the software Maintain the software How?

It s important to understand your customer s domain Wow, that s less than $200 per uh That s a good deal!

How to Create a Domain Model 1. Find the conceptual classes 2. Draw them as classes in a UML class diagram 3. Add associations and attributes (but not operations)

Strategies to Find Conceptual Classes 1. Reuse or modify existing models 2. Identify noun phrases; linguistic analysis 3. Use a category list

Category Lists for Conceptual Classes Conceptual Class Category POS Examples Business transactions Here s where the $ is! Physical objects Important for control systems, simulations Containers of things Sale, Payment Item, Register Store, Aisle, Bin

Some Guidelines

Modeling the Unreal World Some domains are inherently abstract Telecommunications Server Management Log File Analysis Guideline: listen carefully to the vocabulary and concepts used by the domain experts

Common Mistake Your programmer s intuition helps here int, double String Sending an attribute to do a conceptual classes job Guideline: if some attribute isn t a number or text in the real world, then it probably should be a conceptual class not an attribute Examples

Attribute or Class? - or - - or - - or -

Creating a Domain Model Identify Candidate Conceptual classes Draw them in the initial Domain Model Add requisite associations to record key relationships Add attributes to preserve relevant information Apply existing Analysis Patterns Use existing names for things, the vocabulary of the domain Exclude irrelevant features Rules of thumb for Conceptual Classes If it takes up space, then it is probably a conceptual class. If you can t think of a thing as a number or text, then it is probably a conceptual class. 21

Description Classes A description class contains information that describes something else, e.g., ProductDescription Example

Consider Assume an Item instance represents a physical item in a store Item data only recorded within Item instances When a real-world item is solid, we remove the software Item from a collection and it s garbage collected Amps that go to 11 are sold out! How much for an Amp that goes to 11?

Problems Lose memory of the price, etc., if no Item instances remain in the system Duplicate data Wasted space Error-prone

Solution: Use Description Class When information must be retained independent of existence of instances of the described item When deleting the described item could result in information loss When it reduces redundant information

Homework and Milestone Reminders Check the Schedule for what s due when! I ll be revising later parts of the schedule, compressing and adding some things. Will add the next week s materials before next class. 26