Bài giảng Phân tích và thiết kế hệ thống - Chương 2: Các khái niệm cơ bản trong hướng đối tượng

TỔNG QUAN VỀ OOAD

• Mô hình hướng đối tượng giới thiệu một quan điểm lập trình

và phân tích/thiết kế khác hẳn so với trường phái cổ điển (có

cấu trúc)

• Bắt đầu nhen nhóm vào những năm cuối 60s và đến đầu 90s

trở nên rất phổ biến trong công nghiệp phần mềm

• Những ngôn ngữ hướng đối tượng đầu tiên: Smalltalk, Eiffel.

Sau đó xuất hiện thêm: Object Pascal, C++, Java

• Hình thành các phương pháp phân tích/thiết kế 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 thực như tập các đối tượng

• Các tính chất của đối tuợ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 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

pdf 115 trang kimcuc 5540
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích và thiết kế hệ thống - Chương 2: Các khái niệm cơ bản trong hướng đối tượng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phân tích và thiết kế hệ thống - Chương 2: Các khái niệm cơ bản trong hướng đối tượng

Bài giảng Phân tích và thiết kế hệ thống - Chương 2: Các khái niệm cơ bản trong hướng đối tượng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
Chương II
Trần Thị Kim Chi 1
NỘI DUNG
2.1. Tổng quan về phân tích thiết kế hướng đối tượng
OOAD (Object-Oriented Analysis and Design)
2.2. Các đặc trưng của phương pháp hướng đối tượng
2.3. Giới thiệu về hướng đối tượng: Object và class, các
đặc trưng của class: kế thừa, đóng gói và đa hình
2.4. Unified Modeling Language (UML)
2.5. Tiến trình RUP
Trần Thị Kim Chi 2
TỔNG QUAN VỀ OOAD
• Mô hình hướng đối tượng giới thiệu một quan điểm lập trình 
và phân tích/thiết kế khác hẳn so với trường phái cổ điển (có 
cấu trúc)
• Bắt đầu nhen nhóm vào những năm cuối 60s và đến đầu 90s 
trở nên rất phổ biến trong công nghiệp phần mềm
• Những ngôn ngữ hướng đối tượng đầu tiên: Smalltalk, Eiffel. 
Sau đó xuất hiện thêm: Object Pascal, C++, Java
• Hình thành các phương pháp phân tích/thiết kế hướng đối 
tượng.
Trần Thị Kim Chi 3
• Chiến lược phát triển phần mềm hướng đối tượng là quan sát
thế giới thực như tập các đối tượng
• Các tính chất của đối tuợ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 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
TỔNG QUAN VỀ OOAD
Trần Thị Kim Chi 4
• 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
• 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 đóng gói
– Kế thừa
– Ða hình
TỔNG QUAN VỀ OOAD
Trần Thị Kim Chi 5
TỔNG QUAN VỀ OOAD
• Class Model
– static structure
– what objects are in the 
system?
– how are they related?
• Dynamic Model
– behavioral aspects
– what events occur in the 
system
– when do they occur and in 
what order?
• Functional Model
– data transformations
– “what” does the system do
• Data-Oriented
• Action-Oriented
• Both Data and Actions
Trần Thị Kim Chi 6
TỔNG QUAN VỀ OOAD
Dynamic 
Diagrams
Activity
Diagrams
Models
Static 
Diagrams
Sequence
Diagrams
Communication
Diagrams
State Machine
Diagrams
Deployment
Diagrams
Component
Diagrams
Object
Diagrams
Class
DiagramsUse-Case
Diagrams
Trần Thị Kim Chi 7
Các bước phân tích và thiết kế theo hướng đối tượng
• Các bước phân tích thiết kế hướng đối tượng dựa trên biểu đồ 
các ký hiệu UML (Unit Modeling Language).
• Các giai đoạn phân tích thiết kế hướng đối tượng
– Phân tích hướng đối tượng(Object Oriented Analysis - OOA)
– Thiết kế hướng đối tượng(Object Oriented Design – OOD)
– Lập trình hướng đối tượng (Object Oriented Programming - OOP)
TỔNG QUAN VỀ OOAD
Trần Thị Kim Chi 8
PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG
(OBJECT ORIENTED ANALYSIS – OOA)
• Phát triển mô hình chính xác và súc tích của vấn đề
• Ánh xạ các thực thể ở thế giới thực đối tượng trong thiết kế.
• Chứa các thực thể trong một vấn đề có thực.
• Giữ nguyên mẫu về cấu trúc, quan hệ cũng như hành vi của 
chúng.
• Ví dụ: Cửa hàng bán xe hơi
– Thực thể (đối tượng): ?
– Tương tác và quan hệ giữa các thực thể: ?
Trần Thị Kim Chi 9
PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG
(OBJECT ORIENTED ANALYSIS – OOA)
Ví dụ: Cửa hàng bán xe hơi, giai đoạn OOA sẽ nhận biết được 
• Các thực thể: 
– Khách hàng 
– Người bán hàng 
– Phiếu đặt hàng
– Phiếu (hoá đơn) thanh toán 
– Xe hơi
• Tương tác và quan hệ giữa các thực thể trên là: 
– Người bán hàng giới thiệu xe cho khách hàng
– Khách hàng chọn xe
– Khách hàng viết phiếu đặt xe 
– Khách hàng trả tiền xe 
– Người bán hàng giao xe cho khách hàng
Trần Thị Kim Chi 10
THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
(OBJECT ORIENTED DESIGN – OOD)
• Tạo thiết kế dựa trên kết quả của giai đoạn OOA, dựa trên các 
yêu cầu chức năng, phi chức năng
– Yêu cầu chức năng?
– Yêu cầu phi chức năng?
• Định nghĩa các :
– chức năng, thủ tục (operations), 
– thuộc tính (attributes) 
– mối quan hệ của một hay nhiều lớp (class) 
 quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi 
