You are on page 1of 36

BI 15.

THIT K HNG I TNG

Ni dung
M hnh MVC
Gii thiu mt s biu UML

1. M HNH MVC

MVC l g?
M hnh thit k phn mm 3 thnh phn: Model View

Control
Model:
M hnh ha cc i tng cha d liu cn x l
Cung cp cc phng thc truy cp d liu
M hnh ha cc hot ng nghip v

View:
Cung cp giao din cho ngi dng nhp/xut d liu
Kim tra tnh hp l ca d liu vo
Bt cc s kin trn giao din
Controller: nhn cc s kin c truyn t View gi

n cc phng thc tng ng ca Model hin th


d liu tr v trn View

Java Swing v MVC


Java Swing c xy dng da trn m hnh MVC
Mi i tng trong Java Swing ng gi 3 thnh phn:
Model: cha d liu v cc phng thc thao tc trn d liu
View: cc phng thc hin th i tng
Controller: bt v x l s kin trn i tng
V d: Xem on m to i tng ComboBox sau y
M hnh thc s ca Java Swing Component

Swing
Component

Model

View
Controller
5

V d
// Create JComboBox for setting the count step size
add(new JLabel("Step:"));
final Integer[] steps = {1, 2, 3, 4, 5};
Model
final JComboBox<Integer> comboCount = new
JComboBox<Integer>(steps);
comboCount.setPreferredSize(
View
new Dimension(60, 20));
cp.add(comboCount);
comboCount.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
step = (Integer)
comboCount.getSelectedItem();
Controller
}
}
});
6

Xy dng phn mm theo m hnh MVC


Khi chng trnh pht trin thm nhiu tnh nng, hoc

qu trnh x l phc tp hn, m hnh MVC ng gi trn


i tng Swing khng cn p ng c.
Xy dng phn mm theo m hnh MVC

Li ch ca MVC
Cho php phn tch h thng ln thnh 3 nhm thnh

phn d dng hn trong thit k, pht trin v bo tr


Cc thnh phn c th pht trin ng thi
T mt Model c th hin th trn cc View khc nhau. V
d: cng mt tp s liu c th hin th di dng bng,
biu ct, biu trn...
tng m bo tnh cng tc khi pht trin ng thi,
cc lp cn phi c trin khai t cc giao din

Giao tip gia cc thnh phn

Nn

Khng nn

Cc bc x l yu cu ngi dng
1. Ngi dng thc hin mt hnh vi trn View
2. View bt s kin, chuyn yu cu cho Controller x l

3. Controller gi phng thc tng ng m Model cung cp

4. Controller nhn kt qu tr v (c th l mt Model cha d liu)


v chuyn cho View hin th

5. View thay i khung nhn v hin th kt qu

10

