Vũ Chí Cường, 2017
Giới thiệu về UML
Các biểu đồ trong UML
Giới thiệu các phần mềm
Lịch sử phát triển
Ngôn ngữ UML
Các khái niệm cơ bản trong UML
Giai đoạn (1960s – 1970s)
Cobol, Fortran, C
Structed analysis and design technique
Giai đoạn (1980s – đầu 1990s)
Smalltalk, Ada, C#, Visual Basic
Early generation – OO methods
Giai đoạn (cuối 1990)
Ngơn ngữ lập trình Java
UML (Unified Modelling Language) (tháng
11/1997)
Unified Process
UML là ngơn ngữ mơ hình hóa tởng qt được xây dựng để
đặc tả, phát triển và viết tài liệu cho các khía cạnh (viewhướng nhìn) trong phát triển phần mềm hướng đối tượng.
UML giúp người phát triển hiểu rõ và ra quyết định liên quan
đến phần mềm cần xây dựng.
UML bao gồm tập các khái niệm, ký hiệu, các biểu đồ và
hướng dẫn.
UML hỗ trợ xây dựng hệ thống hướng đối tượng dựa trên
việc nắm bắt khía cạnh cấu trúc tĩnh và các hành vi đợng của
hệ thống.
Các cấu trúc tĩnh định nghĩa các kiểu đối tượng quan trọng của hệ
thống, nhằm cài đặt và chỉ ra mối quan hệ giữa các đối tượng.
Các hành vi động (dynamic behavior) định nghĩa các hoạt động của
các đối tượng theo thời gian và tương tác giữa các đối tượng
hướng tới đích.
Khái niệm mơ hình
Mơ hình (model) là mợt biểu diễn của sự vật, đối
tượng hay một tập các sự vật trong một lĩnh vực
ứng dụng nào đó theo một quan điểm nhất định.
Mục đích của mơ hình là nhằm nắm bắt các khía
cạnh quan trọng của sự vật mà mình quan tâm và
biểu diễn theo mợt tập ký hiệu hoặc quy tắc nào
đó.
Các mơ hình thường được xây dựng sao cho có
thể vẽ được thành các biểu đồ dựa trên tập ký
hiệu và quy tắc đã cho.
Kiến trúc hệ thống
Kiến trúc hệ thống là trừu tượng hóa các khía
cạnh quan trọng nhất của hệ thống. Cung cấp
khung trong đó thiết kế được xây dựng
Thể hiện phần mềm sẽ được tổ chức như thế nào
và cung cấp các giao thức trao đổi dữ liệu và giao
tiếp giữa các modul.
Là vật phẩm quan trong nhất, được sử dụng để
quản lý các hướng nhìn (view) khác nhau và điều
khiển hệ thống tăng dần và lặp trong suốt chu kỳ
sống
Các hướng nhìn
Hướng nhìn user case ( user case view)
▪ Miêu tả chức năng của hệ thống sẽ phải cung cấp
Hướng nhìn logic ( logic view)
▪ Miêu tả phương thức mà các chức năng của hệ thống sẽ
được cung cấp
Hướng nhìn thành phần ( component view)
▪ Miêu tả việc thực thi của các modul cũng như sự phụ
tḥc giữa chúng
Hướng nhìn song song ( concurrency view)
▪ Nhằm tới việc chia hệ thống thành các qui trình
(process) và các bợ xử lí (processor)
Các phần tử của mơ hình
Phần tử cấu trúc (lớp, giao diện, phần tử cộng tác, ca sử
dụng, thành phần, nút)
Phần tử hành vi (tương tác, trạng thái)
Phần tử nhóm (gói)
Chú thích
Các dạng quan hệ
Quan hệ phụ thuộc (dependency)
Quan hệ liên kết (association)
Quan hệ kết hợp (aggregation)
Quan hệ hợp thành (composittion)
Khái quát hóa (generalization)
Hiện thực hóa (realization)
Tên quan hệ
Ý nghĩa
Quan hệ phụ
thuộc
(dependency)
Là quan hệ ngữ nghĩa giữa 2 phần tử trong đó
thay đổi của phần tử độc lập sẽ tác động đến ngữ
nghĩa của phần tử phụ thuộc
Quan hệ liên kết
(association)
Là quan hệ cấu trúc để mô tả tập liên kết (kết nối
giữa các đối tượng). Đối tượng của lớp này có thể
gửi/nhận thơng điệp đến/từ lớp kia
Quan hệ kết hợp Là dạng đặc biệt của quan hệ liên kết, nó biểu diễn
(aggregation)
quan hệ giữa cấu trúc và bộ phận
Quan hệ hợp
thành
(composittion)
Là dạng đặc biệt của tập hợp, nếu đối tượng tồn
thể bị hủy bỏ thì các đối tượng bộ phận của nó
cũng bị hủy bỏ
Khái quát hóa
(generalization)
Đối tượng cụ thể sẽ kế thừa các thuộc tính và
phương thức của đối tượng tổng qt
Hiện thực hóa
(realization)
Là quan hệ ngữ nghĩa giữa giao diện và lớp
Ký hiệu
Biểu đồ cấu trúc
Biểu đồ lớp (class diagram)
Biểu đồ đối tượng (object diagram)
Biểu đồ thành phần (component diagram)
Biểu đồ gói (package diagram)
Biểu đồ triển khai (deployment diagram)
Biểu đồ cấu trúc phức hợp (composite structure diagram)
Biểu đồ gói mở rộng (profile package)
Biểu đồ ca sử dụng (use case diagram)
Biểu đồ hoạt động (activity diagram)
Biểu đồ tuần tự (sequence diagram)
Biểu đồ cộng tác (collaboration diagram)
Biểu đồ trạng thái (state diagram)
Biểu đồ bao quát tương tác (interaction overview diagram)
Biểu đồ thời khắc (timing diagram)
Biểu đồ hành vi
Ý nghĩa
Biểu đồ ca sử dụng (use case diagram) biểu diễn
các chức năng của hệ thống
Biểu đồ ca sử dụng chỉ ra sự tương tác giữa các
tác nhân (actor) và hệ thống thông qua các ca sử
dụng (use case)
Bao gồm một tập hợp các tác nhân (actor), các ca
sử dụng (use case) và các mối quan hệ
(relationship) giữa các ca sử dụng
Đi kèm với biểu đồ ca sử dụng là các kịch bản
(scenario) nhằm mô tả chi tiết quá trình thực hiện
ca sử dụng đó.
Tên gọi
Ý nghĩa
Hệ thống
(system)
biểu diễn ranh giới bên trong và bên
ngoài của phần mềm đang xây dựng
Tác nhân
(actor)
là người dùng của hệ thống, một actor
có thể là một người dùng thực hoặc
các hệ thống máy tính khác giữ vai trò
nào đó trong hoạt động của hệ thống
Các ca sử là thành phần cơ bản trong biểu đồ use
dụng (use case, mô tả các chức năng xác định
case)
của hệ thống
Ký hiệu
System
Customer
System Shutdown
Tên gọi
Ý nghĩa
Bao hàm
(Include)
use case này sử dụng lại chức
năng của use case kia.
Mở rộng
(Extend)
use case này mở rộng từ use
case kia bằng cách thêm vào một
chức năng cụ thể
Đặc biệt hóa
(Specialization)
Đặc biệt hóa (Specialization):
use case này kế thừa các chức
năng từ use case kia, use case
sau được gọi là Tổng quát hóa
(Generalization) của use case
đầu
Tổng quát hóa
(Generalization)
Ký hiệu
<<include>>
<<extend>>
System
System Startup
Operator
System Shutdown
Invalid PIN
Session
Customer
<<extend>>
<<include>>
Transaction
Bank
Withdrawal
Deposit
Transfer
Inquiry
Ý nghĩa
Biểu đồ lớp là một biểu đồ mô tả cách nhìn
tĩnh về mợt hệ thống bằng các khái niệm lớp,
các tḥc tính, phương thức của lớp và mối
quan hệ giữa chúng.
Ký hiệu
Lớp (class): được biểu diễn bởi hình chữ nhật
gồm 3 phần: tên lớp, các tḥc tính và các
phương thức.
Phạm_vi Tên_thuộc_tinh: Kiểu[Số_đối_tượng] = Mặc_định
(Giá_trị_giới_hạn)
Phạm vi: cho biết phạm vi truy nhập của tḥc tính
+: tḥc tính kiểu public
#: tḥc tính kiểu protected
-: tḥc tính kiểu private.
~: tḥc tính được phép truy nhập tới từ các lớp trong cùng package
Tên_tḥc_tính: là xâu ký tự biểu diễn tên tḥc tính.
Kiểu: là kiểu dữ liệu của tḥc tính.
Số_đối_tượng: chỉ ra số đối tượng khai báo cho tḥc tính ứng với
mợt Mặc_định: là giá trị khởi đầu mặc định (nếu có) của thuộc tính.
Giá_trị_giới_hạn: là giới hạn các giá trị cho tḥc tính (thơng tin này
khơng bắt ḅc).
Ví dụ: purchaseDate:Date[1] =”01-01-2000” (Saturday)
Phạm_vi Tên_phương_thức(danh_sách_tham_sớ):
Kiểu_trả_lại {Kiểu_phương thức}
Phạm_vi: giống tḥc tính
Tên_phương thức: là xâu ký tự xác định tên của
phương thức
Kiểu_trả_lại: chỉ ra kiểu giá trị trả về của phương thức
danh_sách_tham_số: biểu diễn danh sách các tham số.
Mỗi tham số có dạng Tên_tham_số: Kiểu_giá_trị =
Giá_trị_mặc_định.
Kiểu_phương_thức: cho biết kiểu phương thức
abstract: phương thức kiểu trừu tượng
query: phương thức kiểu truy vấn
Ví dụ: generatePurchaseList(prodID:int): String
Tên gọi
Ý nghĩa
Lớp thực thể
(entity class)
là lớp đại diện cho các thực thể chứa
thông tin về các đối tượng xác định nào
đó. Ví dụ, lớp Khách hàng, Hóa đơn.
Lớp biên
(boundary class)
là lớp nằm ở ranh giới giữa hệ thống
với môi trường bên ngoài nhằm thực
hiện vai trò nhận yêu cầu trực tiếp từ
các tác nhân và chuyển các yêu cầu đó
cho các lớp bên trong hệ thống.
Lớp điều khiển
(controller class)
thực hiện các chức năng điều khiển
hoạt động của hệ thống tương ứng với
các chức năng cụ thể nào đó của một
nhóm các lớp biên hoặc nhóm các lớp
thực thể.
Ký hiệu
Tên quan hệ
Quan hệ liên kết
(association)
Kế thừa
(inheritance)
Quan hệ kết hợp
(aggregation)
Ví dụ
Tên quan hệ
Quan hệ hợp thành
(composition)
Quan hệ phụ thuộc
(dependency)
Quan hệ thực thi
(realization)
Ví dụ
Balances
Money
Message
Log
Status
1
Receipt
1
1
1
1
1
1
EnvelopAcceptor
CashDispenser
NetworkToBank
1
1
CustomConsole
1
1
ATM
1
1
1
CardReader
1
1
1
1
1
Session
1
ReceiptPrinter
1
1
*
OperatorPanel
1
*
*
Transaction
Card
Withdrawal
Deposit
Transfer
AccountInformation
Inquiry
Ý nghĩa
Biểu đồ trạng thái được sử dụng để biểu diễn các trạng
thái và sự chuyển tiếp giữa các trạng thái của các đối
tượng trong một lớp xác định.
Mỗi lớp có một biểu đồ trạng thái (trừ trường hợp là lớp
không có đối tượng).
Biểu đồ trạng thái biểu diễn dưới dạng máy trạng thái hữu
hạn với các trạng thái và sự chuyển tiếp giữa các trạng
thái đó.
Có hai dạng biểu đồ trạng thái:
Biểu đồ trạng thái cho một use case
Biểu đồ trạng thái hệ thống mô tả tất cả các trạng thái của
các đối tượng trong toàn bộ các hoạt động của hệ thống.
Tên gọi
Ý nghĩa
Trạng thái
(state)
Biểu diễn một trạng thái của đối
tượng trong vòng đời của đối
tượng
Trạng thái
khởi đầu
(initial state)
Trạng thái đầu tiên khi kích hoạt
đối tượng
Trạng thái kết
thúc (final
state)
Kết thúc vòng đời đối tượng
Chuyển tiếp
(transition)
Biểu diễn các chuyển đổi giữa các
trạng thái
Sự kiện
(Event)
Sự kiện tác động gây ra sự
chuyển đổi trạng thái.
Ký hiệu