45
Sytyke laivaseminaari 7-9.9.2005 Sytyke laivaseminaari 7-9.9.2005 Software Factories: Software Factories: Järjestelmien mallinnus Järjestelmien mallinnus Microsoftin välineillä Microsoftin välineillä Aali Alikoski Aali Alikoski Architect Evangelist, Microsoft Oy Architect Evangelist, Microsoft Oy [email protected] [email protected] blogs.msdn.com/aalialikoski blogs.msdn.com/aalialikoski

Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

Sytyke laivaseminaari 7-9.9.2005Sytyke laivaseminaari 7-9.9.2005

Software Factories:Software Factories:Järjestelmien mallinnusJärjestelmien mallinnusMicrosoftin välineilläMicrosoftin välineillä

Aali AlikoskiAali AlikoskiArchitect Evangelist, Microsoft OyArchitect Evangelist, Microsoft Oy

[email protected]@microsoft.comblogs.msdn.com/aalialikoskiblogs.msdn.com/aalialikoski

Page 2: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

2

AgendaAgenda

Työkaluja kehitysprosessin hallintaanTyökaluja kehitysprosessin hallintaanVälineitä suoraan purkistaVälineitä suoraan purkista

Mallinnus ja sovelluskehityksenMallinnus ja sovelluskehityksenabstraktiotason nostaminenabstraktiotason nostaminenAlusta välineiden tekemiseksiAlusta välineiden tekemiseksi

Page 3: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

3

Sovellusten elinkaariSovellusten elinkaariAsiakkaat kertovat…Asiakkaat kertovat…

““Sovelluskehitys on hyvin vaikeaa”Sovelluskehitys on hyvin vaikeaa”““Meidän ryhmämme on hajallaan jaMeidän ryhmämme on hajallaan jakoostuu erikoistuneistakoostuu erikoistuneistaasiantuntijoista”asiantuntijoista”““Nykyiset työkalut eivät toimi hyvinNykyiset työkalut eivät toimi hyvinyhteen toistensa kanssa”yhteen toistensa kanssa”““Minun täytyy pystyä paremminMinun täytyy pystyä paremminennustamaan/seuraamaanennustamaan/seuraamaankehitysprojektien etenemistä”kehitysprojektien etenemist䔓“Organisaatiomme tarvitseeOrganisaatiomme tarvitseemuokattavaa prosessiohjausta”muokattavaa prosessiohjausta”

Page 4: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

4

KehittäjäKehittäjäProjekti-Projekti-päällikköpäällikköInfra-Infra-

arkkitehtiarkkitehti

TestaajaTestaajaSovellus-Sovellus-arkkitehtiarkkitehti

Bisnes-Bisnes-päättäjäpäättäjä

Saarekkeita elinkaarenSaarekkeita elinkaarenaikanaaikana

Page 5: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

5

KehittäjätiimitKehittäjätiimit

Infra-Infra-arkkitehtiarkkitehti

Sovellus-Sovellus-arkkitehtiarkkitehti

ProjektipäällikköProjektipäällikkö

KehittäjäKehittäjä

TestaajaTestaaja

LoppukäyttäjäLoppukäyttäjä

Page 6: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

6

ViestintäongelmiaViestintäongelmia

Informaatiosaarekkeita eri tahoillaInformaatiosaarekkeita eri tahoillaVastuiden jako epäselväVastuiden jako epäselväRistiriitaisia käytäntöjä ja arkkitehtuurejaRistiriitaisia käytäntöjä ja arkkitehtuurejaRistiriitaisia päämääriäRistiriitaisia päämääriä

Sovellus-Sovellus-arkkitehtiarkkitehtiInfra-arkkitehtiInfra-arkkitehti

Infraylläpitäjät eivätymmärrä sovelluksenrakennettaKehittäjät eivät ymmärrä

Infran hallintapolitiikkaa

Infraylläpidon tuntemusInfraylläpidon tuntemusvähentää monimutkaisuuttavähentää monimutkaisuuttaVälineiden integraatio lisääVälineiden integraatio lisää

Kommunikaatiota jaKommunikaatiota jayhteistyötäyhteistyötä

