You are on page 1of 32

Object-Oriented Analysis and Design

Bài 3: Tổng quan về yêu cầu phần mềm

Object Oriented Analysis and Design


1
Mục tiêu: Tổng quan về yêu cầu phần mềm
 Mô tả những khái niệm cơ bản về yêu cầu
phần mềm và việc chúng ảnh hưởng đến
phân tích và thiết kế như thế nào?
 Trình bày cách đọc và hiểu các thành phần
của yêu cầu phần mềm được sử dụng làm
điểm khởi đầu cho phân tích và thiết kế

Object Oriented Analysis and Design


2
Nội dung
 Giới thiệu
 Các khái niệm cơ bản
 Mô hình ca sử dụng
 Bảng chú giải (Glossary)
 Các đặc tả bổ sung
 Các điểm quan trọng (Checkpoints)

Object Oriented Analysis and Design


3
Ngữ cảnh yêu cầu phần mềm
Mục đích của yêu cầu là:
· Tạo và duy trì thỏa thuận với khách
hang và các bên liên quan về việc
hệ thống cần làm gì.
· Đưa cho người phát triển hệ thống
cách hiểu tốt hơn về yêu cầu của hệ
thống.
· Xác định ranh giới hệ thống.
· Cung cấp cơ sở cho việc lập kế
hoạch nội dung kỹ thuật của các
giai đoạn phát triển.
· Cung cấp cơ sở để ước lượng thời
gian và chi phí để phát triển hệ
thống.
· Xác định giao diện người sử dụng
của hệ thống.

Object Oriented Analysis and Design


4
Các thành phần yêu cầu

Use-Case Model

Bảng chú giải


Actors (Glossary)

Ca sử dụng (Use Cases)

...
Các yêu cầu bổ sung
(Supplementary
Đặc tả ca sử dụng (Use-Case Specifications) Specification)

Object Oriented Analysis and Design


5
Ví dụ: Hệ thống đăng kí môn học
 Rà soát tuyên ngôn vấn đề được cung cấp
trong tài liệu yêu cầu hệ thống đăng kí môn
học.

Tài liệu yêu cầu hệ thống đăng kí môn học


(Course Registration
Requirements Document)

Object Oriented Analysis and Design


6
Nội dung
 Giới thiệu
 Các khái niệm cơ bản
 Mô hình ca sử dụng
 Bảng chú giải (Glossary)
 Các đặc tả bổ sung
 Các điểm quan trọng (Checkpoints)

Object Oriented Analysis and Design


7
Hành vi của hệ thống là gì?
 Hành vi của hệ thống là việc hệ thống hoạt
động và phản ứng lại như thế nào.
 Đó là các hành vi có thể nhìn thấy và kiểm thử
được của hệ thống.
 Hành vi của hệ thống được thể hiện trong
ca sử dụng.
 Các ca sử dụng mô tả hệ thống, môi trường
của nó, và mối quan hệ của nó với môi trường
của nó.

Object Oriented Analysis and Design


8
Các khái niệm chính trong mô hình ca sử dụng
 Actor: đại diện cho bất kỳ thứ gì có thể tương
tác với hệ thống.

Actor

 Một ca sử dụng là một chuỗi các hành vi của hệ


thống thực hiện để sinh ra một kết quả nhìn thấy
được đối với một actor.

UseCase

Object Oriented Analysis and Design


9
Nội dung
 Giới thiệu
 Các khái niệm cơ bản
 Mô hình ca sử dụng
 Bảng chú giải (Glossary)
 Các đặc tả bổ sung
 Các điểm quan trọng (Checkpoints)

Object Oriented Analysis and Design


10
Mô hình ca sử dụng là gì?
 Mô hình mô tả yêu cầu chức năng của hệ thống
theo các trường hợp sử dụng.
 Mô hình của chức năng được dự định của hệ
thống và môi trường của nó

View Report Card

Register for Courses

Student
Login

Object Oriented Analysis and Design


11
Lợi ích của mô hình ca sử dụng?
 Giao tiếp
 Định danh
 Kiểm chứng

Communication Use Case Verification

Identification

Users
End User Domain Expert

Object Oriented Analysis and Design


12
Ta đọc biểu đồ này như thế nào?

View Report Card

Course Catalog
Maintain Professor
Register for Courses Information

Student

Login Maintain Student


Information

Registrar

Select Courses to
Teach Close Registration

Professor

Submit Grades

Billing System

Object Oriented Analysis and Design


13
Đặc tả ca sử dụng
 Tên Use-Case Model
 Mô tả vắn tắt
 Luồng các sự kiện
 Các quan hệ Actors
 Các biểu đồ hành vi
