Personal tools
You are here: Home TPP Object Oriented Analysis and Design Bibliography - T++ Object Oriented Analysis and Design Course
Document Actions

Bibliography - T++ Object Oriented Analysis and Design Course

last modified 2006-05-01 10:08 PM

Required Text

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd Edition
by Craig Larman

Published: 2004, Prentice Hall

An overview of key ideas in object-oriented analysis and design, including how to apply patterns and when to use UML.

From the Publisher

The book shows newcomers to OOA/D how to "think in objects." It does so by presenting several iterations of a two case studies, incrementally introducing the requirements and OOA/D activities, principles, and patterns that are most critical to success. It introduces the most frequently used UML diagramming notation, while emphasizing that OOA/D is much more than knowing UML notation. All case study iterations and skills are presented in the context of an "agile" version of the Unified Process -- a popular, modern iterative approach to software development. Throughout, Larman presents the topics in a fashion designed for learning and comprehension.

Among the topics introduced in Applying UML and Patterns are:

  • requirements and use cases,
  • domain object modeling,
  • core UML,
  • designing objects with responsibilities,
  • "Gang of Four" and other design patterns,
  • mapping designs to code (using Java as an example),
  • layered architectures,
  • architectural analysis,
  • package design,
  • iterative development, and
  • the Unified Process.

Core Curriculum Texts

UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition
by Martin Fowler

Published: 2003, Addison-Wesley

A good and simple introduction to the Unified Modeling Language (UML). This latest edition covers the new UML version 2.0.

From the Publisher

More than 300,000 developers have benefited from past editions of UML Distilled. This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML.

This book describes all the major UML diagram types, what they're used for, and the basic notation involved in creating and deciphering them. These diagrams include class, sequence, object, package, deployment, use case, state machine, activity, communication, composite structure, component, interaction overview, and timing diagrams. The examples are clear and the explanations cut to the fundamental design logic.

Design Patterns Explained: A New Perspective on Object-Oriented Design (Software Pattern Series), Second Edition
by Alan Shalloway and James Trott

Published: 2004, Addison-Wesley

Patterns for the rest of us...

From the Publisher

Design Patterns Explained: A New Perspective on Object-Oriented Design draws together the principles of object-oriented programming with the power of design patterns to create an environment for robust and reliable software development. Packed with practical and applicable examples, this book teaches you to solve common programming problems with patterns—and explains the advantages of patterns for modern software design.

Beginning with a complete overview of the fundamentals of patterns, Design Patterns Explained stresses the importance of analysis and design. The authors clearly demonstrate how patterns can facilitate the overall development process. Throughout the book, key object-oriented design principles are explained, along with the concepts and benefits behind specific patterns. With illustrative examples in C++ and Java, the book demystifies the "whys," "why nots," and "hows" of patterns and explains pattern implementation.

Writing Effective Use Cases
by Alistair Cockburn

Published: 2000, Addison-Wesley

The most comprehensive introduction to writing effective use cases. Another great book by Cockburn.

From the Publisher

Writing use cases as a means of capturing the behavioral requirements of software systems and business processes is a practice that is quickly gaining popularity. Use cases provide a beneficial means of project planning because they clearly show how people will ultimately use the system being designed. On the surface, use cases appear to be a straightforward and simple concept. Faced with the task of writing a set of use cases, however, practitioners must ask: "How exactly am I supposed to write use cases?" Because use cases are essentially prose essays, this question is not easily answered, and as a result, the task can become formidable.

In Writing Effective Use Cases, object technology expert Alistair Cockburn presents an up-to-date, practical guide to use case writing. The author borrows from his extensive experience in this realm, and expands on the classic treatments of use cases to provide software developers with a "nuts-and-bolts" tutorial for writing use cases. The book thoroughly covers introductory, intermediate, and advanced concepts, and is, therefore, appropriate for all knowledge levels. Illustrative writing examples of both good and bad use cases reinforce the author's instructions. In addition, the book contains helpful learning exercises—with answers—to illuminate the most important points.

