Giáo trình Phân tích thiết kế hệ thống thông tin - Trần Đình Quế

MỤC LỤC

MỤC LỤC. ii

LỜI NÓI ĐẦU. 1

CHƯƠNG 1 MỞ ĐẦU. 3

1.2 KHÁI QUÁT VÒNG ĐỜI PHÁT TRIỂN HỆ THỐNG THÔNG TIN.4

1.3 CÁC CÁCH TIẾP CẬN PHÂN TÍCH THIẾT KẾ HỆ THỐNG.7

1.3.1 Phương pháp hướng cấu trúc.8

1.3.2 Phương pháp hướng đối tượng.9

1.5 CÁC KHÁI NIỆM CƠ BẢN CỦA HƯỚNG ĐÓI TƯỢNG.10

1.6 CÁC BƯỚC PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG.11

TỔNG KẾT CHƯƠNG 1.13

CÂU HỎI VÀ BÀI TẬP.13

CHƯƠNG 2 : UML VÀ CÔNG CỤ PHÁT TRIỂN HỆ THỐNG. 15

2.1 GIỚI THIỆU VỀ UML .15

2.1.1 Lịch sử ra đời của UML.15

2.1.2 UML – Ngôn ngữ mô hình hoá hướng đối tượng.16

2.1.3 Các khái niệm cơ bản trong UML.17

2.2 CÁC BIỂU ĐỒ UML .20

2.2.1 Biểu đồ use case.22

2.2.2 Biểu đồ lớp.24

2.2.3 Biểu đồ trạng thái .30

2.2.4 Biểu đồ tương tác dạng tuần tự .33

2.2.5 Biểu đồ tương tác dạng cộng tác .35

2.2.6 Biểu đồ hoạt động .36

2.2.7 Biểu đồ thành phần .39

2.2.8 Biểu đồ triển khai hệ thống.40

2.3 GIỚI THIỆU CÔNG CỤ RATIONAL ROSE.41

TỔNG KẾT CHƯƠNG 2.44

CÂU HỎI – BÀI TẬP .45

CHƯƠNG 3: PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG. 46

3.1 TỔNG QUAN VỀ PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG .46

3.1.1 Vai trò của pha phân tích .46

3.1.2 Các bước phân tích hướng đối tượng .47

3.1.3 Ví dụ.47

3.2 MÔ HÌNH USE CASE VÀ KỊCH BẢN.48

3.2.1 Vai trò của mô hình use case.48

3.2.2 Xây dựng biểu đồ use case.50

3.2.3 Xây dựng biểu đồ use case trong Rational Rose .57

3.3 MÔ HÌNH LỚP .63

3.3.1 Vấn đề xác định lớp .63

3.3.2Xây dựng biểu đồ lớp trong pha phân tích.65

3.3.3Biểu diễn biểu đồ lớp trong Rational Rose.67

3.4 MÔ HÌNH ĐỘNG DỰA TRÊN BIẺU ĐỒ TRẠNG THÁI.71

3.4.1 Khái quát về mô hình động .71

ii3.4.3 Xây dựng biểu đồ trạng thái.74

3.4.3 Biểu diễn biểu đồ trạng thái trong Rational Rose.75

TỔNG KẾT CHƯƠNG 3.78

CÂU HỎI – BÀI TẬP .79

CHƯƠNG 4: PHA THIẾT KẾ HƯỚNG ĐỐI TƯỢNG . 83

4.1 TỔNG QUAN VỀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG .83

4.1.1 Vai trò của pha thiết kế.83

4.1.2 Các bước thiết kế hướng đối tượng.84

3.2 CÁC BIỂU ĐỒ TƯƠNG TÁC.84

4.2.2 Xây dựng biểu đồ tuần tự.84

4.2.3 Xây dựng biểu đồ cộng tác .88

4.2.4 Biểu diễn các biểu đồ tương tác trong Rational Rose.89

4.3 BIỂU ĐỒ LỚP CHI TIẾT.91

4.3.1 Xác định các phương thức cho mỗi lớp .91

4.3.2 Xác định mối quan hệ giữa các lớp.92

4.3.4 Hoàn chỉnh biểu đồ lớp chi tiết.93

4.3 THIẾT KẾ CHI TIẾT.95

4.3.1 Xây dựng biểu đồ hoạt động cho các phương thức.96

4.3.2 Xây dựng bảng thiết kế chi tiết.98

4.4 BIỂU ĐỒ THÀNH PHẦN VÀ BIỂU ĐỒ TRIỂN KHAI.99

4.4.1 Xây dựng biểu đồ thành phần.99

4.4.2 Xây dựng biểu đồ triển khai .100

4.4.3 Biểu diễn biểu đồ thành phần và triển khai trong Rational Rose.102

TỔNG KẾT CHƯƠNG 4.104

CÂU HỎI – BÀI TẬP .104

