Mô hình phân tích – Phân tích yêu cầup y
Mô hình nghiệpvụ biểudiễncácchứcnăng
phần mềm cần xây dựng dưới dạng các usephần mềm cần xây dựng dưới dạng các use-
case
Mô hình phân tích sẽ tìm kiếmcácđối
tượng “sống” trong ngữ cảnh của phần mềm
Đối tượng/lớp
- quan hệ
tượng sống trong ngữ cảnh của phần mềm
Các đốitượng sẽ tương tác với nhau để tạo
nên các chứcnăng mô tả bởiuse-case
L đồ Cl hâ tí h diễ tả ấ tú ối Lược đồ Class phân tích diễn tả cấu trúc, mối
quan hệ giữacácđồitượng/lớp trong hệ
thống
Ch tâ đế hà h i thể à hiệ Chưa quan tâm đến hành vi cụ thể và nhiệm
vụ chi tiếtcủa chúng trong ngữ cảnh củahệ
thống
Nêtắ ô hì h hâ tí h hải độ lậ
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6363
Nguyên tắc: mô hình phân tích phải độc lập
với o/s, ngôn ngữ lập trình, công cụ phát triển
Xây dựng mô hình phân tíchy ự gp
Mô hình phân tích đượcdiễn đạt trong UML bằng lược đồ lớp
phân tích (Class diagram)phân tích (Class diagram)
Các công việcxâydựng lược đồ phân tích bao gồm
Tìm kiếm các đốitượng / lớp trong hệ thống
Đối tượng / lớp thực thể Đối tượng / lớp thực thể
Đốitượng / lớpbiên
Đốitượng / lớp control
Xác định các thuộc tính của đốitượng /lớpg p
Xác định các tác vụ của đốitượng / lớp
N hậndiện các lớptrừutượng qua mối quan hệ tổng quát hóa
Xác lập các mối quan hệ giữa các lớp:
ổ Tổng quát hoá (generalization)
Liên kết (association)
Bao gộp (aggregation)
Biể diễ thà h l đồ lớ hâ tí h
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6464
Biểu diễn thành lược đồ lớpphân tích
Nhập diện đối tượng / lớpập ệ ợ g/ p
Dựavàođặctả củatừng use-case để tìm kiếmcácđối
tượng
Các đốitượng thường xuấthiện trong các danh từ hay
nhóm danh từnhóm danh từ
Mộtsố lưuý
Không nên dùng đốitượng để biểudiễnmộtdữ liệu đơn(nênxemlà
ốthuộc tính của đốitượng khác)
Đốitượng/lớpphảithựcsự cầnthiếtchosự hoạt động củahệ thống
Đốitượn
g/lớp >< bảng cơ sở dữ liệug p g
Đốitượng/lớp >< actor
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6565
Nhận diện và biểu diễn đối tượng /
lớlớp
Phân loại đốitượng/lớp
ố ể ể ễ ế ế Đốitượng thựcthể (entity): biểudiễn các thông tin thiếtyếucủahệ
thống, có thểđượclưu trong cơ sở dữ liệu
Đốitượng biên (boundary): thựchiệnchứcnăng giao tiếpvới actor
Đối t điề khiể (tl)điề khiể á đối t khá Đối tượng điều khiển (control): điều khiểncác đối tượng khác
Trong UML, lớp đượcbiểudiễnbằng mộthìnhchữ
nhậtgồm3phần: tên, các thuộc tính và các tác vụ
Có thể áp dụng stereotype cho lớp: <<entity>>,
<<boundary>>, <<control>>...
Đối tượng cũng được biểu diễn bằng hình chữ nhật Đối tượng cũng được biểu diễn bằng hình chữ nhật,
thông thường gồm2phần: tên đốitượng + tên lớp
(đượcgạch chân), giá trị các thuộctính(trạng thái của
đối tượng)
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6666
đối tượng)
Biểu diễn lớp / đối tượngp/ ợ g
HTMLObjectj
# alignment: int
+ GetAlignment( ): int GetAlignment( ): int
+ toHTML( ): String
HTMLDocument
doc : HTMLDocument
- title: String
alignment = MIDDLE
title = “A document”
+ GetTitle( ): String
+ toHTML( ): String
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6767
Đối tượng / lớp thực thểợ g/ p ự
Biểudiễnchocácthựcthể xuấthiệnmộtcáchtự nhiên trong
hệ thốnghệ thống
Thông tin về các đốitượng thựcthể có thể phải đượclưutrữ
lâu dài (database, file...)
T UML đ á i Trong UML, đượcgán stereotype <<entity>>
Dễ nhậndiệncácthuộc tính của chúng
VíVí dụdụ::
Message
ụụ
• Đốivớihệ thống đăng ký môn họchệ tín
chỉ qua WEB, nhậndiệncácđốitượng thực
thể như: thông tin SV, thông tin GV, nhóm
lớp học đăng ký nhóm sổ tay sinh viên
# subject: String
# sent: Date
g
<<entity>>
lớp học, đăng ký nhóm, sổ tay sinh viên …
• Đốivớihệ thống mail, nhậndiệncácđối
tượng thựcthể như:hộpthư, thông điệp
mail…
+ GetSubject( ): String
+ toStrin
g( ): String
# content: String
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6868
g( ) g
Đối tượng / lớp biênợ g/ p
Thựchiệnchứcnăng giao tiếpvớiactor
Thường chứa các phần tử hoặc điều khiển giao diện người dùng Thường chứa các phần tử hoặc điều khiển giao diện người dùng
(nút nhấn, hộp danh sách, tuỳ chọn, menu...)
Trong UML, được gán stereotype <<boundary>>
Khó hậ biết á th ộ tí h à tá t ô hì h hâ tí h Khó nhận biết các thuộc tính và tácvụ trong mô hình phân tích
VíVí dụdụ::
Đối với hệ thống đăng ký môn học hệ
MailView
•Đối với hệ thống đăng ký môn học hệ
tín chỉ qua WEB, nhậndiệncácđối
tượng biên như: RegisterForm,
StudentForm…
<<boundary>>
• Đốivớihệ thống mail, nhậndiệncác
đốitượng biên như: MailView,
MailCompose
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
6969
MailCompose...
Đối tượng / lớp điều khiểnợ g/ p
Có nhiệmvụđiềukhiểncáclớp
khác hoặc
Command
khác hoặc
Những lớp không phảilàlớp
thựcthể và lớpbiên
Trong UML được gán
Command
<<control>>
+ Execute( )
+ Reexecute( )
Trong UML, được gán
stereotype <<control>>
Lớpbiênthường có quan hệ
liên kết hoặc phụ thuộc với các
+ Reexecute( )
+ Unexecute( )
# Do( )
liên kết hoặc phụ thuộc với các
lớp khác
Ví dụ:
Đối tượng biểu diễn một số lệnh
PasteCommand
<<control>>
+ Execute
( )
BgCommand
<<control>>
+ Execute
( )
Đối tượng biểu diễn một số lệnh
thông thường như cắt, dán, thay đổi
thông số nhìn trong hiểnthịđồhoạ
…
()
+ Reexecute( )
+ Unexecute( )
# Do( )
()
+ Reexecute( )
+ Unexecute( )
# Do( )
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
7070
Nhận diện các thuộc tínhậ ệ ộ
Dựavàođặctả củatừng use-case, tìm kiếm các danh từ
h ặ hó dhtừ liê đế đối t đ éthoặcnhóm danh từ liên quan đến đối tượng đang xét
Trả lờicâuhỏi: những thành phần nào cấu thành đốitượng
đang xét ?
Lưu ý: cùng một đốitượng trong các ngữ cảnh khác nhau chúng ta
có thể tìm được các thuộc tính khác nhau
Nên xác định (tuy nhiên không bắt buộc) trong mô hình Nên xác định (tuy nhiên không bắt buộc) trong mô hình
phân tích
Kiểucủathuộc tính: mộtsố kiểucơ bản
Bậc của thuộc tính: số ít hoặc số nhiều Bậc của thuộc tính: số ít hoặc số nhiều
Visibility củathuộc tính: mức độ cho phép truy xuấtthuộc tính từ bên ngoài
UML: thuộc tính đượcmiêutả tường minh hoặc thông qua
quan hệ với các lớp khác
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
7171
quan hệ với các lớp khác
Xác định mức độ truy cập của thuộc
tí htính
Mức độ truy cậpvàphạmvimàthuộc tính đócóthểđược
th khả đế t tiếtham khảo đến trực tiếp
UML định nghĩa3mức độ truy xuấtthuộc tính (visibility)
public (+): có thể truy xuấtthuộc tính từ tấtcả các vị trí khác nhaup () y ộ ị
protected (#): bảnthânlớp đang xét và các lớpconcủanócóthể
truy xuấtthuộc tính
private (-): chỉ có lớp đang xét có thể truy xuất thuộc tính private ( ): chỉ có lớp đang xét có thể truy xuất thuộc tính
Thông thường nên đặtmức độ truy xuấtthuộc tính là
private hoặc protected (cho các lớpcơ sở), không nên là
publicpublic.
Thuộc tính nên đượctruyxuất thông qua tác vụ get/set
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
7272
Ví dụ về nhận diện các thuộc tínhụ ậ ệ ộ
Hệ thống đăng ký môn
học hệ tín chỉ qua WEBhọc hệ tín chỉ qua WEB -
Nhậndiệncácthuộctính
cho các đốitượng:
StudentInfo LecturerInfo
StudentInfo
<<entity>>
-
name: String
LecturerInfo
<<entity>>
- name: String
StudentInfo, LecturerInfo
Chú ý các mức độ truy
cậpcủacácthuộc tính
Các tác vụ phát sinh
name: String
- code: Long
- dateOfBirth: Date
- addr: String
YD
- code: String
- dateOfBirth: String
- addr: String
- degree
Các tác vụ phát sinh
trong khi nhậndiệncác
thuộc tính Æ như
Get/Set
- acaYear: Date
- department
- home: String
-
socialAid
degree
- title: String
- division
- health
Get/Set
socialAid
- experience: Date
+ GetN ame( ): String
+ GetCode( ): Long
+ GetN ame( ): String
+ GetCode( ): String
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
7373
Ví dụ về nhận diện các thuộc tínhụ ậ ệ ộ
Hệ thống đăng ký
môn học hệ tín chỉmôn học hệ tín chỉ
qua WEB
Nhậndiệncác
thuộc tính cho các
CourseOfferring
<<entity>>
Catalog
<<entity>>
thuộc tính cho các
đốitượng:
CourseOffering,CourseOffering,
- courseN ame: String
- courseCode: String
- offering: int
i
- acaYear: Date
- semester
CatalogCatalog
-session
- credit: int
- prerequisite
Trường ĐạiHọc Bách Khoa - Khoa Công N ghệ Thông Tin
Copyright 2004 – Th.S N guyễn Cao Trí –
7474