Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 10: Giai đoạn đặc tả

Nội dung:

? Khái quát chung

? Tài liệu đặc tả

? Đặc tả không hình thức

? Một số kỹ thuật đặc tả bán hình thức

? Một số kỹ thuật đặc tả hình thức

? So sánh các kỹ thuật đặc tả

? Kiểm thử trong giai đoạn đặc tả

? Đánh giá giai đoạn đặc tả

pdf20 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1862 | Lượt tải: 3download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 10: Giai đoạn đặc tả, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
nd design technique) 
ƒ SREM [Alford, 1985] (software requirements engineering 
method) dựa trên kỹ thuật máy hữu hạn trạng thái, bao gồm các thành 
phần sau: 
‰ RSL: ngôn ngữ đặc tả 
‰ REVS: tập các công cụ thực hiện các mối liên hệ trong việc đặc tả 
(chuyển đổi sang cơ sở dữ liệu automate,...) 
‰ DCDS: kỹ thuật thiết kế 
ƒ Mô hình thực thể-quan hệ 
Huỳnh Xuân Hiệp - CNPM 
131
10.5 Phân tích hệ thống theo cấu trúc
(structured systems analysis)
™ Ví dụ về cửa hàng mua bán phần mềm (software shop) theo ph−ơng pháp 
Gane và Sarsen 
‰ b−ớc 1: vẽ DFD (data flow diagram) 
KHáCH HàNG Xử lý các yêu cầu đặt hàng
dữ liệu gói phần mềm 
Các chi tiết về gói 
dữ liệu khách hàng 
Tình trạng tín dụng 
Đặt hàng
Gửi hóa đơn 
Hình 10.1 DFD: b−ớc làm mịn thứ nhất 
Huỳnh Xuân Hiệp - CNPM 
132
Hình 10.2 DFD: b−ớc làm mịn thứ hai 
KHáCH HàNG 
Thẩm tra tính hợp lệ của việc 
đặt hàng 
dữ liệu gói phần mềm 
Các chi tiết về gói 
dữ liệu khách hàng 
Tình trạng tín dụng 
Đặt hàng
nhà 
cung cấp 
 phần mềm 
Đặt hàng đối với nhà cung 
cấp 
Địa chỉ hoặc 
số điện thoại 
CáC ĐặT HàNG CòN TồN
Tình trạng tín dụng 
Chi tiết về 
gói đ−ợc đặt 
hàng 
Chuỗi các đặt hàng 
Gửi hóa đơn 
Huỳnh Xuân Hiệp - CNPM 
133
Hình 10.3 DFD: một phần trong b−ớc làm mịn thứ ba 
KHáCH HàNG 
Thẩm tra tính hợp lệ của việc 
đặt hàng 
dữ liệu gói phần mềm 
Các chi tiết về gói 
dữ liệu khách hàng 
Tình trạng tín dụng 
Đặt hàng
Thực hiện việc chi trả cho 
hóa đơn 
tài khoản nhận đ−ợc 
Hóa đơn chi tiết 
Chuỗi các đặt hàng 
Tạo hóa đơn 
Địa chỉ 
Chi tiết về việc 
phân phối 
Hóa đơn 
Chi tiết về gói hàng đ−ợc đặt 
Chi trả 
Chi tiết về việc chi trả 
Gửi th− ngắn 
Chi tiết gói hàng có 
sẵn 
Chi tiết gói hàng nhận đ−ợc từ 
chi nhánh cung cấp phần mềm 
Huỳnh Xuân Hiệp - CNPM 
134
‰ b−ớc 2: quyết định các phần sẽ đ−ợc tin học hóa và cách thức tiến 
hành 
‰ b−ớc 3: chi tiết hóa các dòng dữ liệu 
VD: dòng dữ liệu đặt hàng: số, chi tiết về khách hàng, về gói hàng 
‰ b−ớc 4: định nghĩa mối quan hệ giữa các tiến trình 
VD: giảm giá cho sinh viên-học sinh 
‰ b−ớc 5: định nghĩa kho dữ liệu 
‰ b−ớc 6: định nghĩa tài nguyên vật lý 
‰ b−ớc 7: xác định các đặc tả đầu vào và đầu ra 
‰ b−ớc 8: hoàn thiện kích th−ớc 
‰ b−ớc 9: xác định các yêu cầu về phần cứng 
Sinh viên-học sinh
Các diện khác: 0%
≤ 4 gói hàng: 10% 
> 4 gói hàng: 15%
Hình 10.4 Cây quyết định cho cửa hàng phần mềm 
Huỳnh Xuân Hiệp - CNPM 
135
10.6 Mô hình thực thể-quan hệ
(entity-relationship modeling - ERM)
ƒ Là kỹ thuật đặc tả bán hình thức h−ớng dữ liệu (semiformal data-oriented) 
ƒ Đ−ợc sử dụng rộng rãi trong việc đặc tả cơ sở dữ liệu 
ƒ Bao gồm các thực thể và các quan hệ 
Tác giả Nhà cung cấp Nhà cung cấp 
 1 m 
