Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Architect Visual Studio.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Ralph Johnson - University of Illinois1 Reflection and the Adaptive Object Model Architecture Ralph Johnson University of Illinois at Urbana-Champaign.
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Configuration Management
Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi.
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
Introduction to MDA (Model Driven Architecture) CYT.
Configuration Management (CM)
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
ARC400 Tools For Architects: Developing Service Oriented Systems Keith Short, Architect Visual Studio, Enterprise Tools Microsoft Corporation.
Information System Development Courses Figure: ISD Course Structure.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Systems Analysis and Design in a Changing World, 3rd Edition
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Visual Studio 2005 Team Edition for Software Architects: Developing Service-Oriented Systems Bill Gibson Senior Program Manager Enterprise Tools Microsoft.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
3 Copyright © 2009, Oracle. All rights reserved. Accessing Non-Oracle Sources.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
Windows Role-Based Access Control Longhorn Update
2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
EMEA. 2 Aligning design, development and operational constraints in building complex IT systems. Gianpaolo Carraro Architect Developer and Platform Group.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Rahul Garg National Technology Specialist Microsoft Australia SOA303.
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
DSL * Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
Visual Studio for Software Architects and Future Directions in Modeling Tools Jochen Seemann TLN311 Program Manager Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Building Enterprise Applications Using Visual Studio®
CIM Modeling for E&U - (Short Version)
Software Factories - Today and Tomorrow
An Introduction to Software Factories
DAT381 Team Development with SQL Server 2005
Visual Studio 2005 Tools For Office: Creating A Multi-tier Application
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Architect Visual Studio

Agenda Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

The Software Crisis (ca. 2004) Development lags platform technology Globally distributed business processes constructed line by line $250B/yr in US (average $430K to $2.3M per project) 16% on time and budget but deliver less than planned (avg 42%) 53% overrun (avg 189%) 31% are canceled, losing $140B/yr Global demand will vastly exceed capacity this decade Apprenticeship will not scale to level of demand Other industries industrialized to solve similar problems

Industrialization Configure, adapt and assemble components to produce variants Standardize, integrate and automate production processes Develop and configure extensible tools for rote or menial tasks Markets Standards Processes Continuous improvement Simple & manageable “small- scale” interfaces Localization of complexity

Agenda Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

