chủ đề 2: uml - hienlth.info · •biểu đồ hoạt động (activity diagram) •biểu...

40
OOAD CH2 - 1 HIENLTH Chủ đề 2: UML

Upload: others

Post on 01-Sep-2019

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 1 HIENLTH

Chủ đề 2: UML

Page 2: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 2 HIENLTH

What is modeling?

•To represent how a business works and

functions in such a way that it can productively

be used as a means to simulate the real world

•A prediction of what would happen under a

certain set of conditions

Page 3: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 3 HIENLTH

The importance of modeling

Page 4: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 4 HIENLTH

Why do we modeling?

• We build models to better understand the system we are developing

• Modeling• Helps us to visualize a system as we want it to be

• Permits us to specify the structure or behavior of a system

• Gives us a template that guides us in constructing a system

• Documents the decisions we have made

• We build models of complex systems because we cannot comprehend such a system in its entirety

Page 5: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 5 HIENLTH

•There are some problems that occur in software development

• Diversification of software according to service and product which becomes more feature and high function

• Trouble on communication because of different culture

• Correspond with the changing requirement of short cycle and fast changing in business environment

• The increasing of cost and the difficulty in maintenance of software

Page 6: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 6 HIENLTH

Model in software

A B

AC D

:a :b

:c

Usecase1

Usecase2

msgA()

msgB()

Discuss/Review

Model

Source Code

Page 7: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 7 HIENLTH

The advantage of using model:

• It is easy to send the thinking image by clearing the

small part

• It is able to sharing thing created by relationship

between related person

• Can understand the outline of complicated software

• To adjust the problem, can correspond flexible to the

changing of requirement

Model is to decrease complication, share information between related persons, correspond to changing

requirement, effective in maintain software

Page 8: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 8 HIENLTH

Software modeling

•There many methodologies:

• DFD: Data Flow Diagram

• ERD: Entity Relationship Diagram

• UML: Unified Modeling Language

Page 9: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 9 HIENLTH

Giới thiệu về UML

Page 10: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 10 HIENLTH

History of UML

Page 11: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 11 HIENLTH

Tổng quan về UML

• UML (Unified Model Language) là một ngôn ngữ dùng cho phân tích thiết kế hướng đối tượng (OOAD – Object Oriented Analys and Design)

• Được duy trì và phát triển bởi OMG (Object Management Group), do Jacobson, Booch, Rumbaugh sáng lập. Ngoài ra còn có hàng trăm các tập đoàn lớn khác bảo trợ phát triển.

• UML 2.x có 13 loại biểu đồ để thể hiện các khung nhìn khác nhau (View) về hệ thống.

• Các biểu đồ UML cho ta cái nhìn rõ hơn về hệ thống (cả cái nhìn tĩnh và động)

Page 12: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 12 HIENLTH

Tổng quan về UML

• Hiện nay UML được sử dụng rất phổ biến trong các dự án phần mềm.

• UML thể hiện phương pháp phân tích hướng đối tượng nên không lệ thuộc ngôn ngữ lập trình.

• Có rất nhiều công cụ phần mềm hỗ trợ phân tích thiết kế dùng UML.

• Nhiều công cụ có thể sinh ra mã từ UML và ngược lại (từ mã thành UML-Reverse Eng)

• UML không phải là ngôn ngữ lập trình!

• Phiên bản mới nhất của UML là 2.5 (www.omg.org)

Page 13: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 13 HIENLTH

UML dùng để làm gì ?

• UML là một ngôn ngữ dùng để:

1. Trực quan hóa (Visualizing)

2. Đặc tả (Specifying)

3. Xây dựng (Constructing)

4. Viết tài liệu (Documenting)

Page 14: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 14 HIENLTH

Trực quan hóa - Visualizing

•Dùng tập các ký hiệu đồ họa phong phú để

biểu diễn hệ thống đang được nghiên cứu.

•Hệ thống ký hiệu đều có ngữ nghĩa chặt

chẽ, có thể hiểu bởi nhiều công cụ khác

nhau.

•Giúp cho các nhà thiết kế, nhà lập trình khác

biệt về ngôn ngữ đều có thể hiểu được.

Page 15: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 15 HIENLTH

UML là ngôn ngữ cho đặc tả -specifying

UML giúp xây dựng các mô hình chính xác, đầy

đủ và không nhập nhằng.

Tất cả các công đoạn từ phân tích, thiết kế cho

đến triển khai đều có các biểu đồ UML biểu

diễn.

Use case (dùng cho phân tích); Class,

Sequence, Activity... (cho thiết kế); Component,

Deployment (cho triển khai).

Page 16: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 16 HIENLTH

Xây dựng - Constructing

•Các mô hình UML có thể kết nối với nhiều ngôn ngữ lập trình. Tức là có thể ánh xạ các mô hình UML về một NNLT như C++, Java, C#...

•Việc chuyển các mô hình trong UML thành Code trong ngôn ngữ lập trình Forward engineering

•Việc chuyển ngược trở lại code trong một ngôn ngữ lập trình thành UML Reverse Engineering.

•Cần công cụ để chuyển đổi “xuôi” & “ngược”

