Domain Model Refinements and Iteration 3 Preparations Overview

left a quick review of domain model basics n.w
1 / 19
Embed
Share

Explore key concepts related to domain model refinements and iteration 3 preparations in CSSE 374, including object-oriented design basics, conceptual classes, and generalization-specialization class hierarchy. Learn about finding conceptual classes, identifying noun phrases, and the importance of refining domain models in software development.

  • Domain Model
  • Refinements
  • Iteration Preparation
  • Conceptual Classes
  • Object-Oriented Design

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. 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 These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others involved in delivering 374.

  2. Learning Outcomes: O-O Design Demonstrate object-oriented design basics like domain models, class diagrams, and interaction (sequence and communication) diagrams. http://enterprisegeeks.com/blog/2009/07/ Activity diagrams questions? Domain model refinement Conceptual classes

  3. 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 The rest of this discussion is all Domain Model Refinement

  4. Recall: Strategies for Finding Conceptual Classes 1. Reuse or modify existing models 2. Identify noun phrases; linguistic analysis 3. Use a category list

  5. Conceptual Category List on NextGen POS, Iteration 3 Category Examples Physical or tangible objects CreditCard, Check CashPayment, CreditPayment, CheckPayment CreditAuthorizationService, CheckAuthorizationService CreditAuthorizationService, CheckAuthorizationService Transactions Other systems external to ours Organizations Records of finance, work, contracts, legal matters AccountsReceivable

  6. Noun Phrase Identification on NextGen POS, Iteration 3 Payment Authorization Request Credit Account Information Payment Authorization Service Payment Approval

  7. Generalization-Specialization Class Hierarchy Conceptual classes, not software classes Generalization: finding commonalities among concepts Superclass: general concept Why? We can understand concepts in more general terms. Subclass: specialized concept Payment gives our brains less to deal with. Q2

  8. Generalization Common features of Payments Q2

  9. Generalizations and Sets Is-a rule: Subclass is a e.g., CashPayment is a is a superclass, is a Payment All members of a conceptual subclass set are members of their superclass set Q3

  10. Subclass ConformanceThe 100% Rule The subclass must conform to all of the superclass s attributes and associations. Q4

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

  12. When should we define a Conceptual Subclass? 1/2 Does this make sense for NextGen POS? for other domains?

  13. When should we define a Conceptual Subclass? 2/2 When the subclass 1. has additional attributes 2. has additional associations 3. is operated on or handled differently Which of these apply here? 4. represents an animated thing that behaves differently Q5

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

  15. Another Example

  16. 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 What are some examples of Abstract Conceptual Classes? Q7

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

  18. 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

  19. Activity Diagram UML Syntax (review) Partitions. Show different parties involved in the process start Customer Service Fulfillment Finance Action. It does something. There is an automatic transition on its completion. Receive Video Order A transition supports modeling of control flow. Object Node. An object produced or used by actions. This allows us to model data flows or object flows. Fork. One incoming transition, and multiple outgoing parallel transitions and/or object flows. Fill Order Send Invoice Invoice Order Receive Payment Deliver Order Join. Multiple incoming transitions and/or object flows; one outgoing transition. The outgoing continuation does not happen until all the inputs arrive from all flows. Close Order end of activity

Related


More Related Content