750 likes | 1.63k Views
OOAD Overview. OO language Necessary for OO systems? Sufficient for OO systems? Owning a hummer doesn’t make you a home builder OOAD is necessary in building QUAILITY OO systems Architectural cohesion Reusability Maintenance. OOAD Overview. Key importance Assignment of Responsibilities
E N D
OOAD Overview • OO language • Necessary for OO systems? • Sufficient for OO systems? Owning a hummer doesn’t make you a home builder • OOAD is necessary in building QUAILITY OO systems • Architectural cohesion • Reusability • Maintenance
OOAD Overview • Key importance • Assignment of Responsibilities • Performed during Design workflow • Responsibility-driven design • Follows GRASP principles • Successful designs become Patterns • Key elements and properties • Use Cases • Text description of vital transactions and scenarios • Not OO but usually used in OOAD • Agile Process • Light, flexible, iterative form of the UP process • Iterative – performed in a number of successive builds
OOAD Overview • OOAD elements
OOAD Overview • Analysis -> Design -> Implementation -> Deployment • Analysis is investigation of the problem, requirements, constraints, technology • Emphasis on finding problem entities (conceptual classes), relationships, constraints • Design is a conceptual solution, including architecture, algorithms, etc. • Emphasis on designing classes and objects with behavior to allow collaborations to solve particular requests while using patterns • Implementation is expression of the design in code • Emphasis on utilizing the language of choice to implement design classes while exploring visibility, navigability, etc. • Deployment is the actual installation in the host environment
OOAD Overview • Airplane example of object and class discovery
OOAD Example • Rudimentary process • UseCases -> DomainModel -> Interactions -> DesignModel • Dice game example • 2 players rolling 2 dice • Use Case • Verbal description of transactions or processes • Player throws two dice. The result is observed. If the total is 7 the player wins otherwise he loses.
OOAD Example • Domain Model • Static view of classes and relations
OOAD Example • Interactions • Assignment of responsibilities among objects • Sequence or Communication diagrams
OOAD Example • Design Diagrams • Software classes with methods according to responsibilities and attributes according to visibility
UML • UML • Visual Modeling Language
UML • Three perspectives (and class meanings in diagrams) • Conceptual – described the real world entities • Specification – describes design entities but not tied to specific implementations • Implementation – describes particular implementations of the specification elements