Điều kiện tiên quyết:
 Đã học môn Kỹ thuật lập trình, Phân tích và thiết kế hệ thống, Lập 
trình hướng đối tượng, Nhập môn công nghệ phần mềm
 Mục tiêu của học phần:
 Cung cấp cho sinh viên cách tiếp cận hướng đối tượng giúp để có 
được những công cụ, phương pháp mới, phù hợp để tạo ra những 
hệ thống phần mềm chất lượng cao nhằm đáp ứng được những 
nhu cầu thường xuyên thay đổi, ngày một phức tạp của thực tế.
 Kết thúc môn học, sinh viên có thể thực hiện các đồ án tốt nghiệp 
và tham gia vào các dự án phát triển phần mềm ứng dụng
              
            Gv: Vũ Thị Dương
Email: 
[email protected]
KHOA CÔNG NGHỆ THÔNG TIN
Trường Đại học công nghiệp Hà Nội
PHÂN TÍCH THIẾT KẾ 
HƯỚNG ĐỐI TƯỢNG
Nội dung môn học
 Thời lượng: 4 tín chỉ, 2 tín chỉ lt+ 2 tín chỉ TH
 Giáo viên: Vũ Thị Dương
 Khoa: Công nghệ phần mềm
 Email: 
[email protected]
 Điện thoại: 0904.755.919
2010 Phân tích thiết kế hướng đối tượng Bài 1 – 2/21
Nội dung môn học
 Điều kiện tiên quyết:
 Đã học môn Kỹ thuật lập trình, Phân tích và thiết kế hệ thống, Lập 
trình hướng đối tượng, Nhập môn công nghệ phần mềm
 Mục tiêu của học phần:
 Cung cấp cho sinh viên cách tiếp cận hướng đối tượng giúp để có 
được những công cụ, phương pháp mới, phù hợp để tạo ra những 
hệ thống phần mềm chất lượng cao nhằm đáp ứng được những 
nhu cầu thường xuyên thay đổi, ngày một phức tạp của thực tế.
 Kết thúc môn học, sinh viên có thể thực hiện các đồ án tốt nghiệp 
và tham gia vào các dự án phát triển phần mềm ứng dụng.
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 3/21
Nội dung chi tiết
1. Các khái niệm hướng đối tượng
2. Tổng quan về ngôn ngữ mô hình hóa UML
3. Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
4. Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực)
5. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)
6. Biểu đồ kiến trúc vật lý và phát sinh mã trình
7. Mô hình hóa dữ liệu
2010 Phân tích thiết kế hướng đối tượng Bài 1 – 4/21
Phân tích thiết kế hướng đối tượng Bài 1 - 5/21
Tài liệu tham khảo chính
1. Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng 
UML, Nhà xuất bản Giáo dục, 287 trang. 2002.
2. Zhiming Liu, Object-Oriented Software Development with 
UML, UNU/IIST, 169 pp, 2002.
3. Phần mềm: Rational Rose Enterprise Edition 2002, IBM 
Rational Software. 2002.
4. Nguyễn Văn Ba, Phát triển hệ thống hướng đối tượng với 
UML 2.0 và C++, Nxb Đại học quốc gia hà nội, 2005
5. TS. Dương Kiều Hoa – Tôn Thất Hoà An, Phân tích hệ 
thống bằng UML, tài liệu đào tạo từ xa HCM, 2009 
Các khái niệm cơ bản về hướng
đối tượng
Bài 1
Nội dung trình bày
 Phương pháp hướng chức năng
 Phương pháp hướng đối tượng
 Đối tượng
 Lớp
 Các tính chất cơ bản của hệ thống hướng đối tượng
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 7/21
dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 1 - 8/59
Phương pháp hướng chức năng
 Cho đến giữa 1990: Phần lớn các kỹ sư phần mềm sử dụng phương 
pháp thiết kế chức năng top-down (thiết kế kiến trúc)
 Bị ảnh hưởng bới các ngôn ngữ lập trình ALGOL, Pascal, C
 Các hàm của hệ thống phần mềm được xem như tiêu chí cơ sở khi 
phân rã
 Tách chức năng khỏi dữ liệu
 Chức năng có hành vi
 Dữ liệu chứa thông tin bị các chức năng tác động
 Phân tách top-down chia hệ thống thành các hàm để chuyển sang mã 
trình, dữ liệu được gửi giữa chúng. 
Main function
F1 F2
F 1.1 F 1.2 F 2.1 F 2.2
dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 1 - 9/59
Phương pháp hướng chức năng
 Tiến trình phát triển tập trung vào thông tin mà hệ 
thống quản lý
 Người phát triển hệ thống hỏi người sử dụng cần thông tin gì
 Thiết kế CSDL để lưu trữ thông tin
 Xây dựng màn hình nhập liệu
 Hiển thị báo cáo
 Chỉ tập trung vào thông tin, ít quan tâm đến cái gì thực 
hiện với thông tin hay hành vi hệ thống
 Tiệm cận này gọi là tiệm cận hướng dữ liệu
 Đã được áp dụng nhiều năm và tạo ra hàng ngàn hệ thống
 Thuận tiện cho thiết kế CSDL
 Bất tiện cho xây dựng các hệ thống tác nghiệp
 yêu cầu hệ thống thay đổi theo thời gian
dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 1 - 10/59
Phương pháp hướng chức năng
 Công nghệ hướng chức năng có các hạn chế sau
 Sản phẩm hình thành từ giải pháp này khó bảo trì
 Mọi chức năng đều chia sẻ khối dữ liệu lớn
 Các chức năng phải hiểu rõ dữ liệu được lưu trữ thế nào
 Khi thay đổi cấu trúc dữ liệu kéo theo thay đổi mọi hàm liên 
