Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia."— Presentation transcript:

1 Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu annali@microsoft.com Senior Architect Advisor Microsoft Australia

2 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 3 Industrializing Software Development Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context

4 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 22 Community Resources Websites Websites  Software Factories  http://msdn.microsoft.com/architecture/softwarefactories http://msdn.microsoft.com/architecture/softwarefactories  Visual Studio 2005 Team System  http://msdn.microsoft.com/vstudio/teamsystem http://msdn.microsoft.com/vstudio/teamsystem  Dynamic Systems Initiative  http://www.microsoft.com/windowsserversystem/dsi/def ault.mspx http://www.microsoft.com/windowsserversystem/dsi/def ault.mspx http://www.microsoft.com/windowsserversystem/dsi/def ault.mspx  ANZ Architecture Resource Centre  http://www.microsoft.com/australia/architecture/ http://www.microsoft.com/australia/architecture/ Blogs Blogs  http://blogs.msdn.com/jackgr/ http://blogs.msdn.com/jackgr/  http://blogs.msdn.com/keith_short/ http://blogs.msdn.com/keith_short/  http://blogs.msdn.com/stevecook/ http://blogs.msdn.com/stevecook/  http://blogs.msdn.com/annali/ http://blogs.msdn.com/annali/


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

Similar presentations


Ads by Google