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 d
Trang 1Unified 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: http://www.hau1.edu.vn/it/dxha
Trang 2hướ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)
Trang 3Structured 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)
Trang 4School management example
Trang 5 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)
Trang 6The Object Orientated Approach
Grouping of the related data and functions, in the form of modules lessen changing impact
Trang 7Notations
(ký hiệu)
Trang 9hình lấy từ Wikipedia
Trang 10UML diagrams
Trang 11UML diagrams
Trang 12Waterfall and Spiral
Tên các tiến trình trên hình có thể khác với textbook của Ian
Trang 13Rational 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
Ph ase iteration
In ception Elaboration Con stru ction Transition
Trang 15Possible timings for each phase
Trang 16UML 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
Trang 17UML trong quy trình phát triển phần mềm
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)
Trang 18Class 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)
Trang 19 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};
Trang 20Attributes example
Trang 21 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
Trang 22Bidirectional association (liên kết 2 chiều)
Trang 23Khi 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 )
Trang 24 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
Trang 25 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ượngVD: 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ẻ
Trang 27Sự phụ thuộc lẫn nhau
Sự phụ thuộc tồn tại giữa hai phần tử nếu sửa phần tử này (supplier) sẽ phải sửa phần tử kia (client)
Hệ thống càng lớn, việc kiểm soát sự phụ thuộc càng khó
Hai phần tử phụ thuộc được nối với nhau bởi đường nét đứt trên diagram (mũi tên chỉ về phía supplier)
Trang 28Dependency example
Trang 29Ghi chú
Ghi chú được nối với phần tử trên diagram bằng đường nét đứt
Trang 30Sequence diagram
Interaction diagram (lược đồ tương tác): diễn tả tương tác giữa một nhóm đối tượng trong một số hành động cụ thể
Sequence diagram là một loại interaction diagram, sử dụng
để diễn đạt sự tương tác theo một kịch bản tình huống sử dụng nào đó
Trang 32seq diag : điểu khiển phân tán
Trang 33Tạo mới và huỷ bỏ các phần tử (đối tượng)
Trang 34Lặp/rẽ nhánh
Trang 36Khi nào dùng sequence diagram
Khi muốn xem xét hành động của nhiều đối tượng trong một tình huống cụ sử dụng cụ thể
Nếu chỉ xem xét một đối tượng dùng state diagram
Trang 37Package diagram
Class: nhỏ/nhiều
Package: nhóm các phần tử lại, cấu trúc hoá các hệ thống lớn
Class có thể nằm trong package
Package có thể nằm trong package lớn hơn
Trong cùng package (namespace), tên các phần tử là khác nhau
VD: system::Date & Martin::Util:Date
Trang 39Package dependency
Thích hợp cho việc quản lý
sự phụ thuộc các phần tử trong hệ thống lớn
Trang 40Deployment diagram
Hệ thống sẽđược triển khainhư thế nào?
Môi trườngliên quan?
Soft/hardware?
Trang 41Use case
Use case (tình huống sử dụng): tập hợp các kịch bản
hướng tới mục tiêu cụ thể của người dụng
Actor: người dùng trong các tình huống cụ thể
Mức độ:
system use case: tương tác với hệ thống
business: kết quả/phản ứng của công việc
Để diễn đạt use case:
use case text
use case diagram
Trang 42Use case text
Trang 43Use case diagram
Use case giúp hiểu yêu cầu
Trang 44State machine diagram
Trang 46Decomposing an action
Trang 48on an activity
Trang 49Communication/collaboration diagram
Trang 50 Vẽ bằng tay??
IBM Rational Rose
Umbrello (open source software)
Microsoft Visio
Trang 51Bài tập: Vẽ sequence từ collaboration
Trang 52Tài liệu tham khảo
Martin Fowler, UML Distilled, 3rd edition,
Addison-Wesley, 2004