Tải bản đầy đủ (.pdf) (32 trang)

Mô hình phân tích - Phân tích yêu cầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (489.64 KB, 32 trang )

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

×