Giáo trình phân tích thiết kế hệ thống thông tin
Học viện công nghệ bưu chính viễn thông
Chương I. Mở đầu
Chương II. UML và công cụ phát triển hệ thống
Chương III. Pha phân tích hướng đối tượng
Chương IV. Pha thiết kế hướng đối tượng
133 trang |
Chia sẻ: banmai | Lượt xem: 2538 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình phân tích thiết kế hệ thống thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HƯỚNG ĐỐi TƯỢNG
4.1.2 Các bước thiết kế hướng đối tượng
Dựa trên các kết quả của pha phân tích, pha thiết kế hướng đối tượng được chia
thành các bước như sau:
• Xây dựng các biểu đồ tương tác: biểu đồ tuần tự và biểu đồ cộng tác.
• Xây dựng biểu đồ lớp chi tiết: thực hiện hoàn chỉnh sơ đồ lớp, xác định và
biểu diễn đầy đủ các phương thức cho từng lớp, xác định mối quan hệ giữa
các lớp.
• Thiết kế chi tiết: xây dựng các biểu đồ động cho các phương thức phức tạp
trong các lớp và xây dựng bảng thiết kế chi tiết cũng như kế hoạch cài đặt
và tích hợp.
• Xây dựng biểu đồ thành phần và biểu đồ triển khai hệ thống
• Phát sinh mã, chuẩn bị cho cài đặt hệ thống
Các bước này sẽ được trình bày trong các phần sau của tài liệu này.
4.2 CÁC BIỂU ĐỒ TƯƠNG TÁC
Như đã trình bày trong phần 3.4, các biểu đồ tương tác biểu diễn các tương tác
giữa các tác nhân bên ngoài và các đối tượng bên trong hệ thống cũng như tương
tác giữa các đối tượng ngay bên trong hệ thống đó. Biểu đồ tương tác có hai dạng:
- Biểu đồ tuần tự (sequence diagram) nhấn mạnh thứ tự thực hiện của các
tương tác
- Biểu đồ cộng tác (collaboration diagram) nhận mạnh đến mối quan hệ và
sự phối hợp giữa các đối tượng trong tương tác đó.
Tùy vào yêu cầu của hệ thống cụ thể, người phát triển hệ thống có thể lựa chọn
một trong hai biểu đồ hoặc sử dụng cả hai biểu đồ. Trong phần này, tài liệu sẽ tập
trung trình bày các phần tử mô hình UML sử dụng trong các biểu đồ tương tác và
cách thức xây dựng các biểu đồ tương tác đó.
4.2.1 Xây dựng biểu đồ tuần tự
Thông thường, các biểu đồ tuần tự được gắn với các use case. Các message trong
biểu đồ tuần tự sẽ biểu diễn lại thứ tự các sự kiện trong kịch bản của use case đó
(cả chuẩn và ngoại lệ).
81
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Hình 4.1 biểu diễn một ví dụ về biểu đồ tuần tự đơn giản mô tả chức năng
thêm sách được xây dựng nên từ kịch bản đã trình bày trong chương trước. Trong
chức năng thêm sách, các đối tượng tham gia gồm: Thủ thư, Form Thêm sách, đối
tượng điều khiển Thêm sách và đối tượng Sách. Thứ tự thực hiện message trong
biểu đồ là theo chiều từ trên xuống dưới. Nhìn vào một biểu đồ tuần tự như vậy ta
có thể thấy được ngay thứ tự thực hiện các hành động của một đối tượng trong
một chức năng đang xem xét. Biểu đồ tuần tự này mô tả lại kịch bản của use case
Thêm sách nhưng dựa trên các đối tượng của các lớp đã xác định trong pha phân
tích. Với mỗi chức năng, thông thường sẽ có thêm một lớp giao diện (lớp Form)
và một lớp điểu khiển cho chức năng đó.
: Thu thu : FormThemSach : DK_ThemSach : Sach
Yeu cau Them sach
Yeu cau nhap thong tin
Nhap thong tin sach moi
Tao doi tuong sach moi
Kiem tra thong tin sach
Nhap sach vao CSDL
Nhap thanh cong
Nhap thanh cong
Thong bao nhap thanh cong
Hình 4.1: Biểu đồ tuần tự cho use case Thêm sách
Một số chú ý khi vẽ biểu đồ tuần tự:
• Sự kiện được biểu diễn kèm theo các message nằm ngang.
82
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
• Đối tượng luôn gắn với các đường đời (life line) dọc theo biểu đồ. Điểm kết
thúc của đường đời này đánh dấu thời điểm huỷ đối tượng hoặc khi tương
tác đã kết thúc.
• Trục thời gian được quy định từ trên xuống dưới. Các message ở trên sẽ
xảy ra trước các message ở phía dưới.
• Trong biểu đồ tuần tự có thể xuất hiện các message từ một đối tượng đến
chính bản thân nó.
Tiếp theo, chúng ta xem xét một số vấn đề phức tạp hơn khi xây dựng biểu đồ tuần
tự như biểu diễn các message lặp, sử dụng các message tạo - huỷ và phân nhánh
các đối tượng.
Biểu diễn các message lặp
Trong biểu đồ tuần tự, có một số trường hợp ta cần biểu diễn các message được
gửi theo vòng lặp (nhiều lần liên tiếp) giữa hai đối tượng. Khi đó, ta bổ sung thêm
cấu trúc: * [i=1..n] vào trước message; với i là biến điều khiển lặp, n là số lần lặp.
Xem xét ví dụ trong Hình 4.2.
Hình 4.2: Biểu diễn message lặp
Sử dụng các message tạo và huỷ
Thông thường, các message trong biểu đồ tuần tự được gửi và nhận từ các đối
tượng đã tồn tại. Tuy nhiên, trong trường hợp các đối tượng tham gia trong quá
trình tương tác thuộc về các lớp có quan hệ phụ thuộc thì ta phải sử dụng các
message tạo và huỷ. Các message tạo và huỷ được biểu diễn trong ví dụ Hình 4.3.
83
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Object1
> Object2
>
Hình 4.3: Sử dụng message tạo và huỷ
Biểu diễn phân nhánh các đối tượng
Trong trường hợp ứng với các giá trị khác nhau của tham số, đối tượng hoạt động
khác nhau thì chúng ta dùng cách biểu diễn phân nhánh đối tượng. Xem ví dụ
Hình 4.4.
Object1
Object2
[j=0] message 1
Hình 4.4: Phân nhánh các đối tượng
[j=1] message 2
84
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
4.2.3 Xây dựng biểu đồ cộng tác
Biểu đồ cộng tác cũng có các messgage với nội dung tương tự như trong biểu đồ
tuần tự. Tuy nhiên, các đối tượng được đặt một cách tự do trong không gian của
biểu đồ và không có đường đời cho mỗi đối tượng. Các message được đánh số thể
hiện thứ tự thời gian. Một số chú ý khi xây dựng biểu đồ cộng tác:
- Giữa hai đối tượng có thể có nhiều message. Các message này sẽ cùng
được biểu diễn trong không gian giữa hai đối tượng, kèm theo số thứ tự của
nó.
- Trong biểu đồ cộng tác cũng có thể có các message từ một đối tượng đến
bản thân nó. Message này sẽ biểu diễn bởi một đường vô hướng xuất phát
và kết thúc trên đối tượng đó.
Hình 4.5 mô tả một biểu đồ tương tác theo kiểu cộng tác (collaboration diagram).
Nội dung biểu đồ này hoàn toàn tương tự như trong biểu đồ tuần tự trong Hình
4.1. Nếu như biểu đồ tuần tự nhấn mạnh đến thứ tự các message thì biểu đồ cộng
tác lại nhấn mạnh đến quan hệ giữa các đối tượng. Do đó, trong biểu đồ cộng tác
không có các đường đời. Các đối tượng sẽ được bố trí tự do trong biểu đồ theo
hình dung của người thiết kế.
: Thu thu : FormThemSach
: DK_ThemSach : Sach
5: Kiem tra thong tin sach
1: Yeu cau them sach
2: Yeu cau nhap thong tin
3: Nhap thong tin sach moi
9: Thong bao nhap thanh cong
4: Tao doi tuong sach moi
8: Nhap thanh cong
6: Nhap sach vao CSDL
7: Nhap thanh cong
Hình 4.5: Biểu đồ cộng tác cho use case Thêm sách
Từ Hình 4.5, ta thấy các thành phần cơ bản của một biểu đồ cộng tác là:
85
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
- Các đối tượng (object): trong biểu đồ cộng tác, các đối tượng vẫn được
biểu diễn với dạng hoàn toàn tương tự như trong biểu đồ tuần tự nhưng
không có đường đời ở phía dưới.
- Các message có đánh số thứ tự: giữa các đối tượng có tương tác trong biểu
đồ cộng tác là các đường liên kết vô hướng. Các message sẽ được biểu diễn
phía trên đường liên kết đó và mỗi message sẽ được đánh số thứ tự tương
ứng với thứ tự xuất hiện về mặt thời gian của message đó.
4.2.4 Biểu diễn các biểu đồ tương tác trong Rational Rose
Các biểu đồ tương tác có thể được xây dựng từ các use case tương ứng. Trong
trường hợp đó, người sử dụng có thể nhấn chuột phải vào use case tương ứng và
lựa chọn New rồi đến tên loại biểu đồ cần xây dựng.
Xây dựng biểu đồ tuần tự
Bước 1: Chọn use case cần xây dựng biểu đồ tuần tự. Click chuột phải,
chọn New – Sequence Diagram. Hình 4.6 là lựa chọn xây dựng biểu đồ
tuần tự, Hình 4.7 là lựa chọn xây dựng biểu đồ cộng tác.
Hình 4.6: Lựa chọn xây dựng biểu đồ tuần tự cho mỗi use case
Bước 2: Thêm các đối tượng vào biểu đồ tuần tự. Chọn ký hiệu đối tượng
trong hộp công cụ và kéo vào cửa số biểu đồ.
86
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Bước 3: Thêm các message.
Bước 4: Đặc tả các message bao gồm đặt tên hoặc mô tả dưới dạng hàm.
Một biểu đồ tuần tự có dạng như trong Hình 4.7. Hộp công cụ trong các biểu đồ
tuần tự và cộng tác là các đối tượng và các dạng mũi tên biểu diễn các dạng
message khác nhau.
Hình 4.7: Biểu diễn một biểu đồ tuần tự
Xây dựng biểu đồ cộng tác
Bước 1: Lựa chọn use case cần xây dựng biểu đồ cộng tác. Xem hình 4.8.
Bước 2: Biểu diễn các đối tượng trong không gian biểu đồ.
Bước 3: Biểu diễn các message trong biểu đồ cộng tác. Mỗi message kèm theo số
thứ tự của message đó.
87
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Hình 4.8: Lựa chọn xây dựng biểu đồ cộng tác cho mỗi use case
4.3 BIỂU ĐỒ LỚP CHI TIẾT
4.3.1 Xác định các phương thức cho mỗi lớp
Bước đầu tiên trong xây dựng biểu đồ lớp chi tiết là xác định phương thức cho các
lớp. Dựa trên các biểu đồ tương tác vừa xây dựng, quá trình xác định các phương
thức được thực hiện theo các nguyên tắc sau:
- Xem xét các message trong các biểu đồ tương tác để xác định hành động
tương ứng với message đó thuộc trách nhiệm của lớp nào.
- Các phương thức nào cần thiết để chuyển đổi các trạng thái trong biểu đồ
trạng thái của một lớp.
- Xác định xem với mỗi lớp, lớp đó cần các hàm tạo và hàm hủy hay không.
Sau khi đã xác định đầy đủ các phương thức, công việc tiếp theo là phải xác định
chi tiết giá trị trả về và các tham số liên quan với mỗi phương thức.
4.3.2 Xác định mối quan hệ giữa các lớp
Trong bước này, người phát triển hệ thống phải xác định đầy đủ mối quan hệ giữa
các lớp và các vấn đề liên quan đến các mối quan hệ đó. Những công việc cụ thể
phải thực hiện trong bước này là:
- Xác định cụ thể dạng của quan hệ giữa các lớp
88
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
- Xác định số lượng trong mỗi mối quan hệ
Xác định cụ thể dạng của quan hệ giữa các lớp
Như đã trình bày trong chương 2, có bốn dạng quan hệ cơ bản trong sơ đồ lớp là:
quan hệ kế thừa, quan hệ kiểu kết hợp, quan hệ gộp và quan hệ phụ thuộc. Trong
bước này, người phát triển phải tìm ra các quan hệ giữa các lớp và xác định cụ thể
quan hệ đó thuộc dạng nào. Nếu như các danh từ giúp chúng ta tìm ra lớp thì các
động từ trong các kịch bản sẽ giúp chúng ta tìm ra các quan hệ. Các quan hệ sẽ
được phân loại dựa trên nguyên tắc sau:
- Hai lớp có mối quan hệ kiểu kết hợp với nhau nếu các động từ trong tương
tác giữa các lớp biểu hiện một sự thay thế, đại diện, sự bao hàm, sự giao
tiếp, sự sở hữu hay yêu cầu thỏa mãn điều kiện nào đó.
- Quan hệ gộp thường được biểu diễn qua các động từ như: được tạo thành từ,
bao gồm…
- Hai lớp có quan hệ kế thừa nếu một lớp này là khái quát hoá (trừu tượng
hoá) của lớp kia.
- Hai lớp có quan hệ phụ thuộc nếu hoạt động của lớp này quyết định lớp kia.
Trong hệ thống quản lý thư viện, mối quan hệ giữa các lớp BanDoc và ThuThu
với lớp Nguoi là mối quan hệ kế thừa. Quan hệ giữa các lớp BanDoc và Sach với
lớp TheMuon là quan hệ kết hợp vì ta có thể biểu diễn các mối quan hệ này thông
qua các câu như: để mượn sách, bạn đọc cần dùng thẻ mượn, mỗi thẻ mượn có thể
mượn được một hay nhiều cuốn sách.
Xác định số lượng (multiplicities) trong mỗi mối quan hệ
Mỗi mối quan hệ trong sơ đồ lớp có thể có số lượng tương ứng ở đầu mỗi lớp. Số
lượng này xác định số thể hiện có thể có của lớp đó trong mối quan hệ với lớp kia.
Các kiểu biểu diễn số lượng được cho trong Bảng 4.2.
Số lượng Ý nghĩa
0..1 Không có hoặc có 1 thể hiện. Tương tự n . . m sẽ thể hiện có từ n
đến m thể hiện.
0..* hoặc * Không giới hạn số thể hiện của lớp (gồm cả giá trị 0).
89
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
1 Có chính xác 1 thể hiện
1..n Có ít nhất một thể hiện
Bảng 4.2: Các kiểu biểu diễn số lượng trong biểu đồ lớp
Xem xét sơ đồ lớp phân tích đã trình bày trong chương 3, trong quan hệ giữa lớp
BanDoc và lớp TheMuon, mỗi bạn đọc có thể có một hoặc nhiều thẻ mượn hoặc
cũng có thể không có thẻ mượn nào. Tuy nhiên, một thẻ mượn phải tương ứng với
một bạn đọc nào đó. Như vậy, số lượng trong quan hệ này sẽ là: 1 ở phía BanDoc
và 1..n ở phía TheMuon.
4.3.4 Hoàn chỉnh biểu đồ lớp chi tiết
Đây là bước cuối cùng của sơ đồ lớp. Trong bước này, người thiết kế phải thực
hiện các công việc sau:
Bổ sung các lớp còn thiếu. Trong pha phân tích, chúng ta đã xác định được các
lớp thực thể. Ở pha thiết kế, chúng ta cần tiếp tục xác định các lớp còn thiếu để
hoàn chỉnh sơ đồ lớp. Các lớp còn thiếu này thường thuộc một trong các dạng sau:
- Các lớp biên: là các lớp liên quan đến giao diện hệ thống, thực hiện
nhận thông tin từ người dùng và gửi đến các đối tượng bên trong hệ
thống. Gọi là các lớp biên vì các lớp này phân tách phần bên trong và
bên ngoài hệ thống. Thông thường, mỗi form nhận thông tin sẽ trở
thành một lớp nhưng cũng có trường hợp nhiều form tương tự nhau sẽ
được mô tả trong một lớp.
- Các lớp trung gian: giữa hai lớp có quan hệ m…n (nhiều thể hiện của
lớp này tương ứng với nhiều thể hiện của lớp kia), người ta thường
sinh ra thêm một lớp trung gian để chuyển quan hệ đó thành 2 quan hệ
dạng 1..n. Các lớp này cũng có thể đại diện cho một thực thể xác định
trong hệ thống nhưng cũng có thể không đại diện cho một thực thể xác
định nào. Trong trường hợp không đại diện cho thực thể xác định nào,
lớp trung gian sinh ra chỉ có tác dụng hỗ trợ cho quá trình lập trình và
sẽ được đặt tên theo một quy định chung nào đó mà nhóm phát triển
đưa ra.
- Các lớp trừu tượng: trong một số trường hợp, một số lớp có thể có các
thuộc tính chung hoặc phương thức chung. Khi đó, để tiện cho cài đặt,
90
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
người thiết kế có thể bổ sung thêm các lớp trừu tượng, tức là các lớp
không có đối tượng. Các lớp trừu tượng không đại diện cho một thực
thể tham gia trong hoạt động của hệ thống. Do vậy, các lớp này có thể
có dạng đặc biệt: hoặc chỉ có thuộc tính mà không có phương thức,
hoặc ngược lại, chỉ có phương thức mà không có thuộc tính.
- Các lớp điều khiển: Là các lớp chỉ làm nhiệm vụ điều khiển hoạt động
của hệ thống ứng với một chức năng nhất định. Thông thường, mỗi
use case phức tạp đều phải có một lớp điều khiển tương ứng. Lớp điều
khiển nhận thông tin từ các lớp biên (lớp giao diện), gửi yêu cầu đến
các lớp thực thể để thực thi chức năng mà nó đảm nhiệm rồi lại trả về
kết quả cho các lớp biên.
Hiệu chỉnh mô tả thuộc tính và phương thức theo đúng chuẩn của ngôn ngữ sẽ
sử dụng trong pha cài đặt hệ thống.
Kiểm thử tính đúng đắn của biểu đồ lớp. Người thiết kế có thể sử dụng một số
công cụ để kiểm tra tính đúng đắn của biểu đồ lớp, hoặc tiến hành thử sinh khung
mã theo ngôn ngữ đã chọn để kiểm tra và xác định lỗi trong biểu đồ lớp. Tuy
nhiên, những cách này chỉ giúp tìm ra các lỗi cú pháp. Muốn tìm được các lỗi về
ngữ nghĩa, người thiết kế phải xem xét lại tất cả các tài liệu của biểu đồ use case,
kịch bản, biểu đồ trạng thái, biểu đồ tương tác và biểu đồ động.
Hình 4.10 mô tả một biểu đồ lớp chi tiết cho hệ thống quản lý thư viện.
Trong biểu đồ này chưa xét đến các lớp giao diện (lớp biên) và chưa thể hiện các
đặc tả đầy đủ của các phương thức và thuộc tính. So với sơ đồ lớp phân tích, sơ đồ
lớp thiết kế cũng bổ sung thêm nhiều thuộc tính mới để chi tiết hoá các đối tượng.
91
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Thuthu
maThuthu : String
password : String
vaitro : String
getVaitro()
setVaitro()
xacthucThuthu()
thaydoiPassword()
Bandoc
maBandoc : string
lop : string
khoa : string
xacthucBandoc()
themBandoc()
capnhatBandoc()
xoaBandoc()
getMaBandoc()
thaydoiPassword()
Sach
maSach : string
tenSach : string
tacGia : string
nhaXB : string
phienban : string
danhmuc : string
namXB : int
soTrang : int
mota : memotext
soluong : int
ngayTao : Date
ngayCapnhat : Date
getTensach()
getMaSach()
timkiem()
themSach()
capnhatSach()
xoaSach()
getSachtheomuc()
getSachtheongay()
The muon
maThemuon : string
maBandoc : String
ngayMuon : Date
ngayTra_dukien : Date
dsMasach
ngaytra_Thucte : Date
tinhtrangHienthoi : String
getThemuon()
getBandoc()
capnhatThemuon()
xoaThemuon()
getSachmuontheothang()
getSachmuontheoten()
getSachmuontheongay()
themThemuon()
muonSach()
traSach()
1..n
1
1...1
Nguoi
ten : String
diachi : String
ngaysinh : Date
getTen()
setTen()
getDiachi()
setDiachi()
getNgaysinh()
setNgaysinh()
Hình 4.9: Biểu đồ lớp chi tiết cho bài toán Quản lý thư viện
Sau khi có sơ đồ lớp như trên, người thiết kế cần tiếp tục mở rộng sơ đồ lớp, bổ
sung các lớp biên và các lớp trung gian cho phù hợp với ngôn ngữ và môi trường
lập trình.
4.3 THIẾT KẾ CHI TIẾT
Sau khi hoàn thành biểu đồ lớp, bước thiết kế chi tiết là bước rất gần gũi với lập
trình cài đặt hệ thống. Nhiệm vụ của thiết kế chi tiết là:
• Xây dựng biểu đồ hoạt động để mô tả chi tiết các phương thức phức tạp
trong biểu đồ lớp. Biểu đồ động này sẽ là cơ sở để người lập trình cài đặt
chính xác phương thức.
• Xây dựng các bảng thiết kế chi tiết. Công việc này thường gắn liền với quá
trình lập kế hoạch và phân công công việc trong quá trình cài đặt hệ thống.
92
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Bảng thiết kế chi tiết của các lớp ngoài việc biểu diễn các thông tin về tên
lớp, các thuộc tính và các phương thức, các tham số, kiểu và giá trị trả về,
… còn cần chỉ rõ người chịu trách nhiệm cài đặt lớp (hay modul) đó và các
thông tin về thời gian yêu cầu.
Hai nhiệm vụ này sẽ được trình bày chi tiết trong hai phần tiếp theo của tài liệu.
4.3.1 Xây dựng biểu đồ hoạt động cho các phương thức
Biểu đồ hoạt động có thể được sử dụng cho nhiều mục đích khác nhau như:
• Để xác định các hành động phải thực hiện trong phạm vi một phương thức.
Đây là vai trò thường gặp nhất và quan trọng nhất của biểu đồ hoạt động.
• Để xác định công việc cụ thể của một đối tượng.
• Để chỉ ra một nhóm hành động liên quan được thực hiện như thế nào và
chúng sẽ ảnh hưởng đến những đối tượng nằm xung quanh.
Có thể xem biểu đồ hoạt động là một loại sơ đồ khối như mô tả thuật toán quen
thuộc. Điểm khác biệt là các sơ đồ khối bình thường chỉ được áp dụng đối với các
quá trình tuần tự, còn biểu đồ hoạt động có thể xử lý cả các quá trình song song.
Các phần tử mô hình UML cho biểu đồ hoạt động bao gồm:
• Hoạt động (Activity): là một quy trình được định nghĩa rõ ràng, có thể được
thực hiện bởi một hàm hoặc một nhóm đối tượng. Hoạt động được thể hiện
bằng hình chữ nhật bo tròn cạnh.
• Thanh đồng bộ hóa (Synchronisation bar): chúng cho phép ta mở ra hoặc là
đóng lại các nhánh chạy song song nội bộ trong tiến trình.
Hình 4.10: Thanh đồng bộ hoá trong biểu đồ động
• Điều kiện (Guard Condition): các biểu thức logic có giá trị hoặc đúng hoặc
sai. Điều kiện được thể hiện trong ngoặc vuông, ví dụ: [Customer existing].
• Các luồng (swimlane): Mỗi biểu đồ động có thể biểu diễn sự phối hợp hoạt
động trong nhiều lớp khác nhau. Khi đó mỗi lớp được phân tách bởi một
93
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
luồng riêng biệt. Các luồng này được biểu diễn đơn giản là các ô khác nhau
trong biểu đồ.
Hình 4.11 mô tả một biểu đồ hoạt động cho phương thức mượn sách trong lớp
TheMuon. Trong biểu đồ này, có thể thấy có hai thanh đồng bộ hóa tương ứng với
trạng thái chờ trong biểu đồ trạng thái. Ở đây, thanh đồng bộ thứ nhất sẽ chờ kết
quả kiểm tra các thông tin người dùng nhập vào, thanh thứ hai sẽ chờ các kết quả
kiểm tra liên quan đến điều kiện để có thể mượn sách.
Nhan thong tin
Sach muon
Kiem tra Ban
doc
Kiem tra thong
tin Sach
Gui yeu cau
Muon
Kiem tra so luon sach
Ban doc da muon
Kiem tra so luong
Sach con lai
Xac nhan cho
muon
In Phieu muon
Yeu cau nhap lai
Xac nhan dung
Yeu cau nhap lai
Xac nhan dung
Xac nhan quyen muon sach
Het quyen muon sach
Xac nhan du sach
Khong co hoac khong du sach
Hình 4.11: Biểu đồ hoạt động cho phương thức Mượn sách lớp Thẻ mượn
Vấn đề quan trọng còn lại trong việc xây dựng biểu đồ hoạt động là xác định
phương thức nào cần xây dựng trong biểu đồ hoạt động? Người thiết kế chỉ cần
xây dựng biểu đồ hoạt động cho những phương thức phức tạp hoặc có vai trò
94
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
quyết định tới hoạt động của hệ thống. Việc đánh giá một phương thức có phức
tạp hay không dựa theo các tiêu chí sau:
- Phương thức đó có cần xây dựng theo một thuật toán phức tạp hay không?
- Phương thức đó có tham chiếu tới nhiều phương thức của các lớp khác
trong quá trình hoạt động hay không và ngược lại kết quả của phương thức
đó có ảnh hưởng đến nhiều lớp khác hay không.
- Kết quả của phương thức đó có quyết định một chức năng (use case) cụ thể
nào của hệ thống hay không.
4.3.2 Xây dựng bảng thiết kế chi tiết
Bảng thiết kế chi tiết được thiết kế riêng cho từng lớp. Mỗi nhóm phát triển có thể
có một bảng thiết kế với cấu trúc riêng. Dưới đây là một mẫu bảng thiết kế tham
khảo.
Tên lớp
Người thiết kế
Người cài đặt
Thời gian
Tên thuộc tính Mô tả Kiểu Phạm vi
Thuoc_tinh_1
Thuoc_tinh_2
Tên phương thức Mô tả Giá trị trả về Phạm vi
Phuong_thuc_1
Phuong_thuc_2
Đoạn khung mã cho lớp
Bảng 4.3: Mẫu bảng thiết kế chi tiết lớp
95
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
4.4 BIỂU ĐỒ THÀNH PHẦN VÀ BIỂU ĐỒ TRIỂN KHAI
Sau khi đã hoàn thành biểu đồ lớp chi tiết và thiết kế chi tiết dựa trên biểu đồ hoạt
động, người thiết kế phải xác định rõ mô hình triển khai hệ thống và tiến hành sinh
khung mã để chuyển sang pha cài đặt. Nội dung bước này gồm các hoạt động sau:
• Xây dựng biểu đồ thành phần
• Xây dựng biểu đồ triển khai
• Sinh mã cho hệ thống
4.4.1 Xây dựng biểu đồ thành phần
Mô hình thành phần được sử dụng để biểu diễn các thành phần phần mềm cấu
thành nên hệ thống. Một hệ phần mềm có thể được xây dựng từ đầu bằng cách sử
dụng mô hình lớp như đã trình bày trong các phần trước của tài liệu, hoặc cũng có
thể được tạo nên từ các thành phần sẵn có. Mỗi thành phần có thể coi như một
phần mềm nhỏ hơn, cung cấp một khối dạng hộp đen trong quá trình xây dựng
phần mềm lớn. Nói cách khác, các thành phần là các gói được xây dựng cho quá
trình triển khai hệ thống. Các thành phần có thể là các gói ở mức cao như
JavaBean, các gói thư viện liên kết động dll, hoặc các phần mềm nhỏ được tạo ra
từ các thành phần nhỏ hơn như các lớp và các thư viện chức năng.
Hình 4.12 chỉ ra các thành phần có mặt trong hệ quản lý thư viện. Hệ thống
cần quản lý các thông tin liên quan đến sách và bạn đọc do vậy sẽ có hai thành
phần thực hiện các công việc này (Quản lý sách và Quản lý bạn đọc). Các thành
phần quản lý này sẽ thao tác trên CSDL của hệ thống nên chúng ta có thành phần
cài đặt CSDL. Ngoài ra hệ thống cũng cần một các thành phần giao tiếp với người
dùng gồm Giao diện bạn đọc và Giao diện thủ thư được cài đặt riêng trên các máy
client. Thông thường, biểu đồ thành phần thường kết hợp với biểu đồ triển khai để
trở thành một biểu đồ vật lý chung của cả hệ thống.
96
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Quan ly
sach
Quan ly
ban doc
Giao dien
ban doc
Giao dien
thu thu CSDL
Hình 4.12: Các thành phần của hệ thống quản lý thư viện
4.4.2 Xây dựng biểu đồ triển khai
Biểu đồ triển khai biểu diễn các nodes và các mối quan hệ giữa chúng. Thông
thường, các nodes được kết nối với nhau thông qua các liên kết truyền thông như
các kết nối mạng, liên kết TCP-IP, microwave…
Mối quan hệ giữa các node trong biểu đồ triển khai được biểu diễn thông qua
các liên kết truyền thông và được đánh số theo thứ tự thời gian tương tự như trong
biểu đồ cộng tác. Chú ý rằng các message truyền đi giữa các đỉnh có thể là các
luồng thông tin xác định hoặc cũng có thể là các đối tượng rời rạc, ví dụ như các
file, các thông tin yêu cầu…
Hình 4.13 biểu diễn biểu đồ triển khai cho hệ quản lý thư viện. Biểu đồ này
cho biết hệ thống sẽ được cài đặt trên ba dạng máy tính khác nhau: các máy client
dành cho thủ thư sẽ cài đặt thành phần giao diện thủ thư, quản lý sách, quản lý
bạn đọc; các máy client dành cho bạn đọc chỉ cài giao diện bạn đọc; CSDL và
thành phần điều khiển CSDL được cài trên một server chung gọi là Server.
97
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
May Thu thu Server
May Ban doc
TCP/IP
TCP/IP
Hình 4.13: Biểu đồ triển khai cho hệ quản lý thư viện
Các dạng liên kết truyền thông có thể có trong biểu đồ triển khai là:
- TCP/IP: sử dụng bộ giao thức TCP/IP để liên kết. Thông thường đây là các
ứng dụng dựa trên Web.
- SNA: cũng là ứng dụng dựa trên Web nhưng sử dụng bộ giao thức SNA.
- Microwave: sử dụng liên kết bằng sóng vô tuyến tần số cao.
- Hồng ngoại: sử dụng liên kết hồng ngoại.
- Giao thức không dây: liên kết sử dụng các dạng giao thức không dây khác.
Trong ví dụ Hình 4.13, các liên kết đều được thực hiện trên nền giao thức TCP/IP
thông qua kết nối mạng Internet hoặc kết nối mạng LAN nội bộ.
Ngoài các liên kết truyền thông thông thường, giữa các đỉnh còn có thể có
mối quan hệ dạng phụ thuộc. Mối quan hệ phụ thuộc sẽ được biểu diễn bởi các
mũi tên đứt nét với kiểu chính là dạng phụ thuộc giữa hai đỉnh (hoặc hai thành
phần). Kết quả của biểu đồ triển khai kết hợp với biểu đồ thành phần là một mô
hình triển khai hệ thống đầy đủ với các đỉnh, liên kết giữa các đỉnh và các thành
phần bên trong các đỉnh đó. Mô hình này được gọi chung là mô hình vật lý của hệ
thống và sẽ là cơ sở để cài đặt, tích hợp hệ thống cũng như triển khai hệ thống tới
người sử dụng.
98
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
4.4.3 Biểu diễn biểu đồ thành phần và biểu đồ triển khai trong Rational Rose
Biểu đồ thành phần được xây dựng trong Component View để biểu diễn các thành
phần trong hệ thống.
Các bước xây dựng biểu đồ thành phần trong Rational Rose:
B1. Thêm các thành phần: lựa chọn công cụ thành phần trong hộp công cụ và
kéo vào biểu đồ.
B2. Đặc tả các thành phần (thông thường chỉ mô tả tên)
B3. Biểu diễn các quan hệ giữa các thành phần (nếu có).
B4. Bổ sung các thành phần con (nếu có)
Một biểu đồ thành phần ví dụ và cửa sổ đặc tả thành phần được biểu diễn như
trong Hình 4.14.
Hình 4.14: Xây dựng biểu đồ thành phần
99
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
Biểu đồ triển khai được xây dựng trong Deployment View. Các công cụ chính để
xây dựng một biểu đồ triển khai trong Rational Rose là các Processcor, Device và
các Connection.
Các bước xây dựng biểu đồ triển khai trong Rational Rose:
B1. Thêm các Processor: lựa chọn công cụ processor trong hộp công cụ và kéo
vào biểu đồ.
B2. Thêm các Device: lựa chọn công cụ Device trong hộp công cụ và kéo vào
biểu đồ.
B3. Biểu diễn các quan hệ: lựa chọn công cụ protocol và kéo giữa các
processor hay device tương ứng.
Hình 4.15 biểu diễn một sơ đồ triển khai đơn giản trong đó có ba Processor đại
diện cho các máy tính có cài đặt hệ dịch vụ thư viện. Các thành phần của server sẽ
được cài đặt trong Library Server, phần giao diện với bạn đọc sẽ cài đặt trong
Student PC còn giao diện với các thủ thư sẽ cài đặt trong Librarian PC.
Hình 4.15: Xây dựng biểu đồ triển khai
100
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
TỔNG KẾT CHƯƠNG 4
Chương 4 đã trình bày các bước trong pha thiết kế hướng đối tượng. Các nội dung
cần nắm vững gồm:
• Pha thiết kế hướng đối tượng gồm 4 bước: xây dựng biểu đồ tương tác, xây
dựng biểu đồ lớp chi tiết, thiết kế chi tiết và xây dựng biểu đồ thành phần
và biểu đồ triển khai.
• Trong bước xây dựng biểu đồ tương tác, người thiết kế biểu diễn lại các use
case ứng với các đối tượng của các lớp đã xác định trong pha phân tích. Có
hai dạng biểu đồ tương tác là: biểu đồ tuần tự (nhấn mạnh đến thứ tự thời
gian các message) và biểu đồ cộng tác (nhấn mạnh đến vai trò của các đối
tượng trong tương tác).
• Bước xây dựng biểu đồ lớp chi tiết thực hiện bổ sung các lớp thiết kế (lớ
biên, lớp trung gian, lớp điều khiển …); xác định và mô tả chi tiết các
phương thức; và biểu diễn các quan hệ giữa các lớp. Kết quả của bước này
là một biểu đồ lớp thiết kế hoàn chỉnh.
• Bước thiết kế chi tiết tiến hành xây dựng biểu đồ hoạt động để biểu diễn
các phương thức phức tạp hoặc các hoạt động phối hợp nhiều đối tượng
thuộc nhiều lớp khác nhau. Tiếp theo, bước thiết kế chi tiết cũng xây dựng
bảng thiết kế chi tiết để phân công trách nhiệm cho các thành viên trong
nhóm phát triển.
• Bước xây dựng biểu đồ triển khai hệ thống tiến hành xác định các thành
phần, các giao thức mạng; quan tâm đến ngôn ngữ lập trình và môi trường
ứng dụng để xác định mô hình kiến trúc triển khai hệ thống.
Tài liệu cũng đã đưa ra những gợi ý, hướng dẫn và các chú ý cho từng bước
trong thiết kế hướng đối tượng.
101
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
CÂU HỎI – BÀI TẬP
A. CÂU HỎI
1. Phân biệt sự khác nhau giữa biểu đồ trạng thái cho một use case và biểu đồ
trạng thái hệ thống
2. Biểu đồ tương tác dùng đề làm gì.
3. Phân biệt hai kiểu biểu đồ tương tác: biểu đồ tuần tự và biểu đồ cộng tác
4. Một liên kết trong biểu đồ cộng tác biểu diễn cái gì
5. Biểu đồ hoạt động dùng để làm gì
6. Một hoạt động trong biểu đồ hoạt động mô tả cái gì
7. Một chuyển tiếp trong biểu đồ hoạt động biểu diễn cái gì.
8. Phân biệt các kiểu lớp: lớp thực thể, lớp biên, lớp điều khiển, lớp trừu
tượng.
B. BÀI TẬP
1. Các biểu đồ tương tác được xây dựng chủ yếu dựa trên nguồn nào sau đây:
A. Biểu đồ trạng thái
B. Các biểu đồ use case
C. Biểu đồ lớp
D. Biểu đồ hoạt động
2. Để xem xét hoạt động của hệ thống có sự phối hợp của các đối tượng hoặc
trong vòng đời của một đối tượng, ta có thể dùng các biểu đồ nào sau đây (Chọn 2)
A. Biểu đồ lớp
B. Biểu đồ use case
C. Biểu đồ trạng thái
D. Biểu đồ hoạt động
3. Để mô tả các thành phần (hoặc các đối tượng) của hệ thống được đặt ở đâu
trong môi trường vật lý, chúng ta dùng biểu đồ nào sau đây:
A. Biểu đồ hoạt động
B. Biểu đồ trạng thái
C. Biểu đồ thành phần
D. Biểu đồ triển khai
102
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
4. Biểu đồ tuần tự (sequence diagram) nào sau đây là không phù hợp nếu nó nằm
trong cùng mô hình với biểu đồ họat động đã cho. Giải thích.
5. Cho biểu đồ gói như hình vẽ. Các hàm trong lớp Dog muốn tham chiếu đến lớp
Shark thì dùng cú pháp nào sau đây (trong C++):
103
CHƯƠNG 4: THIẾT KẾ HƯỚNG ĐỐi TƯỢNG
A. animals::fish::Shark
B. fish::Shark
C. animals::Shark
D. Không tham chiếu được đến lớp Shark
104
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
PHỤ LỤC
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
THƯ VIỆN ĐIỆN TỬ
Hệ thống quản lý thư viện đã được giới thiệu và sử dụng làm các ví dụ trong
chương 3 và 4 của tài liệu. Trong phần phụ lục này, tài liệu sẽ trình bày chi tiết các
vấn đề liên quan đến hệ thống, xác định đầy đủ yêu cầu hệ thống và các biểu đồ
UML trong quá trình phân tích thiết kế hệ thống.
Trong pha thiết kế, sau pha xây dựng biểu đồ lớp thiết kế , hệ thống sẽ được
thiết kế theo từng chức năng (các use case) trong đó mỗi chức năng được thiết kế
gồm các thành phần: giao diện của chức năng đó, lớp điều khiển và lớp thực thể.
1. GIỚI THIỆU HỆ THỐNG
1.1 Hoạt động nghiệp vụ thư viện
Theo nghiệp vụ quản lý thư viện thông thường, hoạt động thư viện của một trường
đại học có thể được tóm tắt như sau:
- Thư viện làm các phích sách gồm các thông tin: mã số sách, tên tác giả, tên
sách, nhà xuất bản, năm xuất bản, số trang, tóm tắt nội dung, số bản. Các
phích sách có thể được phân theo chuyên ngành hoặc loại tài liệu.
- Mỗi sinh viên được cấp một thẻ thư viện gồm các thông tin: tên, tuổi, địa
chỉ, lớp, chuyên ngành. Sinh viên muốn mượn sách thì tra cứu phích sách
rồi ghi vào phiếu mượn.
- Ví dụ một phiếu mượn có thể có dạng như sau:
Số phiếu mượn:
Số thẻ TV: Thuộc đơn vị:
Ngày mượn: Ngày hẹn trả:
Số hiệu sách Tên sách:
Ngày trả: Tình trạng:
105
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
- Sau khi kiểm tra đầy đủ thông tin trên phiếu mượn, thủ thư kiểm tra điều
kiện mượn của sinh viên và xác nhận cho phép mượn sách. Một số thông
tin trong phiếu mượn được lưu lại để quản lý, phiếu mượn sẽ được gài vào
chỗ sách được lấy đi, sách được giao cho sinh viên.
- Khi sinh viên trả sách: Từ thẻ sinh viên, xác đinh phiếu mượn, việc trả sách
được ghi nhận vào dòng ngày trả và tình trạng. Phiếu mượn được lưu lại để
quản lý và theo dõi.
- Sinh viên trả muộn hơn ngày hẹn trả sẽ bị phạt
1.2 Yêu cầu hệ thống
Hệ thống quản lý thư viện được xây dựng nhằm mục đích giải quyết các yêu cầu
sau:
1. Giúp sinh viên tra cứu sách theo chuyên ngành, theo chủ đề, theo tên sách,
theo tên tác giả, … trên các máy tính trạm.
2. Cung cấp cho thủ thư các thông tin về các đầu sách một sinh viên đang
mượn và hạn phải trả và các cuốn sách còn đang được mượn.
3. Thống kê hàng tháng số sách cho mượn theo các chủ đề, tác giả … Thống
kê các đầu sách không có người mượn trên 1 năm, 2 năm, 3 năm.
4. Hỗ trợ thủ thư cập nhật thông tin sách, xác nhận cho mượn sách và nhận lại
sách khi sinh viên trả sách.
5. Hỗ trợ quản lý các thông tin về sinh viên dựa trên thẻ thư viện, thông tin thẻ
mượn.
6. Hỗ trợ chức năng quản trị chung hệ thống (admin) trong đó người quản trị
chung có thể thay đổi thông tin hoặc thêm bớt các thủ thư.
Các yêu cầu phi chức năng:
1. Hệ thống triển khai theo dạng Website trên hệ thống mạng nội bộ của trường
2. Sinh viên có thể tra cứu thông tin sách trên môi trường mạng. Tuy nhiên
việc mượn và trả sách phải thực hiện trực tiếp trên Thư viện. Thủ thư sử
dụng hệ thống để cập nhật và quản lý quá trình mượn trả sách.
3. Thông tin thống kê phải đảm bảo tính chính xác, khách quan. Các hình thức
phạt với các sinh viên quá hạn sẽ được lưu lại và thông báo cho sinh viên
biết.
106
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
2 PHA PHÂN TÍCH
21 Xây dựng biểu đồ use case
a) Biểu đồ use case tổng quát
Dựa trên các yêu cầu như trên, biểu đồ use case tổng quát của hệ thống sẽ mở rộng
từ biểu đồ use case đã trình bày trong Chương 3. Biểu đồ này được biểu diễn trong
Hình P.1.
He_Thong TVDT
Ban docQuan ly muon-tra sach
Thong ke
Timkiem
Thu thu Cap nhatDangNhap
>
>
>
Hình P.1: Biểu đồ use case tổng quát của hệ thống
b) Phân rã biểu đồ use case
• Phân rã use case Cập nhật
Quá trình phân rã use case Cập nhật hoàn toàn tương tự như đã trình bày trong
chương 3 của tài liệu.
107
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
Hình P.2: Phân rã use case cập nhật
108
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
• Phân rã use case Quản lý mượn trả sách
Use case quản lý mượn – trả sách được thực hiện bởi thủ thư và có thể được
phân rã thành hai use case nhỏ là Quản lý mượn và Quản lý trả (Hình P.3).
Quan ly muon-tra sach
(from Use Case View)
Quan ly muon
Quan ly tra
>
>
Hình P.3: Phân rã use case Quản lý mượn trả sách
• Phân rã use case Thống kê
Use case thống kê có thể được phân rã thành hai use case nhỏ hơn là:
- Thống kê thông tin bạn đọc: cho biết danh sách các bạn đọc đang mượn
sách, các bạn đọc quá hạn.
- Thống kê thông tin sách mượn: cho biết danh mục các cuốn sách đang được
mượn, các cuốn sách lâu ngày không có ai mượn …
Thong ke
(from Use Case View)
Thong ke thong tin ban doc
Thong ke thong tin sach muon
>
>
Hình P.3: Phân rã use case Thống kê
109
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
2.2 Xây dựng biểu đồ lớp phân tích
Biểu đồ lớp phân tích được xây dựng hoàn toàn tượng tự như đã trình bày trong
chương 3 của tài liệu này.
Thuthu
maThuthu : String
password : String
vaitro : String
getVaitro()
setVaitro()
Bandoc
maBandoc : string
lop : string
khoa : string
Sach
maSach : string
tenSach : string
tacGia : string
nhaXB : string
phienban : string
danhmuc : string
namXB : int
soTrang : int
mota : memotext
soluong : int
ngayTao : Date
ngayCapnhat : Date
getTensach()
getMaSach()
Themuon
maThemuon : string
maBandoc : String
ngayMuon : Date
ngayTra_dukien : Date
dsMasach
ngaytra_Thucte : Date
tinhtrangHienthoi : String
getThemuon()
getBandoc()
Nguoi
ten : String
diachi : String
ngaysinh : Date
getTen()
setTen()
getDiachi()
setDiachi()
getNgaysinh()
setNgaysinh()
1
1..n
1...
1
Hình P.4: Biểu đồ lớp phân tích của hệ thống
2.3 Biểu đồ trạng thái
Phần này trình bày hai biểu đồ trạng thái cho lớp Thẻ mượn (tương ứng với hai
chức năng mượn sách và trả sách).
110
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
Hình P.5: Biểu đồ trạng thái lớp Thẻ mượn - chức năng mượn sách
Hình P.6: Biểu đồ trạng thái lớp Thẻ mượn - chức năng trả sách
3. PHA THIẾT KẾ
Trong phần này, tài liệu sẽ trình bày các biểu đồ UML được xây dựng trong pha
thiết kế hệ thống Quản lý thư viện. Sau khi xây dựng các biểu đồ tương tác (dạng
tuân tự), pha thiết kế sẽ đưa ra biểu đồ lớp thiết kế. Tuy nhiên trong biểu đồ lớp
này chưa bổ sung các lớp giao diện và điều khiển. Phần 3.3 sẽ trình bày thiết kế
111
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
chi tiết theo từng chức năng trong đó mỗi chức năng có một (hoặc nhiều) lớp giao
diện và một (hoặc nhiều) lớp điều khiển cùng với các lớp thực thể tương ứng.
3.1 Các biểu đồ tuần tự
Trong hệ thống quản lý thư viện, chúng ta lựa chọn biểu đồ tương tác dạng tuần tự
để biểu diễn các tương tác giữa các đối tượng. Để xác định rõ các thành phần cần
bổ sung trong biểu đồ lớp, trong mỗi biểu đồ tuần tự của hệ thống quản lý thư viện
sẽ thực hiện:
- Xác định rõ kiểu của đối tượng tham gia trong tương tác (ví dụ giao diện,
điều khiển hay thực thể).
- Mỗi biểu đồ tuần tự có thể có ít nhất một lớp giao diện (Form) tương ứng
với chức năng (use case) mà biểu đồ đó mô tả
- Mỗi biểu đồ tuần tự có thể liên quan đến một hoặc nhiều đối tượng thực thể.
Các đối tượng thực thể chính là các đối tượng của các lớp đã được xây
dựng trong biểu đồ thiết kế chi tiết.
Dưới đây là một số biểu đồ tuần tự cho các chức năng của hệ thống:
a) Biểu đồ tuần tự cho chức năng Đăng nhập
112
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
: Thu thu : FormDangNhap : DK_Dangnhap : Thuthu
Nhap Username va Password
Kiem tra User
Kiem tra
Xac thuc thanh cong
Xac thuc thanh cong
Thong bao dang nhap thanh cong
Chon thay doi Password
Thay doi Password
Thay doi Password
Xac nhan thay doi thanh cong
Xac nhan thay doi thanh cong
Thong bao thay doi thanh cong
Nhap va xac nhan Password moi
Hien chuc nang doi Password
Hình P.7: Biểu đồ tuần tự cho chức năng Đăng nhập
b) Biểu đồ tuần tự cho chức năng Tìm kiếm
113
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
: Ban doc : FormTimKiem : DK_Timkiem : Sach : FormKQTimkiem
Chon chuc nang Tim kiem
Yeu cau tim kiem
Xu ly tu khoa Tim kiem
Tao cau truy van SQL
Thuc hien Tim kiem
Tra ve Ket qua Tim kiem
Thong bao ket qua
Hien thi ket qua tim kiem
Hien thi ket qua Tim kiem
Hien danh muc chuc nang Tim kiem
Nhap dieu kien Tim kiem
Hình P.8: Biểu đồ tuần tự cho chức năng Tìm kiếm
c) Biểu đồ tuần tự cho chức năng Quản lý mượn sách
114
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
: Ban doc : Thu thu : FormMuonSach : DK_MuonSach : Bandoc : Sach : TheMuon
Gui thong tin y eu cau muon
Mo f orm Muon sach
Nhap thong tin muon sach v a Ban doc
Xac thuc ban doc
Xac thuc ban doc
Xac thuc thanh cong
Xac thuc thong tin sach
Xac nhan con sach trong thu v ien
Tao the muon moi
Tra the muon
Tra the muon v a sach
Tao the muon moi
Hien thi the muon
Xac thuc thong tin sach
Xac nhan con sach trong Thu v ien
Hình P.9: Biểu đồ tuần tự cho chức năng Quản lý mượn sách
d) Biểu đồ tuần tự cho chức năng Quản lý trả sách
115
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
: FormTraSach : DK_MuonSach : TheMuon : Bandoc
Gui thong tin the muon
Yeu cau tra sach
Nhap thong tin
Yeu cau xac nhan thong tin
Xac nhan thong tin Sach trong the muon
Xac nhan dung
Xac nhan ban doc
Xac nhan thanh cong
Xac nhan dung
Xac nhan da tra sach
Cap nhat thong tin the (da tra)
Xac nhan dung
Hình P.10: Biểu đồ tuần tự cho chức năng Quản lý trả sách
e) Biểu đồ tuần tự cho chức năng Thống kê thông tin sách
116
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
: Thu thu : FormThongkeSach : DK_ThongkeSach : FormKQThongkeSach : TheMuon : Sach
Chon thong ke s...
Chon thong ke sach muon theo Nhom s...
Hien thi danh muc chuc nang thong ke s...
Chon thong ke sach theo th...
Yeu cau thong ke sach muon theo th...
Yeu cau thong ke sach muon theo N...
Hien thi danh s...
Hien thi danh muc sach muon theo th...
Truy v an thong tin sach muon theo th...
Yeu cau hien thi danh muc theo ten s...
Truy v an thong tin sach muon theo n...
Thong bao ket ...
Thong bao ket ...
Hình P.11: Biểu đồ tuần tự cho chức năng Thống kê thông tin sách
f) Biểu đồ tuần tự cho chức năng Thống kê thông tin bạn đọc
117
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
: FormThongkeBandoc : DK_ThongkeBandoc : TheMuon
Chon thong ke Ban doc qua han
Yeu cau thong tin ban doc qua han
Truy van thong tin ban doc qua han
Thong bao ket qua
Hien thi Form Thong ke Ban doc
Chon thong ke danh sach ban doc
Yeu cau dua ra danh sach ban doc
Truy van danh sach ban doc
Chon chuc nang Thong ke ban doc
Tra ket qua Danh sach Ban doc
Hien thi Danh sach ban doc
Hien thi danh sach ban doc
Tra danh sach an doc qua han
Tra danh sach ban doc qua han
Hình P.12: Biểu đồ tuần tự cho chức năng Thống kê thông tin bạn đọc
3.2 Biểu đồ lớp chi tiết
Dựa trên biểu đồ lớp trong pha phân tích và các biểu đồ trạng thái, biểu đồ tuần tự,
biểu đồ lớp thiết kế được xây dựng như trong Hình P.13. Biểu đồ lớp thiết kế bổ
sung nhiều thuộc tính và phương thức so với biểu đồ lớp phân tích.
118
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
Thuthu
maThuthu : String
password : String
vaitro : String
getVaitro()
setVaitro()
xacthucThuthu()
thaydoiPassword()
Bandoc
maBandoc : string
lop : string
khoa : string
xacthucBandoc()
themBandoc()
capnhatBandoc()
xoaBandoc()
getMaBandoc()
thaydoiPassword()
Sach
maSach : string
tenSach : string
tacGia : string
nhaXB : string
phienban : string
danhmuc : string
namXB : int
soTrang : int
mota : memotext
soluong : int
ngayTao : Date
ngayCapnhat : Date
getTensach()
getMaSach()
timkiem()
themSach()
capnhatSach()
xoaSach()
getSachtheomuc()
getSachtheongay()
The muon
maThemuon : string
maBandoc : String
ngayMuon : Date
ngayTra_dukien : Date
dsMasach
ngaytra_Thucte : Date
tinhtrangHienthoi : String
getThemuon()
getBandoc()
capnhatThemuon()
xoaThemuon()
getSachmuontheothang()
getSachmuontheoten()
getSachmuontheongay()
themThemuon()
muonSach()
traSach()
1..n
1
1...1
Nguoi
ten : String
diachi : String
ngaysinh : Date
getTen()
setTen()
getDiachi()
setDiachi()
getNgaysinh()
setNgaysinh()
Hình P.13: Biểu đồ lớp thiết kế
3.3 Thiết kế riêng từng chức năng
Với mỗi chức năng, pha thiết kế sẽ xác định:
- Các lớp giao diện tương ứng
- Lớp điều khiển
- Lớp thực thể
- Các mối quan hệ giữa các lớp trên trong chức năng đó
a) Chức năng Đăng nhập
119
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
Thuthu
maThuthu : String
password : String
vaitro : Integer
xacthucThuthu()
thaydoiPassword()
getVaitro()
(f rom Thuc the)
DK_Dangnhap
maLoi : int
xacthuThuthu()
getMessageLoi()
getMaLoi()
thaydoiPassword()
(f rom Dieu khien)
FormDangnhap
dangnhap()
thaydoiPassword()
(f rom Giao dien)
Hình P.14: Thiết kế lớp cho chức năng Đăng nhập
b) Chức năng Tìm kiếm
Sach
maSach : Long
tenSach : String
tacGia : String
nhaXB : String
phienban : String
danhmuc : String
namXB : Date
soTrang : Integer
mota : Text
ngayTao : Date
ngayCapnhat : Date
soluong : Integer
getMaSach()
getTensach()
timkiem()
themSach()
getSach()
getSachtheomuc()
getSachtheongay()
capnhatSach()
xoaSach()
(f rom Thuc the)
DK_Timkiem
dsTieuchiTK
dsThuoctinhTK
dsThaotac
dsKQTimkiem
dinhdangSQL()
xulyTukhoa()
getKQTimkiem()
timSach()
setTieuchiTK()
(f rom Dieu khien)
FormKQTimkiem
hienthiSach()
henthiKQChitiet()
sapxep()
(f rom Giao dien)
FormTimkiemSach
timkiem()
hienthiKQTimkiem()
(f rom Giao dien)
>
Hình P.15: Thiết kế lớp cho chức năng Tìm kiếm
120
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
c) Chức năng Quản lý mượn sách
FormMuonsach
muonSach()
xemThemuon()
inThemuon()
(from Giao dien)
Sach
maSach : Long
tenSach : String
tacGia : String
nhaXB : String
phienban : String
danhmuc : String
namXB : Date
soTrang : Integer
mota : Text
ngay Tao : Date
ngay Capnhat : Date
soluong : Integer
getMaSach()
getTensach()
timkiem()
themSach()
getSach()
getSachtheomuc()
getSachtheongay ()
capnhatSach()
xoaSach()
(from Thuc the)
Bandoc
maBandoc : String
lop : String
khoa : String
xacthucBandoc()
themBandoc()
xoaBandoc()
capnhatBandoc()
getMaBandoc()
thay doiPassword()
(from Thuc the)
DK_Timkiem
dsTieuchiTK
dsThuoctinhTK
dsThaotac
dsKQTimkiem
dinhdangSQL()
xuly Tukhoa()
getKQTimkiem()
timSach()
setTieuchiTK()
(from Dieu khien)
Themuon
maThemuon : Long
maBandoc : String
ngay Muon : Date
ngay tra_Dukien : Date
dsMasach_muon
ngay tra_Thucte : Date
tinhtrangHienthoi : String
capnhatThemuon()
xoaThemuon()
getThemuon()
getBandoc()
getSachmuontheothang()
getSachmuontheoten()
getSachmuontheongay ()
themThemuon()
(from Thuc the)
DK_MuonSach
dsSachmuon
maBandoc
taoThemuon()
xacthucBandoc()
xacthucSach()
getThemuon()
do_Muonsach()
setDS_Sachmuon()
setMaBandoc()
(from Dieu khien)
Hình P.16: Thiết kế lớp cho chức năng Quản lý mượn sách
d) Chức năng Quản lý trả sách
121
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
FormTrasach
traSach()
huyThemuon()
(f rom Giao dien)
Bandoc
maBandoc : String
lop : String
khoa : String
xacthucBandoc()
themBandoc()
xoaBandoc()
capnhatBandoc()
getMaBandoc()
thaydoiPassword()
(f rom Thuc the)
DK_MuonSach
dsSachmuon
maBandoc
taoThemuon()
xacthucBandoc()
xacthucSach()
getThemuon()
do_Muonsach()
setDS_Sachmuon()
setMaBandoc()
(f rom Dieu khien)
Themuon
maThemuon : Long
maBandoc : String
ngayMuon : Date
ngaytra_Dukien : Date
dsMasach_muon
ngaytra_Thucte : Date
tinhtrangHienthoi : String
capnhatThemuon()
xoaThemuon()
getThemuon()
getBandoc()
getSachmuontheothang()
getSachmuontheoten()
getSachmuontheongay()
themThemuon()
(f rom Thuc the)
Hình P.17: Thiết kế lớp cho chức năng Quản lý trả sách
e) Chức năng Thống kê thông tin sách
122
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
FormKQThongkeSach
(f rom Giao dien)
FormThongkeSach
getDSSachmuon()
(f rom Giao dien)
>
Themuon
maThemuon : Long
maBandoc : String
ngayMuon : Date
ngaytra_Dukien : Date
dsMasach_muon
ngaytra_Thucte : Date
tinhtrangHienthoi : String
capnhatThemuon()
xoaThemuon()
getThemuon()
getBandoc()
getSachmuontheothang()
getSachmuontheoten()
getSachmuontheongay()
themThemuon()
(f rom Thuc the)
Sach
maSach : Long
tenSach : String
tacGia : String
nhaXB : String
phienban : String
danhmuc : String
namXB : Date
soTrang : Integer
mota : Text
ngayTao : Date
ngayCapnhat : Date
soluong : Integer
getMaSach()
getTensach()
timkiem()
themSach()
getSach()
getSachtheomuc()
getSachtheongay()
capnhatSach()
xoaSach()
(f rom Thuc the)
DK_ThongkeSach
getSachmuontheoThang()
getSachmuontheoChude()
getSachmuontheoTG()
getSachmuontheongay()
(f rom Dieu khien)
Hình P.18: Thiết kế lớp cho chức năng Thống kê thông tin sách
3.4 Biếu đồ hoạt động
Vì đa số các chức năng (các hàm) thiết kế đều tương đối rõ ràng nên hệ thống
quản lý thư viện không cần xây dựng nhiều biểu đồ hoạt động. Phần này chỉ trình
bày ví dụ một biểu đồ hoạt động đơn giản của chức năng mượn sách (trong lớp
Thẻ mượn).
123
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
Nhan thong tin
Sach muon
Kiem tra Ban
doc
Kiem tra thong
tin Sach
Gui yeu cau
Muon
Kiem tra so luon sach
Ban doc da muon
Kiem tra so luong
Sach con lai
Xac nhan cho
muon
In Phieu muon
Yeu cau nhap lai
Xac nhan dung
Yeu cau nhap lai
Xac nhan dung
Xac nhan quyen muon sach
Het quyen muon sach
Xac nhan du sach
Khong co hoac khong du sach
Hình P.19: Biểu đồ hoạt động của chức năng mượn sách
3.5 Biểu đồ triển khai hệ thống
Hệ thống được triển khai dưới dạng Website và cài đặt khác nhau trên các máy
Client cho thủ thư và cho sinh viên. Biểu đồ triển khai hệ thống được mô tả đơn
giản như dưới đây:
124
PHỤ LỤC: PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ
May Thu thu Server
May Ban doc
TCP/IP
TCP/IP
Hình P.20: Biểu đồ triển khai hệ thống
125
GỢI Ý TRẢ LỜI CÁC BÀI TẬP
GỢI Ý TRẢ LỜI CÁC BÀI TẬP
CHƯƠNG 3
Bài 1. B
Bài 2. Quan hệ cộng hợp (Composition) vì Address là một thành phần của lớp
Employee.
Bài 3. Quan hệ phụ thuộc.
Bài 4. b
a->e->b
a->d
Bài 5. D
Bài 6. C
Bài 7. A
CHƯƠNG 4
Bài 1. B
Bài 2. C, D
Bài 3. D
Bài 4. B (Vì hàm print() không phải là phương thức của đối tượng b)
Bài 5. A
126
TÀI LIỆU THAM KHẢO
TÀI LIỆU THAM KHẢO
[1] Nguyễn Văn Ba, “Phát triển hệ thống hướng đối tượng với UML 2.0 và
C++”, Nhà xuất bản Đại học Quốc gia Hà Nội, 2005.
[2] Dương Anh Đức, “Bài giảng Phân tích thiết kế hướng đối tượng sử dụng
UML”, Đại học KHTN - Đại học Quốc gia TP. HCM, 9-2000.
[3] Đặng Văn Đức, “Phân tích thiết kế hướng đối tượng bằng UML”, Nhà xuất
bản Giáo dục – 2001.
[4] M. Fowler and K. Scott, “UML Distilled Second Edition – A Brief Guide to
the Standard Object Modelling Langguage”, Addison Wesley Book, August
18, 1999.
[5] L. Mathiassen, A. Munk-Madsen, P.A. Nielsen, J. Stage, “ObjectOriented
Analysis&Design (OOA&D) – Concept, Principles & Methodology”, 2004.
[6] R. LeMaster, D. Lebrknight, “Object-Oriented Programming & Design”,
CSCI 4448, University of Colorado, 2002.
[7] J. Jumbaugh, I. Jacobson, G. Booch, “The Unified Modelling Language
Reference Manual”, 1999.
[8] G. Sparks, “An Introduction to modelling software systems using the Unified
Modelling Language”, 2000.
[9] S. Sendall and A. Strhomeier, “Requirements Analysis with Use Case”, 2001
[10] Sun Microsystems, “Object-Oriented Application Analysis and Design for
Java Technology (UML) – Student Guide”, Revision B, March 2000.
[11] The OMG Object Management Group, “OMG Unified Modeling Language
Specification Version 1.5”, March 2003
[12] “UML Notion Guide”,
online at
127
Các file đính kèm theo tài liệu này:
- giao trinh phan_tich_thiet_ke_he_thong_thong_tin.pdf