2.1 GIỚI THIỆU VỀ UML Lưu ý: UML quy định một loạt các ký hiệu và quy tắc để mô hình hoá các pha trong quá trình phát triển phần mềm hướng đối tượng dưới dạng các biểu đồ... 2.1 GIỚI TH
Trang 1LOGO
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI
TƯỢNG VỚI UML
GV: Phan Bá Trí Email: trip182@gmail.com Website: www.phanbatri.wordpess.com
Huế, 2/2012
Trang 2Chương 2: Tổng quan về UML
Nội dung:
Chương này nhằm giới thiệu về ngôn ngữ mô hình hoá thống nhất UML và công cụ phát triển phần mềm hướng đối tượng Nội dung cụ thể
bao gồm:
- Giới thiệu UML
- Các biểu đồ trong UML
- Các bước phân tích thiết kế hướng đối tượng
sử dụng UML
- Giới thiệu bộ công cụ Enterprise Architecture
Trang 32.1 GIỚI THIỆU VỀ UML
2.1.1 Lịch sử ra đời của UML
- Cuối những năm 80, đầu những năm 1990, một loạt các phương pháp luận và ngôn ngữ mô hình hóa hướng đối tượng mới ra đời:
+ Booch của Grady Booch
+ OMT của James Rambaugh
+ OOSE của Ivar Jacobson
+ OOA and OOD của Coad và Yordon
Trang 42.1.1 Lịch sử ra đời của UML
- UML đầu tiên được đưa ra năm 1997 và sau
đó được chuẩn hoá để trở thành phiên bản 1.0
- Hiện nay chúng ta đang sử dụng ngôn ngữ UML phiên bản 2.0
- Tác giả: James Rumbaugh, Grady Booch và Ivar Jacobson
Trang 52.1 GIỚI THIỆU VỀ UML
2.1.2 UML – Ngôn ngữ mô hình hoá hướng đối tượng
- UML (Unified Modelling Language) là ngôn ngữ
mô hình hoá tổng quát được xây dựng:
+ Để đặc tả phần mềm hướng đối tượng
+ Phát triển phần mềm hướng đối tượng
+ Các tài liệu đính kèm trong phát triển phần mềm hướng đối tượng.
+ UML giúp người phát triển hiểu rõ và ra quyết định liên quan đến phần mềm cần xây dựng.
+ UML bao gồm một tập các khái niệm, các ký
hiệu, các biểu đồ và hướng dẫn.
Trang 62.1 GIỚI THIỆU VỀ UML
2.1.2 UML – Ngôn ngữ mô hình hoá hướng đối tượng
- UML hỗ trợ xây dựng hệ thống hướng đối tượng dựa trên việc nắm bắt khía cạnh cấu trúc tĩnh và các hành vi động của hệ thống
Trang 8HÀNH VI ĐỘNG
- Các hành vi động (dynamic behavior) định nghĩa các hoạt động của các đối tượng theo thời gian
- Tương tác giữa các đối tượng hướng tới đích
Trang 92.1 GIỚI THIỆU VỀ UML
Các mục đích của ngôn ngữ mô hình hoá
thống nhất UML:
• Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng
• Thiết lập sự liên hệ từ nhận thức của con
người đến các sự kiện cần mô hình hoá
• Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp với nhiều ràng buộc khác nhau
• Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy
Trang 102.1 GIỚI THIỆU VỀ UML
Lưu ý:
UML quy định một loạt các ký hiệu và quy tắc
để mô hình hoá các pha trong quá trình phát triển phần mềm hướng đối tượng dưới dạng các biểu đồ
Trang 112.1 GIỚI THIỆU VỀ UML
2.1.3 Các khái niệm cơ bản trong UML
a) Khái niệm mô hình
Mô hình là một biểu diễn của sự vật hay một tập các sự vật trong một lĩnh vực áp dụng nào
đó theo một cách khác
Các mô hình thường được xây dựng sao cho
có thể vẽ được thành các biểu đồ dựa trên tập
ký hiệu và quy tắc đã cho
Trang 12- Thể hiện tư duy về thiết kế hệ thống
- Trợ giúp ra quyết định thiết kế dựa trên việc phân tích yêu cầu
- Tổ chức, tìm kiếm, lọc, kiểm tra và sửa đổi
thông tin về các hệ thống lớn
- Làm chủ được các hệ thống phức tạp
Trang 13hiệu Biểu diễn là phương pháp thể
hiện mô hình theo cách sao cho có thể nhìn thấy
được
- Ngữ cảnh: mô tả tổ chức bên trong, cách sử dụng
mô hình trong tiến trình phần mềm …
Trang 142.1 GIỚI THIỆU VỀ UML
2.1.3 Các khái niệm cơ bản trong UML
b) Khung nhìn (View) trong UML
Một khung nhìn trong UML là một tập con các biểu đồ UML được xây dựng để biểu diễn một khía cạnh nào đó của hệ thống.
Sự phân biệt giữa các khung nhìn là rất linh hoạt Các khung nhìn cùng các biểu đồ tương ứng được mô tả trong bảng sau:
Trang 15KHUNG NHÌN (VIEW)
Khía cạnh Khung nhìn Các biểu đồ Các khái niệm chính
Cấu trúc
Cài đặt (implementation view)
Biểu đồ thành phần
Thành phần, giao diện, quan hệ phụ thuộc …
Biểu đồ hoạt động
Trạng thái, sự kiện, chuyển tiếp, kết hợp, đồng bộ … Tương tác
Biểu đồ cộng tác
Cộng tác,vai trò , thông điệp …
Quản lý
Trang 162.1 GIỚI THIỆU VỀ UML
2.1.3 Các khái niệm cơ bản trong UML
c) Các phần tử mô hình và quan hệ
Một số ký hiệu để mô hình hướng đối tượng thường gặp trong UML được biểu diễn trong hình sau:
Trang 17Business Obj ects
+ datastore + report1
Business Workflow s
+ Process + Event1 + Input + Result
The Business Context package contains models of all involved stakeholders, mission statements, business goals and physical structure of the business "as-is".
The Business Objects package contains a domain model of all objects of interest and their respective data
The Workflows package documents business processes, drawing on stakeholders, structures and objects defined in the Context and Object packages showing how these work together to provide fundamental business activities.
Mô hình 1: Mô hình tiến trình nghiệp vụ
Trang 18CÁC PHẦN TỬ MÔ HÌNH
Mô hình 2: Mô hình yêu cầu
custom Requirements Mo
Functional Requirements
+ Business Rules + Features + User Interface
Non-Functional Requirements
+ Performance + Scalability + Security + Persistence + Transport
The Functional Requirements package details behavioral requirements that specify how a proposed system will process and handle information It details the features and rules that must be present to fully implement the functionality desired.
The Non-Functional Requirements package specifies the various operational
parameters that define the environment in which the system will exist These are criteria which define performance levels, scalability, security requirements, backup, disaster recovery and other operational requirements.
Trang 19CÁC PHẦN TỬ MÔ HÌNH
Mô hình 3: Mô hình use case
uc Use Case Mo
Actors
+ User
Primary Use Cases
+ Use Case1 + Use Case2
Actors are the users of the system being modeled Each Actor will have a well- defined role, and in the context of that role have useful interactions with the system.
A person may perform the role of more than one Actor, although they will only assume one role during one use case interaction.
An Actor role may be performed by a non-human system, such as another computer program.
This package contains use cases which define how an Actor will interact with the proposed system
Each interaction may be specified using scenarios, sequence diagrams, communication diagrams and other dynamic diagrams or textual descriptions which together how the system when viewed as a "black-box" interacts with a user.
Trang 20CÁC PHẦN TỬ MÔ HÌNH
Mô hình 4: Mô hình miền/ lĩnh vực
class Domain Mo
The Domain Model is a view of all the objects
that make up an area of interest, and their
relationships It is used to capture the significant
objects within a system, organization or any target
domain
Domain Obj ects
+ Class1 + Class2 + Class3
Trang 21CÁC PHẦN TỬ MÔ HÌNH
Mô hình 5: Mô hình dữ liệu
class Data Mo
Schema1
+ Table1 + Table2 A schema package
contains a logical grouping of tables
Trang 22+ Interface1
Framew orks
Classes, interfaces and logical components for the new system
Class libraries, API's and other re-usable components
Trang 23Internal Structures
Connections
The Components package contains modeled components and their structural constituents These include additional exposed interfaces, ports and other gateways or internal structural components The connectivity and internal structure of these are further modeled in the Internal Structures and Connections packages
Internal Structures provide a detailed view of the internal workings and dependencies of a component Using a Composite Structure diagram, they illustrate how the component fulfills its behavioral contracts and provides interface behavior to other components within the system.
The Connections package models the dependencies and connectivity between the various components, and how each is used
as part of a co-operative system to accomplish required tasks Typically, Components expose interfaces and API's which are used by other Components.
Trang 24CÁC PHẦN TỬ MÔ HÌNH
Mô hình 8: Mô hình triển khai
deployment Deployment Mo
Nodes
+ Clients + Devices + Servers
Artifacts
Topology
The Nodes package contains models of all the processors, devices and hardware components that are required to be deployed or utilized in the final implementation of the modeled system.
The Artifacts package contains models of all software and related components that will be deployed onto the Nodes.
The Topology package models the connectivity, networks, physical locations and spatial characteristics of the system to
be implemented
Trang 25CÁC PHẦN TỬ MÔ HÌNH
Mô hình 9: Mô hình kiểm thử
custom Test Model
The Test Model describes and maintains a catalogue of tests, test plans and results that are executed against the current model.
Test Plans
Test Cases
Trang 26+ Build
Trang 27CÁC PHẦN TỬ MÔ HÌNH
Mô hình 11: Mô hình dự án
act Proj ect Mo
The Project Model details the overall project plan, phases, milestones and resourcing requirements for the current project
Release Plan
Resources
Trang 28CÁC PHẦN TỬ MÔ HÌNH
Mô hình 12: Mô hình giao diện người sử dụng
custom User Interface Mo
Primary Forms
+ Screen1 + Screen2
Administrativ e Forms
Help System
+ Content + Help + Index + Search
Main screens and pages exposed by the system
Management and reference data screens and data entry forms
Screens and pages providing user assistance
Trang 29MỐI QUAN HỆ
Hình 1: Một số dạng quan hệ trong UML
Quan hệ phụ thuộc Quan hệ tổng quát Quan hệ liên kết Quan hệ kết tập
Trang 302.2 BIỂU ĐỒ UML
2.2.1 Biểu đồ use case
Mục đích:
- Biểu diễn sơ đồ chức năng của hệ thống
- Biểu đồ use case chỉ ra hệ thống cần thực hiện điều gì, thoả mãn các yêu cầu của người dùng trong hệ thống đó
- Đi kèm với biểu đồ use case là các kịch bản
Trang 312.2 BIỂU ĐỒ UML
2.2.2 Biểu đồ lớp
Mục đích:
- Chỉ ra các lớp đối tượng trong hệ thống
- Các thuộc tính và phương thức của từng lớp
và các mối quan hệ giữa những lớp đó
Trang 322.2 BIỂU ĐỒ UML
2.2.3 Biểu đồ trạng thái
Mục đích:
- Mô tả các trạng thái mà đối tượng của lớp đó
có thể có (tương ứng với mỗi lớp)
- Sự chuyển tiếp giữa những trạng thái đó
Trang 332.2 BIỂU ĐỒ UML
2.2.4 Biểu đồ tương tác
Mục đích:
- Biểu diễn mối liên hệ giữa các đối tượng trong
hệ thống và giữa các đối tượng với các tác nhân bên ngoài
- Có hai loại biểu đồ tương tác:
+ Biểu đồ tuần tự
+ Biểu đồ cộng tác
Trang 342.2 BIỂU ĐỒ UML
2.2.4 Biểu đồ tương tác
- Biểu đồ tương tác dạng tuần tự:
và giữa các đối tượng và tác nhân theo thứ
tự thời gian.
và giữa các đối tượng và tác nhân nhưng nhấn mạnh đến vai trò của các đối tượng trong tương tác.
Trang 352.2 BIỂU ĐỒ UML
2.2.4 Biểu đồ tương tác
- Biểu đồ tương tác dạng cộng tác:
và giữa các đối tượng và tác nhân nhưng nhấn mạnh đến vai trò của các đối tượng trong tương tác.
Trang 38- Thành phần nào được cài đặt ở đâu
- Các liên kết vật lý hoặc giao thức truyền thông nào được sử dụng
Trang 402.2 BIỂU ĐỒ UML
Biểu đồ mô hình hóa cấu trúc (Structural
Modeling Diagrams): biểu diễn các cấu trúc tĩnh của hệ thống phần mềm được mô hình hoá
Các biểu đồ trong mô hình tĩnh bao gồm:
Trang 412.2 BIỂU ĐỒ UML
Biểu đồ mô hình hóa hành vi (Behavioral
Modeling Diagrams): Nắm bắt các hoạt động
và hành vi của hệ thống, sự tương tác giữa các phần tử bên trong và bên ngoài hệ thống
Các biểu đồ trong mô hình động bao gồm:
- Biểu đồ use case
- Biểu đồ tương tác dạng tuần tự
- Biểu đồ tương tác dạng cộng tác
- Biểu đồ trạng thái
- Biểu đồ động
Trang 422.2 BIỂU ĐỒ UML
2.2.1 Biểu đồ use case
a) Ý nghĩa
- Biểu đồ use case:
+ Biểu diễn sơ đồ chức năng của hệ thống
+ Tương tác giữa các tác nhân và hệ thống
thông qua các use case
Trang 432.2 BIỂU ĐỒ UML
2.2.1 Biểu đồ use case
- Một biểu đồ use case là một tập hợp các tác nhân, các use case và các mối quan hệ giữa chúng
- Các use case trong biểu đồ use case có thể được phân rã theo nhiều mức khác nhau
Trang 442.2 BIỂU ĐỒ UML
b) Tập ký hiệu
Một biểu đồ Use Case chứa các phần tử mô hình biểu thị hệ thống, tác nhân cũng như các trường hợp sử dụng và các mối quan hệ giữa các Use Case
Trang 45- Hệ thống không nhất thiết
là phần mềm: có thể là một chiếc máy, một doanh nghiệp, trường ĐH,…
Trang 462.2 BIỂU ĐỒ UML
- Actor
+ Là người dùng của hệ thống
+ Có thể là một người dùng thực hoặc các hệ thống máy tính khác
+ Thực hiện các use case + Một tác nhân có thể thực hiện nhiều use case và ngược lại một use case cũng có thể được thực hiện bởi nhiều tác nhân
uc Primary
Actor
Trang 48uc Primary Use Cases
Use Case1 Use Case2
«extend»
Trang 49+ X phải đáp ứng các điều kiện tiền của Y
trước khi bao hàm nó
uc Primary Use Cases
Trang 502.2 BIỂU ĐỒ UML
- Mối quan hệ giữa các use case
Generalization: (Khái quát)
+ use case này được kế thừa các chức năng
từ use case kia
Trang 51uc Primary Use Cases
«Dependency»
Trang 52là đại diện cho việc thực thi sau này (Khách hàng).
uc Primary Use Cases
«Realization»
Trang 532.2 BIỂU ĐỒ UML
- Mối quan hệ giữa các Actor
Generalization: (Khái quát)
Khái quát là một mối quan hệ phân loại giữa phân loại tổng quát và một phân loại chi tiết Mỗi thể hiện của phân loại chi tiết cũng là một thể hiện gián tiếp của phân loại tổng quát Vì vậy, phân loại chi tiết kế thừa các tính năng của phân loại tổng quát
uc Actors
Actor2 Actor1
Trang 542.2 BIỂU ĐỒ UML
- Mối quan hệ giữa Actor và use case
Association: (Liên kết)
Liên kết đặt tả một mối quan hệ ngữ nghĩa mà nó
có thể xảy ra ở các dạng thể hiện Nó có ít nhất hai đầu cuối đại diện bởi các thuộc tính, mỗi trong số đó được liên kết với dạng của kết thúc
uc Primary Use Cases
X
Actor2
Trang 552.2 BIỂU ĐỒ UML
2.2.1 Biểu đồ use casec) Ví dụ:
Trang 57class System
Employee
+ IdCode: int + FirstName: string + LastName: string + Address: string + Salary: long
+ Display() : void + EmployeeDelete(int) : void
Trang 592.2 BIỂU ĐỒ UML
2.2.2 Biểu đồ lớp
Các mối quan hệ trong biểu đồ lớp:
- Quan hệ liên kết (Association): là một sự nối kết giữa các lớp, cũng có nghĩa là sự nối kết giữa các đối tượng của các lớp này
class System
Employee
+ IdCode: int + FirstName: string + LastName: string + Address: string + Salary: long + IdDepartement: int
+ Display() : void + EmployeeDelete(int) : void + SetDay(date) : date
Departement
+ IdDepartement: int + DepartementName: string
+ Display() : void + DepartementAdd(int) : void
Trang 602.2 BIỂU ĐỒ UML
2.2.2 Biểu đồ lớp
- Quan hệ khái quát (Generalization):
+ Là mối quan hệ giữa một lớp có các đặc trưng mang tính khái quát cao hơn và một lớp
+ Display() : void + EmployeeDelete(int) : void + SetDay(date) : date
Person
+ Birthday: date + Country: string
+ Display() : void + SetDay(date) : date
Trang 612.2 BIỂU ĐỒ UML
2.2.2 Biểu đồ lớp
- Quan hệ kết tập (Aggregation):
+ Là dạng quan hệ mô tả một lớp A là một phần của lớp B và lớp A có thể tồn tại độc lập
+ Quan hệ kết tập được biểu diễn bằng một mũi tên gắn hình thoi rỗng ở đầu hướng về lớp bao hàm
class System
Custumer
+ IdCustomer: int + CustomerName: string + Address: string
+ GetCustomer(int) : void + GetBill(int) : void
Bill
+ IdBii: int + TypeBill: string + IdCustomer: int
+ GetBill(int) : void
Trang 62class System
Custumer
+ IdCustomer: int + CustomerName: string + Address: string
+ GetCustomer(int) : void + GetBill(int) : void
Address
+ IdAddress: int + StreetName: string + StreetNumber: int + hasProvince: string
+ GetAddress(int) : void