Phân Tích Thiết Kế Hệ Thống Thông Tin

Phân tích hệ thống hướng đối tượng (Object-Oriented Analysis)

Nguyễn Hoàng Ân - Khoa HTTTQL

Nội dung chính

 Tổng quan về Phân tích hướng đối tượng.  Phân tích hướng đối tượng với UML  Sơ đồ use case (Use case diagrams)  Sơ đồ hoạt động (Activity Diagrams)  Sơ đồ tuần tự (Sequence diagrams)

3 Nguyễn Hoàng Ân - Khoa HTTTQL

Tài liệu tham khảo

 [01] Kendall and Kendall, “System Analysis and Design”, 8th Edition, Prentice Hall, 2011.  Chapter 10

4 Nguyễn Hoàng Ân - Khoa HTTTQL

Tổng quan về Phân tích hướng đối tượng

5 Nguyễn Hoàng Ân - Khoa HTTTQL

Các khái niệm hướng đối tượng

 Đối tượng (Objects)  Lớp (Classes)  Sự thừa kế (Inheritance)

6 Nguyễn Hoàng Ân - Khoa HTTTQL

Đối tượng (Objects)

 Người, nơi chốn, hoặc những thứ có liên

quan đến hệ thống đang được phân tích

 Có

là khách hàng, mặt hàng,

thể đơn đặt hàng...

 Có thể là màn hình giao diện đồ họa người dùng (GUI) hoặc các vùng văn bản trên màn hình

7 Nguyễn Hoàng Ân - Khoa HTTTQL

Lớp (Classes)

 Xác định tập hợp các thuộc tính và hành vi có

trong mỗi đối tượng thuộc lớp

 Có một tên để phân biệt một lớp với các lớp

khác

 Khởi tạo (Instantiate) là khi một đối tượng được

tạo ra từ một lớp

 Mỗi thuộc tính mô tả một số đặc tính (property)

có trong tất cả các đối tượng của lớp

 Phương thức (method) là một hành động mà có thể được yêu cầu từ bất kỳ đối tượng nào của lớp

8 Nguyễn Hoàng Ân - Khoa HTTTQL

Một ví dụ của một lớp UML. Một lớp được mô tả như là một hình chữ nhật bao gồm tên lớp (class name), các thuộc tính (attributes), và các phương thức (methods)

9 Nguyễn Hoàng Ân - Khoa HTTTQL

Sự thừa kế (Inheritance)

 Khi một lớp được dẫn xuất (derived class) thừa hưởng tất cả các thuộc tính và hành vi của lớp cơ sở (base class)

 Giảm công việc lập trình bằng cách sử dụng tượng phổ biến một cách

các đối dễ dàng

 Đây là tính năng chỉ có trong các hệ thống

hướng đối tượng

10 Nguyễn Hoàng Ân - Khoa HTTTQL

Một sơ đồ lớp hiển thị thừa kế

Xe hơi và xe tải là những ví dụ cụ thể của xe và kế thừa các đặc tính lớp xe

11

Nguyễn Hoàng Ân - Khoa HTTTQL

Các thẻ CRC (CRC Cards) và tư duy theo đối tượng (Object Think)  CRC

 Class: Lớp  Responsibilities: các trách nhiệm  Collaborators: các lớp cộng tác

 Các thẻ CRC được dùng để mô tả các trách nhiệm của các lớp và sự tương tác giữa các lớp

12 Nguyễn Hoàng Ân - Khoa HTTTQL

Bốn thẻ CRC cho các đề xuất khóa học cho thấy cách các nhà phân tích điền vào các chi tiết cho các lớp, các trách nhiệm, và các lớp cộng tác, cũng như cho các phát biểu tư duy đối tượng và các tên thuộc tính

13 Nguyễn Hoàng Ân - Khoa HTTTQL

14

Nguyễn Hoàng Ân - Khoa HTTTQL

Tương tác trong một phiên CRC

 Xác định tất cả các lớp có thể  Tạo kịch bản (scenarios)  Xác định và tinh chỉnh các trách nhiệm

15 Nguyễn Hoàng Ân - Khoa HTTTQL

2

Mô hình hóa đối tượng với UML

16 Nguyễn Hoàng Ân - Khoa HTTTQL

Các khái niệm và sơ đồ UML

 Things: các đối tượng (thực thể)  Relationships: các mối quan hệ  Diagrams: các sơ đồ

17 Nguyễn Hoàng Ân - Khoa HTTTQL

