CS计算机代考程序代写 Java 300144 Object Oriented Analysis 300888 Object Oriented Analysis (Advanced)

300144 Object Oriented Analysis 300888 Object Oriented Analysis (Advanced)
Tutorial 6 – Classes & Class Diagrams (Week 7)
Student Name: ______________________________________ Student ID: ______________________________________ Tutorial Class: ______________________________________
Instructions to students –
 Attempt all questions
 This Tutorial will contribute to your final assessment mark
 The Tutor will check your solutions when you are finished
 BICT (Advanced) students need to complete optional questions.

Reminder: although package-wise project work has been specified throughout, there will be some overlapping in actors, use cases and/or classes among packages. Therefore, team works thorough discussions and cooperation are very important to produce high- quality outcomes for the project. Keep in mind that iterative and incremental processes are being used during the development process. The details entered in diagrams and documentations are likely to change once we iterate through other diagrams.
Project Work:
1. Work in teams to identify classes from the descriptions of the use cases you created in previous project work. This will require you to READ and ANALYSE both the use cases and the problem statement of the project.
As different use cases could lead to the same or similar classes, ask students to resolve overlapping issues and clarify responsibility of each team member referring to class documentation and class diagrams after completing the following task (2). Since this is an iterative process, students need keep doing this throughout the project.
2. List about EIGHT entity classes PER PACKAGE from the above analysis. Thus, for a team with four students and four packages, the total number of entity classes should be no less than 32. Note that the analysis of the first use case usually reveals more entity classes and the subsequent use case will reveal less. After analysing all the use cases (and skimming the problem statement), you should be able to define the required number of classes.
3. Enter all your entity classes (eight or more) in your CASE tool. Note: it is very likely that you have not identified all the classes at this stage. When you conduct abstraction and create additional hierarchies of your classes, you will discover and invent many more entities and thus more classes.
4. Fully document the entity classes by correctly naming them (singular common noun), stereotyping them using the notation in the format <> with brief description, and listing relationships, indicating attributes, responsibility, business rules and complexity (using the format given in Lecture 6 and taking documentation samples in the project template for reference).
5. In the notation of each class, provide private (-) visibility for all attributes and public (+) for relevant operations. Note: we assume that private visibility attributes mean for both: private access (within class access) and protected access (within class and inherited classes access).
6. Place the classes you have identified into diagrams (approximately TWO class diagrams per package).

7.
8.
9.
It is essential to show the <>, <> and <> relationships in the class diagrams where relevant.
It is essential to show multiplicities on class diagrams.
Add NOTES on all you class diagrams.
Tutorial Exercises (Optional):
Draw a class diagram based on the following Java program.
class Student {
protected long studentID;
protected static long nextNum = 20000000;
protected String name, course;
Student() {
studentID = ++nextNum;
}
public void displayDetails() {
System.out.println(“\nstudentID: ”
+ studentID + “, Name: ”
+ name + “, Course: ” + course);
} }
class StudentBICT extends Student {
StudentBICT() {
course=”BICT”;
} }
class StudentBIS extends Student {
StudentBIS() {
course=”BIS”;
} }
class StudentBCS extends Student {
StudentBCS() {
course=”BCS”;
} }

public class RegisterStudent {
public static void main(String[] args){
Student studentList[] = {new StudentBICT(), new
StudentBIS(), new StudentBCS()};
studentList[0].name = “Mary A. Smith”;
studentList[1].name = “Peter B. Wong”;
studentList[2].name = “James C. Lee”;
for(int i = 0; i < 3; i++) { studentList[i].displayDetails(); } } }