Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi Architect & Head of Enterprise Team Microsoft EMEA D&PE
2 Agenda Modeling and Methods Software Factories Tools for Architects Domain Specific Languages Summary
3 You all know what modeling is…
4 Spend a lot of time drawing loads of these…
5..throw them away and get on with the code But isn’t the code also a model? So what exactly do we mean by “model”? Using Microsoft.Fabriq. EnterpriseInstrumentation.Schema; namespace Microsoft.Fabriq.Util { /// /// /// This class provides unified /// This class provides unified /// management, eventing, … /// management, eventing, … /// /// public class Logger public class Logger { public static void LogErrorMessage( string message, int severity, string errorCode) public static void LogErrorMessage( string message, int severity, string errorCode) { ErrorMessageEvent.Raise( FabriqEvents.FabriqEventSource, message, severity, errorCode ); ErrorMessageEvent.Raise( FabriqEvents.FabriqEventSource, message, severity, errorCode ); } }}
6 Are our models “mathematical models”?
7 Are they “scale models”?
8 Are they “theoretical models”?
9 Definitely not this kind of model… Copyright:
10 A software “model” is Partly about visualisation Abstraction for clarity Because picture worth a thousand words Sometimes about algorithms Expression in a convenient form Because compact and efficient Often a set of instructions A recipe Because can be automated
11 We need models because… We need to capture the “method” in the madness of software development? Bad Stuff Happens!
12
13
14 Agenda Modeling and Methods Software Factories Tools for Architects Domain Specific Languages Summary
15 Software Development as Craftsmanship Labor Intensive Generic Tools Generic Processes One off applications Hand stitched from scratch Minimal reuse Overruns, defects, security holes, project failures
16 Exploiting Commonality We already exploit economies of scale to automate production Stamping out many identical copies of a prototype Used to produce CDs/DVDs Does nothing to help development
17 Exploiting Commonality We can also exploit economies of scope Reuse designs & components Build many similar but distinct prototypes Key is supporting variability Define only the unique pieces of each system
18 Software Factories Domain-specific process Domain-specific tools & languages Domain-specific content Automate rote and menial tasks General-purpose IDEs become domain-specific software factories
19 Software Factories Pillars Process, Tools & Languages, Content, Automation Software Factories Visual Studio 2005 DSL Tools GAT Project Management Guidance Automation Modeling Platform MSF Processes (Agile / Formal) Trustworthy Metadata-Rich Platform
20 Agenda Modeling and Methods Software Factories Tools for Architects Domain Specific Languages Summary
21 Software Factories Vision BusinessRequirements BusinessProcess System Design ApplicationDesign ContractDesign DatabaseDesign DeploymentDesign OrchestrationDesign Viewpoints of an application ModelsPatternsProcessToolsFrameworks
22 Systems Design BusinessRequirements Two Designers And Mapping Use Case Designer ActivityDesigner
23 Application & Logical Datacenter Designers in Visual Studio 2005
24 Agenda Modeling and Methods Software Factories Tools for Architects Domain Specific Languages Summary
25 Domain Specific Languages In The Software Life Cycle The aim is to create languages… To understand or define requirements To understand or define design To generate parts of the solution To implement design patterns for specific frameworks and architectures To customize applications and application components To visualize existing systems …
26 Building A Designer For Visual Studio Toolbox PropertiesWindow ModelExplorer Validation Drawing surface with domain- specific notation
27 Microsoft Modeling Platform In Visual Studio Modeling Platform Architecture Domain Model Framework Design Surface FrameworkTemplateEngineShellFrame-workValidationFrame-work In-memory graph database with rich services (e.g., transactions, serialization…) and queries Extensible drawing surface with support for routing and auto-layout Artifact generation Checks constraints and guides user to resolve issues Visual Studio UI integration for components like Toolbox and menus
28 The Modeling Platform MicrosoftDesignerMicrosoftDesignerPartnerDesigner Your Own Domain-SpecificDesigner ? Microsoft Modeling Platform in Visual Studio ArchitectDeveloper Business Analyst Developer
29 A Simple Activity Language Attend DSL Session Download & Try out DSL Tools Drink Beer Fascinated by DSL Tools Alreadythirsty Amazed Thirsty now Thirsty now
30 Building A DSL Define the domain model Attend DSL Session Download & Try out DSL Tools Drink Beer
31 Building Use Case Designer with DSL Tools
32 Artifact Generation
33 Interaction Design using Statecharts
34 Agenda Modeling and Methods Software Factories Tools for Architects Domain Specific Languages Summary
35 Summary - Key Points Software Factories Consolidate implicit knowledge Increase productivity and predictability Reduce cost and risk DSLs Exploit commonality & support variability Generate executable domain specific designers based language description Goal Modeling support everywhere
36 What’s Next? DSL Tools are in an early stage CTP releases for Visual Studio 2005 available on the Web RTW for Version 1 planned for first quarter of 2006 Templates for Enterprise Modeling Version 2 planned for next release of Visual Studio Designer Integration Framework
37 Resources Book Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Jack Greenfield, Keith Short, et al, ISBN , Wiley Publishing Inc., Websites Software Factories DSL Tools Homepage DSL Tools Community Forum Visual Studio 2005 Team System Visual Studio Team System Workshop Domain-Specific Language (DSL) Tools NewsgroupsMicrosoft.private.whidbey.teamsystem.architectMicrosoft.private.whidbey.teamsystem.architect.modeling
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.