Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Introduction to Software Factories

Similar presentations


Presentation on theme: "An Introduction to Software Factories"— Presentation transcript:

1 An Introduction to Software Factories
9/13/2018 8:49 PM An Introduction to Software Factories Lalit Kale Software Developer e-Zest Solutions Ltd. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 Agenda Current Software Development Scenario
What Are Software Factories Business Value Microsoft Software Factories Demo-Web Client Software Factory Q & A

3 Current Software Development Scenario
One-off development Monolithic systems and increasing systems complexity Working at low levels of abstraction Process immaturity Rapidly growing demand for software systems One-Off Development “We refer to one-off development when a software system (or software product) is developed independently from other similar systems and does not leverage the knowledge gained and the assets produced for those other systems. One-off development often results in systems that are not designed for reuse, and neither do they make considerable reuse of existing components. There are a several reasons for this: • Developing systems in a relative isolation from other systems and projects does not encourage identifying similarities to other systems. • Even with access to similar systems, it may be difficult to identify matching and reusable assets; sometimes because the information is not available (e.g., an undocumented in-house product) and other times because the selection is overwhelming (e.g., with certain third-party products). If people cannot identify matching reusable assets quickly enough, they usually begin developing them from scratch (ultimately reinventing the wheel). • Assets that only partially match the requirements and were developed without the foresight of reusability may be so difficult to incorporate, that the development team again will rather build their own versions than modify the existing ones.” Monolithic Systems Even though monolithic systems usually consist of many different components, these building blocks are strongly interconnected, no uniform (not adhering to shared standards), and interwoven. This makes it difficult to separate individual blocks from the rest of the system, and therefore renders them pretty much unusable in the context of other systems. Such tight coupling manifests itself in long-reaching dependencies and high system complexity. Working at a Low Level of Abstraction we mean working with general-purpose programming languages that enable us to produce any kind of system, but don’t help hiding details that are irrelevant to the business problems we are trying to solve. Process Immaturity CHAOS Report suggests that with only 20% of projects finished on time and within budget, the applied processes do not result in high predictability of software development projects. Rapidly growing demand for software systems we could see continued increase in demand for software systems at the same time as size and complexity of software systems grows. Today, software is integrated in almost any product we can imagine. This simultaneous and rapid increase in the demand, size, and complexity stands in contrast to the slow improvements in software development technologies and techniques. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

4 Conclusion “One-off development compounded with immature development processes (inconsistent use of tools, working at low abstraction levels, limited reuse and lack of explicit process structure) lead to cost overruns, delayed deliverables, unimplemented functionality, and even project cancellation.”

5 IS THERE ANY SMART WAY TO TACKLE THESE PROBLEMS???

6 What is Software Factory?
A software product line that configures extensible tools, processes, and content using a software factory template based on a software factory schema to automate the development and maintenance of variants of an archetypical product by adapting, assembling, and configuring framework-based components

7 Software Product Line??? A Software Product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.

8 How Product Lines Form Variants of a system Mine assets from variants
e.g. CRM system Mine assets from variants Adapt assets for new variants Customize and apply tools, process and content for each variant Assets {1,2} generalize System 3 Assets {1,2,3} adapt customize System 1 System 2 copy/paste System 4 customize System 5 Assets {1..5} adapt customize

9 Industrializing Software Development
Improve productivity and predictability across the software life cycle Make it easy to deliver a wide range of tailored solutions

10 Business Value Considerable efficiency gain and shortened time to market with each subsequent version of the product because of the reuse of already existing core assets Improved product quality because core factory assets have already been tested and used in previous products and therefore have matured Flexibility in addressing the changing market demands because of clear application framework variability and extensibility

11 9/13/2018 8:49 PM Software Factories Help you build a specific kind of application (smart client, service, etc) Incorporate a variety of guidance content types and form factors Architecture and design guidance, patterns, and how-to’s (readable/printable) Reference implementations (executable) Application blocks (reusable) Guidance packages (actionable) Enable an implicit process

12 Everything looks great!!
But Is It Practical??

13 Look Industry Competitors who are using software factories

14 Microsoft Software Factories
Smart Client Software Factory Web Client Software Factory Web Service Software Factory Mobile Client Software Factory 14

15 Demo Web Client Factory

16 Q & A

17 Check out @ 1. MSDN Architecture Center
9/13/2018 8:49 PM Check 1. MSDN Architecture Center 2. Software Factories in perspective to Global System Integrator © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "An Introduction to Software Factories"

Similar presentations


Ads by Google