Use Cases
 Các biểu đồ ca sử
dụng
 Các yêu cầu đặc
biệt
...
 Tiền điều kiện
 Hậu điều kiện Đặc tả ca sử dụng
 Các biểu đồ khác (Use-Case Specifications)

Object Oriented Analysis and Design


14
Luồng các sự kiện chính của ca sử dụng
 Có một luồng bình thường, luồng cơ bản
 Có nhiều luồng thay thế
 Các biến thể cơ bản Regular variants
 Các trường hợp đặc biệt
 Luồng ngoại lệ để xử lý tình huống

Object Oriented Analysis and Design


15
Tình huống sử dụng (scenario) là gì?
 Tình huống sử dụng là một tình huống cụ
thể của một ca sử dụng.

Object Oriented Analysis and Design


16
Biểu đồ hành vi là gì?
 Biểu đồ hành vi trong mô hình ca sử dụng được sử dụng
để mô tả các hành vi trong ca sử dụng.
 It is essentially a flow chart, showing flow of control from
activity to activity.

Luồng các sự kiện

Tình huống này bắt đầu khi Registrar yêu c ầu h ệ th ống đóng
việc đăng kí.
Activity2
1. Hệ thống kiểm tra nếu việc đăng kí đang được tiến hành.
Nếu đúng thì nó hiển thị một thông báo cho Registrar và ca
sử dụng kết thúc. Việc đóng đăng kí không th ể đ ược tiến
hành khi quá trình đăng kí đang đ ược ti ến hành.
Activity1 Activity3
2. Với mỗi khóa học, hệ thống kiểm tra nếu thầy giáo đăng kí
dạy và có tối thiểu 3 sinh viên đã đăng kí. N ếu đúng, h ệ
thống gửi thông tin khóa học đến toàn b ộ lịch bi ểu có ch ứa
nó.

Object Oriented Analysis and Design


17
Ví dụ: Biểu đồ hành vi
Decision Activity
Select Course State
Concurrent
Threads [ delete course ]
Delete Course
[ add course ]

Synchronization
Bar (Fork)
Check Check
Guard Schedule Pre-requisites
Condition
Synchronization
Bar (Join)
[ checks completed ] [ checks failed ]

Assign to Resolve
Course Conflicts
Transition

Update
Schedule

Object Oriented Analysis and Design


18
Nội dung
 Giới thiệu
 Các khái niệm cơ bản
 Mô hình ca sử dụng
 Bảng chú giải (Glossary)
 Các đặc tả bổ sung
 Các điểm quan trọng (Checkpoints)

Object Oriented Analysis and Design


19
Bảng chú giải

Bảng chú giải hệ thống đăng kí môn học


1. Giới thiệu
Tài liệu này được sử dụng để định nghiã các thuật ngữ đặc biệt của lĩnh
vực ứng dụng, giải thích nghĩa của các thuật ngữ có thể xa lạ với người
đọc và các tài liệu khác. Thông thường, tài liệu này có thể được sử dụng
như từ điển dữ liệu không chính thức, mô tả các định nghĩa dữ liệu mà
tài liệu mô tả ca sử dụng và các tài liệu dự án khác có thể tập trung vào
việc hệ thống cần làm gì với các thông tin đó.
2. Định nghĩa
Bảng chú giải chứa các định nghĩa cho các khái niệm quan trọng trong
hệ thống đăng kí môn học.
2.1       Course: Một lớp được tổ chức bởi trường đại học.
2.2       Course Offering: Một lớp được tổ chức trong một học kỳ nào
đó – ta có thể có nhiều course trong cùng một học kỳ. Chứa ngày của
Glossary tuần và thời gian của lớp học.
2.3      Course Catalog: Danh mục tất cả các khóa học được tổ chức
bởi trường đại học.

Object Oriented Analysis and Design


20
Ví dụ: Bảng chú giải
 Rà soát bảng chú giải
trong tài liệu yêu cầu của
hệ thống đăng kí môn
học

Glossary

Object Oriented Analysis and Design


21
Nội dung
 Giới thiệu
 Các khái niệm cơ bản
 Mô hình ca sử dụng
 Bảng chú giải (Glossary)
 Các đặc tả bổ sung
 Các điểm quan trọng (Checkpoints)

Object Oriented Analysis and Design


22
Đặc tả bổ sung
 Chức năng
 Khả năng sử dụng
 Độ tin cậy
 Hiệu năng
 Khả năng hỗ trợ
Supplementary
 Các ràng buộc thiết kế Specification

Object Oriented Analysis and Design