Page 7: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

7

MenestystekijöitäMenestystekijöitä

Työkalujen pitää…Työkalujen pitää………vähentää nykyaikaisten palvelupohjaistenvähentää nykyaikaisten palvelupohjaistensovellusten tuottamiseen liittyvääsovellusten tuottamiseen liittyväämonimutkaisuuttamonimutkaisuutta

……olla tiiviimmin toisiinsa integroituja jaolla tiiviimmin toisiinsa integroituja jamahdollistaa parempi yhteistoiminta tiiminmahdollistaa parempi yhteistoiminta tiiminjäsenten (ja roolien) keskenjäsenten (ja roolien) kesken

……mahdollistaa muokkaus jamahdollistaa muokkaus jalaajennettavuus sekälaajennettavuus sekäkäyttäjäorganisaatioille että ISV:llekäyttäjäorganisaatioille että ISV:lle

Page 8: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

8

Visual Studio 2005Visual Studio 2005“Personalized productivity”“Personalized productivity”

Novices

Enthusiasts

Students

Hobbyists

Consultants

Solo Professionals

Enterprise Devs

Architects

Testers

Project Managers

Part-Timers

VB6 Devs

Web Professionals

Page 9: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

9

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation

Integration Services

Project Management

Process

andArchitectureGuidance

Process

andArchitectureGuidance

Dynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team Test

VisualStudioIndustryPartners

VisualStudioIndustryPartners

Page 10: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

10

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation

Integration Services

Project Management

Process

andArchitectureGuidance

Process

andArchitectureGuidance

VisualStudioIndustryPartners

VisualStudioIndustryPartnersDynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team Test

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Class Modeling

Page 11: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

11

Team ArchitectTeam ArchitectDistributed Application DesignerDistributed Application DesignerWhiteboard mode for application designWhiteboard mode for application design

Web Services Enhancements (WSE) supportWeb Services Enhancements (WSE) support

Validation against logical infrastructureValidation against logical infrastructure

Logical Infrastructure DesignerLogical Infrastructure DesignerSettings and constraints editorSettings and constraints editor

SDM generation and compilerSDM generation and compiler

Click-once supportClick-once support

Class DesignerClass DesignerTwo-way code synchronizationTwo-way code synchronization

Page 12: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

12

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation

Integration Services

Project Management

Process

andArchitectureGuidance

Process

andArchitectureGuidance

VisualStudioIndustryPartners

VisualStudioIndustryPartnersDynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team Test

Dynamic Code Analyzer

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Page 13: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

13

Team DeveloperTeam Developer

Static code analysisStatic code analysisSupport for managed and native codeSupport for managed and native code

Code profilingCode profilingSequence view examines running threadsSequence view examines running threads

GC view of object allocation and lifetimeGC view of object allocation and lifetime

Caller-callee, callstack, and function viewsCaller-callee, callstack, and function views

Code coverageCode coverage

Integrated unit testing and frameworkIntegrated unit testing and framework

Page 14: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

14

Visual Studio Team SystemVisual Studio Team System

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation

Integration Services

Project Management

Process

andArchitectureGuidance

Process

andArchitectureGuidance

VisualStudioIndustryPartners

VisualStudioIndustryPartnersDynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team TestLoad Testing

Manual Testing

Test Case Management

Page 15: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

15

Team TestTeam Test

Load testingLoad testingWeb services load testing via protocol-Web services load testing via protocol-based scriptbased script

Load patterns: constant, step, customLoad patterns: constant, step, custom

Perf counter collection and thresholdPerf counter collection and thresholdmonitoringmonitoring

Test case managementTest case management

Application VerifierApplication Verifier

Page 16: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

16

Team TestTeam TestTesting is 1Testing is 1stst class in Visual Studioclass in Visual StudioTests are Source CodeTests are Source CodeTest Authoring & Execution EnvironmentTest Authoring & Execution EnvironmentTest ViewTest ViewTest Explorer (Test Case Management UI)Test Explorer (Test Case Management UI)

