230 likes | 355 Views
O bject O riented A nalysis & D esign Session 5 - Architecture. Your host: Richard Walker. . UML & OO concepts Polymorphism Coupling Interfaces & Components State machines Architectural analysis Analysis mechanisms Architecture in Analyze Behavior Identify design elements
E N D
Object Oriented Analysis & DesignSession 5 - Architecture Your host: Richard Walker
• UML & OO concepts • Polymorphism • Coupling • Interfaces & Components • State machines • Architectural analysis • Analysis mechanisms • Architecture in Analyze Behavior • Identify design elements • Reconcile UC realization • Qualify analysis mechanisms • A few words about RUP • Agenda Activities
UML & OO concepts Polymorphism "The ability to take on many different forms" A consequence of generalization A polymorphic objectcan take the form of it's parent class • An employee can be considered as a person A polymorphic operation can have different behaviors based on the class of the object's that's doing it • The operation breath of the animal class is conducted differently for a fish than for a dog ALTRAN CIS Belgium – OOAD Training
UML & OO concepts Coupling "how strongly one element is connected to others" Applicable to any artifact (class, packages, subsystems, ...) Problem with high coupling • Local change when change in related element • Harder to understand in isolation • Harder to reuse Solution • Classes: use principle to evaluate alternatives • Packages: group coupled elements • Never talk to stranger (Demeter's law) • Focus on unstable areas Generalization is the stronger form of class coupling ALTRAN CIS Belgium – OOAD Training
UML & OO concepts Coupling example Who should be responsible for creating instance of payment? The register? • Asale object? ALTRAN CIS Belgium – OOAD Training
UML & OO concepts • Polymorphism • Coupling • Interfaces & Components • State machines • Architectural analysis • Analysis mechanisms • Architecture in Analyze Behavior • Identify design elements • Reconcile UC realization • Qualify analysis mechanisms • A few words about RUP • Agenda Activities
UML & OO concepts Interfaces "A class whose features are all abstract" Simplify inheritance hierarchy Allow polymorphism Improve cohesion (Encapsulation) Key to component based development (CBD) abstract elements are written in italics dependency (requires) implementation (provides) Lollipop style notation Class style notation ALTRAN CIS Belgium – OOAD Training
UML & OO concepts Composite Structures Model structured classes Show runtime groupings Useful for modeling components and subsystems Think of the related class diagram ! Tip ALTRAN CIS Belgium – OOAD Training
UML & OO concepts • Polymorphism • Coupling • Interfaces & Components • State machines • Architectural analysis • Analysis mechanisms • Architecture in Analyze Behavior • Identify design elements • Reconcile UC realization • Qualify analysis mechanisms • A few words about RUP • Agenda Activities
UML & OO concepts State machines diagrams Complex objects only ! Internal activities Transition syntax Gothic castle safe lock controller trigger [guard] / activity ALTRAN CIS Belgium – OOAD Training
UML & OO concepts State machines keywords ALTRAN CIS Belgium – OOAD Training
UML & OO concepts • Polymorphism • Coupling • Interfaces & Components • State machines • Architectural analysis • Analysis mechanisms • Architecture in Analyze Behavior • Identify design elements • Reconcile UC realization • Qualify analysis mechanisms • A few words about RUP • Agenda Activities
Software Architecture "Reflects important decisions" ALTRAN CIS Belgium – OOAD Training
Architectural Analysis Introduction "define a candidate architecture" based on experience and similar projects Architecture is rarely built from scratch • Constrained by existing environment • Reuse of existing assets Steps • Develop Architecture Overview • Survey Available Assets • Define the High-Level Organization of Subsystems • Identify Key Abstractions • Identify Stereotypical Interactions • Develop Deployment Overview • Identify Analysis Mechanisms • Review the Results 2 possibilities without prototype with prototype ALTRAN CIS Belgium – OOAD Training
Architectural Analysis Analysis Mechanisms "A placeholder" For a well known recurring problem in software applications Discovered • Top-down - from knowledge • Bottom-up - as you go Support functional requirements Technology independent Typically business independent But more and more in upper layer (since emergence of business related patterns) Facilitate analysis! ALTRAN CIS Belgium – OOAD Training
Persistency Architectural Analysis Analysis Mechanisms draw a map between classes and mechanisms At first, only a name Then, refined with characteristics • Granularity • Volume • Duration • Retrieval mechanism • Update frequency • Reliability ALTRAN CIS Belgium – OOAD Training
UML & OO concepts • Polymorphism • Coupling • Interfaces & Components • State machines • Architectural analysis • Analysis mechanisms • Architecture in Analyze Behavior • Identify design elements • Reconcile UC realization • Qualify analysis mechanisms • A few words about RUP • Agenda Activities
Architecture in Analyze Behavior Identify design elements • Signals • Internal or external • Priority • Frequency • Frequency distribution • Response requirements • Kind • Design Classes • Active Classes • Physical devices • Logical concurrent activities • Active object controllers • Guardians ofshared resources • Subsystems • For complex analysis classes • = packages+ interfaces • Can be designed by separate teams • Elements ofproduct line • Interfaces • Realized by subsystems • Have dependencies • May needstate machines • Grouped in packages From analysis classes ALTRAN CIS Belgium – OOAD Training
Architecture in "Analyze Behavior" Reconcile Use Case Realizations Performed together by Architect & Designer Each use case has been analyzed separately • Resolve inconsistencies • Remove duplicates Cost is reduced by a good Architectural Analysis ALTRAN CIS Belgium – OOAD Training
Architecture in "Analyze Behavior" Qualify analysis Mechanisms Performed by the Designer Informal at this stage To help select appropriate design mechanisms later Example: qualification of the persistency mechanism ALTRAN CIS Belgium – OOAD Training
UML & OO concepts • Polymorphism • Coupling • Interfaces & Components • State machines • Architectural analysis • Analysis mechanisms • Architecture in Analyze Behavior • Identify design elements • Reconcile UC realization • Qualify analysis mechanisms • A few words about RUP • Agenda Activities
A few words about RUP (& ESUP) RUP is my baby, there is a lot of good stuff in it But the problem is that it's just too big! We have to find a way to simplify... Every process is a soup of ideas Instead of "process", let's talk about practices Add one practice at a time Ivar Jacobson Essential Unified Process (ESUP) is my new baby It defines 8 practices ALTRAN CIS Belgium – OOAD Training
Thank you for your attention ALTRAN CIS Belgium – OOAD Training