Software Factories: Järjestelmien mallinnus Microsoftin välineillä

Samankaltaiset tiedostot
7.4 Variability management

7. Product-line architectures

SOA SIG SOA Tuotetoimittajan näkökulma

Office 2013 ja SQL Server 2012 SP1 uudet BI toiminnallisuudet Marko Somppi/Invenco Oy

Capacity Utilization

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Domain spesifinen mallinnus ja generointi käytännössä. Petri Savolainen

Web Services -palvelut Microsoftin välineillä

Efficiency change over time

Power BI Tech Conference Power BI. #TechConfFI. Johdanto

HITSAUKSEN TUOTTAVUUSRATKAISUT

WP3 Decision Support Technologies

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Innovative and responsible public procurement Urban Agenda kumppanuusryhmä. public-procurement

ja itsenäisen harjoittelun jälkeen Microsoftin koe Luennot ja käytännön harjoitukset lähiopetusjaksolla

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

Collaborative & Co-Creative Design in the Semogen -projects

.NET 2006 ja sen jälkeen

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Hankkeen toiminnot työsuunnitelman laatiminen

Information on preparing Presentation

Making diversity manageable. Miradore. Käytännön kokemuksia rahoituksen hakemisesta. Tiistai Technopolis Vapaudenaukio / Lappeenranta

ECSEL - Electronic Components and Systems for European Leadership

WAMS 2010,Ylivieska Monitoring service of energy efficiency in housing Jan Nyman,

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

TESTAUSPROSESSIN ORGANISOINNIN KONSEPTIMALLI. Luonnos mukautuvalle referenssimallille

Windows Phone 7.5 erilainen ja fiksu älypuhelin. Vesa-Matti Paananen Liiketoimintajohtaja, Windows Phone Microsoft Oy

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

ProAgria. Opportunities For Success

Miehittämätön meriliikenne

VBE2 Työpaketit Jiri Hietanen / TTY

KAOS 2015: Integraatioiden standardointi suunnittelumallien avulla. Ilkka Pirttimaa, Chief ICT Architect, Stockmann ICT

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Konesali ilman rajoja Kongressi A

16. Allocation Models

Visualisoinnin aamu 16.4 Tiedon visualisointi. Ari Suominen Tuote- ja ratkaisupäällikkö Microsoft

<Insert Picture Here> SOA-rakentajan ensimmäiset askeleet avoimien standardien hyödyntämiseen

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Gap-filling methods for CH 4 data

Use of spatial data in the new production environment and in a data warehouse

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

PROJEKTI- PÄÄLLIKÖSTÄ PRODUCT OWNERIKSI MEERI CEDERSTRÖM

The CCR Model and Production Correspondence

Kilpailukyky, johtaminen ja uusi tietotekniikka. Mika Okkola, liiketoimintajohtaja, Microsoft Oy

LX 70. Ominaisuuksien mittaustulokset 1-kerroksinen 2-kerroksinen. Fyysiset ominaisuudet, nimellisarvot. Kalvon ominaisuudet

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

Tietoturvallinen liikkuva työ. Juha Tschokkinen

Data Quality Master Data Management

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Käyttöliittymät II. Käyttöliittymät I Kertaus peruskurssilta. Keskeisin kälikurssilla opittu asia?

2 Description of Software Architectures

Suunnittelun ja rakentamisen nykytila

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

ADM Arkkitehtuuritason automaatio #tdarc

Integration of Finnish web services in WebLicht Presentation in Freudenstadt by Jussi Piitulainen

Other approaches to restrict multipliers

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

Security server v6 installation requirements

Älykkäämpi päätelaitteiden hallinta Juha Tujula, CTO, Enfo Oyj IBM Corporation

Tilausvahvistus. Anttolan Urheilijat HENNA-RIIKKA HAIKONEN KUMMANNIEMENTIE 5 B RAHULA. Anttolan Urheilijat

National Building Code of Finland, Part D1, Building Water Supply and Sewerage Systems, Regulations and guidelines 2007

Web Services tietokantaohjelmoinnin perusteet

LYTH-CONS CONSISTENCY TRANSMITTER

TIETOJOHDETTU RAKENNUSPROJEKTI Niko Vironen Kehityspäällikkö Fira Group

Kuluttajapalvelun rakentaminen. Omegawave Mikko Heilimo

AYYE 9/ HOUSING POLICY

