Bài giảng Giới thiệu về hướng đối tượng và UML
Các lớp và các đối tượng Các phương thức và các thông điệp Tính bao đóng và che giấu thông tin Tính thừa kế Tính đa hình và kết nối động
Bạn đang xem trước 20 trang tài liệu Bài giảng Giới thiệu về hướng đối tượng và UML, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 1Nguyễn Trung Trực - Khoa CNTT
Chương 2
Giới thiệu về hướng đối tượng 
và UML
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 2Nguyễn Trung Trực - Khoa CNTT
Nội dung
 Các đặc tính cơ bản của hệ thống hướng 
đối tượng.
 Giới thiệu các thuật ngữ đối tượng, lớp, 
thuộc tính và phương thức.
 Giới thiệu tính tổng quát hóa, tính đa hình
và tính thừa kế.
 Định nghĩa mối liên kết.
 Ngôn ngữ mô hình hóa hợp nhất (UML -
Unified Modeling Language).
 Cách tiếp cận theo yêu cầu tối thiểu 
(minimalist approach) để phân tích và thiết 
kế hệ thống hướng đối tượng.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 3Nguyễn Trung Trực - Khoa CNTT
Các đặc tính cơ bản của 
hệ thống hướng đối tượng
 Các lớp và các đối tượng
 Các phương thức và các thông điệp
 Tính bao đóng và che giấu thông tin
 Tính thừa kế
 Tính đa hình và kết nối động
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 4Nguyễn Trung Trực - Khoa CNTT
Ngôn ngữ mô hình hóa hợp nhất (UML)
 Ký hiệu chuẩn để biểu diễn các hệ thống 
hướng đối tượng.
 Hình chữ nhật biểu diễn lớp, thành phần, 
gói, đối tượng.
f Chứa các thuộc tính và các tác vụ.
f Cung cấp các giao tiếp cho các thực thể
ngoài.
 Đường thẳng biểu diễn tính tổng quát hóa 
và các mối liên kết.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 5Nguyễn Trung Trực - Khoa CNTT
Ngôn ngữ mô hình hóa hợp nhất (UML)
Sample UML Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 6Nguyễn Trung Trực - Khoa CNTT
Đối tượng
 Đối tượng (object) là một thực thể bao 
gồm dữ liệu và hành vi (behavior).
f Các đối tượng được phân loại thành các lớp 
(class).
fMỗi đối tượng riêng biệt là một thể hiện 
(instance) của một lớp.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 7Nguyễn Trung Trực - Khoa CNTT
Tính bao đóng và che giấu thông tin
 Tính bao đóng (encapsulation)
f Sự kết hợp dữ liệu và quá trình vào trong 
một đối tượng.
 Che giấu thông tin (information hiding)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 8Nguyễn Trung Trực - Khoa CNTT
Lớp
 Lớp (class) là một loại các đối tượng có
cùng các thuộc tính, các tác vụ, các mối 
liên kết và ngữ nghĩa.
Name
Attributes
Operations
An Illustration of a Class
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 9Nguyễn Trung Trực - Khoa CNTT
Thuộc tính
 Thuộc tính (attribute) là một đặc tính được 
đặt tên của một lớp, dùng để mô tả một 
miền trị có thể gán cho các thể hiện của 
thuộc tính này.
 Các loại thuộc tính
f Thuộc tính đơn (simple attribute)
f Thuộc tính xác định (identifier)
f Thuộc tính đa trị (multivalued attribute)
f Thuộc tính phức hợp (composite attribute)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 10Nguyễn Trung Trực - Khoa CNTT
Thuộc tính
 Kiểu mở rộng (stereotype) là một thành 
phần (construct) cho phép mở rộng từ
vựng của UML.
 Các loại kiểu mở rộng trong sơ đồ lớp
f Kiểu mở rộng khóa chính: >.
f Kiểu mở rộng đa trị: >.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 11Nguyễn Trung Trực - Khoa CNTT
Thuộc tính
Attributes are 
properties 
containing values
Minus sign 
indicates these 
are private 
(hidden)
A Class with Attributes
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 12Nguyễn Trung Trực - Khoa CNTT
Thuộc tính
Primary key is a unique 
identifier; no two Student 
instances will have the 
same studentId value.
The Identifier shown by the Stereotype >
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 13Nguyễn Trung Trực - Khoa CNTT
Thuộc tính
Multivalued attribute can 
contain multiple values; 
a student may have 
several phone numbers
Attribute phoneNumber shown by the Stereotype >
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 14Nguyễn Trung Trực - Khoa CNTT
Thuộc tính
Composite attributes have multiple sections (subattributes).
They are treated as separate classes in conceptual data models.
Attribute Address shown as a type Address
Composite attribute Address shown as a Class
Composite attribute Address shown as a Class
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 15Nguyễn Trung Trực - Khoa CNTT
Phương thức và thông điệp
 Tác vụ (operation) là một hành vi của một 
đối tượng.
 Tác vụ được thể hiện trong các lớp là các 
phương thức (methods).
f Tương tự với một hàm hoặc một thủ tục.
 Thông điệp (message) được gửi đến các 
