Nội dung chính
1. Tổng quan về Thiết kế hướng đối tượng.
2. Thiết kế hướng đối tượng với UML
Sơ đồ đối tượng (Object Diagram).
Sơ đồ giao tiếp (Communication diagram)
Sơ đồ lớp (Class Diagram).
46 trang |
Chia sẻ: phuongt97 | Lượt xem: 581 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng môn Phân tích thiết kế hệ thống thông tin - Chương 7: Thiết kế hệ thống hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Phân Tích Thiết Kế
Hệ Thống Thông
Tin
Thiết kế hệ thống hướng
đối tượng
Nguyễn Hoàng Ân - Khoa HTTTQL
Nội dung chính
1. Tổng quan về Thiết kế hướng đối tượng.
2. Thiết kế hướng đối tượng với UML
Sơ đồ đối tượng (Object Diagram).
Sơ đồ giao tiếp (Communication diagram)
Sơ đồ lớp (Class Diagram).
Nguyễn Hoàng Ân - Khoa HTTTQL 3
1. Tổng quan về Thiết kế
hướng đối tượng
Nguyễn Hoàng Ân - Khoa HTTTQL 5
Thiết kế hướng đối tượng
(Object Oriented Design)
Tổ chức chương trình thành các tập hợp đối
tượng cộng tác
Dựa trên kết quả của giai đoạn OOA, các
quy định phi chức năng, những yêu cầu về
môi trường, những yêu cầu về khả năng
thực thi
Định nghĩa các chức năng, thủ tục
(operations), thuộc tính (attributes), mối
quan hệ giữa nhiều lớp (class)
Đưa ra các biểu đồ tĩnh và động
Nguyễn Hoàng Ân - Khoa HTTTQL 6
2. Thiết kế hướng đối
tượng với UML
Nguyễn Hoàng Ân - Khoa HTTTQL 7
Thiết kế hướng đối tượng với
UML
Sơ đồ đối tượng (Object Diagram)
Sơ đồ giao tiếp (Communication Diagram)
Sơ đồ lớp (Class Diagram)
Nguyễn Hoàng Ân - Khoa HTTTQL 8
Sơ đồ lớp (Class Diagram)
Nguyễn Hoàng Ân - Khoa HTTTQL 9
Sơ đồ lớp
Chỉ ra các đặc tính tĩnh của hệ thống mà
không cho thấy cách thức xử lí riêng biệt
Chỉ ra tính chất tự nhiên về quan hệ của các
lớp
Chỉ ra các yêu cầu về lưu trữ dữ liệu cũng
như các yêu cầu xử lí
Nguyễn Hoàng Ân - Khoa HTTTQL 10
Sơ đồ lớp
Lớp(Classes)
Thuộc tính (Attributes)
Private
Public
Protected
Phương thức (Methods)
Standard
Custom
Nguyễn Hoàng Ân - Khoa HTTTQL 11
Nguyễn Hoàng Ân - Khoa HTTTQL 12
Ví dụ: Course Offerings
Nguyễn Hoàng Ân - Khoa HTTTQL 13
Nạp chồng phương thức
(Method Overloading)
Phương thức giống nhau lặp lại nhiều lần
trong một lớp
Có các tham số khác nhau
Nguyễn Hoàng Ân - Khoa HTTTQL 14
Các loại lớp
Thực thể (Entity classes)
Giao diện (Interface classes)
Trừu tượng (Abstract classes)
Điều khiển (Control classes)
Nguyễn Hoàng Ân - Khoa HTTTQL 15
Thực thể
Thể hiện các phần tử trong thế giới thực
Các thực thể được thể hiện trên sơ đồ quan
hệ thực thể (entity-relationship diagram)
Nguyễn Hoàng Ân - Khoa HTTTQL 16
Interface hoặc Boundary
Cung cấp cách mà người dùng giao tiếp với
hệ thống
Các giao diện người (Human interfaces) này
có thể là một sự hiển thị thông tin, cửa sổ
(window), Web Form, hộp thoại (dialogue
box), bấm điện thoại hoặc các cách thức
khác mà người dùng giao tiếp với hệ thống
Các giao diện hệ thống (System interfaces)
bao gồm việc gửi dữ liệu và nhận dữ liệu từ
các thành phần khác
Nguyễn Hoàng Ân - Khoa HTTTQL 17
Lớp trừu tượng
Liên kết đến các lớp cụ thể trong quan hệ
tổng quát/đặc thù
(generalization/specialization)
Không có thể hiện (instantiate) trực tiếp
Nguyễn Hoàng Ân - Khoa HTTTQL 18
Lớp kiểm soát
Dùng để kiểm soát luồng các hoạt động
Có nhiều lớp kiểm soát nhỏ có thể được
dùng để tạo ra các lớp có thể dùng lại được
Nguyễn Hoàng Ân - Khoa HTTTQL 19
Sơ đồ tuần tự về hoạt động của 2 trang
web: Student Information, Course
Information
Nguyễn Hoàng Ân - Khoa HTTTQL 20
Tạo sơ đồ tuần tự
Bao gồm tác nhân từ sơ đồ use-case
Định danh một hoặc nhiều giao tiếp cho mỗi
tác nhân
Mỗi use-case nên có một lớp kiểm soát
Xác định xem use-case yêu cầu các lớp thực
thể nào
Sơ đồ tuần tự có thể được chỉnh sửa khi
thiết kế chi tiết
Nguyễn Hoàng Ân - Khoa HTTTQL 21
Tạo kế hoạch kiểm thử từ sơ đồ
tuần tự
Mỗi phương thức có trả về kết quả đúng
không ?
Đảm bảo các lớp thực thể lưu trữ hoặc chứa
đúng các giá trị thuộc tính
Kiểm tra các đường dẫn JavaScript có làm
việc đúng
Đảm bảo các lớp kiểm soát trên server làm
việc đúng
Đặt câu hỏi “Liệu có thất bại không?”
Xác định xem việc gì sẽ xảy ra nếu thất bại
Nguyễn Hoàng Ân - Khoa HTTTQL 22
Các quan hệ
Giữa các lớp có thể có các quan hệ:
Liên kết (Associations)
Toàn thể-bộ phận (Whole/part)
Nguyễn Hoàng Ân - Khoa HTTTQL 23
Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 24
Quan hệ liên kết
Kiểu quan hệ đơn giản nhất
Các lớp liên kết dùng để phân tán mối quan
hệ nhiều-nhiều (many-many) giữa các lớp
Đối tượng trong lớp có thể có quan hệ với
các đối tượng khác trong cùng lớp, gọi là
liên kết phản thân (reflexive association)
Nguyễn Hoàng Ân - Khoa HTTTQL 25
Quan hệ liên kết: Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 26
Quan hệ liên kết: Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 27
Quan hệ toàn thể-bộ phận
Khi một lớp thể hiện đối tượng toàn thể, các
lớp khác thể hiện bộ phận
Phân loại:
Quan hệ bao gộp (Aggregation)
Quan hệ tập hợp (Collection)
Quan hệ kết hợp (Composition)
Nguyễn Hoàng Ân - Khoa HTTTQL 28
Quan hệ bao gộp
Còn gọi là quan hệ “has a”
Cung cấp cách mà đối tượng toàn thể
(whole object) kết hợp các thành phần
Nguyễn Hoàng Ân - Khoa HTTTQL 29
Quan hệ tập hợp
Bao gồm toàn thể và các thành phần của nó
Thành phần có thể thay đổi nhưng toàn thể
vẫn duy trì định danh của nó
Liên kết yếu
Nguyễn Hoàng Ân - Khoa HTTTQL 30
Quan hệ kết hợp
Toàn thể có trách nhiệm với các thành phần
của nó, và là quan hệ mạnh
Nếu toàn thể bị xóa, các thành phần cũng bị
xóa
Nguyễn Hoàng Ân - Khoa HTTTQL 31
Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 32
Sơ đồ tổng quát/chuyên biệt
(Generalization/Specialization)
Tổng quát (Generalization)
Kế thừa (Inheritance)
Đa hình (Polymorphism)
Lớp trừu tượng (Abstract classes)
Thông điệp (Messages)
Nguyễn Hoàng Ân - Khoa HTTTQL 33
Tổng quát
Mô tả quan hệ giữa một tổng quát và
chuyên biệt
Được mô tả quan hệ “is a”
Được dùng để mô hình hóa lớp kế thừa và
chuyên biệt
Lớp tổng quát là lớp cha (parent), cơ sở
(base) hoặc superclass
Lớp chuyên biệt là lớp con, được dẫn xuất
(derived) hoặc subclass
Nguyễn Hoàng Ân - Khoa HTTTQL 34
Thừa kế
Giúp dùng lại
Giúp bảo trì mã nguồn chương trình hiện tại
Nguyễn Hoàng Ân - Khoa HTTTQL 35
Đa hình
Khả năng của chương trình hướng đối tượng
có vài phiên bản của cùng phương thức có
cùng tên trong superclass/subclass
Phương thức trong subclass ghi đè
(override) phương thức trong superclass
Khi các thuộc tính hoặc phương thức được
định nghĩa nhiều hơn một lần, cái chuyên
biệt nhất sẽ được dùng
Nguyễn Hoàng Ân - Khoa HTTTQL 36
Lớp trừu tượng
Lớp trừu tượng là lớp tổng quát
Không có đối tượng trực tiếp hoặc thể hiện
của lớp và chỉ được dùng kết hợp với các lớp
chuyên biệt
Thường có thuộc tính và một vài phương
thức
Nguyễn Hoàng Ân - Khoa HTTTQL 37
Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 38
Tìm lớp
Thông qua phỏng vấn hoặc JAD
Phân tích tài liệu hoặc bản ghi chú
Xem xét use-case, tìm danh từ
Nguyễn Hoàng Ân - Khoa HTTTQL 39
Xác định phương thức của lớp
Phương thức tiêu chuẩn
Xem xét ma trận CRUD
Nguyễn Hoàng Ân - Khoa HTTTQL 40
Thông điệp
Dùng để gửi thông tin từ đối tượng của một
lớp đến đối tượng của lớp khác
Hành động như một lệnh , yêu cầu lớp nhận
thực hiện một việc nào đó
Bao gồm tên của phương thức lớp nhận
cũng như các thuộc tính
Có thể là đầu vào hoặc đầu ra
Nguyễn Hoàng Ân - Khoa HTTTQL 41
Sơ đồ đối tượng (Object
Diagram)
Nguyễn Hoàng Ân - Khoa HTTTQL 42
Sơ đồ lớp
Là thể hiện (instantiation) của tất cả hoặc
một phần của sơ đồ lớp.
Instantiation có nghĩa là tạo ra một thể hiện
của lớp (instance of the class) với các giá trị
của thuộc tính tương ứng.
Dùng để khám phá các thuộc tính, quan
hệ/tác vụ đặt không đúng chỗ.
Ví dụ: Thay cho class Doctor, ta tao ra một
doctor thực sự như Dr. Smith, và đặt các giá
trị tương ứng cho các thuộc tính
Nguyễn Hoàng Ân - Khoa HTTTQL 43
Sơ đồ lớp: Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 44
Sơ đồ giao tiếp
(Communication Diagram)
Nguyễn Hoàng Ân - Khoa HTTTQL 45
Sơ đồ giao tiếp
Mô tả sự tương tác của hai hoặc nhiều đối
tượng trong hệ thống, trong việc thực hiện
một hành vi nào đó
Chi ra thông tin giống như trong sơ đồ tuần
tự nhưng khó đọc hơn
Nhấn mạnh vào việc tổ chức của các đối
tượng
Được tạo ra bằng cách dùng các đối tượng,
các liên kết, các thông điệp
Nguyễn Hoàng Ân - Khoa HTTTQL 46
Sơ đồ giao tiếp: Ví dụ
Nguyễn Hoàng Ân - Khoa HTTTQL 47
Hỏi đáp
50 Nguyễn Hoàng Ân - Khoa HTTTQL
Các file đính kèm theo tài liệu này:
- bai_giang_mon_phan_tich_thiet_ke_he_thong_thong_tin_chuong_7.pdf