Purpose

The purpose of this assignment is to continue building our ITOT case study models by using the classes and their properties from Assignment 1 and creating a class diagram and Class and Relationship Analysis table for the relationships among classes. In addition, we will build a state diagram for the ShopppingCart class.

Assignment Instructions

In this assignment you will create a class diagram and the Class and Relationship Analysis table for all of the classes you identified in Assignment 1 and a state diagram for your ShoppingCart class. Make certain that you include all of the classes and any additional classes or corrections to your Assignment 1.

For the Analysis Specification you will add the following completed sections:

Sections 4, 4.1, 4.2 (adjustments if necessary), 4.3, 5, 5.1, 5.2

Directions

1. Read and review the Quick Resources at the end of this Assignment.

2. Create a UML class diagram with attributes, associations, multiplicity constraints, and operations using your CASE tool. Add your name and course number directly on your diagram.

2.1 Section 4.1. Use the classes you identified from Assignment 1 and create a UML class diagram that includes all of your classes. Place your class diagram in Section 4.1. Add attributes to each class and relationships between classes. Attributes are properties of classes and indicate the type of data expected like text, numbers, etc.. For example, a name attribute would be text type data. Relationships establish some linkage between classes and can include associations, generalization, aggregation, and composition . Associations are the most common relationships. See the example class diagram http://www.uml-diagrams.org/examples/online-shopping-domain-uml-diagram-example.html for an example of a ShoppingCart class diagram similar to our model. As you add a class using the CASE tool, if you right click on the class and choose the option to Add attributes with getter and setter methods. Your CASE tool will automatically add them as methods. This saves considerable time and effort.

2.2 Section 4.1. Include at least 10 named relationships with multiplicity constraints on associations to other classes. Names and multiplicity constraints are required on all associations. The shape of the line used indicates the type of relationship for generalization, aggregation, and composition relationships so you do not need names here. Association names are often verb phrases like “purchases” from “A Customer purchases a ScheduledCourse”. To determine the associations, you can also use the same technique as the noun analysis, but do verb analysis instead. To help you discover the associations and multiplicity constraints complete the Class and Relationship Analysis table below and add it to Section 4.1 with your class diagram.

Identify the relationships among the classes. Associations are bidirectional and so we must consider them in both directions with multiplicity constraints as well. Using a table for the initial analysis will make it easier to create a class diagram. For each class ask the question “What other classes is the class related to?” or “What is the relationship between these two classes?” Once you identify the classes, then for each class pair ask “What is the relationship?” Multiplicity constraints are needed on both ends of the association and may be zero or one (0..1), one and only (1), zero or more (0..*), or many (*) ,etc. As you can see below there are two sentences with the multiplicity constraints describing the association in both directions. In this example the two classes are Instructor and Course. The relationship is “teaches”. On our diagrams we usually only show the relationship name in one direction and mentally revers the verb phrase in the other direction. See Figures 3.12 and 3.15 in your textbook for an example of a class diagram with named associations and multiplicity constraints.

CLASS AND RELATIONSHIP ANALYSIS

CLASS NAME 1

RELATIONSHIP WITH MULTIPLICITY

CLASS NAME 2

INSTRUCTOR

AN INSTRUCTOR TEACHES ZERO OR MORE (0..*) COURSE

A COURSE IS TAUGHT BY A SINGLE (1) INSTRUCTOR

COURSE

2.3 Add multiplicity constraints to each end of a relationship between classes. UML multiplicity constraints include the pairs 1..1, 1..*, *..*, 0..1, as well as others.

2.4 Section 4.1. Add your class diagram and the Class and Relationship Analysis table to Section 4.1 of your Analysis Specification. Make certain that you continue from your Assignment 1 submission. Each week we will add to the Analysis Specification document until we finally complete it. So just take your previous assignment and add this assignment to it.

2.5 Section 4. Complete Section 4 of the Analysis Specification with a brief introduction to the contents of the section. You can now include this since you have completed your class diagram.

2.6 Sections 4.2 and 4.3. Make any necessary adjustments to Section 4.2 that you completed in Assignment 1 and discuss your changes in Section 4.2 which should agree with and support Section 4.1.

2.7 Section 4.3. Complete Section 4.3 of the Analysis Specification with a discussion of your class diagram.

3. Create a UML state diagram for the ShoppingCart class with your CASE tool. Add your name and course number directly on your diagram. Make certain that you name the transitions and add guards as necessary.