Load testingLoad testingWeb services load testing via protocol-basedWeb services load testing via protocol-basedscriptscriptLoad patterns: constant, step, customLoad patterns: constant, step, customPerf counter collection and thresholdPerf counter collection and thresholdmonitoringmonitoring

Unit TestingUnit TestingSimilar to NUnitSimilar to NUnit

Page 17: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

17

Visual Studio Team SystemVisual Studio Team SystemProcess

andArchitectureGuidance

Process

andArchitectureGuidance

VisualStudioIndustryPartners

VisualStudioIndustryPartners

Change Management

Work Item Tracking

Reporting

Project Site

Visual Studio

Team Foundation

Integration Services

Project Management

Dynamic Code Analyzer

Visual Studio

Team Architect

Static Code Analyzer

Code Profiler

Unit Testing

Code Coverage

Visio and UML Modeling

Team Foundation Client

VS Pro

Class Modeling

Load Testing

Manual Testing

Test Case Management

Application Modeling

Logical Infra. Modeling

Deployment Modeling

Visual Studio

Team DeveloperVisual Studio

Team Test

Change Management

Work Item Tracking

Reporting

Page 18: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

18

Team FoundationTeam Foundation

Portfolio creation and navigationPortfolio creation and navigationProject Creation WizardProject Creation Wizard

Process editor for customized guidanceProcess editor for customized guidance

Project managementProject managementMicrosoft Project and Excel integrationMicrosoft Project and Excel integration

Change managementChange managementBranching, changesets, shelvingBranching, changesets, shelving

Migration from PVCS, ClearCase, and VSSMigration from PVCS, ClearCase, and VSS

Reporting and analyticsReporting and analytics

Project portalProject portal

Page 19: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

19

Project Management GoalsProject Management Goals

Shape the ProjectShape the ProjectOffice IntegrationOffice Integration

Rich ReportingRich Reporting

Instrument the ProcessInstrument the ProcessMSF 4.0 IntegrationMSF 4.0 Integration

Process CustomizationProcess Customization

Page 20: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

20

Team System IntegrationTeam System Integration

Delivered via Team Foundation ServerDelivered via Team Foundation Server

Methodology TemplatesMethodology TemplatesWork Item Types, workflowWork Item Types, workflow

Check In PolicyCheck In Policy

Specification TemplatesSpecification Templates

ReportsReports

Groups & PermissionsGroups & Permissions

Integrated HelpIntegrated Help

Phase Exit CriteriaPhase Exit Criteria

Exposed within HelpExposed within Help

Updated from MSDNUpdated from MSDN

Book series: Addison Wesley & MS LearningBook series: Addison Wesley & MS Learning

Page 21: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

21

Broad Industry SupportBroad Industry Support

Page 22: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

MallinnusMallinnus

Alusta välineiden tekemiseksiAlusta välineiden tekemiseksi

Page 23: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

23

SovelluskehityksenSovelluskehityksentuottavuustuottavuusIT-teollisuuden maine on huonoIT-teollisuuden maine on huonoYli puolet projekteista epäonnistuu tavallaYli puolet projekteista epäonnistuu tavallatai toisellatai toisella

Tuottavuutta, ennustettavuutta jaTuottavuutta, ennustettavuutta jaluotettavuutta parannettavaluotettavuutta parannettava

KehittäjänKehittäjäntuottavuus:tuottavuus:

Page 24: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

24

SovelluskehityksenSovelluskehityksenvaikeusvaikeus

Useita eri tapoja ratkaista ongelmaUseita eri tapoja ratkaista ongelmaKaikki yhtä hyviä – ei ainoaa oikeaa ratkaisuaKaikki yhtä hyviä – ei ainoaa oikeaa ratkaisua

On usein löydettävissä joukko ratkaisumallejaOn usein löydettävissä joukko ratkaisumallejajotka toimivat ”hyvin yhteen”jotka toimivat ”hyvin yhteen”

Suunnitelmat ja toteutus ovat liian kaukanaSuunnitelmat ja toteutus ovat liian kaukanatoisistaantoisistaan