Learning Python
by Mark Lutz

Published: 2003: O'Reilly

A good introduction to object-oriented Python programming

From the Publisher

This new edition of Learning Python puts you in the hands of Mark Lutz and David Ascher, two notable Python experts and trainers whose friendly, well-structured prose has guided many programmers to proficiency in the language. Learning Python, Second Edition offers programmers a comprehensive learning tool for Python and object-oriented programming. Thoroughly updated for the numerous language changes since the release of the first edition in 1999, this book introduces the basic elements of the latest release of Python 2.3 and covers new features, such as list comprehensions, nested scopes, and iterators/generators.

Beyond language features, this edition of Learning Python also includes new context for less-experienced programmers, including fresh overviews of object-oriented programming and dynamic typing, new discussions of program launch and configuration options, new coverage of documentation sources, and more. There are also new use cases throughout to make the application of language features more concrete. Learning Python starts by giving programmers all the information they'll need to understand and construct programs in the Python language, including types, operators, statements, classes, functions, modules, and exceptions. The authors then present more advanced material, showing how Python performs common tasks by offering real applications and the libraries available for those applications. There are exercises throughout the book to test your new skills. Learning Python, Second Edition is a self-paced book that allows readers to focus on the core Python language in depth. As you work through the book, you'll gain a deep and complete understanding of the Python language that will help you to develop larger applications on your own. This book is for anyone who doesn't want to stop at just learning Python, but wants to master it as well.

Other Useful Books

Agile Software Development
by Alistair Cockburn

Published: 2001, Addison-Wesley

Core concepts and ideas behind the Agile Manifesto. The best introduction to Agile Methodologies.

From the Publisher

Written for developers and project managers, Agile Software Development compares software development to a game. Team members play the game knowing that the ultimate goal is to win—always remembering what they have learned along the way, and always keeping in mind that they will never play the same way twice. Players must keep an open mind to different methodologies, and focus on the goal of developing quality software in a short cycle time.

Based on a decade's work and research, and interviews with software project teams, this book presents sound advice for bringing difficult projects to successful conclusion with a minimum of stress.

Agile and Iterative Development: A Manager's Guide
by Craig Larman

Published: 2003, Addison-Wesley

Many extremely practical tips about Agile project management. Includes hard information on why SDLC doesn't work.

From the Publisher

This is the definitive guide for managers and students to agile and iterative development methods: what they are, how they work, how to implement them--and why you should.

Using statistically significant research and large-scale case studies, noted methods expert Craig Larman presents the most convincing case ever made for iterative development. Larman offers a concise, information-packed summary of the key ideas that drive all agile and iterative processes, with the details of four noteworthy iterative methods: Scrum, XP, RUP, and Evo.

The Rational Unified Process: An Introduction
by Philippe Kruchten

Published: 2003, Addison-Wesley

The latest edition of this book, which is a clear and concise introduction to the RUP method by the lead architect at Rational. Probably the only book you would or should ever read on the subject.

From the Publisher

This concise book offers a quick introduction to the concepts, structure, content, and motivation of the Rational Unified Process. This revolutionary software development process provides a disciplined approach to assigning, managing, and completing tasks within a software development organization and is the first development process to exploit the full capabilities of the industry-standard Unified Modeling Language. The Rational Unified Process is unique in that it captures many of the proven best practices in modern software development and presents them in a form that can be tailored to a wide range of projects and organizations. In this book, you will discover: what the Rational Unified Process is - and what it is not; the concepts used in the Rational Unified Process, as well as its structure; the best practices that have been synthesized into this process; and how this process can provide the guidance you need for your specific project responsibilities.

Extreme Programming Explained: Embrace Change
by Kent Beck

Published: 1999, Addison-Wesley

An introduction to the best known Agile method by one of its creators.

From the Publisher

Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: