Bài giảng Phân tích thiết kế hệ thống thông tin - Bài 7: Quá trình phát triển phần mềm hướng đối tượng tìm hiểu phát triển các mô hình thiết kế hướng đối tượng; những lập trình viên sử dụng các mô hình để mã hoá hệ thống; hai mô hình quan trọng nhất là các sơ đồ thiết kế lớp và các sơ đồ tương tác (sơ đồ trình tự và sơ đồ hợp tác); các sơ đồ lớp được phát triển cho các tầng (layer) truy cập dữ liệu, quan sát và miền; các sơ đồ tương tác mở rộng các sơ đồ trình tự hệ thống.
Trang 11 v2.0013112205
BÀI 7
QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG
Giảng viên: ThS Thạc Bình Cường
Trang 22 v2.0013112205
TÌNH HUỐNG DẪN NHẬP
• Tiếp sau giai đoạn phân tích là giai đoạn thiết kế Thiết kế hướng đối tượng
bao gồm quá trình triển khai các ý tưởng của phân tích bao gồm cả dữ liệu và
các phương thức (xử lý);
• Quy trình thiết kế bao gồm xác định các lớp và tương tác giữa các lớp;
• Có một số hệ quản trị cơ sở dữ liệu hướng đối tượng ODBMS;
• Chúng ta sẽ thiết kế hệ thống quản lý phân phối hàng của tập đoàn RMO
bằng phương pháp hướng đối tương
2
Trang 3MỤC TIÊU
Giải thích mục đích và mục tiêu của thiết kế hướng đối tượng;
Phát triển các sơ đồ thiết kế lớp;
Phát triển các chương trình tương tác dựa trên các nguyên tắc nhiệm
vụ của đối tượng và các kiểm soát use-case;
Phát triển các sơ đồ trình tự chi tiết như là qui trình trọng tâm trongthiết kế các hệ thống;
Phát triển các sơ đồ hợp tác như là một phần của thiết kế hệ thống;Dẫn chứng thiết kế cấu trúc bằng cách sử dụng các sơ đồ đóng gói(package diagram)
Trang 44 v2.0013112205
NỘI DUNG
Trọng tâm của chương này và của chương sau là làm thế nào
để phát triển các mô hình thiết kế hướng đối tượng;
Những lập trình viên sử dụng các mô hình để mã hoá hệ thống;
Hai mô hình quan trọng nhất là các sơ đồ thiết kế lớp và các sơ
đồ tương tác (sơ đồ trình tự và sơ đồ hợp tác);
Các sơ đồ lớp được phát triển cho các tầng (layer) truy cập dữliệu, quan sát và miền;
Các sơ đồ tương tác mở rộng các sơ đồ trình tự hệ thống
Trang 55 v2.0013112205
1 THIẾT KẾ HƯỚNG ĐỐI TƯỢNG – CẦU NỐI GIỮA PHÉP PHÂN TÍCH
VÀ LẬP TRÌNH
• Cầu nối giữa các yêu cầu của người sử dụng với lập trình hệ thống mới;
• Thiết kế hướng đối tượng là qui trình mà qua đó các mô hình hướng đối tượng
chi tiết được thiết lập;
• Các lập trình viên sử dụng thiết kể để viết mã và test hệ thống mới;
• Giao diện sử dụng, mạng, bộ kiểm soát, tính bảo mật, và cơ sở dữ liệu đòi hỏi
các mô hình và thao tác thiết kế
Trang 66 v2.0013112205
2 TỔNG QUAN CÁC CHƯƠNG TRÌNH HƯỚNG ĐỐI TƯỢNG
• Thiết lập các đối tượng kết hợp cùng nhau để đạt được một kết quả;
• Đối tượng chứa đựng các thuộc tính cần thiết và logic chương trình trong
một đơn vị;
• Các đối tượng gửi cho nhau các thông điệp và hợp tác để hỗ trợ các chức
năng của chương trình chính;
• Nhà thiết kế hệ thống OO cung cấp chi tiết cho các nhà lập trình: Các sơ đồ
thiết kế lớp, các sơ đồ tương tác (vài) sơ đồ trạng thái
Trang 77 v2.0013112205
SƠ ĐỒ CHƯƠNG TRÌNH HƯỚNG ĐỐI TƯỢNG DỰA TRÊN SỰ KIỆN
Đối tượng sinh viên
Đối tượng dữ liệu
đầu ra
2 Tạo đối tượng sinh viên
1 Nhập ID sinh viên
4 Nhập các cập nhật thông tin cá nhân
Trang 88 v2.0013112205
VÍ DỤ LỚP THIẾT KẾ CHO LỚP HỌC SINH VIÊN ĐÃ ĐƠN GIẢN HÓA
Trang 99 v2.0013112205
3 CÁC MÔ HÌNH VÀ QUY TRÌNH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
• Các sơ đồ được phát triển trong quá trình phân tích: Sơ đồ tình huống sử dụng(use case), các mô tả tình huống sử dụng và các sơ đồ thao tác, các sơ đồ mô hìnhmiền (domain model) lớp, và các sơ đồ trình tự hệ thống;
• Các sơ đồ được phát triển trong quá trình thiết kế:
Các sơ đồ thiết kế lớp – thiết lập các lớp hướng đối tượng cần thiết cho lậptrình, sự điều hướng giữa các lớp, tên thuộc tính và các đặc tính, tên phươngpháp và các đặc tính;
Các sơ đồ tương tác, các sơ đồ đóng gói
Trang 1010 v2.0013112205
CÂU HỎI TƯƠNG TÁC
Dùng các công cụ nào để vẽ các biểu đồ?
Trang 1111 v2.0013112205
3.1 CÁC MÔ HÌNH THIẾT KẾ VỚI CÁC MÔ HÌNH DỮ LIỆU ĐẦU VÀO TƯƠNG ỨNG
Các sơ đồ trình tự hệ thống
Các sơ đồ lớp mô hình vùng
Các mô tả tình huống
sử dụng và sơ đồ hoạt động
Các sơ đồ lớp thiết kế
Các sơ đồ tình huống
sử dụng
Các sơ đồ đóng gói
Trang 1212 v2.0013112205
3.2 CÁC KÝ HIỆU THIẾT KẾ LỚP
• UML không phân biệt giữa các ký hiệu thiết kế lớp và các kí hiệu mô hình miền;
• Mô hình miền (Domain model) thể hiện môi trường làm việc của người sử dụng;
• Việc thiết kế lớp cụ thể là xác định các lớp của phần mềm;
• UML sử dụng các ký tự mẫu sẵn (stereotype) để phân loại một thành tố mô hình bởichính các đặc tính của nó
“Thực thể”
“Kiểm soát”
“Đường bao”
“Truy cập thông tin”
Khách hàng
Điều khiển tình huống sử dụng
Cửa sổ order
Cửa sổ order
Trang 1313 v2.0013112205
3.3 CÁC LỚP THIẾT KẾ TIÊU CHUẨN
• Thực thể (Entity): Các nhận dạng thiết kế cho các lớp miền vấn đề;
• Lớp vĩnh cửu (Persistent class): Tồn tại ngay cả sau khi hệ thống đã được đóng;
• Đường bao (Boundary): Đựơc thiết kế để tạo nên đường bao tự động của hệ thống;
• Các lớp cửa sổ và giao diện sử dụng;
• Bộ điều khiển (Control): Trung gian giữa đường bao và các lớp thực thể, giữa tầngquan sát và tầng domain;
• Truy cập dữ liệu (Data access): Truy lục dữ liệu và gửi các dữ liệu tới cơ sở dữ liệu
Trang 1414 v2.0013112205
3.4 KÍ HIỆU LỚP THIẾT KẾ
• Tên: Thông tin mẫu sẵn có và tên lớp;
• Thuộc tính (Attributes); Visibility (tính hiển thị riêng hoặc mở rộng), tên thuộc tính,loại hiển thị, trị số ban đầu, đặc tính;
• Singature phương pháp (Method signatures): Thông tin cần thiết để cầu viện (gọi)phương pháp:
Tính hiển thị phương pháp, tên phương pháp, loại hiển thị (các thông số phảnhồi), danh sách thông số phương pháp (những tranh luận sắp tới);
Phương pháp quá tải (Overloaded method): Phương pháp cùng một tênnhưng có hai hoặc nhiều danh sách thông số khác nhau
• Các ký hiệu bên trong dùng để xác định lớp thiết kế:
Trang 1515 v2.0013112205
VÍ DỤ: DÙNG SƠ ĐỒ MIỀN VÀ SƠ ĐỒ THIẾT KẾ LỚP
Trang 1616 v2.0013112205
4 MỘT VÀI NGUYÊN TẮC THIẾT KẾ CƠ BẢN
• Sự đóng gói (Encapsulation): Mỗi đối tượng là một thể thống nhất chứa đựng
các dữ liệu và phương thức để truy cập dữ liệu;
• Tái sử dụng đối tượng (Object reuse): Các nhà thiết kế thường tái sử dụng
các lớp giống nhau cho các thành phần windows;
• Ẩn thông tin (Information hiding): Dữ liệu đồng nhất với đối tượng không
được hiển thị;
• Tính hiển thị có điều hướng (Navigation visibility): Đối tượng có thể quan sát
và tương tác với các đối tượng khác
Trang 1717 v2.0013112205
TÍNH HIỂN THỊ CÓ HƯỚNG GIỮA KHÁCH HÀNG VÀ ĐƠN ĐẶT HÀNG
Trang 1818 v2.0013112205
5 KẾT HỢP VÀ GẮN KẾT
• Kết hợp (Coupling): Sự đo lường mặt lượng các lớp trong sơ đồ thiết kế lớp có
thể liên kết với nhau như thế nào?
Các mũi tên điều hướng trên sơ đồ thiết kế lớp;
Thấp: Hệ thống dễ hiểu và dễ duy trì hơn
Trang 1919 v2.0013112205
VÍ DỤ 1 SƠ ĐỒ LỚP MÔ HÌNH DOMAIN RMO
Trang 2020 v2.0013112205
SƠ ĐỒ LỚP THIẾT KẾ MỘT PHẦN CHO TÌNH HUỐNG TÌM KIẾM
CÁC MẶT HÀNG CÓ SẴN
Trang 2121 v2.0013112205
5.1 CÁC ĐỐI TƯỢNG ĐƯỢC BAO HÀM TRONG TÌM KIẾM
CÁC MẶT HÀNG CÓ SẴN (LOOK UP ITEM AVAILABILITY)
Trang 2222 v2.0013112205
5.2 SSD ĐỐI VỚI KỊCH BẢN ĐẶT HÀNG QUA ĐIỆN THOẠI
CỦA TÌNH HUỐNG TẠO ORDER MỚI
Trang 2323 v2.0013112205
5.3 SƠ ĐỒ TRÌNH TỰ MỘT PHẦN CHO KỊCH BẢN ĐẶT HÀNG
QUA ĐIỆN THOẠI
23
Trang 246 THIẾT KẾ VỚI CÁC SƠ ĐỒ HỢP TÁC
• Các sơ đồ hợp tác và các sơ đồ trình tự:
Cả hai loại đều là các sơ đồ tương tác;
Cả hai loạI đều lưu giữ các thông tin giống nhau;
Qui trình thiết kế cho hai loại cũng giống nhau
• Mô hình được sử dụng là tham chiếu cá nhân của người thiết kế:
Sơ đồ trình tự (Sequence diagram): Vì các mô tả tình huống sử dụng và cácbước của trình tự theo hội thoại;
Sơ đồ hợp tác (Collaboration diagram): Nhấn mạnh sự kết hợp
Trang 2525 v2.0013112205
6.1 CÁC KÍ HIỆU CỦA MỘT SƠ ĐỒ KẾT HỢP
Trang 2626 v2.0013112205
6.2 SƠ ĐỒ HỢP TÁC TRONG TÌM KIẾM CÁC MẶT HÀNG CÓ SẴN
Trang 2727 v2.0013112205
6.3 SƠ ĐỒ HỢP TÁC CHO TẠO MỘT ORDER MỚI
Trang 2828 v2.0013112205
6.4 TÌNH HUỐNG TÌM KIẾM CÁC MẶT HÀNG CÓ SẴN DÙNG CÁC
KÝ HIỆU BIỂU TƯỢNG
Trang 2929 v2.0013112205
7 CẬP NHẬT SƠ ĐỒ THIẾT KẾ LỚP
• Sơ đồ thiết kế lớp được phát triển cho từng tầng:
Các lớp mới cho tầng quan sát và truy cập dữ liệu;
Các lớp mới cho các kiểm soát tình huống tầng domain
• Các thông điệp của sơ đồ trình tự được sử dụng để bổ sung các phương thức:
Các phương thức xây dựng (Constructor methods);
Lấy dữ liệu và tạo lập phương thức;
Các phương thức cụ thể cho từng tình huống sử dụng
Trang 3030 v2.0013112205
7.1 LỚP THIẾT KẾ VỚI ĐỊNH DANH HÀM CHO MỘT LỚP ORDER
Trang 3131 v2.0013112205
7.2 SƠ ĐỒ THIẾT KẾ LỚP CẬP NHẬT CHO TẦNG MIỀN NGHIỆP VỤ
Trang 3232 v2.0013112205
8 CÁC CHƯƠNG TRÌNH ĐÓNG GÓI – KẾT CẤU CÁC THÀNH PHẦN
CHỦ YẾU
• Sơ đồ cấp bậc cao trong UML để tổ chức các lớp của các nhóm liên quan;
• Nhận dạng các thành phần chính của hệ thống và sự phụ thuộc;
• Quyết định các phân chia chương trình cho từng tầng:
Quan sát, miền nghiệp vụ và truy cập dữ liệu;
Có thể chia hệ thống thành các hệ thống con và thể hiện cấp lồng bên
trong nghỉ phép
Trang 3333 v2.0013112205
VÍ DỤ 1 THIẾT KẾ MỘT PHẦN CỦA SƠ ĐỒ ĐÓNG GÓI PACKAGE
CHO RMO
Trang 3434 v2.0013112205
VÍ DỤ 2 CÁC GÓI HỆ THỐNG CON RMO
Trang 3535 v2.0013112205
TỔNG KẾT PHẦN THIẾT KẾ SƠ ĐỔ UML
• Thiết kế hướng đối tượng chính là cầu nối giữa các đòi hỏi của người sử dụng
(trong các mô hình phân tích) và hệ thống cuối cùng (được tạo lập bằng ngôn
Trang 3636 v2.0013112205
9 CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
• Mở rộng trực tiếp của thiết kế và kiểu lập trình OO;
• ODBMS lưu trữ dữ liệu như các đối tượng hoặc các lớp;
• Hỗ trợ trực tiếp cho phương pháp lưu trữ, dịch chuyển, lồng, liên kết đối tượng
hoặc kiểu do lập trình viên xác định;
• Ngôn ngữ định nghĩa đối tượng (ODL): Ngôn ngữ chuẩn để mô tả cấu trúc và
nội dung của một cơ sở dữ liệu đối tượng
Trang 3737 v2.0013112205
CÂU HỎI TƯƠNG TÁC
Có phải dùng hết các loại biểu đồ không? Tại sao?
Trang 3838 v2.0013112205
10 THIẾT KẾ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
• Xác định các lớp yêu cầu phải được lưu trữ một cách bền vững;
• Định nghĩa các lớp bền vững;
• Thể hiện quan hệ giữa các lớp bền vững;
• Lựa chọn kiểu dữ liệu phù hợp và giới hạn giá trị (nếu cần thiết) cho mỗi trường
Trang 3939 v2.0013112205
11 BIỂU DIỄN QUAN HỆ
• Các định danh đối tượng:
Nhằm xác định các đối tượng duy nhất;
Lưu trữ địa chỉ hoặc tham chiếu vật lý;
Liên kết các đối tượng của một lớp với lớp khác
• ODBMS sử dụng các thuộc tính có chứa các định danh đối tượng để tìm kiếm
các đối tượng có liên kết với các đối tượng khác;
• Từ khoá quan hệ có thể được sử dụng để thể hiện quan hệ giữa các lớp;
• Các thuận lợi:
ODBMS có trách nhiệm xác định liên kết giữa các đối tượng;
ODBMS có trách nhiệm duy trì toàn vẹn tham chiếu
• Loại quan hệ:
1:1, 1:M, M:M (một-một, một-nhiều, nhiều-nhiều);
Lớp Liên kết được sử dụng với M:M
Trang 4040 v2.0013112205
11.1 SƠ ĐỒ LỚP RMO
40
Trang 4111.2 QUAN HỆ 1:1 THỂ HIỆN THÔNG QUA CÁC THUỘC TÍNH CHỨA ĐỊNH DANH ĐỐI TƯỢNG
Trang 4242 v2.0013112205
11.3 QUAN HỆ 1-M GIỮA CÁC LỚP CUSTOMER VÀ ORDER
Trang 4343 v2.0013112205
11.4 QUAN HỆ 1:M VỚI CÁC THUỘC TÍNH CHƯA ĐỊNH DANH
ĐỐI TƯỢNG
Trang 4444 v2.0013112205
11.5 QUAN HỆ M:M GIỮA CÁC LỚP EMPLOYEE VÀ PROJECT
Trang 4545 v2.0013112205
11.5 QUAN HỆ M:M GIỮA CÁC LỚP EMPLOYEE VÀ PROJECT
Trang 4646 v2.0013112205
VÍ DỤ KHÁI QUÁT HÓA PHÂN CẤP TRONG MÔ HÌNH LỚP RMO
Trang 4747 v2.0013112205
12 THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG LAI GHÉP
• RDBMS (DBMS lai ghép) được sử dụng để lưu trữ các thuộc tính và
quan hệ đối tượng;
• Thiết kế sơ đồ quan hệ hoàn chỉnh và đồng thời thiết kế tập các
lớp tương đương;
• Không khớp giữa kiểu dữ liệu quan hệ và OO:
Các phương pháp lớp không thể lưu trữ trực tiếp hoặc thực thi
tự động;
Quan hệ hạn chế hơn so với ODBMS;
ODBMS có thể thể hiện nhiều kiểu dữ liệu hơn
Trang 4848 v2.0013112205
13 LỚP VÀ THUỘC TÍNH
• Các trình thiết kế lưu trữ các lớp và thuộc tính đối tượng trong RDBMS
thông qua các bảng;
• Sơ đồ quan hệ được thiết kế dựa vào sơ đồ lớp;
• Bảng được tạo cho từng lớp;
• Các trường của từng bảng cũng như các thuộc tính của từng lớp;
• Hàng chứa các giá trị thuộc tính của một đối tượng duy nhất;
• Trường khoá được lựa chọn cho từng bảng
Trang 4949 v2.0013112205
13.1 HIỂN THỊ CÁC DỮ LIỆU ĐƯỢC LƯU TRỮ
Sự phù hợp về khái niệm trong hiển thị cơ sở dữ liệu hướng đối tượng CSDL thực thể liên kết và CSDL quan hệ của các dữ liệu được lưu trữ
Cột Thuộc tính
Thuộc tính
Hàng Entity Instance
Đối tượng
Bảng Loại thực thể
Trang 5050 v2.0013112205
13.2 TƯƠNG TÁC GIỮA CÁC LỚP
Trang 5151 v2.0013112205
Trang 5252 v2.0013112205
14.1 CÁC KIỂU DỮ LIỆU DBMS QUAN HỆ
• Trình thiết kế phải chọn kiểu dữ liệu phù hợp cho từng trường trong sơ đồ cơ sở dữliệu quan hệ;
• Các lựa chọn cho các trường rất rõ ràng:
Tên và địa chỉ sử dụng một tập các dãy ký tự có độ dài cố định hoặc biến đổi;
Số lượng lưu kho có thể sử dụng các số nguyên;
Giá từng vật phẩm có thể sử dụng các số thực
• Các kiểu dữ liệu phức hợp (DATE, LONG, LONGRAW)
Trang 5353 v2.0013112205
14.2 CÁC CƠ SỞ DỮ LIỆU PHÂN TÁN
• Hiếm khi các cơ sở dữ liệu tổ chức được lưu trữ trong một vị trí trong một cơ sở dữliệu đơn nhất;
• Các hệ thống thông tin khác nhau trong một tổ chức được xây dựng tại các thời điểmkhác nhau;
• Các phần nhỏ dữ liệu của một tổ chức có thể do các bộ phận khác nhau nắm giữ vàquản lý;
• Chất lượng của hệ thống được cải thiện khi dữ liệu gần với các chương trình ứngdụng chính
Trang 5454 v2.0013112205
14.3 CẤU TRÚC MÁY CHỦ CƠ SỞ DỮ LIỆU ĐƠN
Một cấu trúc máy chủ cơ sở dữ liệu đơn
Mạng LAN
Mạng diện rộng
Mạng LAN
Máy chủ CSDL
Trang 5555 v2.0013112205
14.4 CẤU TRÚC MÁY CHỦ CƠ SỞ DỮ LIỆU NHÂN BẢN
Một cấu trúc máy chủ cơ sở dữ liệu tái tạo
Mạng LAN
Mạng diện rộng
Mạng LAN
Máy chủ CSDL (bản sao 1)
Máy chủ CSDL (bản sao 2)
Trang 5656 v2.0013112205
14.5 SƠ ĐỒ CƠ SỞ DỮ LIỆU PHÂN KHU THÀNH 2 NHÓM CON
TRUY NHẬP MÁY KHÁCH
Sơ đồ cơ sở dữ liệu phân khu thành hai nhóm con truy nhập máy khách
Sơ đồ dành cho các khách hàng nhóm A Sơ đồ dành cho cáckhách hàng nhóm B
Trang 5757 v2.0013112205
14.6 CẤU TRÚC MÁY CHỦ CƠ SỞ DỮ LIỆU PHÂN KHU
LAN nhóm khách hàng A
WAN
LAN nhóm khách hàng B
Máy chủ CSDL phần B
Máy chủ CSDL phần A
Trang 5858 v2.0013112205
14.7 CẤU TRÚC MÁY CHỦ CƠ SỞ DỮ LIỆU TẬP TRUNG
Máy chủ CSDL Marketing Máy chủ CSDLSản phẩm Máy chủ CSDLKế toán
Máy chủ CSDL Kết hợp
Trang 5959 v2.0013112205
14.8 CẤU TRÚC MÁY CHỦ CƠ SỞ DỮ LIỆU PHÂN KHU VÀ NHÂN
BẢN CỦA RMO
Máy chủ CSDL Phân khu tái tạo Phân khu tái tạoMáy chủ CSDL
Máy chủ CSDL Trung tâm
Máy chủ CSDL phân khu tái tạo
Trung tâm
dữ liệu LAN
Trụ sở công ty LAN Trung tâm
đặt hàng qua điện thoại
Trung tâm đặt hàng qua thư LAN
Nhà kho (3 địa điểm) LAN
WAN
Trang 6060 v2.0013112205
CÂU HỎI TƯƠNG TÁC
Ưu điểm của CSDL hướng đối tượng? Tại sao hiện nay vẫn dùng CSDL
dạng quan hệ?
Trang 6161 v2.0013112205
TÓM LƯỢC CUỐI BÀI
• Các hệ thống thông tin hiện đại lưu trữ thông tin trong các cơ sở dữ liệu,truy nhập và quản lý dữ liệu thông qua DBMS;
• DBMS quan hệ được sử dụng phổ biến;
• DBMS đối tượng ngày càng trở nên phổ biến;
• Hoạt động chính của thiết kế hệ thống là xây dựng các sơ đồ cơ sở dữ liệuđối tượng và quan hệ;
• Cơ sở dữ liệu quan hệ là tập hợp các dữ liệu được lưu trữ trong các bảng
và được phát triển từ sơ đồ quan hệ thực thể;
• Cơ sở dữ liệu đối tượng lưu trữ dữ liệu như là tập hợp các đối tượng có liênkết và được phát triển từ các sơ đồ lớp;
• Các đối tượng cũng có thể được lưu trữ trong RDBMS;
• RDBMS không thể lưu trữ các phương pháp;
• RDBMS không thể trực tiếp thể hiện dịch chuyển;
• Các hệ thống thông tin vừa và lớn thường sử dụng nhiều cơ sở dữ liệuhoặc các máy chủ cơ sở dữ liệu trong nhiều khu vực địa lý