79
2 Phân tích thiết kế hướng đối tượng GV: Phan Phân tích thiết kế hướng đối tượng Đỗ Ngọc Như Loan

Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

GV: Phan Thị Kim Loan

Phân tích thiết kế hướng đối tượng

Đỗ Ngọc Như Loan

Page 2: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Nội dung trước

2

Giới thiệu

Tiến trình phát triển hệ thống

Các phương pháp phát triển hệ thống

Page 3: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Nội dung

3

Hệ thống hướng chức năng vs. Hệ thống hướng đối tượng

Các đặc điểm cơ bản của hệ thống hướng đối tượng

Giới thiệu UML – UML 2.0

Phân tích thiết kế hướng đối tượng với UML 2.0

Page 4: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Giới thiệu

Lịch sử phát triển của ngôn ngữ lập trình:

First Generation (1954 – 1958)

• Fortran I

Second Generation (1959 – 1961)

• Fortran II, Algol, Cobol

Third Generation (1962 – 1970)

• PL/I, Pascal

Object Oriented Languages

• Smalltalk, C++, Java

4

Page 5: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Lịch sử phát triển OOAD

5

Page 6: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Lịch sử của UML

6

OOSE OMT Booch method Others method

Unified method

UML 0.9

UML 1.0

UML 1.1

UML 1.3

UML 2.0

OOPSLA ‘95

Web – Jun ‘96

UML Partners

OMG Acceptance, Nov ‘97

Final submission to OMG, Sep ’97

First submission to OMG, Jan ‘97

Public

& F

eedback

Page 7: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Giới thiệu

Thiết kế cấu trúc và thiết kế hướng đối tượng

7

Student

Account

Đăng ký học

phần

v..v…

Thi cử

Đóng học phí

Nhập học

Thiết kế cấu trúc

Page 8: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Giới thiệu

Thiết kế cấu trúc và thiết kế hướng đối tượng

8

Student

Account

v..v…

Messege

Messege

Messege

Messege

Thiết kế hướng đối tượng

Page 9: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Nguyên tắc cơ bản của OO

Hướng đối tượng – Object-Oriented

Trừu tượng hoá – Abstraction

Tính đóng gói – Encapsulation

Tính đơn thể - Modularity

Tính phân cấp – Hierarchy

9

Page 10: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Trừu tượng hoá – Abstraction

Quản lý độ phức tạp

10

Người bán hàng

Sản phẩm

Khách hàng

Page 11: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Tính đóng gói – Encapsulation

Che dấu cài đặt bên trong với clients

Clients phụ thuộc vào interface

Tăng tính mềm dẻo

11

Page 12: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Tính đơn thể - Modularity

Phân chia nhỏ 1 vấn đề phức tạp thành nhiều

phần nhỏ, đơn giản hơn để có thể quản lý được

độ phức tạp

12

Hệ thống xử lý mua bán hàng hoá

Nhận đơn đặt hàng

Thực hiện đơn đặt hàng

Thanh toán đơn đặt hàng

Lập hoá đơn bán hàng

Thanh toán hoá đơn

Xuất hoá đơn

…Các đơn thể quản lý tồn kho

Page 13: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Tính phân cấp – Hierarchy

13

Bất động sản Chứng khoán Tài khoản ngân hàng

Tài sản

Cổ phiếu Trái phiếu Tài khoản Tiết kiệm

Tài khoản Thanh toán

Tăng mức độ trừu tượng

Giảm mức độ trừu tượng

Các phần tử trên cùng một mức phải có cùng mức độ trừu tượng

Page 14: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Các khái niệm cơ bản của HĐT

Objects & Class

Attributes (Properties) & Operation (Behavior)

Method & Message

Interface (Polymorphism)

Component

Package

Subsystem

Relationship

14

Page 15: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Object

Một cách không hình thức, một đối tượng biểu diễn một thực

thể, dạng vật lý, khái niệm hoặc phần mềm

15

Thực thể

vật lý

Thực thể