PHỤ LỤC PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƯ VIỆN ĐIỆN TỬ . 108

1. GIỚI THIỆU HỆ THỐNG .108

1.1 Hoạt động nghiệp vụ thư viện .108

1.2 Yêu cầu hệ thống .109

2 PHA PHÂN TÍCH .110

21 Xây dựng biểu đồ use case.110

2.2 Xây dựng biểu đồ lớp phân tích .113

2.3 Biểu đồ trạng thái .113

3. PHA THIẾT KẾ .114

3.1 Các biểu đồ tuần tự.115

3.2 Biểu đồ lớp chi tiết .121

3.3 Thiết kế riêng từng chức năng .122

3.4 Biếu đồ hoạt động .126

3.5 Biểu đồ triển khai hệ thống.127

GỢI Ý TRẢ LỜI CÁC BÀI TẬP . 129

TÀI LIỆU THAM KHẢO . 133

pdf138 trang | Chuyên mục: Phân Tích Thiết Kế Hệ Thống | Chia sẻ: yen2110 | Lượt xem: 834 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Phân tích thiết kế hệ thống thông tin - Trần Đình Quế, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
heothang()
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 
122 
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 
123 
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 
124 
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 
125 
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). 
126 
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: 
127 
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
128 
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 
Bài 6. 
class Nguoi{ 
 private: 
 char ten[40]; 
 char gioi; 
 int tuoi, chieucao, cannang; 
 void setTen(char *s) {strcpy(ten,s);} 
 void setTuoi(int a){tuoi=a;} 
 void setGioi(char s){gioi=s;} 
129 
GỢI Ý TRẢ LỜI CÁC BÀI TẬP 
 public: 
 Nguoi(char *ten, char s, int a ){ 
 setTen(ten); setTuoi(a); setGioi(s); 
 } 
 ~Nguoi(){} 
}; 
class Nhanvien: public Nguoi{ 
 private: int luong; 
 public: 
 Nhanvien(char *n, char s, int a, int l=0):Nguoi(n.s,a){ 
 luong =l; 
 } 
} 
Bài 7. 
class Nguoi{ 
 private: 
 char ten[40]; 
 char gioi; 
 int tuoi, chieucao, cannang; 
 Nguoi* vochong; 
 void setTen(char *s) {strcpy(ten,s);} 
 void setTuoi(int a){tuoi=a;} 
 void setGioi(char s){gioi=s;} 
 public: 
 Nguoi(char *ten, char s, int a ){ 
 setTen(ten); setTuoi(a); setGioi(s); 
 } 
 ~Nguoi(){}; 
130 
GỢI Ý TRẢ LỜI CÁC BÀI TẬP 
 Nguoi* getVochong(){return vochong;} 
 void setVochong(Nguoi *p){vochong = p; return;} 
}; 
Bài 8. 
class Nguoi{ 
 private: 
 char ten[40]; 
 char gioi; 
 int tuoi, chieucao, cannang; 
 void setTen(char *s) {strcpy(ten,s);} 
 void setTuoi(int a){tuoi=a;} 
 void setGioi(char s){gioi=s;} 
 Nguoi* Cha; 
 Nguoi* Me; 
 Nguoi* Con[]; 
 void setCha(Nguoi* p){Cha = p; return;} 
 void setMe(Nguoi* p){Me = p; return;} 
 public: 
 Nguoi(char *ten, char s, int a ){ 
 setTen(ten); setTuoi(a); setGioi(s); 
 } 
 ~Nguoi(){}; 
 Nguoi* getCha(){return Cha;} 
 Nguoi* getMe(){return Me} 
 Nguoi* c[] getCon(){return Con} 
}; 
Bài 9. 
class Tay{ 
131 
GỢI Ý TRẢ LỜI CÁC BÀI TẬP 
 .. 
}; 
class Chan{ 
} 
class Nguoi{ 
 private: 
 char ten[40]; 
 char gioi; 
 int tuoi, chieucao, cannang; 
 Tay taytrai; 
 Tay tayphai; 
 Chan chantrai; 
 Chan chanphai; 
 void setTen(char *s) {strcpy(ten,s);} 
 void setTuoi(int a){tuoi=a;} 
 void setGioi(char s){gioi=s;} 
 public: 
 Nguoi(char *ten, char s, int a ){ 
 setTen(ten); setTuoi(a); setGioi(s); 
 } 
 ~Nguoi(){} 
}; 
132 
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  
133 
PHÂN TÍCH THIẾT KẾ 
HỆ THỐNG THÔNG TIN 
Mã số: 412PTH440 
Chịu trách nhiệm bản thảo 
TRUNG TÂM ÐÀO TẠO BƯU CHÍNH VIỄN THÔNG 1 

File đính kèm:

  • pdfgiao_trinh_phan_tich_thiet_ke_he_thong_thong_tin_tran_dinh_q.pdf
Tài liệu liên quan