Software ArchitectureModule Views and Styles       Inam Soomro      November 2011
Agenda•   GENERALIZATION STYLE     – ELEMENTS, RELATION AND PROPERTIES     – CONSTRAINSTS     – WHY GENERALISATION STYLE  ...
GENERALIZATION STYLE• Abstraction of common properties and  attributes• Employs “IS A“ relationship• Parent module is a mo...
An Example of generalisation Style
Elements, Relation and Properties• Element  – Module• Relation  – Generalisation• Constraints  – A module can have multipl...
Why Generalisation•   Expressing inheritance in OOD•   Evolution and Extension•   Support reuse•   Capturing commonalities
Notation for Generalisation Style• UML
Layered Style•   Reflects division of software into smaller units•   Offers a cohesive set of services•   unidirectional a...
Example
What do u think of this design??
Elements, Relation and Properties• Elements        – Layer• Relation        – Allowed to use• Constraints        – Every p...
Why Layered Style•   Modifiability and Portability•   Managing complexity•   Reuse•   Seperation of concerns
Notation of Layered Style• Stack
Segmented Layers
Rings
Layers with a Sidecar
UMLSegmented Layers
Example of Java EE Application
Aspects Style• Aspects are modular units that complement  objects to modularize the cross cutting  concerns
ELEMENTS, RELATION AND PROPERTIES• Elements  – Aspect modules• Relation  – Crosscuts• Properties  – Pointcut  – Advice• Co...
Why Aspects Style• provide systematic means to modularize by  allowing separation of crosscutting concerns• promotes modul...
Notation• UML
Before and after Aspect Orientation
Problems with Traditional Object         Orientation
After Aspect Orietation
Aspect Oriented Programming• Facililitates in implementation of crosscutting  concerns• AspectJ , Spring AOP, Jboss AOP, A...
The chapter is taken from the bookDocumenting Software Architectures: Viewsand BeyondBy: Paul Clements; Felix Bachmann; Le...
Thanks!
Software architecture
Software architecture
Upcoming SlideShare
Loading in …5
×

Software architecture

1,111 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,111
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Software architecture

  1. 1. Software ArchitectureModule Views and Styles Inam Soomro November 2011
  2. 2. Agenda• GENERALIZATION STYLE – ELEMENTS, RELATION AND PROPERTIES – CONSTRAINSTS – WHY GENERALISATION STYLE – NOTATION• LAYERED STYLE – ELEMENTS, RELATION AND PROPERTIES – CONSTRAINSTS – WHY LAYERED STYLE – LAYER TYPES – NOTATION• ASPECTS STYLE – ELEMENTS, RELATION AND PROPERTIES – CONSTRAINSTS – WHY ASPECTS STYLE – NOTATION – BEFORE AND AFTER ASPECT ORIENTATION
  3. 3. GENERALIZATION STYLE• Abstraction of common properties and attributes• Employs “IS A“ relationship• Parent module is a more general version of child modules• interface Realization• Architects emphasis on interface, not the implementation
  4. 4. An Example of generalisation Style
  5. 5. Elements, Relation and Properties• Element – Module• Relation – Generalisation• Constraints – A module can have multiple parents, bad design! – Loopholes are not allowed
  6. 6. Why Generalisation• Expressing inheritance in OOD• Evolution and Extension• Support reuse• Capturing commonalities
  7. 7. Notation for Generalisation Style• UML
  8. 8. Layered Style• Reflects division of software into smaller units• Offers a cohesive set of services• unidirectional and• “allowed to use“• A System with uses relation from lower to upper layer is not a layered architecture; however it may conveys an ideal design an architect was trying to achieve.
  9. 9. Example
  10. 10. What do u think of this design??
  11. 11. Elements, Relation and Properties• Elements – Layer• Relation – Allowed to use• Constraints – Every piece of software is allocated only one layer – At least two layers – Lower layers cannot use the upper layers
  12. 12. Why Layered Style• Modifiability and Portability• Managing complexity• Reuse• Seperation of concerns
  13. 13. Notation of Layered Style• Stack
  14. 14. Segmented Layers
  15. 15. Rings
  16. 16. Layers with a Sidecar
  17. 17. UMLSegmented Layers
  18. 18. Example of Java EE Application
  19. 19. Aspects Style• Aspects are modular units that complement objects to modularize the cross cutting concerns
  20. 20. ELEMENTS, RELATION AND PROPERTIES• Elements – Aspect modules• Relation – Crosscuts• Properties – Pointcut – Advice• Constrains
  21. 21. Why Aspects Style• provide systematic means to modularize by allowing separation of crosscutting concerns• promotes modularity• Address separation of concerns
  22. 22. Notation• UML
  23. 23. Before and after Aspect Orientation
  24. 24. Problems with Traditional Object Orientation
  25. 25. After Aspect Orietation
  26. 26. Aspect Oriented Programming• Facililitates in implementation of crosscutting concerns• AspectJ , Spring AOP, Jboss AOP, AspectC++ and Aspect#
  27. 27. The chapter is taken from the bookDocumenting Software Architectures: Viewsand BeyondBy: Paul Clements; Felix Bachmann; Len Bass;David Garlan; James Ivers; Reed Little; RobertNord; Judith Stafford
  28. 28. Thanks!

×