Oleellista on että kehitystiimi on yhtenäinenOleellista on että kehitystiimi on yhtenäinenRatkaisee samat asiat samalla tavalla→Ratkaisee samat asiat samalla tavalla→yhtenäinen arkkitehtuuriyhtenäinen arkkitehtuuri

Noudatetaan samaa kehitysprosessiaNoudatetaan samaa kehitysprosessia

Page 25: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

25

YhtenäisyysYhtenäisyys

Miten hyödyntää ”hyvien” kehittäjienMiten hyödyntää ”hyvien” kehittäjienpotentiaali ja saada se muidenpotentiaali ja saada se muidenkäyttöön?käyttöön?

Asiantuntijat suunnittelevat jaAsiantuntijat suunnittelevat jatoteuttavat arkkitehtuurin keskeisettoteuttavat arkkitehtuurin keskeisetosatosatMuut rakentavat niiden avullaMuut rakentavat niiden avullajärjestelmänjärjestelmän

Eri lähestymistapojaEri lähestymistapojaFramework, luokkakirjasto, yhteisetFramework, luokkakirjasto, yhteisetkomponentit, DSL-kielet...komponentit, DSL-kielet...

Page 26: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

26

Software FactoriesSoftware Factories

Tapa suunnitella ja toteuttaa DSL-Tapa suunnitella ja toteuttaa DSL-pohjaisesti järjestelmiäpohjaisesti järjestelmiäDSL = Domain Specific LanguageDSL = Domain Specific Language

Mallinnus perustuen DSL-käsitteisiinMallinnus perustuen DSL-käsitteisiinEconomies of scopeEconomies of scopeUudelleenkäytetään suunnitelmiaUudelleenkäytetään suunnitelmia

Yleiskäyttöisestä välineestäYleiskäyttöisestä välineestätarvelähtöinen spesifi työkalutarvelähtöinen spesifi työkaluAutomatisoidaan toistuva jaAutomatisoidaan toistuva jarutiininomainen työvaiherutiininomainen työvaiheNostetaan abstraktiotasoa!Nostetaan abstraktiotasoa!

Page 27: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

27

A software “model” isA software “model” is

Partly about visualisationPartly about visualisationAbstraction for clarityAbstraction for clarity

Because picture worth a thousand wordsBecause picture worth a thousand words

Sometimes about algorithmsSometimes about algorithmsExpression in a convenient formExpression in a convenient form

Because compact and efficientBecause compact and efficient

Often a set of instructionsOften a set of instructionsA recipeA recipe

Because can be automatedBecause can be automated

Page 28: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

28

Customers Want To KnowCustomers Want To Know

WhatWhat types of systemstypes of systems can I build?can I build?What’s theWhat’s the architecturearchitecture of each type?of each type?

How do I goHow do I go from requirements to deploymentfrom requirements to deployment??WhatWhat artifactsartifacts and how are they related?and how are they related?

Why areWhy are methodologiesmethodologies so ineffective?so ineffective?Why aren’t they integrated with myWhy aren’t they integrated with my toolstools??Why can’t I getWhy can’t I get detailed and specific guidancedetailed and specific guidance forformy project?my project?

Why areWhy are modeling toolsmodeling tools so ineffective?so ineffective?Why can’t they generateWhy can’t they generate production quality codeproduction quality code??Why don’t modelsWhy don’t models stay synchronizedstay synchronized with code?with code?Why can’t models fit myWhy can’t models fit my file-orientedfile-oriented environment?environment?

Page 29: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

29

Software Development asSoftware Development asCraftsmanshipCraftsmanship

Labor IntensiveLabor Intensive

Generic ToolsGeneric Tools

Generic ProcessesGeneric Processes

One offOne offapplicationsapplications

Hand stitched fromHand stitched fromscratchscratch

Minimal reuseMinimal reuse

Overruns, defects, security holes,project failures

Page 30: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

30

Exploiting CommonalityExploiting Commonality

We already exploitWe already exploiteconomies of scaleeconomies of scaleto automateto automateproductionproductionStamping out manyStamping out manyidenticalidentical copiescopies of aof aprototypeprototypeUsed to produceUsed to produceCDs/DVDsCDs/DVDsDoes nothing to helpDoes nothing to helpdevelopmentdevelopment

