SlideShare a Scribd company logo
1 of 39
Agile Modeling with Visual Studio 2010 Ultimate (and Feature Pack 2) Gary Pedretti – Gary.Pedretti@Centare.com Logo, Design, and Company Information:© 2011 Centare Group, Ltd. Slide Show and Notes Content: Creative Commons License, Gary Pedretti Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. 2/11/2011 1
Centare Group, Ltd. 12th Year  Local, Focused, Software Consulting Firm ALM (MS Inner Circle Partner), Mobile and Cloud Solutions Apple (iOS), Microsoft and Open Source
Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflowusing the visualization and modeling features of Feature Pack 2
Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflow using the visualization and modeling features of Feature Pack 2
Unified Modeling Language - UML UML unifiedthe notations of: The Booch Method The Object-Modeling Technique (OMT) Object-Oriented Software Engineering (OOSE)  De facto industry standard, controlled by the Object Management Group (OMG)
UML Basics A system is represented by a model, which is separate from any diagrams that describe the model, and also includes textual artifacts like use cases Structural or static diagrams (class, deployment) Behavioral or dynamic diagrams (sequence, activity)
About the VS 2010 Diagrams The UML diagrams are UML 2.0 compliant Most are navigable – double-click on members to jump to code There is tight integration with TFS – associate use cases with Work Items, etc. There are facilities for reverse engineering and forward engineering – some built in, others via feature packs
VS 2010 UML Diagram Types Class – Shows classes and their relationships such as inheritance, aggregation, cardinality, etc.
VS 2010 UML Diagram Types Sequence – Shows the interaction of components, actors, systems, etc. over a period of time
VS 2010 UML Diagram Types Use Case – High level view of the interaction between use cases and various actors
VS 2010 UML Diagram Types Activity – The “flowchart” we know and love
VS 2010 UML Diagram Types Component – Shows classes, functionality, etc. broken down into units of deployment
Other VS 2010 Diagram Types Layer Diagram - includes validation, forcing developers to maintain only the dependencies the designer/architect desires
Other VS 2010 Diagram Types Directed Graph Document – Dependency Graphs in a very dynamic format
Caveats Create in VS 2010 Ultimate Edition only, but are also available as read-only in Premium Edition For C and C++ code: Only the Dependency Graphs and Architecture Explorer are supported “Architecture tools” is somewhat of a misnomer for the VS 2010 features (shortcomings of UML…) MS modeling story is still very fragmented Visio 2010 with VS 2010 has re-added reverse-engineering of code to UML diagrams Class Diagrams within a .NET project remain Oslo???
Demo – Visual Studio 2010 Architecture and UML Diagrams
Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflow using the visualization and modeling features of Feature Pack 2
Agile Development What do you think it means? What are some of the methodologies? What are some practices that often go hand-in-hand with agile methodologies?
Agile Modeling – What do I mean? Modeling that supports vertical slice, iterative, adaptive development Architecture and design that is just-in-time, right-sized, and allows for deferring the larger architectural decisions to the last responsible moment
Agile Manifesto vs. BDUF We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items onthe right, we value the items on the left more.
Modeling Problems - A Typical Chain of Events Some up-front design of the system Development begins Design or implementation of the design changes Architecture problems discovered and solved during development Changing requirements Original design documentation is not kept up-to-date Perceived value of design documentation – and eventually design, architecture, and architects themselves – erodes
Why Model at All? Improved productivity  Reduced technical risk Reduced development time Improved communication Scaling agile software development (provides the technical direction required by sub-teams to define and guide their efforts within the overall project) Improved team organization (Ambler http://www.agilemodeling.com/essays/initialArchitectureModeling.htm ) Reverse Engineering of Existing Systems – to help people wrap their heads around an undocumented, existing system Forward Engineering for New Systems – for communication of architecture and design Software is difficult to explain and detail to both developers and the uninitiated
Agile Modeling – AMDD – Scott Ambler Document Late. Write documentation as late as possible, avoiding speculative ideas that are likely to change in favor of stable information Executable Specifications. Specify requirements in the form of executable "customer tests", and your design as executable developer tests, instead of non-executable "static" documentation Iteration Modeling. At the beginning of each iteration you will do a bit of modeling as part of your iteration planning activities
Agile Modeling – Part 2 Just Barely Good Enough (JBGE) artifacts.  A model or document needs to be sufficient for the situation at hand and no more Model a bit Ahead. Sometimes requirements that are nearing the top of your priority stack are fairly complex, motivating you to invest some effort to explore them  Model Storming. Throughout an iteration you will model storm on a just-in-time (JIT) basis for a few minutes to explore the details behind a requirement or to think through a design issue Discard Temporary Models Update Only When It Hurts
Emergent Architecture – Scrum.org Architecture is a development task “Architects” are Scrum team members – “architects” Architecture emerges as real deliverables are created It is not valid until it is vetted out in a real system – this has always been true Build at least one piece of business functionality every sprint
Emergent Architecture – Part 2 “Just enough” documentation Architecture exists to serve the team, not the other way around
Emergent Architecture – Part 3 Build in flexibility to adapt to reasonable changes without building a “meta-product” DRY YAGNI TDD SoC IoC and DI SRP DDD
Modeling Problems – Video…
Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflow using the visualization and modeling features of Feature Pack 2
Modeling Problems - A Typical Chain of Events Some up-front design of the system Development begins Design or implementation of the design changes Architecture problems discovered and solved during development Changing requirements Original design documentation is not kept up-to-date Perceived value of design documentation – and eventually design, architecture, and architects themselves – erodes
The Holy Grail vs. Reality The Holy Grail in this situation is probably a full round-tripping system diagram to code code to diagram with differencing and merge resolution in between allowing for solutions to emerge from either side, and to always be kept in sync
The Holy Grail vs. Reality A reasonable reality, in the meantime, for forward engineering: Some design upfront – “Planned” diagrams Generate skeleton code from this design Development - actuals can be verified against the original design document, and changes in design or implementation should be justified by the developer Generate diagrams at the end of the cycle – “Actually Implemented” diagrams Actual vs. Planned diagrams can be excellent learning tools and/or post-mortem artifacts
Caveats You do not have any automatic merge between steps, you must manually difference and resolve.
“Pass the Baton” – A Live Example
Resources Agile, Agile Architecture, Agile Modeling www.Scrum.org www.AgileModeling.com VS 2010 Architecture Tools MSDN Library “Modeling the Application” http://msdn.microsoft.com/en-us/library/57b85fsc.aspx Cameron Skinner’s Bloghttp://blogs.msdn.com/b/camerons/ Other www.Centare.com www.GaryPedretti.com – my blog
Thank You!! Centare Group, Ltd. Gary.Pedretti@Centare.com

More Related Content

What's hot

Evolutionary Architecture And Design
Evolutionary Architecture And DesignEvolutionary Architecture And Design
Evolutionary Architecture And DesignNaresh Jain
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
Rhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulationRhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulationGraham Bleakley
 
Udaya gunasena resume 2014
Udaya gunasena resume 2014Udaya gunasena resume 2014
Udaya gunasena resume 2014Udayagunasena
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Establishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifactsEstablishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifactsIBM Rational software
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)siouxhotornot
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsGabor Guta
 
