S5 Building

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Defining and Building a Software Factory: 

Defining and Building a Software Factory

This Session Is About: 

Vision Ingredients of a Software Factory Implementation How to create artifacts for a Software Factory Creating a guidance package Defining a DSL This Session Is About

Factory Ingredients: 

Factory Ingredients Patterns Provide general solutions to common problems Frameworks Provide supporting and reusable assets Concrete e.g. .NET Fx Abstract e.g. Zachman Framework Models Provide a formal way to describe a specific problem Are able to execute or produce formal artifacts Methodologies Define a codified set of recommended practices Tools Support creating, maintaining and debugging

Slide4: 

How to build a Software Factory Vision

Inception: 

Inception Identify example solutions Use them to derive requirements Use them to validate factory Determine what you have to work with Do you have any existing assets? What are the constraints on the solutions you build? Required technologies, preferred vendors What are the constraints on how you build them? Existing development process conventions Approval by an internal architectural review board Safety critical certification from a third party

Construction (iterative): 

Construction (iterative) Identify experience to be harvested Common solution elements Requirements, architecture, feature groups, components and subsystems, deployment topology, development process, cross cutting aspects Viewpoints, relationships and operations Artifacts and activities in each viewpoint Develop assets to describe and support activities Domain assets like specifications from standards bodies Design assets like styles, patterns or idioms Implementation assets like class libraries, frameworks, templates, wizards, tools Separate common and variable features Map feature variations onto variability points Package and deliver the assets

Refine Along Three Dimensions : 

Refine Along Three Dimensions Coverage Start with a small kernel and prove its value (UIP) Grow to address more of the problem (Service Access) Generality Start with a constrained problem domain (caching) Grow by adding variability (pluggable key algorithm) Depth Start telling them what to do (UIP guide) Grow by doing more for them (UIP block, UIP designer)

Learning A Domain: 

Learning A Domain module users builders guidelines patterns templates wizards libraries frameworks languages designers spike finished module spec learnings

Composing Viewpoints: 

Composing Viewpoints XyZ module XyZ GUI Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ GUI spec GUI view network view biz logic view appointments view records view XyZ Records Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ Appointments Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ Network Viewpoint guidelines patterns templates wizards libraries frameworks languages designers XyZ Records spec XyZ Appts spec XyZ network spec

Specializing Viewpoints: 

Specializing Viewpoints XyZ module XyZ GUI Viewpoint framework patterns guidelines templates tools recipes models languages XyZ GUI spec GUI view AbC module GUI view AbC GUI Viewpoint framework patterns guidelines templates tools recipes models languages AbC GUI spec System GUI Viewpoint framework patterns guidelines templates tools recipes models languages System GUI spec Corporate GUI Viewpoint framework patterns guidelines templates tools recipes models languages .Net GUI Guidlines Viewpoint framework patterns guidelines templates tools recipes models languages

Defining Relationships: 

Defining Relationships XyZ module XyZ GUI Viewpoint framework patterns guidelines templates tools recipes models languages XyZ GUI spec GUI view biz model view XyZ biz logic Viewpoint framework patterns guidelines templates tools recipes models languages XyZ biz spec Relate metadata, tasks and artifacts in one life cycle phase, one part of a system, one level of abstraction to metadata, tasks and artifacts in other phases, parts and levels of abstraction

Slide12: 

How it was built GAT4WS

Assets for the GAT4WS: 

Assets for the GAT4WS Patterns Adapter pattern Frameworks asmx Tools Schema designer Schema to class generator WSDL creation tool Service interface and adapter generator

The Factory Schema: 

The Factory Schema Project Engineering Software Engineering Infrastructure Engineering Infrastructure Design and Provisioning System Deployment System Operation System Requirements Infrastructure Requirements Infrastructure Operation Business Engineering Business Requirements Business Operation Business Design System Development

System Development: 

System Development System Development System Deployment System Operation Project Engineering System Requirements Business Design Software Engineering System Design Application Development Business Requirements Application Development Software Contract Design

Software Contract Design: 

Software Contract Design Service Contract Design : Software Contract Design Data & Message Contract Design Application Development System Design Service Contract Design Lifecycle Management Business Design Business Contract Design

Software Contract Design: 

