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ế