Top Banner
Please purchase a personal license. 1 Phân tích hướng đốitượng UML Giáo viên: Đỗ ThMai Hường Bmôn : Các hthng thông tin Khoa : CNTT - Hc vinkthut quân s
32

Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

Aug 29, 2019

Download

Documents

duongkiet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

Please purchase a personal license.

1

Phân tích hướng đối tượng UML

Giáo viên: Đỗ ThịMai Hường

Bộmôn : Các hệ thống thông tin

Khoa : CNTT - Học viện kỹ thuật quân sự

Page 2: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

2

Ngôn ngữ mô hình hóa thống nhất UML

Bài 2

Page 3: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

3

Mô hình là gì?� Mô hình

� là bức tranh hay mô tả vấn đề đang cố gắng giải quyết hay mô tả chính

giải pháp vấn đề

� là ngôn ngữ của người thiết kế (trong nhiều lĩnh vực)

� là trình diễn hệ thống sẽ xây dựng

� là phương tiện giao tiếp giữa người phân tích, thiết kế và người dùng

� là kế hoạch chi tiết (blueprints)

� Mô hình cho khả năng suy diễn một số đặc tính của hệ thống thực

� Mô hình hóa trực quan

� Bằng các phần tử đồ họa

� Ngôn ngữ mô hình hóa là ngôn ngữ mô tả hệ thống hay tác nghiệp

Page 4: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

4

Thí dụmô hình

Thế giới thực

Ôtô Con người SáchĐọc ��Làm chủMô hình

Thế giới thực

Mô hình: Quả địacầu học sinh

Page 5: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

5

Thí dụmô hình

A model is a completedescription of a systemfrom a particularperspective

Page 6: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

6

UML là gì?

� UML là một ngôn ngữ dùng cho

� Mô hình hóa trực quan (Visualizing)

� Đặc tả (Specifying)

� Xây dựng (Constructing)

� Tài liệu hóa (Documenting)

các nhân tố của hệ thống phần mềm

Page 7: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

7

Mô hình hóa trực quan

� Giúp cho việc suy nghĩ về cài đặt và bản cài đặt thực tếđược nhất quán

� Giúp lập trình viên, phân tích viên:

� Dễ dàng trao đổi những mô hình trong phần mềm với nhau

� Hiểu rõ toàn bộ hệ thống và vai trò của mình trong hệ thống

� Thông tin được lưu trữ rõ ràng, dễ tra cứu quản lý

Page 8: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

8

Đặc tả

� Đặc tả giúp cho xây dựng các mô hình

� Chính xác

� Rõ ràng, không nhập nhằng

� Đầy đủ

� UML giúp giải quyết các vấn đề� Phân tích

� Thiết kế

� Cài đặt

Được rõ ràng, thông suốt trong quá trình phát triển phầnmềm

Page 9: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

9

Xây dựng

� Các mô hình UML có thể ánh xạ sang

� Một ngôn ngữ lập trình

� Java

� C++/C#

� Visual Basic/ .NET

� Một bảng trong CSDL quan hệ (R-DBMS)

� Một lưu trữ bền vững của CSDL HĐT (OO-DBMS)

Page 10: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

10

Tài liệu hóa

� UML giúp ghi chép, tài liệu hóa lại kiến trúc của hệ thống

� Mô tả các yêu cầu (Requirements)

� Các bộ kiểm thử (Tests)

� Mô hình hóa các hoạt động, lập lịch của project, giảm khó khăncho công việc quản lý

Page 11: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

11

Sơ lược về lịch sử UMLUML 2.0

Page 12: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

12

Tại sao chúng ta cần UML?

� Một ngôn ngữ mô hình hóa chuẩn, trực quan bằng hình ảnh

� Phát triển hệ thống hiệu quả, thiết kế chính xác và hiệu quả

� Dễ dàng giao tiếp giữa các nhóm trong cùng project

� Giao tiếp dễ dàng giữa các người liên quan đến project

(khách hàng, nhà phát triển,…)

� Cho “cái nhìn tổng thể” về project

Page 13: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

13

Lược đồ (Diagrams)

Use CaseDiagramsUse CaseDiagramsUse CaseDiagrams

ScenarioDiagramsScenarioDiagramsCollaborationDiagrams

StateDiagramsStateDiagramsComponentDiagrams

ComponentDiagramsComponentDiagramsDeploymentDiagrams

StateDiagramsStateDiagramsObjectDiagrams

ScenarioDiagramsScenarioDiagramsStatechartDiagrams

Use CaseDiagramsUse CaseDiagramsSequenceDiagrams

StateDiagramsStateDiagramsClassDiagrams

ActivityDiagrams

Models

Page 14: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

14

Workflows and Models

Requirements

Design

Implementation

Test

Analysis

Use CaseModel

DesignModel

Depl.Model

Impl.Model

AnalysisModel

TestModel

UML diagrams provide

views into each model

Each workflow is associated with one or more models.

Page 15: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

Representing System Architecture

Page 16: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

16

Cần bao nhiêu khung nhìn?

� Mô hình phù hợp với ngữ cảnh phát triển hệ thống

� Không phải tất cả các mô hình đòi hỏi đầy đủ khung nhìn

� Đơn xử lý: Bỏ qua khung nhìn triển khai

� Đơn tiến trình: Bỏ qua khung nhìn tiến trình

� Chương trình rất nhỏ: Bỏ qua khung nhìn cài đặt

� Bổ sung các khung nhìn

� Data view

� Security view

Page 17: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

17

UML Concepts

� UML được sử dụng để:� Hiển thị biên hệ thống và các chức năng chính của nó bằng use

cases và actors

� Mô tả hiện thực use case bằng interaction diagrams

� Biểu diễn các cấu trúc tĩnh của hệ thống bằng class diagrams