Software Contract Design Service Contract Design : Software Contract Design XSD Design Service Contract Design Data & Message Contract Design : Software Contract Design Class Design Message Contract Data Contract Service Contract Design : Software Contract Design WSDL Design Interface Design

System Development: 

System Development System Development System Operation Project Engineering System Requirements Business Design Software Engineering System Design Application Development Software Contract Design Business Requirements Application Development Software Contract Design System Deployment

Application Development: 

Module Development Application Development Application Development System Development Software Contract Design System Design Application Development System Operation System Requirements Application Specification Application Implementation Module Development System Deployment

Service Implementation: 

Service Implementation Application Implementation : System Development Adapter Service Implementation : Application Implementation Business Logic Transport Software Contract Design

GAT4WS Recipes (1/2): 

GAT4WS Recipes (1/2) Create solution Activates on creation of the solution Generate data and message types Activates on *.xsd items Scope: data & message contract projects Create service contract Activates on service contract project item Scope: service contract project Generate service interface Activates on *.wsdl items Scope: service contract project

GAT4WS Recipes (2/2): 

GAT4WS Recipes (2/2) Generate adapter Activates on *.wsdl items Scope: service contract project Create Web Service endpoint Activates on Endpoints solution folder Scope: Endpoints solution folder Expose service interface Activates on endpoint projects Scope: Endpoint solution folder

Creating a Guidance Package: 

Creating a Guidance Package

Slide26: 

Guidance Package Actions Converters CustomWizardPages Editors References Templates Items Projects Solutions Text ValueProviders Guidance schema Installer Setup

Adding an Action : 

Adding an Action

Adding an Action: 

Adding an Action

Adding an Action: 

Adding an Action

Creating an Unbound Recipe: 

Creating an Unbound Recipe

Execute an Unbound Recipe: 

Execute an Unbound Recipe

Bind a Recipe: 

Bind a Recipe

Bind a Recipe: 

Bind a Recipe

Execute a Bound Recipe: 

Execute a Bound Recipe

Slide35: 

GAT demo

Slide36: 

How it was built DSL for UIP

Assets for the UIP DSL: 

Assets for the UIP DSL Patterns MVC (in UIP) Frameworks UIP Windows Forms Tools DSL Toolkit Property Editor

Approach for building DSL: 

Approach for building DSL Defining the requirements and the abstractions Pattern languages vs. domain languages The syntax Transformations Moving down the abstraction layers

UIP Starting Point: 

UIP Starting Point Manual development of Controller View to Controller binding Configuration file

Controller implements Page Flow: 

Controller implements Page Flow

Views "offer" their State: 

Views "offer" their State

Views call the Controller: 

Views call the Controller

Configuration Defines Flow: 

Configuration Defines Flow

Defining the Abstract Syntax: 

Defining the Abstract Syntax

Defining the Concrete Syntax: 

Defining the Concrete Syntax

Transformations: 

Transformations Configuration File Controller Page classes Wizard-related page classes

Slide47: 

Creating a DSL from scratch ...

Identifying the Product: 

Identifying the Product Product families and product lines Generic, similar and individual features

Designing a Language: 

Designing a Language User Focused Start with the concrete syntax User in mind Grammar Focused Start with domain model and abstract syntax Templating in mind

Grammar Focused: 

Grammar Focused

User Focused (Use Case): 

User Focused (Use Case)

How Can You Start Today?: 

How Can You Start Today? Designing frameworks? Think about a custom language for your framework How would it look like? Does it simplify the use of your framework? Does it reduce the training effort?

Technical Issues Today: 

Technical Issues Today Even if the DSL tools are not yet released Determine that your framework's architecture supports DSLs How could you generate code (partial classes, config files, ...)? Which parts are cumbersome, where do you need support? How will developers use the DSL?

Summary: 

Summary Vision Ingredients of a Software Factory Implementation How to create artifacts for a Software Factory Creating a guidance package Defining a DSL

Slide55: 

Closing Notes

Software Factories: 

Software Factories

Software Factories: 

Software Factories We have to step up to the next level Predictability Quality Efficiency Software Factories are a long term vision to Improve productivity and predictability across the software life cycle Make it easy to deliver a wide range of tailored solutions

Slide58: 

Q & A

Slide59: 

© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.