trường phát triển
• Đưa ra các biểu đồ: 
• Tĩnh: biểu thị các lớp và đối tượng
• Động: biểu thị tương tác giữa các lớp và phương thức hoạt động chính 
xác của chúng.
• Kết quả của giai đoạn thiết kế là bản thiết kế kiến trúc và thiết kế chi tiết.
Trần Thị Kim Chi
11
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OBJECT ORIENTED 
PROGRAMMING - OOP)
• Java
• C++
• Smalltalk
Trần Thị Kim Chi 12
CÁC ĐẶC TRƯNG CỦA HƯỚNG ĐỐI TƯỢNG 
Trần Thị Kim Chi 13
Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class) 
Trần Thị Kim Chi 14
Abstraction: Giảm độ phức tạp bằng cách che giấu những chi tiết 
không liên quan.
Review: Encapsulation Illustrated
– Kết hợp tiến trình và dữ liệu vào một thực thể thống 
nhất. Nhiều gói kết hợp thành một hệ thống con 
(subsystem).
– Vấn đề cơ bản trong đóng gói (encapsulation) là giao 
diện thông báo của một đối tượng, phải đảm bảo các 
giao tiếp được thực hiện thông qua tập các hoạt động 
được xác định trước.
– Dữ liệu bên trong đối tượng chỉ được truy cập bởi các 
hoạt động của đối tượng
Trần Thị Kim Chi 15
Review: Encapsulation Illustrated
• Giáo sư Clark có 
thể dạy 4 lớp trong 
học kỳ tiếp theo.
TakeSabbatical()
Professor Clark
Name: J Clark
Employee ID: 567138
HireDate: 07/25/1991
Status: Tenured
Discipline: Finance
MaxLoad: 4SetMaxLoad(4)
Trần Thị Kim Chi 16
MODULARITY 
– Chia một hệ thống phức tạp thành các module nhỏ 
hơn dễ quản lý hơn. Các module này có thể kết hợp 
để tạo thành hệ thống.
– Nhằm mục đích hiểu rõ hơn một hệ thống phức tạp
Trần Thị Kim Chi 17
MODULARITY 
• Tách hệ thống đăng ký khóa học (course 
Registration System) thành các module.
Billing 
System
Course Registration 
System
Course 
Catalog 
System
Student 
Management 
System
Trần Thị Kim Chi 18
HIERARCHY
Trần Thị Kim Chi 19
• Phân cấp (Hierarchy)
• Hệ thống phân cấp tổ chức theo cấu trúc cây
• Loại hệ thống phân cấp:
• Aggregation hierarchy,
• Class hierarchy, 
• Containment hierarchy, 
• Inheritance hierarchy, 
• Partition hierarchy, 
• Specialization hierarchy, 
• Type hierarchy
HIERARCHY
Decreasing 
abstraction
Increasing
abstraction
Asset
RealEstate
Savings
BankAccount
Checking Stock
Security
Bond
Elements at the same level of the hierarchy 
should be at the same level of abstraction.
Trần Thị Kim Chi 20
CÁC KHÁI NIỆM VỀ HƯỚNG ĐỐI TƯỢNG
• Lớp và đối tượng, sự đóng bao
• Thuộc tính, tác vụ, thông điệp
• Bao gộp, thừa kế
• Tính đa hình, tính vĩnh cửu
Trần Thị Kim Chi 21
ĐỐI TƯỢNG (OBJECT)
Đối tượng (Object):
• Các đối tượng (Objects) là các thực thể trong
thế giới thực như: con người, sự vật, sự kiện
mà nó liên quan đến hệ thống đang phân tích.
• Hệ thống hướng đối tượng mô tả các thực thể
như các đối tượng.
– Mỗi đối tượng có các thuộc tính mô tả thông tin
của các đối tượng
– Mỗi đối tượng cũng có các hành vi, xác định hoạt
động của đối tượng.
ĐỐI TƯỢNG (OBJECT)
Đối tượng (Object):
• Mô hình đối tượng quan niệm thế giới bao gồm các đối
tượng(object) sinh sống và tương tác với nhau.
• Đối tượng bao gồm:
– Dữ liệu: mang một giá trị nhất định
– Tác vụ: thực hiện một công việc nào đó
• VD:
Trần Thị Kim Chi 23
Đối tượng (Object):
• VD:
Person
name
age
weight
(Person)
(Person)
Joe Smith
age=39
weight=158
Mary Wilson
age=27
weight=121
ĐỐI TƯỢNG (OBJECT)
Trần Thị Kim Chi 24
LỚP (CLASS)
• Lớp là một nhóm các đối tượng có cùng thuộc tính, hành vi và 
các mối quan hệ. Đối tượng là một thể hiện của một lớp.
• Một lớp xác định các thuộc tính và hành vi của tất cả các đối 
tượng trong lớp đó.
• Mỗi lớp có một tên riêng biệt
• Một lớp là sự trừu tượng của chính nó
– Nhấn mạnh những đặc điểm liên quan
– Che dấu những đặc điểm khác
Class Attributes Operations
ball radius, weight catch, throw
football air pressure pass, kick, hand-off
baseball liveness hit, pitch, tag
Trần Thị Kim Chi 25
LỚP (CLASS)
• Thuộc tính: là một vùng có thể chứa dữ liệu (đơn hoặc tổ
hợp) của lớp
• Dữ liệu mà thuộc tính thể hiện nằm trong một khoảng giá trị
nào đó được xác định bởi kiểu
• Giá trị của tất cả các thuộc tính xác định trạng thái của đối
tượng
– VD: một đối tượng của Circle có (Radius, x, y) = (2,
1.8,6.4)
• Thuộc tính có thể bị che dấu hoặc truy xuất được từ bên ngoài:
public, protected, private
Trần Thị Kim Chi 26
LỚP (CLASS)
Professor J Clark
Professor
- name
- employeeID : UniqueID
- hireDate
- status
- discipline
- maxLoad
+ submitFinalGrade()
+ acceptCourseOffering()
+ setMaxLoad()
+ takeSabbatical()
+ teachClass()
Trần Thị Kim Chi 27
LỚP (CLASS)
• Thuộc tính có 2 loại tầm vực: 
– Tầm vực lớp: thuộc tính chung cho tất cả đối tượng của 1 
lớp
– Tầm vực đối tượng: thuộc tính của từng đối tượng (có thể 
mang giá trị khác nhau)
• Bậc của thuộc tính chỉ ra số lượng dữ liệu mà bản thân thuộc 
tính có thể nắm giữ: 0..1, 1..*, 1020.
Trần Thị Kim Chi 28
LỚP (CLASS)
• Tác vụ - hành vi (operation)Là một dịch vụ có thể yêu cầu từ
phía đối tượng để thực hiện hành vi
• Dấu hiệu nhận dạng của tác vụ (signature) xác định các thông
số truyền cũng như kết quả trả về.
• Phương thức (method) là phần hiện thực của tác vụ
• Tác vụ có thể bị che dấu hoặc truy xuất từ bên ngoài
• Tác vụ có thể được override trong các lớp con thừa kế
– Trừu tượng(abstract): không có hiện thực
• Một số ngôn ngữ lập trình cho phép định nghĩa:
– Tác vụ khởi tạo(constructor)
– Tác vụ hủy (destructor)
• Thông báo (Messages): thông tin gửi cho đối tượng kích hoạt
phương thức. Một thông báo là một hàm hoặc một thủ tục gọi
từ một đối tượng đến một đối tượng khác.
Trần Thị Kim Chi 29
QUAN HỆ GIỮA LỚP VÀ ĐỐI TƯƠNG
• Lớp là mô tả tĩnh của đối tượng, đối tượng là một thể hiện 
(INSTANCE) của lớp tại thời điểm thực thi
Trần Thị Kim Chi 30
Professor MeijerProfessor Allen
Professor Torpie Professor
QUAN HỆ GIỮA CÁC LỚP (CLASS)
Class Relationships:
 Association
 Aggregation
 Composition
 Generalization
 Dependency
 Realization
