Tìm kiếm Bài giảng
Chương 1: Tổng quan về phân tích và thiết kế hướng đối tượng và UML

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn: TS. Nguyễn Thị Hoa Huệ, GVTG - ĐH SP Đà Nẵng
Người gửi: Phan Hồng Tuấn
Ngày gửi: 20h:41' 04-12-2022
Dung lượng: 2.1 MB
Số lượt tải: 36
Nguồn: TS. Nguyễn Thị Hoa Huệ, GVTG - ĐH SP Đà Nẵng
Người gửi: Phan Hồng Tuấn
Ngày gửi: 20h:41' 04-12-2022
Dung lượng: 2.1 MB
Số lượt tải: 36
Số lượt thích:
0 người
Phân tích và thiết kế hướng đối tượng
(3TC)
GV: TS. Nguyễn Thị Hoa Huệ
Email: huenth@gmail.com
Tài liệu tham khảo
Võ Trung Hùng, Phân tích và thiết kế hệ thống, bài giảng lưu hành nội
bộ, 2006.
Alan Dennis (Indiana University), Barbara Haley Wixom (University
of Virginia)
David Tegarden (Virginia Tech), Systems Analysis and Design with
UML Version 2.0, Second Edition, John Wiley & Sons, Inc., 2005.
…
Dec 4, 2022
Phân tích và thiết kế hướng đối tượng
2
KIỂM TRA ĐÁNH GIÁ
Chia nhóm: tối đa 3 SV/1 nhóm
Báo cáo tài liệu phân tích thiết kế hệ thống:
50%
Dec 4, 2022
Phân tích và thiết kế hướng đối tượng
3
Nội dung
Chương 1: Tổng quan về phân tích và thiết kế hướng
đối tượng và UML
Chương 2: Yêu cầu người dùng và Use Case
Chương 3: Các lớp và biểu đồ lớp
Chương 4: Biểu đồ hoạt động
Chương 5: Biểu đồ tuần tự
Chương 6: Biểu đồ thành phần
Chương 7: Biểu đồ triển khai
Dec 4, 2022
4
Chương 1: Tổng quan về phân
tích và thiết kế hướng đối
tượng và UML
Dec 4, 2022
Phân tích và thiết kế
5
Nội dung chương 1
Qui trình phát triển phần mềm
Khái niệm về phân tích và thiết kế hướng đối tượng
Khái niệm về UML
Qui trình phân tích và thiết kế hệ thống bằng UML
Thực hành: chọn 1 dự án thực tế và viết báo cáo nghiên
cứu khả thi
Dec 4, 2022
Phân tích và thiết kế hệ thống
6
Qui trình phát triển phần mềm
Dec 4, 2022
Phân tích và thiết kế hệ thống
7
Qui trình phát triển phần mềm
PTTK HT được thực hiện dựa vào quy trình phát triển phần
mềm.
Quy trình phát triển phần mềm gồm: Phương pháp luận, kỹ
thuật và công cụ
Dec 4, 2022
Phân tích và thiết kế hệ thống
8
Qui trình phát triển phần mềm
Phương pháp luận (Methodologies): Trình tự của cách tiếp
cận từng bước để phát triển sản phẩm cuối cùng là HTTT
Kỹ thuật (Công nghệ -Techniques): Trình tự mà người phân
tích tuân theo để đảm bảo việc phân tích và thiết kế được thực
hiện một cách đầy đủ, kỹ lưỡng
Công cụ (Tools): Chương trình máy tính. Ví dụ như CASE
(computer-aided software engineering) để thực hiện các kỹ
thuật cụ thể
→ Phương pháp luận, Kỹ thuật, Công cụ tạo nên một cách tiếp
cận có hệ thống để phân tích và thiết kế hệ thống
Dec 4, 2022
Phân tích và thiết kế hệ thống
9
Khái niệm về phân tích và thiết
kế hướng đối tượng
Hướng chức năng vs. Hướng đối tượng
Dec 4, 2022
Phân tích và thiết kế hệ thống
10
Hướng chức năng
Dựa vào các chức năng của hệ thống
Chia nhỏ các chức năng và làm mịn dần
Hệ thống là tập hợp các chức năng
Hệ thống gồm các hệ thống con
Làm chủ độ phức tạp
Các chức năng trao đổi với nhau bằng
truyền tham số hoặc dữ liệu (chẳng hạn
biến toàn cục) dùng chung
Dec 4, 2022
Phân tích và thiết kế hệ thống
11
Hướng chức năng
Phân cấp chức năng
Hệ thống
Chức năng 1
Chức năng 1.1
Dec 4, 2022
Chức năng 1.2
Chức năng 2
Chức năng 2.1
Phân tích và thiết kế hệ thống
Chức năng 2.2
12
Hướng chức năng
Ưu điểm
Phân tích được các chức năng của hệ thống
Đưa lại kết quả mong đợi
Nhược điểm
Chức năng cấu trúc
Thay đổi về chức năng khó khăn thay đổi cấu trúc
Tính mở của hệ thống thấp
Khó tái sử dụng
Chi phí sửa chữa lỗi lớn
Dec 4, 2022
Phân tích và thiết kế hệ thống
13
Hướng đối tượng
Lấy đối tượng làm trung tâm
Hệ thống = tập hợp các đối tượng + quan hệ
giữa các đối tượng
Các đối tượng trao đổi bằng thông điệp
(message)
Không sử dụng biến toàn cục
Đóng gói
Thừa kế
Dec 4, 2022
Phân tích và thiết kế hệ thống
14
Hướng đối tượng
Phân biệt
Lập trình cấu trúc
Thuật toán + cấu trúc dữ liệu = chương trình
Lập trình HĐT
Dec 4, 2022
đối tượng = chương trình
đối tượng = thuật toán + cấu trúc dữ liệu
Phân tích và thiết kế hệ thống
15
Hướng đối tượng
Ưu điểm chính
PT & TK gần gũi với thế giới thực
Tái sử dụng dễ dàng
Đóng gói, che dấu thông tin làm cho hệ thống
tin cậy hơn
Thừa kế làm giảm chi phí, hệ thống có tính mở
cao hơn
Xây dựng hệ thống lớn và phức tạp
Dec 4, 2022
Phân tích và thiết kế hệ thống
16
Đối tượng
Đối tượng (object) là khái niệm 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 quan hệ giữa
chúng
Nguyễn Văn A là một đối tượng
Dec 4, 2022
Phân tích và thiết kế hệ thống
17
Đố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
Dec 4, 2022
Trạng thái là các đặc tính của đối tượng tại một thời
điểm
Hành vi thể hiện các chức năng của đối tượng
Định danh thể hiện sự tồn tại duy nhất của đối tượng
Phân tích và thiết kế hệ thống
18
Đối tượng : trạng thái
Trạng thái = tập hợp các thuộc tính
Mỗi thuộc tính mô tả một đặc tính
Tại một thời điểm cụ thể, các thuộc tính mang
các giá trị trong miền xác định
Ví dụ
Dec 4, 2022
Một chiếc xe máy: màu xanh, 110 cm3, dream,
12000km, đứng yên, …
Phân tích và thiết kế hệ thống
19
Đối tượng : hành vi
Hành vi = tập hợp các phương thức
Phương thức: là một thao tác hoặc được thực
hiện bởi chính nó, hoặc thực hiện khi có yêu
cầu từ môi trường (thông điệp từ đối tượng
khác)
Hành vi phụ thuộc vào trạng thái
Ví dụ:
Dec 4, 2022
một xe máy có các hành vi: khởi động, chạy, …
Phân tích và thiết kế hệ thống
20
Giao tiếp giữa các đối tượng
Các đối tượng giao tiếp với nhau
Gửi thông điệp (message) cho nhau
Đối tượng A
Thông điệp
Đối tượng B
Các loại thông điệp
Dec 4, 2022
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 chức năng khác
Phân tích và thiết kế hệ thống
21
Đối tượng
Giữa các đối tượng có mối liên kết (link)
với nhau
Ví dụ
Nguyễn Văn A
Dec 4, 2022
Học
Đại học Đà Nẵng
Phân tích và thiết kế hệ thống
22
Lớp
Lớp là khái niệm dùng để mô tả một tập
hợp các đối tượng có cùng một cấu trúc,
cùng hành vi và có cùng những mối quan hệ
với các đối tượng khác
Lớp = các thuộc tính + các phương thức
Dec 4, 2022
Phân tích và thiết kế hệ thống
23
Lớp
Lớp là một 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
nhau của đối tượng
Person
Name
Age
Trừu tượng hóa làm giảm độ phức tạp
Dec 4, 2022
Phân tích và thiết kế hệ thống
changeAge
24
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
Sinh viên
Dec 4, 2022
học
Đại học
Phân tích và thiết kế hệ thống
25
Lớp & Đối tượng
Đối tượng là thể hiện (instance) 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
Lớp
Đối tượng
Thuộc tính
Giá trị
Kết hợp
Liên kết
Dec 4, 2022
Phân tích và thiết kế hệ thống
26
Các tính chất của HĐT
Tính đóng gói (encapsulation)
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ó sự 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
Dec 4, 2022
Phân tích và thiết kế hệ thống
27
Các tính chất của HĐT
Tính thừa kế (inheritance)
Một lớp được xây dựng từ một hoặc nhiều lớp khác
bằng việc chia sẽ các thuộc tính và phương thức
Lớp con thừa kế các thuộc tính và phương thức từ lớp
cha
Tổng quát hóa/chuyên biệt hóa
Dec 4, 2022
Tổng quát hóa (generalization): đặt các tính chất chung của
các lớp khác nhau vào một lớp cha
Chuyên biệt hóa (specialization): tạo ra một lớp con có các
tính chất riêng từ lớp cha
Phân tích và thiết kế hệ thống
28
Các tính chất của HĐT
Đơn thừa kế: một lớp con chỉ thừa kế từ một lớp cha duy nhất
Tổng quát hóa
Chuyên biệt hóa
XeÔtô
XeKhách
Lớp trừu tượng
hay lớp chung:XeTải
XeÔtô
Lớp cụ thể hay lớp chuyên biệt: XeKhách
Lớp chuyên biệt có thể thay thế lớp chung trong tất cả các
ứng dụng. Ví dụ: Ôtô tải là một ôtô.
Dec 4, 2022
Phân tích và thiết kế hệ thống
29
Các tính chất của HĐT
Đa thừa kế: một lớp con thừa kế từ nhiều
lớp cha khác nhau
Person
Personnel
Reseacher
Student
Teacher
Phd candidate
Dec 4, 2022
Phân tích và thiết kế hệ thống
30
Các tính chất của HĐT
Đa thừa kế
Đụng độ tên các thuộc tính
X
a
Y
a
Z
a của X
a của Y
Đa thừa kế không được chấp nhận bởi một số ngôn
ngữ: Java
Dec 4, 2022
Phân tích và thiết kế hệ thống
31
Các tính chất của HĐT
Ưu điểm của thừa kế
Phân loại các lớp: các lớp được phân loại, sắp
xếp theo một thứ bậc để dễ quản lí
Xây dựng các lớp: các lớp con được xây dựng
từ các lớp cha
Tiết kiệm thời gian xây dựng, tránh lặp lại
thông tin
Dec 4, 2022
Phân tích và thiết kế hệ thống
32
Các tính chất của HĐT
Tính đa hình (polymorphism): của phương thức,
tức là khả năng các phương thức khác nhau được
thực hiện để trả lời cùng một 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 các chức năng riêng
trong lớp đó
Một phương thức (cùng một tên phương thức) có
nhiều dạng (định nghĩa) khác nhau trong các lớp
khác nhau
Dec 4, 2022
Phân tích và thiết kế hệ thống
33
Các tính chất của HĐT
Ví dụ tính đa hình
ĐaGiác
DienTich()
Dec 4, 2022
HìnhVuông
HìnhTamGiác
DienTich()
DienTich()
Phân tích và thiết kế hệ thống
34
Khái niệm về UML
Dec 4, 2022
Phân tích và thiết kế hệ thống
37
Nội dung trình bày:
Khái niệm mô hình hóa
Một số phương pháp mô hình hóa HĐT
Lịch sử phát triển UML
Giới thiệu tổng quan UML
UML – một ngôn ngữ
Các khái niệm cơ bản của UML
Dec 4, 2022
Phân tích và thiết kế hệ thống
38
Khái niệm mô hình hóa
Mô hình (model) là một sự đơn giản hóa của hệ
thống thực
Mô hình là sự biểu diễn bằng hình ảnh của hệ thống
thực
Mô hình diễn tả hệ thống
ở một mức trừu tượng,
theo một quan điểm,
bằng một hình thức biểu diễn (văn bản, hình ảnh, …)
Mô hình hóa (modeling) là quá trình dùng mô hình
để diễn tả hệ thống
Dec 4, 2022
Phân tích và thiết kế hệ thống
39
Khái niệm mô hình hóa
Tại sao mô hình hóa?
Mô hình hóa để dễ hiểu
Mô hình hóa để trao đổi
Dễ nhận thức vấn đề
Phương tiện trao đổi giữa những người phát triển
Mô hình hóa để hoàn chỉnh
Dec 4, 2022
Dễ dàng nhận sự phù hợp giữa mô hình và nhu cầu
dể cải tiến, hoàn thiện
Phân tích và thiết kế hệ thống
40
Khái niệm mô hình hóa
Các nguyên tắc mô hình hóa
Chọn mô hình thích hợp
Góc nhìn cơ sở dữ liệu: mô hình thực thể - kết hợp
Góc nhìn có cấu trúc: thuật toán
Góc nhìn hướng đối tượng: các lớp và các quan hệ
Các mô hình được thể hiện nhiều mức chính
xác khác nhau
Dec 4, 2022
Hệ thống được diễn tả ở các mức chi tiết khác nhau,
tùy theo nhu cầu người sử dụng
41
Khái niệm mô hình hóa
Các nguyên tắc mô hình hóa
Các mô hình phải liên hệ với thế giới thực
Các mô hình xây dựng gần gũi với mô hình hệ thống
thực
Một hệ thống phải được mô hình hóa mởi một tập
hợp các mô hình
Dec 4, 2022
Mô hình hướng đối tượng > Mô hình hóa có cấu trúc
Chỉ một mô hình là không thể đủ
Phải thể hiện được nhiều góc nhìn khác nhau về hệ thống:
sử dụng, thiết kế, cài đặt, …
42
Lịch sử phát triển UML
Dec 4, 2022
43
UML là gì?
Nó là một ngôn ngữ mô hình hóa, không phải là một phương
pháp
Một phương pháp thông thường bao gồm một tập các quy tắc,
một ngôn ngữ mô hình hóa và một quy trình mô tả những công
việc cần làm
Một ngôn ngữ mô hình hóa bao gồm các ký hiệu và các cách
thức sử dụng cho việc thiết kế
Quy trình là những sự hướng dẫn các bước trong quá trình thiết
kế
Ngôn ngữ mô hình hóa là thành phần quan trọng nhất trong một
phương pháp, là yếu tố kết nối giữa các thành phần
44
Tại sao lại sử dụng UML?
Giúp cho việc phân tích và thiết kế
Là công cụ giao tiếp (Communication)
Sử dụng các ưu điểm của OO
Tài liệu hóa (Documentation)
Như được đề cập trong The Unified Modeling Language User
Guide;
Ngôn ngữ UML dùng để:
• Trực quan hóa (Visualizing)
• Đặc tả (Specifying)
• Xây dựng (Constructing)
• Cung cấp tài liệu (Documenting)
45
UML – ngôn ngữ để mô hình hóa
trực quan
UML cung cấp tập hợp các kí hiệu và luật
để biểu diễn đồ họa những mô hình của hệ
thống
Biểu diễn đồ họa thường đem lại cái nhìn
tốt hơn về hệ thống
Dec 4, 2022
46
UML – ngôn ngữ để đặc tả
Một đặc tả là một mô tả chính xác và không
nhập nhằng về hệ thống
UML cung cấp các công cụ để đặc tả hệ
thống ở nhiều mức: phân tích, thiết kế và
cài đặt
Dec 4, 2022
47
UML – ngôn ngữ để xây dựng
Các mô hình UML có thể được chuyển sang
một ngôn ngữ lập trình khá dễ dàng
UML là khá chính xác và không nhập
nhằng để cho phép thực hiện các mô phỏng
Dec 4, 2022
48
UML – ngôn ngữ để lập tài liệu
UML cho phép mô tả tất cả các bước xây
dựng một hệ thống
Các mô hình được xây dựng tạo nên một tài
liệu đầy đủ và chính xác về hệ thống
Dec 4, 2022
49
Các khái niệm cơ bản của UML
Mô hình và các hướng nhìn (Views)
Các biểu đồ chính
Các thành phần cơ bản
50
(3TC)
GV: TS. Nguyễn Thị Hoa Huệ
Email: huenth@gmail.com
Tài liệu tham khảo
Võ Trung Hùng, Phân tích và thiết kế hệ thống, bài giảng lưu hành nội
bộ, 2006.
Alan Dennis (Indiana University), Barbara Haley Wixom (University
of Virginia)
David Tegarden (Virginia Tech), Systems Analysis and Design with
UML Version 2.0, Second Edition, John Wiley & Sons, Inc., 2005.
…
Dec 4, 2022
Phân tích và thiết kế hướng đối tượng
2
KIỂM TRA ĐÁNH GIÁ
Chia nhóm: tối đa 3 SV/1 nhóm
Báo cáo tài liệu phân tích thiết kế hệ thống:
50%
Dec 4, 2022
Phân tích và thiết kế hướng đối tượng
3
Nội dung
Chương 1: Tổng quan về phân tích và thiết kế hướng
đối tượng và UML
Chương 2: Yêu cầu người dùng và Use Case
Chương 3: Các lớp và biểu đồ lớp
Chương 4: Biểu đồ hoạt động
Chương 5: Biểu đồ tuần tự
Chương 6: Biểu đồ thành phần
Chương 7: Biểu đồ triển khai
Dec 4, 2022
4
Chương 1: Tổng quan về phân
tích và thiết kế hướng đối
tượng và UML
Dec 4, 2022
Phân tích và thiết kế
5
Nội dung chương 1
Qui trình phát triển phần mềm
Khái niệm về phân tích và thiết kế hướng đối tượng
Khái niệm về UML
Qui trình phân tích và thiết kế hệ thống bằng UML
Thực hành: chọn 1 dự án thực tế và viết báo cáo nghiên
cứu khả thi
Dec 4, 2022
Phân tích và thiết kế hệ thống
6
Qui trình phát triển phần mềm
Dec 4, 2022
Phân tích và thiết kế hệ thống
7
Qui trình phát triển phần mềm
PTTK HT được thực hiện dựa vào quy trình phát triển phần
mềm.
Quy trình phát triển phần mềm gồm: Phương pháp luận, kỹ
thuật và công cụ
Dec 4, 2022
Phân tích và thiết kế hệ thống
8
Qui trình phát triển phần mềm
Phương pháp luận (Methodologies): Trình tự của cách tiếp
cận từng bước để phát triển sản phẩm cuối cùng là HTTT
Kỹ thuật (Công nghệ -Techniques): Trình tự mà người phân
tích tuân theo để đảm bảo việc phân tích và thiết kế được thực
hiện một cách đầy đủ, kỹ lưỡng
Công cụ (Tools): Chương trình máy tính. Ví dụ như CASE
(computer-aided software engineering) để thực hiện các kỹ
thuật cụ thể
→ Phương pháp luận, Kỹ thuật, Công cụ tạo nên một cách tiếp
cận có hệ thống để phân tích và thiết kế hệ thống
Dec 4, 2022
Phân tích và thiết kế hệ thống
9
Khái niệm về phân tích và thiết
kế hướng đối tượng
Hướng chức năng vs. Hướng đối tượng
Dec 4, 2022
Phân tích và thiết kế hệ thống
10
Hướng chức năng
Dựa vào các chức năng của hệ thống
Chia nhỏ các chức năng và làm mịn dần
Hệ thống là tập hợp các chức năng
Hệ thống gồm các hệ thống con
Làm chủ độ phức tạp
Các chức năng trao đổi với nhau bằng
truyền tham số hoặc dữ liệu (chẳng hạn
biến toàn cục) dùng chung
Dec 4, 2022
Phân tích và thiết kế hệ thống
11
Hướng chức năng
Phân cấp chức năng
Hệ thống
Chức năng 1
Chức năng 1.1
Dec 4, 2022
Chức năng 1.2
Chức năng 2
Chức năng 2.1
Phân tích và thiết kế hệ thống
Chức năng 2.2
12
Hướng chức năng
Ưu điểm
Phân tích được các chức năng của hệ thống
Đưa lại kết quả mong đợi
Nhược điểm
Chức năng cấu trúc
Thay đổi về chức năng khó khăn thay đổi cấu trúc
Tính mở của hệ thống thấp
Khó tái sử dụng
Chi phí sửa chữa lỗi lớn
Dec 4, 2022
Phân tích và thiết kế hệ thống
13
Hướng đối tượng
Lấy đối tượng làm trung tâm
Hệ thống = tập hợp các đối tượng + quan hệ
giữa các đối tượng
Các đối tượng trao đổi bằng thông điệp
(message)
Không sử dụng biến toàn cục
Đóng gói
Thừa kế
Dec 4, 2022
Phân tích và thiết kế hệ thống
14
Hướng đối tượng
Phân biệt
Lập trình cấu trúc
Thuật toán + cấu trúc dữ liệu = chương trình
Lập trình HĐT
Dec 4, 2022
đối tượng = chương trình
đối tượng = thuật toán + cấu trúc dữ liệu
Phân tích và thiết kế hệ thống
15
Hướng đối tượng
Ưu điểm chính
PT & TK gần gũi với thế giới thực
Tái sử dụng dễ dàng
Đóng gói, che dấu thông tin làm cho hệ thống
tin cậy hơn
Thừa kế làm giảm chi phí, hệ thống có tính mở
cao hơn
Xây dựng hệ thống lớn và phức tạp
Dec 4, 2022
Phân tích và thiết kế hệ thống
16
Đối tượng
Đối tượng (object) là khái niệm 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 quan hệ giữa
chúng
Nguyễn Văn A là một đối tượng
Dec 4, 2022
Phân tích và thiết kế hệ thống
17
Đố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
Dec 4, 2022
Trạng thái là các đặc tính của đối tượng tại một thời
điểm
Hành vi thể hiện các chức năng của đối tượng
Định danh thể hiện sự tồn tại duy nhất của đối tượng
Phân tích và thiết kế hệ thống
18
Đối tượng : trạng thái
Trạng thái = tập hợp các thuộc tính
Mỗi thuộc tính mô tả một đặc tính
Tại một thời điểm cụ thể, các thuộc tính mang
các giá trị trong miền xác định
Ví dụ
Dec 4, 2022
Một chiếc xe máy: màu xanh, 110 cm3, dream,
12000km, đứng yên, …
Phân tích và thiết kế hệ thống
19
Đối tượng : hành vi
Hành vi = tập hợp các phương thức
Phương thức: là một thao tác hoặc được thực
hiện bởi chính nó, hoặc thực hiện khi có yêu
cầu từ môi trường (thông điệp từ đối tượng
khác)
Hành vi phụ thuộc vào trạng thái
Ví dụ:
Dec 4, 2022
một xe máy có các hành vi: khởi động, chạy, …
Phân tích và thiết kế hệ thống
20
Giao tiếp giữa các đối tượng
Các đối tượng giao tiếp với nhau
Gửi thông điệp (message) cho nhau
Đối tượng A
Thông điệp
Đối tượng B
Các loại thông điệp
Dec 4, 2022
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 chức năng khác
Phân tích và thiết kế hệ thống
21
Đối tượng
Giữa các đối tượng có mối liên kết (link)
với nhau
Ví dụ
Nguyễn Văn A
Dec 4, 2022
Học
Đại học Đà Nẵng
Phân tích và thiết kế hệ thống
22
Lớp
Lớp là khái niệm dùng để mô tả một tập
hợp các đối tượng có cùng một cấu trúc,
cùng hành vi và có cùng những mối quan hệ
với các đối tượng khác
Lớp = các thuộc tính + các phương thức
Dec 4, 2022
Phân tích và thiết kế hệ thống
23
Lớp
Lớp là một 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
nhau của đối tượng
Person
Name
Age
Trừu tượng hóa làm giảm độ phức tạp
Dec 4, 2022
Phân tích và thiết kế hệ thống
changeAge
24
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
Sinh viên
Dec 4, 2022
học
Đại học
Phân tích và thiết kế hệ thống
25
Lớp & Đối tượng
Đối tượng là thể hiện (instance) 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
Lớp
Đối tượng
Thuộc tính
Giá trị
Kết hợp
Liên kết
Dec 4, 2022
Phân tích và thiết kế hệ thống
26
Các tính chất của HĐT
Tính đóng gói (encapsulation)
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ó sự 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
Dec 4, 2022
Phân tích và thiết kế hệ thống
27
Các tính chất của HĐT
Tính thừa kế (inheritance)
Một lớp được xây dựng từ một hoặc nhiều lớp khác
bằng việc chia sẽ các thuộc tính và phương thức
Lớp con thừa kế các thuộc tính và phương thức từ lớp
cha
Tổng quát hóa/chuyên biệt hóa
Dec 4, 2022
Tổng quát hóa (generalization): đặt các tính chất chung của
các lớp khác nhau vào một lớp cha
Chuyên biệt hóa (specialization): tạo ra một lớp con có các
tính chất riêng từ lớp cha
Phân tích và thiết kế hệ thống
28
Các tính chất của HĐT
Đơn thừa kế: một lớp con chỉ thừa kế từ một lớp cha duy nhất
Tổng quát hóa
Chuyên biệt hóa
XeÔtô
XeKhách
Lớp trừu tượng
hay lớp chung:XeTải
XeÔtô
Lớp cụ thể hay lớp chuyên biệt: XeKhách
Lớp chuyên biệt có thể thay thế lớp chung trong tất cả các
ứng dụng. Ví dụ: Ôtô tải là một ôtô.
Dec 4, 2022
Phân tích và thiết kế hệ thống
29
Các tính chất của HĐT
Đa thừa kế: một lớp con thừa kế từ nhiều
lớp cha khác nhau
Person
Personnel
Reseacher
Student
Teacher
Phd candidate
Dec 4, 2022
Phân tích và thiết kế hệ thống
30
Các tính chất của HĐT
Đa thừa kế
Đụng độ tên các thuộc tính
X
a
Y
a
Z
a của X
a của Y
Đa thừa kế không được chấp nhận bởi một số ngôn
ngữ: Java
Dec 4, 2022
Phân tích và thiết kế hệ thống
31
Các tính chất của HĐT
Ưu điểm của thừa kế
Phân loại các lớp: các lớp được phân loại, sắp
xếp theo một thứ bậc để dễ quản lí
Xây dựng các lớp: các lớp con được xây dựng
từ các lớp cha
Tiết kiệm thời gian xây dựng, tránh lặp lại
thông tin
Dec 4, 2022
Phân tích và thiết kế hệ thống
32
Các tính chất của HĐT
Tính đa hình (polymorphism): của phương thức,
tức là khả năng các phương thức khác nhau được
thực hiện để trả lời cùng một 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 các chức năng riêng
trong lớp đó
Một phương thức (cùng một tên phương thức) có
nhiều dạng (định nghĩa) khác nhau trong các lớp
khác nhau
Dec 4, 2022
Phân tích và thiết kế hệ thống
33
Các tính chất của HĐT
Ví dụ tính đa hình
ĐaGiác
DienTich()
Dec 4, 2022
HìnhVuông
HìnhTamGiác
DienTich()
DienTich()
Phân tích và thiết kế hệ thống
34
Khái niệm về UML
Dec 4, 2022
Phân tích và thiết kế hệ thống
37
Nội dung trình bày:
Khái niệm mô hình hóa
Một số phương pháp mô hình hóa HĐT
Lịch sử phát triển UML
Giới thiệu tổng quan UML
UML – một ngôn ngữ
Các khái niệm cơ bản của UML
Dec 4, 2022
Phân tích và thiết kế hệ thống
38
Khái niệm mô hình hóa
Mô hình (model) là một sự đơn giản hóa của hệ
thống thực
Mô hình là sự biểu diễn bằng hình ảnh của hệ thống
thực
Mô hình diễn tả hệ thống
ở một mức trừu tượng,
theo một quan điểm,
bằng một hình thức biểu diễn (văn bản, hình ảnh, …)
Mô hình hóa (modeling) là quá trình dùng mô hình
để diễn tả hệ thống
Dec 4, 2022
Phân tích và thiết kế hệ thống
39
Khái niệm mô hình hóa
Tại sao mô hình hóa?
Mô hình hóa để dễ hiểu
Mô hình hóa để trao đổi
Dễ nhận thức vấn đề
Phương tiện trao đổi giữa những người phát triển
Mô hình hóa để hoàn chỉnh
Dec 4, 2022
Dễ dàng nhận sự phù hợp giữa mô hình và nhu cầu
dể cải tiến, hoàn thiện
Phân tích và thiết kế hệ thống
40
Khái niệm mô hình hóa
Các nguyên tắc mô hình hóa
Chọn mô hình thích hợp
Góc nhìn cơ sở dữ liệu: mô hình thực thể - kết hợp
Góc nhìn có cấu trúc: thuật toán
Góc nhìn hướng đối tượng: các lớp và các quan hệ
Các mô hình được thể hiện nhiều mức chính
xác khác nhau
Dec 4, 2022
Hệ thống được diễn tả ở các mức chi tiết khác nhau,
tùy theo nhu cầu người sử dụng
41
Khái niệm mô hình hóa
Các nguyên tắc mô hình hóa
Các mô hình phải liên hệ với thế giới thực
Các mô hình xây dựng gần gũi với mô hình hệ thống
thực
Một hệ thống phải được mô hình hóa mởi một tập
hợp các mô hình
Dec 4, 2022
Mô hình hướng đối tượng > Mô hình hóa có cấu trúc
Chỉ một mô hình là không thể đủ
Phải thể hiện được nhiều góc nhìn khác nhau về hệ thống:
sử dụng, thiết kế, cài đặt, …
42
Lịch sử phát triển UML
Dec 4, 2022
43
UML là gì?
Nó là một ngôn ngữ mô hình hóa, không phải là một phương
pháp
Một phương pháp thông thường bao gồm một tập các quy tắc,
một ngôn ngữ mô hình hóa và một quy trình mô tả những công
việc cần làm
Một ngôn ngữ mô hình hóa bao gồm các ký hiệu và các cách
thức sử dụng cho việc thiết kế
Quy trình là những sự hướng dẫn các bước trong quá trình thiết
kế
Ngôn ngữ mô hình hóa là thành phần quan trọng nhất trong một
phương pháp, là yếu tố kết nối giữa các thành phần
44
Tại sao lại sử dụng UML?
Giúp cho việc phân tích và thiết kế
Là công cụ giao tiếp (Communication)
Sử dụng các ưu điểm của OO
Tài liệu hóa (Documentation)
Như được đề cập trong The Unified Modeling Language User
Guide;
Ngôn ngữ UML dùng để:
• Trực quan hóa (Visualizing)
• Đặc tả (Specifying)
• Xây dựng (Constructing)
• Cung cấp tài liệu (Documenting)
45
UML – ngôn ngữ để mô hình hóa
trực quan
UML cung cấp tập hợp các kí hiệu và luật
để biểu diễn đồ họa những mô hình của hệ
thống
Biểu diễn đồ họa thường đem lại cái nhìn
tốt hơn về hệ thống
Dec 4, 2022
46
UML – ngôn ngữ để đặc tả
Một đặc tả là một mô tả chính xác và không
nhập nhằng về hệ thống
UML cung cấp các công cụ để đặc tả hệ
thống ở nhiều mức: phân tích, thiết kế và
cài đặt
Dec 4, 2022
47
UML – ngôn ngữ để xây dựng
Các mô hình UML có thể được chuyển sang
một ngôn ngữ lập trình khá dễ dàng
UML là khá chính xác và không nhập
nhằng để cho phép thực hiện các mô phỏng
Dec 4, 2022
48
UML – ngôn ngữ để lập tài liệu
UML cho phép mô tả tất cả các bước xây
dựng một hệ thống
Các mô hình được xây dựng tạo nên một tài
liệu đầy đủ và chính xác về hệ thống
Dec 4, 2022
49
Các khái niệm cơ bản của UML
Mô hình và các hướng nhìn (Views)
Các biểu đồ chính
Các thành phần cơ bản
50
 








Các ý kiến mới nhất