quan
 Tiến trình phát triển không ổn định
 Thay đổi yêu cầu kéo theo thay đổi các chức năng
 Rất khó bảo toàn kiến trúc thiết kế ban đầu khi hệ thống tiến 
hóa
 Tiệm cận này không hỗ trợ lập trình bằng ngôn ngữ 
hướng đối tượng như C++, Java, Smalltalk, Eiffel.
dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 1 - 11/59
Phương pháp hướng đối tượng
 Chiến lược phát triển phần mềm hướng đối tượng là quan sát thế giới 
như tập các đối tượng
 Các đối tượng tương tác và cộng tác với nhau để hình thành hành vi mức 
cao
 Các tính chất của đối tượng
 Đối tượng có thể là 
 thực thể nhìn thấy được trong thế giới thực (trong pha phân tích yêu cầu) 
 biểu diễn thực thể hệ thống (trong pha thiết kế)
 Đối tượng có trách nhiệm quản lý trạng thái của mình, cung cấp dịch vụ 
cho đối tượng khác khi có yêu cầu
 do vậy, dữ liệu và hàm cùng gói trong đối tượng
 Chức năng hệ thống: 
 các dịch vụ được yêu cầu và cung cấp như thế nào giữa các đối tượng, không 
quan tâm đến thay đổi trạng thái bên trong đối tượng
 Các đối tượng được phân thành class
 Các đối tượng thuộc cùng lớp đều có đặc tính (thuộc tính và thao tác) chung
dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 1 - 12/59
Phương pháp hướng đối tượng
 Tiệm cận hướng đối tượng tập trung vào cả thông tin và hành vi
 Cho khả năng xây dựng hệ thống mềm dẻo, “co dãn”
 Phương pháp này dựa trên các nguyên tắc sau
 Tính gói
 Kế thừa
 Đa trị
Lake Model
Natural Model
Phân biệt 2 hệ thống HĐT và HCN
 Phân biệt 2 hệ thống
 Lập trình cấu trúc
 Chương trình= thuật toán + cấu trúc dữ liệu
 Lập trình hướng đối tượng
 Chương trình = ∑ đối tượng
 Đối tượng = phương thức + thuộc tính
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 13/21
Đối tượng
 Đối tượng (object) là khái niện cho phép mô tả các sự 
vật/thực thể trong thế giới thực
 Các đối tượng duy trì các mối quan hệ giữa chúng
 Ví dụ: Sách – là 1 đối tượng
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 14/21
Đối tượng
 Các tính chất của đối tượng
 Đối tượng = trạng thái + hành vi + định danh
 Trạng thái là các đặc tính của đối tượng tại 1 thời điểm
 TT = tập hợp các thuộc tính
 Vd: xe máy: màu xanh,đứng yên, dream,
 Hành vi thể hiện chức năng của đối tượng
 Tập hợp các phương thức= 1 thao tác hoặc được thực hiện = chính nó 
hoặc thực hiện khi có yêu cầu từ môi trường
 Vd: xe máy: Khởi động, chạy
 Định danh thể hiện sự tồn tại duy nhất của đối tượng
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 15/21
Đối tượng
 Các đối tượng giao tiếp:
 Gửi thông điệp cho nhau
 Các loại thông điệp
 Hàm dựng (constructor)
 Hàm hủy (destructor)
 Hàm chọn lựa –get
 Hàm sửa đổi- set
 Các hàm khác
 Giữa các đối tượng có mối liên kết với hau
 Nguyễn văn a hoc tại đại học công nghiệp
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 16/21
Lớp
 Là khái niện dùng để mô tả 1 tập hợp các đối tượng có 
dùng 1 cấu trúc hành vi và có dùng mối quan hệ với các 
đối tượng khác
 Lớp= các thuộc tính + phương thức
 Lớp là 1 bước trừu tượng hóa
 Tìm kiếm các điểm giống nhau, bỏ qua các điểm khác của đtượng
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 17/21
Người
Tên
Tuổi
Đổi tuổi()
Lớp
 Quan hệ giữa các lớp: kết hợp
 Một kết hợp là một tập hợp các mối liên kết giữa các đối tượng
2010 Phân tích thiết kế hướng đối tượng Bài 1 – 18/21
Sinh viên Đại họcHọc
Lớp và đối tượng
 Đối tượng là thể hiện của lớp
 Giá trị là thể hiện của thuộc tính
 Liên kết là thể hiện của kết hợp
2010 Phân tích thiết kế hướng đối tượng Bài 1 – 19/21
Các tính chất của lập trình HĐT
 Tính đóng gói
 Dữ liệu + xử lý dữ liệu = đối tượng
 Thuộc tính + phương thức = lớp
 Ưu điểm
 Hạn chế ảnh hưởng khi có thay đổi cập nhật
 Ngăn cản sự truy cập thông tin từ bên ngoài
 Che dấu thông tin
 Kết thừa: là việc lớp được xây dựng từ 1 hay nhiều lớp bằng việc 
chia sẻ các thuộc tính và phương thức
 Đơn kế thừa
 Đa kế thừa
2010 Phân tích thiết kế hướng đối tượng Bài 1 – 20/21
Các tính chất của lập trình HĐT
 Tính đa hình
 Là khả năng các phương thức khác nhau được thực hiện để trả lời 
cùng 1 yêu cầu
 Mỗi lớp con thừa kế đặc tả các phương thức từ lớp cha và các 
phương thức này có thể được sửa đổi trong lớp con để thực hiện 
chức năng riêng trong lớp đó
 Một phương thức có nhiều dạng khác nhau trong các lớp khác 
nhau
2010 Phân tích thiết kế hướng đối tượng Bài 1 – 21/21