Lecture 3: Navigating the Requirements Management application: Web client
Lecture 3: Navigating the Requirements Management application: Web clientLecture 3: Navigating the Requirements Management application: Web client
Lecture 3: Navigating the Requirements Management application: Web clientIBM Rational software
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
Managing requirements by using baselines
Managing requirements by using baselinesManaging requirements by using baselines
Managing requirements by using baselinesIBM Rational software
 
Kelis king - software development life cycle (sdlc)
Kelis king  - software development life cycle (sdlc)Kelis king  - software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)KelisKing
 
Object oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptObject oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptKunal Kishor Nirala
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
Modules as requirement specifications
Modules as requirement specificationsModules as requirement specifications
Modules as requirement specificationsIBM Rational software
 

What's hot (19)

Evolutionary Architecture And Design
Evolutionary Architecture And DesignEvolutionary Architecture And Design
Evolutionary Architecture And Design
 
4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
Rhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulationRhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulation
 
Udaya gunasena resume 2014
Udaya gunasena resume 2014Udaya gunasena resume 2014
Udaya gunasena resume 2014
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Establishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifactsEstablishing and analyzing traceability between artifacts
Establishing and analyzing traceability between artifacts
 
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
Sioux Hot-or-Not: Domain Driven Design (Edwin Van Dillen)
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
 
