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