viết đ−ợc cung cấp bởi p 
 đ−ợc cung cấp để 
sử dụng trong 
Dự án 
 n n 
Tiểu sử Bộ phận Bộ phận 
 n n 1 n 
đọc sở hữu Hình 10.6 Biểu đồ ER nhiều-nhiều bao gồm 
 1 1 
Đọc giả Hình 10.7 Biểu đồ ER phức tạp 
Hình 10.5 Biểu đồ ER đơn giản 
Huỳnh Xuân Hiệp - CNPM 
136
10.7 Máy hữu hạn trạng thái
(finite state machines - FSM)
ƒ Hữu dụng trong các ứng dụng có các trạng thái (state) và có sự dịch 
chuyển (transition) giữa các trạng thái 
ƒ Th−ờng ứng dụng thực đơn giao diện ng−ời dùng đ−ợc điều khiển 
ƒ Một FSM có 5 thành phần 
‰ tập các trạng thái J 
‰ tập các đầu vào K 
‰ tập các dịch chuyển T, xác định các trạng thái chuyển tiếp theo từ 
trạng thái hiện hành 
‰ trạng thái bắt đầu S 
‰ tập các trạng thái kết thúc F 
Huỳnh Xuân Hiệp - CNPM 
137
™ Ví dụ về bộ điều khiển an toàn 
J = {Khóa an toàn, A, B, Không khóa an toàn, Chuông báo động } 
K = {1T, 1P, 2T, 2P, 3T, 3P} 
T = Hình 10.9 
S = {Khóa an toàn} 
F = {Khóa an toàn, Chuông báo động} 
Khóa an toàn 1T A 3P B 2T Không khóa an toàn 
 có chuyển động 
quay số khác 
có chuyển động 
quay số khác 
có chuyển động 
quay số khác Trạng thái khởi tạo 
 Chuông báo động Trạng thái kết thúc 
Hình 10.8 FSM biểu diễn các tổ hợp khóa an toàn 
Trạng thái hiện hμnh
 Bảng các trạng thái tiếp theo 