T Iteration demo. T Final Demo. Team Balboa

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

Mat Seminar on Optimization. Data Envelopment Analysis. Economies of Scope S ysteemianalyysin. Laboratorio. Teknillinen korkeakoulu

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Security server v6 installation requirements

Skene. Games Refueled. Muokkaa perustyyl. for Health, Kuopio

TÄYTTÖAUTOMAATIT TÄYTTÖAUTOMAATIT COMPUTER INFLATORS

MUSEOT KULTTUURIPALVELUINA

Suomalainen koulutusosaaminen vientituotteena

Alternative DEA Models

Käytön avoimuus ja datanhallintasuunnitelma. Open access and data policy. Teppo Häyrynen Tiedeasiantuntija / Science Adviser

Copernicus, Sentinels, Finland. Erja Ämmälahti Tekes,

Software Signing System System overview and key domain concepts

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

Aineiston analyysin vaiheita ja tulkintaa käytännössä. LET.OULU.FI Niina Impiö Learning and Educational Technology Research Unit

SMART BUSINESS ARCHITECTURE

Integraatio ja yhteistoimintamallit

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

BLOCKCHAINS AND ODR: SMART CONTRACTS AS AN ALTERNATIVE TO ENFORCEMENT

SQL SERVER 2012 PARALLEL DATA WAREHOUSE APPLIANCE

Summary: long transaction (Software AG, 1999)

Teollinen Internet & Digitalisaatio 2015

Mobiilialueen tutkimus EU:n 6. puiteohjelmassa: Wireless World Initiative (WWI)

Transkriptio:

Sytyke laivaseminaari 7-9.9.2005 Software Factories: Järjestelmien mallinnus Microsoftin välineillä Aali Alikoski Architect Evangelist, Microsoft Oy aali@microsoft.com blogs.msdn.com/aalialikoski

Agenda Työkaluja kehitysprosessin hallintaan Välineitä suoraan purkista Mallinnus ja sovelluskehityksen abstraktiotason nostaminen Alusta välineiden tekemiseksi 2

Sovellusten elinkaari Asiakkaat kertovat Sovelluskehitys on hyvin vaikeaa Meidän ryhmämme on hajallaan ja koostuu erikoistuneista asiantuntijoista Nykyiset työkalut eivät toimi hyvin yhteen toistensa kanssa Minun täytyy pystyä paremmin ennustamaan/seuraamaan kehitysprojektien etenemistä Organisaatiomme tarvitsee muokattavaa prosessiohjausta 3

Saarekkeita elinkaaren aikana Projektipäällikkö Infraarkkitehti Bisnespäättäjä Kehittäjä Testaaja Sovellusarkkitehti 4

Kehittäjätiimit Infraarkkitehti Sovellusarkkitehti Kehittäjä Testaaja Loppukäyttäjä Projektipäällikkö 5

Viestintäongelmia Kehittäjät eivät ymmärrä Infran hallintapolitiikkaa Infra-arkkitehti Sovellusarkkitehti Välineiden integraatio lisää Kommunikaatiota ja yhteistyötä Infraylläpitäjät eivät ymmärrä sovelluksen rakennetta Infraylläpidon tuntemus vähentää monimutkaisuutta Informaatiosaarekkeita eri tahoilla Vastuiden jako epäselvä Ristiriitaisia käytäntöjä ja arkkitehtuureja Ristiriitaisia päämääriä 6

Menestystekijöitä Työkalujen pitää vähentää nykyaikaisten palvelupohjaisten sovellusten tuottamiseen liittyvää monimutkaisuutta olla tiiviimmin toisiinsa integroituja ja mahdollistaa parempi yhteistoiminta tiimin jäsenten (ja roolien) kesken mahdollistaa muokkaus ja laajennettavuus sekä käyttäjäorganisaatioille että ISV:lle 7

Visual Studio 2005 Personalized productivity Hobbyists Students Enthusiasts Novices Project Managers Web Professionals VB6 Devs Part-Timers Solo Professionals Testers Consultants Architects Enterprise Devs 8

Visual Studio Visual Studio Visual Studio Team Architect Team Developer Team Test Application Modeling Dynamic Code Analyzer Load Testing Logical Infra. Modeling Static Code Analyzer Manual Testing Deployment Modeling Code Profiler Test Case Management Unit Testing Code Coverage Class Modeling Visio and UML Modeling Team Foundation Client VS Pro Visual Studio Team Foundation Change Management Reporting Integration Services Work Item Tracking Project Site Project Management Visual Studio Industry Partners Process and Architecture Guidance Visual Studio Team System 9

