Unified Modeling Language
Unified Modeling Language
Đặng Xuân Hà
Department of Software Engineering
Faculty of Information Technology
Hanoi Agricultural University
Office phone: 84-4-8276346; Ext.:132
Office location: 3rd floor, Administration building.
Email: dxha at hau1.edu.vn; dangxuanha at gmail.com
Website:
Introduction to UML 2
25 Sep. 2006
UML?
Unified Modeling Language: Ngôn ngữ mô hình hoá thống
nhất.
UML là ngôn ngữ mô hình sử dụng tập hợp các ký hiệu đồ
hoạ (graphical notation) dùng trong việc mô tả và thiết kế
phần mềm, đặc biệt là các phần mềm sử dụng mô hình
hướng đối tượng.
UML là chuẩn mở, đưa ra bởi OMG (Object Management
Group), 1997.
Hiện được sử dụng khá rộng rãi (UML 1.0/2.0).
Introduction to UML 3
25 Sep. 2006
Structured programming
In Structured Programming, the general method was to
look at the problem, and then design a collection of
functions that can carry out the required tasks. If these
functions are too large, then the functions are broken down
until they are small enough to handle and understand. This
is a process known as functional decomposition.
Most functions will require data of some kind to work on.
The data in a functional system was usually held in some
kind of database (or possibly held in memory as global
variables).
Introduction to UML 4
25 Sep. 2006
School management example
Functions:
add_student
enter_for_exam
check_exam_marks
issue_certificate
expel_student
Data:
Introduction to UML 5
25 Sep. 2006
What happens when changing the "Date of Birth" field in
the Student, from a two-digit year to a four-digit year.
(Y2K, the millennium bug)
Introduction to UML 6
25 Sep. 2006
The Object Orientated Approach
Grouping of the related data and functions, in the form of
modules lessen changing impact
Introduction to UML 7
25 Sep. 2006
Meta-model
Notations
(ký hiệu)
Introduction to UML 8
25 Sep. 2006
UML diagrams
Diagrams
Structure diagrams:
class, object, component, package, deployment
diagrams
Behavior diagrams:
use case, activity, state machine, sequence,
communication
Introduction to UML 9
25 Sep. 2006
hình lấy từ Wikipedia
Introduction to UML 10
25 Sep. 2006
UML diagrams
Introduction to UML 11
25 Sep. 2006
UML diagrams
Introduction to UML 12
25 Sep. 2006
Waterfall and Spiral
Tên các tiến trình trên hình có thể khác với textbook của Ian
Introduction to UML 13
25 Sep. 2006
Rational Unified Process
The Rational Unified Process (RUP) is an iterative
software development process created by the Rational
Software Corporation, now a division of IBM. The RUP is
an extensive refinement of the (generic) Unified Process.
RUP và UML thường đi cùng nhau trong quá trình phát
triển phần mềm.
Phase iteration
Inception Elaboration Construction Transition
Introduction to UML 14
25 Sep. 2006
RUP
Inception
Initial evaluation, business case for the system.
Elaboration
primary use case, problem domain and the system
architecture requirements and risks.
Construction
System design, programming and testing.
Transition
Deploy the system in its operating environment.
Introduction to UML 15
25 Sep. 2006
Possible timings for each phase
Introduction to UML 16
25 Sep. 2006
UML trong quy trình phát triển phần mềm
Phân tích yêu cầu (req. analysis): khách hàng/người dùng
muốn gì?
use case diagram: các tình huống sử dụng, cho biết
người dùng tương tác với hệ thống thế nào?
conceptual class diagram: mô tả các đối tượng của hệ
thống ở mức khái niệm
activity diagram: chi tiết hoá các tình huống sử dụng
state diagram
Cần đơn giản hoá việc dùng các ký pháp của UML đối với
khách hàng do họ không/ít biết UML
Introduction to UML 17
25 Sep. 2006
UML trong quy trình phát triển phần mềm
Thiết kế:
class diagram: chi tiết hơn từ cái nhìn của người phát triển phần
mềm
sequence diagram: sử dụng cho những kịch bản thông dụng nhất
State/Package/Deployment diagrams
Viết tài liệu:
Các diagrams cung cấp một cái nhìn tổng thể phần mềm đang
phát triển.
Viết thêm một số tài liệu để trình bày những ý tưởng quan trọng
chưa có trong các diagrams và sinh thêm tài liệu khi viết mã (có
thể từ công cụ viết mã, vd. JavaDoc)
Introduction to UML 18
25 Sep. 2006
Class diagram
Mô tả các kiểu đối tượng của hệ thống và các mối liên hệ
giữa chúng.
Các đặc trưng (feature) của class:
thuộc tính (properties): mô tả các
đặc trưng về mặt cấu trúc
atributes
associations
hành vi (operations/methods)
Introduction to UML 19
25 Sep. 2006
Atribute
Cú pháp:
visibility name: type multiplicity = default {property-string}
Trong đó:
visibility: + (public) –(private)
name: tên của atribute
multiplicity: số lượng đối tượng phải điền cho thuộc
tính ([1]; [0 1]; [*]; optional; mandatory; single-valued;
multi-valued)
default: giá trị mặc định
property-string: cho phép thiết lập một số thuộc tính đặc
biệt, vd: {readOnly}; {ordered};
Introduction to UML 20
25 Sep. 2006
Attributes example
Introduction to UML 21
25 Sep. 2006
Association
Một thuộc tính (properties) có thể là một đối tượng của
class khác: sử dụng liên kết (association)
Thể hiện bằng đường nối liền giữa các classes
Tên của thuộc tính được ghi ở phía target, kèm theo multiplicity
Introduction to UML 22
25 Sep. 2006
Bidirectional association (liên kết 2 chiều)
vs. unidirectional association
Liên kết hai chiều nối liền hai lớp mà thuộc tính của lớp
này là đối tượng của lớp kia và ngược lại
VD:
cars
sử dụng cụm động từ
Introduction to UML 23
25 Sep. 2006
Khi nào dùng atribute/association
Atribute được sử dụng với những thuộc tính có kiểu dữ
liệu đơn giản (Boolean, date )
Association dùng cho các kiểu dữ liệu phức tạp hơn (khách
hàng, đơn hàng )
Introduction to UML 24
25 Sep. 2006
Hành vi/hành động (operations)
Là các hoạt động mà một đối tượng thuộc về class có thể
thực thi
Cú pháp:
visibility name (parameter-list) : return type {property-string}
Trong đó:
visibility, name, type, property-string giống với trường
hợp thuộc tính
parameter-list: danh sách tham số, có dạng:
direction name: type = default value
với direction: in (vào); out (ra); inout (vừa vào vừa ra)
VD: +balanceOn (date:Date) : Money
Introduction to UML 25
25 Sep. 2006
Generalization
Khi có nhiều lớp có những thuộc tính/hành động giống
nhau tổng quát hoá
Giống khái niệm kế thừa trong lập trình hướng đối tượng
VD: Lớp khách hàng có các lớp con (subtype/subclass) là
khách hàng thường xuyên hay khách lẻ.
Khả năng có thể thay thế (substitutability): có thể thay thế
một lớp bằng subtype trong đoạn mã nào đó.
Vd: Các tác động lên khách hàng thì cũng có thể tác động
lên khách hàng lẻ