software factory assembling applications with models patterns frameworks and tools
Download
Skip this Video
Download Presentation
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools

Loading in 2 Seconds...

play fullscreen
1 / 22

Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools - PowerPoint PPT Presentation


  • 283 Views
  • Uploaded 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 Assembling Applications with Models, Patterns, Frameworks and Tools' - 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

Software FactoryAssembling Applications with Models, Patterns, Frameworks and Tools

Anna [email protected]

Senior Architect Advisor

Microsoft Australia

reducing impedance to spl adoption
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
Software Product Lines
  • 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
Guidance In Context
  • 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
Guidelines

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
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
Deployment UnitsCode 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
Deployment UnitsCode 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
Domain Specific Languages
  • 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
Other

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
Deployment UnitsVertical 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
Deployment UnitsVertical 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
Deployment UnitsVertical 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
Deployment UnitsVertical 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
Deployment UnitsHorizontal 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
Deployment UnitsHorizontal 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
Architecture Frameworks
  • 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
Models

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
…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
summary integrating the critical innovations
SummaryIntegrating 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
Community Resources
  • 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