Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Class

w Tìm hiểu mục đích của bước thiết kế Class và

vị trí của công đoạn này trong qui trình

w Xác định bổ sung các class và quan hệ của

chúng cần để hỗ trợ cho việc cài đặt các cơ

chế kiến trúc đã chọn

w Xác định và phân tích việc chuyển đổi trạng

thái các đối tường trong các class kiểm soát

được trạng thái

w Tinh chỉnh các quan hệ, operation, và thuộc

tính

pdf131 trang | Chuyên mục: Thiết Kế Hướng Đối Tượng Với UML | Chia sẻ: dkS00TYs | Lượt xem: 2324 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Class, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 đối tượng – Thiết kế kiến trúc
Dương Anh Đức 111
Cài đặt Polymorphism
Không có Polymorphism Có Polymorphism
Animal
talk ()
Lion Tiger
talk () talk ()
if animal = “Lion” then
do the Lion talk
else if animal = “Tiger” then
do the Tiger talk
end
do the Animal talk
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 112
So sánh Interface và Generalization
w Các Interface hỗ trợ biểu diễn độc lập với cài đặt của
polymorphism
§ Realization relationships có thể băng ngang qua 
cấu trúc phân cấp của quan hệ tổng quát hóa
w Các Interface chỉ thuần là đặc tả, không có hành vi
§ Abstract base class có thể định nghĩa attributes và
associations
w Các Interface hoàn toàn độc lập với quan hệ kế thừa
§ Generalization thường dùng để cài đặt việc dùng 
lại
§ Interfaces thường dùng để đặc tả việc tái sử dụng 
các hành vi
w Generalization cung cấp một cách cài đặt 
polymorphism
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 113
Dùng QH tổng quát hóa để cài Polymorphism
w Chỉ cung cấp interface cho các class con cháu?
§ Thiết kế tổ tiên như một abstract class
§ Mọi method cài đặt ở các class con cháu
w Cung cấp interface và behavior mặc định cho các
class con cháu?
§ Thiết kế tổ tiên như một concrete class với các
method mặc định
§ Cho phép dùng các polymorphic operation
w Cung cấp interface và behavior bắt buộc cho các
class con cháu?
§ Thiết kế tổ tiên là concrete class
§ Không cho phép các polymorphic operation
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 114
Sử dụng quan hệ tổng quát hóa
w Chia sẻ các thuộc tính và hành vi chung
w Chia sẻ cài đặt
w Cài đặt cơ chế Polymorphism
w Cài đặt cơ chế Metamorphosis
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 115
Metamorphosis tồn tại trong thể giới thực
Làm sao mô hình hóa chúng?
Metamorphosis là gì?
wMetamorphosis
§ 1. Một thay đổi trong hình dạng, cấu trúc, hay 
chức năng; đặc biệt là các thay đổi vật lý mà các 
động vật phải trải qua, như con nòng nọc biến 
thành con ếc
§ 2. Mọi thay đổi được ghi nhận, như trong các ký 
tự, thể hiện, hoặc điều kiện
§ Xem thêm Webster’s New World Dictionary, 
Simon & Schuster, Inc., 1979
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 116
FulltimeStudent
name
address
studentID
gradDate
ParttimeStudent
name
address
maxNumCourses
studentID
Ví dụ: Metamorphosis
w Trong trường đại học, có full time students và
part time students
§ Full time students có ngày tốt nghiệp dự kiến còn
part time students lại không
§ Part time students có thể đăng ký học tối đa 3 môn
trong khi full time students không bị giới hạn
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 117
Chuyện gì xảy ra nếu 
một part-time student 
trở thành full-time 
student?
FulltimeStudent
Student
name
address
studentID
gradDate
ParttimeStudent
maxNumCourses
Một hướng tiếp cận Modeling Metamorphosis
w Có thể tạo một quan hệ tổng quát hóa
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 118
1 1 Classification
ParttimeClassification
maxNumCourses
Student
name
address
studentID
FulltimeClassification
gradDate
FulltimeStudent
Student
name
address
studentID
gradDate
ParttimeStudent
maxNumCourses
Một hướng tiếp cận khác
w Quan hệ kế thừa có thể dùng để mô hình hóa 
cấu trúc, hành vi và quan hệ chung và tạo quan 
hệ với phần “thay đổi”
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 119
: Student : Fulltime
Classification
: Student
Manager
: Parttime
Classification
delete
create
change to full time
Một hướng tiếp cận khác (tt)
wMetamorphosis được hoàn tất bởi object “nói 
chuyện với” phần “thay đổi”
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 120
studentID
11
ResidentInformation
dorm
room
roomKeyID
Student
name
address10..1
Classification
Metamorphosis và tính mềm dẻo
w Kỹ thuật này thêm tính mềm dẻo cho mô hình
ParttimeClassification
maxNumCourses
FulltimeClassification
gradDate
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 121
Bài tập: Định nghĩa Generalizations
w Hãy cho biết:
§ Tất cả các design class
w Hãy xác định:
§ Tât cả các tinh chỉnh liên quan đên generalizations 
có sẵn
§ Mọi ứng dụng generalization mới
• Kiểm tra là đã xem xétmọi metamorphosis
w Xây dựng các lược đồ:
§ Class diagram chứa mọi quan hệ tổng quát hóa 
mới (hay đã tính chỉnh) giữa các class
§ Tinh chỉnh use-case realizations (optional) 
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 122
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác định các Persistent Class
w Định nghĩa các Operation
w Định nghĩa Class Visibility
w Định nghĩa các Method
w Định nghĩa các trạng thái
w Định nghĩa các thuộc tính
w Định nghĩa các phụ thuộc
w Định nghĩa các mỗi kết hợp
w Định nghĩa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 123
Giải quyết đụng độ giữa các Use-Case
w Nhiều use case có thể truy cập riêng rẽ đến các 
design object
w Options
§ Dùng cơ chế truyền message đồng bộ => đến 
trước được xử lý trước
§ Xác định các operation (hay code) cần protect
§ Áp dụng cơ chế access control
• Lập hàng đợi Message
• Semaphores (hoặc 'tokens')
• Các cơ chế khóa khác
w Lời giải phụ thuộc nhiều vào môi trường cài đặt
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 124
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác định các Persistent Class
w Định nghĩa các Operation
w Định nghĩa Class Visibility
w Định nghĩa các Method
w Định nghĩa các trạng thái
w Định nghĩa các thuộc tính
w Định nghĩa các phụ thuộc
w Định nghĩa các mỗi kết hợp
w Định nghĩa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 125
Xử lý các yêu cầu phi chức năng nói chung
Analysis Class Analysis Mechanism(s)
Student
Schedule
CourseOffering
Course
RegistrationController
Persistency, Security
Persistency, Legacy Interface
Persistency, Legacy Interface
Distribution
Persistency, Security
Analysis Design Implementation
Remote Method 
Invocation (RMI)
Persistency
Analysis
Mechanism
(Conceptual)
Design
Mechanism
(Concrete)
Implementation
Mechanism
(Actual)
OODBMS
RDBMS
JDBC
ObjectStore
Java 1.2 from Sun
Legac
y Data
New 
Data
Distribution
Persistency Design
Guidelines
Some Design 
Class
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 126
Các bước thiết kế Class
w Tạo các Design Class ban đầu
w Xác định các Persistent Class
w Định nghĩa các Operation
w Định nghĩa Class Visibility
w Định nghĩa các Method
w Định nghĩa các trạng thái
w Định nghĩa các thuộc tính
w Định nghĩa các phụ thuộc
w Định nghĩa các mỗi kết hợp
w Định nghĩa các quan hệ tổng quát hóa
w Giải quyết đụng độ giữa các Use-Case
w Xử lý các yêu cầu phi chức năng nói chung
w Checkpoints
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 127
Checkpoints: Các Class
w Tên của mỗi class có phản ánh rõ vai trò của nó không?
w Class có biểu diễn một single well-defined abstraction? 
w Tất cả các attribute và trách nhiệm có gắn kết với nhau?
w Có bất kỳ class attribute, operation hay relationship nào cần 
tổng quát hóa, nghĩa là, chuyển lên tổ tiên không?
w Mọi yêu cầu trên class đã xử lý?
w Mọi đòi hỏi trên class phù hơp với với statecharts mô hình hóa
hành vi của class và các thể hiện của nó?
w Đã mô tả trọn vẹn chu kỳ sống của các thể hiện của class ?
w Class thực hiện mọi hành vi cần thiết?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 128
Checkpoints: Operations
w Các operation có dễ hiểu?
w Các mô tả trạng thái của class và hành vi của các
object của nó có chính xác?
w Class có thực hiện đúng hành vi yêu cầu nó?
w Bạn đã các định các tham số đúng chưa ?
w Bạn đã gán đầy đủ operations cho các message của 
mỗi object ?
w Các đặc tả cài đặt (nếu có) của operation có chính 
xác ?
w Các operation signature có phù hợp với NNLT cài đặt 
hệ thống?
w Tất cả các operation đề cần cho use-case realization?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 129
Checkpoints: Attributes
wMỗi attribute biểu diễn một khái niệm đơn?
w Tên của các attribute có gợi nhớ?
w Tất cả các attribute là cần thiết cho các use-
case realization ?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 130
Checkpoints: Relationships
w Tên của role gợi nhớ?
w Bản số của các relationship có chính xác?
PT & TK Hướng đối tượng – Thiết kế kiến trúc
Dương Anh Đức 131
Nhắc lại: Class Design
w Mục đích của Class Design là gì?
w Các class được tinh chỉnh bằng cách nào?
w Các statechart được tạo cho mỗi class?
w Các component chính của statechart là gì ? Cho 
mô tả ngắn gọn về mỗi thứ.
w Có những dạng tinh chỉnh relationship nào?
w Sự khác nhau giữa association và dependency?
w Ta phải làm gì với operations và attributes?

File đính kèm:

  • pdfBài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Thiết kế Class.pdf
Tài liệu liên quan