Phân tích thiết kế hướng đối tượng
Đỗ Ngọc
GV: Phan
ThịNhư
KimLoan
Loan
2 – Phân tích thiết kế hướng đối tượng
Nội dung trước
Giới thiệu
Tiến trình phát triển hệ thống
Các phương pháp phát triển hệ thống
2 – Phân tích thiết kế hướng đối tượng
2
Nội dung
Hệ thống hướng chức năng vs. Hệ thống hướng đối tượng
Các đặc điểm cơ bản của hệ thống hướng đối tượng
Giới thiệu UML – UML 2.0
Phân tích thiết kế hướng đối tượng với UML 2.0
2 – Phân tích thiết kế hướng đối tượng
3
Giới thiệu
Lịch sử phát triển của ngôn ngữ lập trình:
First Generation (1954 – 1958)
• Fortran I
Second Generation (1959 – 1961)
• Fortran II, Algol, Cobol
Third Generation (1962 – 1970)
• PL/I, Pascal
Object Oriented Languages
• Smalltalk, C++, Java
2 – Phân tích thiết kế hướng đối tượng
4
Lịch sử phát triển OOAD
2 – Phân tích thiết kế hướng đối tượng
5
Lịch sử của UML
UML 2.0
OMG Acceptance, Nov ‘97
Public & Feedback
Final submission to OMG, Sep ’97
UML 1.3
First submission to OMG, Jan ‘97
UML Partners
UML 1.0
Web – Jun ‘96
OOPSLA ‘95
Others method
UML 1.1
UML 0.9
Unified method
Booch method
2 – Phân tích thiết kế hướng đối tượng
OMT
OOSE
6
Giới thiệu
Thiết kế cấu trúc và thiết kế hướng đối tượng
Đăng ký học
phần
Nhập học
Đóng học phí
Student
Account
Thi cử
v..v…
Thiết kế cấu trúc
2 – Phân tích thiết kế hướng đối tượng
7
Giới thiệu
Thiết kế cấu trúc và thiết kế hướng đối tượng
Messege
Messege
Messege
Student
Account
Messege
v..v…
Thiết kế hướng đối tượng
2 – Phân tích thiết kế hướng đối tượng
8
Nguyên tắc cơ bản của OO
Hướng đối tượng – Object-Oriented
Trừu tượng hoá – Abstraction
Tính đóng gói – Encapsulation
Tính đơn thể - Modularity
Tính phân cấp – Hierarchy
2 – Phân tích thiết kế hướng đối tượng
9
Trừu tượng hoá – Abstraction
Quản lý độ phức tạp
Người bán hàng
Sản phẩm
Khách hàng
2 – Phân tích thiết kế hướng đối tượng
10
Tính đóng gói – Encapsulation
Che dấu cài đặt bên trong với clients
Clients phụ thuộc vào interface
Tăng tính mềm dẻo
2 – Phân tích thiết kế hướng đối tượng
11
Tính đơn thể - Modularity
Phân chia nhỏ 1 vấn đề phức tạp thành nhiều
phần nhỏ, đơn giản hơn để có thể quản lý được
độ phức tạp
Lập hoá đơn bán hàng
Nhận đơn đặt hàng
Thanh toán hoá đơn
Xuất hoá đơn
Thực hiện đơn đặt hàng
Thanh toán đơn đặt hàng
…Các đơn thể quản lý tồn kho
Hệ thống xử lý mua bán hàng hoá
2 – Phân tích thiết kế hướng đối tượng
12
Tính phân cấp – Hierarchy
Giảm mức độ
trừu tượng
Tài sản
Tài khoản ngân hàng
Tăng mức độ
trừu tượng
Tài khoản
Tiết kiệm
Chứng khoán
Tài khoản
Cổ phiếu
Thanh toán
Bất động sản
Trái phiếu
Các phần tử trên cùng một mức phải có cùng mức độ trừu tượng
2 – Phân tích thiết kế hướng đối tượng
13
Các khái niệm cơ bản của HĐT
Objects & Class
Attributes (Properties) & Operation (Behavior)
Method & Message
Interface (Polymorphism)
Component
Package
Subsystem
Relationship
2 – Phân tích thiết kế hướng đối tượng
14
Object
Một cách không hình thức, một đối tượng biểu diễn một thực
thể, dạng vật lý, khái niệm hoặc phần mềm
Thực thể
Khái niệm
Thực thể
vật lý
Truck
Thực thể
Phần mềm
Chemical Process
Linked-list
2 – Phân tích thiết kế hướng đối tượng
15
Objects & Class
Một đối tượng là một đối tượng trừu tượng, hoặc một vật với
giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể
Lớp (Class) – khuôn mẫu cho các thể hiện của object
Đối tượng (Object) – Thể hiện của một class
Thuộc tính (Attributes)
Hành vi (Behaviors) – chi tiết đối tượng có thể làm gì
2 – Phân tích thiết kế hướng đối tượng
16
Biểu diễn đối tượng
Một đối tượng được biểu diễn bởi một hình chữ
nhật với tên được gạch dưới
: Profressor
A x B = 10
Chỉ có tên Class
ProfressorJohn
ProfressorJohn:
Professor
Profressor John
Chỉ có tên Object
Tên Class và tên Object
2 – Phân tích thiết kế hướng đối tượng
17
Class - Example
Class
Course
Properties
Behavior
Tên
Thêm một sinh viên
Địa điểm
A x B = 10
Thời gian
Số tín chỉ
Huỷ một sinh viên
Lấy danh sách giáo sư
Profressor John
…
Giờ bắt đầu
Giờ kết thúc
2 – Phân tích thiết kế hướng đối tượng
18
Class & Object
2 – Phân tích thiết kế hướng đối tượng
19
Method & Message
Phương thức (Methods) implement an object’s behavior
Messages are sent to trigger methods
Procedure call from one object to the next
2 – Phân tích thiết kế hướng đối tượng
20
Phương thức và message
2 – Phân tích thiết kế hướng đối tượng
21
Polymorphism
Khả năng che dấu nhiều cài đặt khác nhau
bên dưới một giao diện (interface) duy nhất
Nguyên tắc OO đóng gói
Nhà sản xuất A
Nhà sản xuất B
Nhà sản xuất C
2 – Phân tích thiết kế hướng đối tượng
22
Polymorphism – Interface
Interface là hình thức hoá polymorphism
Interface hỗ trợ kiến trúc “plug & play”
Tube
<<interface>>
Shape
Pyramid
Draw
Move
Scale
Rotate
Cube
Quan hệ Realizzation
2 – Phân tích thiết kế hướng đối tượng
23
Component
Một phần không tầm thường của hệ thống, gần như độc
lập và có thể thay thế được, giữ một chức năng rõ ràng
trong hệ thống
Một component có thể là
Một source code component
Một run time components hoặc
Một executable component
Source File
Name
<<EXE>>
Executable name
2 – Phân tích thiết kế hướng đối tượng
<<DLL>>
Component name
24
Package
Một package là một cơ chế để tổ chức các phần tử vào
thành các nhóm
Một phần tử trong mô hình có thể chứa các phần tử khác
Package
Name
Nguyên tắc OO
Tính đơn thể
Dùng để
Tổ chức mô hình đang phát triển
Một đơn vị trong quản trị cấu hình
2 – Phân tích thiết kế hướng đối tượng
25