Page 17: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 17 HIENLTH

UML là ngôn ngữ giúp viết tài liệu

•Giúp xây dựng tài liệu đặc tả - requirements

•Tài liệu kiến trúc (architecture)

•Tài liệu thiết kế

•Source code

•Tài liệu để kiểm thử - Test

•Tài liệu mẫu - Prototype

•Tài liệu triển khai – Deployment

• ............

Page 18: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 18 HIENLTH

Một số Case Tool hỗ trợ UML

•Rational Rose (của hãng Rational) http://www-128.ibm.com/developerworks/downloads/r/rsd/

•Visual Paradigm http://www.visual-paradigm.com

•Microsoft Visio www.microsoft.com

•Power designer http://www.sybase.com

•Visual Case http://www.visualcase.com

•Pacestar UML Diagrammer www.peacestar.com

•Astah: http://astah.net/

Page 19: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 19 HIENLTH

Một số biểu đồ UML cơ bản

Chiều cao

View 1

Page 20: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 20 HIENLTH

Một số biểu đồ UML cơ bản

Chiều cao phía sau

View 2

Page 21: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 21 HIENLTH

Một số biểu đồ UML cơ bản

View 3

Page 22: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 22 HIENLTH

Thành phần của ngôn ngữ UML

•Hướng nhìn (View)

•Biểu đồ (diagram)

•Phần tử mô hình hóa (model element)

Page 23: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 23 HIENLTH

“4 + 1” view

Page 24: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 24 HIENLTH

Khung nhìn (View)

• Use case view: chỉ ra chức năng hệ thống, nhìn từ tác nhân bên ngoài.

• Logical view: chỉ ra chức năng được thiết kế bên trong hệ thống ntn qua các khái niệm cấu trúc tĩnh cũng như ứng xử động của hệ thống.

• Component view: chỉ ra khía cạnh tổ chức của các thành phần code.

• Concurrency view: chỉ ra sự tồn tại đồng thời trong hệ thống, hướng đến việc giao tiếp và đồng bộ hóa trong hệ thống.

• Deployment view: chỉ ra khía cạnh triển khai hệ thống tập trung vào kiến trúc vật lý

Page 25: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 25 HIENLTH

Khung nhìn (view)

Page 26: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 26 HIENLTH

The outline of diagrams

Structure diagram

Class diagram

Object diagram

Component diagram

Composite structure

diagram

Package diagram

Deployment diagram

Behavior diagram

Use case diagram

Activity diagram

Timing diagram

Sequence diagram

Communication

diagram

Interaction diagram

Interaction outline

diagram

State machine

diagram

Page 27: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 27 HIENLTH

Các biểu đồ UML chính

• Các biểu đồ cấu trúc:• Biểu đồ lớp (Class diagram)

• Biểu đồ đối tượng (Object diagram)

• Biểu đồ gói (Package diagram)

• Biểu đồ thành phần (Component diagram)

• Biểu đồ triển khai (Deployment diagram)

• Các biểu đồ hành vi:• Biểu đồ ca sử dụng (Use-case diagram)

• Biểu đồ hoạt động (Activity diagram)

• Biểu đồ máy trạng thái (State machine diagram)

• Biểu đồ trình tự (Sequence diagram)

• Biểu đồ giao tiếp (Communication diagram)

Page 28: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 28 HIENLTH

Một số biểu đồ UML cơ bản

1

Biểu đồ ca sử dụngUse Case Diagram

StateComponent DeploymentCommunication/

CollaborationInteractionTimming

Page 29: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 29 HIENLTH

Sơ đồ Use Case

Page 30: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 30 HIENLTH

Sơ đồ Use Case

Page 31: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 31 HIENLTH

Sơ đồ lớp

Page 32: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 32 HIENLTH

Sơ đồ lớp và đối tượng

Page 33: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 33 HIENLTH

Sơ đồ Thành phần

Page 34: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 34 HIENLTH

Sơ đồ triển khai

Page 35: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 35 HIENLTH

Sơ đồ tuần tự và hợp tác

Page 36: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 36 HIENLTH

Sơ đồ trạng thái

Page 37: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 37 HIENLTH

Sơ đồ hoạt động

Page 38: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 38 HIENLTH

References

Bài giảng này có tham khảo:

•Slide bài giảng “Xây dựng phần mềm hướng

đối tượng”, Trần Minh Triết, ĐH KHTN TpHCM.

•Slide bài giảng “Phân tích Thiết kế HTTT

hướng đối tượng”, Nguyễn Trần Minh Thư, ĐH

KHTN TpHCM.

•Slide bài giảng Kỹ nghệ phần mềm, ĐH Công

nghệ, ĐHQG Hà Nội.

•UML, Nguyễn Văn Quý, APTECH, Hưng Yên.

Page 39: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 39 HIENLTH

Câu hỏi và thảo luận

Page 40: Chủ đề 2: UML - hienlth.info · •Biểu đồ hoạt động (Activity diagram) •Biểu đồ máy trạng thái (State machine diagram) •Biểu đồ trình tự (Sequence

OOAD CH2 - 40 HIENLTH

Thank you!!!