Upload
steve-lange
View
844
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Session #5: Architecture Without Big Design Up Front Presented by: Peter Provost
Citation preview
TEAM SYSTEM: IT’S BIG
IntroductionHow 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
TEAM SYSTEM: IT’S BIG
VSTS 2010 Architecture Edition:
TEAM SYSTEM: IT’S BIG
The Object Management Group (OMG)
Microsoft joined OMG
TEAM SYSTEM: IT’S BIG
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.
TEAM SYSTEM: IT’S BIG
Modeling with UML diagramsCategory UML Diagrams UML Diagrams
supported in VSTS2010 Architecture Edition
Structure Diagram
Class Diagram, Object Diagram, Component Diagram, Composite Structure Diagram, Package Diagram, and Deployment Diagram.
Class diagram , Component Diagram
Behavior Diagrams
Use Case Diagram , Activity Diagram, and State Machine Diagram.
Use Case Diagram , and Activity Diagram.
Interaction Diagrams
Sequence Diagram, Communication Diagram, Timing Diagram, and Interaction Overview Diagram.
Sequence Diagram
• 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…
Architectural Discovery
TEAM SYSTEM: IT’S BIG
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.
TEAM SYSTEM: IT’S BIG
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.
TEAM SYSTEM: IT’S BIG
Sequence Diagram
• Architectural Discovery• Exploring Your Existing Application
– Visualize call dependencies in the overall solution– Visualize interaction sequences in existing code (Reverse
Engineering – Sequence Diagram)
• Validating Code Changes with the Layer Design• Associate the code with the corresponding layers• Validate the code against the layer design
Demos
TEAM SYSTEM: IT’S BIG
How Does This Relate To Agile?
• For agile teams, Architecture is a way to organize and communicate about work and not to define the work
• 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
TEAM SYSTEM: IT’S BIG
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