Can programming language influence correctness? anguages affect the way we think about problems The tools we use have a profound(and devious) influence on our thinking habits, and, therefore on our thinking abilities?
Formal design Reviews Associated with each of documentation phases Evaluate with respect to Customer requirements Prescribed standards and practices Contractual requirements
design: added inheritance, multiple inheritance, and polymorphism to ADT In process added complexity and increased some types of connectivity Lots of claimed advantages -- so far empirical evaluation is not supporting them well
Requirements specification: A structured document that sets out the services the system is expected to provide Should be precise so that it can act as a contract between the system procurer and software developer and thus needs to be understandable by procurers and developers
Too complex for complete analysis Separation into non-interacting subsystems distorts the results The most important properties are emergent Too organized for statistics Too much underlying structure that distorts the statistics Organized Complexity\(Weinberg) Copyright Nancy Leveson, Sept 1999