Page 22 -
P. 22
CONTENTS xxi
PART FIVE—ADVANCED TOPICS IN SOFTWARE ENGINEERING 671
CHAPTER 25 FORMAL METHODS 673
25.1 Basic Concepts 674
25.1.1 Deficiencies of Less Formal Approaches 675
25.1.2 Mathematics in Software Development 676
25.1.3 Formal Methods Concepts 677
25.2 Mathematical Preliminaries 682
25.2.1 Sets and Constructive Specification 683
25.2.2 Set Operators 684
25.2.3 Logic Operators 686
25.2.4 Sequences 686
25.3 Applying Mathematical Notation for Formal Specification 687
25.4 Formal Specification Languages 689
25.5 Using Z to Represent an Example Software Component 690
25.6 The Ten Commandments of Formal Methods 693
25.7 Formal Methods—The Road Ahead 694
25.8 Summary 695
REFERENCES 695
PROBLEMS AND POINTS TO PONDER 696
FURTHER READINGS AND INFORMATION SOURCES 697
CHAPTER 26 CLEANROOM SOFTWARE ENGINEERING 699
26.1 The Cleanroom Approach 700
26.1.1 The Cleanroom Strategy 701
26.1.2 What Makes Cleanroom Different? 703
26.2 Functional Specification 703
26.2.1 Black-Box Specification 705
26.2.2 State-Box Specification 705
26.2.3 Clear-Box Specification 706
26.3 Cleanroom Design 706
26.3.1 Design Refinement and Verification 707
26.3.2 Advantages of Design Verification 710
26.4 Cleanroom Testing 712
26.4.1 Statistical Use Testing 712
26.4.2 Certification 714
26.5 Summary 714
REFERENCES 715
PROBLEMS AND POINTS TO PONDER 716
FURTHER READINGS AND INFORMATION SOURCES 717
CHAPTER 27 COMPONENT-BASED SOFTWARE ENGINEERING 721
27.1 Engineering of Component-Based Systems 722
27.2 The CBSE Process 724
27.3 Domain Engineering 725
27.3.1 The Domain Analysis Process 726
27.3.2 Characterization Functions 727
27.3.3 Structural Modeling and Structure Points 728
27.4 Component-Based Development 730
27.4.1 Component Qualification, Adaptation, and
Composition 730