Toward Zero-Defect Programming
暫譯: 邁向零缺陷程式設計
Allan M. Stavely
- 出版商: Addison Wesley
- 出版日期: 1998-09-24
- 售價: $1,260
- 貴賓價: 9.5 折 $1,197
- 語言: 英文
- 頁數: 256
- 裝訂: Paperback
- ISBN: 0201385953
- ISBN-13: 9780201385953
已絕版
買這商品的人也買了...
-
$1,205TCP/IP Illustrated, Volume 1: The Protocols (Hardcover)
-
$880$836 -
$900$882 -
$2,390$2,271 -
$1,270$1,207 -
$1,900$1,805 -
$2,050$1,948 -
$1,360$1,292 -
$2,390$2,271 -
$1,620$1,539 -
$399Building Scalable Cisco Networks
-
$1,590$1,511 -
$1,320Programming the Windows 32 API and UNIX System Services
-
$1,540$1,463 -
$2,390$2,271 -
$1,880$1,786 -
$1,740$1,653 -
$1,120$1,098 -
$1,029Operating System Concepts, 6/e (Windows XP Update)
-
$820$199 -
$960$912 -
$980$960 -
$1,650$1,568 -
$1,127Computer Networks, 4/e
-
$1,100$1,045
相關主題
商品描述
Description
This book describes current methods for writing (nearly) bug-free programs. These methods are based on practices developed at IBM and elsewhere under the name Cleanroom Software Engineering. In a concise presentation, the author shows how to apply these methods in three key areas of software development: specification, verification, and testing.
Requiring formal specifications forces students to program more simply and more clearly, eliminating many defects as a consequence. Performing semiformal verification as part of a team process uncovers additional defects. Testing the program, to compensate for human fallibility in the preceding steps, catches (nearly) all remaining bugs. The author departs somewhat from IBM Cleanroom methods to simplify the formalism that students must learn, and to make specification and verification readily accessible to anyone who can write well-structured programs. Although the book's examples are written in several programming languages, the largest number is in C.
Table Of Contents
(Chapters 2 - 11 contain Exercises and all chapters conclude with Notes.)
1. Introduction.
The Cleanroom Method.
About This Book.
2. The Functions Computed by Programs.
Representation of Functions: Concurrent Assignments.
Conditional Concurrent Assignments.
Local Variables.
Specification Using Intended Functions.
Other Notation Conventions.
Writing Intended Functions.
3. Verification.
Placement of Intended Functions.
The Substitution Principle.
Sequences of Statements.
Trace Tables.
If-statements.
Conditional Trace Tables.
4. Verification of Iterations.
Proving Termination.
Initialized Loops.
Writing Intended Functions for Loops in Isolation.
Other Forms of Indefinite Iteration.
5. Programming with Intended Functions.
A C Program: Counting Letters and Digits.
An Icon Routine: Uncompressing a String.
A Study in Abstraction: The Registrar's Program.
Keeping Things Simple.
6. Verification Reviews.
Verification Reviews in the Cleanroom Process.
How Verification Reviews Are Done.
Example: Another Routine from the Registrar's Programs.
Example: A Routine from a Test-data Generator.
Discussion of the Examples.
7. Definite Iteration.
Sequence Variables.
Other Sequence Expressions.
Ranges of Integers.
Other Data Structures.
The Iteration Mechanisms.
Sets and Sequences in Program Design.
8. Data Abstraction and Object-oriented Programs.
The Abstraction Function.
Data Invariants.
Object-oriented Programs.
9. Recursion and Functional Languages.
Termination.
Mutual Recursion.
Functional Languages.
10. Testing.
Usage-based Testing.
Test-data Generators.
Other Forms of Testing.
11. Incremental Development.
Example: Rehearsal Scheduling.
12. Where Do We Go From Here?
Other Formal Methods.
What Have We Accomplished?
Prospects for the Future.
Hints for Selected Exercises.
References.
Index. 0201385953T04062001

商品描述(中文翻譯)
描述
本書描述了當前撰寫(幾乎)無錯誤程式的方法。這些方法基於在 IBM 及其他地方發展的實踐,稱為 Cleanroom 軟體工程。作者以簡潔的方式展示了如何在軟體開發的三個關鍵領域應用這些方法:規範、驗證和測試。要求正式的規範迫使學生以更簡單和更清晰的方式編程,從而消除許多缺陷。作為團隊過程的一部分進行半正式的驗證可以發現額外的缺陷。測試程式以彌補前面步驟中的人為錯誤,幾乎可以捕捉到所有剩餘的錯誤。作者在某些方面偏離了 IBM Cleanroom 方法,以簡化學生必須學習的形式主義,並使規範和驗證對任何能夠編寫良好結構程式的人都變得容易接觸。雖然本書的範例使用了幾種程式語言,但最多的範例是用 C 語言編寫的。
目錄
(第二至十一章包含練習,所有章節結尾都有註解。)
1. 介紹。
問題:錯誤。
Cleanroom 方法。
關於本書。
2. 程式計算的函數。
計算:狀態和函數。
函數的表示:並行賦值。
條件並行賦值。
局部變數。
使用預期函數的規範。
其他符號約定。
撰寫預期函數。
3. 驗證。
結構化控制結構。
預期函數的放置。
取代原則。
語句序列。
追蹤表。
If 語句。
條件追蹤表。
4. 迭代的驗證。
While 語句。
證明終止。
初始化迴圈。
為孤立的迴圈撰寫預期函數。
其他形式的無限迭代。
5. 使用預期函數的編程。
一個 Pascal 程式:最長行的長度。
一個 C 程式:計算字母和數字。
一個 Icon 程式:解壓縮字串。
抽象研究:登記處的程式。
保持簡單。
6. 驗證回顧。
為什麼需要驗證回顧。
Cleanroom 過程中的驗證回顧。
如何進行驗證回顧。
範例:登記處程式中的另一個例程。
範例:來自測試數據生成器的例程。
範例的討論。
7. 確定性迭代。
對序列的確定性迭代。
序列變數。
其他序列表達式。
整數範圍。
其他數據結構。
迭代機制。
程式設計中的集合和序列。
8. 數據抽象和面向對象的程式。
數據抽象和封裝。
抽象函數。
數據不變式。
面向對象的程式。
9. 遞迴和函數語言。
遞迴例程。
終止。
互遞迴。
函數語言。
10. 測試。
測試的角色。
基於使用的測試。
測試數據生成器。
其他形式的測試。
11. 增量開發。
逐步開發程式。
範例:排練時間表。
12. 接下來我們該怎麼做?
Cleanroom 過程的其他部分。
其他正式方法。
我們取得了什麼成就?
未來的前景。
選定練習的提示。
參考文獻。
索引。
0201385953T04062001