logging in or signing up S5 Building Freedom Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 268 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: December 04, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Defining and Building a Software Factory: Defining and Building a Software FactoryThis 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 AboutFactory 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 VisionInception: 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 partyConstruction (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 assetsRefine 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 learningsComposing 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 specSpecializing 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 languagesDefining 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 abstractionSlide12: How it was built GAT4WSAssets 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 generatorThe 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 DevelopmentSystem 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 DesignSoftware 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 DesignSoftware 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 DesignSystem 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 DeploymentApplication 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 DeploymentService Implementation: Service Implementation Application Implementation : System Development Adapter Service Implementation : Application Implementation Business Logic Transport Software Contract DesignGAT4WS 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 projectGAT4WS 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 folderCreating a Guidance Package: Creating a Guidance PackageSlide26: Guidance Package Actions Converters CustomWizardPages Editors References Templates Items Projects Solutions Text ValueProviders Guidance schema Installer SetupAdding an Action : Adding an Action Adding an Action: Adding an ActionAdding an Action: Adding an ActionCreating an Unbound Recipe: Creating an Unbound Recipe Execute an Unbound Recipe: Execute an Unbound RecipeBind a Recipe: Bind a Recipe Bind a Recipe: Bind a Recipe Execute a Bound Recipe: Execute a Bound Recipe Slide35: GAT demoSlide36: How it was built DSL for UIPAssets for the UIP DSL: Assets for the UIP DSL Patterns MVC (in UIP) Frameworks UIP Windows Forms Tools DSL Toolkit Property EditorApproach 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 layersUIP Starting Point: UIP Starting Point Manual development of Controller View to Controller binding Configuration fileController implements Page Flow: Controller implements Page Flow Views "offer" their State: Views "offer" their State Views call the Controller: Views call the ControllerConfiguration Defines Flow: Configuration Defines FlowDefining 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 classesSlide47: Creating a DSL from scratch ...Identifying the Product: Identifying the Product Product families and product lines Generic, similar and individual featuresDesigning 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 mindGrammar 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 DSLSlide55: Closing NotesSoftware Factories: Software FactoriesSoftware 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 & ASlide59: © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
S5 Building Freedom Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 268 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: December 04, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Defining and Building a Software Factory: Defining and Building a Software FactoryThis 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 AboutFactory 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 VisionInception: 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 partyConstruction (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 assetsRefine 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 learningsComposing 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 specSpecializing 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 languagesDefining 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 abstractionSlide12: How it was built GAT4WSAssets 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 generatorThe 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 DevelopmentSystem 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 DesignSoftware 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 DesignSoftware 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 DesignSystem 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 DeploymentApplication 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 DeploymentService Implementation: Service Implementation Application Implementation : System Development Adapter Service Implementation : Application Implementation Business Logic Transport Software Contract DesignGAT4WS 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 projectGAT4WS 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 folderCreating a Guidance Package: Creating a Guidance PackageSlide26: Guidance Package Actions Converters CustomWizardPages Editors References Templates Items Projects Solutions Text ValueProviders Guidance schema Installer SetupAdding an Action : Adding an Action Adding an Action: Adding an ActionAdding an Action: Adding an ActionCreating an Unbound Recipe: Creating an Unbound Recipe Execute an Unbound Recipe: Execute an Unbound RecipeBind a Recipe: Bind a Recipe Bind a Recipe: Bind a Recipe Execute a Bound Recipe: Execute a Bound Recipe Slide35: GAT demoSlide36: How it was built DSL for UIPAssets for the UIP DSL: Assets for the UIP DSL Patterns MVC (in UIP) Frameworks UIP Windows Forms Tools DSL Toolkit Property EditorApproach 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 layersUIP Starting Point: UIP Starting Point Manual development of Controller View to Controller binding Configuration fileController implements Page Flow: Controller implements Page Flow Views "offer" their State: Views "offer" their State Views call the Controller: Views call the ControllerConfiguration Defines Flow: Configuration Defines FlowDefining 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 classesSlide47: Creating a DSL from scratch ...Identifying the Product: Identifying the Product Product families and product lines Generic, similar and individual featuresDesigning 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 mindGrammar 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 DSLSlide55: Closing NotesSoftware Factories: Software FactoriesSoftware 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 & ASlide59: © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.