13
TEAM SYSTEM: IT’S BIG VSTS 2010 Architecture Edition Raj Selvaraj [email protected]

Session #5: Architecture Without Big Design Up Front

Embed Size (px)

DESCRIPTION

Session #5: Architecture Without Big Design Up Front Presented by: Peter Provost

Citation preview

Page 1: Session #5: Architecture Without Big Design Up Front

TEAM SYSTEM: IT’S BIG

VSTS 2010 Architecture Edition

Raj [email protected]

Page 2: Session #5: Architecture Without Big Design Up Front

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

Page 3: Session #5: Architecture Without Big Design Up Front

TEAM SYSTEM: IT’S BIG

VSTS 2010 Architecture Edition:

Page 4: Session #5: Architecture Without Big Design Up Front

TEAM SYSTEM: IT’S BIG

The Object Management Group (OMG)

Microsoft joined OMG

Page 5: Session #5: Architecture Without Big Design Up Front

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.

Page 6: Session #5: Architecture Without Big Design Up Front

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

Page 7: Session #5: Architecture Without Big Design Up Front

• 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

Page 8: Session #5: Architecture Without Big Design Up Front

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.

Page 9: Session #5: Architecture Without Big Design Up Front

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.

Page 10: Session #5: Architecture Without Big Design Up Front

TEAM SYSTEM: IT’S BIG

Sequence Diagram

Page 11: Session #5: Architecture Without Big Design Up Front

• 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

Page 12: Session #5: Architecture Without Big Design Up Front

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

Page 13: Session #5: Architecture Without Big Design Up Front

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