Lecture 3: Navigating the Requirements Management application: Web client
Lecture 3: Navigating the Requirements Management application: Web clientLecture 3: Navigating the Requirements Management application: Web client
Lecture 3: Navigating the Requirements Management application: Web client
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
Managing requirements by using baselines
Managing requirements by using baselinesManaging requirements by using baselines
Managing requirements by using baselines
 
Vsts intro
Vsts introVsts intro
Vsts intro
 
Kelis king - software development life cycle (sdlc)
Kelis king  - software development life cycle (sdlc)Kelis king  - software development life cycle (sdlc)
Kelis king - software development life cycle (sdlc)
 
Course summary
Course summaryCourse summary
Course summary
 
Object oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle pptObject oriented-systems-development-life-cycle ppt
Object oriented-systems-development-life-cycle ppt
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Modules as requirement specifications
Modules as requirement specificationsModules as requirement specifications
Modules as requirement specifications
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
Agile Dev. I
Agile Dev. IAgile Dev. I
Agile Dev. I
 

Viewers also liked

Ashley Barnard's Photography Pictures
Ashley Barnard's Photography PicturesAshley Barnard's Photography Pictures
Ashley Barnard's Photography Picturesashleybarnard
 
It健康
It健康It健康
It健康baidu
 
King Tut Architecture
King Tut ArchitectureKing Tut Architecture
King Tut ArchitectureGary Pedretti
 
Pintores famosos
Pintores famososPintores famosos
Pintores famososale
 
TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???Gary Pedretti
 
The art of being a budget operator in Ukraine
The art of being a budget operator in UkraineThe art of being a budget operator in Ukraine
The art of being a budget operator in UkraineSergii Guliaiev
 
Territories, Not Hierarchies
Territories, Not HierarchiesTerritories, Not Hierarchies
Territories, Not HierarchiesGary Pedretti
 
งานคอม
งานคอมงานคอม
งานคอมkai11211
 
This IS Agile Development
This IS Agile DevelopmentThis IS Agile Development
This IS Agile DevelopmentGary Pedretti
 
Bringing whimsy to the design process
Bringing whimsy to the design processBringing whimsy to the design process
Bringing whimsy to the design processDeb Cox
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeGary Pedretti
 
Agile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayAgile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayGary Pedretti
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product DevelopmentGary Pedretti
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 

Viewers also liked (16)

Ashley Barnard's Photography Pictures
Ashley Barnard's Photography PicturesAshley Barnard's Photography Pictures
Ashley Barnard's Photography Pictures
 
It健康
It健康It健康
It健康
 
King Tut Architecture
King Tut ArchitectureKing Tut Architecture
King Tut Architecture
 
Pintores famosos
Pintores famososPintores famosos
Pintores famosos
 
Presentation1
Presentation1Presentation1
Presentation1
 
TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???TFS 2012 + VS 2012 = Agile Goodness???
TFS 2012 + VS 2012 = Agile Goodness???
 
The art of being a budget operator in Ukraine
The art of being a budget operator in UkraineThe art of being a budget operator in Ukraine
The art of being a budget operator in Ukraine
 
T4 presentation
T4 presentationT4 presentation
T4 presentation
 
Territories, Not Hierarchies
Territories, Not HierarchiesTerritories, Not Hierarchies
Territories, Not Hierarchies
 
งานคอม
งานคอมงานคอม
งานคอม
 
This IS Agile Development
This IS Agile DevelopmentThis IS Agile Development
This IS Agile Development
 
Bringing whimsy to the design process
Bringing whimsy to the design processBringing whimsy to the design process
Bringing whimsy to the design process
 
Agile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New HopeAgile Architecture: Ideals, History, and a New Hope
Agile Architecture: Ideals, History, and a New Hope
 
Agile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we TodayAgile Architecture and Modeling - Where are we Today
Agile Architecture and Modeling - Where are we Today
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product Development
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 

Similar to Agile Modeling using the Architecture Tools in VS 2010

Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)Spiffy
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference ArchitectureJohan Eltes
 
Technical-design-for-Angular-apps.pdf
Technical-design-for-Angular-apps.pdfTechnical-design-for-Angular-apps.pdf
Technical-design-for-Angular-apps.pdfSakthivelPeriyasamy6
 
Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1vciampa
 
