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
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:
- giao_trinh_phan_tich_thiet_ke_he_thong_thong_tin_tran_dinh_q.pdf