Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.

Slides:



Advertisements
Similar presentations
Connected Health Framework
Advertisements

Systems Development Environment
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
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
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.
8 Systems Analysis and Design in a Changing World, Fifth Edition.
John Sadd Progress Fellow and OpenEdge Evangelist
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Tools for Architects and Future Directions in Modeling Beat Schwegler Architect, Enterprise Team Microsoft EMEA D&PE blogs.msdn.com/beatsch Arvindra Sehmi.
Microsoft Architects Forum 1 Software Factories : Assembling Applications with Patterns, Models, Frameworks and Tools Steve Cook Software Architect Enterprise.
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.
Principles of Object Technology Module 1: Principles of Modeling.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
UML - Development Process 1 Software Development Process Using UML (2)
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
An Introduction to Software Architecture
Business Systems Development SDLC and introduction to the Microsoft Solutions Framework Team and Process Models.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
XML in Development of Distributed Systems Tooling Programming Runtime.
Introduction to MDA (Model Driven Architecture) CYT.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
Generative Programming. Automated Assembly Lines.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Introduction to Software Engineering Lecture 1.
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.
Designing solutions using Visual Studio 2005’s architecture and design tools.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
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.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Microsoft Australia Security Summit Design for Operations Nigel Watson, Microsoft Australia David Lemphers, TeamForce Nigel Watson, Microsoft Australia.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
2005 Microsoft PAKISTAN DEVELOPER CONFERENCE June 13-15, 2005.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
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.
ARC411 Domain Specific Language Tools For Model-Driven Development In Microsoft Visual Studio 2005 Jochen Seemann Program Manager Enterprise Tools Microsoft.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Demystifying Domain Specific languages & Software Factories Govind Kanshi Architect Advisor Microsoft Corporation.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
ARCH-06 Redesign & Harvest Mike Ormerod - Architect Christian Stiller - Senior Consultant Applied Technology Group.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Model Driven Architecture MDA SE-548 Lale Doğan
Application generation Peter Bell SystemsForge Peter Bell SystemsForge Beyond Scaffolding.
Software Factories Steve Cook Architect Enterprise Tools, Visual Studio Microsoft Corporation.
Building Enterprise Applications Using Visual Studio®
CIM Modeling for E&U - (Short Version)
Software Factories - Today and Tomorrow
An Introduction to Software Factories
Jochen Seemann Program Manager Enterprise Tools Microsoft Corporation
Presentation transcript:

Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia

2 Reducing Impedance to SPL adoption Cost of entry into software product line is non-trivial ($, time) Cost of entry into software product line is non-trivial ($, time) Large scope = too much variation, bad economies of scale Large scope = too much variation, bad economies of scale “to achieve successful SPL adoption… need to consider product and process propositions” “to achieve successful SPL adoption… need to consider product and process propositions” Automation through tools, patterns, framework, templates Automation through tools, patterns, framework, templates Use Domain specific languages to solve targeted problems and to enable MDD Use Domain specific languages to solve targeted problems and to enable MDD Constraint based scheduling to enable scaling up of agile methods, and provide guidance in context Constraint based scheduling to enable scaling up of agile methods, and provide guidance in context

3 Industrializing Software Development Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context

4 Software Product Lines Build new solutions by assembling partial solutions and/or configuring general ones Build new solutions by assembling partial solutions and/or configuring general ones Specify only the unique features of each solution and assume the common ones Specify only the unique features of each solution and assume the common ones Variations in requirements map predictably to variations in artifacts and processes Variations in requirements map predictably to variations in artifacts and processes Reduce custom development by 40% to 80% for the typical solution Reduce custom development by 40% to 80% for the typical solution Software Product Lines A set of systems sharing a set of managed features that satisfy the specific needs of a particular market segment and that are developed from a common set of core assets in a prescribed way. Clements and Northrop

5 Guidance In Context Provide guidance that helps practitioners know what to do and that helps them do it Provide guidance that helps practitioners know what to do and that helps them do it Build installable packages containing organized sets of configurable guidance assets for common use cases Build installable packages containing organized sets of configurable guidance assets for common use cases Attach guidance to steps in the process and parts of the architecture Attach guidance to steps in the process and parts of the architecture Scope process steps with pre and post conditions to let project work flow vary subject to constraints Scope process steps with pre and post conditions to let project work flow vary subject to constraints Guidance In Context Software Product Lines

6 How Guidance Evolves Guidelines Patterns Templates Frameworks Designers Provide tool to help framework users Ship stable features in compiled form Automate pattern application Formalize based on experience

7 Model Driven Development Create highly focused custom languages for specific problems, platforms or tasks Create highly focused custom languages for specific problems, platforms or tasks Develop custom tools to support them Develop custom tools to support them Use metadata captured by models for automation Use metadata captured by models for automation Software Product Lines Model Driven Development Guidance In Context The good thing about bubbles and arrows, as opposed to programs, is that they never crash….. Bertrand Meyer

8 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 Code Visualization

9 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 Code Visualization

10 Domain Specific Languages Highly focused custom languages Highly focused custom languages  Designed for specific problems, platforms or tasks Many proven examples Many proven examples  SQL, GUI builders, HTML, regular expressions Make solution easier to understand and maintain Make solution easier to understand and maintain  Improve agility through rapid iteration

11 Generating Artifacts CustomPartialClasses FrameworkPartialClasses ASP.NET Config Files OtherResources uses uses completes FrameworkTools DSLEditor DSLModel generates OtherEditors edit / build generates Model Files (SDM)

12 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 - System Design

13 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 - System Design

14 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

15 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

16 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

17 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

18 Architecture Frameworks Define viewpoints that identify and separate key stakeholder concerns Define viewpoints that identify and separate key stakeholder concerns Organize tools, process and content by viewpoint Organize tools, process and content by viewpoint Relate and integrate life cycle phases, system components, and levels of abstraction Relate and integrate life cycle phases, system components, and levels of abstraction Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context

19 DBDefinitions XML, Projects, Configs, Classes, Code Physical Servers and Network Segments Deployment Units packaged into deployed on Services, Messages, Applications, Endpoints Business Entities, Operations, Rules WinOE Schedules & Rules Implementable Business Processes and Entities User Interface Process Business Processes and Entities Manual Processes BusinessCapabilities Logical Data Center Host Software A Graph Of Viewpoints… ModelsPatternsFrameworksComponentsGuidance Test Cases Tools

20 …Defines A Software Factory This is called a software factory schema 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 A software factory template is content  Configures a development environment for application type  Projects, patterns, frameworks, guidance Configured development environment is software factory Configured development environment is software factory  Integrates tools, process and content for that type of application  Domain specific editing, rendering, compilation, debugging, refactoring

21 Summary Integrating The Critical Innovations Exploit economies of scope with systematic reuse Exploit economies of scope with systematic reuse  By building families of similar but distinct software products Assemble self describing service components Assemble self describing service components  Using new encapsulation, packaging and orchestration technologies Raise the level of abstraction for developers Raise the level of abstraction for developers  By developing domain specific languages and tools  Using new language definition, code generation and tool building technologies Scale up agile methods to higher levels of complexity Scale up agile methods to higher levels of complexity  Using constraint based scheduling and active guidance

22 Community Resources Websites Websites  Software Factories   Visual Studio 2005 Team System   Dynamic Systems Initiative  ault.mspx ault.mspx ault.mspx  ANZ Architecture Resource Centre  Blogs Blogs    