Mt v d
public class Student {
private String rollNo;
private String name;
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
11

Mt v d (tip)
public class StudentView {
public void printStudentDetails(String studentName,
String studentRollNo){
System.out.println("Student: ");
System.out.println("Name: " + studentName);
System.out.println("Roll No: " + studentRollNo);
}
}

12

Mt v d (tip)
public class StudentController {
private Student model;
private StudentView view;
public StudentController(Student model,
StudentView view){
this.model = model;
this.view = view;
}
public void setStudentName(String name){
model.setName(name);
}

13

Mt v d (tip)
public String getStudentName(){
return model.getName();
}
public void setStudentRollNo(String rollNo){
model.setRollNo(rollNo);
}
public String getStudentRollNo(){
return model.getRollNo();
}
public void updateView(){
view.printStudentDetails(model.getName(),
model.getRollNo());
}
}

14

Mt v d (tip)
public class MVCPatternDemo {
public static void main(String[] args) {
Student model = retriveStudentFromDatabase();
StudentView view = new StudentView();
StudentController controller = new
StudentController(model, view);
controller.updateView();
controller.setStudentName("John");
controller.updateView();
}
private static Student retriveStudentFromDatabase(){
Student student = new Student();
student.setName("Robert");
student.setRollNo("10");
return student;
}
}

15

2. GII THIU V UML

16

Unified Modeling Language


L mt h thng cc k php m hnh ha hng i

tng
Phin bn hin ti: UML 2.0
UML m hnh ha h thng theo cc gc nhn khc nhau:
Gc nhn s dng: gc nhn t ngoi vo, phn nh cc chc nng

h thng cn c
Gc nhn thit k: gc nhn cu trc logic bn trong h thng, phn
nh cc nhim v h thng cn thc hin
Gc nhn qu trnh: phn nh qu trnh thc hin ca cc thnh
phn trong h thng
Gc nhn ci t: phn nh cch thc lp rp cc thnh phn
h thng hot ng
Gc nhn trin khai: phn nh v tr ca cc thnh phn ca h
thng trn cc thit b vt l
17

Cc biu UML chnh


Cc biu cu trc:
Biu lp (Class diagram)
Biu i tng (Object diagram)
Biu gi (Package diagram)
Biu thnh phn (Component diagram)
Biu trin khai (Deployment diagram)
Cc biu hnh vi:
Biu ca s dng (Use-case diagram)
Biu hot ng (Activity diagram)
Biu my trng thi (State machine diagram)
Biu trnh t (Sequence diagram)
Biu giao tip (Communication diagram)

18

Biu Ca s dng(Use-case diagram)


Ca s dng(use case) l mt biu din ca mt tp hp

cc chui hnh ng ca h thng nhm cung cp mt


kt qu cho mt i tc (actor)
Tn ca s dng: ng t

i tc: mt i tng bn ngoi tng tc vi h thng


Tn i tc: danh t
<<actor>>
H thng khc

Tn
ca s dng

Tn i tc

19

Biu Ca s dng
c im ca ca s dng:
Phi lin kt vi mt hoc mt s i tc
Phi dn ti mt kt qu c th
Phi l tp hp ca nhiu chui hnh ng
c t ca s dng:
S dng biu Ca s dng
S dng ngn ng t nhin:
M v tn ca s dng
i tc
iu kin u vo
Lung chnh
Lung ph ( x l ngoi l)

20

Cc lin kt trong ca s dng


Lin kt i tc v ca s dng:
i tc v ca s dng c trao i d liu vi nhau
Nu trao i l 1 chiu:

Khi qut ha:


i tc A l khi qut ha ca B nu B tha k mi c im
ca A
Ca s dng X l khi qut ha ca Y nu Y tha k mi c
im ca X

X
A

Y
21

Cc lin kt trong ca s dng


Bao hm (include): Ca s dng X bao hm Y nu trong

qu trnh thc hin X phi thc hin y Y


X: ca s dng c s

<<include>>

M rng (extend): Ca s dng X thm vo cc bc

thc hin v kt qu ca ca s dng Y trong iu kin


no
X: ca s dng c s

<<extend>>

Lu : Ca s dng khng ch ra trnh t cc bc thc

hin

22

Cc lin kt trong ca s dng


Ph thuc (dependence): Ca s dng Y ph thuc X

khi qu trnh thc hin Y ph thuc vo kt qu thc


hin X
X

Lu : Biu ca s dng khng ch ra trnh t cc

bc thc hin. Ni dung ny s c c t bng


ngn ng t nhin

23

V d - Ca s dng t ba ti nh hng
Khch hng

K: KH
ng k
thnh vin

24

V d: c t use-case
UC-01

Khch hng t ba

i tc chnh

Khch hng

iu kin

Khng c

Lung chnh

1. Khch hng cung cp cc thng tin: H tn, S in thoi,


Thi gian, S ngi n
2. H thng cung cp cc thc n ca nh hng
3. Khch hng chn thc n. Nu cn, khch hng c th chn
cc thc n c bit dnh cho ngi n king, hoc theo
cc ch bin (Nng, Lu)
4. H thng cung cp cc mn n theo thc n khch chn
5. Khch hng hon tt vic t mn
6. H thng cung cp ha n t hng
7. Khch hng xc nhn v thanh ton ha n. Nu khch hng
ng k thnh vin trn h thng c th chn ty chn
thanh ton tr sau
8.

Lung ph

Nu khch hng cha ng nhp khi chn thanh ton tr sau,


yu cu ng nhp

25

Biu Hot ng(Activity diagram)


Biu hot ng m t lung x l ca h thng khi

thc hin mt chc nng no


Hot ng: mt cng vic trong lung x l
Cc k php:
Hot ng:

Tn hot ng

Lung iu khin:
Chuyn t hot ng ny sang hot ng khc:
Nt khi to:
Nt kt thc:

26

Cc k php (tip)
R nhnh:
Quyt nh: mt lung vo, nhiu lung ra, cc lung ra phi loi
tr nhau
Ha nhp: nhiu lung vo, mt lung ra, nu c mt lung vo
no xut hin, im ha nhp s c vt qua
ng b ha: biu din cc lung thc hin song song
Nt chc (fork): m cc nhnh song song

Nt chm (join): ng cc nhnh song song

27

Cc k php
iu kin canh gi: [iu kin]
Lung ch c php i qua nu iu kin xy ra
Phn tuyn: s dng cc ng swim-line phn nh

hot ng cho mt (mt nhm) i tng thc hin


:i tng 1

:i tng 2

:i tng 3

Phn vng:

28

:Khch hng

Cung cp thng tin

:B phn t hng

:B phn thanh ton

a danh sch
thc n

Chn thc n
a DS
mn n
Chn mn n

chuyn sang
biu khc

[KH chn
thm mn]
[KH hon tt
t mn]

Lp n
t hng

n H
[cha
thanh ton]

Thanh ton

29

Biu lp
Tn lp

Biu din lp

Tn lp

DS thuc tnh
DS phng thc

Biu din ch nh truy cp:


public: +
protected: #
khng ch nh: ~
private:
Biu din giao din

<<interface>>
Tn giao din

30

Biu din quan h gia cc lp


Lp A

tn vai tr

tn quan h

c s

tn vai tr

Lp B

c s

Tn lin kt: ch ra mi quan h gia cc lp trn lin kt


Tn vai tr: ch ra vi tr ca mi lp trn quan h
C s: ch ra s lng cc i tng ca mi lp tham

gia vo lin kt:


Mt s nguyn dng (1, 2, 3, *)
Mt di gi tr: 0..1, 2..4, 1..*
Khng ghi: mc nh l 1

Trng hc
0..1

dy
0..1
hc

thy gio
*
sinh vin

Ngi
*
31

Biu lp Quan h (tip)


Quan h k tha:

Lp con

Lp cha

Quan h trin khai

Lp

Giao din

Quan h kt tp:

Lp cha

Lp thnh phn
i tng lp thnh phn
c th tn ti ngoi mt i tng lp
cha

Quan h cu thnh:

Lp thnh phn

Lp cha

i tng lp thnh phn khng th tn ti ngoi mt i tng

lp cha

Quan h ph thuc:
Lp
Lp
B i trn i
S thay i i tng lp
AA
c th dn n s
thay
tng lp B

32

Biu lp V d

33

Biu tun t (Sequence diagram)


Biu tun t: biu din trnh t thc hin theo thi gian

ca cc thng ip trao i gia cc i tng


Thng ip gi:
Thng ip kim c (found message): khng r ngun
Thng ip mt ht (lost message): khng r ch

Thng ip c lp nhiu ln: *


Biu trnh t biu din theo 2 chiu:
Chiu ngang: b tr cc i tng, th t cc i tng khng
quan trng, song i tng khi to qu trnh nn nm bn tri
nht
Chiu dc: trc thi gian hng xung di, biu din ng i
ca i tng. Khi i tng b hy, kt thc ng i bng du
gch cho (X)
34

V d

35

Ti liu tham kho


Mu thit k (Design Pattern)
Brett D. McLaughlin, et al, Head First Design Patterns .
http://www.oodesign.com
http://www.tutorialspoint.com/design_pattern/
Phn tch v thit k hng i tng:
Brett D. McLaughlin, et al, Head First Object-Oriented Analysis &

Design.

Ti liu UML
J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling
Language Reference Manual, 2nd Edition

36

You might also like