Khái niệm

Thực thể

Phần mềm Chemical Process

Truck

Linked-list

Page 16: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Objects & Class

Một đối tượng là một đối tượng trừu tượng, hoặc một vật với

giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể

Lớp (Class) – khuôn mẫu cho các thể hiện của object

Đối tượng (Object) – Thể hiện của một class

Thuộc tính (Attributes)

Hành vi (Behaviors) – chi tiết đối tượng có thể làm gì

16

Page 17: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu diễn đối tượng

Một đối tượng được biểu diễn bởi một hình chữ nhật với tên được gạch dưới

17

: Profressor

ProfressorJohn

ProfressorJohn:Professor

A x B = 10

Profressor John

Chỉ có tên Object

Tên Class và tên Object

Chỉ có tên Class

Page 18: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Class - Example

Class

Course

18

A x B = 10

Profressor John

Properties

Tên

Địa điểm

Thời gian

Số tín chỉ

Giờ bắt đầu

Giờ kết thúc

Behavior

Thêm một sinh viên

Huỷ một sinh viên

Lấy danh sách giáo sư

Page 19: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Class & Object

19

Page 20: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Method & Message

Phương thức (Methods) implement an object’s behavior

Messages are sent to trigger methods

Procedure call from one object to the next

20

Page 21: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Phương thức và message

21

Page 22: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Polymorphism

Khả năng che dấu nhiều cài đặt khác nhau

bên dưới một giao diện (interface) duy nhất

Nguyên tắc OO đóng gói

22

Nhà sản xuất A

Nhà sản xuất B

Nhà sản xuất C

Page 23: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Polymorphism – Interface

23

Interface là hình thức hoá polymorphism

Interface hỗ trợ kiến trúc “plug & play”

<<interface>>

Shape

Draw Move Scale Rotate

Tube

Pyramid

Cube

Quan hệ Realizzation

Page 24: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Component

Một phần không tầm thường của hệ thống, gần như độc

lập và có thể thay thế được, giữ một chức năng rõ ràng

trong hệ thống

Một component có thể là

Một source code component

Một run time components hoặc

Một executable component

24

Source File Name

<<EXE>> Executable name

<<DLL>> Component name

Page 25: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Package

Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm

Một phần tử trong mô hình có thể chứa các phần tử khác

Dùng để

Tổ chức mô hình đang phát triển

Một đơn vị trong quản trị cấu hình

25

Package Name

Nguyên tắc OO

Tính đơn thể

Page 26: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Subsystem

Tổ hợp của một package (có thể chứa các phần tử khác

trong mô hình) và một class(có hành vi)

Hiện thực hoá một hoặc nhiều interface định nghĩa cho

hành vi của nó

26

<<subsystem>> Subsystem Name

Subsystem Relization

Interface

Page 27: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Subsystem & Component

Component là thể hiện ở mức vật lý của một khái niệm

trừu tượng trong thiết kế

Subsystem có thể dùng để biểu diễn các component

trong thiết kế

27

Component name

<<subsystem>> Component name

Design Model Implementation Model

Component Interface Component Interface

Page 28: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Relationships

Association (Kết hợp) – Bản số và chiều

Aggregation (Thu nạp): toàn thể và bộ phận

Composition (Cấu thành)

Dependency (Phụ thuộc)

Generalization (Tổng quát hóa) Đơn/Đa kế thừa

Realization (Hiện thực hoá)

28

Page 29: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Association

Mô hình hoá một liên kết ngữ nghĩa giữ các class

29

class Tên role

Association

Tên association

Page 30: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Aggregation

Một dạng đặc biệt của association – mô hình hoá mối quan hệ toàn thể - bộ phận giữa một thực thể và các bộ phận của nó

30

Whole Part

Aggregation

Page 31: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Composition

Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống

Các bộ phận không thể sống lâu hơn thực thể

31

Whole Part

Aggregation

Page 32: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Association: Bản số và chiều

Bản số xác định số đối tượng tham gia vào một mối

