Software factory assembling applications with models patterns frameworks and tools
Download
1 / 22

Software Factory - PowerPoint PPT Presentation


  • 282 Views
  • Updated On :

Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools. Anna Liu [email protected] Senior Architect Advisor Microsoft Australia. Cost of entry into software product line is non-trivial ($, time) Large scope = too much variation, bad economies of scale

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Factory' - mike_john


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Software factory assembling applications with models patterns frameworks and tools l.jpg

Software FactoryAssembling Applications with Models, Patterns, Frameworks and Tools

Anna [email protected]

Senior Architect Advisor

Microsoft Australia


Reducing impedance to spl adoption l.jpg

Cost of entry into software product line is non-trivial ($, time)

Large scope = too much variation, bad economies of scale

“to achieve successful SPL adoption… need to consider product and process propositions”

Automation through tools, patterns, framework, templates

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

Reducing Impedance to SPL adoption



Software product lines l.jpg
Software Product Lines time)

  • 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

  • Variations in requirements map predictably to variations in artifacts and processes

  • Reduce custom development by 40% to 80% for the typical solution

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


Guidance in context l.jpg
Guidance In Context time)

  • 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

  • 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


How guidance evolves l.jpg

Guidelines time)

Patterns

Templates

Frameworks

Designers

How Guidance Evolves

Provide tool to help framework users

Ship stable features in compiled form

Automate pattern application

Formalize based on experience


Model driven development l.jpg

The good thing about bubbles and arrows, as opposed to programs, is that they never crash…..

Model Driven Development

  • Create highly focused custom languages for specific problems, platforms or tasks

  • Develop custom tools to support them

  • Use metadata captured by models for automation

Bertrand Meyer


Code visualization l.jpg

Deployment Units programs, is that they never crash…..

Code Visualization

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Code visualization9 l.jpg

Deployment Units programs, is that they never crash…..

Code Visualization

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Domain specific languages l.jpg
Domain Specific Languages programs, is that they never crash…..

  • Highly focused custom languages

    • Designed for specific problems, platforms or tasks

  • Many proven examples

    • SQL, GUI builders, HTML, regular expressions

  • Make solution easier to understand and maintain

    • Improve agility through rapid iteration


Generating artifacts l.jpg

Other programs, is that they never crash…..

Resources

uses

ASP.NET

uses

Config Files

Generating Artifacts

Tools

Framework

edit / build

Other

Editors

Custom

Partial

Classes

DSL

Editor

completes

Framework

Partial

Classes

generates

Model Files(SDM)

generates

DSL

Model


Vertical mapping system design l.jpg

Deployment Units programs, is that they never crash…..

Vertical Mapping - System Design

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

Abstraction/

refinement

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Vertical mapping system design13 l.jpg

Deployment Units programs, is that they never crash…..

Vertical Mapping - System Design

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

Abstraction/

refinement

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Vertical mapping data center design l.jpg

Deployment Units programs, is that they never crash…..

Vertical Mapping - Data Center Design

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

Abstraction/

refinement

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Vertical mapping data center design15 l.jpg

Deployment Units programs, is that they never crash…..

Vertical Mapping - Data Center Design

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

Abstraction/

refinement

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Horizontal mapping deployment l.jpg

Deployment Units programs, is that they never crash…..

Horizontal Mapping - Deployment

constraints

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Horizontal mapping deployment17 l.jpg

Deployment Units programs, is that they never crash…..

Horizontal Mapping - Deployment

constraints

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

packaged into


Architecture frameworks l.jpg
Architecture Frameworks programs, is that they never crash…..

  • Define viewpoints that identify and separate key stakeholder concerns

  • Organize tools, process and content by viewpoint

  • Relate and integrate life cycle phases, system components, and levels of abstraction


A graph of viewpoints l.jpg

Models programs, is that they never crash…..

Patterns

Frameworks

Components

Guidance

Test Cases

Tools

Business

Capabilities

Business Processes and Entities

Implementable Business Processes and Entities

Manual Processes

User Interface Process

WinOE

Schedules & Rules

Services,

Messages, Applications, Endpoints

Logical Data Center

Host Software

Business Entities,

Operations, Rules

DB

Definitions

XML, Projects,

Configs, Classes, Code

Physical Servers and Network Segments

deployed on

Deployment Units

packaged into

A Graph Of Viewpoints…


Defines a software factory l.jpg
…Defines A Software Factory programs, is that they never crash…..

  • 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


Summary integrating the critical innovations l.jpg
Summary programs, is that they never crash….. Integrating The Critical Innovations

  • Exploit economies of scope with systematic reuse

    • By building families of similar but distinct software products

  • Assemble self describing service components

    • Using new encapsulation, packaging and orchestration technologies

  • 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

    • Using constraint based scheduling and active guidance


Community resources l.jpg
Community Resources programs, is that they never crash…..

  • Websites

    • Software Factories

      • http://msdn.microsoft.com/architecture/softwarefactories

    • Visual Studio 2005 Team System

      • http://msdn.microsoft.com/vstudio/teamsystem

    • Dynamic Systems Initiative

      • http://www.microsoft.com/windowsserversystem/dsi/default.mspx

    • ANZ Architecture Resource Centre

      • http://www.microsoft.com/australia/architecture/

  • Blogs

    • http://blogs.msdn.com/jackgr/

    • http://blogs.msdn.com/keith_short/

    • http://blogs.msdn.com/stevecook/

    • http://blogs.msdn.com/annali/


ad