CSSE 374: Domain Model Refinements and Iteration 3 Preparations

Slides:



Advertisements
Similar presentations
CSSE 374: Object-Oriented Design Exercise Steve Chenoweth Office: Moench Room F220 Phone: (812) These slides and.
Advertisements

Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
CSSE 374: Introduction to Object- Oriented Analysis and Design Q1 Steve Chenoweth Office: Moench Room F220 Phone: (812)
Jan 2003Ron McFadyen Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a.
1 Software Maintenance and Evolution CSSE 575: Session 3, Part 4 Big Refactorings Steve Chenoweth Office Phone: (812) Cell: (937)
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Domain model: visualizing concepts
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
Chapter 9 Domain Models 1CS6359 Fall 2012 John Cole.
Domain Modeling Chandan R. Rupakheti and Steve Chenoweth Week 5, Day 1.
CSSE 374: More GRASP’ing and Use Case Realization Steve Chenoweth Office: Moench Room F220 Phone: (812) These.
CSSE 374: Design Class Diagrams Steve Chenoweth Office: Moench Room F220 Phone: (812) These slides and others.
CSSE 374: Domain Model Refinements and Iteration 3 Preparations Q1 These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others.
CSSE 374: Interaction Diagrams Steve Chenoweth Office: Moench Room F220 Phone: (812) These slides and others derived.
CSSE 374: Final Perspectives on Software Architecture and Design These slides derived from Shawn Bohner, Curt Clifton, Alex Lo, and others involved in.
CSSE 374: Operations Contracts and Logical Architectures Steve Chenoweth Office: Moench Room F220 Phone: (812)
CSSE 374: GRASP’ing at the First Five Patterns Principles Steve Chenoweth Office: Moench Room F220 Phone: (812)
CSSE 374: More Object Design with Gang of Four Design Patterns Steve Chenoweth Office: Moench Room F220 Phone: (812)
Chandan Rupakheti Office: Moench Room F203 Phone: (812) These slides and others derived from Shawn Bohner, Curt.
1 Chapter 2 (Cont.) The BA’s Perspective on Object Orientation.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
CSSE 374: 3½ Gang of Four Design Patterns These slides derived from Steve Chenoweth, Shawn Bohner, Curt Clifton, and others involved in delivering 374.
DOMAIN MODEL— PART 2: ATTRIBUTES SYS466. Looking For Potential Classes “Know the business”. Ask Questions Identify business concepts; filter nouns (person,
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 4 - Domain Classes.
CSSE 374: More GRASP’ing for Object Responsibilities
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 4 Domain Classes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
INFO 620Lecture #81 Information Systems Analysis and Design Class Diagram Refinement INFO 620 Glenn Booker.
Domain Model Refinement Larman, chapter 31 CSE 432: Object-Oriented Software Engineering Glenn D. Blank, Lehigh University.
Lecture 13-17, chitkara university.  Gives a conceptual framework of the things in the problem space  Helps you think – focus on semantics  Provides.
Chapter 9 Applying UML and Patterns -Craig Larman
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a more specific kind of thing (the.
Repetition af Domæne model. Artifact influence emphasizing the Domain Model.
Domain Modeling Yonglei Tao.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
OO Methodology Elaboration Iteration 3 – Part 1 Refining Models.
CS 4240: Rethinking Some OOP Ideas and Terms for OOA&D Readings: Chap. 8 in Shalloway and Trott (referred to as S&T in these slides) Wikipedia on information.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Sept 2004Ron McFadyen Generalization (Ch 26) a generalization is a relationship between a general thing (the superclass or parent class) and a.
Larman chapter 101 Domain Model: Visualizing concepts Larman chapter 10.
Domain Model Refinement Notation Extensions. Things not seen before in the Domain Model Similar to the concepts in the Object Models Generalization and.
CHAPTER 6 OBJECT ANALYSIS.
5 Chapter 5: Modeling Systems Requirements: Events and Things Systems Analysis and Design in a Changing World.
Elaboration popo.
Steve Chenoweth Office Phone: (812) Cell: (937)
CSSE 374: UML Activity Diagrams
Chapter 9 Domain Models.
DATA REQIREMENT ANALYSIS
Chapter 5: Structural Modeling
Principles of Accounting
Collaborations and Hierarchies
Domain Model Refinement
OO Domain Modeling With UML Class Diagrams and CRC Cards
Barb Ericson Georgia Institute of Technology May 2006
Domain Class Diagram Chapter 4 Part 2 pp
Systems Analysis and Design With UML 2
Relating Use Cases popo.
SYS466 Domain Classes – Part 1.
a generalization is a relationship between a general thing (the
Motivation: Concise System Behavior Communication plus Code Generation
Engineering Quality Software
Domain Modeling.
Domain Modeling.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
a generalization is a relationship between a general thing (the
Project Management Techniques Project Management Life Cycle
Domain Model: Visualizing Concepts
Presentation transcript:

CSSE 374: Domain Model Refinements and Iteration 3 Preparations Left – A quick review of domain model basics… CSSE 374: Domain Model Refinements and Iteration 3 Preparations Steve Chenoweth Office: Moench Room F220 Phone: (812) 877-8974 Email: chenowet@rose-hulman.edu Chandan Rupakheti Office: Moench Room F203 Phone: (812) 877-8390 Email: rupakhet@rose-hulman.edu Q1: There are four key types of use cases discussed in Chapter 30. What are they? Figure from http://www.comptechdoc.org/independent/uml/begin/umldomainmodel.html These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others involved in delivering 374. Q1

Learning Outcomes: O-O Design Demonstrate object-oriented design basics like domain models, class diagrams, and interaction (sequence and communication) diagrams. Activity diagrams – questions? Domain model refinement Conceptual classes http://enterprisegeeks.com/blog/2009/07/ UML is to design as good penmanship is to authoring a book…

Starting with Use Cases, you produce analysis models, design models, test cases, and ultimately code. Why would you go back and refine the domain model? Think for 15 seconds… Turn to a neighbor and discuss it for a minute You learned stuff while doing design and implementation. Clarify the DM for future design and implementations. …  The rest of this discussion is all Domain Model Refinement 

Recall: Strategies for Finding Conceptual Classes Reuse or modify existing models Identify noun phrases; linguistic analysis Use a category list There are several books containing lots of examples for various domains. See text for references. You’ve probably seen this in 220 or 230. What’s the basic idea here? This is probably the new one. Let’s see some examples…

Conceptual Category List on NextGen POS, Iteration 3 Examples Physical or tangible objects CreditCard, Check Transactions CashPayment, CreditPayment, CheckPayment Other systems external to ours CreditAuthorizationService, CheckAuthorizationService Organizations Records of finance, work, contracts, legal matters AccountsReceivable Now we can see a bunch of examples from NextGen POS…

Noun Phrase Identification on NextGen POS, Iteration 3 Payment Authorization Request Credit Account Information Payment Approval Payment Authorization Service Don’t spend much time on this, just point out that we can re-analyze the use cases based on additional scenarios for this iteration. •••• Labeled call-outs appear • unlabeled call-outs pop in to illustrate that there are a bunch more concepts to be identified

Generalization-Specialization Class Hierarchy Conceptual classes, not software classes Generalization: finding commonalities among concepts Superclass: general concept Subclass: specialized concept Why? We can understand concepts in more general terms. •••• definitions and call-out Q2: What all of these conceptual subclasses have in common? Payment gives our brains less to deal with. Q2

Generalization Common features of Payments Q2 Q2: What all of these conceptual subclasses have in common? [amount: Money] Q2

Generalizations and Sets Is-a rule: Subclass is a superclass, e.g., CashPayment is a Payment Q3: All members of a conceptual subclass are members of _______________________ set. The picture is of a Venn diagram – What’s that? • “is-a” rule – How does the diagram show that? All members of a conceptual subclass set are members of their superclass set Q3

Subclass Conformance—The 100% Rule Q4: The “100% rule” says that a subclass must conform to all (100%) of the superclass’s _______________________ and  _______________________. What does the rule mean in this example? [Every payment subclass has an amount attribute and is in 1-to-1 association with a Sale.] The subclass must conform to all of the superclass’s attributes and associations. Q4

Sometimes Reviews are Vital… Whatcha’ got in the bag… oh, that… it just some DNA (Design Never Assured) evidence.

When should we define a Conceptual Subclass? 1/2 Does this make sense… for NextGen POS? for other domains? Maybe it makes sense for medical, or insurance, or a night club (ladies night?)

When should we define a Conceptual Subclass? 2/2 When the subclass… has additional attributes has additional associations is operated on or handled differently represents an animated thing that behaves differently Q5: In the Payment example, which of the subclass situations listed would apply? Key points: 1. subclasses probably don’t have additional attributes (everyone I can think of is really an association) 2. CreditPayment associated with CreditCard, CheckPayment associated with Check 3. Authorization is different for each subclass 4. not applicable (unless you want to imagine an autonomous agent future where payments negotiate for the payer) Which of these apply here? Q5

When should we group classes and extract a superclass? Create a superclass when: Potential subclasses represent variations of a similar concept (e.g., Video, Game → RentableItem) Subclasses will conform to 100% and is-a rules There are common attributes or associations that could be pulled into superclass Q6: You could group classes and extract a superclass when subclasses conform to the _________ and __________ rules. Q6

Another Example Walking through the example - Note that the payments are associated, not subclassed from the services.

Abstract Conceptual Classes If every member of a class C must be a member of a subclass, then C is an abstract conceptual class Italics (or {abstract} keyword) indicate abstract class Q7: If every member of a class C must be a member of a subclass, then C is an abstract conceptual class. What is an example of abstract conceptual classes? Chapter 31 pages 513 -- Abstract Conceptual Classes - Examples: In Euclid's geometry you have Scalene, isosceles, and equilateral triangles. They are all triangles. Every triangle has to be either scalene, isosceles, or equilateral. Or conics: every conic section is an ellipse, hyperbola, or a parabola. And each ellipse, hyperbola, or parabola is a conic section. Contra-wise: a circle is an ellipse but some ellipses are not circular and so we would not call Ellipse an abstract class. Some Ellipses are not circular. • call-out: Draw fig. 31.11 on board: a) subclasses are just subsets of concrete superclass; b) subclasses partition abstract superclasses. Figure 31.11 (a) shows three subsets of payment with space all round them. It indicates that Payment objects can exist other than CashPayments, CreditPayments, or CheckPayments. Figure 31.11 (b) cuts up Payment into three exclusive types. It shows that any Payment `must be one` of the three subclasses: Cash, Credit, Check. This is the most important effect of labeling a class {abstract} in a domain model. Mathematically (b) shows a cover and (a) some subsets. What are some examples of Abstract Conceptual Classes? Q7

Applying these ideas to your domain… A typical domain from Milestone 2 – This one’s for the Project Proposal System:

Thinking Ahead Exercise We may do in class – Break up into your teams Begin identifying what features you will plan to implement in your third (and final) iteration this term. Your goal, at minimum, should be to have a basic but workable system implemented. Think of this as a system that you can share with your client to demonstrate progress and that you and others can continue to build and refine in CSSE 375 this spring. Brainstorm a list of all the features remaining to be implemented for your system. Q8: What is the list of all the features remaining to be implemented in your team’s Junior Project System? [just a list of features] Q8

Activity Diagram UML Syntax (review)