Raising the Level of Abstraction The history of programming is an exercise in hierarchical abstraction. In each generation, language designers produce constructs for lessons learned in the previous generation, and then architects use them to build more complex and powerful abstractions. (Smith and Stotts)

 C(x) h    C(x)  t 2m  x  ih = – Modelling and Programming TextualPictorial Declarative Procedural class Magnox : NuclearPowerStation { public void dropRods () jo biscuits 24 green pat cakes 32 pink Employee name address promote Job description pay assign 0..* a>b && c==d call Call Record call length  base rate: £/s store

Domain Specific Languages (DSLs) make problems “Small Scale” Small scale = Not much design beyond existing platform  easy to understand agile small team early prototypes easy maintenance changes inexpensive

Finding prime numbers is Small Scale … If we have a computer that can: do multiplication and division do things repeatedly _*_ _/_ _%_ while (…) {…} C, Pascal, Fortran,… Von Neumann computer with conventional CPU language: platform:

Finding parts lists is Small Scale … If we have a computer that can: keep large lists of parts & scan them quickly combine and filter the lists efficiently CREATE … JOIN … … WHERE … JOIN … … WHERE … SELECT … Relational Database SQL platform: language:

Developing a GUI is Small Scale … If we have a computer that can: display combinations of windows and widgets show controls and interact with user in them Visual GUI builder System.Windows.Forms platform: language:

if we have a language of phone billing and a platform to run it on Phone bill systems are Small Scale … Phone Billing Engine call calendar month Call Record call length  base rate: £/s call length  friend discount rate: £/s store friends calls other calls - bill billing period store   Telephone Billing Scheme

Anatomy of a DSL Notation (concrete syntax) May reuse predefined patterns eg box-line, channels, grids, maps, layouts Concepts (abstract syntax) May reuse predefined patterns eg states, flows, structures Well-formedness rules (grammar rules) Serialization format(s) Typically XML Interactive behaviour Drag/drop, copy/paste, select/edit, etc Mappings and Transformations

DSL & Framework Pattern CustomPartialClasses FrameworkPartialClasses FrameworkClasses Framework Config Files OtherFrameworkArtifacts uses uses completes FrameworkTools DSLEditor DSLDefinition generates OtherEditors edit / build generates

Agenda Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

.asmx files.asmx code behindssource code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages ? ? Scattered Concepts …

Issues Concept of Web service is “lost” among many files Developer must keep files in sync Refactoring engines ignorant of Web service concepts Can not process non-code files like schemas and config files Cannot undo refactoring changes Debugging, Intellisense, editors all ignorant of Web service concepts Source Control, Work Item, Tests all ignorant of Web Service concepts

A DSL In Use Today

.asmx files.asmx code behindssource code Statements and attributes XML Configuration Files and schemas (e.g. WSDL files) Project Files and templates Deployment Policies And Packages …A Holistic View Web Service Connectivity DSL

Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement packaged into deployed on

IT Operations doesn’t understand application requirements Development IT Operations Developers don’t understand operations policy Plan/Design DevelopmentTestingDeploymentOperations

Design for Operations Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement Abstraction/ Refinement Constraints packaged into deployed on

Agenda Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

Code Visualization Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement Abstraction/ Refinement Constraints packaged into deployed on

Agenda Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

DSL-to-DSL Mappings Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/ Refinement Abstraction/ Refinement Constraints packaged into deployed on Business Processes and Entities Business Processes and Entities Abstraction/ Refinement Reconciliation

Invoice To Payment

Agenda Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

A Set of Interrelated Models BusinessCapabilitiesBusinessCapabilities ManualProceduresManualProcedures TechnologyArchitectureTechnologyArchitecture Constraints Reconciliation Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/Refinement Constraints packaged into deployed on Business Processes and Entities Business Processes and Entities Reconciliation Abstraction/Refinement

… and related artifacts BusinessCapabilitiesBusinessCapabilities ManualProceduresManualProcedures TechnologyArchitectureTechnologyArchitecture Constraints Reconciliation Services, Messages, Applications, Endpoints Services, Messages, Applications, Endpoints XML, Projects, DBs, Classes, Code XML, Projects, DBs, Classes, Code Logical Data Center Logical Physical servers & segments DeploymentUnitsDeploymentUnits Abstraction/Refinement Constraints packaged into deployed on Business Processes and Entities Business Processes and Entities Reconciliation Abstraction/Refinement DSLsPatternsProcessesFrameworksComponentsTransformsConstraints Test Cases etc.

…defines a Software Factory This is called a software factory schema Like a recipe for a specific type of application A set of viewpoints related by mappings that support transformation, validation, traceability Lists artifacts required to build application type and explains how to combine them A software factory template is content Configures a development environment for application type Projects, patterns, frameworks, guidance Configured development environment is software factory Integrates tools, process and content for that type of application Domain specific editing, rendering, compilation, debugging, refactoring

A Software Factory Defines A Domain-Specific Methodology Domain specific guidance for application type Integrates tools, content and process Associates process fragments with viewpoints Fragments are specific to their associated viewpoints Work flow is non-deterministic but constrained What to model to build an application How to capture and analyze requirements, and map them to design and implementation Identify types of models involved and show how they relate to each other and to other source artifacts How models fit into the development process How to version them, debug them, generate tests from them

Building A Factory Build software factory schema Define target application type and constituent viewpoints Viewpoints layer by major life cycle artifact Requirements, Architecture, Implementation, Deployment, Testing, Management, Maintenance Define life cycle process for target application type Process fragments plus constraints on viewpoint transitions Build software factory template Delivered as nesting parameterized install packages Refactor software factory as applications are built Based on new requirements and user feedback

Using A Factory Define application to be developed Only unique requirements – common requirements assumed Specifying application customizes schema and template Adds, removes or changes viewpoints Customizes tool configurations and predefined content Customizes process guidance Use customized factory to develop application artifacts Features outside factory scope custom developed Refactor application as it evolves Capture changes in requirements in factory configuration Factory configuration defines delivered application Simplifies maintenance and enhancement Makes impact of changes easier to understand Changes propagate through factory

The End Software Industrialization Using DSLs to Reduce Complexity Scenario 1 - Web Services & Design for Operations Scenario 2 – Visualizing Code Scenario 3 – Implementing Business Processes Software Factories

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