quan hệ

Số các thể hiện của một class quan hệ với MỘT thể hiện

của một class khác

Được chỉ ra ở mỗi đầu của quan hệ association

Association và aggregation mặc định là hai chiều,

nhưng người ta thường giới hạn theo một chiều

Mũi tên được thêm vào để chỉ chiều của mối quan hệ

32

Page 33: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Association: Bản số

Không xác định

Chỉ một

Không hoặc nhiều

Một hoặc nhiều

Không hoặc một

Khoảng được chỉ định

Các khoảng không liên tục

33

1

0 .. *

1..*

0..1

2..4

2,4,6

Page 34: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Bản số và chiều

34

1 0..*

Navigation

Multiplicity

Page 35: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Mối quan hệ: Dependency

Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử

này có thể gây ra thay đổi ở phần tử kia

Quan hệ “sử dụng”, không cấu trúc

35

Dependency relationship

Dependency relationship

Class

Component

Package

Page 36: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Generalization

Quan hệ giữa các class trong đó một lớp chia sẻ cấu trúc

và/hoặc hành vi của một hoặc nhiều class khác

Xác định một sự phân cấp các mức độ trừu tượng trong đó

một subclass kế thừa từ một hoặc nhiều superclass

Đơn kế thừa

Đa kế thừa

Generalization là quan hệ « là một dạng của »

36

Page 37: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Đơn kế thừa

Một class kế thừa từ một class khác

37

Tổ tiên

Hậu duệ Hậu duệ

Generalization Relationship Super Class

(cha)

Sub Classes

Page 38: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Chỉ sử dụng đa kế thừa khi thật cần, và luôn phải cẩn thận !

38

Đa kế thừa

Đa kế thừa

Page 39: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Cái gì được kế thừa

Một subclass kế thừa các thuộc tính, hành vi và các

mối quan hệ từ cha nó

Một subclass có thể:

Bổ sung thuộc tính, hành vi và các mối quan hệ

Định nghĩa lại các hành vi (nên cẩn thận!)

Các thuộc tính, hành vi và các mối quan hệ chung

được đặt ở mức cao nhất có thể trong cấu trúc phân

cấp

39

Page 40: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Realization

Một lớp thực thi hành vi được đặc tả bởi 1 lớp khác

(thường là 1 interface)

40

Page 41: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng 41

Page 42: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Giới thiệu về UML

UML chỉ đơn thuần là ngôn ngữ đồ hoạ để mô hình hoá chứ

không phải là phương pháp để phát triển hệ thống

42

Page 43: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Giới thiệu về UML

UML 2.0 cung cấp 14 biểu đồ để mô hình

hoá cấu trúc và chức năng của hệ thống,

chia làm 2 nhóm:

Biểu đồ mô hình cấu trúc

Biểu đồ mô hình chức năng

43

Page 44: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

6 loại biểu đồ cấu trúc:

Biểu đồ lớp (Class)

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

Biểu đồ gói (package)

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

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

Biểu đồ cấu trúc phức hợp (Composite structure

diagrams)

44

Page 45: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

Biểu đồ lớp (class diagram)

Biểu diễn mối quan hệ giữa các lớp

45

Page 46: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

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

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

46

Page 47: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

Biểu đồ gói (package diagram)

Biểu đồ gói gộp các

thành phần khác

nhau của UML (ví

dụ: lớp) để tạo

thành thành phần

lớn hơn

47

Page 48: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

Biểu đồ triển khai (deployment diagram)

Biểu diễn cấu trúc phần

cứng và các thành phần

phần mềm của hệ thống

48

Printer

123 Le Loi Str

Regional ATM

Server

Banking

Datab...

345 Nguyen

Hue Str.

Oracle Server

ATMServer.exe

ATMClient.exe ATMClient.exe

<<Private Network>> <<Private Network>>

<<LAN>>

Page 49: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

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

Biểu diễn quan hệ giữa các thành phần của hệ thống

49

Page 50: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ cấu trúc

