180 likes | 229 Views
An Introduction to Software Factories. Lalit Kale Software Developer e-Zest Solutions Ltd. Lalit.kale@ezest.net http://lalitkale.wordpress.com. Agenda. Current Software Development Scenario What Are Software Factories Business Value Microsoft Software Factories
E N D
An Introduction to Software Factories Lalit Kale Software Developer e-Zest Solutions Ltd. Lalit.kale@ezest.net http://lalitkale.wordpress.com
Agenda • Current Software Development Scenario • What Are Software Factories • Business Value • Microsoft Software Factories • Demo-Web Client Software Factory • Q & A
One-off development Monolithic systems and increasing systems complexity Working at low levels of abstraction Process immaturity Rapidly growing demand for software systems Current Software Development Scenario
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.”
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??? • 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.
Assets {1,2} adapt generalize Assets {1,2,3} System 2 copy/paste customize System 3 adapt customize System 4 Assets {1..5} customize System 5 How Product Lines Form • Variants of a system • e.g. CRM system • Mine assets from variants • Adapt assets for new variants • Customize and applytools, process and content for each variant System 1
Industrializing Software Development • Improve productivity and predictability across the software life cycle • Make it easy to deliver a wide range of tailored solutions
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
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
Everything looks great!! But Is It Practical??
Microsoft Software Factories Smart Client Software Factory Web Client Software Factory Web Service Software Factory Mobile Client Software Factory
Demo Web Client Factory
Check out @ 1. MSDN Architecture Center http://msdn2.microsoft.com/en-us/teamsystem/aa718951.aspx 2. Software Factories in perspective to Global System Integrator http://msdn2.microsoft.com/en-s/arcjournal/bb245775.aspx