Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.

Slides:



Advertisements
Similar presentations
Microsoft ® System Center Configuration Manager 2007 R3 and Forefront ® Endpoint Protection Infrastructure Planning and Design Published: October 2008.
Advertisements

1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Chapter 1 The Systems Development Environment
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
Team System and Microsoft Solutions Framework Alan Cameron Wills Architect, MSF
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.
Copyright 2006 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Third Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Agile Testing with Testing Anywhere The road to automation need not be long.
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.
Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Database Design, Application Development, and Administration, 5 th Edition Copyright © 2011 by Michael V. Mannino All rights reserved. Chapter 2 Introduction.
OFC 200 Microsoft Solution Accelerator for Intranets Scott Fynn Microsoft Consulting Services National Practices.
Microsoft Dynamics Snap Michael McClary ISV Developer Evangelist Microsoft Corporation.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
DEV 303 Visual Studio "Whidbey" Enterprise Tools: Source Control and Work Item Tracking Brian Harry Product Unit Manager Microsoft Visual Studio.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
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.
Michael Woods Sr. Technical Product Manager.
Visual Studio 2005 Team Edition for Software Architects: Developing Service-Oriented Systems Bill Gibson Senior Program Manager Enterprise Tools Microsoft.
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.
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.
Solution Supply Chains Jack Greenfield. Overview Learning from Other Industries Mass Customization in Software Development Implementing Supply Chains.
Hosting Websites and Web Applications with Microsoft ® SQL Server ® 2008.
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
Visual Studio Team System overview Pierre Greborio Software Architect – PEWay Microsoft MVP – Solutions Architect.
Microsoft ® Forefront ™ Identity Manager 2010 Infrastructure Planning and Design Published: June 2010.
Visual Studio 2005 Team System: Software Project Management Brian A White Microsoft
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
1 Introduction Bindia Hallauer & Ajay Sudan Product Management, Visual Studio Team System Microsoft Corporation.
Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
The 2007 Microsoft Office System Servers Enterprise Content Management, Workflow and Forms Martin Parry Developer and Platform Group, Microsoft Ltd
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
The best of WF 4.0 and AppFabric Damir Dobric MVP-Connected System Developer Microsoft Connected System Division Advisor Visual Studio Inner Circle member.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Building Enterprise Applications Using Visual Studio®
Introduction to UML.
CIM Modeling for E&U - (Short Version)
Visual Studio Tools for Office 2005
Software Factories - Today and Tomorrow
Enterprise Library Overview
Configuration Management with Azure Automation DSC
Hyper-V Cloud Proof of Concept Kickoff Meeting <Customer Name>
An Introduction to Software Factories
Analysis models and design models
DAT381 Team Development with SQL Server 2005
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Delivering great hardware solutions for Windows
Mark Quirk Head of Technology Developer & Platform Group
Contexualized Data In Document Authoring
Presentation transcript:

Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. The Software Crisis (ca. 2004) $250B/yr in US (average $430K to $2.3M per project) $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

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. From “Kurzweil, Moore, and Accelerating Change”, Ilkka Tuomi,

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Questions We Hear… What types of systems can I build? What types of systems can I build?  What’s the architecture of each type? How do I go from requirements to deployment? How do I go from requirements to deployment?  What artifacts do I need to build?  How are they related?  What are the key decisions that need to be made? Why are methodologies so abstract? Why are methodologies so abstract?  Why can’t I get concrete guidance for my project? Why isn’t modeling more effective? Why isn’t modeling more effective?  Why can’t tools generate production quality code?  Why don’t models stay synchronized with code?  Why don’t models fit my file-oriented environment?

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Is Agility The Answer? Agile methods optimize for change 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? Where do they fall short?  Don’t scale up to large or complex projects  Lack of documentation creates integration issues  Lack of metadata limits automation opportunities  One-off development of generic systems

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Is Methodology the Answer? Software methods optimize for complexity Software methods optimize for complexity  Prescribing roles, artifact, activities  Emphasizing requirements, analysis, design  Using general-purpose models to document architecture Where do they fall short? Where do they fall short?  Don’t respond rapidly to change  Coding, testing, debugging, instrumentation, deployment, management, maintenance  Informal modeling limits automation opportunities  One-off development of generic systems

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Software Development as Craftsmanship Labor Intensive Labor Intensive Generic Tools Generic Tools Generic Processes Generic Processes One off applications One off applications Hand stitched from scratch Hand stitched from scratch Minimal reuse Minimal reuse Overruns, defects, security holes, project failures

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Exploiting Commonality We already exploit economies of scale to automate production We already exploit economies of scale to automate production Stamping out many identical copies of a prototype Stamping out many identical copies of a prototype Used to produce CDs/DVDs Used to produce CDs/DVDs Does nothing to help development Does nothing to help development

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. MassCustomizationCraftsmanship MassProductionContinuousImprovement Industrialization Product change Process change Stable Dynamic

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Exploiting Commonality We can also exploit economies of scope We can also exploit economies of scope Reuse designs & components Reuse designs & components Build many similar but distinct prototypes Build many similar but distinct prototypes Key is supporting variability Key is supporting variability Define only the unique pieces of each system

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. MassCustomizationCraftsmanship MassProductionContinuousImprovement Dynamic stability Industrialization Product change Process change Stable Dynamic

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Software Factories Domain-specific process Domain-specific process Domain-specific tools & languages Domain-specific tools & languages Domain-specific content Domain-specific content Automate rote and menial tasks Automate rote and menial tasks General-purpose IDEs become domain-specific software factories

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Domain Specific Languages Focused on a single aspect of app building Focused on a single aspect of app building  Success in broad horizontal domains: SQL, Windows Form Designer Designed to support the concepts defined by an underlying framework 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 Increase agility by visualizing concepts, generating code and other artifacts, enabling rapid iteration Artifacts synchronized through integrated metadata Artifacts synchronized through integrated metadata Building them must be fast, cheap and easy

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Building A DSL Concepts & Well-formedness Rules Generated and Related Artifacts Notations & Mappings XML Serialization

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. XML, Projects, Configs, Classes, Code Deployment Units packaged into Code Visualization

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. XML, Projects, Configs, Classes, Code Deployment Units packaged into Services, Messages, Protocols, Endpoints Abstraction/refinement Vertical Mapping - System Design

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Data Center Host Software Abstraction/refinement Vertical Mapping - Data Center Design

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Data Center Host Software constraints Horizontal Mapping - Deployment

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Business Entities, and Operations Implementable Business Processes and Entities User Interface Process Logical Data Center Host Software User Interface Process Design

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Business Entities, and Operations 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

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Business Entities, and Operations Implementable Business Processes and Entities User Interface Process Business Processes and Entities BusinessCapabilities Logical Data Center Host Software Business Process Modeling

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Business Entities, and Operations 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

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units Services, Messages, Protocols, Endpoints Logical Business Entities and 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 A Software Factory Schema

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. DB Definitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Protocols, Endpoints Logical Business Entities and 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 Like a recipe for a family of systems A Software Factory Schema ModelsPatternsTemplatesFrameworksComponentsProcess Test Cases Tools

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. A Software Factory Template Implements software factory schema Implements software factory schema  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 domain specific development environment Creates domain specific development environment  Integrates tools, process and content for the class of systems  Domain specific editing, compilation, debugging, refactoring, building, testing, deployment, configuration management, defect tracking, reporting

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Using A Software Factory Progressively define system under development Progressively define system under development  Only unique features – common features are assumed  Defining system customizes schema and template  Adds, removes or changes viewpoints – configures tools, process and content Use customized factory to build system Use customized factory to build system  Custom develop features outside factory scope Refactor system continually during development Refactor system continually during development  Capture system definition in factory configuration Factory configuration defines delivered system Factory configuration defines delivered system  Provides basis for backtracking and refactoring  Simplifies maintenance and enhancement  Makes impact of changes easier to trace and understand  Changes propagate through factory Feedback to factory builders Feedback to factory builders  Builders may be the same people as users

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Building A Software Factory Define target class of systems Define target class of systems  Use feature models to capture commonality/variability Build software factory schema Build software factory schema  Define viewpoints and relationships for major life cycle phases  Requirements, Architecture, Implementation, Deployment, Testing, Operations, Maintenance  Define life cycle process and identify automation opportunities Build software factory template from schema Build software factory template from schema  Build tools, VS templates, patterns, help, methodology template  Package as nesting parameterized install packages Refactor software factory as systems are developed Refactor software factory as systems are developed  Based on new requirements and user feedback

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Feature Modeling Payment FrequentFlyer PayOnDelivery mandatory feature optional feature alternative features CreditCard PayByBill OrderCapture Tax Invoice OnlinePrinted ShipmentCost ApprovalFulfillment OrderManagement ShippingElectronicDelivery PackageTrackingNoPackageSlip Used by permission from Krzysztof Czarnecki

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Agenda Modeling and Methods Modeling and Methods Industrializing Software Industrializing Software Domain Specific Languages Domain Specific Languages Separating Concerns Separating Concerns A Software Factory Schema A Software Factory Schema Wrap Up Wrap Up

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Why Software Factories Consolidate implicit business and system development knowledge into specialized tools, process, and content 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 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 Reduce cost and risk by distributing the software life cycle across networks of interdependent groups and partners

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. Resources Book Book  Software Factories by Jack Greenfield and Keith Short with Steve Cook and Stuart Kent Websites Websites    Newsgroups Newsgroups  whidbey&slcid=us whidbey&slcid=us whidbey&slcid=us  Blog Blog 

Portions copyright © Jack Greenfield & Keith Short with Steve Cook & Stuart Kent. Used by permission of John Wiley & Sons, Inc. All rights reserved. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.