Lecture 4 software process model (2)
Lecture 4   software process model (2)Lecture 4   software process model (2)
Lecture 4 software process model (2)IIUI
 
Next Generation Component Management - Altium Designer
Next Generation Component Management - Altium DesignerNext Generation Component Management - Altium Designer
Next Generation Component Management - Altium DesignerAltium
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software ArchitectureJérôme Kehrli
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachBen Stopford
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Chapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptChapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptRayonJ1
 
Model Driven Applications Using Visual Studio Code Name Rosario
Model Driven Applications Using Visual Studio Code Name RosarioModel Driven Applications Using Visual Studio Code Name Rosario
Model Driven Applications Using Visual Studio Code Name RosarioClint Edmonson
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System AnalysisLaura Torres
 
Software Process Model in software engineering
Software Process Model in software engineeringSoftware Process Model in software engineering
Software Process Model in software engineeringMuhammadTalha436
 
Struts & hibernate ppt
Struts & hibernate pptStruts & hibernate ppt
Struts & hibernate pptPankaj Patel
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 

Similar to Agile Modeling using the Architecture Tools in VS 2010 (20)

Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
Agile in Action - Act 1 (Set Up, Planning, Requirements and Architecture)
 
Reference Architecture
Reference ArchitectureReference Architecture
Reference Architecture
 
Technical-design-for-Angular-apps.pdf
Technical-design-for-Angular-apps.pdfTechnical-design-for-Angular-apps.pdf
Technical-design-for-Angular-apps.pdf
 
Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1Gk1051 001 j2-ee_arch_tt425v1.1
Gk1051 001 j2-ee_arch_tt425v1.1
 
Lecture 4 software process model (2)
Lecture 4   software process model (2)Lecture 4   software process model (2)
Lecture 4 software process model (2)
 
Chapter9
Chapter9Chapter9
Chapter9
 
Next Generation Component Management - Altium Designer
Next Generation Component Management - Altium DesignerNext Generation Component Management - Altium Designer
Next Generation Component Management - Altium Designer
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software Architecture
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Chapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptChapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.ppt
 
Chapter1
Chapter1Chapter1
Chapter1
 
Model Driven Applications Using Visual Studio Code Name Rosario
Model Driven Applications Using Visual Studio Code Name RosarioModel Driven Applications Using Visual Studio Code Name Rosario
Model Driven Applications Using Visual Studio Code Name Rosario
 
Various Approaches Of System Analysis
Various Approaches Of System AnalysisVarious Approaches Of System Analysis
Various Approaches Of System Analysis
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Software process model
Software process modelSoftware process model
Software process model
 
Software Process Model in software engineering
Software Process Model in software engineeringSoftware Process Model in software engineering
Software Process Model in software engineering
 
Struts & hibernate ppt
Struts & hibernate pptStruts & hibernate ppt
Struts & hibernate ppt
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Incremental model
Incremental modelIncremental model
Incremental model
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

