CONTENT – NỘI DUNG Phân tích hệ thống – Mô hình khái niệm và biểu đồ lớp 4.1 Mô hình khái niệm – mô hình đối tượng 4.2 Xác định các lớp, đối tượng 4.3 Mối quan hệ giữa các lớp đối tượng
Trang 1PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
OBJECT ORIENTED ANALYSIS AND DESIGN
DR DAO NAM ANH
Bài giảng 4:
PHÂN TÍCH HỆ THỐNG –
MÔ HÌNH KHÁI NIỆM VÀ BIỂU ĐỒ LỚP
Trang 21. Ian Sommerville, Software Engineering, Ninth Edition, 2011
2. Bernd Bruegge & Allen H Dutoit Object-Oriented
Software Engineering: Using UML, Patterns, and Java,
Third Edition, Prentice Hall, 2010
3. Russell C Bjork, ATM Simulation Links, Gordon College
4. Hans-Erik Eriksson, Magnus Penker, Brian Lyons, David
Fado, UML 2 Toolkit, John Wiley & Sons Inc, 2003
5. Dương Kiều Hoa – Tôn Thất Hoà An, Phân tích và thiết kế
Hệ thống thông tin với UML, 2006
6. Đào Nam Anh, Giáo Trình Phân Tích Và Thiết Kế Hướng
Đối Tượng, Đại học Điện lực, 2013
Trang 3CONTENT – NỘI DUNG
Phân tích hệ thống – Mô hình khái niệm và biểu
đồ lớp
4.1 Mô hình khái niệm – mô hình đối tượng 4.2 Xác định các lớp, đối tượng
4.3 Mối quan hệ giữa các lớp đối tượng
Nâng cấp mô hình
Trang 4thành căn bản nhất của mô hình là lớp, đối tượng và
mối quan hệ giữa chúng với nhau
Lớp và đối tượng sẽ mô hình hóa những gì có trong hệ thống mà chúng ta muốn miêu tả, các mối quan hệ sẽ
biểu thị cấu trúc
Khi sử dụng lập trình hướng đối tượng để xây dựng các
hệ thống phần mềm thì lớp và các mối quan hệ của
chúng là các thông tin cơ bản để xây dựng sản phẩm
phần mềm
Trang 5sử dụng các lớp để mô tả các nhóm sinh vật Ông nhóm các loài vào các lớp để mô tả lý thuyết tiến hóa
Thiết kế hướng đối tượng phân loại thông tin một cách tương tự Song UML cung cấp một điều mới: một sự
phân biệt rõ ràng giữa lớp và đối tượng
Trang 6là một phần của bất kỳ loại hệ thống, ví dụ, một máy
tính, một tổ chức, hoặc một nghiệp vụ
Một số đối tượng có xu hướng lý thuyết (chẳng hạn như các đối tượng thực hiện trong một hệ thống phần mềm):
Ta có thể lấy chúng bằng cách phân tích cấu trúc và hành
vi của các đối tượng trong thế giới thực Các đối tượng, trong cách này hay cách khác, đại diện cho sự hiểu biết của bạn về thế giới thực
Trang 8theo thời gian, và được định nghĩa qua một tổ hợp các thuộc tính
Ví dụ một danh sách ghi danh cho một lớp trong hệ
thống trường học có thể có hai trạng thái: trạng thái đóng
và trạng thái mở
Nếu danh sách sinh viên ghi danh cho lớp này còn nhỏ hơn số tối đa cho phép (ví dụ là 10), thì trạng thái của
bảng ghi danh này là mở
Một khi đã đủ 10 sinh viên ghi danh cho lớp, danh sách
sẽ chuyển sang trạng thái đóng
Trang 9như thế nào trước những yêu cầu từ các đối tượng khác,
nó tiêu biểu cho những gì mà đối tượng này có thể làm
Ứng xử được thực thi qua loạt các Phương thức
(operation) của đối tượng
Trong ví dụ trường đại học, một đối tượng bảng ghi danh lớp có thể có ứng xử là bổ sung thêm một sinh viên hay xóa đi tên của một sinh viên khi sinh viên đăng ký học hay bãi bỏ đăng ký
Trang 10duy nhất – dù trạng thái của nó có thể giống với trạng
thái của các đối tượng khác
Ví dụ, khóa học đại số 101 chương 1 và khóa học đại số
101 chương 2 là hai đối tượng trong hệ thống ghi danh trường học
Mặc dù cả hai đều thuộc loại bảng ghi danh, mỗi khóa
học vẫn có sự nhận dạng duy nhất của mình
Trang 11tĩnh
Một biểu đồ lớp miêu tả hướng nhìn tĩnh của một hệ
thống bằng các khái niệm lớp và mối quan hệ giữa
chúng với nhau
Mặc dù có những nét tương tự với một mô hình dữ liệu, nhưng các lớp không chỉ thể hiện cấu trúc thông tin mà còn miêu tả cả hành vi
Trang 12tiếp trong một ngôn ngữ hướng đối tượng có hỗ trợ trực tiếp khái niệm lớp
Một biểu đồ lớp chỉ chỉ ra các lớp, nhưng bên cạnh đó
còn có một biến tấu hơi khác đi một chút chỉ ra các đối tượng thật sự là các thực thể của các lớp này (biểu đồ đối tượng)
Trang 13Một lớp được biểu diễn bằng hình chữ nhật Ô trên cùng là tên lớp Ô tiếp theo là các thuộc tính, ô cuối cùng chỉ các hành vi Một khi đã
có một số lượng các lớp, ta sẽ xét đến quan hệ giữa các lớp đó với nhau
Trang 14lĩnh vực chuyên môn, với sự hiểu biết của người sử dụng
và hệ thống để nắm bắt được hệ thống
Các lớp phản ánh được vấn đề và có tên gọi, không gây nhầm lẫn
Mô hình Use Case tốt sẽ giúp rất nhiều trong tìm kiếm lớp
Dựa trên mô hình Use Case và đặc tả yêu cầu trong việc tìm kiếm cho các lớp
Trang 15kỳ thông tin cần được lưu trữ, chuyển đổi, phân tích, hoặc
xử lý, thì nó là một ứng viên có thể cho một lớp Các thông tin có thể bao gồm những khái niệm cần phải được đăng
ký trong hệ thống, các sự kiện hoặc giao dịch xảy ra tại
một thời điểm cụ thể
Có tồn tại hệ thống bên ngoài? Hệ thống bên ngoài có
thể được xem như lớp mà hệ thống của bạn có tương tác
Có mô hình tái sử dụng, các thư viện lớp, hoặc các thành phần nào không? Nếu có các mô hình, thư viện lớp, hoặc
Trang 16kỹ thuật kết nối với hệ thống có thể là ứng viên lớp
Có các bộ phận tổ chức nào? Đại diện cho một tổ chức
có thể được thực hiện với các lớp, đặc biệt là trong các
mô hình nghiệp vụ
Những vai trò của tác nhân trong nghiệp vụ? Những vai trò này có thể được xem như các lớp, chẳng hạn như
người sử dụng, hệ thống điều hành, khách hàng
Tìm các lớp cũng có dẫn đến việc sửa đổi, cải thiện các mô hình Use Case hoặc đặc tả yêu cầu
Trang 17nhật lớp chứa tên của lớp
Tên gọi nên càng rõ ràng
càng tốt, phải là một danh từ
ví dụ “hóa đơn” Tên lớp
không nên có một tiền tố
hoặc hậu tố
Trang 18đặc tính của các đối tượng
Lớp Printer với các thuộc tính
serialNumber, memory, status
Các thuộc tính chính xác bản
nhất đế mô tả lớp
Tuy nhiên, chỉ có các thuộc tính
có ích trong hệ thống mới được
chọn Mục đích của hệ thống ảnh
hưởng đến việc lựa chọn các
thuộc tính
Trang 19các đối tượng của lớp
Thuộc tính có kiểu cho biết loại
của thuộc tính, như thể hiện trong
hình bên
Loại thuộc tính điển hình là số
nguyên, boolean, chuỗi, ngày, số
thực được gọi là các kiểu dữ liệu
Trang 20năng hiển thị khác nhau Khả
năng hiển thị mô tả liệu thuộc
tính có thể được tham khảo từ
các lớp như thế nào