Page 31: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

31

Exploiting CommonalityExploiting CommonalityWe can alsoWe can alsoexploitexploit economieseconomiesof scopeof scope

ReuseReuse designsdesigns &&componentscomponents

Build many similarBuild many similarbut distinctbut distinctprototypesprototypes

Key is supportingKey is supportingvariabilityvariability

Define only the unique piecesof each system

Page 32: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

32

Software FactoriesSoftware Factories

Domain-specificDomain-specificprocessprocess

Domain-specificDomain-specifictoolstools && languageslanguages

Domain-specificDomain-specificcontentcontent

AutomateAutomate rote androte andmenial tasksmenial tasks

General-purpose IDEs becomedomain-specific software factories

Page 33: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

33

Domain-SpecificDomain-SpecificLanguagesLanguages

Focused on a single aspect of app buildingFocused on a single aspect of app buildingSuccess in broad horizontal domains: SQL,Success in broad horizontal domains: SQL,Windows Form DesignerWindows Form Designer

Designed support the concepts defined byDesigned support the concepts defined byan underlying frameworkan underlying frameworkAutomate rote tasks with effective codeAutomate rote tasks with effective codegenerationgeneration

Increase agility by visualizing concepts,Increase agility by visualizing concepts,generating code and other artifacts,generating code and other artifacts,enabling rapid iterationenabling rapid iteration

Building them must be fast, cheap and easy

Page 34: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

34

XML, Projects,XML, Projects,Configs, Classes,Configs, Classes,

CodeCode

DeploymentDeploymentUnitsUnits

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 35: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

35

XML, Projects,XML, Projects,Configs, Classes,Configs, Classes,

CodeCode

DeploymentDeploymentUnitsUnits

packaged intopackaged into

Services,Services,Messages, Applications,Messages, Applications,

EndpointsEndpoints

Abstraction/Abstraction/refinementrefinement

Vertical Mapping - SystemVertical Mapping - SystemDesignDesign

Page 36: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

36

XML, Projects,XML, Projects,Configs, Classes,Configs, Classes,

CodeCode

Physical ServersPhysical Serversand Networkand NetworkSegmentsSegments

DeploymentDeploymentUnitsUnits

packaged intopackaged into deployed ondeployed on

Services,Services,Messages, Applications,Messages, Applications,

EndpointsEndpointsLogical Data CenterLogical Data CenterHost SoftwareHost Software

Abstraction/Abstraction/refinementrefinement

Vertical Mapping - DataVertical Mapping - DataCenter DesignCenter Design

Page 37: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

37

Providing TraceabilityProviding Traceability

Applications

ApplicationHosting

Logical Machines &Network Topology

Hardware

SystemDefinitionModel

Page 38: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

38

XML, Projects,XML, Projects,Configs, Classes,Configs, Classes,

CodeCode

Physical ServersPhysical Serversand Networkand NetworkSegmentsSegments

DeploymentDeploymentUnitsUnits

packaged intopackaged into deployed ondeployed on

Services,Services,Messages, Applications,Messages, Applications,

EndpointsEndpointsLogical Data CenterLogical Data CenterHost SoftwareHost Software

constraintsconstraints

Horizontal Mapping -Horizontal Mapping -DeploymentDeployment

Page 39: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

39

DSL ToolkitDSL Toolkit

Page 40: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

40

Entä UML?Entä UML?

Visual Studio mallinnuspiirteetVisual Studio mallinnuspiirteeteiväteivät ole UML-välineitäole UML-välineitä

Visio on edelleen UML-piirtäjänVisio on edelleen UML-piirtäjänvälinevälineVisual Studio 2005 ei sisälläVisual Studio 2005 ei sisällävastinetta kaikille UML-vastinetta kaikille UML-kaaviotyypeillekaaviotyypeille

UML-pohjaisia mallinnusvälineitäUML-pohjaisia mallinnusvälineitäVisual Studio 2005:n päälleVisual Studio 2005:n päälletulossa kumppaneiltatulossa kumppaneilta

