an introduction to software factories

17
An Introduction to An Introduction to Software Factories Software Factories Lalit Kale Software Developer e-Zest Solutions Ltd. [email protected] http://lalitkale.wordpress.com

Upload: yamal

Post on 11-Feb-2016

31 views

Category:

Documents


0 download

DESCRIPTION

An Introduction to Software Factories. Lalit Kale Software Developer e-Zest Solutions Ltd. [email protected] http://lalitkale.wordpress.com. Agenda. Current Software Development Scenario What Are Software Factories Business Value Microsoft Software Factories - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Introduction to  Software Factories

An Introduction to An Introduction to Software FactoriesSoftware FactoriesAn Introduction to An Introduction to Software FactoriesSoftware Factories

Lalit KaleSoftware Developere-Zest Solutions Ltd.

[email protected]://lalitkale.wordpress.com

Lalit KaleSoftware Developere-Zest Solutions Ltd.

[email protected]://lalitkale.wordpress.com

Page 2: An Introduction to  Software Factories

AgendaAgendaCurrent Software Development ScenarioCurrent Software Development ScenarioWhat Are Software FactoriesWhat Are Software FactoriesBusiness ValueBusiness ValueMicrosoft Software FactoriesMicrosoft Software FactoriesDemo-Web Client Software FactoryDemo-Web Client Software FactoryQ & AQ & A

Page 3: An Introduction to  Software Factories

Current Software Development Scenario

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

Page 4: An Introduction to  Software Factories

ConclusionConclusion

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

Page 5: An Introduction to  Software Factories

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

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

Page 6: An Introduction to  Software Factories

What is Software Factory?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

Page 7: An Introduction to  Software Factories

Software Product Line???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.

Page 8: An Introduction to  Software Factories

How Product Lines FormHow Product Lines Form

Variants of a systeme.g. CRM system

Mine assets from variantsAdapt assets for new variantsCustomize and apply tools, process and content for each variant

System 1

System 2copy/paste

Assets {1,2}

generalize

System 3

Assets {1,2,3}

adapt

customize

System 4

customize

System 5

Assets {1..5}

adapt

customize

Page 9: An Introduction to  Software Factories

Industrializing Software DevelopmentIndustrializing Software Development

Improve productivity and predictability across the software life cycleMake it easy to deliver a wide range of tailored solutions

SoftwareProductLines

ArchitectureFrameworks

ModelDriven

Development

Guidance InContext

Page 10: An Introduction to  Software Factories

Business ValueBusiness ValueBusiness ValueBusiness ValueConsiderable 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

Page 11: An Introduction to  Software Factories

Software FactoriesSoftware FactoriesSoftware FactoriesSoftware Factories

Help you build a specific kind of Help you build a specific kind of application (smart client, service, etc)application (smart client, service, etc)

Incorporate a variety of guidance Incorporate a variety of guidance content types and form factorscontent types and form factors

Architecture and design guidance, Architecture and design guidance, patterns, and how-to’s patterns, and how-to’s (readable/printable)(readable/printable)

Reference implementations (executable)Reference implementations (executable)

Application blocks (reusable)Application blocks (reusable)

Guidance packages (actionable)Guidance packages (actionable)

Enable an implicit processEnable an implicit process

Page 12: An Introduction to  Software Factories

Everything looks great!! Everything looks great!!

But Is It Practical??

Page 13: An Introduction to  Software Factories

Look Industry Competitors who are using software factories

Look Industry Competitors who are using software factories

Page 14: An Introduction to  Software Factories

Microsoft Software Microsoft Software FactoriesFactories

Microsoft Software Microsoft Software FactoriesFactories

Mobile Client Software Factory

Smart Client Software FactoryWeb Client Software Factory

Web Service Software Factory

Page 15: An Introduction to  Software Factories

DemoDemo

Web Client Factory

Page 16: An Introduction to  Software Factories

Q & AQ & A

Page 17: An Introduction to  Software Factories

Check out @Check out @1. MSDN Architecture Center1. MSDN Architecture Centerhttp://msdn2.microsoft.com/en-http://msdn2.microsoft.com/en-us/teamsystem/aa718951.aspxus/teamsystem/aa718951.aspx

2. Software Factories in perspective to 2. Software Factories in perspective to Global System IntegratorGlobal System Integratorhttp://msdn2.microsoft.com/en-s/http://msdn2.microsoft.com/en-s/arcjournal/bb245775.aspxarcjournal/bb245775.aspx