Download - 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
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
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
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.”
IS THERE ANY SMART WAY TO TACKLE THESE PROBLEMS???
IS THERE ANY SMART WAY TO TACKLE THESE PROBLEMS???
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
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.
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
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
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
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
Everything looks great!! Everything looks great!!
But Is It Practical??
Look Industry Competitors who are using software factories
Look Industry Competitors who are using 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
Q & AQ & A
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