![Page 1: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/1.jpg)
20052005 Microsoft PAKISTAN DEVELOPER CONFERENCEJune 13-15, 2005
![Page 2: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/2.jpg)
22
Arvindra SehmiHead of Enterprise & ArchitectureDeveloper & Platform GroupMicrosoft EMEA [email protected]/asehmi
Acknowledgement:Keith Short & Jack Greenfield, ArchitectsEnterprise Tools, Visual Studio, Microsoft Corporation
Software FactoriesSoftware Factories& DSL Tools& DSL Tools
![Page 3: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/3.jpg)
33
AgendaAgenda
• Modeling and Methods
• What is a Software Factory?
• A Software Factory Schema
• Domain Specific Languages
• Wrap Up
![Page 4: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/4.jpg)
44
AgendaAgenda
• Modeling and Methods
• What is a Software Factory?
• A Software Factory Schema
• Domain Specific Languages
• Wrap Up
![Page 5: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/5.jpg)
55
You all know what You all know what modelingmodeling is… is…
![Page 6: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/6.jpg)
66
Spend a lot of time drawing loads Spend a lot of time drawing loads of these…of these…
{creditCardDetails->isEmpty( ) =customer.creditAccount->notEmpty( )}
DeliveryAddress
addLine1addLine2postCodetown
CreditAccount
numberbalance
GeneralLedger
Supplier
name
StockReplacementOrder
orderDateorderQuantity
1
0..*
1
0..*
Catalogue
CatalogueItem
stockLeveltitleeditioncomposerminStockLevelstockRequestsidreorderQtypriceExVAT
1
*
1
*
*
1
*
1
CreditCardDetails
accountNumberexpiryDate
Customer
firstNamesecondNameprefixcustomerNumberpasswordemailAddress
*
1
*
1
1
0..1
1
0..1
OrderItem
qty
*
1
*
1
Posting
amountdate
1
0..*
1
0..*
Order
expectedDeliveryDateorderCreationDate*0..1 *0..1
0..*
1
0..*
1
1
1..*
1
1..*
0..*
1
0..*
1
![Page 7: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/7.jpg)
77
..throw them away and get on with ..throw them away and get on with the codethe code
• But wait!
• Isn’t the code alsoa model?
• So what exactly do we mean by “model”?
UsingMicrosoft.Fabriq.EnterpriseInstrumentation.Schema;
namespace Microsoft.Fabriq.Util{ /// <summary> /// This class provides unified /// management, eventing, … /// </summary> public class Logger { public static void LogErrorMessage(
string message, int severity, string errorCode)
{ ErrorMessageEvent.Raise(
FabriqEvents.FabriqEventSource, message, severity, errorCode );
} }}
![Page 8: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/8.jpg)
88
Are our models “mathematical Are our models “mathematical models”?models”?
![Page 9: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/9.jpg)
99
Are they “scale models”?Are they “scale models”?
![Page 10: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/10.jpg)
1010
Are they “theoretical models”?Are they “theoretical models”?
![Page 11: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/11.jpg)
1111
Definitely not this kind of model…Definitely not this kind of model…
Copyright: www.gucci.comCopyright: www.gucci.com
![Page 12: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/12.jpg)
1212
A software “model” isA 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
![Page 13: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/13.jpg)
1313
You all know there is a You all know there is a ““methodmethod in the madness” in the madness”
of software development…of software development…
![Page 14: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/14.jpg)
1414
32
Core Component BuilderDev Lead
-Build core reusable components-Build business objects
-Refine DB schemas on developmentdatabases
-Extend core components
Solution Structure DesignerProgrammer Analyst, Application Architect
-Design applications that implement business processes-Analyze and design solution structures
-Validate an application’s viability against corporatedata model
CoderDeveloper
-Use existing components-Code forms
Business AnalystBusiness Analyst, Executive
-Champion projects-Make go/no go decisions
-Define business process flow
Programming/Platforms ExpertArchitect
-Provide organizations strategic technology direction-Define organizations technology standards
-Oversee design of applications throughout theorganization
15
4
1 Mistakes in application architecture are costly, but so is having a hands on architect for every project.
2 Requirements are often vague or incomplete.
3 Business analysts find it hard to tell if an app design properly implements a business process.
4 Programmer analysts can’t be sure that dev implement what was specified.
5 Mistakes in defining data access patterns are costly, but so is having a hands on data architect for every project.
6 Talent for implementing solutions is too expensive, or requires too much oversight.
7 Following architectural guidance requires copious reading and double checking of policies, which takes time away from actual coding.
6
2
7
![Page 15: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/15.jpg)
1515
Expensive to do thisfor every project
Too much hand holding
Senior User-Domain expert
-Consults on app design-Represents rank and file users
Business Analyst-Champions Project
-Makes Go/No Go Decisions-Defines business process flow
Graphic Designer-Design Look and Feel-Customer Advocate
Data Modeler(Data Atchitect)
-Analyze business requirements-Create conceptual models of information
-Detailed analysis
Solution Structure Designer(Programmer Analyst)
-Design applications that implement biz processes-Validate an application's viability against corporate data model
Web Dev(HTML Centric)
-HTML and Scripting-Script client side and server side behavior
-Implement styles/look and Feel
DBA/Ops-Keep systems running
-Installing/setting up servers and other computers-Setting up/maintaining databases
Lead Developer-Uses VS to build core reusable components
-Builds Biz Objects (data APIs)-Defines DB Schemas
-Uses VS to extend core components
Developer-Uses VS to use components
-Uses VS to code forms
Users
Interaction/Experience Manager
Domain Info<Informal, Verbal>
<Word Docs>
Project/IT Manager-Overall Responsibility
-Keep schedule up to data-Set timelines and key dates
-Set delivery Data
Description of Process<Visio Diagram>
Description of Application-Flow Diagram-Prototype
Policies and restrictions
Programming/Platform Expert(Architect)
-Provide Strategic Direction-Determines Company Tech Standards-Oversees design of app architectures
throughout the organization
Feedback on errors/intent
Database Specs
Possible Solutions
Spec
Feedback
Spec
Spec
Feedback
Description of Application-Flow Diagram-Prototype
Visual Spec
Path to physical DB
Feedback on errors/intent
Status Reports
Estimates
Status Reports
Estimates
Data Access API
Requirements often vague, incomplete
Hard to tell ifapp design correctlydefines biz process
PM has to trust these estimates No way to guarantee
spec is followed
No way to guaranteespec is followed
Requirements(often new)
Logical/physicalarchitecture
Requirements(QOSs)
Work Items
DB Scripts
Feedback on DB Scripts
Policies and restrictions
Advice and designs fortricky parts of the app
Domain Info<Informal, Verbal>
<Word Docs>
![Page 16: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/16.jpg)
1616
A software “method” isA software “method” is
• A way of working from requirements to through implementation to deployment
• Typically process-oriented Identifying a set of artifacts Building those artifacts Producing deliverables
![Page 17: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/17.jpg)
1717
Customers Want To KnowCustomers Want To Know
• What types of systems can I build? What’s the architecture of each type?
• How do I go from requirements to deployment? What artifacts and how are they related?
• Why are methodologies so ineffective? Why aren’t they integrated with my tools? Why can’t I get detailed and specific guidance for my
project?
• Why are modeling tools so ineffective? Why can’t they generate production quality code? Why don’t models stay synchronized with code? Why can’t models fit my file-oriented environment?
![Page 18: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/18.jpg)
1818
Is Agility The Answer?Is Agility The Answer?
• Agile methods optimize for change Collaborating instead of documenting Building and running in small iterations Continuously validating requirements Continuously refactoring the software Time boxing or cash boxing the project
• Where do they fall short? Don’t scale up to large or complex projects One-off development of generic systems Lack of metadata limits degree of automation Lack of architecture documentation creates
integration and support issues
![Page 19: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/19.jpg)
1919
Is Formality the Answer?Is Formality the Answer?
• Formal methods optimize for complexity Prescribing roles, artifact, activities Emphasizing requirements, analysis, design Using models to document architecture
• Where do they fall short? Don’t respond rapidly to change One-off development of generic systems Coding, testing, debugging, instrumentation,
deployment, management, maintenance Informal languages and mappings limit degree of
automation
![Page 20: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/20.jpg)
2020
AgendaAgenda
• Modeling and Methods
• What is a Software Factory?
• A Software Factory Schema
• Domain Specific Languages
• Wrap Up
![Page 21: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/21.jpg)
2121
Software Development as Software Development as CraftsmanshipCraftsmanship
• Labor Intensive
• Generic Tools
• Generic Processes
• One off applications
• Hand stitched from scratch
• Minimal reuse
Overruns, defects, security holes, project failures
![Page 22: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/22.jpg)
2222
Exploiting CommonalityExploiting 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
![Page 23: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/23.jpg)
2323
Exploiting CommonalityExploiting 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 piecesof each system
![Page 24: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/24.jpg)
2424
Software FactoriesSoftware Factories
• Domain-specific process
• Domain-specific tools & languages
• Domain-specific content
• Automate rote and menial tasks
General-purpose IDEs become domain-specific software factories
![Page 25: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/25.jpg)
2525
Software Factories Pillars – TBCSoftware Factories Pillars – TBCWarning: This is a personal perspectiveWarning: This is a personal perspective
Process, Tools & Languages, Content, Automation
Software Factories
Visual Studio (Whidbey, Orcas)
DS
L T
ools
GA
T
“FA
LC
ON
”“FA
LC
ON
”
GA
T
SD
M S
DK
?
MS
F P
rocess
Ag
ile /
Form
al
Tru
stw
ort
hy
Meta
data
Ric
h P
latf
orm
![Page 26: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/26.jpg)
2626
AgendaAgenda
• Modeling and Methods
• What is a Software Factory?
• A Software Factory Schema
• Domain Specific Languages
• Wrap Up
![Page 27: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/27.jpg)
2727
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Deployment Deployment UnitsUnits
packaged intopackaged into
Code VisualizationCode Visualization
Class Designerand
two-way code synch
Class Designerand
two-way code synch
Class Designerand
two-way code synch
Class Designerand
two-way code synch
![Page 28: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/28.jpg)
2828
Raising The Level Of AbstractionRaising The Level Of Abstraction
??
Config Files.asmx Files .asmx Code Behinds
Other Code
Projects and Templates
Assemblies
![Page 29: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/29.jpg)
2929
??
Raising The Level Of AbstractionRaising The Level Of AbstractionApplication Connection Model
Config Files.asmx Files .asmx Code Behinds
Other Code
Projects and Templates
Assemblies
![Page 30: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/30.jpg)
3030
Models and FrameworksModels and Frameworks
CustomCustomPartialPartial
ClassesClassesFrameworkFramework
PartialPartialClassesClasses
ASP.NETASP.NET
Config FilesConfig Files
Other Other ResourcesResources
usesuses
usesuses
completescompletes
FrameworkFrameworkToolsTools
DSLDSLEditorEditor
DSLDSLModelModel
generatesgenerates
OtherOtherEditorsEditors
edit / buildedit / build
generatesgenerates
Model FilesModel Files(SDM) (SDM)
![Page 31: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/31.jpg)
3131
Effective TransformationsEffective Transformations
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
Model
Application Code
PlatformFrameworks
Model
Generated Code
Platform
GenerateGenerateTo PlatformTo Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Application Code
Model
PlatformFrameworks
Generated Code
Model
Platform
Old CaseOld Case
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
PlatformFrameworks
Application Code
Model
Platform
Generated Code
Model
InterrelatedInterrelatedModelsModels
Model
Application CodeDomain Specific
Framework
PlatformFrameworks
Model
Generated CodeFramework
Pattern Language
Platform
Model
Application CodeDomain Specific
Framework
PlatformFrameworks
Model
Generated CodeFramework
Pattern Language
Platform
Generate to Generate to FrameworkFramework
DSLsDSLs
![Page 32: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/32.jpg)
3232
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Deployment Deployment UnitsUnits
packaged intopackaged into
Services, Services, Messages, Applications, Messages, Applications,
EndpointsEndpoints
Abstraction/Abstraction/refinementrefinement
Vertical Mapping - System DesignVertical Mapping - System Design
![Page 33: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/33.jpg)
3333
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Physical Servers Physical Servers and Network and Network
SegmentsSegments
Deployment Deployment UnitsUnits
packaged intopackaged into deployed ondeployed on
Services, Services, Messages, Applications, Messages, Applications,
EndpointsEndpointsLogical Data Center Logical Data Center
Host SoftwareHost Software
Abstraction/Abstraction/refinementrefinement
Vertical Mapping - Data Center DesignVertical Mapping - Data Center Design
![Page 34: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/34.jpg)
3434
Providing TraceabilityProviding Traceability
Applications
ApplicationHosting
Logical Machines & Network Topology
Hardware
SystemDefinition
Model
![Page 35: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/35.jpg)
3535
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Physical Servers Physical Servers and Network and Network
SegmentsSegments
Deployment Deployment UnitsUnits
packaged intopackaged into deployed ondeployed on
Services, Services, Messages, Applications, Messages, Applications,
EndpointsEndpointsLogical Data Center Logical Data Center
Host SoftwareHost Software
constraintsconstraints
Horizontal Mapping - DeploymentHorizontal Mapping - Deployment
![Page 36: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/36.jpg)
3636
DB DB DefinitionsDefinitions
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Physical Servers Physical Servers and Network and Network
SegmentsSegments
Deployment Deployment UnitsUnits
packaged intopackaged into deployed ondeployed on
Services, Services, Messages, Applications, Messages, Applications,
EndpointsEndpoints
Logical Business Logical Business Entities,Entities,
Operations, RulesOperations, Rules
Implementable Business Implementable Business Processes and EntitiesProcesses and Entities
User InterfaceUser InterfaceProcessProcess
Logical Data Center Logical Data Center Host SoftwareHost Software
User Interface Process DesignUser Interface Process Design
![Page 37: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/37.jpg)
3737
DB DB DefinitionsDefinitions
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Physical Servers Physical Servers and Network and Network
SegmentsSegments
Deployment Deployment UnitsUnits
packaged intopackaged into deployed ondeployed on
Services, Messages, Applications,
Endpoints
LogicalBusiness Entities,LogicalBusiness Entities,Operations, RulesOperations, Rules
BiztalkSchedules & Rules
Implementable Business Implementable Business Processes and EntitiesProcesses and Entities
User Interface Process
Business Processes and Entities
Manual Manual ProcessesProcesses
Business Business CapabilitiesCapabilities
Logical Data Center Logical Data Center Host SoftwareHost Software
Business Entity Business Entity ImplementationImplementation
![Page 38: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/38.jpg)
3838
DB DB DefinitionsDefinitions
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Physical Servers Physical Servers and Network and Network
SegmentsSegments
Deployment Deployment UnitsUnits
packaged intopackaged into deployed ondeployed on
Services, Services, Messages, Applications, Messages, Applications,
EndpointsEndpointsLogical Business Entities,Logical Business Entities,
Operations, RulesOperations, Rules
Implementable Business Implementable Business Processes and EntitiesProcesses and Entities
User InterfaceUser InterfaceProcessProcess
Business Processes and Business Processes and EntitiesEntities
Business Business CapabilitiesCapabilities
Logical Data Center Logical Data Center Host SoftwareHost Software
Business Process ModelingBusiness Process Modeling
![Page 39: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/39.jpg)
3939
DB DB DefinitionsDefinitions
XML, Projects,XML, Projects,Configs, Classes, Configs, Classes,
CodeCode
Physical Servers Physical Servers and Network and Network
SegmentsSegments
Deployment Deployment UnitsUnits
packaged intopackaged into deployed ondeployed on
Services, Services, Messages, Applications, Messages, Applications,
EndpointsEndpointsLogicalBusiness Entities,LogicalBusiness Entities,
Operations, RulesOperations, Rules
BiztalkBiztalkSchedules & RulesSchedules & Rules
Implementable Business Implementable Business Processes and EntitiesProcesses and Entities
User Interface User Interface ProcessProcess
Business Processes and Business Processes and EntitiesEntities
Manual Manual ProcessesProcesses
Business Business CapabilitiesCapabilities
Logical Data Center Logical Data Center Host SoftwareHost Software
Business Process Business Process ImplementationImplementation
![Page 40: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/40.jpg)
4040
DB Definitions
XML, Projects,Configs, Classes,
Code
Physical Servers and Network
Segments
Deployment Units
Services, Messages, Applications,
EndpointsLogical Business Entities
Rules, Operations
BizTalkSchedules & Rules
Implementable Business Processes and Entities
User InterfaceProcess
Business Processes and Entities
Manual Processes
Business Capabilities
Logical Data Center Host Software
A Graph of Interrelated Viewpoints
(IEEE1471)
Software Factory SchemaSoftware Factory Schema
![Page 41: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/41.jpg)
4141
DB Definitions
XML, Projects,Configs, Classes,
Code
Physical Servers and Network
Segments
Deployment Units
packaged into deployed on
Services, Messages, Applications,
Endpoints
Logical Business EntitiesOperations, Rules
WinOESchedules & Rules
Implementable Business Processes and Entities
User InterfaceProcess
Business Processes and Entities
Manual Processes
Business Capabilities
Logical Data Center Host Software
Recipe for a system family
Software Factory SchemaSoftware Factory Schema
ModelsModelsPatternsPatternsBlocksBlocksFrameworkFrameworkssComponentComponentssProcessProcessTest CasesTest CasesToolsTools
![Page 42: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/42.jpg)
4242
……A Software Factory SchemaA Software Factory Schema
• Like a recipe for a specific class of systems A set of viewpoints related by formal mappings Describes artifacts required to build systems in the class and
explains how to combine them
• Implemented by a software factory template Configures Visual Studio to build members of the class Provides the necessary ingredients and tools Solution template, project templates, file templates, patterns,
dynamic help, work item types, workflow, check in policy, reports, groups & permissions, phase exit criteria
• Creates a domain specific IDE called a software factory Integrates tools, process and content for the class of systems Domain specific editing, compilation, debugging, refactoring,
building, testing, deployment, configuration management, defect tracking, reporting
![Page 43: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/43.jpg)
4343
AgendaAgenda
• Modeling and Methods
• What is a Software Factory?
• A Software Factory Schema
• Domain Specific Languages
• Wrap Up
![Page 44: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/44.jpg)
4444
Domain-Specific LanguagesDomain-Specific Languages
• Focused on a single aspect of app building Success in broad horizontal domains: SQL, Windows
Form Designer
• Designed support the concepts defined by an underlying framework Automate rote tasks with effective code generation
• Increase agility by visualizing concepts, generating code and other artifacts, enabling rapid iteration
Building them must be fast, cheap and easy
![Page 45: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/45.jpg)
4545
Building a DSLBuilding a DSLConcepts & Concepts & Well-formednessWell-formednessRulesRules
Generated and Generated and Related ArtifactsRelated Artifacts
Notations & Notations & Well-formednessWell-formednessRulesRules
XML SerializationXML Serialization
![Page 46: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/46.jpg)
4646
Visual LanguagesVisual LanguagesImportant
• Shapes
• Links, ends, style
• Labels
• Nesting
• Layout, routing
property
Corona
Corona
Corona
label
Shape
GroupBase
members
waiting
runningpause begin
stop
playing
+v
0v0.7CR
R
C
0.1R
C
R0.1R
![Page 47: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/47.jpg)
4747
Domain Specific Languages In The Domain Specific Languages In The Context Of The DSL ToolsContext Of The DSL Tools
• Visual 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
![Page 48: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/48.jpg)
4848
Building A Designer For Visual Building A Designer For Visual StudioStudio
ToolboxToolbox
PropertyPropertyBrowserBrowser
ExplorerExplorer
ValidationValidation
Drawing surface Drawing surface with domain with domain
specific notationspecific notation
![Page 49: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/49.jpg)
4949
Visual Studio Team SystemVisual Studio Team System
Change Management
Work Item Tracking
Reporting
Project Portal
Visual StudioTeam Foundation Server Integration Services
Project Management
Pro
ces
s a
nd
Arc
hit
ect
ure
P
roc
ess
an
d A
rch
ite
ctu
re
Gu
idan
ce
Gu
idan
ce
Dynamic Code Analyzer
Visual Studio Team Edition
Software Architects
Static Code Analyzer
Code Profiler
Unit Testing
Code Coverage
Team Explorer (includes Team Foundation Server CAL)
Visual Studio Professional Edition
Load Testing
Manual Testing
Test Case Management
Visual Studio Team Edition
Software DevelopersVisual Studio Team Edition
Software Testers
Vis
ua
l Stu
dio
Ind
us
try
V
isu
al S
tud
io In
du
str
y
Pa
rtn
ers
Pa
rtn
ers
Team Build
Visio for Enterprise Architects (in MSDN Premium Subscription)
Modeling PlatformModeling PlatformDSL ToolsDSL Tools
Application Designer
System Designer
Logical Datacenter Designer
Deployment Designer
Class Designer (in Visual Studio Standard Edition and higher)
![Page 50: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/50.jpg)
5050
A SDK To Build Visual Modeling A SDK To Build Visual Modeling ToolsTools
VisualStudio2005
Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio
DistributedDistributedSystemsSystems
DesignersDesigners
ClassClassDesignerDesigner
DSL Tools for Visual StudioDSL Tools for Visual Studio
Your newYour newDesignerDesigner
![Page 51: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/51.jpg)
5151
Microsoft Modeling PlatformMicrosoft Modeling PlatformIn Visual StudioIn Visual Studio
Modeling PlatformModeling Platform
Domain ModelDomain ModelFrameworkFramework
Design SurfaceDesign SurfaceFrameworkFramework
TemplateTemplateEngineEngine
ShellShellFrame-Frame-workwork
ValidationValidationFrame-Frame-workwork
In-Memory graph database In-Memory graph database with rich services (e.g., with rich services (e.g.,
transactions, serialization…) transactions, serialization…) and queries and queries
Extensible drawing Extensible drawing surface with surface with
support for routing support for routing and auto-layoutand auto-layout
Artifact Artifact generation generation
Constraint checking Constraint checking and guides user to and guides user to
resolve issuesresolve issues
Visual Studio UI Visual Studio UI Integration for Integration for
components like components like Toolbox, MenusToolbox, Menus
![Page 52: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/52.jpg)
5252
A Simple Workflow LanguageA Simple Workflow Language
AttendDSL Session
Download &Try out
DSL ToolsHands-On Lab
GoParty
Tonight
Fascinated Fascinated by DSL Toolsby DSL Tools
AlreadyAlreadyBoredBored
Too lateToo late
Bored Bored nownow
![Page 53: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/53.jpg)
5353
Define Domain Model Define Domain Model Task ClassTask Class
AttendDSL Session
Download &Try out
DSL Tools Hands-On Lab
GoParty
Tonight
![Page 54: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/54.jpg)
5454
Define Domain Model Define Domain Model InheritanceInheritance
AttendDSL Session
Download &Try out
DSL ToolsHands-On Lab
GoParty
Tonight
![Page 55: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/55.jpg)
5555
Define Domain Model Define Domain Model RelationshipsRelationships
AttendDSL Session
Download &Try out
DSL ToolsHands-On Lab
GoParty
Tonight
![Page 56: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/56.jpg)
5656
Define ShapeDefine Shape
AttendDSL Session
Rounded RectangleRounded Rectangle Outline color: blackOutline color: black Fill color: gray Fill color: gray
Text DecoratorText Decorator Position: centerPosition: center
![Page 57: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/57.jpg)
5757
Define Connector Define Connector AppearanceAppearance
AttendDSL Session
Download &Try out
DSL ToolsHands-On Lab
Text DecoratorText Decorator Position: Source, TopPosition: Source, Top
ConnectorConnector solidsolid blackblack filled arrowheadfilled arrowhead
Fascinated Fascinated by DSL Toolsby DSL Tools
![Page 58: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/58.jpg)
5858
Define ConnectorDefine ConnectorVisual SyntaxVisual Syntax
AttendDSL Session
Download &Try out
DSL ToolsHands-On Lab
GoParty
Tonight
![Page 59: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/59.jpg)
5959
Define MappingDefine Mapping
AttendDSL Session
ShapeShape Domain ModelDomain Model
![Page 60: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/60.jpg)
6060
CustomCustomBehaviorBehavior
Building A DesignerBuilding A Designer
NotationNotationDefinitionDefinition
MappingMappingDefinitionDefinition
DomainDomainModelModel
DefinitionDefinition
Code generated Code generated by DSL Toolsby DSL Tools
Validation/Validation/ConstraintsConstraints
Custom Custom XMLXML
SerializationSerialization
Code/Code/ArtifactArtifact
GenerationGeneration
Custom CodeCustom Code(SDK)(SDK)
![Page 61: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/61.jpg)
6161
Simple UIP Example Simple UIP Example
BA designer based on UIP BA designer based on UIP application blockapplication block• Define a domain model
• Define shapes
• Define mapping
• Generate code
• Build designer
• Run designer
![Page 62: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/62.jpg)
6262
Generators Based On TemplatesGenerators Based On Templates
standardStuff;standardStuff;standardStuff;standardStuff;<# foreach Task t in this.Workflow.Tasks<# foreach Task t in this.Workflow.Tasks {{#>#>
class <#= t.Name #> : TaskBaseclass <#= t.Name #> : TaskBase{ … }{ … }
<# }<# }#>#>moreStandardStuff; …moreStandardStuff; …
prospectinitiated
prospective sale
empty
overflow
Sat
weekly
accumulator4
£20
1 week delay
£30
prospectcancels
salesperson’saccount31
monthly
bank a/c
pay
7
£
standardStuff;standardStuff;standardStuff;standardStuff;class DoFirst : TaskBase {…}class DoFirst : TaskBase {…}class DoNext : TaskBase {…} class DoNext : TaskBase {…} ……
TemplateTemplate
Generated Generated CodeCode
ModelModel
QueriesQueries
![Page 63: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/63.jpg)
6363
Software Factories Software Factories Multiple DesignersMultiple Designers
prospectinitiated
prospective sale
empty
overflow
Sat
weekly
accumulator4
£20
1 week delay
£30
prospectcancels
salesperson’saccount31
monthly
bank a/c
pay
7
£
Model 1 – FlowModel 1 – Flow
Model 2 – EntitiesModel 2 – Entities
7
£
<xxx yyy> <zzz /></xxx>
Model 3 – ControlModel 3 – Control
Flow aspect Flow aspect codecode
Control aspect Control aspect codecode
Entities aspect Entities aspect codecode
![Page 64: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/64.jpg)
6464
AgendaAgenda
• Modeling and Methods
• What is a Software Factory?
• A Software Factory Schema
• Domain Specific Languages
• Wrap Up
![Page 65: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/65.jpg)
6565
Why Software FactoriesWhy Software Factories
• Consolidate implicit business and system development knowledge into specialized tools, process, and content
• Increase productivity and predictability by better organizing and automating the development process
• Reduce cost and risk by distributing the software life cycle across networks of interdependent groups and partners
![Page 66: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/66.jpg)
6666
Support For Building FactoriesSupport For Building Factories
• Guidance for building Software Factories With Visual Studio 2005 Team System
• Integration with Visual Studio 2005 Methodology Templates, Dynamic Help
• Visual tools for building Software Factories Schema Designer, Template Builder
Possibilities that we are consideringPossibilities that we are considering
![Page 67: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/67.jpg)
6767
Support For Using FactoriesSupport For Using Factories
• Guidance for using Software Factories
• Integration with MSF Agile and Formal Guidance tuned for specific types of systems Distributed across software factory schema
• Visual tools for using Software Factories Template Installer, Configuration Console
Possibilities that we are consideringPossibilities that we are considering
![Page 68: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/68.jpg)
6868
DSL - What’s Next?DSL - What’s Next?
• DSL Tools are in an early stage
• CTP releases for Visual Studio 2005 available
• Continue to release every 2-3 months with growing feature set Designer SDK
Model Data Access Model Validation UI and Designer Behavior Custom XML Serialization
Richer design experience for Domain Models, Notation and Mapping
Multiple Views and Multiple Models Designer Deployment Support
![Page 69: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/69.jpg)
6969
Microsoft Domain Specific Language Microsoft Domain Specific Language (DSL) Tools For Visual Studio 2005(DSL) Tools For Visual Studio 2005
• Generates executable designer based on description of the “Domain Specific Language” (DSL) used in the designer
• Generated Designer Is a complete usable tool (fully functional,
undo, persistence/XML file support… ) Is starting point of designer development
(SDK, artifact generation… )
![Page 70: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/70.jpg)
7070
Resources Resources
• Book Software Factories: Assembling Applications with Patterns, Models,
Frameworks, and Tools, Jack Greenfield, Keith Short, et al, ISBN 0-471-20284-3, Wiley Publishing Inc., 2004.
• Websites Software Factories
http://msdn.microsoft.com/architecture/softwarefactories 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?http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=61ForumID=61
Visual Studio 2005 Team System http://msdn.microsoft.com/vstudio/teamsystem
Visual Studio Team System Workshop Domain-Specific Language (DSL) Tools
http://lab.msdn.microsoft.com/vs2005/teamsystem/workshop/
• Newsgroups Microsoft.private.whidbey.teamsystem.architect Microsoft.private.whidbey.teamsystem.architect.modeling
![Page 71: 2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005](https://reader038.vdocument.in/reader038/viewer/2022110206/56649f4e5503460f94c6fdf9/html5/thumbnails/71.jpg)
THANK YOUTHANK YOU
20052005 Microsoft PAKISTAN DEVELOPER CONFERENCEJune 13-15, 2005