1. (10 pts) What are the diagrams defined in the UML Standard. Give a one or two
ID: 667645 • Letter: 1
Question
1. (10 pts) What are the diagrams defined in the UML Standard. Give a one or two sentence description of each one.
2. (10 pts) Given the following code, how should the toString methods in the classes H2ClassA and H2ClassB be written to give the indicated output and take advantage of the natural toString method in H2ClassB?
1 import java.util.ArrayList;
2
3 public class H2ClassA {
4 ArrayList <H2ClassB> list = new ArrayList <H2ClassB> ();
5
6 public static void main (String args []) {
7 H2ClassA y = new H2ClassA ();
8 int [] v = {4, 3, 7, 5, 99, 3};
9 for (int m: v)
10 y.list.add (new H2ClassB (m));
11 System.out.println (y);
12 } // end main
13
14 } // end class H2ClassA
15
16 class H2ClassB {
17 int x;
18 H2ClassB (int a) { x = a;}
19 } // end H2ClassB
OUTPUT:
4 3 7 5 99 3
3. (10 pts) How can the following code be corrected? Give at least two good answers.
1 public class H2ClassC {
2 H2ClassC (int a) {}
3 } // end class H2ClassC
4
5 class H2ClassD extends H2ClassC{
6 } // end class H2ClassD
4. (10 pts) Why does the following code give a compiler error? How should it be fixed?
1 public class H2ClassE {
2 int x, y, z;
3
4 H2ClassE (int a) {
5 x = a;
6 this (5, 12);
7 }
8
9 H2ClassE (int b, int c) {
10 y = b;
11 z = c;
12 }
13 } // end class H2ClassE
5. (10 pts) What is wrong with the following declaration? How should it be fixed?
public static final int myNumber = 17.36;
6. (10 pts) What is wrong with the following code? How should it be fixed?
1 public class H2ClassG {
2 final int x;
3
4 H2ClassG () {}
5 H2ClassG (int a) {x = a;}
6 } // end class H2ClassG
7. (10 pts) What is wrong with the following code? How should it be fixed?
1 public class H2ClassH {
2 final int x;
3
4 int H2ClassH () {
5 if (x == 7) return 1;
6 return 2;
7 } // end
8 } // end class H2ClassH
8. (10 pts) What is wrong with the following code? x should be given a value of 24. What are two ways this can be legally accomplished?
1 public class H2ClassI {
2 final int x;
3
4 public static void main (String args []) {
5 H2ClassI h = new H2ClassI ();
6 h.x = 24;
7 } // end main
8 } // end class H2ClassI
9. (10 pts) What is wrong with the following code? Give two effective ways to fix it.
1 import javax.swing.*;
2 import java.awt.event.*;
3
4 public class H2ClassJ extends JFrame {
5 public static final long serialVersionUID = 22;
6
7 public H2ClassJ () {
8 addMouseListener (new MouseListener () {
9 public void mouseClicked (MouseEvent e) {}
10 });
11 } // end constructor
12
13 } // end class H2ClassJ
10. (10 pts) Why does the following code give a compiler warning? How should it be fixed?
1 import javax.swing.*;
2
3 public class H2ClassK {
4 String [] sa = {"a", "b", "c"};
5 JComboBox jcbA = new JComboBox (sa);
6 } // end class H2ClassK
Explanation / Answer
(1)
Class Diagram:
Class diagrams are the most common diagrams used in UML. Class diagram consists of classes, interfaces, associations and collaboration.
Class diagrams basically represent the object oriented view of a system which is static in nature.
Active class is used in a class diagram to represent the concurrency of the system.
Class diagram represents the object orientation of a system. So it is generally used for development purpose. This is the most widely used diagram at the time of system construction.
Deployment Diagram:
Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities where the components are deployed.
Deployment diagrams are used for visualizing deployment view of a system.
Object Diagram:
Object diagrams can be described as an instance of class diagram. So these diagrams are more close to real life scenarios where we implement a system.
Object diagrams are a set of objects and their relationships just like class diagrams and also represent the static view of the system.
The usage of object diagrams is similar to class diagrams but they are used to build prototype of a system from practical perspective.
Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect can be further described as the changing/moving parts of a system.
UML has the following five types of behavioral diagrams:
Use case diagram
Sequence diagram
Collaboration diagram
Statechart diagram
Activity diagram
Use case Diagram:
Use case diagrams are a set of use cases, actors and their relationships. They represent the use case view of a system.
A use case represents a particular functionality of a system.
So use case diagram is used to describe the relationships among the functionalities and their internal/external controllers. These controllers are known as actors.
Sequence Diagram:
A sequence diagram is an interaction diagram. From the name it is clear that the diagram deals with some sequences, which are the sequence of messages flowing from one object to another.
Interaction among the components of a system is very important from implementation and execution perspective.
So Sequence diagram is used to visualize the sequence of calls in a system to perform a specific functionality.
Collaboration Diagram:
Collaboration diagram is another form of interaction diagram. It represents the structural organization of a system and the messages sent/received. Structural organization consists of objects and links.
The purpose of collaboration diagram is similar to sequence diagram. But the specific purpose of collaboration diagram is to visualize the organization of objects and their interaction.
Statechart Diagram:
Any real time system is expected to be reacted by some kind of internal/external events. These events are responsible for state change of the system.
Statechart diagram is used to represent the event driven state change of a system. It basically describes the state change of a class, interface etc.
State chart diagram is used to visualize the reaction of a system by internal/external factors.
Activity Diagram:
Activity diagram describes the flow of control in a system. So it consists of activities and links. The flow can be sequential, concurrent or branched.
Activities are nothing but the functions of a system. Numbers of activity diagrams are prepared to capture the entire flow in a system.
Activity diagrams are used to visualize the flow of controls in a system. This is prepared to have an idea of how the system will work when executed.
(10)
You should not place package name whatever is the package.
(5)
A final variable can only be initialized once, It does not need to be initialized at the point of declaration: this is called a "blank final" variable.
for static variable we should use:
static
{
myNumber=0;
}
(3)
public class H2ClassC
{
H2ClassC (int a)
} // end class H2ClassC
class H2ClassD extends H2ClassC
{
}
// end class H2ClassD
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.