Dr. Javier Gonzalez-Sanchez
[email protected]
www.javiergs.info
o
ffi
ce: 14 -227
CSC 307
Introduction to Software Engineering
Lecture 07. Software Design
Slide 2
Slide 2 text
Design
Slide 3
Slide 3 text
Activities
3
Slide 4
Slide 4 text
Software Design
De
f
inition
To cre
a
te
a
speci
f
ic
a
tion
of
a
softw
a
re (solution)
Gr
a
phic
a
l
Abstr
a
ct
Description
(blueprint)
4
model
Slide 5
Slide 5 text
Blueprints
5
VS
Slide 6
Slide 6 text
Error Smells
Slide 7
Slide 7 text
Structural models
Structur
a
l models of softw
a
re displ
a
y the org
a
niz
a
tion of
a
system in terms of
a
) the p
a
rts (items, elements, components) th
a
t m
a
ke up th
a
t system
a
nd
b) their rel
a
tionships.
7
Slide 8
Slide 8 text
UML Diagrams
8
Slide 9
Slide 9 text
Class diagram
Cl
a
ss di
a
gr
a
ms show the cl
a
sses in
a
system
• modi
f
iers
• Attributes
• methods
And the rel
a
tionships between these cl
a
sses:
• Associ
a
tion / Dependency
• Aggreg
a
tion / Composition
• Gener
a
liz
a
tion / Speci
a
liz
a
tion / Re
a
liz
a
tion
9
Slide 10
Slide 10 text
Relationships
10
Slide 11
Slide 11 text
Level of Abstraction
11
https://faculty.runi.ac.il/arik/site/Clipasso.asp
Slide 12
Slide 12 text
Hints
12
✅
✅
✅
❌
❌
🤔
Slide 13
Slide 13 text
Hints
13
✅
Slide 14
Slide 14 text
Questions
14
Slide 15
Slide 15 text
Lab
Slide 16
Slide 16 text
Lab
16
Draft the Class Diagram for
___________________.
Slide 17
Slide 17 text
Problem
17
public class B implements E {
public B()
C c1 = new C();
}
public void method(A a) {
B b = new B();
b.sleep();
a.method(new D());
}
}
public class Y extends B {
A [] a = new A[5];
}
public class A extends B {
C c1, c2;
public A() {
c1 = new C();
}
public void method(D d) {
d.working();
}
}
public class X {
private String s;
public void m() {
B var = new A();
double x – Math.sqrt(5);
}
}
Slide 18
Slide 18 text
CSC 307 Introduction to Software Engineering
Javier Gonzalez-Sanchez, Ph.D.
[email protected]
Winter 2026
Copyright. These slides can only be used as study material for the class CSC307 at Cal Poly.
They cannot be distributed or used for another purpose.