Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel

Similar documents
Chapter 5: Structural Modeling

S T R U C T U R A L M O D E L I N G ( M O D E L I N G A S Y S T E M ' S L O G I C A L S T R U C T U R E U S I N G C L A S S E S A N D C L A S S D I A

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

Object Oriented Software Development CIS Today: Object Oriented Analysis

System Analysis and Design/ Object-Oriented System Modeling

ER DIAGRAM ER) diagram, a graphical representation of entities and their relationships to each other, typically used in computing in regard to the

Class Diagrams in Analysis

Using High-Level Conceptual Data Models for Database Design A Sample Database Application Entity Types, Entity Sets, Attributes, and Keys

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

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Principles of Software Construction: Objects, Design, and Concurrency

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

Conceptual and Logical Design

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams

CSE 530A. ER Model. Washington University Fall 2013

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

Information Technology Audit & Cyber Security

Progress Report. Object-Oriented Software Development: Requirements elicitation (ch. 4) and analysis (ch. 5) Object-oriented software development

Outline of Lecture 3. Identifying Objects. Requirements Analysis Overview. Actors, Objects and Classes

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

MTAT Software Engineering

Chapter 5, Analysis: Object Modeling

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

Database Systems. A Practical Approach to Design, Implementation, and Management. Database Systems. Thomas Connolly Carolyn Begg

22/09/2012 INFO2110. Copyright Warning. Revision of class diagram. Overview. Purpose of class diagram. Generalization Relationship

MIS Database Systems Entity-Relationship Model.

Tutorial notes on. Object relational structural patterns

Object-Oriented Programming Concepts

Practical UML - A Hands-On Introduction for Developers

Chapter 6: Entity-Relationship Model. The Next Step: Designing DB Schema. Identifying Entities and their Attributes. The E-R Model.

Basic Structural Modeling. Copyright Joey Paquet,

Conceptual Database Design

COSC 3351 Software Design. An Introduction to UML (I)

Domain Model and Domain Modeling

SE 1: Software Requirements Specification and Analysis

The Next Step: Designing DB Schema. Chapter 6: Entity-Relationship Model. The E-R Model. Identifying Entities and their Attributes.

Chapter (4) Enhanced Entity-Relationship and Object Modeling

CS/IT Secure Software Construction

Object Orientated Analysis and Design. Benjamin Kenwright

CSE 403: Software Engineering, Spring courses.cs.washington.edu/courses/cse403/15sp/ UML Class Diagrams. Emina Torlak

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

Object-Oriented Design

From Analysis to Design. LTOOD/OOAD Verified Software Systems

Principles of Software Construction: Objects, Design, and Concurrency


CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #5: Entity/Relational Models---Part 1

MechEng SE3 Lecture 7 Domain Modelling

Chapter 4. Enhanced Entity- Relationship Modeling. Enhanced-ER (EER) Model Concepts. Subclasses and Superclasses (1)

PART A : MULTIPLE CHOICE Circle the letter of the best answer (1 mark each)

Software Engineering I (02161)

LABORATORY 1 REVISION

Practical UML : A Hands-On Introduction for Developers

Objectives Pre-Test Questions Introduction Collaboration Diagrams Flow of Events and Special Requirements...

Related download: Instructor Manual for Modern Database Management 12th Edition by Hoffer Venkataraman Topi (Case studies included)

Object-Oriented Design

Software Engineering I (02161)

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Modern Systems Analysis and Design Seventh Edition

CMPT 354 Database Systems I

Represent entities and relations with diagrams

Class Diagram. Classes consist of. Note that class diagrams contain only classes, not objects.

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

A l Ain University Of Science and Technology

E-R Model. Hi! Here in this lecture we are going to discuss about the E-R Model.

The Unified Modeling Language. Asst.Prof.Dr. Supakit Nootyaskool IT-KMITL

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

UML Is Not a Methodology

Object Oriented Methods with UML

Class Diagram. Classes consist of. Note that class diagrams contain only classes, not objects.

Software Service Engineering

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

1. Introduction to Object Oriented Software Development

Chapter 11 Object and Object- Relational Databases

Architecture and the UML

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)

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

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

Introducing the UML Eng. Mohammed T. Abo Alroos

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

Systems Analysis and Design in a Changing World, Fourth Edition

MSO Lecture 3. Wouter Swierstra. September 14, 2015

Conceptual Design. The Entity-Relationship (ER) Model

COMP Instructor: Dimitris Papadias WWW page:

administrivia today UML start design patterns Tuesday, September 28, 2010

Slide 1 Welcome to Fundamentals of Health Workflow Process Analysis and Redesign: Process Mapping: Entity-Relationship Diagrams. This is Lecture e.

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

OVERVIEW OF DATABASE DEVELOPMENT

Chapter 3 Database Modeling and Design II. Database Modeling

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis)

Design and UML Class Diagrams

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Database Design Process

Unified Modeling Language (UML)

Introduction to Software Engineering: Analysis

Fundamentals of Health Workflow Process Analysis and Redesign

Chapter 2: Entity-Relationship Model

System Analysis & design

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

OO System Models Static Views

Transcription:

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel Enn Õunapuu enn.ounapuu@ttu.ee

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 that exist or events that transpire in the business environment. I. Jacobsen

Why do a domain model? Gives a conceptual framework of the things in the problem space Helps you think focus on semantics Provides a glossary of terms noun based It is a static view - meaning it allows us convey time invariant business rules Foundation for use case/workflow modelling Based on the defined structure, we can describe the state of the problem domain at any time.

Simple domain model Person first name : String +employee +employer last name : String salary 1..* 0..1 +owner type name * Car Attribute Association Role name Company <<Rule>> If a person is not employed by a company then they do not have a car. Domain class

