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
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
115 trang |
Chia sẻ: candy98 | Lượt xem: 808 | Lượt tải: 0
Bạn đang xem trước 20 trang 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 - Trần Thị Kim Chi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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ử mô hình, trong đó, sự thay đổi
của mô hình này sẽ gây ra sự thay đổi của mô hình kia
Trần Thị Kim Chi 53
Package
Class
Dependency
relationship
Component
Client
ClientPackage SupplierPackage
Supplier
Dependency
relationship
Dependency
relationship
Client Supplier
ĐA HÌNH (POLYMORPHISM)
Cùng một hành vi nhưng thể hiện khác nhau bởi
những lớp đối tượng khác nhau.
• Ví dụ đa hình (Polymorphism)
Trần Thị Kim Chi 54
ĐA HÌNH (POLYMORPHISM)
• Ví dụ thực thi đa hình (Polymorphism)
Trần Thị Kim Chi 55
THÔNG ĐIỆP – Message
• Thông điệp là một phép gọi tác vụ đến một đối tượng
cụ thể.
• Thông điệp gồm 3 phần:
– Đối tượng đích
– Dấu hiệu nhận dạng tác vụ muốn gọi
– Danh sách thông số gọi
Trần Thị Kim Chi 56
Class Modeling - An Example
FastData Inc. wants a subsystem to process office supply
orders via the Web. The user will supply via a form their
name, password, account number, and a list of supplies
along with an indication of the quantities desired. The
subsystem will validate the input, enter the order into a
database, and generate a receipt with the order number,
expected ship date, and the total cost of the order. If the
validation step fails, the subsystem will generate an error
message describing the cause of the failure.
Trần Thị Kim Chi 57
Class Modeling - Concise Problem Definition
•Define the problem concisely
– Use only a single sentence
“FastData, Inc. employees may order office supplies via the
Web and receive a receipt confirming the order”
•This is the first step towards identifying the classes of the
subsystem
Trần Thị Kim Chi 58
Class Modeling - Informal Strategy
•Identify the constraints governing the system
– Use only a single paragraph
“FastData, Inc. employees may order office supplies via the Internal Web and
receive a receipt confirming the order. The order must include the user name, user
password, account number, and the list of supplies. A receipt must be generated
containing 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.”
•We now have more information to be used in
identifying classes for the subsystem
Trần Thị Kim Chi 59
Class Modeling - Formalize the Strategy
• Identify the nouns of the description, which serve as the basis for
identifying the subsystem’s classes.
– Look for out-of-domain nouns (and throw them out!)
– Look for abstract nouns (use these for attributes)
– The remaining nouns are good candidates!
“FastData, Inc. employees may order office supplies via the Internal
Web and receive a receipt confirming the order. The order must
include the user name, user password, account number, and the list
of supplies. A receipt must be generated containing 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) đ