1 / 22

Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools

Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools. Anna Liu annali@microsoft.com 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

mike_john
Download Presentation

Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software FactoryAssembling Applications with Models, Patterns, Frameworks and Tools Anna Liuannali@microsoft.com Senior Architect Advisor Microsoft Australia

  2. 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

  3. Industrializing Software Development

  4. 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

  5. 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

  6. 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

  7. 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

  8. Deployment Units 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

  9. Deployment Units 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

  10. 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

  11. 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

  12. Deployment Units 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

  13. Deployment Units 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

  14. Deployment Units 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

  15. Deployment Units 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

  16. Deployment Units 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

  17. Deployment Units 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

  18. 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

  19. 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…

  20. …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

  21. 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

  22. 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/

More Related