Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.

Slides:



Advertisements
Similar presentations
Database Systems: Design, Implementation, and Management Tenth Edition
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
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.
Visual Studio 2005 Team System: Tools for Architecture: Designing for Deployment Ajay Sudan Microsoft Corporation
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308.
DEV365 Visual Studio Team Edition for Software Architects: Overview Alex Torone Lead Program Manager Enterprise Tools Microsoft Corporation.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
(code name: Data Dude) Josh Robinson Aculix.
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi.
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Database Systems: Design, Implementation, and Management Ninth Edition
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
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.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
James Akrigg Microsoft Ltd Integrating InfoPath Forms Into Workflow Solutions And Business Processes.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Visual Studio 2005 Team Edition for Software Architects: Developing Service-Oriented Systems Bill Gibson Senior Program Manager Enterprise Tools Microsoft.
Office Business Applications Workshop Defining Business Process and Workflows.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
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
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Architect Visual Studio.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
Hosting Websites and Web Applications with Microsoft ® SQL Server ® 2008.
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.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
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.
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
Connect with life Tejasvi Kumar Developer Technology Specialist | Microsoft India
Model Driven Architecture MDA SE-548 Lale Doğan
Developing an IDM Information Delivery Manual Part 1. Industry Workgroup Training, Creating IDMs Alliance NA 2010 Dianne Davis, NA-IDM Coordinator Jan.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
Building Enterprise Applications Using Visual Studio®
Visual Studio Tools for Office 2005
Software Factories - Today and Tomorrow
UML profiles.
Analysis models and design models
Constructing MDA-based Application Using Rational XDE for .NET
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:

Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise Tools, Visual Studio

Microsoft Architects Forum 2 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

Microsoft Architects Forum 3 The Software Crisis (ca. 2004)  $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

Microsoft Architects Forum 4 From “Kurzweil, Moore, and Accelerating Change”, Ilkka Tuomi,

Microsoft Architects Forum 5 MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

Microsoft Architects Forum 6 Software Development as Craftsmanship  Labour Intensive  Generic Tools  Generic Processes  One off applications  Hand stitched from scratch  Minimal reuse Overruns, defects, security holes, project failures

Microsoft Architects Forum 7 MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

Microsoft Architects Forum 8 Mass Production / Continuous Improvement  Exploit economies of scale to automate & improve production  Stamping out many identical copies of a prototype  Used to produce CDs/DVDs  Does nothing to help software development

Microsoft Architects Forum 9 MassCustomizationCraftsmanship MassProductionContinuousImprovement Dynamic stability Industrialization Product change Process change Stable Dynamic

Microsoft Architects Forum 10 Mass Customization  Exploit economies of scope  Reuse designs & components  Use well-understood processes  Key is supporting variability Define only the unique pieces of each system

Microsoft Architects Forum 11 Software Factories  Domain-specific process  Domain-specific tools & languages  Domain-specific content  Automate rote and menial tasks  Improve through experience and measurement General-purpose IDEs become domain- specific software factories

Microsoft Architects Forum 12 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

Microsoft Architects Forum 13 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)

Microsoft Architects Forum 14  C(x) h    C(x)  t 2m  x  ih = – Domain Specific Languages 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

Microsoft Architects Forum 15 Domain Specific Languages  Focused on a single aspect of application building  Success in broad horizontal domains: SQL, Windows Form Designer  Easy to understand by domain experts  Designed to 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

Microsoft Architects Forum 16 Parts of a DSL Concepts & Well-formedness Rules Generated and Related Artifacts Notations & Mappings XML Serialization

Microsoft Architects Forum 17 adds code (optional) feeds in language / tool design Software / systems designer Modeling Language (tool) designer Developer adds detail to design e.g. extra metadata to drive code generation generate code Implementing a DSL

Microsoft Architects Forum 18 Models and Frameworks CustomPartialClasses FrameworkPartialClasses ASP.NET Config Files OtherResources uses uses completes FrameworkTools DSLEditor DSLModel generates OtherEditors edit / build generates Model Files (SDM)

