دانلود کتاب Program Development in Java: Abstraction, Specification, and Object-Oriented Design
by John Guttag & Barbara Liskov [John Guttag]
|
عنوان فارسی: برنامه توسعه در جاوا: انتزاع, مشخصات و شی گرا طراحی |
دانلود کتاب
جزییات کتاب
programming methodology, and the winner of the 2008 Turing
Award, this book shows how to build production-quality
programs--programs that are reliable, easy to maintain, and quick
to modify. Its emphasis is on modular program construction: how to
get the modules right and how to organize a program as a collection
of modules. The book presents a methodology effective for either an
individual programmer, who may be writing a small program or a
single module in a larger one; or a software engineer, who may be
part of a team developing a complex program comprised of many
modules. Both audiences will acquire a solid foundation for
object-oriented program design and component-based software
development from this methodology.Because each module in a program corresponds
to an abstraction, such as a collection of documents or a routine
to search the collection for documents of interest, the book first
explains the kinds of abstractions most useful to programmers:
procedures; iteration abstractions; and, most critically, data
abstractions. Indeed, the author treats data abstraction as the
central paradigm in object-oriented program design and
implementation. The author also shows, with numerous examples, how
to develop informal specifications that define these
abstractions--specifications that describe what the modules do--and
then discusses how to implement the modules so that they do what
they are supposed to do with acceptable performance.Other topics discussed include:Encapsulation and the need for an implementation to provide the
behavior defined by the specificationTradeoffs between simplicity and performanceTechniques to help readers of code understand and reason about
it, focusing on such properties as rep invariants and abstraction
functionsType hierarchy and its use in defining families of related data
abstractionsDebugging, testing, and requirements analysisProgram design as a top-down, iterative process, and design
patternsThe Java programming language is used for
the book's examples. However, the techniques presented are language
independent, and an introduction to key Java concepts is included
for programmers who may not be familiar with the language.