23
Ví dụ: Đặc tả bổ sung
 Rà soát đặc tả bổ sung Course
Registration
được cung cấp trong tài Requirements
liệu yêu cầu của hệ Document
thống đăng kí môn học.

Supplementary
Specification
Object Oriented Analysis and Design
24
Nội dung
 Giới thiệu
 Các khái niệm cơ bản
 Mô hình ca sử dụng
 Bảng chú giải (Glossary)
 Các đặc tả bổ sung
 Các điểm quan trọng (Checkpoints)

Object Oriented Analysis and Design


25
Các điểm quan trọng : Mô hình ca sử dụng
 Mô hình ca sử dụng có hiểu được
không?
 Bằng việc đọc mô hình ca sử dụng,
ta có thể hình dung rõ ràng về các
chức năng của hệ thống và việc
chúng liên hệ với nhau như thế nào?
 Toàn bộ các chức năng của hệ thống
có được đáp ứng?
 Mô hình ca sử dụng có chứa các
hành vi thừa?
 Việc phân chia mô hình thành ca sử
dụng đã phù hợp chưa?

Object Oriented Analysis and Design


26
Các điểm quan trọng: Actors
 Tất cả actors đã được xác định
chưa?
 Mỗi actor có tham gia vào tối thiểu 1
ca sử dụng?
 Mỗi actor có phải là một vai trò? Có
thể chia nhỏ hay gộp actor lại không?
 Hai actors có cùng đóng một vai trò
trong một ca sử dụng không?
 Các actors đã có một tên có ý nghĩa
không? Người dùng và khách hàng
có hiểu tên actor không?

Object Oriented Analysis and Design


27
Các điểm quan trọng: Ca sử dụng
 Mỗi ca sử dụng có ít nhất một actor?
 Mỗi ca sử dụng có độc lập với các ca
khác không?
 Có ca sử dụng nào có hành vi hoặc
luồng sự kiện rất giống với hành vi
hoặc luồng sự kiện của ca sử dụng
khác?
 Các ca sử dụng đã có tên có ý nghĩa,
duy nhất để nó không thể bị hiểu
nhầm trong các giai đoạn sau?
 Khách hàng và người sử dụng có
hiểu giống nhau về tên của các ca sử
dụng?

Object Oriented Analysis and Design


28
Các điểm quan trọng: Đặc tả ca sử dụng
 Nó đã mô tả rõ ai là người thực hiện
ca sử dụng chưa?
 Mục đích của ca sử dụng đã rõ ràng
chưa?
 Mô tả vắn tắt đã đưa bức tranh đầy
đủ về ca sử dụng chưa?
 Nó đã mô tả rõ ràng ca sử dụng được
bắt đầu/kết thúc khi nào và như thế
chưa?
 Chuỗi giao tiếp của actor và ca sử
dụng đã đáp ứng tốt mong đợi của
người dung?
 Sự tương tác và các thông tin được
trao đổi của các actor đã rõ rang?
 Các ca sử dụng có quá phức tạp?
Object Oriented Analysis and Design
29
Các điểm quan trọng: Bảng chú giải (Glossary)

 Mỗi thuật ngữ có được định nghĩa


ngắn gọn và rõ rang?
 Mỗi thuật ngữ có được đề cập đến
đâu đó trong bản mô tả ca sử dụng?
 Các thuật ngữ được sử dụng có nhất
quán trong mô tả vắn tắt của actor và
trong ca sử dụng?

Object Oriented Analysis and Design


30
Tổng kết: Tổng quan yêu cầu phần mềm
 Các thành phần chính của yêu cầu phần mềm?
 Các thành phần chính của yêu cầu được dùng
làm gì?
 Mô hình ca sử dụng là gì?
 Actor là gì?
 Ca sử dụng là gì? Liệt kê ví dụ các thuộc tính của
ca sử dụng.
 Sự khác nhau giữa ca sử dụng (use case) và tình
huống sử dụng (scenario)?
 Đặc tả bổ sung là gì và nó chứa thông
tin gì?
 Bảng chú giải là gì và nó chứa thông tin gì?
Object Oriented Analysis and Design
31
Bài tập: Tổng quan yêu cầu phần mềm
 Cho các thành phần yêu cầu phần mềm
sau:
 Tuyên bố về vấn đề
 Biểu đồ chính của mô hình ca sử dụng
 Đặc tả bổ sung
 Bảng chú giải
 Rà soát các thành phần yêu cầu đã cho, ghi
chú lại các câu hỏi, vấn đề, những vấn đề
không nhất quán.

Object Oriented Analysis and Design


32

You might also like