Program Development in Java: Abstraction, Specification, and Object-oriented Design

Program Development in Java: Abstraction, Specification, and Object-oriented Design
ISBN-10
0201657686
ISBN-13
9780201657685
Category
Computers / Software Development & Engineering / General
Pages
443
Language
English
Published
2001
Publisher
Addison-Wesley
Authors
B. Liskov, John Guttag

Description

Written by a world-renowned expert on 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 o≠ 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 specification
  • Tradeoffs between simplicity and performance
  • Techniques to help readers of code understand and reason about it, focusing on such properties as rep invariants and abstraction functions
  • Type hierarchy and its use in defining families of related data abstractions
  • Debugging, testing, and requirements analysis
  • Program design as a top-down, iterative process, and design patterns

The 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.

Other editions

Similar books

  • Object-oriented Modeling and Design
    By James Rumbaugh

    [ Harel - 88a ] D. Harel , H. Lachover , A. Naamad , A. Pnueli , M. Politi , R. Sherman , A. Shtul - Trauring . ... W. Reisig . Petri Nets : An Introduction . Berlin : Springer - Verlag , 1985 . [ Rumbaugh - 88 ] James Rumbaugh .

  • Computer Performance Evaluation: Modelling Techniques and Tools : 10th International Conference, Tools '98 Palma de Mallorca, Spain, September 14-18, 1998...
    By Ramon Puigjaner, Nunzio N. Savino, Bartomeu Serra

    Computer Performance Evaluation: Modelling Techniques and Tools : 10th International Conference, Tools '98 Palma de Mallorca, Spain, September 14-18, 1998...

  • Extreme Programming Examined
    By Giancarlo Succi, Michele Marchesi

    It is an indicator for possible rescheduling between the baselines . It also helps us sort the story cards , which are on a finer - grained level . Does What With Whom / What Who What For How to Check Paul Bahr Implementation ...

  • Time Bomb 2000: What the Year 2000 Computer Crisis Means to You!
    By Edward Yourdon, Jennifer Yourdon

    See The Limits to Growth by Donella H. Meadows , Dennis L. Meadows , Jorgen Randers , and William W. Behrens III ( 1972 ) . 3. Peter M. Senge , The Fifth Discipline : The Art and Practice of the Learning Organization ( Doubleday ...

  • 软件工程与建模项目教程
    By 黄金晶, 郝爱语主编, 杨欣欣副主编

    工期通常小时或示,但大型项目也可用周或月示工期的单。 5.制进计划项目进计划是软件开发过程中的重要计划。在制过程中,应该分虑各面的,并得者的认同,进是可行的。制进计划的常用有甘图、关键路和计划评审技术。甘图(Gantt chart)又横道图、状图, ...

  • Code Complete
    By Steve McConnell

    Mackinnon, Tim, Steve Freeman, and Philip Craig. 2000. “Endo-Testing: Unit Testing with Mock Objects,” eXtreme Programming and Flexible Processes Software Engineering-XP2000 Conference. Maguire, Steve. 1993. Writing Solid Code.

  • Software Engineering: A Practitioner's Approach
    By Roger S. Pressman

    For almost three decades, Roger Pressman's Software Engineering: A Practitioner's Approach has been the world's leading textbook in software engineering. The new seventh edition represents a major restructuring and...

  • Innovation Games: Creating Breakthrough Products Through Collaborative Play
    By Luke Hohmann

    Innovation Through Understandingsm The toughest part of innovation? Accurately predicting what customers want, need, and will pay for. Even if you ask them, they often can't explain what...

  • Code: The Hidden Language of Computer Hardware and Software
    By Charles Petzold

    What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means...

  • IronPython in Action
    By Michael J. Foord, Christian Muirhead

    In 2005, Microsoft quietly announced an initiative to bring dynamic languages to the .NET platform. The starting point for this project was a .NET implementation of Python, dubbed IronPython. After...