Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
VSTS 2010 Architecture Edition

          Rick G. Garibay
       rick.garibay@neudesic.com
Introduction
• How many times have you walked into a legacy codebase
  and had no idea what was there?

   – All systems h...
Q: How Do You Eat an Elephant?
Software Architecture
• Architecture is important
    – part of the product
    – it should be analyzed
    – should be ea...
How Does This Relate To Agile?
How Does This Relate To Agile?
How Does This Relate To Agile?
• For agile teams, Architecture is emergent.
• All agile teams use models. They just
  don’...
4 + 1 Views on Software Architecture


                                               Development
                        ...
On Architectural Views
   • An architectural view is a simplified
     description (an abstraction) of a system from a
   ...
Why 5 Views?
   • Architecture has several audiences.
   • Each type of model has its strength and
     weakness
   • No s...
The Object Management Group (OMG)
• Microsoft joined OMG in 2008
Unified Modeling Language (UML)
• The OMG Specification States

  • The Unified Modeling Language is a
    visual language...
Modeling Support in VS 2010

     View         Category         UML Diagrams            VSTS2010 Architecture Edition

Log...
Modeling Support in VS 2010

      View        Category   UML Diagrams         VSTS2010 Architecture Edition

Logical     ...
Defining Architecture…
• “the fundamental organization of a system,
  embodied in its components, their
  relationships to...
Architectural Discovery
• Everyone has existing code bases

• Key architectural elements are undocumented

• Maintenance i...
Architecture Explorer
• Understanding a system
  can prevent the
  butterfly effect.

• Architecture Explorer
  helps disc...
Demo

VS 2010 ARCHITECTURE EXPLORER
Defining Architecture…
• “The structure of the components of a
  program/system, their interrelationships, and
  principle...
Layer Diagram
• Architectural validation ensures
  code matches intended design.

• Layer diagram details the intended
  d...
Demo

VSTS 2010 LAYER DESIGN
Defining Architecture…
• “An architecture is the set of significant decisions about
  the organization of a software syste...
Sequence Diagram
Demo

VSTS UML 2.1.1 SEQUENCE
DIAGRAM SUPPORT
A: One Bite at a Time!




                         26
Conclusions
• Every system has an architecture, the trick is
  figuring out what you have and what you want
  to do
• Comm...
Thank You
• October CTP:
  http://www.microsoft.com/visualstudio

• Documenting Software Architecture
Upcoming SlideShare
Loading in …5
×

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

2,199 views

Published on

Published in: Technology, News & Politics
  • Be the first to comment

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

  1. 1. VSTS 2010 Architecture Edition Rick G. Garibay rick.garibay@neudesic.com
  2. 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 Mud architectures – Understanding and discovering what is there is a serious challenge today • Ending with a system you want and can maintain is more important than defining the right thing before you start
  3. 3. Q: How Do You Eat an Elephant?
  4. 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. 5. How Does This Relate To Agile?
  6. 6. How Does This Relate To Agile?
  7. 7. How Does This Relate To Agile? • For agile teams, Architecture is emergent. • All agile teams use models. They just don’t 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 today’s globally disbursed environments, whiteboards won’t always suffice. We need to share in a way that can cross geographies and time zones
  8. 8. 4 + 1 Views on Software Architecture Development Logical (Implementation) Scenarios Physical Process (Deployment) Philippe B. Kruchten, IEEE Software 1995
  9. 9. On Architectural Views • An architectural view is a simplified description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns, and omitting entities that are not relevant to this perspective. Philippe B. Kruchten, IEEE Software 1995
  10. 10. Why 5 Views? • Architecture has several audiences. • Each type of model has its strength and weakness • No single view is sufficient because architecture is such a complex issue Philippe B. Kruchten, IEEE Software 1995
  11. 11. The Object Management Group (OMG) • Microsoft joined OMG in 2008
  12. 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. 13. Modeling Support in VS 2010 View Category UML Diagrams VSTS2010 Architecture Edition Logical Structure Class Diagram, Object Class diagram , Component Diagram Diagram, Component Diagram Development Diagram, Composite Structure Diagram, Package Diagram, and Deployment Diagram. Scenarios Behavior Use Case Diagram , Activity Use Case Diagram , and Activity Diagrams Diagram, and State Diagram. Machine Diagram. Process Interaction Sequence Diagram, Sequence Diagram Diagrams Communication Diagram, Timing Diagram, and Interaction Overview Diagram.
  14. 14. Modeling Support in VS 2010 View Category UML Diagrams VSTS2010 Architecture Edition Logical N/A N/A Call Dependency Visualization: •By Assembly •By Namespace Development •By Class Physical Class Dependency Visualization: •Details •Dependencies Interaction Sequence Visualization •Impact analysis •Call sequences Logical N/A N/A Layer Diagram •Map code to layers •Validate code against the layer design Physical •Visualize interactions and sequences Development between code in layers
  15. 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. 16. Architectural Discovery • Everyone has existing code bases • Key architectural elements are undocumented • Maintenance is hard, changes are expensive • What can we do? • Let’s begin by discovering what we have using Architecture Explorer…
  17. 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. 18. Demo VS 2010 ARCHITECTURE EXPLORER
  19. 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. 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. 21. Demo VSTS 2010 LAYER DESIGN
  22. 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 organization—these elements and their interfaces, their collaborations, and their composition.” (Booch, Rumbaugh, and Jacobson 1999, p. 31)
  23. 23. Sequence Diagram
  24. 24. Demo VSTS UML 2.1.1 SEQUENCE DIAGRAM SUPPORT
  25. 25. A: One Bite at a Time! 26
  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. 27. Thank You • October CTP: http://www.microsoft.com/visualstudio • Documenting Software Architecture

×