Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 4: Mô hình hóa lĩnh vực ứng dụng
Mô hình khái niệm
Xác định các khái niệm
Xác định các thuộc tính
Xác định các kết hợp
38 trang | Chuyên mục: Thiết Kế Hướng Đối Tượng Với UML | Chia sẻ: dkS00TYs | Lượt xem: 2425 | Lượt tải: 1
Tóm tắt nội dung Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 4: Mô hình hóa lĩnh vực ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ility Operation() Class Utility Operation() Item Operation() Phân tích thiết kế hướng đối tượng Bài 6 - 18/40 Các loại lớp trong biểu đồ Metaclass Là lớp mà hiện thực của nó là lớp chứ không phải đối tượng MetaClass Attribute Operation() Interface ImplementationClass Giao diện (Interfaces) Nhiều ngôn ngữ hướng đối tượng hỗ trợ khái niệm giao diện để tách cài đặt lớp khỏi giao diện Giao diện chỉ chứa signatures của phương pháp cho lớp chứ không chứa cài đặt Cách tiếp cận này là cơ sở của ngôn ngữ định nghĩa giao diện (Interface Definition Language – IDL) Cho phép định nghĩa giao diện độc lập ngôn ngữ Phân tích thiết kế hướng đối tượng Bài 6 - 19/40 Đặc tả lớp trong biểu đồ Trong Rose: Sử dụng cửa sổ đặc tả lớp để gán các thuộc tính cho lớp như stereotype, persistent, visibility... Cửa sổ đặc tả khác nhau với các ngôn ngữ khác nhau khi chọn để cài đặt mô hình sau này Các lớp của Java, XML, CORBA Phân tích thiết kế hướng đối tượng Bài 5 - 20/35 Đặc tả lớp trong biểu đồ Đặc tả lớp bao gồm Tên lớp Mỗi lớp trong mô hình có tên duy nhất Thông thường sử dụng danh từ đơn, không nên có dấu cách Thí dụ: Flight, Airplane Phạm vi (Visibility) Xác định khả năng nhìn thấy lớp từ ngoài gói Các loại Public: mọi lớp trong hệ thống có thể nhìn thấy Private hay Protected: có thể nhìn thấy từ bên trong lớp hay từ lớp friend Package hay Implementation: chỉ các lớp trong cùng gói mới nhìn thấy Tính nhiều (Multiplicity) Yêu cầu lưu trữ Duy trì (Persistent) Tương tranh (Concurrency) Trừu tượng (Abstract) Phân tích thiết kế hướng đối tượng Bài 5 - 21/35 Đặc tả lớp trong biểu đồ Đặc tả lớp bao gồm ... Tính nhiều của lớp (Multiplicity) Là số hiện thực mong đợi của lớp Thí dụ: tính nhiều của lớp Employee là n, của lớp điều khiển và lớp Security Manager là 1... Yêu cầu lưu trữ cho lớp ... Multiplicity Ý nghĩa n (Mặc định) Nhiều 0..0 Không 0..1 Không hoặc 1 0..n Không hoặc nhiều 1..1 Chính xác 1 1..n Một hoặc nhiều Phân tích thiết kế hướng đối tượng Bài 5 - 22/35 Đặc tả lớp trong biểu đồ Đặc tả lớp bao gồm ... Yêu cầu lưu trữ cho lớp Đặt kích thước bộ nhớ mong đợi để lưu trữ đối tượng của lớp Duy trì (Persistent) Rose: có khả năng sinh ngôn ngữ định nghĩa dữ liệu (Data Definition Language – DDL) để định nghĩa cấu trúc của CSDL Khi phát sinh DDL, Rose tìm kiếm các lớp có đánh dấu một trong hai loại đặc tính Persistence: Persistent: Thông tin trong đối tượng của lớp sẽ lưu trữ vào CSDL hay tệp có khuôn mẫu khác Transient: Thông tin trong đối tượng của lớp sẽ không lưu trữ lâu dài Không sử dụng tính chất persistence cho lớp công cụ, lớp công cụ tham số và lớp công cụ hiện thực tham số. Tương tranh (Concurrency) ... Phân tích thiết kế hướng đối tượng Bài 5 - 23/35 Đặc tả lớp trong biểu đồ Đặc tả lớp bao gồm ... Tương tranh (Concurrency) Tương tranh mô tả ứng xử của lớp trong đa luồng điều khiển Bốn loại tương tranh Sequential: (trạng thái mặc định) lớp ứng xử như hoạt động chỉ trong một luồng điều khiển Guarded: Lớp ứng xử như trong đa luồng điều khiển, các lớp trong các luồng khác nhau cộng tác với nhau để không làm ảnh hưởng đến các lớp khác Active: Lớp có luồng điều khiển riêng Synchronous: Lớp ứng xử như trong đa luồng điều khiển. Các lớp không cộng tác với nhau vì chúng hoạt động loại trừ tương hỗ. Trừu tượng (Abstract) Là lớp không được hiện thực hóa Sử dụng trong cấu trúc kế thừa AbstractClass Phân tích thiết kế hướng đối tượng Bài 5 - 24/35 Gói các lớp Gói (Packages) để nhóm các lớp có những cái chung Có nhiều quan điểm hình thành gói Gói lớp theo prototype Thí dụ có gói Boundaries, gói Control và gói Entities Gói lớp theo chức năng Thí dụ gói Security, gói Reporting, gói Error Handling... Sử dụng tổ hợp hai loại tiếp cận trên để hình thành gói Có thể tổ chức gói bên trong gói khác Quan hệ giữa các gói hình thành trên cơ sở quan hệ giữa các lớp trong các gói. Boundaries Entities Control Phân tích thiết kế hướng đối tượng Bài 5 - 25/35 Thuộc tính Thuộc tính (attribute) của một khái niệm biểu diễn dữ liệu cần thiết cho các thể hiện của khái niệm Ví dụ: khái niệm Mặt hàng có các thuộc tính: Mã, tên Thuộc tính chỉ đại diện cho các dữ liệu liên quan đến khái niện sở hữu thuộc tính đó Ví dụ: Người bán hàng Tên Số quầy????? Phân tích thiết kế hướng đối tượng Bài 5 - 26/35 Thêm các thuộc tính lớp Tìm kiếm thuộc tính? Tìm trong tài liệu UC Tìm các danh từ trong luồng sự kiện Thí dụ: “Người sử dụng nhập tên, địa chỉ ngày sinh của Nhân viên” -> Tên, địa chỉ, ngày sinh là danh từ và là thuộc tính của lớp Nhân viên Tìm trong tài liệu yêu cầu hệ thống Thí dụ tài liệu yêu cầu hệ thống mô tả các thông tin cần thu thập Tìm thuộc tính trong cấu trúc CSDL Nếu đã xác định cấu trúc CSDL thì các trường trong bảng là thuộc tính của lớp Phân tích thiết kế hướng đối tượng Bài 5 - 27/40 Thuộc tính Cách xác định các thuộc tính Các con số và chuỗi ký tự là thuộc tính Nếu 1 tính chất của 1 khái niện không thể làm được điều gì thì rất có thể đó là thuộc tính Nếu nghi ngờ thuộc tính là khái niện thì đơn giản hãy coi đó là khái niệm Ví dụ: Lương là thuộc tính hay khái niệm so với khái niệm công nhân Nếu nghi ngờ nó là khái niềm thì coi như lương và công nhân là 2 khái niệm tách rời Phân tích thiết kế hướng đối tượng Bài 5 - 28/35 Thêm các thuộc tính lớp Trong trường hợp khó khăn quyết định danh từ tìm ra là thuộc tính hay là lớp Thí dụ: Tên công ty là thuộc tính hay lớp? Loại ứng dụng cụ thể quyết định việc này Mặt khác cần quan sát nhóm thông tin có hành vi hay không Khi kết thúc tìm kiếm thuộc tính Đảm bảo rằng các thuộc tính tìm ra phải có ích cho yêu cầu hệ thống Gán thận trọng thuộc tính cho các lớp Không nên hình thành lớp có quá nhiều hay quá ít thuộc tính (tốt nhất nên có lớp ít hơn 10 thuộc tính) Phân tích thiết kế hướng đối tượng Bài 5 - 29/35 Đặc tả thuộc tính lớp Trong Rose: sử dụng cửa sổ đặc tả thuộc tính để gán đặc tính cho thuộc tính Với mỗi thuộc tính trong biểu đồ cần có: Tên thuộc tính Kiểu dữ liệu thuộc tính lưu trữ. Phụ thuộc vào ngôn ngữ lập trình Thí dụ, Add : String Giá trị khởi đầu Thí dụ, IDNumber: Interger=0 Stereotype Phạm vi (visibility) .... Phân tích thiết kế hướng đối tượng Bài 5 - 30/35 Đặc tả thuộc tính lớp Với mỗi thuộc tính trong biểu đồ cần có ... Phạm vi (visibility) Một tính chất quan trọng của lập trình hướng đối tượng là tính gói Bốn lựa chọn phạm vi cho thuộc tính Public: Mọi lớp đều nhìn thấy thuộc tính (+) Private: Lớp khác không nhìn thấy thuộc tính (-) Protected: Các lớp kế thừa có thể nhìn thấy (#) Package và Implementation: Thuộc tính là public đối với các lớp trong cùng gói ... Private Attributes and Operation s Public Attributes Public Operations Public Private Protected Package (Implementation) Public Private Protected + - # Phân tích thiết kế hướng đối tượng Bài 5 - 31/35 Đặc tả thuộc tính lớp Với mỗi thuộc tính trong biểu đồ cần có ... Kiểu lưu trữ thuộc tính By value: Lớp chứa thuộc tính By reference: Thuộc tính đặt ngoài lớp, lớp có con trỏ đến thuộc tính Unspecified: Không xác định Thuộc tính tĩnh Là thuộc tính chia sẻ cho mọi hiện thực lớp Ký hiệu trong lớp là tên thuộc tính có gạch chân (phiên bản cũ: $) Thuộc tính suy diễn Là thuộc tính được tạo bởi 1 hay nhiều thuộc tính khác Ký hiệu: dấu / trước tên thuộc tính ... aClass staticAttribute / derivedAttribute Phân tích thiết kế hướng đối tượng Bài 5 - 32/35 Thao tác Khái niệm có thể có các thao tác (operation) Thao tác của khái niệm chính là khả năng thực hiện của một thể hiện của khái niệm ở giai đoạn này (phân tích, thiết kế kiến trúc) có thể không nhất thiết phải mô tả các thao tác của khái niệm Giai đoạn xây dựng (thực hiện, cụ thể hóa sản phẩm) sẽ thực hiện công việc này một cách chi tiết và đầy đủ Phân tích thiết kế hướng đối tượng Bài 5 - 33/35 Thêm các kết hợp Kết hợp biểu diễn quan hệ giữa các thể hiện của các khái niệm Chú ý : Liên kết không có cấu trúc: đó chỉ là các mối liên quan động, xảy ra nhất thời -> bỏ. Các liên kết (có cấu trúc) phải ổn định và tồn tại trong một khoảng thời gian nào đó Liên kết thừa: Những liên kết tìm lại được nhờ lưu hành theo những liên kết khác đã có Thuộc tính thừa: thuộc tính có thể suy ra từ các thuộc tính khác. NV bán hàng Đơn hàngCHỌN Phân tích thiết kế hướng đối tượng Bài 5 - 34/35 Thêm các kết hợp Bội số (multiplicity) của vai trò chỉ ra số thể hiện có thể có của quan hệ tham gia Các bội số có thể 1: chỉ đúng 1 1..* từ 1 đến nhiều * từ 0 đến nhiều M..n từ m đến n Cửa hàng Mặt hàng 1 Chứa * Phân tích thiết kế hướng đối tượng Bài 5 - 35/35 Ví dụ hệ đăng ký môn học Phân tích thiết kế hướng đối tượng Bài 5 - 36/35 Tóm tắt Bài này đã xem xét các vấn đề sau Tìm kiếm lớp Tìm kiếm thuộc tính, thao tác lớp Tìm kiếm các loại quan hệ giữa các lớp Biểu diễn biểu đồ lớp và gói Biểu diễn đồ họa các thuộc tính của thuộc tính, thao tác trong lớp Biểu diễn các thuộc tính cho quan hệ giữa các lớp Phân tích thiết kế hướng đối tượng Bài 5 - 37/35 Bài tập Bài 1: Xây dựng mô hình khái niệm hệ thống đăng ký môn học (đã làm) Bài 2: Xây dựng mô hình khái niệm của hệ thống phần mềm bán hàng tại siêu thị Phần mềm sử dụng tại siêu thị nhằm ghi nhận hoạt động bán hàng, xử lý các thanh toán với khách hàng. Phần mềm được sử dụng bởi người bán hàng và được quản lý bởi người quản lý siêu thị. Phần mềm nhằm tự động hóa công việc của người bán tại quầy thu tiền Bài 3: Xây dựng mô hình khái niệm của hệ thống phần mêm rút tiền ATM Phân tích thiết kế hướng đối tượng Bài 5 - 38/35 Bài tập
File đính kèm:
- Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 4 Mô hình hóa lĩnh vực ứng dụng.pdf