Các đối tượng (Things)

 Các đối tượng có cấu trúc (Structural things)

 Lớp (classes), giao diện (interfaces), use cases và các phần

tử khác cung cấp cách để tạo ra mô hình

 Chúng cho phép người dùng mô tả các mối quan hệ

 Các đối tượng về hành vi (Behavioral things)  Mô tả cách các đối tượng làm việc

 Tương tác (Interactions) và máy trạng thái (state

machines)

 Các đối tượng nhóm (Group things)

 Được dùng để xác định phạm vi

 Các đối tượng chú thích (Annotational things)

 Có thể thêm ghi chú cho các sơ đồ

18 Nguyễn Hoàng Ân - Khoa HTTTQL

Các mối quan hệ (Relationships)

 Các quan hệ cấu trúc (Structural

relationships)  Liên kết các đối tượng với nhau trong các sơ đồ

cấu trúc (structural diagrams)  Các quan hệ hành vi (Behavioral

relationships)  Được sử dụng trong các sơ đồ hành vi

(Behavioral diagrams)

19 Nguyễn Hoàng Ân - Khoa HTTTQL

Các quan hệ cấu trúc (Structural Relationships)

 Phụ thuộc (Dependencies)  Hợp (Aggregations)  Hội (Associations)  Tổng quát (Generalizations)

20 Nguyễn Hoàng Ân - Khoa HTTTQL

Các quan hệ hành vi (Behavioral Relationships)

 Giao tiếp (Communicates)  Bao gồm (Includes)  Mở rộng (Extends)  Khái quát hóa (Generalizes)

21 Nguyễn Hoàng Ân - Khoa HTTTQL

Các sơ đồ (Diagrams)

 Các sơ đồ cấu trúc (Structural diagrams)  Dùng để mô tả mối quan hệ giữa các lớp  Các sơ đồ hành vi (Behavior diagrams)

 Dùng để mô tả sự tương tác giữa các tác nhân

(actors) và use case

• Cách các tác nhân sử dụng hệ thống

22 Nguyễn Hoàng Ân - Khoa HTTTQL

Các sơ đồ cấu trúc (Structural Diagrams)

 Sơ đồ lớp (Class diagrams)  Sơ đồ đối tượng (Object diagrams)  Sơ đồ thành phần (Component diagrams)  Sơ đồ triển khai (Deployment diagrams)

23 Nguyễn Hoàng Ân - Khoa HTTTQL

Các sơ đồ hành vi (Behavioral Diagrams)

 Sơ đồ use case  Sơ đồ tuần tự (Sequence diagrams)  Sơ đồ cộng tác (Collaboration diagrams)  Sơ đồ trạng thái (Statechart diagrams)  Sơ đồ hoạt động (Activity diagrams)

24 Nguyễn Hoàng Ân - Khoa HTTTQL

Một cái nhìn tổng thể về UML và các thành phần của nó: các thực thể, các mối quan hệ, và các sơ đồ

25 Nguyễn Hoàng Ân - Khoa HTTTQL

Các sơ đồ UML thường được sử dụng

 Sơ đồ use case

 Mô tả cách hệ thống được sử dụng  Điểm khởi đầu cho mô hình hóa UML

 Kịch bản use case (scenario)

 Một cách phát biểu rõ ràng các ngoại lệ về hành

vi chính được mô tả bởi use case chính  Sơ đồ hoạt động (Activity diagram)

 Minh họa luồng tổng thể của các hoạt động

26 Nguyễn Hoàng Ân - Khoa HTTTQL

Các sơ đồ UML thường được sử dụng...

 Sơ đồ tuần tự (Sequence diagrams)

 Chỉ ra tuần tự các hoạt động và mối quan hệ lớp

 Sơ đồ lớp (Class diagrams)

 Thể hiện các lớp và các mối quan hệ  Sơ đồ trạng thái (Statechart diagrams)

 Thể hiện sự dịch chuyển trạng thái

27 Nguyễn Hoàng Ân - Khoa HTTTQL

Tổng quan về sơ đồ UML cho thấy cách mỗi sơ đồ dẫn đến sự phát triển của sơ đồ UML khác

28 Nguyễn Hoàng Ân - Khoa HTTTQL

3

Sơ đồ Use case (Use case diagrams)

29 Nguyễn Hoàng Ân - Khoa HTTTQL

Mô hình hóa use-case (Use Case Modeling)

 Mô tả hệ thống làm gì, không mô tả cách hệ

