Subsections
This section provides a summary of our Day One activities.
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.
The UML defines nine standard diagrams:
- Use Case
- Class
- Interaction
- Sequence
- Collaboration
- Package
- State
- Activity
- 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.
|
|