Page 41: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

41

Ote: Visual Studio 2005 Team SystemOte: Visual Studio 2005 Team SystemModeling Strategy and FAQModeling Strategy and FAQ

To summarize, we would recommend using UML and UML-basedTo summarize, we would recommend using UML and UML-basedtools for:tools for:

Sketching.Sketching.

White boarding.White boarding.

Napkins.Napkins.

Documentation.Documentation.

Conceptual drawings that do not directly relate to code.Conceptual drawings that do not directly relate to code.

We would recommend precisely defined DSLs and DSL-based toolsWe would recommend precisely defined DSLs and DSL-based toolsfor:for:

Precise abstractions from which code is generated.Precise abstractions from which code is generated.

Precise abstractions that map to variation points in frameworks andPrecise abstractions that map to variation points in frameworks andcomponents.components.

Precise mappings between DSLs.Precise mappings between DSLs.

Conceptual drawings that have precisely specifiable mappings to otherConceptual drawings that have precisely specifiable mappings to otherDSLs or to code artifacts.DSLs or to code artifacts.

We would recommend neither of the above for visual programmingWe would recommend neither of the above for visual programmingof detailed program logic (or at least not for many years yet).of detailed program logic (or at least not for many years yet).

Page 42: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

42

YhteenvetoYhteenveto

Visual Studion käyttäjäkunta laajeneeVisual Studion käyttäjäkunta laajeneeProjektipäälliköt, arkkitehdit, testaajat jneProjektipäälliköt, arkkitehdit, testaajat jne

Mallinnus perustuu DSLiinMallinnus perustuu DSLiinTyövälineet omien DSL-kieltenTyövälineet omien DSL-kieltenmäärittelyynmäärittelyyn

DSL Tools (Corona)DSL Tools (Corona)

AikatauluAikatauluBeta 2 ilmestynyt keväällä 2005 (go live)Beta 2 ilmestynyt keväällä 2005 (go live)

RTM marraskuu 2005RTM marraskuu 2005

Page 43: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

43

ResourcesResourcesBookBook

Software Factories: Assembling ApplicationsSoftware Factories: Assembling Applicationswith Patterns, Models, Frameworks, and Toolswith Patterns, Models, Frameworks, and Tools,,Jack Greenfield, Keith Short, et al, ISBN 0-471-Jack Greenfield, Keith Short, et al, ISBN 0-471-20284-3, Wiley Publishing Inc., 2004.20284-3, Wiley Publishing Inc., 2004.

WebsitesWebsitesSoftware FactoriesSoftware Factories

msdn.microsoft.com/architecture/softwarefactmsdn.microsoft.com/architecture/softwarefactoriesories

Visual Studio 2005 Team SystemVisual Studio 2005 Team Systemmsdn.microsoft.com/vstudio/teamsystemmsdn.microsoft.com/vstudio/teamsystem

Visual Studio Team System WorkshopVisual Studio Team System WorkshopDomain-Specific Language (DSL) ToolsDomain-Specific Language (DSL) Toolslab.msdn.microsoft.com/vs2005/teamsystem/workslab.msdn.microsoft.com/vs2005/teamsystem/workshop/hop/

NewsgroupsNewsgroupsmicrosoft.private.whidbey.teamsystem.architectmicrosoft.private.whidbey.teamsystem.architectmicrosoft.private.whidbey.teamsystem.architect.modelmicrosoft.private.whidbey.teamsystem.architect.modelinging

Page 44: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

44

LisätietojaLisätietoja

Professional Developers ConferenceProfessional Developers ConferenceLos Angeles 13-16.9.2005Los Angeles 13-16.9.2005lab.msdn.microsoft.com/vs2005/teamsystem/lab.msdn.microsoft.com/vs2005/teamsystem/

www.codezone.fiwww.codezone.fi

DSL Workshop joulu/tammikuussaDSL Workshop joulu/tammikuussa

Page 45: Software Factories: Järjestelmien mallinnus Microsoftin ... · Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, ... Visio

45© 2005 Microsoft Corporation. All rights reserved.

This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.