OR
OR
OR
Trần Thị Kim Chi 31
LỚP (CLASS) - Association and Links
• Thuộc tính Navigability xác định hướng từ lớp liên kết đến lớp 
mục tiêu bằng cách sử dụng quan hệ kết hợp (association)
• Ví dụ: kết hợp giữa Schedule và Course Offering là
navigable theo cả 2 hướng
• Schedule cần biết Course Offering được gán vào Schedule. 
• Ngược lại, Course Offering cần phải biết Schedules trong nó.
RegistrationController
CourseOfferingSchedule
LỚP (CLASS) - Association and Links
• Quan hệ ngữ nghĩa giữa 2 hay nhiều lớp xác định kết nối giữa 
các giữa các điển hình của hai lớp đó. 
Country
name
(Country)
Canada
City
name
has-capital
(City)
Ottawa
has-capital
(Country)
France
(City)
Paris
has-capital
(Country)
Austria
(City)
Vienna
has-capital
Class diagram
Object diagram
Trần Thị Kim Chi 33
Association
• Xác định mối quan hệ giữa hai hoặc nhiều lớp trong 
hệ thống. Các loại kết hợp trong quan hệ Association
– Directed Association: kết hợp có hướng, được biểu diễn 
bằng một nhãn và mũi tên chỉ hướng
Association
– Reflexive Association: sự kết hợp giữa một class 
với chính nó.
– Ví dụ: Một nhân viên quản lý tối đa 10 nhân viên
Association
2..4
0..1
1..*
0..*
1
*
2, 4..6
Unspecified
Exactly One
Zero or More
Zero or One (optional scalar role)
One or More
Specified Range
Multiple, Disjoint Ranges
Zero or More
Trần Thị Kim Chi 36
Multiplicity:
Số instances 
của một 
class có thể 
kết hợp với 
một 
instance của 
lớp còn lại.
Association
Ví dụ
Association
Ví dụ:
• Một sinh viên có thể đăng ký ít nhất là một và nhiều nhất là 5 
khóa học. 
• Một khóa học ít nhất là 10 và tối đa là 300 sinh viên
Aggregation
• Aggregation: là một dạng đặc biệt của association nó thể hiện 
quan hệ has-a hoặc part-whole, còn gọi là share aggregation
Trần Thị Kim Chi 39
Aggregation
• Ví dụ:
Course (khóa học) có nhiều student, nhưng student 
có thể tồn tại độc lập hoặc thuộc một course khác.
Trần Thị Kim Chi 40
Composition
• Quan hệ Composition là loại Aggregation chặt chẽ hơn, còn 
gọi là Non-share aggregation.
Trần Thị Kim Chi 41
Composition
• Ví dụ:
– Apartment (căn hộ) được tạo thành từ nhiều Room 
(phòng), Room chỉ thuộc Apartment, Room không 
thể tồn tại độc lập.
Trần Thị Kim Chi 42
LỚP (CLASS) –
Association, Aggregation and Composition
Mối quan hệ giữa các lớp (relationship) 
• Liên kết (Association) 
– Sử dụng (use-a) 
• Kết tập (Aggregation) 
– Strong association 
– has-a/is-a-part 
• Hợp thành (Composition) 
– Strong aggregation 
– Share life-time 
Trần Thị Kim Chi 43
LỚP (CLASS) –
Association, Aggregation and Composition
• Aggregation – University and Chancellor 
– Nếu không có trường Đại học (University), hiệu trưởng (Chancellor) không 
thể tồn tại. 
– Nếu không có Chancellor, University vẫn có thể tồn tại 
• Composition – University and Faculty 
– University không thể tồn tại nếu không có các giảng viên (Faculty) và 
ngược lại (share time-life) 
• Thời gian sống của University gắn chặt với thời gian sống của Faculty 
• Nếu Faculties được giải phóng thì University không thể tồn tại và 
ngược lại 
Trần Thị Kim Chi 44
Quan hệ Tổng quát hóa (Generalization) 
• Mối quan hệ giữa các lớp mà trong đó một lớp có thể
chia sẽ cấu trúc hoặc hành vi cho nhiều lớp khác.
• Xác định một hệ thống phân cấp trừu tượng, trong đó
một lớp con(subclass) kế thừa từ một hoặc nhiều lớp
cha (superclasses)
• Loại quan hệ kế thừa
– Single inheritance: subclass kế thừ từ một superclass.
– Multiple inheritance: subclass kế thừa từ một hoặc
nhiều superclass.
Trần Thị Kim Chi 45
Quan hệ Tổng quát hóa (Generalization) 
Trần Thị Kim Chi 46
• Trong hệ thống phân cấp
– Lớp có thể hiện 
(instances) gọi là
concrete class.
– Lớp không có thể hiện 
(instances) gọi là abstract 
classes.
Tổng quát hóa (Generalization) 
Sơ đồ 1: Lớp B dẫn xuất từ lớp A, lớp C dẫn xuất từ lớp B
Trần Thị Kim Chi 47
Tổng quát hóa (Generalization) 
Trần Thị Kim Chi 48
Tổng quát hóa (Generalization) 
• Ví dụ đơn kế thừa: Một lớp kế thừa từ MỘT lớp khác 
Trần Thị Kim Chi 49
Tổng quát hóa (Generalization) 
• Ví dụ đa kế thừa:Một lớp có thể kế thừa từ nhiều lớp khác 
Trần Thị Kim Chi 50
Lớp trừu tượng và lớp cụ thể (Abstract and Concrete Class) 
• Lớp trừu tượng không thể có đối tượng 
– Chứa phương thức trừu tượng 
– Chữ nghiêng 
• Lớp cụ thể có thể có đối tượng 
Trần Thị Kim Chi 51
Tổng quát hóa (Generalization) 
Advantages of Inheritance
• Reusability – reuse public methods of base class
• Extensibility – Extend the base class
• Data hiding – base class keeps some data private derive 
class cannot change it
• Rapid prototyping
Trần Thị Kim Chi 52
Quan hệ Dependency
• Một quan hệ giữa hai phần tử  ... ontaining an order number, 
ship date, and total cost. If the order is valid, it must be entered into 
an order database. If the order is invalid, an error message must be 
generated.”
Trần Thị Kim Chi 60
Nouns
• Out-of-Domain
– Internal Web
• Abstract
– user name
– user password
– account number
– order number
– ship date
– total cost
– list of supplies
– office supplies -> item
• Good Candidates
– employee
– item (was office supplies)
– receipt
– order
– order database
– error message
• Notes
We have decided not to worry 
about the Web in this design. 
Instead we focus on the inputs 
and outputs and defer the Web 
details until later.
Trần Thị Kim Chi 61
Class Model
order DBemployee
name
password
order
number
account
total cost
receipt
order number
ship date
total cost
item
name
quantity
price
error message
explanation
Trần Thị Kim Chi 62
Class Model, continued
response
receipt
order number
ship date
total cost
error message
explanation
Since both receipts and error messages will be generated as output
it might make sense to have them as subclasses of a more general
class. We do not know enough yet to assign it attributes however.
Trần Thị Kim Chi 63
Class Modeling - Relationships
order DBemployee
name
password
order
number
account
total cost
receipt
order number
ship date
total cost
item
name
quantity
price
1+
error message
explanation
Trần Thị Kim Chi 64
Khái niệm lớp cấu trúc - Structured Class
Trần Thị Kim Chi 65
• Lớp cấu trúc chứa các thành phần (part) và vai
trò (Role) mà nó tạo thành cấu trúc và thực hiện
hành vi của nó.
• Mô tả cấu trúc hiện thực bên trong lớp cấu trúc
• Các thành phần chính nó cũng tạo thành các lớp cấu
trúc.
• Cho phép phân cấp cấu trúc dạng mô hình phân cấp
• Kết nối (connector) được sử dụng để biểu diễn sự
liên kết giữa các thành phần trong một ngữ cảnh cụ
thể
Ký hiệu lớp cấu trúc
Trần Thị Kim Chi 66
• Thành phần(part) hoặc vai trò (role): được
biểu diễn bằng biểu tượng của một lớp (hình
chữ nhật)
 Cú pháp: rolename : Typename [ multiplicity ]
