Tải bản đầy đủ (.ppt) (53 trang)

Lập trình hướng đối tượng với UML ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (893.55 KB, 53 trang )

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ẻ

×