Google
 

 

up previous next contents
Up: 1. Day 1: Object-Oriented Previous: 1.10 Introduction to Extreme Next: 2. Day 2: The   Contents

Subsections

1.11 OO Summary

This section provides a summary of our Day One activities.

1.11.1 OO Concepts

Software concepts essential to object orientation:

  • Encapsulation - the grouping of related ideas into unit. Encapsulating attributes and behaviors.
  • Inheritance - a class can inherit its behavior from a superclass (parent class) that it extends.
  • Polymorphism - literally means ``many forms''.
  • Information/implementation hiding - the use of encapsulation to keep implementation details from being externally visible.
  • State retention - the set of values an object holds.
  • Oject identity - an object can be identified and treated as a distinct entity.
  • Message passing - the ability to send messages from one object to another.
  • Classes - the templates/blueprints from which objects are created.
  • Genericity - the construction of a class so that one or more of the classes it uses internally is supplied only at run time.

1.11.2 UML

The UML defines nine standard diagrams:

  1. Use Case
  2. Class
  3. Interaction
    1. Sequence
    2. Collaboration
  4. Package
  5. State
  6. Activity
  7. Deployment

Rational Unified Process

  • Inception - a discover phase, where an initial problem statement and functional requirements are created.
  • Elaboration - the product vision and architecture are defined, construction cycles are planned.
  • Construction - the software is taken from an architectural baseline to the point where it is ready to make the transition to the user community.
  • Transition - The software is turned into the hands of the user's community.

Agile Methods

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity-the art of maximizing the amount of work not done-is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Design Patterns

  • Repeating patterns - ``Her garden is like mine, except that in mine I use astilbe.''
  • Recurring solutions to design problems you see over and over.
  • A set of rules describing how to accomplish certain tasks in the realm of software development.
  • Made famous by the text ``Design Patterns'', by Gamma, Helm, et al.