Cyber-physical systems closely combine and coordinate subsystems consisting of both computational and physical elements. Such systems have become indispensable in the fields of aerospace, automotive and the automation industries, as well as in consumer appliances. Safety, security and reliability ar
Highly Dependable Software
✍ Scribed by Marvin Zelkowitz Ph.D. MS BS.
- Publisher
- Academic Press
- Year
- 2003
- Tongue
- English
- Leaves
- 373
- Series
- Advances in Computers 58
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
Since 1960, Advances in Computers has chronicled the constantly shifting theories and methods of Information Technology which greatly shapes our lives today. Highly Dependable Software is the 58th volume in this Series. The seven chapters describe various approaches towards dependability: software development measurability, transformation oriented programming, Bounded Model Checking, GUI testing, history and lessons from software inspections, impact and problems related to errors in software, the evolution of the various security policies. This book would be an invaluable addition to any university course in computer technology, and an excellent reference tool for industrial practitioners. * Includes in-depth surveys and tutorials on advances in Computer Technology. Features the work of well-known authors and researchers in the field. Provides a broad overview of important developments.* Contains extensive bibliographies.
✦ Table of Contents
Software Development Productivity......Page 11
Introduction......Page 12
Lines-of-code......Page 13
Function Points......Page 16
Effort Measurement......Page 18
What Factors Can Have an Impact on Productivity?......Page 19
How to Identify Influential Factors......Page 25
Data Validation......Page 26
Variable and Model Selection......Page 27
Why Do It?......Page 28
Two-Dimensional Graphs......Page 29
Why Do It?......Page 30
Tables......Page 31
Building the Multi-Variable Model......Page 32
Numerical Variable Checks......Page 33
Testing the Residuals......Page 34
Case Study......Page 35
Data Validation......Page 41
Variable and Model Selection......Page 42
Analysis Results......Page 43
Final Model......Page 46
Interpreting the Equation......Page 47
Management Implications......Page 49
Planning for Data Collection......Page 50
Benchmarking and Data Comparability......Page 51
Benchmarking Data Availability......Page 52
Conclusions......Page 53
References......Page 54
Transformation-Oriented Programming: A Development Methodology for High Assurance Software......Page 57
Background......Page 59
High-Consequence Systems......Page 60
Building Software is Deceptively Hard......Page 61
Software Development Risks......Page 63
Approaches to Developing High-Assurance Systems......Page 64
Object-Oriented Programming......Page 65
Aspect-Oriented Programming......Page 66
Formal `Methods''......Page 67<br>Formal Specifications......Page 68<br>Theorem Proving......Page 69<br>Model Checking......Page 70<br>Synthesis......Page 71<br>Transformation-Oriented Programming......Page 72<br>Example......Page 74<br>Example......Page 76<br>TOP as a Program Development Method......Page 78<br>Contrasting TOP with Component-Based Software Development......Page 79<br>History of TOP......Page 81<br>Syntax and Semantics of Transformation Rules......Page 82<br>Example 3......Page 83<br>HATS......Page 84<br>Example 4......Page 86<br>Dynamic Transformations......Page 88<br>Embedded Systems......Page 90<br>The SSP Project......Page 92<br>The SSP-classloader......Page 93<br>The SSP-runtime......Page 94<br>Constant Pool Resolution......Page 96<br>Removal of Indirection......Page 98<br>Relevant Constant Pool Construction......Page 108<br>Offset Indexing......Page 109<br>Future Work: Verification......Page 112<br>Design Verification: Eval and BCE......Page 113<br>Basis for Verifying the Partial Classloader Design......Page 117<br>Summary and Conclusion......Page 118<br>A Small Java Program......Page 119<br>Java Classfile......Page 121<br>References......Page 123<br>Bounded Model Checking......Page 127<br>Introduction......Page 128<br>Model Checking......Page 131<br>Bounded Model Checking......Page 136<br>Reducing Bounded Model Checking to SAT......Page 139<br>The Completeness Threshold......Page 144<br>Liveness......Page 146<br>Induction......Page 147<br>Propositional SAT Solvers......Page 148<br>Experiments......Page 151<br>Related Work and Conclusions......Page 154<br>References......Page 156<br>Advances in GUI Testing......Page 159<br>Introduction......Page 160<br>What is GUI Testing?......Page 161<br>Usability Evaluation......Page 162<br>Types of GUI Testing......Page 163<br>GUI Testing Steps......Page 165<br>Record/Playback Tools......Page 167<br>Challenges......Page 169<br>Finite State Machines......Page 172<br>Variable Finite State Machines......Page 174<br>Complete Interaction Sequences (CIS)......Page 176<br>Behavioral Models......Page 178<br>Statistical Methods......Page 180<br>Hierarchical Techniques......Page 182<br>AI Plan Generation......Page 183<br>Plan Generation as a Search Problem......Page 187<br>Creating the GUI Model......Page 188<br>Modeling Planning Operators......Page 195<br>Generating Plans......Page 198<br>Algorithm for Generating Test Cases......Page 202<br>Discussion......Page 204<br>Summary......Page 205<br>References......Page 207<br>Software Inspections......Page 212<br>Introduction......Page 213<br>The Beginnings of the Inspection Process......Page 214<br>Variations on the Original Process......Page 216<br>N-Fold Inspections......Page 217<br>To Meet or not to Meet......Page 218<br>Humphrey's Inspection Process......Page 219<br>Reading Techniques......Page 220<br>Checklist......Page 221<br>Step-wise Abstraction......Page 222<br>Scenario-Based Reading......Page 223<br>Perspective-Based Reading......Page 224<br>Summary......Page 226<br>Object-Oriented Problems and Pitfalls for Inspection......Page 227<br>Current State of Object-Oriented Inspection......Page 229<br>Investigating the Inspection of Object-Oriented Code......Page 231<br>Inadequacy of Current Inspection Approaches......Page 232<br>Techniques for Object-Oriented Code Inspection......Page 233<br>Advice on Practical Object-Oriented Code Inspection......Page 235<br>Introduction......Page 236<br>Document Handling......Page 237<br>Reading Support......Page 238<br>Current Tool Support......Page 239<br>Tool Summary......Page 241<br>Conclusions......Page 242<br>References......Page 243<br>Software Fault Tolerance Forestalls Crashes: To Err Is Human; To Forgive Is Fault Tolerant......Page 248<br>Fault Tolerant Computers......Page 249<br>Why Software Is Different from Hardware......Page 250<br>Software Errors (Bugs)......Page 253<br>Application Concerns......Page 255<br>Origins of Software Engineering......Page 256<br>Fault Tolerance Is Related to Reliability Theory......Page 257<br>Effectiveness Extension of Reliability Model......Page 259<br>Complexity......Page 260<br>Trustworthy Software Is Reliable......Page 261<br>Software Stability Is Key to Simplicity......Page 262<br>Buffer Overflows......Page 263<br>Small and Bounded Time Lags Are Critical......Page 266<br>Case Study: TCP Timer for Resend......Page 267<br>Refactoring to Simpler Software......Page 270<br>Reuseas is'......Page 271
Boundary and Self-Checking Software......Page 272
First Constraint: Control-free Interfaces.......Page 274
Second Constraint: Software Error Recovery.......Page 275
Third Constraint: Recovery Blocks.......Page 276
Code Reviews are needed to determine:......Page 277
Code Review.......Page 278
Code Extract:......Page 279
In Summary.......Page 280
Program Execution Time-Software Rejuvenation......Page 281
Effort Estimates......Page 283
Effectiveness of Programming Staff......Page 284
Case study: the Mars Explorer......Page 286
Some Solutions.......Page 287
Object-Oriented Design Improves Effectiveness......Page 288
Corroborating Object Experiences......Page 289
Objects in Large-Scale Projects......Page 290
Summary......Page 292
References......Page 294
Advances in the Provision of System and Software Security- Thirty Years of Progress......Page 296
Introduction......Page 297
Overview......Page 298
Background Concepts......Page 301
Introduction......Page 304
The Defense Science Board Report......Page 306
The Reference Monitor......Page 310
More Architectural Principles......Page 312
A Government Infrastructure Is Built......Page 314
Birth of the National Computer Security Center (NCSC)......Page 315
Experience with the Orange Book......Page 319
The Common Criteria (CC)......Page 320
Other Notable Legislation......Page 325
Worms, Viruses and other Malevolent Code......Page 330
Summary and Concluding Comment......Page 335
Overview and Awareness......Page 336
Products and Procedures......Page 337
The Art of Security Engineering......Page 341
Conclusions......Page 344
Acknowledgements......Page 347
References......Page 348
Author Index......Page 350
Contents of Volumes in This Series......Page 368
✦ Subjects
Информатика и вычислительная техника;Периодика по информатике и вычислительной технике;Advances in Computer;
📜 SIMILAR VOLUMES
Title Page; Preface; Contents; Probabilistic Model Checking; SMT Solvers: Foundations and Applications; Formal Models for Analyzing Security Protocols: Some Lecture Notes; Parameterized Verification of Crowds of Anonymous Processes; Synthesis of Reactive Systems; Between Testing and Verification: Dy
It's not easy to build, but as this book demonstrates, it's well worth the effort. Highly useable software is highly successful software-and everyone wins.Inside, an accomplished programmer who has made usability his business systematically explores the world of programming showing you how every asp
Learn what usability really is, why to strive for it, and how to achieve it. 'Highly useable' software is easy to use. It does what you expect it to. And it does it well. It's not easy to build but as this book demonstrates, it's well worth the effort. Highly useable software is highly successful so