May 2008 Entries
System Architecture
- When a specific system lets say (Net Banking for Bank) undergoes its design process, as a result System Architecture can be derived.
- SA defines functions for various components, their interfaces, interactions and constraints too.
- SA specification acts as an input criteria for next levels including application design and implementations.
- SA consolidates the simple models which are like abstractions over the dynamic complex sub-systems/systems.
Communication diagrams, a kind of interaction diagram, emphasize the data links between the various participants in the interaction.
Instead of drawing each participant as a lifeline and showing the sequence of messages by vertical direction as the sequence diagrams does, the communication diagram allows free placement of participants, allows you to draw links to show how the participants connect, and use numbering to show the sequence of messages. ........
UML has following interaction diagrams :
- Sequence Diagram
- Communication Diagram (formerly Collaboration Diagram)
- Interaction Overview Diagram
for this post lets start with Sequence Diagram ....
COR
Objective
To provide the appropriate handler present in the chain of handlers which can handle the incoming request.
Advantages
Loose coupling. This is based on "Data-Driven" concept.
Distribution of responsibilities
I have been reading the Matrin Fowler's book on Applying UML & Patterns for quite a long time now. I just thought might want to share some of the experience from the book with you.
Today's post is gonna talk about some of the design principles which are considered as base for any object oriented design.
This will be the first part of the multi-part series of learning GRASP principles.
Read more
Basically it deals with the problems related to "fat" interfaces. "Fat" interfaces are those which has methods which can be divided into two or more groups. In other words they are not cohesive in nature. We should avoid such interfaces because it creates dependencies between different components and clients even if they dont require them.
Read More for examples and details
An aggregate object should give a way to access its elements without exposing its internal structure. There may be different ways to iterate through different elements. It is not advisable to flood your aggregate object with so many iterating mechanisms.
"Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation" .... Read more
Sometimes it's necessary to record the internal state of an object. This is required when implementing checkpoints and undo mechanisms that let users back out of tentative operations or recover from errors. You must save state information somewhere so that you can restore objects to their previous states.
Memento lets u do this , read more for examples
This pattern is also called as Virtual Constructor
Frameworks use abstract classes to define and maintain relationships between objects. A framework is often responsible for creating these objects as well.
Since Framework in not aware of applications for which it will be used, hence it is not aware of the sub classes of abstract classes it provides and therefore it delegates the responsibility of creating the instances of application specific class to the sub classes.....
Observer Pattern define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Dependent Objects are termed as Observers.
New Observers can easily be hooked in an existing list of Observers.
This article explains Observer pattern with example in Java. Read more for details