Project 3. Class Diagrams and Design Patterns

Class Diagrams and Design Patterns

1. Learning Objectives:

  • Create a complex piece of software and model it with a class diagram, following provided conventions
  • Use your project 2 code, fix issues and increase complexity
  • Implement an observer pattern
  • Practice class diagram creation and use cases diagrams using the Astah tool.

    2. Description:

    For project 3,

  1. a)  Programming. Include the functionality described below in your project 2. Thus, your project 3 will have all the functionalities you developed in project 2 plus the ones described below
  2. b)  Design. Develop a Class Diagram for your Diagram Application. The class diagram includes everything done on project 2 and the functionalities (classes and relationships) described below.
  3. c)  Requirements Documentation. Update the use case diagram that you did in project 2 to include the new requirements. Only the diagram, you do not need to update the full SRS. You will submit only the diagram.

This is the third step in your semester-long project. This time you will submit: (a) source code; (b) a document with your class diagram and your use cases diagram (diagrams should be easy to read. Points will be deducted if diagrams are too small or text cannot be read). Finally, (c) you will be asked to submit a peer-evaluation for you and your team members.

3. Requirements:

First, you should keep the functionalities implemented in project 2 and fix issues or errors. A project 3 that only implements the requirements described below will not receive full credits. Add the following requirement to your project 2:

a. Your tool should allow to drag and drop to the working area square and circles. Project 1 includes 4 icons. Project 2 maybe include more. Now, you are requested to work with 2: squares and circles. You could keep others if you have it. But, we are going to add extra functionalities to the square and circle icons. So, they should exist.

1

  1. You should have a class Icon. Optionally you could have also a class IconSquare or IconCircle. This class should have the method that draw the icon on the screen. Please name this method draw(). You can add as many parameters as you need. You should have an object icon for each line draw on the screen.
  2. Your tool should allow to connect squares and circles using three different types of connections: inheritance arrow (solid line with a triangle as arrowhead), aggregation arrow (solid line with a with diamond in one side), and association arrow (solid line with an arrowhead in one side).
  3. You should have a class Connection. This class should have the method that draw the connection on the screen. Please name this method draw(). You can add as many parameters as you need. You should have an object connection for each line draw on the screen.
  4. You should add a JTextArea to your GUI. In real time, every time that you draw something, the JTextArea will update. The JTextArea will show the source code equivalent to your draw. For instance,

    Adding a new square to the working area will show in the JTexArea

       public class Icon1 {
       }
    

    Adding a second square and then a circle will show

       public class Icon1 {
       }
       public class Icon2 {
       }
    
       public interface Icon3 {
       }
    

    As you notice, squares will represent classes and circles will represent interfaces. You can name them with a consecutive number or you can implement a functionality in which you ask the user for a name every time you drag an icon in the working area.

    When you connect two icons the JTextArea will update the code. For instance, connecting Icon1 and Icon2 with and aggregation line and Icon2 with Icon3 using inheritance will generate in real-time the following

       public class Icon1 {
         Icon2 icon2; // notice upper case for class and lower case for object
    
       }
       public class Icon2 implements Icon3{
       }
       public interface Icon3 {
       }
    

2

  1. You should implement the Observer pattern. Icons and connections are observable and you will define an Observer (that has access to the JTextArea). Thus, source code is updated in real-time just when you add, remove, or update connections or icons. There is NOT any button or additional step to be done in order to see the code generated.
  2. We assume that you have implemented options for add and remove icons as well as options for adding and removing connections during project 2. But, if you do not have that already, implement it.

4. Documentation:

  1. Create a cover page with your names, screen shot of your project running, work distribution among team members, and a chart indicating the roles of each team member.
  2. Add in one page your use case diagram (an updated version of the one submitted in project 2).
  3. Add in one page your class diagram,
  1. Source Code Structure and Naming Conventions

    Package naming should be unique for each group. Follow this convention for naming your package: ‘edu.asu.CSE360._group#’.

  2. Project Deliverables:

    Your team leader should submit code and documents on Blackboard by 11:59 p.m. on the due date. The other team members do not need to submit code or documents. But, all team members SHOULD complete peer evaluations for each team member.

    1. Source Code: Please zip all of your source code (.java) and other files together. The team leader will submit the zip file on Blackboard.
    2. Diagrams and Cover: The team leader will submit as a PDF or Word document on Blackboard.
    3. Peer Evaluations: Complete these for your team members. Submit one per team member, using the Google Forms link that will be available in Blackboard.

3

7. Scoring Guide for Project 2

As with all projects, your project grade will be an average of the team score, individual score, and peer evaluations. Remember to include the name of the person who did significant work to get extra 5 points in your project.

Include the names of team member(s) at the top of the .java class in the code itself who implemented the animation feature for this program. Listing the name(s) at the top of this class identifies student(s) who contributed significantly to this portion of the project.

Under the document, include the names of all team members who work on the document. Just make sure to use the same format as you did for the Project 2.

Hours worked

Name

Requirements

Planning

Modeling

Coding

Delivery

Person A

Person B

1

1

2

2

15

0

1

1

5

1

Person C

0

0

1

19

0

Person D

Person E

1

0

2

1

15

0

1

2

10

0

Total

3

6

7

64

1

Team Total: 81

Include the Hours worked table and Individual scores table given below after filling the accurate details. Your individual scores table should include the Requirement information and the name of the person who implemented the requirement. Deductions will be made if any of the team member did not participate in this.

4

Individual Scores

Description of Requirement

Point Value

Name of the person

Requirement 1 Name Requirement 2 Name .
.

.

100

Person A

Requirement 1 Name Requirement 2 Name .
.

.

100

Person B

Requirement 1 Name Requirement 2 Name .
.

.

100

Person C

Requirement 1 Name Requirement 2 Name .
.

.

100

Person D

Requirement 1 Name Requirement 2 Name .
.

.

100

Person E

Overall Project Evaluation

Description

Point Value

Category

Team member name who did significant work

5

Extra credit

Document with class diagram & Use-case diagram

20

Documentation

Cover Page

5

Documentation

Creativity/ originality

5

Documentation

Code Implementation

35

Performance

Program runs without crashing or errors

20

Performance

Comments should be mentioned wherever required according to java guidelines including file header (name, description, etc.)

10

Quality

Follows formatting and naming conventions

5

Quality

Total: 100+5

5

Previous answers to this question


This is a preview of an assignment submitted on our website by a student. If you need help with this question or any assignment help, click on the order button below and get started. We guarantee authentic, quality, 100% plagiarism free work or your money back.

order uk best essays Get The Answer