By Barbara Liskov, John Guttag
Written by way of a world-renowned professional on programming method, and the winner of the 2008 Turing Award, this e-book indicates the right way to construct production-quality programs--programs which are trustworthy, effortless to keep up, and quickly to change. Its emphasis is on modular software development: how one can get the modules correct and the way to prepare a application as a set of modules. The booklet offers a technique powerful for both someone programmer, who could be writing a small software or a unmarried module in a bigger one; or a software program engineer, who should be a part of a crew constructing a posh software constructed from many modules. either audiences will collect a high-quality starting place for object-oriented software layout and component-based software program improvement from this system.
Because each one module in a application corresponds to an abstraction, akin to a set of records or a regimen to look the gathering for files of curiosity, the ebook first explains the types of abstractions most respected to programmers: strategies; new release abstractions; and, so much seriously, facts abstractions. certainly, the writer treats information abstraction because the critical paradigm in object-oriented application layout and implementation. the writer additionally indicates, with various examples, find out how to increase casual standards that outline those abstractions--specifications that describe what the modules do--and then discusses tips on how to enforce the modules in order that they do what they're alleged to do with appropriate functionality.
Other themes mentioned contain:
- Encapsulation and the necessity for an implementation to supply the habit outlined by way of the specification
- Tradeoffs among simplicity and function
- Techniques to aid readers of code comprehend and cause approximately it, concentrating on such homes as rep invariants and abstraction features
- Type hierarchy and its use in defining households of similar info abstractions
- Debugging, trying out, and necessities research
- Program layout as a top-down, iterative technique, and layout styles
The Java programming language is used for the book's examples. even though, the suggestions offered are language self sustaining, and an advent to key Java thoughts is incorporated for programmers who will not be conversant in the language.