Biểu đồ cấu trúc phức hợp (composite structure diagram)

Minh hoạ chi tiết cấu trúc bên trong của một lớp

50

Page 51: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

8 loại biểu đồ chức năng

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

Biểu đồ tương tác (interaction diagrams)

• Biểu đồ chuỗi tuần tự (sequence diagram)

• Biểu đồ cộng tác (communication/collaboration diagram)

• Biểu đồ khát quát tương tác (interaction overview diagram)

• Biểu đồ thời gian (timing diagram)

Biểu đồ máy trạng thái (state machines)

• Máy trạng thái chức năng (behavior state machines)

• Máy trạng thái giao thức (protocol state machines)

Biểu đồ ca sử dụng (use case diagram)

51

Page 52: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

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

Được dùng để mô

tả luồng công việc

của hệ thống hoặc

luồng hoạt động

trong một ca sử

dụng hoặc mô tả

thiết kế chi tiết của

một phương thức

(method)

52

Page 53: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

Biểu đồ chuỗi tuần tự (sequence diagram)

Mô tả các hoạt động của các đối tượng trong một ca sử

dụng dựa vào thứ tự xuất hiện theo thời gian

53

Page 54: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

Biểu đồ cộng tác (collaboration diagram)

Là cách biểu diễn khác của biểu đồ chuỗi tuần tự

nhưng tập trung vào mối quan hệ và giao tiếp giữa

các đối tượng

54

Page 55: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

Biểu đồ khát quát tương tác (interaction overview diagram) Được dùng để mô tả tương tác giữa các đối tượng trong các

ca sử dụng phức tạp

Ít được sử dụng

Biểu đồ thời gian (timing diagram) Được dùng để mô tả tương tác giữa các đối tượng theo thời

gian. Chủ yếu được dùng để mô tả sự thay đối trạng thái của

đối tượng khi có tác động của một sự kiện theo thời gian.

Được dùng để phát triển các hệ thống thời gian thực và hệ

thống nhúng

55

Page 56: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

Biểu đồ máy trạng thái chức năng (behavior state machines) Được dùng để mô tả các trạng thái khác nhau mà các

đối tượng của một lớp có thể có trong thời gian tồn tại

của chúng.

56

Page 57: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

Biểu đồ máy trạng thái giao thức (protocol state machines) Được dùng để mô tả giao thức giữa các lớp

Ví dụ: open database -> Query or update

57

Page 58: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

58

Biểu đồ ca sử dụng (use case diagram)

Được dùng để mô tả tương tác giữa một hệ thống với người sử dụng

hoặc với các hệ thống khác có tương tác với nó.

Là công cụ để mô tả các yêu cầu của hệ thống

Là một trong những công cụ quan trọng nhất trong phân tích và thiết kế

hướng đối tượng

Page 59: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

59

Page 60: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Biểu đồ chức năng

60

Page 61: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Các Ràng buộc

Ràng buộc (constraints)

Dùng để biểu

diễn ràng buộc

và các quan

hệ mà không

thể biểu diễn

được bằng

UML

Ràng buộc

được đặt trong

ngoặc { }

61

Page 62: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Các giá trị đính

Nhãn:giá trị (tagged values)

Là một cặp chuỗi ký tự: nhãn (tag) và giá trị (value)

được dùng để bổ sung thông tin cho một phần tử nào

đó (lớp, đối tượng, quan hệ …)

Nhãn và giá trị được đặt trong ngoặc { }

62

Page 63: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Các khuôn mẫu

Khuôn mẫu (stereotype)

Cho phép mở rộng UML bằng cách sử dụng các phần tử

mô hình hoá đã có sẵn trong UML

Khuôn mẫu có thể sử dụng ràng buộc và tagged values

Khuôn mẫu được đặt trong dấu << >>

63

Page 64: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Các ghi chú

Note: Có thể đặt ghi chú cho mọi phần tử UML

Ghi chú dùng để thêm thông tin cho các lược đồ

