Click here to load reader

PHX Session #5 : Architecture Without Big Design Up Front (Garibay)

  • View

  • Download

Embed Size (px)



Text of PHX Session #5 : Architecture Without Big Design Up Front (Garibay)

2. Introduction How many times have you walked into a legacy codebase and had no idea what was there? All systems have an architecture, whether you plan it or not Most systems today have evolved into Big Ball of Mudarchitectures Understanding and discovering what is there is a seriouschallenge today Ending with a system you want and can maintain is more important than defining the right thing before you start 3. Q: How Do You Eat an Elephant? 4. Software Architecture Architecture is important part of the product it should be analyzed should be easy to explain and understand Architecture is central for communicating it should be documented documentation should be targeted at specific stakeholders documentation should be auditable Architecture is expensive to change it is cheaper to analyze early The key to being emergent is to make the best decisions possible Architecture affects the entire project many stakeholders should be involved Broad requirements can be understood early architecture should be designed to meet them 5. How Does This Relate To Agile? 6. How Does This Relate To Agile? 7. How Does This Relate To Agile? For agile teams, Architecture is emergent. All agile teams use models. They just dont often do a lot of modeling up front Agile teams will create models on the fly as needed to describe, design and define a candidate design for a user story or task In todays globally disbursed environments, whiteboards wont always suffice. We need to share in a way that can cross geographies and time zones 8. 4 + 1 Views on Software ArchitectureDevelopmentLogical (Implementation) ScenariosPhysicalProcess(Deployment) Philippe B. Kruchten, IEEE Software 1995 9. On Architectural Views An architectural view is a simplifieddescription (an abstraction) of a system from aparticular perspective or vantage point,covering particular concerns, and omittingentities that are not relevant to thisperspective.Philippe B. Kruchten, IEEE Software 1995 10. Why 5 Views? Architecture has several audiences. Each type of model has its strength andweakness No single view is sufficient becausearchitecture is such a complex issue Philippe B. Kruchten, IEEE Software 1995 11. The Object Management Group (OMG) Microsoft joined OMG in 2008 12. Unified Modeling Language (UML) The OMG Specification States The Unified Modeling Language is a visual language for specifying, constructing, and documenting the artifacts of systems. It is a general-purpose modeling language that can be used with all major object and component methods, and that can be applied to all application domains and implementation platforms. 13. Modeling Support in VS 2010 View Category UML DiagramsVSTS2010 Architecture EditionLogicalStructure Class Diagram, Object Class diagram , ComponentDiagram Diagram, ComponentDiagram DevelopmentDiagram, CompositeStructure Diagram, PackageDiagram, and DeploymentDiagram. ScenariosBehaviorUse Case Diagram , Activity Use Case Diagram , and ActivityDiagramsDiagram, and StateDiagram.Machine Diagram.ProcessInteraction Sequence Diagram, Sequence DiagramDiagramsCommunication Diagram,Timing Diagram, andInteraction OverviewDiagram. 14. Modeling Support in VS 2010ViewCategory UML Diagrams VSTS2010 Architecture EditionLogical N/AN/ACall Dependency Visualization: By Assembly By Namespace Development By Class PhysicalClass Dependency Visualization: Details Dependencies Interaction Sequence Visualization Impact analysis Call sequencesLogical N/AN/ALayer Diagram Map code to layers Validate code against the layer design Physical Visualize interactions and sequences Development between code in layers 15. Defining Architecture the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. (IEEE 1471) 16. Architectural Discovery Everyone has existing code bases Key architectural elements are undocumented Maintenance is hard, changes are expensive What can we do? Lets begin by discovering what we have using Architecture Explorer 17. Architecture Explorer Understanding a system can prevent the butterfly effect. Architecture Explorer helps discover and understand how a system works. Visualize existing code assets and how they connect. 18. DemoVS 2010 ARCHITECTURE EXPLORER 19. Defining Architecture The structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time. (Garlan and Perry 1995, p. 269) 20. Layer Diagram Architectural validation ensures code matches intended design. Layer diagram details the intended design. Classes and namespaces are mapped to layers in the diagram. 21. DemoVSTS 2010 LAYER DESIGN 22. Defining Architecture An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organizationthese elements and their interfaces, their collaborations, and their composition. (Booch, Rumbaugh, and Jacobson 1999, p. 31) 23. Sequence Diagram 24. DemoVSTS UML 2.1.1 SEQUENCE DIAGRAM SUPPORT 25. A: One Bite at a Time!26 26. Conclusions Every system has an architecture, the trick is figuring out what you have and what you want to do Communicating effectively with your entire team is paramount Architectural modeling and discovery tooling is useful regardless of development methodology 27. Thank You October CTP: Documenting Software Architecture

Search related