Capers Jones wrote the book The Technical and Social History of Software Engineering in which he provides an overview of the evolution of information technology and software development. InfoQ interviewed Capers about advancements and events in software engineering and the effects that they have had on our society.
Writing Java software that correctly and safely makes use of concurrency requires careful thought. Software that incorrectly accounts for concurrency can contain intermittent defects that elude even the most rigorous testing regimes. Static analysis tools can analyze source code or compiled bytecode to discover latent bugs hidden within code, long before it is executed.
Static analysis has a broad set of capabilities to offer the .NET world. It can enforce pattern-based rules, whether they're based on proven standards or custom patterns that help you identify application-specific defects. Nevertheless, some defects cannot be detected by this analysis technique. The flow analysis feature of dotTEST does exactly that.
Static code analysis gives developers ability to review their code to uncover security vulnerabilities. InfoQ spoke with Brian Chess about static analysis and how it compares with other techniques.