CPSC 210
C5: Extracting Sequence Diagrams

Learning Goals
- Extract a sequence diagram from a given Java code base

Flashback!




Sequence Diagrams
- Depicts calls between objects while system is running
- Starts with a particular method call
A a = new A();
B b = new B();
a.doA(b);
public class A {
public void doA(B b) {
b.doB();
}
}
public class B {
public void doB() { }
}
ObjectsMethod CallsExecution TimelineLifelinesCalls to the same object
A a = new A();
B b = new B();
a.doA(b);
public class A {
public void doA(B b) {
b.doB();
}
public class B {
public void doB() {
this.doB2();
}
public void doB2() { }
}
Call to same objectParts of the Diagram (again)

Method's execution timeline
Lifelines
Method Calls
Objects alive throughout the execution
Loops & Conditionals
public class RegistrationSystem {
private List<Student> students;
public void printRecords() {
for (Student s : students) {
Rec rec = s.getRec();
// ...
}
}
}Loop box
Same for conditionals!
if: ...
else if: ...
else: ...

Real
Example

Note: exact notation may differ between variations
Lecture Ticket Review
public class Street {
public static void main(String[] args) {
Magician magician = new Magician();
Onlooker carl = new Onlooker();
magician.attractAudience(carl);
magician.doMagicTrick();
}
}
public class Magician {
private Onlooker audienceMember = null;
public void doMagicTrick() {
audienceMember.beAmazed();
}
public void attractAudience(Onlooker a) {
audienceMember = a;
}
}
public class Onlooker {
public void beAmazed() {
gasp();
}
private void gasp() {
}
}Magician
magicianOnlooker
carlbeAmazed()doMagicTrick()gasp()Lecture Lab

Recommended procedure:
- Sketch your objects and lifelines
- How many lifelines do we need?
- Sketch your loop/alternation boxes
- How many loop/alternation boxes do we need?
@Override
public void printLog(EventLog el) {
for (Event next : el) {
logArea.setText(logArea.getText() + next.toString() + "\n\n");
}
repaint();
}Lecture Lab Hint
@Override
public void printLog(EventLog el) {
for (Event next : el) {
logArea.setText(logArea.getText() + next.toString() + "\n\n");
}
repaint();
}C5: Extracting Sequence Diagrams
The End - Thank You!
C5 Extracting Sequence Diagrams
By firas_moosvi
C5 Extracting Sequence Diagrams
- 254