Nó là hình chữ nhật bị bẻ góc

Ghi chú có thể móc nối với một phần tử bằng một đường

đứt nét

64

Page 65: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Đặc điểm cơ bản của OOAD

Use-case driven

Architecture Centric

• Cấu trúc phần mềm quyết định việc mô tả, xây dựng và viết tài

liệu hệ thống

• 3 dạng cấu trúc của một hệ thống:

• Chức năng (functional view): chức năng bên ngoài của hệ

thống từ góc nhìn của người sử dụng : biểu đồ ca sử dụng,

biểu đồ hoạt động

• Cấu trúc tĩnh (static view): lớp, thuộc tính, phương thức,

quan hệ

• Cấu trúc động (dynamic view): chức năng bên trong của hệ

thống: biểu đồ máy trạng thái chức năng

Iterative and Incremental

65

Page 66: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Ưu điểm của OOAD

Việc chia nhỏ một hệ thống lớn thành các module sẽ giúp cho việc giải quyết vấn đề dễ dàng hơn, dễ chia sẻ giữa các thành viên của dự án và dễ dàng trao đổi với người dùng về các yêu cầu của hệ thống

Dễ dàng sử dụng lại các module trong các dự án khác

Tư duy suy nghĩ về đối tượng gần gũi với thực tế

66

Page 67: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Ưu điểm

Một mô hình chung

Có tính dễ dùng lại

Mô hình phản ánh chính xác thế giơi thực

Mô tả chính xác hơn các tập dữ liệu và các xử lý

Được phân rã dựa trên các phân chia tự nhiên

Dễ hiểu và dễ bảo trì

Tính ổn định

Một thay đổi nhỏ trong yêu cầu không gây ra sự thay

đổi lớn trong hệ thống đang phát triển

67

Page 68: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Ưu điểm của OOAD

68

Page 69: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Unified process là một phương pháp phát triển hệ thống trong đó quy

định khi nào thì sử dụng các kỹ thuật UML và sử dụng chúng như thế

nào trong quá trình phân tích và thiết kế hệ thống.

Tác giả: Booch, Jacobsen, Rumbaugh

Là phương pháp hướng đối tượng

Không phải là một quy trình phát triển phần mềm hoàn thiện

• Không xét đến các vấn đề về phân bổ nhân lực, ngân quỹ, quản

lý hợp đồng

• Không quy định về các hoạt động bảo trì hay hỗ trợ khách hàng

• Không xét đến các vấn đề tương tác giữa các dự án

69

Page 70: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

70

Page 71: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Pha khởi tạo (Inception): giống như pha lập kế hoạch

Các bước liên quan:

• Mô hình hoá giá trị kinh doanh của hệ thống (business modeling) *

• Xác định yêu cầu (requirements)*

• Phân tích (analysis)*

• Thiết kế (design)

• Thực hiện (implementation)

• Kiểm tra (test)

• Môi trường phát triển (environment)*

Kết quả:

• Phạm vi của dự án

• Các yêu cầu và ràng buộc quan trọng

• Kế hoạch dự án bước đầu

• Miêu tả tính khả thi và rủi ro của dự án

• Lựa chọn môi trường cần thiết để phát triển hệ thống

71

Page 72: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Pha phát triển (elaboration): hoàn thiện mô hình kinh doanh, đánh giá lại rủi ro và hoàn thiện kế hoạch dự án

Các bước liên quan:

• Thu thập yêu cầu (requirements)

• Phân tích (analysis)*

• Thiết kế (design)*

• Thực hiện (implementation)

• Kiểm tra (test)

• Triển khai (deployment)

• Quản lý cấu hình và thay đổi (configuration and change

management)

Kết quả:

• Biểu đồ cấu trúc và chức năng UML

• Phiên bản hoạt động đầu tiên của hệ thống

72

Page 73: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Pha xây dựng (construction): tập trung chủ yếu vào lập trình

Các bước liên quan:

• Thu thập yêu cầu (requirements)

• Phân tích (analysis)