Microsoft Architects Forum 19 Effective Transformations Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Model Application Code Domain Specific Framework Platform Frameworks Model Generated Code Framework Pattern Language Platform Generate to Framework DSLs

Microsoft Architects Forum 20 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

Microsoft Architects Forum 21 XML, Projects, Configs, Classes, Code Deployment Units packaged into Code Visualization

Microsoft Architects Forum 22.asmx Files.asmx Code Behinds Other CodeConfig Files Projects and Templates Assemblies ? ? Raising The Level Of Abstraction

Microsoft Architects Forum 23 Raising The Level Of Abstraction Application Connection Model Projects and Templates Assemblies.asmx Files.asmx Code Behinds Other CodeConfig Files

Microsoft Architects Forum 24 XML, Projects, Configs, Classes, Code Deployment Units packaged into Services, Messages, Applications, Endpoints Abstraction/refinement Vertical Mapping - Application Design

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

Microsoft Architects Forum 26 Providing Traceability Applications Application Hosting Logical Machines & Network Topology Hardware System Definition Model

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

Microsoft Architects Forum 28 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities, Operations, Rules Implementable Business Processes and Entities User Interface Process Logical Data Center Host Software User Interface Process Design

Microsoft Architects Forum 29 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software Business Entity Implementation

Microsoft Architects Forum 30 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities, Operations, Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities BusinessCapabilities Logical Data Center Host Software Business Process Modeling

Microsoft Architects Forum 31 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software Business Process Implementation

Microsoft Architects Forum 32 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints LogicalBusiness Entities, Operations, Rules Biztalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software Configuring Business Capabilities

Microsoft Architects Forum 33 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

Microsoft Architects Forum 34 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Applications, Endpoints Logical Business Entities Rules, Operations BizTalk Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software A Graph of Interrelated Viewpoints Software Factory Schema

Microsoft Architects Forum 35 DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Logical Business Entities Operations, Rules WinOE Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes Business Capabilities Logical Data Center Host Software Recipe for a system family Software Factory Schema ModelsPatternsBlocksFrameworksComponentsProcess Test Cases Tools

Microsoft Architects Forum 36 …A 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

Microsoft Architects Forum 37 Why Software Factories  Consolidate implicit business and system development knowledge for software product lines 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

Microsoft Architects Forum 38 Agenda  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

Microsoft Architects Forum 39 What About MDA?  Camp 1: A way to build applications in UML using  A platform-independent UML model (PIM)  Many platform-specific UML models (PSM)  Camp 2: Promoting the Meta Object Facility (MOF) as a substrate for defining models and their relationships  Few vendors implement MOF  Interoperability is poor  Camp 3: UML as a programming language  Interacting state machines define the behavior  Useful for real-time niches eg avionics

Microsoft Architects Forum 40 About UML  Popular and successful set of notational conventions for modelling  Addresses only a few domains well  Misses Testing, Database, User Interaction, Services, Business Capabilities  Weak extension mechanisms  Stereotypes and tags have no behavior  Hard to implement consistently in tools  Large, complex, inconsistent, disorganized  Inconsistent one-size-fits-all semantics  Defined by prose not by translation or execution  Defines model structure inside the model  Makes models hard to map to storage systems

Microsoft Architects Forum 41 “UML and More”  Introduce family of Domain Specific Languages as an alternative to a generic UML  Allow existing Visio tools to address needs of Sketchers  Reduce cost and effort to produce custom languages and designers  Provide templates for UML-like notations as starting-points for language design  Sign up partners to build UML tools on our platform

Microsoft Architects Forum 42 Summary  Software Industrialization  Domain Specific Languages  Viewpoints and Languages  A Software Factory Schema  MDA and UML

Microsoft Architects Forum 43 Resources  Websites  Software Factories   Visual Studio 2005 Team System   Visual Studio 2004 Team System Workshop   Newsgroups  Microsoft.private.whidbey.teamsystem.architect  Microsoft.private.whidbey.teamsystem.architect.modeling    Weblog 

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