Visual Studio Visual Studio Visual Studio Team Architect Team Developer Team Test Application Modeling Dynamic Code Analyzer Load Testing Logical Infra. Modeling Static Code Analyzer Manual Testing Deployment Modeling Code Profiler Test Case Management Unit Testing Code Coverage Class Modeling Visio and UML Modeling Team Foundation Client VS Pro Visual Studio Team Foundation Change Management Reporting Integration Services Work Item Tracking Project Site Project Management Visual Studio Industry Partners Process and Architecture Guidance Visual Studio Team System 10

Team Architect Distributed Application Designer Whiteboard mode for application design Web Services Enhancements (WSE) support Validation against logical infrastructure Logical Infrastructure Designer Settings and constraints editor SDM generation and compiler Click-once support Class Designer Two-way code synchronization 11

Visual Studio Visual Studio Visual Studio Team Architect Team Developer Team Test Application Modeling Dynamic Code Analyzer Load Testing Logical Infra. Modeling Static Code Analyzer Manual Testing Deployment Modeling Code Profiler Test Case Management Unit Testing Testing Unit Code Coverage Coverage Code Class Modeling Visio and UML Modeling Team Foundation Client VS Pro Visual Studio Team Foundation Change Management Reporting Integration Services Work Item Tracking Project Site Project Management Visual Studio Industry Partners Process and Architecture Guidance Visual Studio Team System 12

Team Developer Static code analysis Support for managed and native code Code profiling Sequence view examines running threads GC view of object allocation and lifetime Caller-callee, callstack, and function views Code coverage Integrated unit testing and framework 13

Visual Studio Visual Studio Visual Studio Team Architect Team Developer Team Test Application Modeling Dynamic Code Analyzer Load Testing Logical Infra. Modeling Static Code Analyzer Manual Testing Deployment Modeling Code Profiler Test Case Management Unit Testing Code Coverage Class Modeling Visio and UML Modeling Team Foundation Client VS Pro Visual Studio Team Foundation Change Management Reporting Integration Services Work Item Tracking Project Site Project Management Visual Studio Industry Partners Process and Architecture Guidance Visual Studio Team System 14

Team Test Load testing Web services load testing via protocolbased script Load patterns: constant, step, custom Perf counter collection and threshold monitoring Test case management Application Verifier 15

Team Test Testing is 1st class in Visual Studio Tests are Source Code Test Authoring & Execution Environment Test View Test Explorer (Test Case Management UI) Load testing Web services load testing via protocol-based script Load patterns: constant, step, custom Perf counter collection and threshold monitoring Unit Testing Similar to NUnit 16

Visual Studio Visual Studio Visual Studio Team Architect Team Developer Team Test Application Modeling Dynamic Code Analyzer Load Testing Logical Infra. Modeling Static Code Analyzer Manual Testing Deployment Modeling Code Profiler Test Case Management Unit Testing Code Coverage Class Modeling Visio and UML Modeling Team Foundation Client VS Pro Visual Studio Team Foundation Change Management Reporting Integration Services Work Item Tracking Project Site Project Management Visual Studio Industry Partners Process and Architecture Guidance Visual Studio Team System 17

Team Foundation Portfolio creation and navigation Project Creation Wizard Process editor for customized guidance Project management Microsoft Project and Excel integration Change management Branching, changesets, shelving Migration from PVCS, ClearCase, and VSS Reporting and analytics Project portal 18

Project Management Goals Shape the Project Office Integration Rich Reporting Instrument the Process MSF 4.0 Integration Process Customization 19

Team System Integration Delivered via Team Foundation Server Methodology Templates Work Item Types, workflow Check In Policy Specification Templates Reports Groups & Permissions Integrated Help Phase Exit Criteria Exposed within Help Updated from MSDN Book series: Addison Wesley & MS Learning 20

Broad Industry Support 21

Mallinnus Alusta välineiden tekemiseksi

Sovelluskehityksen tuottavuus IT-teollisuuden maine on huono Yli puolet projekteista epäonnistuu tavalla tai toisella Tuottavuutta, ennustettavuutta ja luotettavuutta parannettava Kehittäjän tuottavuus: 23