thống thực hiện

 Dựa vào sự tương tác và mối quan hệ của

các use-case riêng lẻ

 Mô tả use-case

 Tác nhân (Actor)  Sự kiện (Event)  Use-case

30 Nguyễn Hoàng Ân - Khoa HTTTQL

Business Process Identification With Use-Cases

 Elements of Use-Case Diagrams

 Actors: users or other interacting systems

 Associations: lines to connect actors and use-cases • Interactions, inclusions, extensions or generalizations  Use-case: a major process in the system

that gives a benefit to the users

 Subject boundary: a named box that depicts the

scope of the system

Một ví dụ về use-case Student Enrollment

32 Nguyễn Hoàng Ân - Khoa HTTTQL

33

Nguyễn Hoàng Ân - Khoa HTTTQL

34

Nguyễn Hoàng Ân - Khoa HTTTQL

4

Sơ đồ hoạt động (Activity Diagrams)

35 Nguyễn Hoàng Ân - Khoa HTTTQL

Sơ đồ hoạt động (Activity Diagrams)

 Chỉ ra tuần tự các hoạt động trong một quá trình bao gồm các hoạt động tuần tự và song song, và quyết định được thực hiện

 Các ký hiệu

 Hình chữ nhật với các góc tròn  Hình mũi tên  Hình kim cương  Hình chữ nhật phẳng, dài  Vòng tròn tô kín bên trong  Vòng tròn đen được bao quanh bởi một vòng tròn trắng  Đường phân chia (Swimlanes)

36 Nguyễn Hoàng Ân - Khoa HTTTQL

Các ký hiệu chuyên dùng được sử dụng để vẽ một sơ đồ hoạt động

37 Nguyễn Hoàng Ân - Khoa HTTTQL

Tạo sơ đồ hoạt động

 Được tạo ra bằng cách hỏi những gì xảy ra đầu tiên, những gì xảy ra thứ hai, và cứ tiếp tục như vậy

 Phải xác định những hoạt động nào thực

hiện tuần tự hoặc song song

 Chuỗi các hoạt động có thể được xác định từ

sơ đồ luồng dữ liệu vật lý

 Có thể được tạo ra bằng cách kiểm tra tất cả

các kịch bản cho một use-case

38 Nguyễn Hoàng Ân - Khoa HTTTQL

Đường phân chia (Swimlanes)

 Cho thấy cách dữ liệu được truyền đi hoặc

chuyển đổi

 Hỗ trợ việc nhóm các hoạt động lại với nhau  Làm cho sơ đồ hoạt động trở thành phương

tiện giao tiếp

39 Nguyễn Hoàng Ân - Khoa HTTTQL

Activity Diagram Syntax

• Action or Activity

– Represents action or set of actions

• Control Flow

– Shows sequence of execution

Initial Node – The beginning of a set of actions

• Final Node

– Stops all flows in an activity

• Decision Node

– Represents a test condition

Activity Diagram Symbols

Sample Activity Diagram

Sơ đồ hoạt động thể hiện 3 swimlane: Client Web Page, Web Server, and Mainframe

43

Nguyễn Hoàng Ân - Khoa HTTTQL

Sơ đồ tuần tự và kế hoạch kiểm thử (Test Plans)

 Sơ đồ hoạt động có thể được dùng để xây

dựng kế hoạch kiểm thử

 Mỗi sự kiện phải được kiểm thử nếu hệ

thống chuyển đến trạng thái kế tiếp  Mỗi quyết định phải được kiểm thử

44 Nguyễn Hoàng Ân - Khoa HTTTQL

5

Sơ đồ tuần tự (Sequence diagrams)

45 Nguyễn Hoàng Ân - Khoa HTTTQL

Sơ đồ tuần tự

 Minh họa cho một chuỗi các tương tác giữa các lớp hoặc thực thể đối tượng theo thời gian

 Thường dùng để diễn tả hoạt động xử lý

được mô tả trong các kịch bản use-case

 Được dùng để diễn tả các mô hình tổng thể về các hoạt động hoặc các tương tác trong use-case

46 Nguyễn Hoàng Ân - Khoa HTTTQL

Các ký hiệu đặc biệt được sử dụng để vẽ sơ đồ tuần tự

47 Nguyễn Hoàng Ân - Khoa HTTTQL

Sơ đồ tuần tự: Student Admission

48 Nguyễn Hoàng Ân - Khoa HTTTQL

Hỏi đáp

49 Nguyễn Hoàng Ân - Khoa HTTTQL