báo cáo BÀI TẬP NHÓM MÔN PHƯƠNG PHÁP VÀ CÔNG CỤ ĐÁNH GIÁ PHẦN MỀM

12 596 0
báo cáo BÀI TẬP NHÓM MÔN PHƯƠNG PHÁP VÀ CÔNG CỤ ĐÁNH GIÁ PHẦN MỀM

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG    BÀI TẬP NHÓM MÔN PHƯƠNG PHÁP VÀ CÔNG CỤ ĐÁNH GIÁ PHẦN MỀM Giảng viên hướng dẫn: Thầy Huỳnh Quyết Thắng Nhóm thực hiện: Nhóm 09 – CNPM K52 Nguyễn Thị Lan 20071649 Nguyễn Thị Hoài Phương 20072270 Hà Huy Khánh 20071536 Bùi Thị Hiền Lương 2007 1864 Vũ Thành Trung 20073068 Hà nội, 11/ 2011 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Contents    1 Contents 2 Câu 16: Đề xuất một định nghĩa phép đo độ cố kết – Cohesion có thể đo cho một ngôn ngữ lập trình bậc cao cụ thể như C hay Pascal .3 Câu 17: Nêu ý nghĩa dấu bình phương tích fan-in và fan-out trong công thức tính IFC – Information Flow Complexity của Henry-Kafura 4 Câu 18: Tính độ đo Coupling cho chương trình C của đồ thị sau: 6 Câu 26: Chứng minh đoạn chương trình đơn giản dưới đây là một D-structured bằng cách xây dựng Control Flow Graph 7 Câu 27: Nhận xét về cấu trúc của thuật toán dưới đây: .9 Nhóm 09 – CNPM K52 Page 2 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Câu 16: Đề xuất một định nghĩa phép đo độ cố kết – Cohesion có thể đo cho một ngôn ngữ lập trình bậc cao cụ thể như C hay Pascal Trả lời:  Cohesion: là thuật ngữ đo mức độ quan hệ giữa hai thành phần phần mềm  Các loại cohesion – theo Yourdon và Constantine: - Functional: một thành phần của modul này gọi đến duy nhất một thành phần của modul kia Function Function Modul A - Modul B Sequential: một thành phần của modul này gọi đến nhiều hơn một thành phần của modul kia Function Function Function Modul A - Modul B Communicational: một thành phần của modul này và một thành phần của modul kia dùng chung biến Variable Function Modul A - Function function Modul B Procedural: một thành phần của modul này và một thành phần của modul kia dùng Function Function chung một thủ tục duy nhất Nhóm 09 – CNPM K52 Page 3 Modul A Modul B 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm - Temporal: một thành phần của modul này và một thành phần của modul kia dùng chung biến trung gian trong một khoảng thời gian nhất định - Logical: một thành phần của modul này và một thành phần của modul kia gọi đến nhiều thủ tục và các thủ tục này có liên kết với nhau function Function Function function Modul A - Modul B Coincidental: một thành phần của modul này và một thành phần của modul kia gọi đến nhiều thủ tục và các thủ tục này không có liên kết với nhau  Cohesion cho mã nguồn C: Ta có thể áp dụng đo bất cứ loại cohesion kể trên cho mã nguồn C Các modul là các file mã nguồn cpp và các function là các hàm trong các file mã nguồn đó Câu 17: Nêu ý nghĩa dấu bình phương tích fan-in và fan-out trong công thức tính IFC – Information Flow Complexity của Henry-Kafura Trả lời:  Fan-in: Xét fan-in của modul M fan-in(M) là số lượng dữ liệu từ các modul khác truyền cho M làm đầu vào và dữ liệu bên trong M  Fan-out: Xét fan-out của modul M fan-out(M) là số lượng dữ liệu kết quả được M truyền ra ngoài  Công thức độ phức tạp luồng thông tin cho một modul: IFC=length(M)*(fan-in(M)*fan-out(M))^2 Nhóm 09 – CNPM K52 Page 4 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Ví dụ:  Dấu bình phương có ý nghĩa cho thấy rằng độ phức tạp luồng thông tin của modul tăng rất nhanh khi có nhiều hơn 1 luồng thông tin vào ra modul Nhóm 09 – CNPM K52 Page 5 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Câu 18: Tính độ đo Coupling cho chương trình C của đồ thị sau: Công thức tính coupling giữa hai modul x và y là: Trong đó: c là coupling i là chỉ số của Ri giữa x và y, n là số liên kết trong giữa x và y n: là số liên kết giữa x và y Dựa vào các nhãn gán cho các cung giữa các nút ta có C(M1,M3) = 3+ 1/(1+1) = 3.5 C(M1,M2) = [2+ 2/(2+1)]*2= 5.2 C(M2,M4) = 5+ 1/(1+1) + 3+ 2/(2+1) = 9.2 Nhóm 09 – CNPM K52 Page 6 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Câu 26: Chứng minh đoạn chương trình đơn giản dưới đây là một D-structured bằng cách xây dựng Control Flow Graph Trả lời: Control Flow Graph của đồ thị trên như sau: 1 : start 2 : Input list 3 : check list empty 4 : output “list empty” 5 : sum:=0 6 : read next list entry a 7 : sum:=sum+a Nhóm 09 – CNPM K52 Page 7 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm 8 : check end of list 9 1 0 : output sum : stop 1 2 3 Y N 5 4 6 7 1 0 0 Nhóm 09 – CNPM K52 Page 8 9 8 Y N 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Câu 27: Nhận xét về cấu trúc của thuật toán dưới đây: Trả lời: Chúng ta đã biết cách đo luồng thông tin như thế nào và đã phần nào cảm nhận được cái cách mà dữ liệu tương tác với một hệ thống hay một modul Tuy nhiên vẫn còn một số vấn đề về việc đo đạc trên dữ liệu thực và cấu trúc của chúng Ở phần này chúng ta sẽ làm quen với các phép đo cấu trúc dữ liệu Thông thường việc đo đạc dữ liệu sẽ không phức tạp vì với các luồng điều khiển và luồng dữ liệu đã có chúng ta có thể đo cả dữ liệu cục bộ và dữ liệu toàn cục Có thể đo lượng cấu trúc trong mỗi thành phần dữ liệu Elliot đã sử dụng lý thuyết đồ thì để phân tích và đo các thuộc tính của cấu trúc dữ liệu Anh ấy coi các loại dữ liệu như: số nguyên, ký tự, và biến Boolean như dữ liệu nguyên thủy và sau đó xem xét các phép tính mà theo đó tạo nên độ phức tạp cho cấu trúc dữ liệu Phép đo cấu trúc dữ liệu có thể được định nghĩa phân cấp theo loại dữ liệu và phép tính trên loại dữ liệu đó Vanden Berg cũng sử dụng lý thuyết tương tự để đo độ phức tạp của các hàm trong ngôn ngữ lập trình hướng chức năng Để đo lượng dữ liệu của hệ thống chúng ta đếm tổng số biến trong chương trình Cũng tương tự như phép đo Halstead: Nhóm 09 – CNPM K52 Page 9 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Chúng ta có thể sử dụng µ 2 như là phép đo dữ liệu hoặc N 2 như là phép đo các phép toán Bohem cũng nhấn mạnh vấn đề đo đạc lượng dữ liệu trong mô hình COCOMO mà ông ấy đã xây dựng Ông định nghĩa một phép toán: D/P = DatabaseSizeInBytesOrCharacters Pr ogramSizeInDSI Trong đó DSI là số lượng chỉ dẫn mã nguồn Sử dụng phép đo này ông đã thu được một phép đo đơn giản với thang đo ordinal, gọi là DATA Định nghĩa của phép đo này và hệ quả tác động tương ứng lên chi phí dưới bảng sau: Ví dụ: dựa vào bảng trên ta có thể thấy rằng, nếu độ phức tạp của dữ liệu được xếp vào loại “very high” thì chi phí cho hệ thống sẽ tăng lên khoảng 16% nhưng mặt khác nếu độ phức tạp giảm xuống còn “low” thì chi phí chỉ còn 94% Tuy nhiên thì độ phức tạp về cấu trúc dữ liệu lại không phản ánh được độ phức tạp về luồng điều khiển Ví dụ: xét 2 chương trình có chức năng tương tự nhau dưới đây Lưu ý là mã nguồn được viết theo hai cách hoàn toàn khác nhau Nhóm 09 – CNPM K52 Page 10 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm Chương trình A có độ phức tạp về cấu trúc luồng điều khiển cao( số vòng lặp là 7) Trong khi B chỉ gồm một chuỗi tuần tự rất đơn giản( số vòng lặp chỉ là 1) Điểm khác nhau chính giữa 2 thành phần chính là ở độ phức tạp luồng điều khiển trong A đã được chuyển thành cấu trúc dữ liệu trong B Trong khi dữ liệu của A chỉ là số nguyên thì dữ liệu của B yêu cầu là một mảng 11 phần tử và mỗi phần tử là một chuỗi ký tự và một biến số nguyên Để đo độ phức tạp của 2 đoạn mã nguồn trên, chúng ta sẽ gán giá trị 1 cho biến số nguyên, giá trị nhân 2 cho một chuỗi string, giá trị nhân 2 cho một phép tính trên mảng Trong trường hợp này A có một thành phần Nhóm 09 – CNPM K52 Page 11 2 2011 Bài tập nhóm môn Phương pháp và công cụ đánh giá phần mềm dữ liệu được gán giá trị 1, B có 2 thành phần dữ liệu một cũng được gán là 1 và 1 được gán là 44 Độ phức tạp dữ liệu của B rất lớn nhưng trên thực tế luồng điều khiển của nó thì lại rất đơn giản Đồ thị luồng điều khiển của hệ thống đề bài ra như sau: 1 2 3 N Y 5 N 4 1 : start 2 Y : apply substance A 3 : temperature above maximum threshold 4 : end 5 6 : apply substance B : pressure above maximum threshold Nhóm 09 – CNPM K52 Page 12 6 ... sum:=sum+a Nhóm 09 – CNPM K52 Page 2011 Bài tập nhóm mơn Phương pháp công cụ đánh giá phần mềm : check end of list : output sum : stop Y N 0 Nhóm 09 – CNPM K52 Page Y N 2011 Bài tập nhóm mơn Phương pháp. .. thành phần modul thành phần modul dùng Function Function chung thủ tục Nhóm 09 – CNPM K52 Page Modul A Modul B 2011 Bài tập nhóm mơn Phương pháp công cụ đánh giá phần mềm - Temporal: thành phần. .. Công thức độ phức tạp luồng thông tin cho modul: IFC=length(M)*(fan-in(M)*fan-out(M))^2 Nhóm 09 – CNPM K52 Page 2011 Bài tập nhóm mơn Phương pháp cơng cụ đánh giá phần mềm Ví dụ:  Dấu bình phương

Ngày đăng: 13/08/2015, 15:24

Từ khóa liên quan

Mục lục

  •   

  • Contents

  • Câu 16: Đề xuất một định nghĩa phép đo độ cố kết – Cohesion có thể đo cho một ngôn ngữ lập trình bậc cao cụ thể như C hay Pascal.

  • Câu 17: Nêu ý nghĩa dấu bình phương tích fan-in và fan-out trong công thức tính IFC – Information Flow Complexity của Henry-Kafura.

  • Câu 18: Tính độ đo Coupling cho chương trình C của đồ thị sau:

  • Câu 26: Chứng minh đoạn chương trình đơn giản dưới đây là một D-structured bằng cách xây dựng Control Flow Graph.

  • Câu 27: Nhận xét về cấu trúc của thuật toán dưới đây:

Tài liệu cùng người dùng

Tài liệu liên quan