Features of a domain model The following features enable us to express time invariant static business rules for a domain:- o Domain classes each domain class denotes a type of object. o Attributes an attribute is the description of a named slot of a specified type in a domain class; each instance of the class separately holds a value. o Associations an association is a relationship between two (or more) domain classes that describes links between their object instances. Associations can have roles, describing the multiplicity and participation of a class in the relationship. o Additional rules complex rules that cannot be shown with symbology can be shown with attached notes.

Domain classes? Each domain class denotes a type of object. It is a descriptor for a set of things that share common features. Classes can be:- o Business objects - represent things that are manipulated in the business e.g. Order. o Real world objects things that the business keeps track of e.g. Contact, Site. o Events that transpire - e.g. sale and payment. A domain class has attributes and associations with other classes (discussed below). It is important that a domain class is given a good description

How do I make a domain model? Perform the following in very short iterations: o Make a list of candidate domain classes. o Draw these classes in a UML class diagram. o If possible, add brief descriptions for the classes. o Identify any associations that are necessary. o Decide if some domain classes are really just attributes. o Where helpful, identify role names and multiplicity for associations. o Add any additional static rules as UML notes that cannot be conveyed with UML symbols. o Group diagrams/domain classes by category into packages. Concentrate more on just identifying domain classes in early iterations!

Identifying domain classes? An obvious way to identify domain classes is to identify nouns and phrases in textual descriptions of a domain. Consider a use case description as follows:- 1. Customer arrives at a checkout with goods and/or services to purchase. 2. Cashier starts a new sale. 3. Cashier enters item identifier. 4. System records the sale line item and presents the item description, price and running total.

Identifying attributes? A domain class sounds like an attribute if: - o It relies on an associated class for it s identity e.g. order number class associated to an order class. The order number sounds suspiciously like an attribute of order. o It is a simple data type e.g. order number is a simple integer. Now it really sounds like an attribute!

Business process context 10

Structure Diagrams Class Diagram Describe the structure of the system in terms of classes and objects Primary purpose during analysis workflow: to create a vocabulary that is used by both the analyst and users

What is a Class? A general template that we use to create specific instances or objects in the application domain Represents a kind of person, place, or thing about which the system will need to capture and store information Abstractions that specify the attributes and behaviors of a set of objects

What is an Object? Entities that encapsulate state and behavior Each object has an identity It can be referred individually It is distinguishable from other objects

Types of Classes Ones found during analysis: people, places, events, and things about which the system will capture information ones found in application domain Ones found during design specific objects like windows and forms that are used to build the system

2 Kinds of Classes during Analysis Concrete Class from application domain Example: Customer class and Employee class Abstract Useful abstractions Example: Person class

Attributes in a Class Properties of the class about which we want to capture information Represents a piece of information that is relevant to the description of the class within the application domain

Attributes in a Class Only add attributes that are primitive or atomic types Derived attribute attributes that are calculated or derived from other attributes denoted by placing slash (/) before name

Operations in a Class Represents the actions or functions that a class can perform Describes the actions to which the instances of the class will be capable of responding Can be classified as a constructor, query, or update operation

UML Representation of Class Class Name Attributes of Class Operations/methods of Class

Example of a Class Diagram Video Rental System visibility multiplicity class name Customer -CID: int -name: String +authenticatecustomer () 1..* rents 1..* +rentmovie() Video -cassetteid : int -cassettevolumeno: int attributes relationship methods

Visibility of Attributes and Operations Relates to the level of information hiding to be enforced

Visibility of Attributes and Operations Visibility Public Symbol + Accessible To All objects within your system. Protected # Instances of the implementing class and its subclasses. Private - Instances of the implementing class.

Relationships among Classes Represents a connection between multiple classes or a class and itself 3 basic categories: association relationships generalization relationships aggregation relationships

Association Relationship A bidirectional semantic connection between classes Type: name of relationship role that classes play in the relationship

Association Relationship Name of relationship type shown by: drawing line between classes labeling with the name of the relationship indicating with a small solid triangle beside the name of the relationship the direction of the association Patient Provides Medical History

Association Relationship Role type shown by: drawing line between classes indicating with a plus sign before the role name Patient + primary insurance carrier

Generalization Relationship Enables the analyst to create classes that inherit attributes and operations of other classes Represented by a-kind-of relationship

Generalization Relationship Person Employee Customer Manager Engineer

Generalization Relationship Employee hiredate receivepay performwork Manager department bonus hireemployee promoteemployee Engineer certifications analyze design

Generalization Relationship Person Employee Contractor Manager Engineer Preferred Contractor Secondary Contractor

Aggregation Relationship Specialized form of association in which a whole is related to its part(s) Represented by a-part-of relationship

Aggregation Relationship Denoted by placing a diamond nearest the class representing the aggregation Patient 1 provides 0..1 Medical History

Multiplicity Documents how many instances of a class can be associated with one instance of another class Patient 1 provides 0..1 Medical History

Multiplicity Denotes the minimum number.. maximum number of instances Exactly one 1 Zero or more 0..* or 0..m One or more 1..* or 1..m Zero or one 0..1 Specified range 2..4 Multiple, disjoint ranges 1..3, 5

Class Diagram 2 approaches to deriving class diagrams: from use cases and their scenarios from CRC cards

Deriving Class Diagram from Use Cases and Scenarios Analyze the text in the use-case descriptions and scenarios

Guidelines for Analyzing Use Cases A common or improper noun implies a class of objects A proper noun implies an instance of a class A collective noun implies a class of objects made up of groups of instances of another class

Guidelines for Analyzing Use Cases (2) An adjective implies an attribute of an object A doing verb implies an operation A being verb implies a relationship between an object and its class A having verb implies an aggregation or association relationship

Access database

Questions??