Quay số Khóa an toàn A B 
1T A Chuông báo động Chuông báo động 
1P Chuông báo động Chuông báo động Chuông báo động 
2T Chuông báo động Chuông báo động Không khóa an toàn 
2P Chuông báo động Chuông báo động Chuông báo động 
3T Chuông báo động Chuông báo động Chuông báo động 
3P Chuông báo động B Chuông báo động 
Hình 10.9 Bảng chuyển dịch cho FSM 
Huỳnh Xuân Hiệp - CNPM 
138
10.8 Một số kỹ thuật đặc tả hình thức
(the formal specification techniques)
ƒ Ana [Luckham và von Henke, 1985], là ngôn ngữ đặc tả cho Ada 
ƒ Gist [Balzer, 1985] dùng để mô tả các tiến trình 
ƒ VDM [Jones, 1986b; Bj∅rner, 1987] cho ngữ nghĩa 
ƒ CSP [Hoare, 1985] biểu diễn các sự kiện và các tiến trình với môi tr−ờng 
làm việc 
ƒ Mạng Petri 
ƒ Z 
Huỳnh Xuân Hiệp - CNPM 
139
10.9 Mạng Petri
(Petri nets)
ƒ H−ớng thời gian do Carl Adam Petri đề xuất [Petri, 1962] 
ƒ Có 4 thành phần chính 
‰ tập các vị trí P 
‰ tập các phép biến đổi T 
‰ hàm đầu vào L 
‰ hàm đầu ra O 
VD: P = {p1, p2, p3,p4 } 
T = {t1, t2} 
I(t1) = {p2,p4}, I(t2) = {p2} 
O(t1) = {p1}, O(t2) = {p3,p3 } 
ƒ Định nghĩa hình thức hơn của Peterson [Peterson, 1981] với một cấu trúc 
mạng Petri là bộ tứ C=(P,T,I,O) 
‰ P = {p1, p2, ...,pn } là tập hữu hạn các vị trí, n ≥ 0 
‰ T = {t1, t2, ...,tm } là tập hữu hạn các biến đổi, m ≥ 0, P∩T=∅ 
‰ I: T→P∞ ánh xạ từ các phép biến đổi sang các vị trí 
‰ O: T→P∞ ánh xạ từ các phép biến đổi sang các vị trí 
p1
p2
p3
p4
t2
t1
Hình 10.11 Mạng Petri
Huỳnh Xuân Hiệp - CNPM 
140
ƒ Mạng Petri có đánh dấu (marking) khi gắn thêm các tokens 
ƒ Định nghĩa của Peterson [Peterson, 1981] cho đánh dấu 
‰ thêm M:P→{0,1,2,...} , tập các số nguyên không âm 
‰ trở thành bộ 5: (P,T,I,O,M) 
• 
• 
•• 
p1 
p2 
p3
p4 
t2
t1 
Hình 10.12 Mạng Petri có đánh dấu 
••
•
p1 
p2
p3
p4
t2
t1
Hình 10.13 Mạng Petri của Hình 10.12 
sau khi bắn sang phép biến đổi t1 
•• ••
p1
p2
p3
p4
t2
t1
Hình 10.14 Mạng Petri của Hình 10.13 
sau khi bắn sang phép biến đổi t2 
Huỳnh Xuân Hiệp - CNPM 
141
ƒ Cung cấm (inhibitor arc): phép biến đổi có thể thực hiện mà không cần có 
token trong vị trí nối 
™ Bài toán thang máy 
Có n thang máy trong tòa nhà m tầng. Mỗi tầng đ−ợc xem nh− một vị trí Ff (1≤f≤m) và mỗi thang 
máy là một token. Một token trong Ff có nghĩa là thang máy đó đang ở tầng f. 
Ràng buộc 1: mỗi thang máy có m nút, nút t−ơng ứng với các tầng sẽ sáng lên khi đ−ợc nhấn 
và tắt khi đã đi đến tầng t−ơng ứng. Gọi EB f (1≤f≤m) là các nút của thang máy t−ơng ứng với 
tầng f và EB f,e (1≤f≤m, 1≤e≤n) là nút f của thang máy e. 
Hình 10.15 Mạng Petri với cung cấm •
p1
p2
p3
t1
Hình 10.16 Mạng Petri biểu diễn một nút trong thang 
máy [Guha, lang và Bassiouni, 1987]. (â1987 IEEE)
Ff 
 • 
EBf EBf đ−ợc nhấn 
 • Fg
Thang máy đang hoạt động
Huỳnh Xuân Hiệp - CNPM 
142
Ràng buộc 2: Mỗi tầng (trừ tầng đầu tiên và cuối cùng) có 2 nút chỉ h−ớng đi lên hay đi 
xuống. Các nút này sẽ sáng lên khi đ−ợc nhấn và tắt khi thang máy đi đến và di chuyển theo 
h−ớng mong muốn. FB uf và FB df (1< f <m). 
Ràng buộc 3: Một thang máy không có yêu cầu co nghĩa là nó đang dừng tại tầng hiện tại và 
các cửa của nó ở trạng thái đóng. Khi đó biến đổi Thang máy đang hoạt động sẽ bị ngắt. 
ƒ Có thể dùng mạng Petri để đặc tả 
Hình 10.17 Mạng Petri biểu diễn các nút chỉ h−ớng đi 
[Guha, lang và Bassiouni, 1987]. (â1987 IEEE)
Ff
 •