• Cả 3 thành phần có thể bỏ qua
• Nếu multiplicity bỏ qua, mặc định là 1
• Tham chiếu đến đối tượng bên ngoài biểu
diễn bằng hình chữ nhật nét đứt
Class Diagram versus Structure Diagram
Schedule
Student
0..*
1
Schedule
0..*
1
Student
comp : Schedule [0..*]
shared : Schedule [0..*]
Class Diagram Structure Diagram
shared comp
Trần Thị Kim Chi 67
Structure Diagram
Ví dụ: Khi một hệ thống được phân rã, mỗi thành phần có thể 
trở thành một lớp cấu trúc chứa các thành phần của chính 
nó. 
Course Registration System
: BillingSystem
: StudentManagementSystem
: CourseCatalogSystem
What Is an Interface?
• Khai báo một tập thống nhất các tính năng và quy
ước chung.
• Interface là cốt lõi của khả năng “Plug and play” của
một kiến trúc.
• Interface hình thức hóa tính đa hình. Cho phép định
nghĩa tính đa hình bằng cách khai báo, không liên
quan đến hiện thực.
Trần Thị Kim Chi 69
What Is an Interface?
• Ví dụ: giao tiếp giữa providers and consumers, 
có các interface
– Provided interface.
– Required interface.
Trần Thị Kim Chi 70
Example: A Provided Interface
Remote Sensor
Manufacturer A
RemoteSensor
>
Manufacturer B
Manufacturer C
Manufacturer A
Manufacturer B
Manufacturer C
Elided/Iconic 
Representation
(“ball”)
Canonical 
(Class/Stereotype) 
Representation
Trần Thị Kim Chi 71
What Is an Interface?
Example: A Required Interface
Remote Control
Remote Sensor
Remote Control Remote Sensor
>
Elided/Iconic 
Representation
(“socket”)
Canonical 
(Class/Stereotype) 
Representation
Trần Thị Kim Chi 72
What Is an Interface?
Example: A Required Interface
Remote Control
Remote Sensor
Remote Control Remote Sensor
>
Elided/Iconic 
Representation
(“socket”)
Canonical 
(Class/Stereotype) 
Representation
Trần Thị Kim Chi 73
What is a Port?
• Port là một cấu trúc đóng gói sự tương tác giữa
nội dung của một lớp và môi trường của nó.
– Hành vi của Port được xác định bởi giao diện cung
cấp (provided) và yêu cầu (required) của nó.
• Việc hiệu chỉnh cấu trúc bên trong không ảnh
hưởng đến bên ngoài.
• Một lớp có thể có nhiều port.
– Một Port có một tập các giao diện Provided và
Required
Trần Thị Kim Chi 74
What is a Port?
• A port is shown as a small square with the name 
placed nearby.
• Ports may be public, protected or private
portName
Trần Thị Kim Chi 75
Port Types
• Ports có thể có nhiều loại hiện thực khác
nhau:
– Service Port: chỉ sử dụng để hiện thực bên trong
của lớp
– Behavior Port: các yêu cầu trên Port được hiện
thực trực tiếp bởi lớp
– Relay Port: các yêu cầu trên Port được chuyển
đến các bộ phận bên trong hiện thực.
Trần Thị Kim Chi 76
Port Types
Structured Class Name
partA partB
Behavior Port
Relay Port
Service Port
Trần Thị Kim Chi 77
Sơ đồ mô tả - Diagram Depiction
• Mỗi sơ đồ có một khung, một ngăn chứa tiêu 
đề và một vùng chứa nội dung.
Trần Thị Kim Chi 78
Sơ đồ mô tả - Diagram Depiction
• Khung chứa tên theo cú pháp:
[][] 
• có thể là:
– Activity - activity diagram
– Package - class diagram, package diagram
– Communication - communication diagram
– Component - component diagram
– Class - composite structure diagram
Trần Thị Kim Chi 79
 deployment - deployment diagram
 intover - interaction overview diagram
 object - object diagram
 state machine - state machine diagram
 sd - sequence diagram
 timing -timing diagram
 use case - use case diagram
