TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN MÔN
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
Đề tài: Kỹ nghệ phần mềm phòng sạch
Giáo viên hướng dẫn: Th.s Nguyễn Thanh Bình
Sinh viên thực hiện: Nhóm 10-Lớp CĐ Tin2-K11
1:Lê Huy Lân
2: Nguyễn Tiến Đạt
3: Đặng Thị Hà
1
Hà Nội 05/2011
LỜI GIỚI THIỆU
CNPM ở Việt Nam được xem là một ngành công nghiệp đặc thù với sản phẩm trí
tuệ là phần mềm và là một ngành công nghiệp đầy tiềm năng, ngành mũi nhọn trong
chiến lược trong công cuộc công nghiệp hóa hiện đại hóa đất nước.
Từ trước tới nay Việt Nam vẫn được đánh giá là nước có tốc độ phát triển công
nghiệp phần mềm cao và ổn định, khoảng 30-40% 1 năm, nhờ vào công cuộc đổi mới và
ngồn lao động giá rẻ. Chính nhờ nguồn lao động giá rẻ mà chúng ta thu hút được một số
dự án đầu tư của nước ngoài. Tuy nhiên khác với những nghành công nghiệp đặc thù
khác, công nghiệp phần mềm lại cần một nguồn nhân lực có trình độ, tư duy lôgic tốt, am
hiểu ngoại ngữ và các nền tảng công nghệ. Nguồn nhân lực như vậy chúng ta đang thiếu
rất nhiều. Thêm nữa công nghiệp phần mềm Việt Nam chủ yếu vẫn là gia công phần mềm
chưa thực sự nắm được một nền tảng công nghệ nào, tức là chúng ta chỉ đang làm mướn
mà thôi. Chính vì vậy nhiệm vụ của chúng ta hiện nay để vực dậy nền công nghiệp phần
mềm non trẻ là thứ nhất: đào tạo đội ngũ nhân lực có đầy đủ năng lực trình độ ngoại ngữ,
thứ hai: các viện nghiên cứu, các trường đại học phải là những nơi tiên phong trong việc
nghiên cứu áp dụng những nền tảng công nghệ, để giúp cho Việt Nam không chỉ còn là
“kẻ làm mướn” mà còn có thể làm chủ, phát huy tính chủ động sáng tạo trong mỗi trí
thức trẻ. Đó chính là giá trị thực mà chúng ta cần vươn tới.
Góp phần nhỏ bé vào mục tiêu cao cả ấy, nhóm sinh viên số 10 lớp tin2_k11
trường Đại Học Công Nghiệp Hà Nội chúng tôi đã tiến hành tiến hành tìm hiểu và báo về
đề tài Công nghệ phần mềm phòng sạch(hay còn gọi là mô hình hình thức). Đây là một
công nghệ mới ở Việt Nam và cũng chỉ được áp dụng ở một vài nước tiên tiến nhất trên
thế giới. Đúng như tên gọi của nó mục tiêu của phương pháp này là tạo ra những phần
mềm “cực kỳ sạch” tức là không có bất kỳ một lỗi nào. Điều này cực kỳ hữu ích bởi
chúng ta đều biết 70% chi phí cho một phần mềm dùng vào việc bảo trì sửa chữa. Thặng
dư tạo ra sẽ cực kỳ lớn.
Bài báo cáo sau đây sẽ đem lại cho các bạn cái nhìn tổng quan nhất về Công nghệ
phần mềm phòng sạch, là hướng mở cho sinh viên CNTT chúng ta nghiên cứu và phát
triển. Nhóm chúng tôi xin chân thành cảm ơn cô giáo Nguyễn Thanh Bình cũng như các
bạn đồng nghiệp gần xa đã tận tình giúp đỡ chúng tôi hoàn thành bản báo cáo này. Tuy đã
cố gắng hết sức nhưng do thời gian, kinh nghiệm và năng lực còn hạn chế nên trong bản
báo cáo không thể tránh khỏi những thiếu sót. Rất mong nhận được sự đóng góp phản hồi
từ các bạn để chúng tôi ngày càng hoàn thiện hơn! Một lần nữa
Chúng em xin chân thành cảm ơn!
2
Mục lục
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt Nghĩa
CNPM Công nghệ phần mềm
CNTT Công nghệ thông tin
SQA Software Quality Assurance
3
BẢNG DANH MỤC CÁC HÌNH VẼ
Hình Nội dung
1.1 Mô hình qui trình phòng sạch
1.2 Cơ cấu đặc tả hộp
1.3 Đặc tả hộp đen
1.4 Đặc tả hộp trạng thái
1.5 Nhận dạng hộp sáng
1.6 Thiết kế đặc tả chính xác
1.7 Thuật toán tính phần số nguyên của một căn bậc
1.8 Thiết kế chính xác
1.9 Phòng sạch
1.10 Phin lọc
4
I. PHẦN MỞ ĐẦU
1. Tầm quan trọng của mô hình hình thức (phần mềm phòng sạch)
Đã bao giờ bạn nghe ai đó nói: “Làm đúng ngay lần đầu tiên”? Đó là triết lý
thay thế của phần mềm phòng sạch– một qui trình nhấn mạnh chứng nhận toán học
chính xác trước khi chương trình khởi tạo và chứng nhận của phần mềm được thực
thi như một phần của hoạt động kiểm thử. Điểm mấu chốt là cực kỳ thấp tỷ lệ thất
bại điều mà rất khó khăn hoặc không thể đạt nếu bằng cách sử dụng phương pháp
không chính thức. Ai sẽ được điều đó? Chính là những kỹ sư phần mềm huấn
luyện đặc biệt.
Tại sao nó lại quan trọng?
Lỗi thì phải làm làm lại, làm lại thì mất thời gian và tăng chi phí. Thật là một
điều lý tưởng nếu chúng ta có thể giảm đáng kể số lượng sai lầm (lỗi) và đưa ra
phần mềm như đã được thiết kế và xây dựng
2. Phạm vi liên quan
Mô hình phân tích và thiết kế được sáng tạo và sử dụng hộp cơ cấu đại diện.
Một “hộp” đóng gói hệ thống(hoặc là một số khía cạnh của hệ thống) ở mức độ cụ
thể của trừu tượng. Xác minh tính đúng đắn là được áp dụng một thiết kế cấu trúc
hộp hoàn chỉnh. Một sự đúng đắn được xác định cho mỗi cấu trúc hộp, thống kê
thường bắt đầu kiểm tra. Phần mềm được kiểm tra bởi định nghĩa sử dụng kịch
bản, xác định xác suất sử dụng cho mỗi kịch bản, và sau đó xác định các xét
nghiệm ngẫu nhiên mà phù hợp với các xác suất. Những bản ghi lỗi kết quả của sự
phân tích cho phép những tính toán toán học trong định hướng độ tin cậy cho các
thành phần phần mềm.
Sản phẩm làm việc là gì?
Hộp đen, hộp trạng thái và hộp rỗng đặc biệt được phát triển. Kết quả của
những bắng cớ chính xác chính thức và những thống kê kiểm thử là các bản ghi.
Làm thế nào để đảm bảo rằng bạn đã làm đúng?
Bằng cớ thông thường của sự chính xác được chấp nhận cho cấu trúc hộp
đen đặc biệt. Sự thống kê sử dụng các bài kiểm tra gồm các kịch bản để đảm bảo
5
rằng những lỗi lệnh của người dùng được phát hiện và xử lý cho đúng. Kiểm tra dữ
liệu được sử dụng để đưa ra một chỉ số của tính tiện lợi của phần mềm.
Khi một phần mềm thất bại trên thị trường, đầy rẫy rủi ro tức thì và rủi ro
lâu dài. Những rủi ro có thể liên quan đến an toàn con người, mất mát kinh tế, hay
là hệ quả của hoạt động kinh doanh và cơ sở hạ tầng xã hội. Công nghệ phần mềm
phòng sạchlà một qui trình hiện đại nó có thể khắc phục những nhược điểm trước
khi chúng có thể trở thành những rủi ro nghiêm trọng.
3. Quá trình phát triển và hiện trạng
Học thuyết của phòng sạch trong công nghệ sản xuất phần cứng khá là đơn
giản : Nó là chi phí hiệu quả và thời gian hiệu quả để đưa ra một phương pháp
ngăn ngừa và giới thiệu những nhược điểm của sản phầm. Hơn là chế tạo một sản
phẩm và sau đó làm việc để gỡ bỏ nhược điểm. Phương pháp phòng sạchđòi hỏi sự
kỷ luật để loại trừ những nhược điểm trong quá trình định rõ và thiết kế và sau đó
chế tạo trong một kiểu « sạch ».Triết lý phòng sạchđược lần đầu tiên đề xuất cho
công nghệ phần mềm bởi Mills, Dyer và Linger trong thập kỷ 80. Mặc dù những
kinh nghiệm trước đó với những phương pháp kỷ luật trong công nghệ phần mềm
được đưa ra chữ ký đảm bảo, nó không có lợi ích sử dụng rộng rãi, Henderson đưa
ra 3 lý do cơ bản sau:
1. Một niềm tin rằng phương pháp phòng sạch quá lý thuyết, quá toán học và quá cơ
bản để sử dụng vào trong thực tế phát triển phần mềm
2. Nó chủ trương không một đơn vị kiểm tra bởi người phát triển nhưng thay vì thay
thế nó với xác minh chính xác và công cụ thống kê chất lượng, ý tưởng rằng thay
thế một khởi đầu chủ đạo từ cách mà hầu hết những phần phần mềm được phát
triển ngày nay.
3. Tính kỹ càng của công nghiệp phát triển phần mềm. Việc sử dụng qui trình phòng
sạchyêu cầu ứng dụng nghiêm nghặt trong từng bước của qui trình. Từ khi phần
lớn nền công nghiệp hoạt động theo chuẩn AD HOC (được định nghĩa bởi SEI
CMM) nền công nghiệp sẵn sáng áp dụng những ký thuật đó
Mặc dù các yếu tố của sự thật trong mỗi những quan ngại này, tiềm năng lợi
ích của công nghệ phần mềm phòng sạch xa quan trọng hơn đầu tư cần thiết để
khắc phục cản trở lúc đó là cốt lõi của những quan ngại này.
6
4. Vai trò và ý nghĩa của đề tài trong vấn đề chung nói riêng và CNPM
nói chung
Sự kết hợp sử dụng tính tiện lợi của công nghệ phần mềm hiện đại (những
phương pháp chính thức), chương trình kiểm thử (bằng cớ chính xác), và thống kê
SQA đã được kết hợp trong một công nghệ có thể dẫn dắt hoàn toàn phần mềm
chất lượng cao. Công nghệ phần mềm phòng sạch là một phương pháp, nó nhấn
mạnh việc cần thiết phải xây dựng tính chính xác trong phần mềm. Thay cho
những phân tích, thiết kế, tạo mã, kiểm thử, chu trình gỡ lỗi truyền thống, phương
pháp phòng sạch gợi ý một quan điểm mới.
Triết lý ẩn chứa trong công nghệ phòng sạch là ngăn ngừa sự phụ thuộc vào
nhược điểm tai hại tăng lên trong qui trình di chuyển bằng viết mã ngay lần đầu
tiên và xác nhận tính chính xác của chúng trước khi kiểm thử. Mô hình quá trình
của nó kết hợp các chứng nhận chất lượng thống kê của gia số mã như chúng tích
lũy thành một hệ thống.Trong nhiều cách, phương pháp phòng sạch nâng cao công
nghệ phần mềm lên một cấp độ khác. Các qui trình phòng sạch nhấn mạnh sự chặt
chẽ trong quá trình đặc điểm kỹ thuật và thiết kế, và xác minh chính thức của mỗi
yếu tố thiết kế bằng cách sử dụng chứng minh đúng đắn được dựa trên toán học
7
II. Nội dung
1. Phương pháp phòng sạch
1.1 Chiến lược phòng sạch
Phương pháp phòng sạch làm cho việc sử dụng chỉ một phiên bản của phần
mềm gia tăng. Một “luồng của phần mềm tăng lên” là được phát triển bởi nhóm
nhỏ kỹ sư phần mềm. Như mỗi sự tiến triển từng được chứng nhận, nó được tích
hợp trong tất cả. Do đó, chức năng của hệ thống phát triển theo thời gian. Chuỗi
nhiệm vụ phòng sạch tăng lên được minh họa trên sơ đồ 1.1. Hệ thống tổng thể
hoặc sản phẩm yêu cầu được phát triển bằng cách sử dụng các hệ thống kỹ thuật.
Một chức năng đã được phân công trong thành phần phần mềm của hệ thống,
những đường ống của phòng sạch tăng lên được khởi tạo. Những công việc sau
xảy ra:
Tăng qui hoạch.
Một dự án dự định rằng thông qua chiến lược gia tăng để được phát triển.
Chức năng của mỗi gia lượng, kích cỡ dự án của nó và một lịch phát triển phòng
sạch được tạo ra. Chăm sóc đặc biệt phải được đưa đến đảm bảo rằng số gia chứng
nhận sẽ được tích hợp một cách kịp thời.
Yêu cầu thu thập
Sử dụng kỹ nghệ tương tự như đã được giới thiệu trong phần 11. Một chi tiết
mô tả thêm vào của khách hàng yêu cầu(cho mỗi gia lượng)
Thiết kế chính thức
Đặc điểm cấu trúc hộp, thiết kế phòng sạch là một mở rộng liền mạch của tự
nhiên
Một phương pháp đặc điểm kỹ thuật mà làm cho việc sử dụng hộp cấu trúc
[HEV93] được sử dụng để mô tả các đặc tả chức năng.
Tuân thủ các nguyên tắc phân tích hoạt động thảo luận trong Chương 11, cấu
trúc hộp "Cô lập và sáng tạo riêng biệt định nghĩa của hành vi, dữ liệu, thủ tục ở
mỗi cấp độ khác nhau của sàng lọc
8
Thiết kế chính thức
Sử dụng phương pháp cấu trúc hộp, thiết kế phòng sạch là mở rộng tự nhiên
và liền mạch của đặc tả.Mặc dù có thể thực hiện một sự phân biệt rõ ràng giữa hai
hoạt động, chi tiết kỹ thuật (gọi là hộp đen) là iteratively tinh chế (trong vòng một
tăng) để trở thành kiến trúc tương tự và thành phần thiết kế trình độ (gọi là hộp
trạng thái và các hộp rỗng, tương ứng).
Kiểm chứng chính xác
Nhóm Phòng sạch tiến hành một loạt các hoạt động kiểm định nghiêm ngặt
đúng đắn về thiết kế và sau đó mã hóa. Mã xác nhận (phần 1,3 và 1,4) bắt đầu với
cấu trúc hộp cao cấp (đặc điểm kỹ thuật) và di chuyển về hướng thiết kế chi tiết và
mã hóa. Mức độ đầu tiên của xác minh đúng đắn xảy ra bằng cách áp dụng một tập
hợp các “câu hỏi đúng đắn”. Nếu chúng không chứng minh rằng các đặc điểm kỹ
thuật là chính xác, thì sẽ có thêm những phương pháp hình thức (toán học) được sử
dụng cho kiểm chứng.
Sinh mã, kiểm tra, xác minh
Cấu trúc hộp chuyên môn, đại diện cho một ngôn ngữ chuyên ngành, được
dịch sang các ngôn ngữ lập trình thích hợp. Hướng tiêu chuẩn hoặc kiểm tra kỹ
thuật (Chương 8) sau đó được sử dụng để đảm bảo sự phù hợp ngữ nghĩa của mã
và cấu trúc hộp và đúng đắn cú pháp của mã. Sau đó tiến hành xác minh là đúng
đắn cho mã nguồn.
Thống kê kiểm tra quy hoạch
Việc sử dụng dự kiến của phần mềm là một bộ phân tích và các trường hợp
kiểm tra rằng sự thực hiện một phân bố xác suất về cách sử dụng đang lên kế
hoạch và được thiết kế (mục 1.4). Đề cập trong hình 1.1, Phòng sạch hoạt động
này được tiến hành song song với đặc điểm kỹ thuật, xác minh, và thế hệ mã.
Thống kê sử dụng thử nghiệm.
Nhắc lại rằng thử nghiệm đầy đủ của phần mềm máy tính là không thể
(Chương 17), nó là luôn luôn cần thiết để thiết kế một số hữu hạn các trường hợp
thử nghiệm. Thống kê sử dụng các kỹ thuật [POO88] thực hiện một loạt các bài
9
kiểm tra bắt nguồn từ một mẫu thống kê (các phân bố xác suất ghi nhận trước đó)
của tất cả các chương trình xử tử có thể có của tất cả người dùng từ một số mục
tiêu (mục 1.4)
Chứng nhận.
Sau khi xác minh, kiểm tra, và kiểm tra việc sử dụng đã được hoàn thành (và
tất cả các lỗi được sửa chữa), gia lượng được chứng nhận là đã sẵn sàng cho tích
hợp.
Giống như các mô hình quy trình phần mềm khác(thác nước, tiến hóa…),
mô hình phòng sạch dựa chủ yếu vào sự cần thiết để sản xuất phân tích chất lượng
cao và các mô hình thiết kế.
1.2 Điều gì tạo nên sự khác biệt ở phòng sạch
Dyer ám chỉ đến những khác biệt trong cách tiếp cận phòng sạch khi ông
định nghĩa quá trình:
Phòng sạch đại diện cho các nỗ lực đầu tiên thực hiện ở việc đưa tiến trình
phát triển phần mềm kiểm soát chất lượng thống kê với một chiến lược cũng xác
định cho quá trình liên tục cải thiện. Để đạt được mục tiêu này, một cuộc sống độc
đáo phòng sạch chu kỳ đã được định nghĩa trong đó tập trung vào toán học dựa
trên công nghệ phần mềm cho các thiết kế phần mềm và chính xác về số liệu thống
kê dựa trên phần mềm thử nghiệm để xác nhận độ tin cậy phần mềm.
Công nghệ phần mềm phòng sạch khác với thông thường và hướng đối
tượng
xem trình bày trong phần ba và bốn của cuốn sách này bởi vì:
1. Nó làm cho việc sử dụng rõ ràng của kiểm soát chất lượng thống kê.
2. Nó thẩm tra thiết kế đặc tả bằng cách sử dụng một chứng minh toán học dựa trên
các đúng đắn.
3. Nó dựa chủ yếu vào thử nghiệm sử dụng thống kê để phát hiện sai sót tác động cao
Rõ ràng, các phương pháp tiếp cận phòng sạch áp dụng nhất, nếu không phải
tất cả, các phần mềm cơ bản kỹ thuật nguyên tắc và khái niệm được trình bày trong
suốt cuốn sách này. Phân tích tốt và các thủ tục thiết kế là rất cần thiết nếu chất
lượng cao là kết quả. Nhưng công nghệ phòng sạch phân kỳ từ thực tiễn phần mềm
10
thông thường được nhấn mạnh (một số xin nói, loại bỏ) với vai trò của đơn vị kiểm
tra và gỡ lỗi và đáng kể giảm (hoặc loại bỏ) số lượng thử nghiệm được thực hiện
bởi các nhà phát triển của các phần mềm
Trong phát triển phần mềm thông thường, các lỗi được chấp nhận như là một
thực tế của cuộc sống. Bởi vì lỗi được coi là không thể tránh khỏi, mỗi mô-đun
chương trình nên được đơn vị được kiểm tra (để phát hiện lỗi) và sau đó sửa lỗi (để
loại bỏ các lỗi). Khi phần mềm này là cuối cùng phát hành, sử dụng khám phá lĩnh
vực khuyết tật vẫn còn nhiều hơn và chu kỳ kiểm tra khác và gỡ lỗi bắt đầu.
Các Rework liên kết với các hoạt động này là tốn kém và mất thời gian. Tệ
hơn nữa,nó có thể thoái hóa, có thể sửa lỗi (vô tình) dẫn đến việc giới thiệu vẫn
còn nhiều sai sót.
Trong công nghệ phần mềm phòng sạch, đơn vị thử nghiệm và gỡ lỗi được
thay thế bằng xác minh tính chính xác và thống kê dựa trên thử nghiệm. Những
hoạt động này, cùng với việc giữ kỷ lục cần thiết cho việc cải tiến liên tục, làm cho
phòng sạch là phương pháp duy nhất.
5. Chức năng đặc điểm kỹ thuật
Bất kể các phương pháp đó là lựa chọn ,các nguyên tắc được trình bày trong
chương 11.Dữ liệu ,chức năng và các hành vi được mô phỏng.Các mô hình kết quả
phải được phân vùng để đáp ứng các chi tiết ngày càng lớn.Tất cả các mục tiêu trên
là để chuyển từ tài liệu đặc tả sang đặc tả kỹ thuật mà cung cấp chi tiết thực hiện.
Kỹ nghệ phần mềm phòng sạch tuân thủ các nguyên tắc phân tích hệ thống
bằng cách sử dụng một phương pháp gọi là phuơng pháp đặc tả hộp.Một “hộp”
đóng gói hệ thống (hoặc một phần của hệ thống)tại một số mức của hệ
thống.Thông qua một quá trình sàng lọc như bậc thang,”hộp “ được chia thành các
phân cấp nơi mà mỗi hộp đều có tham chiếu rõ ràng.
Đó là,”nội dung thông tin của mỗi hộp đủ dể xác dịnh thông tin về nó,mà
không phụ thuộc vào hộp khác”. Điều này cho phép người phân tích hệ thống có
thẻ phân vùng hệ thống theo các mức cấp,đi từ các phần đại diện chủ yếu ở trên tới
những phần chi tiết.Có 3 kiểu hộp được sử dụng:
Hộp đen
11
Các hộp đen xác định hành vi phương thức của hệ thống hoặc một phần hệ
thống. Hệ thống (hoặc 1 phần của nó) sẽ trả lời các kích thích(sự kiện)xảy ra bằng
cách áp dụng một tập các quy tắc chuyển tiếp các kích đó vào trong 1 sự đáp lại.
Hộp trạng thái
Hộp này đóng gói các dữ liệu trạng thái và những dịch vụ (hoạt động) trong
một thái độ mà tương tự đối với những đối tượng. Các đặc điểm trong này, đầu vào
tới kích thích hộp trạng thái và nhận được trả lời ở đầu ra. Hộp trạng thái cũng đại
diện cho “lịch sử kích thích” của hộp đen,nghĩa là dữ liệu được đóng gói trong hộp
trạng thái phải được giữ lại giữa quá trình chuyển tiếp bao hàm.
Hộp sáng
Các chức năng chuyển tiếp bao hàm trong hộp trạng thái được định nghĩa rõ
ràng trong hộp sáng. Đơn giản,đây là cái hộp chứa các thủ tục rõ ràng được thiết kế
cho hộp trạng thái.
12
Hình 1.2 là hình minh họa cho phương pháp sàng lọc sử dụng cơ cấu đặc tả
hộp đen.một hộp đen (BB1) định nghĩa cho một bộ đầy đủ các kích thích.BB1 có
thể tách re thành một bộ các hộp đen từ BB1.1 tới BB1.n,mối hộp con xác định
một lớp hành vi.tiếp tục sàng lọc cho đến khi một lớp cố kết của hành vi được xác
định (ví dụ BB1.1.1). Một hộp trạng thái SB1.1.1 định nghĩa cho các hộp
đen(BB1.1.1). Trong trường hợp này, SBB1 chứa mọi dữ liệu và các dịch vụ để
thực hiện các hành vi được yêu cầu bởi BB1.1.1. Cuối cùng SB1.1.1 được chia
thành các hộp sáng(CB1.1.1) và các chi tiết thiết kế thủ tục được quy định.
1.2 Cơ cấu đặc tả hộp
Đặc điểm của Hộp đen
Một hộp đen đặc tả một mô tả trừu tượng, kích thích, phản ứng bằng cách
sử dụng các ký hiệu thể hiện trong hình 1.3. Hàm F được ứng dụng vào một chuỗi,
S*, đầu vào(kích thích), S, phản ứng biến chúng thành đầu ra, R. Đối với những
phần mềm cơ bản, F có thể là một chức năng toán học, nhưng nói chung S được
mô tả bằng ngôn ngữ tự nhiên (hoặc một ngôn ngữ đặc tả chính thức)
Nhiều khái niệm được giới thiệu cho những hệ thông hướng đối tượng
cũng thích hợp cho hộp đen. Sự trừu tượng hóa dữ liệu và các hoạt động mà các
thao tác trừu tượng được đóng gói bởi hộp đen. Giống như một hệ thống phấn lớp,
13
các đặc điểm phân cấp của hộp đen có thể được trưng bày, trong đó phân cấp sử
dụng hộp bậc thấp kế thừa những thuộc tính của hộp bậc cao trong cấu trúc cây
1.3 Đặc tả hộp đen
2.2 Đặc điểm của hộp trạng thái
Hộp trạng thái là “một sự khái quát đơn giản của một máy trạng thái”.
Nhắc lại về mô hình hóa hành vi và sơ đồ chuyển tiếp trạng thái trong chương 12.
Một trạng thái là kiểu dễ thấy của hành vi hệ thống. Như việc xử lý xuất hiện, hệ
thống trả lời các kích thích, sự kiện bằng cách thay đổi trạng thái hiện thời sang
trạng thái mới.
Khi quá trình chuyển đổi được thực hiện,một hành động có thể xảy ra. Hộp
trạng thái sử dụng dữ liệu đã được trừu tượng hóa để xác định sự chuyển tiếp tới
trạng thái tiếp theo và hoạt động phản ứng khác xuất hiện như một hệ quả của sự
chuyển trạng thái.
Hình 1.4, một hộp trạng thái kết hợp với một hộp đen.Việc kích thích, S,
mã được nhập vào tới hộp đen từ bên ngoài và một thiết lập các quy tắc bên trong,
T.Mills cung cấp một mô tả toán học của hàm, F, của hộp đen chứa bên trong hộp
trạng thái:trong đó g là một hàm thay thế gắn với trạng thái cụ thể, t. khi xem xét
chung các cặp thay thế trạng thái (t,g)xác định chức năng của hộp đen F.
g: S* T* R T
14
1.4 Đặc tả hộp trạng thái
2.3 Đặc điểm của Hộp sáng.
Đặc điểm của hộp sáng là liên kết chặt chẽ với các thủ tục thiết kế và lập
trình cấu trúc. Về bản chất, các hàm thay thế trong hộp trạng thái được thay thế bởi
các lập trình cấu trúc, lập trình mà thực hiện g
Ví dụ xem xét các hộp sáng trong hình 1.5,các hộp đen, g, trong hình 1.4
được thay thế bằng một trình tự cấu trúc kết hợp với một điều kiện. Những cái này,
đến lượt nó, có thể được phân chia thành các hộp cấp nhỏ hơn.
Điều quan trọng cần lưu ý là thủ tục đặc tả trong các hộp phân cấp rõ ràng
được chứng minh là đúng. Vấn đề này được nói trong phần kế tiếp.
3. Thiết kế phòng sạch
Phương pháp thiết kế trong công nghệ phòng sạch sử dụng nguyên lý của lập
trình có cấu trúc . Trong trường hợp này thì lập trình có cấu trúc được áp dụng một
cách nghiêm túc.
Phương pháp lập trình có cấu trúc có thể được sử dụng hiệu quả để tinh
chỉnh các chức năng, nhưng thiết kế dữ liệu về những gì? Dưới đây là một số khái
niệm cơ bản. Dữ liệu chương trình được đóng gói trừu tượng hóa bởi các chức
năng phụ. Những khái niêm về đóng gói dữ liệu ,thông tin ẩn và dữ liệu đánh máy
được dùng để thiết kế dữ liệu.
15
1.5 Nhận dạng hộp sáng
3.1 Thiết kế xử lý dữ liệu và kiểm thử
Mỗi hộp sáng đại diện cho cá thiết kế thủ tục (hàm phụ)để thực hiện quá
trình chuyển tiếp của hộp trạng thái. Với hộp sáng , cơ cấu của lập trình có cấu trúc
và xử lý dữ liệu theo bậc được minh họa trong hình 1.6
16
1.6 Thiết kế đặc tả chính xác
Chức năng xử lý cơ bản (được mô tả trong quá trình sàng lọc trước đó của đặc
tả)là xử lý bằng cách sử dụng “các chức năng mở rộng có bậc của toán học,cấu
trúc kết nối logic hợp lý (như :if-then-else)và vận hành, sự mở rộng các [is]được
kết thúc khi các chức năng đều có thể phát biểu trực tiếp bằng các ngôn ngư lập
trình để thực hiện.
Tại mỗi mức độ sàng lọc thì nhóm phòng sạch 2 thực hiện thẩm định một cách
đúng đắn . Để thực hiên điều này, một tập các điều kiên chích xác,đúng đắn được
gắn vào cấu trúc của chương trình. Nếu một hàm F được mở rộng thành các chuỗi
G, H thì điều kiên đầu vào để gắn với F là: G được đi sau bởi H tạo ra F?
Khi một hàm p là điều kiện của hình thức, nếu là C thì sau đó là Q,còn lại thì là R,
điều kiện đúng để tất cả đầu vào P là:
Khi nào C đúng thì không làm Q P, còn nếu C là sai thì không làm R P.
Khi hàm M được thiết kế như một vòng lặp thì điều kiện cho các đầu vào của M là:
Việc kết thúc phải được đảm bảo?
17
Khi C đúng thì làm N sau khi làm M, nếu C vẫn sai thì tiếp tục vòng lặp làm
M
Mỗi hộp sáng được thiết kế đến mức tiếp theo của chi tiết, những điều kiện chính
xác.này được áp dụng.
Điều quan trọng cần chú ý của việc sử dụng lập trình có cấu trúc là tiến hành một
số việc kiểm tra hàm chính xác. Thứ nhất là kiểm tra các chuỗi , hai là kiểm tra
hàm điều kiện if-then-else, thứ 3 là kiểm tra vòng lặp.
Để minh họa việc kiểm thử tính đúng đắn cho một thiết kế theo thủ tục, chúng ta
xét ví dụ đơn giản được giơi thiệu bởi Linger, Mills, và Witt. Mục đích là thiết kế
và kiểm thử một chương trình nhỏ tìm một phần số nguyên y, trong căn bậc hai
của số nguyên cho trước x. việc thiết kế thủ tục được biểu diễn trong hình 1.7
18
1.7 Thuật toán tính phần số nguyên của một căn bậc
Để kiểm thử sự đúng đắn của thiết kế này,ta phải xác định điều kiên nhập vào và
dữ liệu được xuất ra như trong hình 1.8
19
1.8. Thiết kế chính xác
3.2 Ưu điểm của thiết kế mã xác nhận
Tính chính xác của các sang lọc kiểm thử của thiết kế hộp là một ưu điểm rõ
rệt.Linger phát biểu như sau:
Nó làm giảm bớt việc xác minh cho một quá trình hữu hạn. Bằng cách sử
dụng các cấu trúc điều khiển lồng nhau được tổ chức trong hộp sáng.
Dẫn chứng:
20
Một tiên đề thay thế [LIN79] cho phép chúng ta dự định thay thế chức năng
với cơ cấu sàng lọc kiểm soát của chúng trong hệ thống phân cấp của dẫn chứng.
Ví dụ, dẫn chứng cho chức năng dự định f1 trong hình 1.9 đòi hỏi phải xác minh
rằng các thành phần của g1 hoạt động và g2 với chức năng dự định f2 có tác dụng
tương tự trên dữ liệu như f1. Lưu ý rằng f2 chất thay thế cho tất cả các chi tiết của
mình trong dẫn chứng. bằng chứng cho cơ cấu điều khiển. Trong thực tế, nó cho
phép các kỹ sư phần mềm thực hiện để chứng minh bất kỳ câu lệnh nào.
Không thể qua nhấn mạnh rằng việc giảm tác động tích cực đến quá trình
xác minh hữu hạn có chất lượng cao. Mặc dù tất cả, nhưng các chương trình đơn
giản nhất cũng có một số bản chất vô hạn của đường dẫn thực hiện, chúng có thể
được kiểm chứng trong một số hữu hạn các bước.
Nó cho phép các đội phòng sạch xác minh mỗi dòng thiết kế và mã. Các đội
này có thể thực hiện việc xác minh thông qua các nhóm phân tích và thảo luận trên
cơ sở của định lý đúng đắn, và họ có thể sản xuất bằng văn bản chứng minh khi
thêm sự tự tin trong một nhiệm vụ quan trọng được yêu cầu hệ thống.
21
Kết quả của nó dẫn tới một mức độ không đủ, gần bằng không. Trong một
bài đánh giá đội ngũ, mỗi điều kiện đúng đắn của mỗi cơ cấu kiểm soát được xác
minh lần lượt. Mỗi thành viên trong nhóm phải đồng ý rằng mỗi điều kiện là chính
xác, do đó, một lỗi có thể xảy ra khi một thành viên trong nhóm không đúng thẩm
tra một điều kiện. Các yêu cầu về thỏa thuận nhất trí dựa trên kết quả thẩm tra, cá
nhân trong phần mềm đó có ít hoặc không có các điều kiện đầy đủ trước khi thực
hiện kiểm tra.
Mỗi hệ thống phần mềm, không có vấn đề lớn như thế nào, có cấp đầu, rõ
ràng các thủ tục hộp gồm trình tự, xoay chiều, và các cấu trúc lặp. Mỗi chương
trình gồm một hệ thống hàm lớn với hàng ngàn dòng mã và mỗi hệ thống hàm con
của những người đã đầu trang riêng của mình dự định cấp chức năng và các thủ
tục. Vì vậy, các điều kiện đúng đắn cho các cấp cao cấu trúc điều khiển được xác
nhận theo cùng một cách như là những cấu trúc cấp thấp. Mã xác nhận ở cấp độ
cao có thể mất, và cũng có giá trị, thời gian hơn, nhưng nó không mang nhiều lý
thuyết.
Nó tạo mã tốt hơn so với các đơn vị kiểm tra . Đơn vị kiểm thử kiểm tra tác
động của đường đi, kiểm tra thực hiện chỉ được chọn ra khỏi đường dẫn nhiều nhất
có thể. Bởi căn cứ xác minh về lý thuyết chức năng, phương pháp phòng sạch có
thể xác minh tất cả có thể có hiệu lực trên tất cả các dữ liệu, bởi vì trong khi một
chương trình có thể có đường dẫn thực hiện rất nhiều, nó chỉ có một chức năng.
Mã xác nhận cũng hiệu quả hơn so với kiểm tra đơn vị. Hầu hết các điều kiện xác
minh có thể được kiểm tra trong một vài phút, nhưng các kiểm thử đơn vị mất thời
gian đáng kể để chuẩn bị, thực hiện và kiểm tra.
Điều quan trọng cần lưu ý là xác minh, kiểm thử thiết kế cuối cùng phải
được áp dụng cho mã nguồn của chính nó. Trong bối cảnh này, nó thường được gọi
là kiểm thử đúng đắn
4. Kiểm thử phòng sạch
Chiến lược của kiểm thử phòng sạch khác nhau về cơ bản so với phương
pháp thử nghiệm tiếp cận. Phương pháp này quy ước một tập hợp các trường hợp
kiểm tra để bóc tách thiết kế và phát hiện lỗi lập trình. Mục đích của thử nghiệm
phòng sạch là để xác nhận các yêu cầu phần mềm bằng các thống kê các trường
hợp sử dụng
22
4.1 Thống kê sử dụng thử nghiệm
Người sử dụng của một chương trình máy tính ít khi cần phải hiểu rõ các chi
tiết kỹ thuật của thiết kế. Những người sử dụng có thể điều khiển và sử dụng phần
mềm bằng các thông tin đầu vào và sự kiện hệ thống được tạo ra bởi người dùng.
Nhưng trong các hệ thống phức tạp, tập hợp các thông tin vào ra có thể cực kỳ lớn.
Những trường hợp sử dụng nhỏ nào sẽ thích ứng để điều khiển phần mềm? Đây là
câu hỏi đầu tiên được đưa ra bằng cách kiểm tra sử dụng thống kê.
Thống kê sử dụng thử nghiệm "Số lượng phần mềm thử nghiệm theo cách
người dùng có ý định sử dụng nó". Để thực hiện việc này, các đội kiểm tra phòng
sạch (còn được gọi là các đội cấp giấy chứng nhận) phải xác định một phân bố xác
suất sử dụng cho phần mềm. Các đặc điểm kỹ thuật (hộp đen) cho mỗi quá trình
của phần mềm là phân tích để xác định một tập hợp đầu vào hoặc các sự kiện tác
động đến phần mềm để thay đổi hành vi của nó. Dựa trên các cuộc phỏng vấn với
những người dùng tiềm năng, sau đó tạo ra các tình huống sử dụng, và một sự hiểu
biết chung của miền ứng dụng, một xác suất sử dụng được gán cho mỗi tập hợp
đầu vào và sự kiện.
Trường hợp thử nghiệm được tạo ra cho mỗi kích thích theo xác suất sử
dụng được phân bổ. Để minh họa, xem xét các hệ thống an ninh An Toàn Gia Đình
đã được thảo luận trước đó trong cuốn sách này. Phòng sạch công nghệ phần mềm
đang được sử dụng để phát triển một phần mềm increment rằng quản lý người
dùng tương tác với hệ thống bảo mật bàn phím. Năm kích thích đã được xác định
cho tăng này. Phân tích cho biết phần trăm xác suất phẩn bỏ của mỗi kích thích. Để
thực hiện lựa chọn các trường hợp kiểm tra dễ dàng hơn, các xác suất được ánh xạ
vào khoảng đánh số từ 1 đến 99 [LIN94] và minh họa trong bảng sau đây:
Chương trình kích thích
23
Để tạo một chuỗi các trường hợp kiểm tra việc sử dụng đó phù hợp với việc sử
dụng các xác suất phân phối, một loạt các số ngẫu nhiên giữa 1 và 99 được tạo ra.
Việc ngẫu nhiên số tương ứng với một khoảng thời gian trên sự phân bố xác suất
trước đó.
Do đó, trình tự các trường hợp kiểm tra việc sử dụng được xác định ngẫu nhiên,
nhưng tương ứng với thích hợp xác suất của kích thích sự xuất hiện. Ví dụ, giả sử
sau ngẫu nhiên chuỗi số được tạo ra:
13-94-22-24-45-56
81-19-31-69-45-9
38-21-52-84-86-4
Chọn kích thích thích hợp dựa trên khoảng phân phối được hiển thị trong bảng,
việc sử dụng các trường hợp sau đây có nguồn gốc:
AD-T-AD-AD-AD-ZS
T-AD-AD-AD-Q-AD-AD
AD-AD-ZS-T-T-AD
Nhóm kiểm tra thực hiện các trường hợp sử dụng, và xác minh hành vi của phần
mềm chống lại đặc điểm kỹ thuật cho hệ thống. Thời gian để thử nghiệm được ghi
lại để các khoảng thời gian có thể được xác định. Sử dụng khoảng thời gian, đội
cấp giấy chứng nhận có thể tính có nghĩa là thời gian - to-thất bại. Nếu một chuỗi
dài của thử nghiệm được tiến hành mà không có sự thất bại, MTTF là thấp và phần
mềm có thể giả định độ tin cậy cao.
4.2 Chứng nhận
Việc xác minh và kỹ thuật kiểm tra trước đó đã thảo luận trong chương này
dẫn đến các thành phần phần mềm (và toàn bộ số gia) có thể được chứng nhận.
Trong bối cảnh phần mềm cách tiếp cận kỹ thuật phòng sạch, cấp giấy chứng nhận
24
ngụ ý rằng tính tiện lợi (đo bằng thời gian có nghĩa là để thất bại, MTTF) có thể
được chỉ định cho mỗi thành phần.
Những tác động tiềm năng của các thành phần phần mềm chứng nhận vượt
xa một dự án phòng sạch đơn. Các thành phần phần mềm sử dụng lại có thể được
lưu giữ cùng với họ cách sử dụng kịch bản, chương trình kích thích, và phân bố
xác suất. Mỗi thành phần sẽ có một độ tin cậy chứng nhận theo các kịch bản sử
dụng và chế độ thử nghiệm mô tả.
Thông tin này là vô giá cho những người khác có ý định sử dụng các thành
phần.
Phương pháp xác nhận liên quan đến năm bước [WOH94]:
Làm thế nào để chúng ta xác nhận một phần mềm thành phần?
1. Cách sử dụng kịch bản phải được tạo ra.
2. Một cấu sử dụng được chỉ định.
3. Trường hợp thử nghiệm được tạo ra từ hồ sơ này.
4. Các xét nghiệm được thực hiện và dữ liệu không được ghi lại và phân
tích.
5. Độ tin cậy là tính toán và chứng nhận.
Các bước từ 1 đến 4 đã được thảo luận trong phần trước đó. Trong phần này,
chúng tôi tập trung về chứng nhận độ tin cậy.
Cấp giấy chứng nhận cho công nghệ phần mềm phòng sạch đòi hỏi sự sáng
tạo của ba các mô hình [POO93]:
Lấy mẫu mô hình.
Phần mềm kiểm tra thực hiện các trường hợp kiểm tra ngẫu nhiên và là m
chứng nhận nếu không có sự thất bại hoặc một số quy định của các lỗi xảy ra. Giá
trị của m có nguồn gốc toán học để đảm bảo độ tin cậy cần thiết là đạt được.
Component model. Một hệ thống gồm các thành phần n là để được chứng
nhận. Mô hình thành phần cho phép các nhà phân tích để xác định khả năng mà i
thành phần sẽ thất bại trước khi hoàn thành.
25