FB uf FB uf đ−ợc nhấn 
 • Fg
Thang máy đang hoạt động
Ff
 •
FB df FB df đ−ợc nhấn 
Thang máy đang hoạt động
Huỳnh Xuân Hiệp - CNPM 
143
10.10 Z
ƒ Ngôn ngữ đặc tả hình thức nổi tiếng về tính hiệu quả [Spivey, 1992] 
ƒ Cơ sở lý thuyết : lý thuyết tập hợp, lý thuyết hàm, toán rời rạc,... 
ƒ Một số ký hiệu sử dụng: ∃,⊃,⇒,⊕,... 
ƒ Các b−ớc tiến hành: xác định các tập hợp, kiểu dữ liệu và hằng; định nghĩa 
trạng thái; xác định trạng thái khởi tạo; các ph−ơng thức hoạt động 
ƒ Ưu điểm: 
‰ dễ dàng xác định lỗi đặc tả trong các giai đoạn về sau 
‰ cực kỳ chính xác; giảm thiểu sự không rõ ràng, mâu thuẫn,... so với 
đặc tả không hình thức 
‰ dễ dàng chứng minh tính đúng đắn 
‰ dễ dàng đào tạo sử dụng 
‰ giảm chi phí phát triển phầm mềm 
‰ dễ dàng thuyết phục khách hàng khi viết lại bằng ngôn ngữ tự nhiên 
ƒ Sử dụng rộng rãi trong công nghệ phần mềm với các ứng dụng lớn tại các 
n−ớc Châu Âu và Mỹ 
Huỳnh Xuân Hiệp - CNPM 
144
10.11 So sánh các kỹ thuật đặc tả
Ph−ơng pháp đặc tả Thể loại Điểm mạnh Điểm yếu 
Ngôn ngữ tự nhiên Không hình 
thức 
Dễ học 
Dễ sử dụng 
Dễ hiểu đối với khách hàng 
Không chính xác 
Đặc tả có thể không rõ 
ràng, mâu thuẫn và 
/hoặc không đầy đủ 
Mô hình thực thể-quan hệ 
PSL/PSA 
SADT 
SREM 
Phân tích hệ thống theo 
cấu trúc 
Bán hình thức Khách hàng có thể hiểu 
đ−ợc 
Chính xác hơn các ph−ơng 
pháp không hình thức 
Không chính xác nh− 
các ph−ơng pháp 
hình thức 
Nhìn chung thì khó 
định l−ợng thời gian 
Anna 
CSP 
Máy hữu hạn trạng thái 
mở rộng 
Gist 
Mạng Petri 
VDM 
Z 
Hình thức Cực kỳ chính xác 
Có thể giảm các lỗi đặc tả 
Có thể giảm chi phí và nhân 
lực 
Có thể hỗ trợ việc chứng 
minh tính chính xác 
Khó học 
Khó sử dụng 
Khách hàng hầu nh− 
không thể hiểu đ−ợc 
Huỳnh Xuân Hiệp - CNPM 
145
10.12 Kiểm thử trong giai đoạn đặc tả
(testing during the specification phase)
ƒ Đánh giá sự chính xác của tài liệu đặc tả 
ƒ Thanh tra (inspection) [Fagan, 1976] cho giai đoạn thiết kế và viết mã lệnh 
VD:nhóm thanh tra (team of inspectors) sẽ đối chiếu lại tài liệu đặc tả với 
 một danh sách kiểm tra (checklist) 
ƒ Một dữ kiện điển hình trong danh sách thanh tra đặc tả bao gồm: đã chỉ rõ 
các tài nguyên phần cứng?, đã chỉ rõ các tiêu chuẩn chấp thuận ? 
10.13 Đánh giá công việc đặc tả
(metrics for the specification phase)
ƒ Đánh giá 5 đại l−ợng cơ bản: kích th−ớc (số trang tài liệu đặc tả, kích th−ớc 
sản phẩm đích,...), giá thành, thời gian, nhân lực, chất l−ợng (thống kê lỗi) 
ƒ Sử dụng từ điển dữ liệu (data dictionary) 

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 10 Giai đoạn đặc tả.pdf