main
method and then run gradlew run
....
public static void main(String[] args){
assert false : "dummy assertion set to fail";
...
}
Explain notations in the class diagram
Explain the meaning of various class diagram notations in the following class diagram:
PR
object exist without any Commit
objects attached to it?Commit
object exist without a corresponding PR
object?Student
can belong to how many teams?Team
can have how many Student
objects?Question adapted from past exam paper.
Draw a Class Diagram for the code (StockItem
, Inventory
, Review
, etc.)
Consider the code below:
public interface Billable {
void bill();
}
public abstract class Item
implements Billable {
public abstract void print();
}
public class StockItem extends Item {
private Review review;
private String name;
public StockItem(
String name, Rating rating) {
this.name = name;
this.review = new Review(rating);
}
@Override
public void print() {
//...
}
@Override
public void bill() {
//...
}
}
public enum Rating {
GOOD, OK, POOR
}
public class Review {
private final Rating rating;
public Review(Rating rating) {
this.rating = rating;
}
}
import java.util.List;
public class Inventory {
private List<Item> items;
public int getItemCount() {
return items.size();
}
public void generateBill(Billable b) {
// ...
}
public void add(Item s) {
items.add(s);
}
}
(a) Draw a class diagram to represent the code. Show all attributes, methods, associations, navigabilities, visibilities, known multiplicities, and association roles. Show associations as lines.
(b) Draw an object diagram to represent the situation where the inventory has one item named spanner
and a review of POOR
rating
i.e., new Inventory().add(new StockItem("spanner", new Review(Rating.POOR)))
.