3.1 Sections 5.1 and 5.2. Add your UML state diagram along with a discussion to Sections 5.1 and 5.2 of your Analysis Specification. See the article, ENTD321 Lesson 2 State How to Create a State Diagram.pdf, below on creating a state transition diagram before you start your diagram.

3.2 Section 5. Complete Section 5 of your Analysis Specification with an introduction the section contents.

Submission Instructions

1. Submit your updated Analysis Specification as a Word file.

2. When you submit your Word file, use your name as part of the file name, e.g., ENTD321Assignment2_FirstNameLastName. Also make certain that your name and course number is at the top of your document.

Your assignment will be graded with the following rubric:

Rubric for Assignments

Points

Content & Development 50%

50/50

Organization 20%

20/20

Format 10%

10/10

Grammar, Punctuation, & Spelling 15%

15/15

Readability & Style 5%

5/5

Timeliness (late deduction 10 points) Optional

Total

100/100

Quick Resources

Use the following for examples and guidelines for class and state diagrams but make certain that you put names on your associations.

Classes and Class Diagrams

1. See http://www.uml-diagrams.org/examples/online-shopping-domain-uml-diagram-example.html for an example of a ShoppingCart similar to our model.

2. See Ambler, Scott (n.d.). UML2 Class Diagrams: An Agile Introduction. Retrieved from http://www.agilemodeling.com/artifacts/classDiagram.htm, This provides examples of a class diagrams.

3. See Ambler, Scott (n.d.). UML2 Class Diagramming Guidelines. Retrieved from http://agilemodeling.com/style/classDiagram.htm. This style guide includes the guidelines for drawing and naming for class diagrams including general guidelines, class style guidelines, interfaces, relationships, inheritance, aggregation and composition.

4. Download the following book (you will need it for readings later):

Larman, Craig. (2001). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process. Second Edition. Retrieved from http://utd.edu/~chung/SP/applying-uml-and-patterns.pdf. There is also a third edition available.

5. See Chapter Larman 11 Domain Model: Adding Associations, p. 163. Review sections 11.1 – 11.8. Pay particular attention to multiplicity constraints (Figure 11.4), and naming (Figures 11.6) and multiple associations between two classes (Figure 11.7). Use these examples as guidelines for naming associations in your class diagram.

6. Sample UML Class Diagrams for ITOT Classes has a partial class diagram for the Instructor, Course, and ExpertiseArea classes or our Case Study.

Using a CASE Tool for Class Diagrams

1. See the file Creating Project and Class Diagrams with a CASE Tool for step by step instructions on creating a project and class diagram using a CASE tool.

2. See step by step instructions for drawing class diagram from the VP User Guide article on “How to draw a class diagram” at https://www.visual-paradigm.com/support/documents/vpuserguide/94/2576/7190_drawingclass.html

State Diagrams

1. See ENTD321 Lesson 2 State How to Create a State Diagram.pdf for a detailed example on how to create a state diagram.

2. Ambler, Scott (n.d.). UML2 State Machine Diagrams: An Agile Introduction. Retrieved from http://www.agilemodeling.com/artifacts/stateMachineDiagram.htm

3. Ambler, Scott (n.d.). UML2 State Machine Diagramming Guidelines. Retrieved from http://agilemodeling.com/style/stateChartDiagram.htm. This style guide provides guidelines for general issues, state, substates, transitions and actions, and guards.

Using a CASE Tool for State Diagrams

2. Ambler, Scott (n.d.). UML2 State Machine Diagrams: An Agile Introduction. Retrieved from http://www.agilemodeling.com/artifacts/stateMachineDiagram.htm

3. Ambler, Scott (n.d.). UML2 State Machine Diagramming Guidelines. Retrieved from http://agilemodeling.com/style/stateChartDiagram.htm. This style guide provides guidelines for general issues, state, substates, transitions and actions, and guards.

Using a CASE Tool for State Diagrams

1. See step by step guidelines for creating state machine diagrams with Visual Paradigm in the VP User Guide article “How to draw State machine Diagrams” at https://www.visual-paradigm.com/support/documents/vpuserguide/94/2579/6714_creatingstat.html

2. See the video for drawing state diagrams with VP at Visual Paradigm. (2011 November 4). 5 Steps to Draw a State Machine Diagram. Retrieved from https://www.youtube.com/watch?v=UzUUZRK_Q6Y

Please No Plagiarism

Please use APA formatting and in text cititation

I will upload Assignment 1