� Mô hình hóa hành vi đối tượng bằng state transition diagrams

� Biểu thị kiến trúc cài đặt vật lý bằng component & deployment

diagrams

� Mở rộng các chức năng bằng stereotypes

Page 18: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

18

Thí dụ ứng dụng UML

� Một trường đại học thực hiện tin học hóa hệ thống đăng ký

học và dạy học:

� Giáo vụ (Registrar) lập chương trình giảng dạy (curriculum) cho

một học kỳ

� Sinh viên (Student) chọn 4 môn học chính và 2 môn dự bị

� Khi sinh viên đăng ký học thì hệ thống thanh toán (billing system)

in hóa đơn học phí cho sinh viên

� Sinh viên có thể sử dụng hệ thống để bổ sung/loại bỏ môn học sau

khi đã đăng ký (trong khoảng thời gian cố định)

� Giáo sư (Professors) sử dụng hệ thống để xem bảng phân công dạyhọc (course rosters)

� Người sử dụng hệ thống đăng ký được cấp passwords để vào máy

Page 19: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

19

Use case Diagram

Student

Registrar

Professor

Maintain Schedule

Maintain Curriculum

Request Course Roster

Billing System

� Biểu diễn sơ đồ chức năng của hệ thống. Từ tập yêu cầu của hệthống, biểu đồ use case sẽ phải 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 hệ thống đó.

� Đi kèm với biểu đồ use case là các kịch bản.

Page 20: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

20

Sequence Diagram

: Student registration form

registration manager

math 101

1: fill in info

2: submit

3: add course(joe, math 01)

4: are you open?

5: are you open?6: add (joe)

7: add (joe)

math 101 section 1

� Biểu diễn mối quan hệ giữa các đối tượng và giữa các

đối tượng và tác nhân theo thứ tự thời gian.

Page 21: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

21

Collaboration Diagram

: Registrar

course form : CourseForm

theManager : CurriculumManageraCourse :

Course

1: set course info2: process

3: add course

4: new course

� Biểu diễn mối quan hệ giữa các đối tượng 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.

Page 22: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

22

Class Diagram

RegistrationForm

RegistrationManager

Course

Student

CourseOfferingProfessor

addStudent(Course, StudentInfo)

namenumberCredits

open()addStudent(StudentInfo)

major

location

open()addStudent(StudentInfo)

tenureStatus

ScheduleAlgorithm

10..*

0..*

1

1

1..*4

3..10

0..41

� Chỉ ra các lớp đối tượng trong hệ thống, các thuộc tính và phươngthức của từng lớp và các mối quan hệ giữa những lớp đó.

Page 23: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

23

State Transition Diagram

InitializationOpen

entry: Register studentexit: Increment count

Closed

Canceled

do: Initialize course

do: Finalize course

do: Notify registered students

Add Student / Set count = 0

Add student [count < 10]

[count = 10]

Cancel

Cancel

Cancel

Page 24: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

State Transition Diagram

24

� Tương ứng với mỗi lớp sẽ chỉ ra các trạng thái mà đối tượng

của lớp đó có thể có và sự chuyển tiếp giữa những trạng thái

đó.

Page 25: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

25

Activity Diagram

� Biểu diễn các hoạt động và sự

đồng bộ, chuyển tiếp các hoạt

động, thường được sử dụng để

mô tả ca sử dụng hoặc biểu

diễn các phương thức phức

tạp của các lớp.

Page 26: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

26

Component Diagram

Course CourseOffering

Student Professor

Course.dll

People.dll

Course

User

Register.exeBilling.exe

BillingSystem

Page 27: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

27

Component Diagram

� Component diagrams định nghĩa các thành phần của hệthống và mối liên hệ giữa các thành phần đó.

� Nắm bắt kiến trúc vật lý trong thực thi

� Xây dựng như bộ phận của sự đặc tả kiến trúc

� Mục đích

� Tổ chức mã nguồn

� Xây dựng các modul thi hành

� Chỉ định cơ sở dữ liệu vật lý

� Được phát triển bởi người thiết kế và lập trình

Page 28: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

28

Deployment Diagram

Registration Database

Library

Form

Main Building

Biểu đồ triển khai biểu

diễn kiến trúc cài đặt và

triển khai hệ thống dưới

dạng các nodes và các mối

quan hệ giữa các node đó.

Thông thường, các nodes

được kết nối với nhau

thông qua các liên kết

truyền thông như các kết

nối mạng, liên kết TCPIP,

Page 29: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

29

Deployment Diagram

Client

Server

ApplicationServer

FulfillmentSystem

FinancialSystem

InventorySystem

RDBMSServer

Dynamic HTML, JavaScript, Javaplug-ins, source code enhancements

Java, C, C++, JavaScript, CGI

Java, C, C++, JavaBeans, CORBA, DCOM

Native languages

Page 30: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

30

Một số phần mềm hỗ trợ UML

� Rational Rose

� Là ngôn ngữ chuẩn phù hợp với các lược đồ trong UML

� Phù hợp với sự kế thừa của các hệ thống hướng đối tượng

� Các mô hình duy trì sự đồng bộ hóa trong suốt vòng đời phát triển

� ...

� Paradigm

� Altova UModel

� StartUML

� …

Page 31: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

31

Tóm tắt

� Các vấn đề đã nghiên cứu

� Khái niệm mô hình, mô hình hóa trực quan

� Khái quát về Ngôn ngữ mô hình hóa thống nhất

� Thí dụ sử dụng các biểu đồ của UML

Page 32: Phân tích hướng đối tượng UML - fit.mta.edu.vnfit.mta.edu.vn/files/DanhSach/Bai2(20142161526).pdf · UML giúp gi ải quy ết các vấn đề Phân tích Thi ết kế

32