Agile Modeling using the Architecture Tools in VS 2010

  • 1. Agile Modeling with Visual Studio 2010 Ultimate (and Feature Pack 2) Gary Pedretti – Gary.Pedretti@Centare.com Logo, Design, and Company Information:© 2011 Centare Group, Ltd. Slide Show and Notes Content: Creative Commons License, Gary Pedretti Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. 2/11/2011 1
  • 2. Centare Group, Ltd. 12th Year Local, Focused, Software Consulting Firm ALM (MS Inner Circle Partner), Mobile and Cloud Solutions Apple (iOS), Microsoft and Open Source
  • 3. Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflowusing the visualization and modeling features of Feature Pack 2
  • 4. Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflow using the visualization and modeling features of Feature Pack 2
  • 5. Unified Modeling Language - UML UML unifiedthe notations of: The Booch Method The Object-Modeling Technique (OMT) Object-Oriented Software Engineering (OOSE) De facto industry standard, controlled by the Object Management Group (OMG)
  • 6. UML Basics A system is represented by a model, which is separate from any diagrams that describe the model, and also includes textual artifacts like use cases Structural or static diagrams (class, deployment) Behavioral or dynamic diagrams (sequence, activity)
  • 7. About the VS 2010 Diagrams The UML diagrams are UML 2.0 compliant Most are navigable – double-click on members to jump to code There is tight integration with TFS – associate use cases with Work Items, etc. There are facilities for reverse engineering and forward engineering – some built in, others via feature packs
  • 8. VS 2010 UML Diagram Types Class – Shows classes and their relationships such as inheritance, aggregation, cardinality, etc.
  • 9. VS 2010 UML Diagram Types Sequence – Shows the interaction of components, actors, systems, etc. over a period of time
  • 10. VS 2010 UML Diagram Types Use Case – High level view of the interaction between use cases and various actors
  • 11. VS 2010 UML Diagram Types Activity – The “flowchart” we know and love
  • 12. VS 2010 UML Diagram Types Component – Shows classes, functionality, etc. broken down into units of deployment
  • 13. Other VS 2010 Diagram Types Layer Diagram - includes validation, forcing developers to maintain only the dependencies the designer/architect desires
  • 14. Other VS 2010 Diagram Types Directed Graph Document – Dependency Graphs in a very dynamic format
  • 15. Caveats Create in VS 2010 Ultimate Edition only, but are also available as read-only in Premium Edition For C and C++ code: Only the Dependency Graphs and Architecture Explorer are supported “Architecture tools” is somewhat of a misnomer for the VS 2010 features (shortcomings of UML…) MS modeling story is still very fragmented Visio 2010 with VS 2010 has re-added reverse-engineering of code to UML diagrams Class Diagrams within a .NET project remain Oslo???
  • 16. Demo – Visual Studio 2010 Architecture and UML Diagrams
  • 17. Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflow using the visualization and modeling features of Feature Pack 2
  • 18. Agile Development What do you think it means? What are some of the methodologies? What are some practices that often go hand-in-hand with agile methodologies?
  • 19. Agile Modeling – What do I mean? Modeling that supports vertical slice, iterative, adaptive development Architecture and design that is just-in-time, right-sized, and allows for deferring the larger architectural decisions to the last responsible moment
  • 20. Agile Manifesto vs. BDUF We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items onthe right, we value the items on the left more.
  • 21. Modeling Problems - A Typical Chain of Events Some up-front design of the system Development begins Design or implementation of the design changes Architecture problems discovered and solved during development Changing requirements Original design documentation is not kept up-to-date Perceived value of design documentation – and eventually design, architecture, and architects themselves – erodes
  • 22. Why Model at All? Improved productivity  Reduced technical risk Reduced development time Improved communication Scaling agile software development (provides the technical direction required by sub-teams to define and guide their efforts within the overall project) Improved team organization (Ambler http://www.agilemodeling.com/essays/initialArchitectureModeling.htm ) Reverse Engineering of Existing Systems – to help people wrap their heads around an undocumented, existing system Forward Engineering for New Systems – for communication of architecture and design Software is difficult to explain and detail to both developers and the uninitiated
  • 23.
  • 24. Agile Modeling – AMDD – Scott Ambler Document Late. Write documentation as late as possible, avoiding speculative ideas that are likely to change in favor of stable information Executable Specifications. Specify requirements in the form of executable "customer tests", and your design as executable developer tests, instead of non-executable "static" documentation Iteration Modeling. At the beginning of each iteration you will do a bit of modeling as part of your iteration planning activities
  • 25. Agile Modeling – Part 2 Just Barely Good Enough (JBGE) artifacts.  A model or document needs to be sufficient for the situation at hand and no more Model a bit Ahead. Sometimes requirements that are nearing the top of your priority stack are fairly complex, motivating you to invest some effort to explore them Model Storming. Throughout an iteration you will model storm on a just-in-time (JIT) basis for a few minutes to explore the details behind a requirement or to think through a design issue Discard Temporary Models Update Only When It Hurts
  • 26. Emergent Architecture – Scrum.org Architecture is a development task “Architects” are Scrum team members – “architects” Architecture emerges as real deliverables are created It is not valid until it is vetted out in a real system – this has always been true Build at least one piece of business functionality every sprint
  • 27. Emergent Architecture – Part 2 “Just enough” documentation Architecture exists to serve the team, not the other way around
  • 28. Emergent Architecture – Part 3 Build in flexibility to adapt to reasonable changes without building a “meta-product” DRY YAGNI TDD SoC IoC and DI SRP DDD
  • 30. Today’s Presentation UML and UML Modeling with VS 2010 Ultimate Agile Development and Agile Modeling An Agile Development Workflow using the visualization and modeling features of Feature Pack 2
  • 31. Modeling Problems - A Typical Chain of Events Some up-front design of the system Development begins Design or implementation of the design changes Architecture problems discovered and solved during development Changing requirements Original design documentation is not kept up-to-date Perceived value of design documentation – and eventually design, architecture, and architects themselves – erodes
  • 32. The Holy Grail vs. Reality The Holy Grail in this situation is probably a full round-tripping system diagram to code code to diagram with differencing and merge resolution in between allowing for solutions to emerge from either side, and to always be kept in sync
  • 33. The Holy Grail vs. Reality A reasonable reality, in the meantime, for forward engineering: Some design upfront – “Planned” diagrams Generate skeleton code from this design Development - actuals can be verified against the original design document, and changes in design or implementation should be justified by the developer Generate diagrams at the end of the cycle – “Actually Implemented” diagrams Actual vs. Planned diagrams can be excellent learning tools and/or post-mortem artifacts
  • 34.
  • 35. Caveats You do not have any automatic merge between steps, you must manually difference and resolve.
  • 36. “Pass the Baton” – A Live Example
  • 37.
  • 38. Resources Agile, Agile Architecture, Agile Modeling www.Scrum.org www.AgileModeling.com VS 2010 Architecture Tools MSDN Library “Modeling the Application” http://msdn.microsoft.com/en-us/library/57b85fsc.aspx Cameron Skinner’s Bloghttp://blogs.msdn.com/b/camerons/ Other www.Centare.com www.GaryPedretti.com – my blog
  • 39. Thank You!! Centare Group, Ltd. Gary.Pedretti@Centare.com

Editor's Notes

  1. MS ALM Gold Partner – one of only 5 in the USMS ALM “Inner Circle”
  2. We will start with a quick discussion of the history of UML, agile development, and modeling tools in the Microsoft world. Then we will cover the basics of UML modeling with VS 2010, covering class, layer, dependency graph, and sequence diagrams. Finally, we will talk about establishing an agile modeling and development workflow with forward and reverse engineering using the visualization and modeling features of Feature Pack 2.
  3. Unified ideas and symbols of “The three amigos”Defacto standard controlled by the OMG organization – a consortium of companies such as MS, HP, Sparx, etc.
  4. A system is represented by a model, which is separate from any diagrams that describe the model, and also includes textual artifacts like use casesStructural or static diagrams (class, deployment)Behavioral or dynamic diagrams (sequence, activity)
  5. Solution Introduction and LayeringArchitecture Explorer – drill down, filteringUML Model Explorer – Use Case Diagrams – links to work items, navigable artifactsComponent DiagramActivity DiagramSequence Diagram – reverse engineer Invoice Service GetInvoiceForDisplay, navigableClass Diagram – navigableDependency Diagram – show drill downs and how context-appropriate dependencies are shownLayer Diagram – drag and drop, generate dependencies, demonstrate build validation, show color-coded final
  6. I’m not going to try to cover all of what “agile” might mean.Not only acknowledgingthat change happens, but embracing changeEncourages communication in a tight feedback loop with the business – fail early, build trust, establish a common language- Build what is important for right now, in short iterations, and respond to changes in the business and market at the end of every iterationXP, Scrum, Lean ManufacturingContinuous Integration, TDD, YAGNI, DDD
  7. Very aware of what the real value of documentation is, and what we are trying to achieve with documentation – the ability to understand how we will build a system, and the ability to understand the system after entering the maintenance phase
  8. How can agile methodologies help us out here?
  9. OK, before we even got to the point where we realized there were problems with the cycle, why did we even start modeling in the first place???How about “a picture is worth a thousand words.”
  10. How is this like software development?There was a design, a modelThe vision was NOT shared between Nigel and the developer“I only did what you told me to do”Let’s minimize the problem with a workaround – “keep the dwarf clear from the monument so he doesn’t trod upon it”What went wrong from an agile perspective?No communication, feedback, or iterating with the product owners or stakeholders during development – “dropped a bomb” on the band on opening nightWhat can we learn from this?Modeling and diagrams are important, and can be interpreted literally – they are valuable and carry risk – inches vs. feetKeep communication open, iterate, be transparent
  11. The Visualization and Modeling Feature Pack is now part of VS 2010 Feature Pack 2.
  12. How can agile methodologies help us out here?
  13. Two-way movement between code and diagrams != round-tripping