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ả
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:
- 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ả.pdf