Visual Studio for Software Architects and Visual Studio for Software Architects and Future Directions in Modeling Future Directions in Modeling ToolsTools
Jochen SeemannJochen SeemannTLN311TLN311Program ManagerProgram ManagerMicrosoft CorporationMicrosoft Corporation
2
Visual Languages Visual Languages CommunicateCommunicate information for a specific information for a specific domaindomain
propertyCorona
Corona
Corona
label
Shape
GroupBase
members
waiting
runningpause begin
stop
playing
+v
0v0.7CR
R
C
0.1R
C
R0.1R
3
TopicsTopicsVisual DSLs for the application life Visual DSLs for the application life cyclecycleModeling platform architectureModeling platform architectureBuilding designers with the DSL ToolsBuilding designers with the DSL ToolsDemo: DSLs for the application life Demo: DSLs for the application life cyclecyclePartner demo: ‘Accelerate’ from DSLs Partner demo: ‘Accelerate’ from DSLs into .NET codeinto .NET codeWhat’s next?What’s next?
4
Domain Specific Languages Domain Specific Languages In The Software Life CycleIn The Software Life Cycle
Visual Languages… Visual Languages… To understand or define requirements To understand or define requirements To understand or define designTo understand or define designTo generate parts of the solutionTo generate parts of the solutionTo implement design patterns for To implement design patterns for specific frameworks and architecturesspecific frameworks and architecturesTo customize applications and To customize applications and application componentsapplication componentsTo visualize existing systemsTo visualize existing systems……
5
Building A Designer For Visual Building A Designer For Visual StudioStudio
ToolboxToolbox
PropertiesPropertiesWindowWindow
ModelModelExplorerExplorer
ValidationValidation
Drawing surface Drawing surface with domain- with domain-
specific notationspecific notation
6
Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio
Modeling Platform Modeling Platform ArchitectureArchitecture
Domain ModelDomain ModelFrameworkFramework
Design SurfaceDesign SurfaceFrameworkFramework
TemplateTemplateEngineEngine
ShellShellFrame-Frame-workwork
ValidationValidationFrame-Frame-workwork
In-memory graph In-memory graph database with rich database with rich
services (e.g., services (e.g., transactions, transactions,
serialization…) and serialization…) and queries queries
Extensible Extensible drawing surface drawing surface with support for with support for
routing and routing and auto-layout auto-layout
Artifact Artifact generatigenerati
on on
Checks constraints Checks constraints and guides user to and guides user to
resolve issuesresolve issues
Visual Studio Visual Studio UI integration UI integration
for for components components like Toolbox like Toolbox and menusand menus
7
The Modeling PlatformThe Modeling Platform
MicrosoftMicrosoftDesignerDesigner
MicrosoftMicrosoftDesignerDesigner
PartnerPartnerDesignerDesigner
Your OwnYour OwnDomain-Domain-SpecificSpecificDesignerDesigner
??
Microsoft Modeling PlatformMicrosoft Modeling Platformin Visual Studioin Visual Studio
ArchitectArchitect DeveloperDeveloperBusinessBusinessAnalystAnalystDeveloperDeveloper
8
A Simple Activity A Simple Activity LanguageLanguage
AttendDSL Session
Try outDSL Tools in Hands-On Lab
PDCParty
Tonight
Fascinated Fascinated by DSL Toolsby DSL Tools
Already Already thirstythirsty
Too lateToo late Thirsty Thirsty
nownow
9
Building A DSL – Step 1Building A DSL – Step 1Define the domain modelDefine the domain model
AttendDSL Session
Try outDSL Tools in Hands-On Lab
PDCParty
Tonight
10
Building A DSL – Step 2Building A DSL – Step 2Define the notationDefine the notation
AttendDSL Session
Rounded RectangleRounded Rectangle Outline color: BlackOutline color: Black Fill color: GrayFill color: Gray
Text DecoratorText Decorator Position: CenterPosition: Center
Fascinated Fascinated by DSL Toolsby DSL Tools
Text DecoratorText Decorator Position: Source, bottomPosition: Source, bottom
ConnectorConnector solidsolid blackblack filled arrowheadfilled arrowhead
11
Building A DSL – Step 3Building A DSL – Step 3Define visualization of domain model Define visualization of domain model via notation elementsvia notation elements
AttendDSL Session
ShapeShape Domain ModelDomain Model
12
Building A Designer With DSL Building A Designer With DSL ToolsTools
NotationNotationDefinitionDefinition
MappingMappingDefinitionDefinition
DomainDomainModelModel
DefinitionDefinition
Code generated Code generated by DSL Toolsby DSL Tools
CustomCustomBehaviorBehavior
Validation/Validation/ConstraintsConstraints
Custom Custom XMLXML
SerializationSerialization
Code/Code/ArtifactArtifact
GenerationGeneration
Custom CodeCustom Code(SDK)(SDK)
13
Building an Activity Building an Activity Designer with DSL ToolsDesigner with DSL Tools
Jochen SeemannJochen SeemannProgram ManagerProgram ManagerMicrosoft CorporationMicrosoft Corporation
14
Artifact Generation – See Artifact Generation – See HOLHOL
15
Rental Car ApplicationRental Car ApplicationImagine …Imagine …
Typical rental car companyTypical rental car companyCustomers returning carsCustomers returning carsEmployees with mobile devices Employees with mobile devices check-in the car and collect data for check-in the car and collect data for billingbilling
For our example let’s pickFor our example let’s pickThe car return process, Use Cases, The car return process, Use Cases, etc.etc.
16
Viewpoints Of The Viewpoints Of The ApplicationApplication
BusinessBusinessRequiremenRequiremen
tsts
BusinessBusinessProcessProcess
System System DesignDesign
ApplicationApplicationDesignDesign
ContractContractDesignDesign
DatabaseDatabaseDesignDesign
DeploymentDeploymentDesignDesign
OrchestratioOrchestrationn
DesignDesign
““Software Factory” VisionSoftware Factory” Vision
ModelsModelsPatternsPatternsProcessProcessToolsToolsFrameworksFrameworks
17
Systems Design Systems Design
Business Business Requirements Requirements
Two Designers And Two Designers And MappingMapping
Use CaseUse CaseDesignerDesigner
ActivityActivityDesignerDesigner
18
Use Case Designer and Use Case Designer and Activity DesignerActivity Designer
Jochen SeemannJochen SeemannProgram ManagerProgram ManagerMicrosoft CorporationMicrosoft Corporation
19
ApplicationApplicationDesign Design
Design DSL & Class Design DSL & Class DesignerDesigner
DSL for Rental DSL for Rental Car StatesCar States
ClassClassDesignDesign
CodeCodeCodeCodeCodeCode
20
State-based Design DSL, State-based Design DSL, linked to Class Designer and Codelinked to Class Designer and Code
Jochen SeemannJochen SeemannProgram ManagerProgram ManagerMicrosoft CorporationMicrosoft Corporation
21
PartnerPartnerDesignerDesigner
EDS: EDS: Model-DrivenModel-Driven Development Development for .NETfor .NET
DSL-based designer for business DSL-based designer for business entitiesentitiesBasis for 3-tier .NET Enterprise Basis for 3-tier .NET Enterprise ApplicationsApplications
Microsoft Modeling PlatformMicrosoft Modeling Platformin Visual Studioin Visual Studio
MicrosoftMicrosoftDesignerDesigner
MicrosoftMicrosoftDesignerDesigner
PartnerPartnerDesignerDesigner
Your OwnYour OwnDomainDomainSpecific-Specific-DesignerDesigner
??
22
Model-Driven Development Model-Driven Development of .NET Enterprise of .NET Enterprise ApplicationsApplicationsSusan EntwisleSusan EntwisleLead TechnologistLead TechnologistEDSEDS
23
Generate From Entity Generate From Entity Model Model
BusinessBusinessEntityEntityDesignDesign
DatabaseDatabaseDesignDesign
ApplicationApplicationDesignDesign
C# C# CodeCodefor allfor all3 tiers3 tiers
C# C# CodeCode
for Unitfor UnitTestsTests
DDLDDLScriptScriptfor DBfor DB
StoredStoredProceduresProcedures
for DBfor DB
24
Microsoft Modeling Microsoft Modeling Platform Platform And DSL ToolsAnd DSL ToolsMicrosoft Modeling Platform allows Microsoft Modeling Platform allows
users, partners and Microsoft teams users, partners and Microsoft teams to build graphical designersto build graphical designersThe Modeling Platform enables The Modeling Platform enables sharing of underlying metadata and sharing of underlying metadata and integration of the various designersintegration of the various designersMicrosoft DSL Tools generate Microsoft DSL Tools generate executable designer based on executable designer based on description of the “Domain-Specific description of the “Domain-Specific Language” (DSL) used in the designerLanguage” (DSL) used in the designer
25
What’s Next?What’s Next?DSL Tools are in an early stageDSL Tools are in an early stageCTP releases for Visual Studio 2005 CTP releases for Visual Studio 2005 available on the Webavailable on the WebRTW for Version 1 planned for first RTW for Version 1 planned for first quarter of 2006quarter of 2006
Templates for Enterprise ModelingTemplates for Enterprise ModelingVersion 2 planned for next release of Version 2 planned for next release of Visual StudioVisual Studio
Designer Integration FrameworkDesigner Integration Framework
26
Community And Community And Resources Resources
DSL Tools HomepageDSL Tools Homepage http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools/
DSL Tools Community ForumDSL Tools Community Forum http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=61
Software Factorieshttp://lab.msdn.microsoft.com/teamsystem/workshop/sf/
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.