phương thức của đối tượng.
 Tính sử dụng lại (reusability)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 16Nguyễn Trung Trực - Khoa CNTT
Phương thức và thông điệp
Signature identifies and 
invokes the behavior
Method implements the behavior
An Operation with Signature and Method Written in PL/SQL
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 17Nguyễn Trung Trực - Khoa CNTT
Phương thức và thông điệp
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 18Nguyễn Trung Trực - Khoa CNTT
Lớp và đối tượng
Method signaturesPlus sign indicates 
these are public 
(accessible)
A Class with Attributes and Operations
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 19Nguyễn Trung Trực - Khoa CNTT
Lớp và đối tượng
Class
Class Student
Instances
Objects Maria and David of the Class Student
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 20Nguyễn Trung Trực - Khoa CNTT
Lớp và đối tượng
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 21Nguyễn Trung Trực - Khoa CNTT
Tính tổng quát hóa
 Lớp cha (superclass, general class, parent 
class)
 Lớp con (subclass, specific class, child 
class)
 Tính tổng quát hóa (generalization)
 Lớp con có thể có thêm các thuộc tính và
các phương thức riêng.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 22Nguyễn Trung Trực - Khoa CNTT
Tính tổng quát hóa
Class Hierarchy
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 23Nguyễn Trung Trực - Khoa CNTT
Tính tổng quát hóa
Generalization represented by 
arrows from subclass to 
superclass
Subclasses inherit all 
attributes and 
operations of 
superclasses
An Example of Generalization
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 24Nguyễn Trung Trực - Khoa CNTT
Tính tổng quát hóa
Multiple inheritance is 
complicated and not 
supported by all 
object-oriented 
programming 
languages.
Generalization based on two characteristics
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 25Nguyễn Trung Trực - Khoa CNTT
Tính thừa kế
 Tính thừa kế (inheritance) là một cơ chế
mà lớp con trong mối liên kết tổng quát 
hóa có được các thuộc tính và các tác vụ
của lớp cha.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 26Nguyễn Trung Trực - Khoa CNTT
Tính thừa kế
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 27Nguyễn Trung Trực - Khoa CNTT
Tính đa hình và kết nối động
 Tính đa hình (polymorphism) là khả năng 
của các đối tượng khác nhau đáp ứng các 
thông điệp giống nhau theo các cách khác 
nhau.
 Polymorphism = “having many forms”.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 28Nguyễn Trung Trực - Khoa CNTT
Tính đa hình và tính bao đóng
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 29Nguyễn Trung Trực - Khoa CNTT
Thành phần và giao tiếp
 Thành phần (component) là một phần có
thể thay thế được (replaceable part) của 
một hệ thống, cung cấp một chức năng 
được định nghĩa rõ ràng thông qua một 
tập các giao tiếp.
 Giao tiếp (interface) là một cơ chế mà qua 
đó người sử dụng yêu cầu các hành vi và
thao tác trên các đặc tính của đối tượng.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 30Nguyễn Trung Trực - Khoa CNTT
Thành phần và giao tiếp
Interfaces are 
represented as 
small rectangles
An EC System with Four Components
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 31Nguyễn Trung Trực - Khoa CNTT
 Gói (package) là một cơ chế chung để tổ
chức các phần tử thành các nhóm.
 Nhóm các lớp dùng chung các đặc tính 
hoặc các mục đích tương tự nhau.
Gói 
An Example of a Package
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 32Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
 Mối liên kết (relationship) là mối quan hệ
ngữ nghĩa giữa các đối tượng của một 
hoặc nhiều lớp.
 Trong UML, mối liên kết được biểu diễn 
bằng một đường nối giữa hai hoặc nhiều 
lớp (hoặc nối cùng một lớp).
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 33Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
Roles identify the purpose of each class in the relationship.
Relationship between Classes
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 34Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
 Các loại mối liên kết
fMối liên kết đơn giản (simple relationship)
fMối liên kết bao gộp (aggregation 
relationship)
fMối liên kết hợp thành (composition 
relationship)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 35Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
Transaction and Line Items as Composition
Loosely Bound Aggregation
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 36Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
 Bậc của mối liên kết (relationship degree) 
là số lượng các lớp tham gia đồng thời 
vào mối liên kết.
fMối liên kết một ngôi (unary relationship)
fMối liên kết hai ngôi (binary relationship)
fMối liên kết ba ngôi (ternary relationship)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 37Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
Unary Relationship
Binary Relationship
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 38Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
Ternary Relationship
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 39Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
 Lượng số của mối liên kết (relationship 
cardinality) là số lượng đối tượng của lớp 
A có thể hoặc phải liên kết với mỗi đối 
tượng của lớp B.
f Lượng số nhỏ nhất (minimum cardinality)
f Lượng số lớn nhất (maximum cardinality)
 Các loại lượng số
fOne – to – one
fOne – to – many
fMany – to – many
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 40Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
Cardinality of a Relationship
Fixed Cardinality
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 41Nguyễn Trung Trực - Khoa CNTT
Mối liên kết
Roles make it clearer to see 
which should be on the one 
side and which should be on 
the many side of the 
relationship.
Use of Roles to illustrate Cardinality in a 1:M Unary Relationship
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 42Nguyễn Trung Trực - Khoa CNTT
Lớp kết hợp
 Lớp kết hợp (associative class) là một lớp 
