Conceptual Model or Domain Models Chapter10 Applying UML and pattern.

Slides:



Advertisements
Similar presentations
Database Systems: Design, Implementation, and Management Tenth Edition
Advertisements

Object Design Examples with GRASP
Analysis Modeling.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Solving the Problem Analysis & Design.
Object Oriented Analysis Process
6/8/991 Analysis Tuesday 09/14/99 Revised: September 11, 2000 (APM)
Domain model: visualizing concepts
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
Use Case Analysis – continued
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
USE Case Model.
Chapter 9 Domain Models. Domain Model in UML Class Diagram Notation A “visual dictionary”
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’
Chapter 5 Analysis Model. Analysis model (AM) The first step in describing how the system will implement the requirements specification The first step.
Internet Software Development Putting it all together Paul J Krause.
DOMAIN MODEL— PART 2: ATTRIBUTES SYS466. Looking For Potential Classes “Know the business”. Ask Questions Identify business concepts; filter nouns (person,
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
TK2023 Object-Oriented Software Engineering CHAPTER 5 DOMAIN MODELLING.
Sept Ron McFadyen1 Section 10.1 Domain Models Domain Model: a visual representation of conceptual classes or real-world objects in a domain.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Jan 21, Ron McFadyen1 Ch 10. Domain Model: Visualizing Concepts Domain model illustrated with a class diagram (with no operations defined)
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
1 Lecture 6: Operation Contracts. 2 Overview  What is contract ?  The guidelines for writing contracts for the system operations.  Use Case realizations.
Conceptual Modeling Modeling the Problem Domain. Conceptual Modeling Decompose problem space into comprehensible concepts. Clarify the terminology or.
Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.
Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information.
Chapter 9 Applying UML and Patterns -Craig Larman
SYS466: Analysis and Design Using OO Models Domain Class Diagram.
Lecture 6: Structural Modeling
3 / 12 Databases MIS105 Lec13 Irfan Ahmed Ilyas CHAPTER Prepared By:
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
ERD ( Conceptual data model From the statement of data requirements a conceptual data model is produced. This describes.
Domain Model—Part 2: Attributes.  A logical data value of an object  (Text, p. 158)  In a domain model, attributes and their data types should be simple,
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
OO Design Roshan Chitrakar. Analysis to Design Do the RIGHT thing Do the RIGHT thing Requirement Analysis Requirement Analysis Domain Modeling with addition.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
1 Chapter 9: Operation Contracts Chapter 13 in Applying UML and Patterns Book.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
1 Chapter 9: Conceptual Model Chapter 10, 11 & 12 in Applying UML and Patterns Book.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
DOMAIN MODEL—PART 2: ATTRIBUTES BTS430 Systems Analysis and Design using UML.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XIV. From Requirements to Design in the UP.
Chapter 9 Domain Models.
Datab ase Systems Week 1 by Zohaib Jan.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Conceptual Model.
Chapter 5: Object Oriented Analysis and Design
Week 10: Object Modeling (1)Use Case Model
Domain Models Part 1
OO Domain Modeling With UML Class Diagrams and CRC Cards
SYS466 Domain Classes – Part 1.
Conceptual Model or Domain Models
Copyright 2007 Oxford Consulting, Ltd
Object Oriented Analysis and Design Conceptual Model.
Presentation transcript:

Conceptual Model or Domain Models Chapter10 Applying UML and pattern

OUTLINES UML overview, where are we now? Conceptual model: – Concepts – Attributes – Associations

UML Process (OVERVIEW) 1- Use Cases – Define user interaction with the system. 2//- Conceptual Model (we are here right now!!!!) n Underline nouns to identify concepts in the problem domain. n Use the underlined nouns from the use cases to create the concepts in the conceptual model. n Some of the nouns, if they identify simple data types, are used to create attributes of these concepts. n Create associations between the concepts.

2//- System Sequence Diagram (We have done this it can be done before or after conceptual model or in parallel with it) – Create system sequence diagrams for each use case scenario. – Each sequence event in the diagram corresponds to a user interaction with the system specified by the expanded use case.

3- System Contracts – Specify post-conditions for each system event in the system sequence diagrams. – Use the conceptual model to identify objects created, associations formed, and attributes modified. 4- Collaboration Diagram – Create a collaboration diagram for each system event. – Apply patterns

5- Class Diagram – Add methods and additional attributes which were discovered in the collaboration diagrams to the classes in the conceptual model. 6- Code – Create classes with their names, attributes and method signatures taken from the class diagram. – For each method on a class, use the collaboration diagrams to find the sequence of messages generated when the method is called and create at least one line of code for each message.

Conceptual model is also named domain model is an analysis-level activity - a model of real- world objects - and not an attempt to design the actual software.

Advantages of noun phrase identification Narrative language is well understood by everyone on a project An effective communication medium for both technical and non-technical project staff. Usually, one-to-one mapping from nouns to objects or classes or interfaces. No learning curve.

Disadvantages of noun phrase identification The imprecision of natural language. – Different noun phrases may represent the same conceptual class or attribute, among other ambiguities. Nouns do not always result in classes, or objects in the problem domain.

Recommended Approach Noun phrase technique Interview the domain experts Conceptual Class Category List

The Need for Specification or Description Conceptual Classes Add a specification or description conceptual class (for example, ProductSpecification)when: 1.There needs to be a description about an item or service, independent of the current existence of any examples of those items or services.

The Need for Specification or Description Conceptual Classes 2.Deleting instances of things they describe (for example, Item) results in a loss of information that needs to be maintained, due to the incorrect association of information with the deleted thing. 3.It reduces redundant or duplicated information.

Domain Modeling Guidelines How to Make a Domain Model Apply the following steps to create a domain model: 1. List the candidate conceptual classes using the Conceptual Class Category List and noun phrase identification techniques related to the current requirements under consideration. 2. Draw them in a domain model. 3. Add the associations necessary to record relationships for which there is a need to preserve some memory 4. Add the attributes necessary to fulfill the information requirements

We are not finished with the attributes yet We still need to discuss – class-based types – attribute visibility These issues require deeper knowledge of modelling. Hence, they will be discussed later on as the course progresses.

Case study University Case Study Note: We have only text description no use case scenarios

University Case Study: Identifying classes We need write an application supporting us in managing the information about university operation. Right now, at Stockholm University we have a substantial amount of students students. To manually manage all information about students is simply impossible. Hence, SU needs some automated support. In addition to this, we need handle information on courses and lecturers giving these courses. Recently, SU has taken over the library and book shops. They want to provide better service to their students, and they want to better integrate the management of course literature with all other courses given at SU. Hence, they wish to automate the book management as well. This gives them better insight into the education on the course level, and provides a solid basis for evaluating the courses and a basis for establishing the incremental educational programme. The knowledge of which books are utilised on which course helps them identify the overlapping in the educational material. To be able to provide high quality education, SU must have highly competent lecturers. SU wishes to store information about their lecturers and their state of competence and its development. By competence, SU means professional, pedagogical and administrative competence. Underline concepts (or maybe attributes), red means association or transaction category concept

University Case Study : Classes Student Book Lecturer Course Book shop Library University Do we need a class called University? Course Evaluation Course Overlapping Competence Evaluation

Advice when finding attributes How is the object described in general? What parts of the general description are applicable to this problem domain? What is the minimal description needed for this application?

University Case Study: Attributes Student pnr: Integer student_name: String address: String nationality: String degree_level: String grade: Integer IQ Integer $average_age: Integer Teacher pnr: Integer teacher_name: String role: String ped_competence: String admin_competence: String prof_competence: String percentage_of_full_time: Integer salary: Integer martial_state: String research_engagement: String Course course_number: Integer course_name: String course_description: String no_of_students: Integer teacher_name: String equipment_type: String Book book_number: Integer ISBN_number: String title: String price: Real

University Case Study: Identifying associations Students at SU may take many different courses. The students however, should not take more than five courses during one semester. A course may only start if there are at least 15 students registered. Otherwise, the course has to be cancelled. Teaching for less than 15 students would be too expensive. The courses are taught by lecturers. The fact that you are a lecturer does not hinder you from taking courses at university. There may be cases that a lecturer takes and teaches on one and the same course simultaneously. This is in cases when the lecturer is a PhD student. The work he has put into developing and teaching on a course will give him credit point within his PhD studies. So lecturers may take courses as well. Each university course is based on some book. One course may be based on at least one book. However, many books may be read on one and the same course. Blue means constraint, many to many will be implemented by adding a transaction class.

University Case Study: Associations Student pnr: Integer student_name: String nationality: String degree_level: String IQ Integer $average_age: Integer Teacher pnr: Integer teacher_name: String role: String ped_competence: String admin_competence: String prof_competence: String percentage_of_full_time: Integer salary: Integer martial_state: String research_engagement: String Course course_number: Integer course_name: String course_description: String No_of_students: int teacher_name: String Book book_number: Integer ISBN_number: String title: String course_description: String price: Real * reads taught_by  reads  0..* 1..* 0..* uses_book  0..* teaches  0..* 0..5

University Case Study: Associations Student pnr: Integer student_name: String nationality: String degree_level: String IQ Integer $average_age: Integer Teacher pnr: Integer teacher_name: String role: String ped_competence: String admin_competence: String prof_competence: String percentage_of_full_time: Integer salary: Integer martial_state: String research_engagement: String Course course_number: Integer course_name: String no_of_students: Integer teacher_name: String Book book_number: Integer ISBN_number: String title: String price: Real 0..* teaches  * reads taught_by  reads  * 1..* uses_book  We do not need these any more!