Professional Documents
Culture Documents
v Hệ thống là tập hợp các thành phần có quan hệ chặt chẽ với nhau
tạo thành một thể thống nhất.
v Cấu tạo: Môi trường, mục đích, giới hạn, thành phần, mối quan hệ,
giao diện, đầu vào, đầu ra và các ràng buộc.
3
Ví dụ một hệ thống
v Dữ liệu là tập hợp các dấu hiệu hoặc các quan sát được ghi lại tại thời
điểm không gây nên các tác động đến hành vi, đến việc ra quyết định.
v Thông tin là sự hiểu biết có được từ số liệu; là sự phát biểu về cơ cấu
của một thực thể mà nó giúp cho con người ra quyết định hoặc đưa ra
một cam kết; là nội dung chứa trong các văn bản, tài liệu hoặc lời nói.
Thông
Dữ liệu Xử lý
tin
5
Thông tin
v Thuộc tính:
• Chi phí
• Giá trị
v Thông tin tốt:
• Phải thích hợp
• Phải kịp thời
• Phải chính xác
• Làm giảm điều chưa rõ
• Chứa yếu tố gây bất ngờ
6
Hệ thống thông tin
v Một nhóm các thành phần tương tác với nhau để tạo ra thông tin.
v Một hệ thống xử lý thông tin để hỗ trợ cho các hệ thống công việc.
• Thu thập, truyền tải, lưu trữ, phục hồi, phân tích, xử lý và hiển thị thông tin.
• Chức năng chính là xử lý thông tin.
• Quá trình xử lý thông tin giống như một hộp đen.
v Một tập hợp và kết hợp của các thành phần sử dụng để thu thập, tạo, tái
tạo, phân phối và chia sẻ các dữ liệu, thông tin và tri thức nhằm phục vụ
các mục tiêu của tổ chức.
7
Phân loại các hệ thống thông tin
8
Biểu diễn các hệ thống thông tin
v Không gian biểu diễn các HTTT là một không gian ba chiều.
Các mức nhận thức
Quan niệm
Tổ chức
Vật lý
Các thành phần
Dữ liệu Bộ xử lý CPU Con người Cơ sở
hạ tầng
- Lập kế hoạch
- Nghiên cứu tính khả thi
Các bước phát triển 9
-…
Vòng đời phát triển hệ thống
v Vòng đời phát triển hệ thống SDLC (System Development Life Cycle)
bao gồm nhiều giai đoạn, kể từ khi bắt đầu phát triển hệ thống cho
đến khi kết thúc khai thác hệ thống.
v Các bước chính phát triển hệ thống trong thực tiễn:
• Lập kế hoạch
• Nghiên cứu tính khả thi, khảo sát hiện trạng
• Hợp đồng ràng buộc trách nhiệm
• Phân tích, thiết kế
• Cài đặt và thử nghiệm
• Triển khai
• Bảo trì, thích ứng 10
Phương pháp luận phát triển các HTTT
11
Phương pháp luận phát triển các HTTT (tt.)
v Tiếp cận định hướng dữ liệu: Tự động hoá các quá trình xử lý
và tổ chức dữ liệu.
Cơ sở dữ liệu
• Ý tưởng: Tách dữ liệu ra khỏi các quá trình xử lý, tách cơ sở dữ liệu khỏi các ứng
dụng.
• Ưu điểm: Tối ưu về phương diện lưu trữ và sử dụng, dữ liệu được tổ chức một cách
tập trung và nhất quán.
• Nhược điểm: Trong thực tiễn rất khó tổ chức dữ liệu một cách tập trung. 12
Phương pháp luận phát triển các HTTT (tt.)
13
Phương pháp luận phát triển các HTTT (tt.)
v Mô hình hệ thống định hướng cấu trúc:
14
Phương pháp luận phát triển các HTTT (tt.)
v Tiếp cận định hướng đối tượng: Hướng tới việc xây dựng hệ thống
gồm các đối tượng liên kết với nhau.
15
Phương pháp luận phát triển các HTTT (tt.)
v Tiếp cận định hướng đối tượng (tt.):
• Các đối tượng thường tương ứng với các thực thể trong HTTT.
• Các đối tượng chứa dữ liệu và hành vi (xử lý).
• Hoạt động của một đối tượng không làm ảnh hưởng đến các đối tượng khác.
• Các đối tượng được ghép nối với nhau thành một hệ thống hoàn chỉnh thông qua
việc trao đổi thông điệp.
• Cải thiện đáng kể chất lượng của hệ thống.
Ø Hệ thống được “lắp ghép” và “tháo dỡ” dễ dàng.
Ø Dễ bảo trì.
Ø Có khả năng tái sử dụng.
Ø Có thể mở rộng phạm vi của hệ thống.
Ø Tăng năng suất của hoạt động phân tích và thiết kế.
• Nhược điểm:
Ø Việc quản lý các đối tượng và mối quan hệ giữa chúng tương đối phức tạp. 16
Mô hình hoá trực quan
v Một mô hình là một mô tả về các đặc tính tĩnh và(hoặc) động của một chủ
thể, nó thường được mô tả dưới dạng một biểu đồ hoặc văn bản thông qua
một số khung nhìn nào đó. (Applying UML and Patterns, 2004)
v Các mô hình giúp đơn giản hoá thế giới thực.
17
Ví dụ về mô hình
18
Các đội dự án xây dựng ứng dụng thường
không mô hình hoá
19
Tại sao phải mô hình hoá?
20
Mô hình phân cấp chức năng
v Phân rã một chức năng tổng hợp thành những chức năng chi tiết hơn.
Chức năng
Hệ thống quản lý
cửa hàng
Quan hệ bao hàm
21
Mô hình luân chuyển (hệ thống)
v Quá trình xử lý đơn đặt hàng:
22
Mô hình dòng dữ liệu DFD (Data Flow Diagram)
v Mô hình DFD xử lý đơn đặt hàng:
ĐĐH
Kiểm hợp lệ Lưu
Đơn đặt hàng tra ĐĐH ĐĐH mới
ĐĐH Xử lý
Đơn đặt hàng
Khách hàng
ĐĐH không hợp lệ ĐĐH Dòng dữ liệu
Đầu cuối
ĐĐH bị từ chối Tính
Thông tồn kho Kho dữ liệu
báo từ Tồn kho băng đĩa
Băng đĩa giao + hóa đơn chối Thông tin tồn kho
ĐĐH
ĐĐH đủ hàng giao
Lập hóa
Hóa đơn giao hàng
đơn giao
hàng Hoá đơn giao hàng
23
Mô hình động (mô hình trạng thái)
v Các trạng thái của một đơn đặt hàng:
24
Mô hình dữ liệu (mô hình quan hệ)
25
Mô hình dữ liệu (mô hình thực thể kết hợp)
26
Mô hình đối tượng
v Mô hình đối tượng theo OOA:
BANGDIA
n Mã số
Đối tác
Tên
Mã số
Đơn giá
Tên
Địa chỉ Lớp & đối Kết hợp
1 tượng
n
n BD đặt
Số lượng đặt
Nhà cung ứng Khách hàng
Trị giá()
Công nợ tối đa Tổng quát hoá Thành phần
Trị giá đặt hàng() (Is – Part - Of)
(IS – A)
1
ĐĐ Hàng
Mã số
Tổng trị giá Thông điệp
n Tính trị gia ĐĐ hàng() (Message)
27
4 nguyên tắc cơ bản trong mô hình hoá
v Việc lựa chọn mô hình đóng vai trò rất quan trọng:
• Trong phát triển phần mềm, các mô hình được chọn bị ảnh hưởng từ
thế giới quan.
• Mỗi thế giới quan dẫn đến một loại hệ thống riêng biệt.
28
4 nguyên tắc cơ bản khi mô hình hoá (tt.)
v Các mô hình tốt nhất là các mô hình liên kết với thế giới thực:
• Tất cả các mô hình đều là quá trình đơn giản hoá thế giới thực.
• Một mô hình tốt sẽ phản chiếu các đặc tính bất thường tiềm ẩn.
v Không mô hình đơn lẻ nào là đầy đủ:
• Cách tiếp cận tốt nhất để xây dựng một hệ thống phần mềm là thông qua
một tập các mô hình gần như độc lập với nhau.
29
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG THÔNG TIN
2
Giới thiệu về UML
3
Lịch sử phát triển của UML
v Vào 1994 có hơn 50 phương pháp mô hình hoá hướng đối tượng
(Fusion, ROOM, BOOM, Ooram, DOORS …)
• Các ký pháp đồ hoạ khác nhau.
• Quy trình khác nhau hoặc không rõ ràng.
-> Cần chuẩn hoá và thống nhất các phương pháp.
v 3 chuyên gia hướng đối tượng hợp nhất các kỹ thuật của họ vào năm
1994 -> UML.
• Booch91 (Grady Booch): Conception, Architecture
• OOSE (Ivar Jacobson): Use Cases
• OMT (Jim Rumbaugh): Analysis
v UML được công nhận là chuẩn chung vào năm 1997 -> một phương
thức thống nhất để xây dựng và mô hình hoá các yêu cầu, thiết kế
hướng đối tượng trong quá trình PTTK phần mềm. 4
Lịch sử phát triển của UML (tt.)
Meyer Harel Gamma, et al
State charts
Before and after Frameworks, patterns, notes
conditions
HP Fusion
Operation descriptions and
Booch message numbering
Booch method
Embley
Rumbaugh Singleton classes and
Object Modeling high-level view
Technique
Jacobson Wirfs-Brock
Object-Oriented Responsibilities
Software Engineering
Shlaer - Mellor Odell
Object lifecycles Classification
Lý giải tính thống nhất của ngôn ngữ mô hình hoá UML? 6
Lịch sử phát triển của UML (tt.)
UML 2.0
(2004)
UML 1.5
(March, ‘03)
OOSE Other
Booch ‘91 OMT - 1 7
Methods
Mục đích sử dụng UML
8
UML là ngôn ngữ mô hình hoá
9
UML là ngôn ngữ trực quan hoá để hiển thị
v Sự giao tiếp giữa các mô hình mức khái niệm dễ phát sinh lỗi
trừ khi những người liên quan dùng chung một ngôn ngữ
diễn đạt.
v Một số yếu tố trong hệ thống phần mềm cần phải mô hình
hoá mới có thể hiểu được.
v Một số thông tin sẽ bị mất đi (không được cài đặt) nếu nhóm
phát triển không tài liệu hoá các mô hình đang hình dung.
10
UML là ngôn ngữ để đặc tả
11
UML là ngôn ngữ để xây dựng hệ thống
12
UML là ngôn ngữ để tài liệu hoá
v Các biểu đồ UML đóng vai trò là các tài liệu phát triển hệ thống.
v UML hỗ trợ tạo tài liệu kiến trúc hệ thống cùng các chi tiết của nó.
v UML cho phép diễn đạt các yêu cầu.
v UML cung cấp ngôn ngữ để mô hình hoá các hoạt động trong dự
án cũng như việc quản lý chuyển giao phiên bản.
13
Các khối cơ bản trong UML
v Các khối hình thành nên các mô hình UML: Phần tử cấu trúc
Phần tử hành vi
• Phần tử Phần tử nhóm gộp
• Quan hệ Phần tử chú thích
• Biểu đồ
v Các phần tử là các trừu tượng hoá căn bản trong các mô hình
UML, các quan hệ gắn các phần tử lại với nhau, biểu đồ nhóm
các phần tử có mối quan hệ lại với nhau.
v Các phần tử là các khối xây dựng hướng đối tượng của UML.
14
Các phần tử cấu trúc
Person
name Borrow
age
eat() Comparable Use Case
talk()
Interface
Class
Server
call Cancelled
Message State
16
Phần tử nhóm và phần tử chú thích
Tên gói
Note Package
17
Các quan hệ trong UML
Dependence
Association
Generalization
Realization
18
Các biểu đồ trong UML
Biểu đồ
v Ngoài ra, trong UML còn có biểu đồ gói, biểu đồ cấu trúc bên
trong, biểu đồ cộng tác, biểu đồ thời gian. 19
Biểu diễn hệ thống theo 3 loại mô hình
Biểu đồ lớp
Biểu đồ đối tượng
20
Các khung nhìn UML
v Một khung nhìn (view) UML là một tập con của các cấu trúc mô hình
hoá UML, nó đại diện cho một khía cạnh của hệ thống. (The Unified
Modeling Language Reference Manual, 2005)
v Các khung nhìn UML giúp tổ chức và trình bày các khái niệm UML.
v Các khung nhìn UML có thể được chia thành 4 góc nhìn chính:
• Cấu trúc mô tả những thứ bên trong hệ thống và mối quan hệ giữa chúng
(khung nhìn tĩnh, khung nhìn thiết kế, khung nhìn ca sử dụng).
• Động mô tả hành vi của hệ thống hoặc các classifier theo thời gian (khung nhìn
máy trạng thái, khung nhìn hoạt động, khung nhìn tương tác).
• Vật lý mô tả các tài nguyên vật lý trong hệ thống và việc triển khai các chế tác
trên chúng (khung nhìn triển khai).
• Quản lý mô hình mô tả việc tổ chức các mô hình thành các phần tử phân cấp
(khung nhìn quản lý mô hình).
21
Khung nhìn tĩnh
v Mô hình hoá các khái niệm trong miền ứng dụng một cách logic.
v Không mô tả hành vi hệ thống.
v Các thành phần chính của khung nhìn tĩnh là các lớp và mối
quan hệ giữa chúng (association, generalization, dependency,
realization).
v Khung nhìn tĩnh được thể hiện trong các biểu đồ lớp.
22
Khung nhìn tĩnh (tt.)
v Biểu đồ lớp của hệ thống quản lý thư viện:
23
Khung nhìn thiết kế
v Khung nhìn thiết kế mô hình hoá cấu trúc thiết kế của ứng dụng.
v Khung nhìn thiết kế ánh xạ các lớp vào các thành phần thực thi.
v Khung nhìn thiết kế bao gồm:
• Biểu đồ cấu trúc bên trong.
• Biểu đồ cộng tác.
• Biểu đồ thành phần.
24
Khung nhìn thiết kế (tt.)
Billing.exe Register.exe
Billing
System
People.dll
Course.dll User
Course
Student Professor
Course Course
Offering
25
Khung nhìn ca sử dụng
26
Khung nhìn ca sử dụng (tt.)
v Biểu đồ ca sử dụng của hệ thống đăng ký môn học:
27
Khung nhìn máy trạng thái
28
Khung nhìn máy trạng thái (tt.)
29
Khung nhìn hoạt động
v Biểu đồ hoạt động là trường hợp đặc biệt của biểu đồ trạng thái.
v Biểu diễn luồng hoạt động trong hệ thống.
v Biểu đồ hoạt động chứa các nút hoạt động được kết nối với nhau
bởi các luồng điều khiển.
v Biểu đồ hoạt động nhấn mạnh luồng điều khiển giữa các đối tượng.
30
Khung nhìn hoạt động (tt.)
31
Khung nhìn tương tác
v Một tương tác là hành vi được mô tả bằng cách chỉ ra chuỗi thông
điệp trao đổi (truyền và nhận) giữa các đối tượng.
v Các đối tượng tương tác với nhau để thực hiện một kịch bản.
v Khung nhìn tương tác mô tả trình tự trao đổi thông điệp giữa các đối
tượng của hệ thống.
v Khung nhìn tương tác cung cấp một cái nhìn toàn diện về hành vi
của hệ thống, chỉ ra luồng điều khiển trên nhiều đối tượng.
v Khung nhìn tương tác được thể hiện trong:
• Biểu đồ tuần tự.
• Biểu đồ giao tiếp.
32
Khung nhìn tương tác (tt.)
v Biểu đồ tuần tự cho luồng con "Create a Schedule" của ca sử dụng
"Register for Course":
33
Khung nhìn triển khai
v Khung nhìn triển khai biểu diễn cấu hình của các nút xử lý và các
chế tác trên các nút xử lý đó tại run-time.
• Một chế tác (artifact) là một thành phần thực thi dạng vật lý, một
phần thông tin được sử dụng hoặc được tạo ra trong quy trình phát
triển phần mềm.
• Một nút (node) là một tài nguyên tại run-time, biểu diễn một
thực thể vật lý của hệ thống (máy tính, bộ nhớ, thiết bị …).
v Biểu đồ triển khai mô tả khung nhìn triển khai tĩnh của một kiến trúc.
34
Khung nhìn triển khai (tt.)
v Biểu đồ triển khai của một Website:
35
Khung nhìn quản lý mô hình
36
Công cụ UML
v StarUML
v ArgoUML
v EclipseUML
v UmlDesigner
v Enterprise Architect
v IBM Rational Software Architect
37
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG THÔNG TIN
2
Các khái niệm hướng đối tượng
• Sự phân cấp
v Tính đa hình
4
Trừu tượng hoá
v Mô hình hoá là quá trình trừu tượng hoá các đối tượng trong thế giới thực vào
ngữ cảnh của hệ thống.
v Trừu tượng hoá có thể được định nghĩa là các đặc điểm cần thiết của một
thực thể để phân biệt nó với tất cả các loại thực thể khác.
v Trong mô hình hoá hướng đối tượng, trừu tượng hoá là việc xây dựng
một mô hình chỉ bao gồm các đặc điểm quan trọng, cần thiết để phân biệt
nó với tất cả các loại mô hình khác.
• Tạo ra mô hình có các đặc tính riêng biệt.
• Cho phép quản lý sự phức tạp của mô hình.
v Sự trừu tượng hoá theo các mức độ khác nhau là nguyên tắc cơ bản để
xây dựng các khái niệm hướng đối tượng.
5
Ví dụ về sự trừu tượng hoá
Professor
Student
6
Tính đóng gói
v Tính đóng gói là sự quy tụ các tính chất (các thuộc tính và các hành
vi) của một thực thể vào trong một hộp đen trừu tượng.
v Cho phép người sử dụng dùng đối tượng mà không biết bên trong
đối tượng có những gì.
v Tính đóng gói -> khái niệm che dấu thông tin.
v Tính đóng gói dữ liệu của OOP:
• Cho phép che dấu sự cài đặt bên trong các phương thức.
• Cho phép che dấu dữ liệu bên trong các đối tượng.
• Cho phép giảm thiểu việc viết lại mã nguồn chương trình.
7
Tính đóng gói (tt.)
v Trong OOP, dữ liệu luôn được tổ chức thành các thuộc tính của lớp
đối tượng.
• Việc truy nhập vào dữ liệu phải thông qua các phương thức cho phép
của đối tượng tương ứng.
v Cho phép che dấu sự cài đặt bên trong các client.
• Các client phụ thuộc vào interface.
8
Tính mô-đun hoá
v Sự phân rã về mặt vật lý hoặc logic một thứ gì đó phức tạp thành các
phần nhỏ hơn, cấu trúc đơn giản hơn và có thể quản lý được.
v Phân rã các hệ thống phần mềm lớn và phức tạp thành các mô-đun
nhỏ hơn, các mô-đun này được phát triển độc lập và có thể tương tác
được với nhau.
9
Sự phân cấp
v Sự sắp xếp thứ tự hoặc phân hạng sự trừu tượng hoá của các đối
tượng theo một cấu trúc cây.
v Sự phân cấp là một cách tổ chức theo kiểu phân loại.
• Phân cấp lớp.
• Phân cấp sự kế thừa.
• Phân cấp theo kiểu của đối tượng.
v Trong kỹ thuật hướng đối tượng, sự phân cấp được sử dụng
để tổ chức các đối tượng trong hệ thống.
10
Ví dụ về sự phân cấp
v Trong kỹ thuật hướng đối tượng, tính đa hình có thể được định nghĩa là
khả năng mang nhiều kiểu khác nhau của đối tượng.
v Tính đa hình cho phép cùng một thông điệp gửi đi, có thể được xử lý
theo các cách khác nhau tuỳ thuộc vào đối tượng nhận nó.
v Tính đa hình cho phép che dấu nhiều sự cài đặt khác nhau đằng sau
một giao diện duy nhất.
12
Tính đa hình (tt.)
13
Tổng quát hoá
v Tổng quát hoá (generalization) là một mối quan hệ giữa các lớp (hoặc các ca
sử dụng), trong đó tồn tại một lớp (hoặc một ca sử dụng) sẽ chia sẻ cấu trúc
và/hoặc hành vi cho một hoặc nhiều lớp (ca sử dụng) khác.
v Xác định một sự phân cấp mức độ trừu tượng hoá, trong đó tồn tại một
lớp con kế thừa từ một hoặc nhiều lớp cha.
• Đơn kế thừa.
• Đa kế thừa.
v Mối quan hệ kiểu “is a kind of”.
v Phân biệt hai thuật ngữ “Tổng quát hoá” và “Kế thừa”?
14
Ví dụ về đơn kế thừa
Ancestor
Account
- balance
Superclass - name
(parent) - number
+ withdraw()
+ createStatement()
Generalization
Relationship
Descendents 15
Ví dụ về đa kế thừa
v Cơ chế đa kế thừa được sử dụng để mô tả chính xác thế giới quan và làm
giảm độ phức tạp trong các mô hình hướng đối tượng.
16
Quy trình phát triển hướng đối tượng
v 3 đặc trưng chính của việc phát triển các HTTT theo phương pháp
tiếp cận hướng đối tượng:
• Định hướng bởi các ca sử dụng
• Lấy kiến trúc làm trung tâm
• Phát triển lặp và gia tăng
v Một số khía cạnh trong phát triển phần mềm:
• Triệu chứng
• Căn nguyên
• Hướng giải quyết
v Quy trình phát triển RUP (Rational Unified Process):
• Giới thiệu
• Các pha
• Các hoạt động
• Bộ kinh nghiệm thực tiễn 17
3 đặc trưng chính của việc phát triển các HTTT
theo phương pháp hướng đối tượng
18
3 đặc trưng chính của việc phát triển các HTTT
theo phương pháp hướng đối tượng (tt.)
v Trong kỹ thuật phần mềm, triệu chứng là biểu hiện về sự tồn tại các vấn đề
xấu trong vòng đời phát triển phần mềm.
v Các triệu chứng điển hình:
• Yêu cầu không được đáp ứng.
• Yêu cầu thay đổi quá nhanh.
• Các mô-đun không lắp ghép được.
• Bảo trì khó.
• Phát hiện lỗi muộn.
• Chất lượng kém.
v Hạn chế các triệu chứng -> phát triển phần mềm chất lượng cao theo định
hướng phát triển lặp.
21
Một số vấn đề trong phát triển phần mềm
Căn nguyên
v Xử lý những căn nguyên -> hạn chế được các triệu chứng.
Yêu cầu không được Các mô-đun không lắp Phát hiện lỗi muộn -
đáp ứng ghép được Chất lượng kém
Định nghĩa yêu cầu phần Giao tiếp nhập nhằng Ít được kiểm thử
mềm không chính xác.
Thu thập yêu cầu thiếu. Tồn tại phi nhất quán Đánh giá chủ quan
22
Một số vấn đề trong phát triển phần mềm
Hướng giải quyết
v Định nghĩa yêu cầu phần mềm không chính xác -> Phát triển lặp.
v Thu thập yêu cầu thiếu -> Quản lý yêu cầu.
v Giao tiếp nhập nhằng -> Mô hình hoá trực quan (UML).
v Tồn tại phi nhất quán -> Kiểm tra liên tục.
v Ít được kiểm thử -> Kiểm tra chất lượng thường xuyên.
• Kiểm thử chức năng.
• Kiểm thử tính khả dụng.
• Kiểm thử độ tin cậy.
• Kiểm thử hiệu năng.
• Kiểm thử tính hỗ trợ.
23
Giới thiệu quy trình phát triển RUP
(Rational Unified Process)
v Quy trình phát triển hướng đối tượng, được áp dụng rộng rãi.
v RUP được mô tả từ 3 khung nhìn:
• Khung nhìn động -> chỉ ra các pha của mô hình RUP theo chiều thời gian.
• Khung nhìn tĩnh -> chỉ ra các hoạt động trong quy trình RUP.
• Khung nhìn thực tiễn -> đề xuất bộ kinh nghiệm thực hành tốt được sử
dụng trong quy trình RUP.
24
Các pha của quy trình phát triển RUP
v H
v Pha khởi đầu (Inception): Định nghĩa phạm vi, xác định tất cả các tác
nhân và các ca sử dụng có thể có, đánh giá các ca sử dụng nào là cần
thiết nhất. Sau đó, phát triển một bản kế hoạch để nghiên cứu, đánh giá
tính khả thi (sự đóng góp mà hệ thống có thể tạo ra cho doanh nghiệp,
sự phù hợp về kinh phí phát triển …).
25
Các pha của quy trình phát triển RUP (tt.)
v Pha chi tiết (Elaboration): Phát triển khâu nắm bắt yêu cầu, thiết lập
một khung kiến trúc cho hệ thống và xác định các rủi ro chính. Đầu ra
của pha này là một mô hình yêu cầu cho hệ thống, một tài liệu mô tả
kiến trúc và một bản kế hoạch phát triển phần mềm.
v Pha xây dựng (Construction): Thiết kế hệ thống, lập trình và kiểm thử.
Các thành phần của hệ thống được phát triển song song và được tích
hợp trong pha này. Đầu ra của pha này là một hệ thống phần mềm chạy
được và các tài liệu liên quan.
v Pha chuyển giao (Transition): Bàn giao hệ thống tới người dùng cuối,
hỗ trợ cài đặt và sử dụng.
26
Các hoạt động chính trong quy trình phát triển RUP
v Các hoạt động diễn ra trong quá trình phát triển (khung nhìn tĩnh của
RUP) được gọi là luồng công việc trong mô tả RUP:
• Mô hình hoá nghiệp vụ (Business Modeling): Các quy trình nghiệp vụ
được mô hình hoá bằng cách sử dụng các trường sử dụng nghiệp vụ.
• Yêu cầu (Requirements): Định nghĩa những gì hệ thống cần làm.
• Phân tích và thiết kế (Analysis and Design): Chỉ ra làm thế nào các ca
sử dụng của hệ thống được cài đặt.
• Cài đặt (Implementation): Mã hoá các thành phần phần mềm đáp ứng bộ
tiêu chí chất lượng.
• Kiểm thử (Testing): Tích hợp và kiểm thử hệ thống.
27
Các hoạt động chính trong quy trình phát triển RUP (tt.)
• Triển khai (Deployment): Cung cấp sản phẩm phần mềm đến tay người
sử dụng.
• Quản lý thay đổi và cấu hình (Configuration and change
management): Hỗ trợ quản lý các thay đổi đối với hệ thống.
• Quản lý dự án (Project Management): Đảm bảo tất cả các công việc
được lên lịch, quản lý việc phát triển hệ thống.
• Môi trường (Environment): Quản lý môi trường mà hệ thống được phát
triển trên đó.
v RUP được thiết kế để có thể kết hợp với UML -> mô tả các hoạt động
trong quy trình RUP được định hướng xoay quanh các mô hình UML
(các biểu đồ tuần tự, các biểu đồ đối tượng).
28
Bộ kinh nghiệm thực hành của RUP
1. Phát triển phần mềm qua các lần lặp: Lập kế hoạch phát triển gia
tăng cho hệ thống dựa trên mức độ ưu tiên từ phía khách hàng,
phát triển các tính năng của hệ thống có độ ưu tiên cao nhất ngay
từ những giai đoạn ban đầu trong quy trình phát triển.
2. Quản lý các yêu cầu: Tài liệu hoá một cách rõ ràng về các yêu
cầu của khách hàng và theo dõi những thay đổi đối với các yêu cầu
này. Phân tích tác động của những thay đổi đó với hệ thống trước
khi chấp nhận chúng.
3. Sử dụng kiến trúc dựa trên thành phần: Cấu trúc hoá kiến trúc
hệ thống thành các thành phần.
29
Bộ kinh nghiệm thực hành của RUP (tt.)
4. Mô hình hoá trực quan phần mềm: Sử dụng các mô hình đồ hoạ
UML để biểu diễn các khung nhìn tĩnh và động của phần mềm.
5. Kiểm tra chất lượng phần mềm: Đảm bảo rằng phần mềm đáp
ứng các tiêu chuẩn chất lượng.
6. Kiểm soát các thay đổi đối với phần mềm: Quản lý các thay đổi
đối với phần mềm bằng cách sử dụng một hệ thống quản lý thay
đổi và các công cụ hỗ trợ khác.
30
Tổng quan về phân tích và thiết kế
hướng đối tượng
OOAD (Object-Oriented Analysis and Design): Phân tích và thiết kế hướng đối tượng
31
Tầm quan trọng của OOAD
32
Tầm quan trọng của OOAD (tt.)
v Cần một cơ chế hiệu quả để nắm bắt các yêu cầu, phân tích và
thiết kế.
v Cơ chế này phải giống như một ngôn ngữ thống nhất để giúp cho
quá trình cộng tác giữa các thành viên trong nhóm phát triển phần
mềm trở nên hiệu quả hơn.
-> Giải pháp: OOAD.
33
Mục đích của OOAD
v Chuyển các yêu cầu của bài toán thành một bản thiết kế của hệ thống sẽ
được xây dựng.
v Đảm bảo mục đích và các yêu cầu của hệ thống phải được tài liệu hoá
một cách hợp lý trước khi bắt đầu xây dựng hệ thống.
v Tập trung vào quá trình phân tích các yêu cầu của hệ thống và thiết kế
các mô hình cho hệ thống trước giai đoạn lập trình.
v Hình thành kiến trúc chắc chắn cho hệ thống.
v Đưa ra giải pháp thiết kế nhằm tương thích với môi trường cài đặt và các
yêu cầu phi chức năng.
v Cung cấp cho người dùng, khách hàng, kỹ sư phân tích, kỹ sư thiết kế
nhiều khung nhìn khác nhau về hệ thống. 34
Phân tích hướng đối tượng (OOA)
v Phân tích là hoạt động chuyển tiếp từ khâu nắm bắt yêu cầu sang
thiết kế hệ thống trong quy trình phát triển phần mềm.
v Phân tích hướng đối tượng là phương pháp phân tích dựa trên
các lược đồ hướng đối tượng.
35
Vấn đề của thiết kế hướng thủ tục
36
Thiết kế hướng đối tượng (OOD)
v Một cách tiếp cận khác, nhìn nhận hệ thống theo các quan điểm:
• Tập các đối tượng tương tác với nhau.
• Mỗi đối tượng đóng gói dữ liệu và các xử lý trên chúng.
• Các đối tượng tương tác với nhau bằng cách truyền thông điệp.
• Các đối tượng có thể kế thừa nhau.
v OOD hiện đang trở nên phổ biến.
37
Ưu điểm của OOD
v Dễ bảo trì: Các đối tượng được xem như các thực thể hoạt động
độc lập.
• Đóng gói thông tin.
• Liên kết lỏng lẻo (trao đổi bằng cách truyền thông điệp).
v Có khả năng tái sử dụng:
• Tính độc lập cao.
• Có khả năng kế thừa.
v Dễ hiểu:
• Có sự ánh xạ tường minh giữa thực thể thế giới thực và đối tượng HT.
38
Nội dung của OOD
v Xác định các tập đối tượng (các lớp) và các đặc trưng
của chúng.
v Xác định vai trò và trách nhiệm của các lớp đối tượng
trong hệ thống.
v Thiết lập sự tương tác giữa chúng để thực hiện chức
năng đặt ra của hệ thống phần mềm.
39
Mô hình OOAD
40
Tiến trình OOAD
41
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG THÔNG TIN
v Nắm được các thành phần chính trong Biểu đồ ca sử dụng và Biểu đồ
hoạt động.
v Nắm được cách xác định và kiểm tra các tác nhân và các ca sử dụng
của hệ thống.
2
Biểu đồ ca sử dụng (use case diagram)
v Tổng quan:
• Mỗi hệ thống tương tác với con người hoặc các hệ thống khác để thực
hiện nhiệm vụ.
• Biểu đồ ca sử dụng mô tả các yêu cầu chức năng của hệ thống dưới
dạng các ca sử dụng, tổ chức và mô hình hoá các hành vi của hệ thống.
• Biểu đồ ca sử dụng biểu diễn các chức năng mong đợi của hệ thống
(use case), môi trường của hệ thống (actor) và mối quan hệ giữa chúng.
3
Mục đích sử dụng
v Đóng vai trò như một bản hợp đồng giữa bên phát triển hệ thống và khách hàng.
v Được sử dụng trong tất cả các giai đoạn của quy trình phát triển hệ thống.
• Khách hàng phải phê duyệt biểu đồ ca sử dụng.
• Bên phát triển hệ thống sử dụng biểu đồ ca sử dụng để thảo luận với khách hàng.
• Các bên liên quan đến dự án sẽ hiểu rõ hơn về hệ thống thông qua biểu đồ ca sử dụng.
4
Mục đích sử dụng (tt.)
5
Tác nhân (actor)
v Tác nhân là bất cứ thứ gì tương tác với hệ thống, nó có sự trao đổi
dữ liệu với hệ thống.
• Một lớp/loại người dùng chứ không phải một người dùng cụ thể.
• Một người dùng cụ thể có thể đóng vai trò là các tác nhân khác nhau.
• Có thể là người dùng, thiết bị phần cứng hoặc hệ thống phần mềm khác.
6
Xác định các tác nhân bên ngoài hệ thống
• Kết thúc ca sử dụng, tác nhân phải thu được một giá trị có thể quan sát được.
Login
8
Xác định các ca sử dụng của hệ thống
v Xem xét các yêu cầu chức năng của hệ thống để tìm ra các UC.
v Đối với mỗi tác nhân tìm được, đặt các câu hỏi sau:
• Tác nhân yêu cầu những gì từ hệ thống?
• Các công việc chính mà tác nhân đó muốn hệ thống thực thi?
• Tác nhân đó có tạo ra hoặc thay đổi dữ liệu gì của hệ thống?
• Tác nhân đó cần thông báo gì cho hệ thống?
• Tác nhân đó cần thông tin thông báo gì từ hệ thống?
v Thông tin về ca sử dụng:
• Tên của ca sử dụng nên chỉ rõ kết quả của quá trình tương tác với tác nhân.
• Tên của ca sử dụng nên là động từ.
• Mô tả ngắn gọn về mục đích của ca sử dụng đó.
9
Những điều nên tránh khi tạo các UC
• “Tìm tài liệu theo tên” nên đặt là “Tìm tài liệu”.
10
Kiểm tra các tác nhân
v Có hai tác nhân có vai trò tương tự nhau đối với một ca sử
dụng hay không?
• Nếu có hai tác nhân có vai trò tương tự nhau đối với một ca sử dụng -> sử
dụng mối quan hệ tổng quát hoá để mô hình hoá hành vi tổng quát của
chúng.
v Tên các tác nhân có trực quan hay không?
• Khách hàng và người dùng có hiểu tên các tác nhân hay không?
• Tên các tác nhân phải phù hợp với vai trò của chúng.
12
Kiểm tra các ca sử dụng
• Giao tiếp.
• Mở rộng (extend). 14
Mối quan hệ giữa các actor với nhau
v Giao tiếp:
Đăng ký
16
Mối quan hệ giữa các use case
17
Mối quan hệ giữa các use case (tt.)
• Biểu diễn một UC chứa hành vi được định nghĩa trong một UC khác.
18
Mối quan hệ giữa các use case (tt.)
v Mở rộng (extend):
• Một ca sử dụng có thể được định nghĩa như là một sự mở rộng tăng dần
của một ca sử dụng cơ sở.
20
Thảo luận về biểu đồ ca sử dụng trong slide 20
v Tổng quan:
• Cho phép mô tả khung nhìn động của hệ thống.
• Biểu diễn luồng hoạt động trong hệ thống.
• Phương tiện để mô tả:
o Các quy trình nghiệp vụ.
o Luồng hoạt động trong các ca sử dụng.
o Luồng công việc trong các phương thức phức tạp.
• Biểu đồ luồng (flow chart) chỉ ra luồng điều khiển từ hoạt động (hành
động) này đến hoạt động (hành động) khác.
22
Các thành phần
• Các đơn vị nhỏ hơn bao gồm các hoạt động lồng nhau và các hành động riêng lẻ.
• Có thể chứa ràng buộc biểu thức Boolean khi hoạt động được gọi hoặc kết thúc.
v Một chuyển tiếp (transition) là việc chuyển đổi giữa các hoạt động.
• Một chuyển tiếp xuất hiện khi tất cả các hành động của một hoạt động hoàn
thành hoặc khi một sự kiện kích hoạt việc thoát khỏi hoạt động đó.
23
Các thành phần (tt.)
v Điểm quyết định (decision) là điểm trong một luồng công việc mà ở đó
việc chuyển tiếp từ một hoạt động phân theo các nhánh khác nhau tuỳ theo
điều kiện ràng buộc (guard condition).
• Có thể phân chia theo một chiều (hàng hoặc cột) hoặc hai chiều (cả hàng và cột).
• Chuyển tiếp có thể được vẽ từ làn bơi này tới làn bơi khác.
24
Đọc biểu đồ hoạt động cho UC “Đăng ký môn học”
25
Ví dụ các làn bơi cho “Quy trình bán xe”
Car Selection
[success]
[not found]
Checking Payment
[Failed]
[Paid]
26
Bài tập
27
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG THÔNG TIN
v Nắm được các thành phần chính trong biểu đồ tuần tự, biểu đồ giao
tiếp và Biểu đồ lớp.
v Có khả năng đọc hiểu biểu đồ tuần tự, biểu đồ giao tiếp và Biểu đồ lớp.
v Các đối tượng tương tác với nhau như thế nào?
• Thông qua các thông điệp.
• Thông điệp là sự giao tiếp một chiều giữa hai đối tượng ở dạng luồng
điều khiển cùng với các thông tin đính kèm (có thể có các tham số) từ
bên gửi đến bên nhận.
• Một thông điệp cho biết làm thế nào một đối tượng yêu cầu một đối
tượng khác thực hiện hành động.
3
Cộng tác (collaboration)
v Cộng tác xác định một sự tương tác giữa các đối tượng, biểu diễn
một ngữ cảnh bao gồm các vai trò và các phần tử tương tác với
nhau để cung cấp hành vi cộng tác lớn hơn.
v Mỗi đối tượng có trách nhiệm quản lý hành vi và trạng thái của nó.
v Không một đối tượng nào có thể làm được mọi việc.
-> Các đối tượng cần phải cộng tác với nhau để giải quyết vấn đề.
4
Vai trò của biểu đồ tương tác
6
Tìm kiếm các đối tượng
7
Tìm kiếm các tác nhân
v Tác nhân trong biểu đồ tương tác là sự kích hoạt từ bên ngoài
để khởi động luồng sự kiện.
v Tìm kiếm các tác nhân trong luồng sự kiện.
v Có thể có nhiều tác nhân trong một biểu đồ tương tác.
v Nếu một tác nhân nhận hoặc gửi thông điệp tới hệ thống theo
một kịch bản nào đó thì tác nhân này phải có mặt trong biểu đồ
tương tác của kịch bản đó.
8
Biểu đồ tuần tự (Sequence Diagram - SD)
v Một loại biểu đồ tương tác.
v Nhấn mạnh vào trình tự thời gian của các thông điệp trao đổi
giữa các đối tượng.
v Biểu đồ tuần tự chỉ ra:
• Các đối tượng tham gia tương tác.
• Thời gian sống của các đối tượng.
• Trình tự các thông điệp được trao đổi.
v Đọc biểu đồ từ đỉnh xuống đáy.
9
Ví dụ SD cho luồng con “Create a Schedule”
của UC “Register for Course”
10
Các thành phần của SD
v Đối tượng (object): Biểu diễn bởi một hình chữ nhật.
v Đường sống (lifeline): Biểu diễn bởi một đường kẻ nối dài phía
dưới đối tượng.
11
Các thành phần của SD (tt.)
12
Các thành phần của SD (tt.)
v Thông điệp (message): Biểu diễn bởi một đường mũi tên hướng
từ đối tượng gửi sang đối tượng nhận.
13
Các thành phần của SD (tt.)
v Các loại thông điệp:
• Thông điệp đồng bộ (synchronous message): Sự giao tiếp hai chiều, đối
tượng gửi sẽ chờ đối tượng nhận phản hồi và sẽ không gửi thông điệp khác
cho đến khi nhận được phản hồi.
• Biểu diễn bởi một đường mũi tên ở đầu được tô đặc.
• Thông điệp không đồng bộ (asynchronous message): Sự giao tiếp một
chiều, không chờ đối tượng nhận phản hồi và tiếp tục với hành động tiếp theo.
• Biểu diễn bởi một đường mũi tên ở đầu không được tô đặc.
• Thông điệp trả về (return message): Thông điệp trả lời lại khi có request
hoặc sau khi kiểm tra tính đúng đắn của một điều kiện nào đó.
• Biểu diễn bởi một đường mũi tên nét đứt ở đầu không được tô đặc.
• Thông điệp gọi chính nó (self-call message): Thông điệp mà đối tượng gửi
cho chính nó để thực hiện các hàm nội tại.
<<create>>
• Thông điệp tạo mới (create message):
• Thông điệp huỷ (destroy message): <<destroy>> 14
Các thành phần của SD (tt.)
v Kích hoạt (activation): Chỉ ra khoảng thời gian mà một hoạt động
được thực hiện.
15
Các thành phần của SD (tt.)
16
Các thành phần của SD (tt.)
17
Các thành phần của SD (tt.)
18
Biểu đồ giao tiếp (Communication Diagram - CD)
19
Ví dụ CD cho luồng con “Create a Schedule”
của UC “Register for Course”
20
Sự giống nhau của SD và CD
21
Sự khác nhau của SD và CD
22
Bài tập
23
Biểu đồ lớp (class diagram)
25
Biểu diễn thuộc tính
v Chỉ ra tên thuộc tính, kiểu và giá trị mặc định (nếu có):
• attributeName : Type = Default
v Tên thuộc tính phải tuân theo quy ước đặt tên của ngôn ngữ cài đặt
và của dự án.
v Kiểu nên là kiểu dữ liệu cơ bản trong ngôn ngữ thực thi.
• Kiểu dữ liệu có sẵn.
• Kiểu dữ liệu người dùng định nghĩa.
26
Phạm vi truy cập (visibility)
v Được sử dụng để thực hiện khả năng đóng gói trong OOP.
v Phạm vi truy cập:
• Public: Mọi lớp đều nhìn thấy (+)
• Private: Lớp khác không nhìn thấy (-)
• Protected: Các lớp kế thừa có thể nhìn thấy (#)
27
Ví dụ các lớp
28
Gói (package)
29
Stereotype của lớp
30
Stereotype của lớp (tt.)
v BoundaryClass (lớp biên):
• Cầu nối giao tiếp giữa giao diện và những thứ bên ngoài hệ thống (môi trường).
• Mô hình hoá tương tác giữa môi trường hệ thống và phần hoạt động bên trong HT.
• Các thay đổi về giao diện người dùng hay giao thức tương tác sẽ tác động lên các
lớp biên.
• Một số kiểu: Lớp UI, lớp giao diện hệ thống, lớp giao diện thiết bị.
• Khảo sát biểu đồ UC để tìm kiếm lớp biên.
• Mỗi cặp tác nhân và UC sẽ tương ứng với một lớp biên (khuyến cáo).
v EntityClass (lớp thực thể):
• Lớp thực thể là lớp lưu trữ thông tin sẽ ghi vào bộ nhớ ngoài.
• Thông thường phải tạo ra bảng CSDL cho lớp thực thể.
• Lớp thực thể có thể được xác định dựa vào mô tả luồng các sự kiện của UC, tài
liệu từ điển thuật ngữ, mô hình miền nghiệp vụ và các trừu tượng chính. 31
Stereotype của lớp (tt.)
v Một quan hệ ngữ nghĩa giữa hai hoặc nhiều lớp có mối liên hệ
với nhau giữa các thể hiện của chúng.
v Một quan hệ cấu trúc, chỉ ra các đối tượng của lớp này có kết
nối với các đối tượng của lớp khác hoặc chính lớp đó.
• Ví dụ: “Một sinh viên có một lịch học”.
v Một liên kết giữa hai lớp chỉ ra rằng đối tượng ở một đầu của
liên kết nhận ra đối tượng ở đầu kia và có thể gửi thông điệp
cho nhau.
33
Bội số quan hệ (multiplicity)
v Bội số quan hệ là số thể hiện của một lớp liên quan tới một thể
hiện của lớp khác.
v Mỗi liên kết có hai bội số quan hệ ứng với hai đầu của liên kết.
1 đối tượng 1
0 hoặc 1 0..1
v Ví dụ:
35
Ví dụ về quan hệ liên kết
36
Kết tập (aggregation)
37
Kiểm tra quan hệ Kết tập
v Một số giá trị thuộc tính của đối tượng toàn thể kéo theo
một vài giá trị thuộc tính của các bộ phận?
v Sự không đảo chiều giữa các lớp cho quan hệ kết tập?
38
Hợp thành (composition)
v Một dạng đặc trưng của kết tập với quyền sở hữu mạnh và các
vòng đời trùng khớp giữa hai lớp.
• Whole là sở hữu duy nhất của Part, tạo và huỷ Part.
• Part bị bỏ khi Whole bị bỏ, Part không thể tồn tại nếu Whole không tồn tại.
Lecturer
University
39
Mối quan hệ giữa các lớp
40
Phụ thuộc (dependency)
v Một quan hệ ngữ nghĩa giữa hai lớp, trong đó sự thay đổi của lớp
này kéo theo sự thay đổi của lớp kia (lớp phụ thuộc) mặc dù giữa
chúng không có một sự liên kết rõ ràng.
v Ví dụ:
41
Các ràng buộc và ghi chú
v Được sử dụng cho các liên kết, các thuộc tính, các phương thức
và các lớp.
v Các ràng buộc là các hạn chế ngữ nghĩa được viết dưới dạng
các biểu thức Boolean.
42
Tips
v Không mô hình hoá mọi thứ, tập trung vào các thông tin
quan trọng.
43
Các bước chính của mô hình hoá đối tượng
v Tổ chức và đơn giản hoá các lớp bằng cách sử dụng quan hệ tổng quát hoá.
v Kiểm tra biểu đồ lớp đã bao gồm tất cả các yêu cầu của tài liệu hay chưa?
• Họ cần một phần mềm cho phép người sử dụng biết sách hiện có trong thư viện, có thể
đặt mượn tối đa 2 quyển sách. Ngoài ra, phần mềm đó còn cho phép những người tham
gia mượn sách có thể biết sách nào trong thư viện đã bị mượn hoặc đã bị đặt mượn.
• Những người tham gia mượn sách cần đăng ký một tài khoản để truy nhập hệ thống.
• Việc mượn sách được quản lý bởi các thủ thư. Sau khi kiểm tra người tham gia mượn
sách, họ sẽ biết được người này có được phép mượn sách hay không (mỗi người có
thể mượn tối đa 5 quyển sách) và người này có được ưu tiên mượn sách hay không (đã
đặt mượn trên hệ thống).
45
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG THÔNG TIN
v Có được một cái nhìn tổng quan về khâu nắm bắt yêu cầu.
v Có khả năng đọc, diễn giải và kiểm tra các chế tác của khâu
nắm bắt yêu cầu:
• Phát biểu vấn đề.
• Mô hình ca sử dụng.
• Từ điển thuật ngữ.
• Đặc tả bổ sung.
v Nắm được các chế tác trên ảnh hưởng đến khâu phân tích
và thiết kế hệ thống như thế nào.
2
Một yêu cầu là gì?
3
Ví dụ: Các yêu cầu chức năng
v Hướng tiến trình (process-oriented): Tiến trình hệ thống phải thực hiện.
• VD: Hệ thống phải cho phép khách hàng (đã đăng ký tài khoản) xem lại lịch
sử giao dịch của họ trong ba năm qua (một nhu cầu tiến trình).
• VD: Hệ thống phải kiểm tra các đơn đặt hàng của khách hàng để kiểm kê
hàng tồn kho (một nhu cầu tiến trình).
v Hướng thông tin (information-oriented): Thông tin hệ thống phải chứa.
• VD: Hệ thống phải lưu lại lịch sử giao dịch của khách hàng trong ba năm
(một nhu cầu thông tin).
• VD: Hệ thống phải cập nhật thông tin tồn kho theo thời gian thực (một nhu
cầu thông tin).
4
Ví dụ: Các yêu cầu phi chức năng
v Vận hành: Môi trường vật lý hoặc kỹ thuật mà hệ thống cần phát triển sẽ vận
hành trên đó.
• VD: Hệ thống chạy được trên các hệ điều hành di động.
• VD: Hệ thống hoạt động được trên mọi trình duyệt Web.
v Hiệu năng: Tốc độ, khả năng sao lưu dữ liệu và độ tin cậy của hệ thống.
• VD: Bất cứ tương tác nào giữa người dùng và hệ thống đều không được vượt quá 5s.
• VD: Hệ thống hỗ trợ 300 phiên người dùng đồng thời từ 8h sáng đến 5h chiều.
v An ninh: Ai được uỷ quyền truy cập hệ thống, trong những trường hợp nào?
• VD: Khách hàng chỉ có thể xem lịch sử giao dịch của mình trong giờ làm việc.
• VD: Chỉ manager mới có quyền xem hồ sơ của cán bộ, nhân viên mà mình quản lý.
v Văn hoá và chính trị: Các yêu cầu liên quan đến văn hoá, chính trị và pháp
lý có ảnh hưởng đến hệ thống.
5
Tầm quan trọng của khâu nắm bắt yêu cầu
v Để tìm ra giải pháp đúng cho hệ thống phần mềm cần phát triển ->
cần phải hiểu rõ những yêu cầu đặt ra cho hệ thống.
v Câu hỏi đặt ra ở đây là ”Hệ thống phải làm gì?”.
v Trong “mô hình hoá nghiệp vụ”:
• Cung cấp ngữ cảnh để xác định và phân tích các yêu cầu.
• Hiểu chính xác về quy trình nghiệp vụ.
v Thu thập và xác định yêu cầu sai -> hệ thống bị phát triển sai, không
đáp ứng được mong đợi của khách hàng.
6
Mục đích của khâu nắm bắt yêu cầu
v Thiết lập và duy trì những thoả thuận với khách hàng và các bên liên
quan về những gì HT phải thực hiện.
v Giúp các nhà phát triển HT hiểu rõ về những yêu cầu đặt ra cho HT.
v Xác định giới hạn của HT.
v Cung cấp cơ sở để lập kế hoạch cho những lần lặp (chi tiết kỹ thuật).
v Cung cấp cơ sở để ước tính chi phí và thời gian phát triển HT.
v Định hình giao diện tương tác giữa người dùng và HT, qua đó làm rõ
được yêu cầu của người dùng đối với HT.
7
Các chế tác của khâu nắm bắt yêu cầu
8
Tài liệu phát biểu vấn đề
v Tài liệu phát biểu vấn đề là một phần của tài liệu tổng thể hệ
thống (vision document).
v Tài liệu phát biểu vấn đề làm rõ thực trạng của hệ thống hiện
thời (vấn đề, khó khăn…) -> chỉ ra được lý do và động lực
chính để phát triển hệ thống.
v Tài liệu phát biểu vấn đề có thể bao gồm các ràng buộc khác
nhau đặt ra cho hệ thống (ràng buộc về kỹ thuật, ràng buộc về
thời gian, ràng buộc về nguồn lực…).
9
Hành vi hệ thống là gì?
v Không có hệ thống nào hoạt động riêng biệt, mỗi hệ thống tương tác
với con người hoặc các hệ thống khác để phục vụ mục đích nào đó.
• Kết quả có thể dự đoán của những tương tác trên là hành vi hệ thống.
v Hành vi hệ thống là cách một hệ thống hoạt động và phản ứng.
• Hoạt động bên ngoài của hệ thống có thể thấy và kiểm tra được.
v Hành vi hệ thống được nắm bắt trong các ca sử dụng.
• Các ca sử dụng là cơ chế để nắm bắt các hành vi mong muốn của hệ
thống cần phát triển, chúng không chỉ ra cách các hành vi được thực hiện.
v UML chỉ định một loại mô hình để diễn đạt hành vi hệ thống -> mô hình
ca sử dụng.
10
Các khái niệm chính trong
mô hình ca sử dụng
v Một tác nhân đại diện cho bất cứ thứ gì tương tác với hệ thống.
Actor
v Một ca sử dụng là một chuỗi các hành động mà hệ thống sẽ
thực hiện để thu được một kết quả (một giá trị) có thể quan sát
được bởi một tác nhân cụ thể.
Use Case
11
Mô hình ca sử dụng là gì?
v Một mô hình mô tả các yêu cầu chức năng của hệ thống dưới
dạng các ca sử dụng.
v Một mô hình về các chức năng dự kiến của hệ thống (các ca sử
dụng) và môi trường của hệ thống (các tác nhân).
v Mô hình ca sử dụng được dùng trong tất cả các giai đoạn của
vòng đời phát triển hệ thống.
v Các chế tác tạo nên mô hình ca sử dụng bao gồm đặc tả ca sử
dụng và các biểu đồ đặc tả ca sử dụng.
12
Vai trò của mô hình ca sử dụng
13
Vai trò của mô hình ca sử dụng (tt.)
14
Tài liệu đặc tả ca sử dụng
v Mỗi ca sử dụng trong mô hình ca sử dụng mô tả chi tiết:
• Cách hệ thống tương tác với các tác nhân.
• Những gì hệ thống thực hiện trong quá trình tương tác với các tác nhân.
Þ Tài liệu đặc tả ca sử dụng.
v Tài liệu đặc tả ca sử dụng sẽ định hướng cho các hoạt động phân tích
và thiết kế về sau.
v Ca sử dụng có một tập các thuộc tính, chúng có thể xuất hiện trong tài
liệu đặc tả ca sử dụng.
• Brief description: Mô tả ngắn gọn mục đích của ca sử dụng.
• Flow of events: Mô tả dạng văn bản về những gì hệ thống sẽ thực hiện liên quan
đến ca sử dụng (thông thường chứa một luồng sự kiện chính và các luồng sự
kiện thay thế).
• Relationships: Các quan hệ giữa các ca sử dụng với nhau. 15
Tài liệu đặc tả ca sử dụng (tt.)
• Activity diagrams: Sử dụng để biểu diễn cấu trúc luồng các sự kiện.
• Use Case diagrams: Sử dụng để chỉ ra các mối quan hệ liên quan đến UC.
• Special requirements: Mô tả dạng văn bản về các yêu cầu, thường là các yêu
cầu phi chức năng được sử dụng là các ràng buộc cho giai đoạn thiết kế và
cài đặt.
• Pre-conditions: Định nghĩa các ràng buộc lên hệ thống tại thời điểm ca sử
dụng bắt đầu.
• Post-conditions: Định nghĩa các ràng buộc lên hệ thống tại thời điểm ca sử
dụng kết thúc.
• Other diagrams: Sử dụng để mô tả ca sử dụng (ví dụ, các bản vẽ hoặc ảnh
chụp màn hình từ một bản mẫu giao diện người dùng).
16
Ví dụ: Tài liệu đặc tả ca sử dụng
“Tạo tài khoản”
Use Case Tạo tài khoản
Actor Visitor
Brief Description Use Case này mô tả cách một Visitor đăng ký một tài khoản trên website XYZ
Pre-conditions Không có
Use Case này bắt đầu khi một Visitor yêu cầu tạo một tài khoản trên website XYZ:
1. Hệ thống hiển thị một form yêu cầu Visitor nhập các thông tin sau đây:
• User ID (required)
• Password (required)
Basic Flows • Email address (required)
• Phone number (required)
• Brief self-introduction (optional)
2. Sau khi Visitor cung cấp các thông tin được yêu cầu, hệ thống kiểm tra User ID và tất cả các trường
bắt buộc. Sau đó, hệ thống sẽ hiển thị một thông báo tới Visitor.
2.1. Nếu bất cứ một trường bắt buộc nào chưa được điền thông tin, hệ thống sẽ hiển thị một thông báo lỗi.
• Visitor có thể nhập lại thông tin đăng ký tài khoản.
• Visitor có thể huỷ thao tác tạo tài khoản.
Alternative Flows 2.2. Nếu bất cứ một trường bắt buộc nào mà Visitor nhập thông tin sai kiểu dữ liệu, hệ thống cũng sẽ hiển
thị một thông báo lỗi.
2.3. Nếu User ID mà Visitor nhập đã tồn tại, hệ thống sẽ hiển thị một thông báo yêu cầu Visitor nhập lại
một User ID khác. Visitor có thể nhập lại một User ID khác hoặc huỷ thao tác tạo tài khoản.
Nếu Use Case này được thực hiện thành công, một tài khoản người dùng mới sẽ được thêm vào hệ
Post-conditions
thống. Ngược lại, trạng thái hệ thống sẽ không thay đổi.
Special 17
Không có
Requirements
Kịch bản là gì?
19
Biểu đồ tuần tự hệ thống
21
Ví dụ: Biểu đồ hoạt động
đặc tả ca sử dụng “Đăng ký môn học”
Select Course
[ delete course ]
Delete Course
[ add course ]
Check Check
Schedule Pre-requisites
Assign to Resolve
Course Conflicts
Update
Schedule
22
Từ điển thuật ngữ
v Từ điển thuật ngữ định nghĩa các thuật ngữ trong miền vấn đề của hệ
thống, nó chứa các mô tả ở dạng văn bản và được dùng chung cho tất
cả các mô hình của hệ thống.
v Từ điển thuật ngữ cung cấp cho các nhà phát triển một cách hiểu thống nhất
về các thuật ngữ quan trọng của dự án và thuận tiện trong giao tiếp giữa họ
và các chuyên gia miền.
v Từ điển thuật ngữ thường được tạo ra trong pha khởi đầu (Inception) và pha
chi tiết (Elaboration) của quy trình RUP.
v Các chuyên gia miền sử dụng từ điển thuật ngữ để giải thích tất cả các thuật ngữ chuyên
biệt miền, giúp các nhà phát triển hiểu được các kịch bản của ca sử dụng.
v Trong pha xây dựng (Construction), các nhà phát triển sử dụng từ điển thuật ngữ để giải
thích các thuật ngữ về kỹ thuật trong các mô hình thiết kế.
v Tài liệu từ điển thuật ngữ thường có một định dạng cụ thể. 23
Ví dụ: Từ điển thuật ngữ
của “Hệ thống đăng ký môn học”
24
Đặc tả bổ sung
v Đặc tả bổ sung chứa các yêu cầu không được nắm bắt bởi các ca
sử dụng (chẳng hạn, các yêu cầu phi chức năng).
v Đặc tả bổ sung cùng với mô hình ca sử dụng sẽ nắm bắt tất cả các
yêu cầu đặt ra cho hệ thống, chúng tạo ra đặc tả yêu cầu hoàn chỉnh
của hệ thống.
v Đặc tả bổ sung chứa các yêu cầu liên quan đến:
• Tính khả dụng (usability).
• Độ tin cậy (reliability).
• Hiệu năng (performance).
• Khả năng hỗ trợ (supportability) và khả năng bảo trì (maintainability).
• Các ràng buộc thiết kế. 25
Kiểm tra mô hình ca sử dụng
26
Kiểm tra đặc tả ca sử dụng
28