What Are Notes?
• Chú thích được thêm vào sơ đồ, bao gồm
– Thông tin trên sơ đồ
– Bất kỳ phần tử UML nào
MaintainScheduleForm
There can be up to one 
MaintainScheduleForm 
per user session.
Trần Thị Kim Chi 80
Questions
• What are the four basic principles of object 
orientation? Provide a brief description of 
each.
• What is an object and what is a class? What is 
the difference between the two?
• What is a class relationship? Give some 
examples.
• What is polymorphism? 
• What is an interface? 
Trần Thị Kim Chi 81
UNIFIED MODELING LANGUAGE (UML)
• Là ngôn ngữ mô hình hóa (UML) dùng để xác định, xây dựng
và lưu trữ lại kết quả (artifact) của quá trình phát triển hệ
thống.
• UML ra đời nhằm chấm dứt cuộc chiến các phương thức
(“method wars”) trong cộng đồng OO.
• “Three Amigos”: Ivar Jacobson, Grady Booch và Jim
Rumbaugh đã hợp nhất các phương pháp OO và tạo ra ngôn
ngữ mô hình hóa chuẩn UML
Trần Thị Kim Chi 82
UNIFIED MODELING LANGUAGE (UML)
Lịch sử phát triển của UML
Trần Thị Kim Chi 83
UNIFIED MODELING LANGUAGE (UML)
• UML (Unified Modeling Language): ngôn ngữ 
dùng để mô hình hóa quá trình phát triển hệ thống 
phần mềm hướng đối tượng.
• Các biểu đồ trong UML được chia thành 2 nhóm:
– Biểu đồ cấu trúc (Structure Diagrams): class, object, 
package, deployment, component, composite structure 
diagrams
– Biểu đồ hành vi (Behavioral Diagrams): activity, 
sequence, communication, interaction, use case diagrams
Trần Thị Kim Chi 84
UNIFIED MODELING LANGUAGE (UML)
UML là ngôn ngữ dùng để 
lập và cung cấp tài liệu. Tài 
liệu gồm có:
• Ghi chép về các yêu cầu 
của hệ thống
• Kiến trúc của hệ thống
• Thiết kế
• Mã nguồn
• Kế hoạch dự án
• Tests
• Các nguyên mẫu
Các hệ thống ứng dụng UML
• Hệ thống thông tin 
(Information System)
• Hệ thống kỹ thuật 
(Technical System)
• Hệ thống nhúng (Embeded 
System)
• Hệ thống phân bố 
(Distributed System)
• Hệ thống giao dịch 
(Business System)
• Phần mềm hệ thống 
(System SoftWare)
Trần Thị Kim Chi 85
UNIFIED MODELING LANGUAGE (UML)
UML defines 13 diagrams that describe 4+1 architectural views 
4+1 architectural views model was proposed by Philippe Kruchten, IBM
Trần Thị Kim Chi 86
UNIFIED MODELING LANGUAGE (UML)
Things
Relationship 
Diagram 
Structural Things
Behavior things
Group things
Annotation things
Class, interface, collaboration, 
use case, components, nodes
Interaction, State machine 
Package
Note
Structural Relationship Dependency, Aggregation, 
Association, Generalization
Behavior Relationship
Communication, Includes, 
Extends, Generalizes
Structural Diagram
Behavioral Diagram
-Class diagram
-Object diagram
-Component diagram
-Deployment diagram
- Use case diagram
- Activity diagram
- Interaction diagram
- State machine diagram
Trần Thị Kim Chi 87
UNIFIED MODELING LANGUAGE (UML)
Trần Thị Kim Chi 88
UNIFIED MODELING LANGUAGE (UML)
UML defines 13 diagrams that describe 4+1 architectural views 
4+1 architectural views model was proposed by Philippe Kruchten, IBM
Trần Thị Kim Chi 89
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ Use case
Trần Thị Kim Chi 90
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ lớp (Class diagram)
Trần Thị Kim Chi 91
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ đối tượng (Object diagram)
Trần Thị Kim Chi 92
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ trạng thái (State diagram)
Trần Thị Kim Chi 93
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ trình tự (Sequence diagram)
Trần Thị Kim Chi 94
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ tương tác (Communication Diagram)
Trần Thị Kim Chi 95
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ hoạt động (Activity Diagram)
Trần Thị Kim Chi 96
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ thành phần (Component Diagram)
Trần Thị Kim Chi 97
UNIFIED MODELING LANGUAGE (UML)
Biểu đồ triển khai (Deployment Diagram)
Trần Thị Kim Chi 98
RATIONAL UNIFIED PROCESS (RUP) 
IMPLEMENTS BEST PRACTICES
Trần Thị Kim Chi 99
QUY TRÌNH RUP(Rational Unified Process)(1)
• Do hãng Rational phát triển
• Là quy trình phát triển hợp nhất gồm các pha (phase) và các
giai đoạn công việc (workflow) mà đội thực hiện dự án cần
tuân theo.
• Quá trình thực hiện qua toàn bộ các pha được gọi là chu
trình phát triển
• Kết quả của quá trình phát triển các RUP được gọi là các
Artifact, bao gồm các mô hình và các bộ tài liệu.
• Mục tiêu của RUP là tạo ra sản phẩm phần mềm chất lượng 
cao nhất đáp ứng nhu cầu của người dùng.
• Về mặt quản lý: RUP cung cấp một giải pháp để phân công 
công việc và nhiệm vụ trong hệ thống phát triển phần mềm.
Trần Thị Kim Chi 100
QUY TRÌNH RUP(Rational Unified Process)(1)
• Đặc điểm của tiến trình RUP
– Là một tiến trình lặp đi lặp lại, phù hợp với những hệ thống 
có yêu cầu thay đổi.
– Sử dụng mô hình UML
– Phát triển theo kiến trúc trung tâm (architecture-centric) 
giảm thiểu làm lại, tăng khả năng tái sử dụng.
– Nhấn mạnh việc xây dựng hệ thống dựa trên sự hiểu biết 
thấu đáo chức năng của hệ thống
– RUP hỗ trợ kỹ thuật hướng đối tượng, RUP dựa trên khái 
niệm về đối tượng, lớp và mối quan hệ giữa chúng.
– RUP luôn quan tâm đến hoạt động kiểm soát chất lượng và 
quản lý rủi ro 
Trần Thị Kim Chi 101
QUY TRÌNH RUP(Rational Unified Process)(1)
• Các mô hình:
- Mô hình nghiệp vụ
- Mô hình tình huống sử dụng
- Mô hình phân tích thiết kế
- Mô hình triển khai
- Mô hình thử nghiệm
• Các tài liệu:
- Bộ tài liệu về xác định yêu cầu hệ thống
- Bộ tài liệu thiết kế
- Bộ tài liệu lập trình
- Bộ tài liệu triển khaiTrần Thị Kim Chi 102
QUY TRÌNH RUP(Rational Unified Process)(1)
• Giai đoạn (Phases) là khoảng cách giữa 2 mốc quan 
trọng của tiến trình, mỗi giai đoạn phải xác định mục 
tiêu cần đáp ứng, sản phẩm hoàn thành, và các quyết 
định để chuyển sang giai đoạn tiếp theo.
• RUP gồm 4 giai đoạn: 
– Inception, 
– Elaboration, 
– Construction, 
– Transition.
Trần Thị Kim Chi 103
QUY TRÌNH RUP(Rational Unified Process)(1)
Trần Thị Kim Chi 104
CÁC CÔNG VIỆC TRONG TIẾN TRÌNH RUP
Trần Thị Kim Chi 105
CÁC GIAI ĐOẠN CÔNG VIỆC CỦA RUP(1)
• Mô hình hóa nghiệp vụ (business modeling): mô tả
cấu trúc và quy trình nghiệp vụ.
• Xác định yêu cầu (requirement): mô tả nghiệp vụ
bằng phương pháp “tình huống sử dụng” (use case
base method)
• Phân tích và thiết kế (analysis & design): mô tả
kiến trúc hệ thống thông qua các sơ đồ phân tích thiết
kế.
• Lập trình: thực hiện các việc xây dựng chương trình
bằng ngôn ngữ lập trình.
Trần Thị Kim Chi 106
CÁC GIAI ĐOẠN CÔNG VIỆC CỦA RUP(1)
• Thử nghiệm: mô tả các tình huống và kịch bản thử
nghiệm, tiến hành thử nghiệm hệ thống phần mềm.
• Triển khai: đưa hệ thống phần mềm vào sử dụng.
• Quản trị cấu hình và quản trị thay đổi: kiểm soát
các thay đổi và duy trì sự hợp nhất của các thành
phần dự án.
• Quản trị dự án: quản lý toàn bộ quá trình làm việc
của dự án.
• Môi trường: đảm bảo các hạ tầng cần thiết để có thể
phát triển được hệ thống
Trần Thị Kim Chi 107
CÁC PHA CỦA RUP(1)
• Khởi động (Inception)
– Tìm hiểu nghiệp vụ
– Xác định phạm vi của dự án
• .Cuối pha này: kiểm tra các mục tiêu của quá trình phát triển của
dự án và quyết định có tiếp tục quá trình phát triển hay không
• Phác thảo (Elaboration)
– Phân tích nghiệp vụ
– Xác định kiến trúc phù hợp
– Xây dựng kế hoạch cho dự án
– Giới hạn yếu tố rủi ro cao nhất
• Cuối pha này cần kiểm tra các mục tiêu và phạm vi chi tiết của hệ
thống, sự lựa chọn về kiến trúc và cách xử lý các rủi ro có thể đồng
thời quyết định có tiếp tục chuyển sang pha xây dựng hay không
Trần Thị Kim Chi 108
CÁC PHA CỦA RUP(1)
• Xây dựng (Construction)
• Phát triển sản phẩm đầy đủ chuyển giao tới người sử 
dụng. 
• Hoàn tất các yêu cầu còn thiếu, làm mịn thiết kế và hoàn 
thành việc lập trình ứng dụng.
• Cuối pha: kiểm tra hệ thống sẵn sàng hoạt động chưa?
– Chuyển giao (Deployment)
• Triển khai hệ thống đến người dùng
• Ghi nhận các vấn đề phát sinh(nếu có) và các hạn chế để 
hoàn thiện phiên bản cuối cùng.
Trần Thị Kim Chi 109
CHU TRÌNH PHÁT TRIỂN
• RUP trải qua 4 giai đoạn gọi là chu trình phát triển 
và kết quả là một sản phẩm phần mềm mới.
• Khi sản phẩm đã tồn tại thì các phiên bản tiếp theo 
được phát triển bằng cách lặp đi lặp lại một chuỗi các 
4 giai đoạn trên.
Trần Thị Kim Chi 110
HỆ THỐNG PHẦN MỀM HỖ TRỢ CHO RUP
• Rational Requisite Pro
• Rational Rose
• Rational XDE
• Rational Clear Case
Trần Thị Kim Chi 111
CÂU HỎI VÀ BÀI TẬP
• Câu 1. Ba tác giả gia nhập công ty phần Mềm Rational để 
phát triển UML là ai?
• Câu 2. Tổ chức nào hiện nay chịu trách nhiệm về chuẩn 
UML?
• Câu 3. Lý do sử dụng UML?
• Câu 4. Hướng nhìn là gì? UML bao gồm những hướng nhìn 
nào?
• Câu 5. Liệt kê các biểu đồ của UML?
• Câu 6. Phân biệt mô hình tĩnh và mô hình động trong UML?
Trần Thị Kim Chi 112
CÂU HỎI VÀ BÀI TẬP
• Câu 1. Ba tác giả gia nhập công ty phần Mềm Rational để 
phát triển UML là ai?
• Câu 2. Tổ chức nào hiện nay chịu trách nhiệm về chuẩn 
UML?
• Câu 3. Lý do sử dụng UML?
• Câu 4. Hướng nhìn là gì? UML bao gồm những hướng nhìn 
nào?
• Câu 5. Liệt kê các biểu đồ của UML?
• Câu 6. Phân biệt mô hình tĩnh và mô hình động trong UML?
Trần Thị Kim Chi 113
CÂU HỎI VÀ BÀI TẬP
• What are the four basic principles of object orientation? 
Provide a brief description of each.
• What is an object and what is a class? What is the difference 
between the two?
• What is a class relationship? Give some examples.
• What is polymorphism? 
• What is an interface? 
Trần Thị Kim Chi 114
Trần Thị Kim Chi115

File đính kèm:

  • pdfbai_giang_phan_tich_va_thiet_ke_he_thong_chuong_2_cac_khai_n.pdf