• Thiết kế (design)

• Thực hiện (implementation)*

• Kiểm tra (test)

• Triển khai (deployment)

• Quản lý cấu hình và thay đổi (configuration and change

management)*

Kết quả:

• Phiên bản beta của hệ thống

73

Page 74: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Pha chuyển tiếp (transition): tập trung chủ yếu vào kiểm tra và triển khai

Các bước liên quan:

• Thu thập yêu cầu (requirements)

• Phân tích (analysis)

• Thiết kế (design)

• Thực hiện (implementation)

• Kiểm tra (test)*

• Triển khai (deployment)*

• Quản lý cấu hình và thay đổi (configuration and change

management)*

Kết quả:

• Phiên bản cuối cùng (release) của hệ thống

• Hướng dẫn sử dụng

• Kế hoạch hỗ trợ khách hàng, kế hoạch nâng cấp hệ thống

74

Page 75: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Các bước kỹ thuật (Engineering workflows)

1. Mô hình hoá giá trị kinh doanh (business modeling)

• Diễn ra chủ yếu trong pha khởi tạo

• Phát hiện vấn đề và xác định các dự án tiềm năng

• Xác định giá trị kinh doanh mà dự án đem lại

• Thu thập dữ liệu và mô hình hoá ca sử dụng có thể được sử dụng

2. Xác định yêu cầu (requirements)

• Xác định yêu cầu về chức năng và cả không chức năng

• Yêu cầu được thu thập từ người sử dụng, người quản lý người sử

dụng, khách hàng

3. Phân tích

• Xây dựng biểu đồ cấu trúc và chức năng sử dụng UML

• Xác định các lớp có thể sử dụng lại

• Bước phân tích có thể được sử dụng lại bất kỳ lúc nào trong chu

trình phát triển hệ thống

75

Page 76: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Các bước kỹ thuật (Engineering workflows)

4. Thiết kế

• Chuyển từ mô hình phân tích sang mô hình thiết kế

• Thiết kế giao diện, cơ sở dữ liệu, cấu trúc vật lý của hệ thống, thiết kế

chi tiết các lớp

5. Thực hiện (implementation)

• Lập trình: viết các lớp, chương trình và sử dụng các lớp trong thư

viện

• Tích hợp các module

6. Kiểm tra (Test)

• Kiểm tra tích hợp hệ thống, chức năng, kiểm tra khả năng chấp nhận

của người sử dụng …

• Việc kiểm tra đuợc tiến hành trong suốt quá trình phát triển của HT

7. Triển khai (deployment) Đóng gói phần mềm, phân phối, cài đặt và beta

testing

76

Page 77: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

The Unified process

Các bước hỗ trợ (Supporting workflows)

1. Quản lý dự án (project management)

• Diễn ra trong suốt quá trình phát triển hệ thống

• Xác định và quản lý rủi ro

• Quản lý phạm vi dự án

• Quản lý về thời gian, chi phí…

2. Quản lý cấu hình và thay đổi (configuration and change management )

• Theo dõi và quản lý trạng thái và các phiên bản của hệ thống

• Quản lý việc thay đổi các phiên bản (người thay đổi, thời gian thay

đổi…)

3. Quản lý môi trường phát triển (environment)

• Quản lý các công cụ và môi trường phát triển cần thiết cho dự án

• Ví du: Rational Rose, Microsoft project, Microsoft Visual C++

77

Page 78: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Thực hành

Làm quen với công cụ Rational Rose

Case Study – Quản lý đăng ký học phần

Tìm hiểu về các đề tài OOAD

Đăng ký nhóm và đăng ký đồ án

Đọc sách UML

78

Page 79: Phân tích thiết kế hướng đối tượng - LOAN DO · Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống . 2 – Phân tích thiết

2 – Phân tích thiết kế hướng đối tượng

Bài tập

Cho ví dụ 10 Class: Attribute, Operation

Cho ví dụ 10 Object

=> trong đề tài đã đăng ký

79