đặc biệt biểu diễn mối liên kết giữa các lớp 
và chứa các thuộc tính của mối liên kết.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 43Nguyễn Trung Trực - Khoa CNTT
Lớp kết hợp
A Certificate represents a relationship between an employee and a 
course, and has an attribute pertaining to that relationship
Example of an Associative Class
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 44Nguyễn Trung Trực - Khoa CNTT
Lớp kết hợp
Sometimes 
associative classes 
have their own 
relationships with 
other classes.
Relationship between an Associative Class and a Class
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 45Nguyễn Trung Trực - Khoa CNTT
Ngôn ngữ mô hình hóa hợp nhất 2.0
 Các sơ đồ cấu trúc
f structure diagram
 Các sơ đồ hành vi
f behavior diagram
 Các cơ chế mở rộng 
f extension mechanism
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 46Nguyễn Trung Trực - Khoa CNTT
UML 2.0 Diagram Summary
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 47Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
 Các sơ đồ cấu trúc
f Sơ đồ lớp (class diagram)
f Sơ đồ đối tượng (object diagram)
f Sơ đồ gói (package diagram)
f Sơ đồ triển khai (deployment diagram)
f Sơ đồ thành phần (component diagram)
f Các sơ đồ cấu trúc phức hợp (composite 
structure diagram)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 48Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
Class Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 49Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
Object Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 50Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
Package Diagram of Dependency Relationships Among Layers
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 51Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
Package Diagram of Appointment System
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 52Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
Three Versions of Appointment System Deployment Diagram.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 53Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ cấu trúc
Simple Internet Architecture
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 54Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ hoạt động
 Sơ đồ hoạt động
f activity diagram
 Sơ đồ tuần tự
f sequence diagram
 Sơ đồ liên lạc
f communication diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 55Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ hoạt động
Activity Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 56Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ hoạt động
Sequence Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 57Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ hoạt động
Collaboration Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 58Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ use-case 
 Giải quyết các yêu cầu nghiệp vụ.
 Cho thấy sự tương tác giữa hệ thống và 
môi trường.
 Làm rõ và lập tài liệu các yêu cầu hệ thống 
cần được mô hình hóa.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 59Nguyễn Trung Trực - Khoa CNTT
Các sơ đồ use-case 
Use-case Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 60Nguyễn Trung Trực - Khoa CNTT
Các cơ chế mở rộng
 Các kiểu mở rộng
f stereotype
f Cho phép khả năng mở rộng thêm UML.
 Các giá trị buộc
f tagged value
f Thêm các đặc tính mới cho các phần tử cơ 
bản.
 Các ràng buộc
f constraint
f Các hạn chế về việc sử dụng các phần tử của 
mô hình.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 61Nguyễn Trung Trực - Khoa CNTT
Phân tích, thiết kế HT hướng đối tượng
 Sử dụng use-case
f use-case driven
f Các use-case là công cụ mô hình hóa chính 
để định nghĩa hành vi của hệ thống.
fMột use-case mô tả người sử dụng tương tác 
như thế nào với hệ thống để thực hiện một 
hoạt động nào đó.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 62Nguyễn Trung Trực - Khoa CNTT
Phân tích, thiết kế HT hướng đối tượng
 Kiến trúc trung tâm
f architecture centric
f Kiến trúc phải hỗ trợ các cái nhìn riêng biệt 
nhau nhưng liên quan với nhau.
f Cái nhìn chức năng (functional view)
f Cái nhìn tĩnh (static view)
f Cái nhìn động (dynamic view)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 63Nguyễn Trung Trực - Khoa CNTT
Phân tích, thiết kế HT hướng đối tượng
Behavioral State Machine Diagram
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 64Nguyễn Trung Trực - Khoa CNTT
Phân tích, thiết kế HT hướng đối tượng
 Sự phát triển lặp lại và gia tăng
fMỗi lần lặp lại của hệ thống làm cho hệ thống 
càng đáp ứng yêu cầu của người sử dụng.
f Cách tiếp cận RAD (Rapid Application 
Development) : phát triển theo giai đoạn.
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 65Nguyễn Trung Trực - Khoa CNTT
Phân tích, thiết kế HT hướng đối tượng
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 66Nguyễn Trung Trực - Khoa CNTT
Cách tiếp cận MOOSAD
MOOSAD (Minimalist Object-Oriented 
Systems Analysis and Design)
Chương 2. Giới thiệu về hướng đối tượng và UML 2006 67Nguyễn Trung Trực - Khoa CNTT
Phân tích hệ thống hướng đối tượng
 Xác định giá trị nghiệp vụ
 Phân tích tính khả thi
 Xây dựng kế hoạch làm việc 
 Phân công dự án
 Điều khiển và kiểm tra dự án
 Xác định các yêu cầu
 Mô hình hóa chức năng
 Mô hình hóa cấu trúc
 Mô hình hóa hành vi
 Chuyển sang thiết kế
            
        
        
    
                    