LECTURE 7: Object Oriented Design<br />
Ivan Marsic<br />
Rutgers University<br />
<br />
Topics<br />
• Gán trách nhiệm cho các đối tượng<br />
• Design Principles<br />
• Expert Doer<br />
• High Cohesion<br />
• Low Coupling<br />
<br />
• Business Policies<br />
• Class Diagram<br />
<br />
2<br />
<br />
System Sequence Diagrams<br />
Biểu đồ tuần tự hệ thống cho usecase mở khóa<br />
<br />
: System<br />
<br />
User<br />
<br />
Timer<br />
<br />
«initiating actor»<br />
select function(“unlock")<br />
<br />
«offstage actor»<br />
<br />
prompt for the key<br />
enter key<br />
<br />
verify key<br />
<br />
signal: valid key, lock open<br />
open the lock,<br />
turn on the light<br />
<br />
start ("duration“)<br />
<br />
System Sequence Diagrams considered interactions between the actors<br />
3<br />
<br />
Design: Object Interactions<br />
Design<br />
Sequence Diagram<br />
<br />
System Sequence Diagram<br />
Controller<br />
<br />
«initiating actor»<br />
select function(“unlock")<br />
<br />
: KeyStorage<br />
<br />
: LockCtrl<br />
<br />
checkKey()<br />
<br />
ystem<br />
<br />
: System<br />
<br />
User<br />
<br />
: Checker<br />
<br />
Timer<br />
<br />
sk := getNext()<br />
<br />
«offstage actor»<br />
<br />
prompt for the key<br />
<br />
alt<br />
enter key<br />
<br />
val != null<br />
<br />
setOpen(true)<br />
<br />
verify key<br />
<br />
signal: valid key, lock open<br />
open the lock,<br />
turn on the light<br />
<br />
[else]<br />
<br />
val == null : setLit(true)<br />
<br />
start ("duration“)<br />
<br />
• System Sequence Diagram mô tả tương tác giữa các actor<br />
• Object Sequence Diagram mô tả tương tác giữa các đối tượng<br />
<br />
4<br />
<br />
Metaphor for Software Design:<br />
“Connecting the Dots”<br />
Resident<br />
<br />
:InterfacePage<br />
<br />
:SearchRequest<br />
<br />
:Controller<br />
<br />
:PageMaker<br />
<br />
:DatabaseConn<br />
<br />
:Archiver<br />
<br />
:Notifier<br />
<br />
:InvestigRequest<br />
<br />
Ta bắt đầu từ các đối tượng/khái niệm từ pha phân<br />
tích, và sửa hoặc thêm các đối tượng mới, nhằm làm<br />
cho hệ thống hoạt động được.<br />
<br />
Database<br />
<br />
Landlord<br />
<br />
5<br />
<br />