Sovelluskehityksen vaikeus Useita eri tapoja ratkaista ongelma Kaikki yhtä hyviä ei ainoaa oikeaa ratkaisua On usein löydettävissä joukko ratkaisumalleja jotka toimivat hyvin yhteen Suunnitelmat ja toteutus ovat liian kaukana toisistaan Oleellista on että kehitystiimi on yhtenäinen Ratkaisee samat asiat samalla tavalla yhtenäinen arkkitehtuuri Noudatetaan samaa kehitysprosessia 24

Yhtenäisyys Miten hyödyntää hyvien kehittäjien potentiaali ja saada se muiden käyttöön? Asiantuntijat suunnittelevat ja toteuttavat arkkitehtuurin keskeiset osat Muut rakentavat niiden avulla järjestelmän Eri lähestymistapoja Framework, luokkakirjasto, yhteiset komponentit, DSL-kielet... 25

Software Factories Tapa suunnitella ja toteuttaa DSLpohjaisesti järjestelmiä DSL = Domain Specific Language Mallinnus perustuen DSL-käsitteisiin Economies of scope Uudelleenkäytetään suunnitelmia Yleiskäyttöisestä välineestä tarvelähtöinen spesifi työkalu Automatisoidaan toistuva ja rutiininomainen työvaihe Nostetaan abstraktiotasoa! 26

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 27

Customers 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? 28

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 29

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 30

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 31

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 32

Domain-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 33

Code Visualization Class Class Designer Designer and and twotwo-way way code code synch synch XML, Projects, Configs, Classes, Code packaged into Deployment Units 34

Vertical Mapping - System Design Services, Messages, Applications, Endpoints Abstraction/ refinement XML, Projects, Configs, Classes, Code packaged into Deployment Units 35

Vertical Mapping - Data Center Design Services, Messages, Applications, Endpoints Logical Data Center Host Software Abstraction/ refinement XML, Projects, Configs, Classes, Code packaged into Physical Servers and Network Segments Deployment Units deployed on 36

Providing Traceability Applications System Definition Model Application Hosting Logical Machines & Network Topology Hardware 37

Horizontal Mapping Deployment constraints Services, Messages, Applications, Endpoints Logical Data Center Host Software XML, Projects, Configs, Classes, Code packaged into Physical Servers and Network Segments Deployment Units deployed on 38

DSL Toolkit 39

Entä UML? Visual Studio mallinnuspiirteet eivät ole UML-välineitä Visio on edelleen UML-piirtäjän väline Visual Studio 2005 ei sisällä vastinetta kaikille UMLkaaviotyypeille UML-pohjaisia mallinnusvälineitä Visual Studio 2005:n päälle tulossa kumppaneilta 40

Ote: Visual Studio 2005 Team System Modeling Strategy and FAQ To summarize, we would recommend using UML and UML-based tools for: Sketching. White boarding. Napkins. Documentation. Conceptual drawings that do not directly relate to code. We would recommend precisely defined DSLs and DSL-based tools for: Precise abstractions from which code is generated. Precise abstractions that map to variation points in frameworks and components. Precise mappings between DSLs. Conceptual drawings that have precisely specifiable mappings to other DSLs or to code artifacts. We would recommend neither of the above for visual programming of detailed program logic (or at least not for many years yet). 41

Yhteenveto Visual Studion käyttäjäkunta laajenee Projektipäälliköt, arkkitehdit, testaajat jne Mallinnus perustuu DSLiin Työvälineet omien DSL-kielten määrittelyyn DSL Tools (Corona) Aikataulu Beta 2 ilmestynyt keväällä 2005 (go live) RTM marraskuu 2005 42

Resources Book Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Jack Greenfield, Keith Short, et al, ISBN 0-47120284-3, Wiley Publishing Inc., 2004. Websites Software Factories msdn.microsoft.com/architecture/softwarefact ories Visual Studio 2005 Team System msdn.microsoft.com/vstudio/teamsystem Visual Studio Team System Workshop Domain-Specific Language (DSL) Tools lab.msdn.microsoft.com/vs2005/teamsystem/works hop/ Newsgroups microsoft.private.whidbey.teamsystem.architect microsoft.private.whidbey.teamsystem.architect.model ing 43

Lisätietoja Professional Developers Conference Los Angeles 13-16.9.2005 lab.msdn.microsoft.com/vs2005/teamsystem/ www.codezone.fi DSL Workshop joulu/tammikuussa 44

2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 45