Download presentation
Presentation is loading. Please wait.
Published byJody Reeves Modified over 9 years ago
1
EMEA Beat Schwegler Architect Microsoft EMEA HQ http://blogs.msdn.com/beatsch/ Ingo Rammer Principal Consultant thinktecture http://www.thinktecture.com/ Software Factories - Today and Tomorrow
2
1st February, Praha 09.00 - 09.30Software Factories Vision 09.30 - 10.30Software Factories Today 11.00 - 12.15A Software Factory to Build Factories 13.00 - 14.15 Using a Software Factory 14.30 - 15.45Defining and Building a Software Factory 15.45 - 16.15Q&A session
19
Marx had a vision of the pianist as a performer who produced something that couldn't be commoditized. John Markoff Then along came the recording, a commoditization of the pianist's art.
20
Bad Stuff Happens We need to capture the “method” in the madness of software development
21
Typical Development Issues Solution Structure Designer Design Application Platform Expert Define Technology Standards Business Analyst Capture Business Process Coder Code Application Core Component Builder Build Core Components
23
The Real World is Complex Solution Structure Designer Design Application Platform Expert Define Technology Standards Business Analyst Capture Business Process Coder Code Application Core Component Builder Build Core Components Data Architect Create Data Model DBA/OpsMaintainInfrastructure Senior User Represent Users Project Manager Deliver to Schedule Graphic Designer Design look + feel Interaction or Experience Manager Web Developer Implement look + feel Policies and restrictions Users Description of Application - Flow diagram - Prototype Description of Process Status Reports Estimates Requirements (often new) Domain Info Domain Info Visual spec Spec Feedback Description of Application - Flow diagram - Prototype Feedback Spec Work items Requirements (QoS) Logical/physicalarchitecture Possible solutions Data access API Database specs Feedback on errors/intent DB scripts Feedback on DB scripts Feedback on errors/intent Path to physical DB Advice and designs for Tricky parts of app Policies and restrictions Status Reports Estimates Hard to tell if application design correctly reflects business process Requirements often vague, incomplete Expensive to do this for every project PM has to trust these estimates No way to guarantee that spec is followed Too much hand holding Too much hand holding
25
Software Development as Craftsmanship Labor Intensive Generic Tools Generic Processes One off applications Hand stitched from scratch Minimal reuse Overruns, defects, security holes, project failures
26
Exploiting Commonality We already exploit economies of scale to automate production Stamping out many identical copies of a prototype Used to produce CDs/DVDs Does nothing to help development
27
Exploiting Commonality We can also exploit economies of scope Reuse designs & components Build many similar but distinct prototypes Key is supporting variability Define only the unique pieces of each system
28
Software Factories Domain-specific process Domain-specific tools & languages Domain-specific content Automate rote and menial tasks General-purpose IDEs become domain-specific software factories
29
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
30
Another Development Process Tools, Process, Content creates uses Requirements, Defects uses creates creates Product Development Asset Development Business createsuses Products uses Requirements, Defects creates
31
How Product Lines Form Variants of a system e.g. CRM system Mine assets from variants Adapt assets for new variants Customize and apply tools, process and content for each variant System 1 System 2 copy/paste Assets {1,2} generalize System 3 Assets {1,2,3} adapt customize System 4 customize System 5 Assets {1..5} adapt customize
32
Feature Models Payment FrequentFlyer PayOnDelivery mandatory feature optional feature alternative features No decision regarding the mechanism for implementing variability! CreditCard PayByBill OrderCapture Tax Invoice OnlinePrinted ShipmentCost ApprovalFulfillment OrderManagement ShippingElectronicDelivery PackageTrackingNoPackageSlip «implies» Used by permission from Krzysztof Czarnecki
33
Using A Feature Model Payment FrequentFlyer PayOnDelivery CreditCard PayByBill OrderCapture Tax Invoice OnlinePrinted ShipmentCost ApprovalFulfillment OrderManagement ShippingElectronicDelivery PackageTrackingNoPackageSlip Used by permission from Krzysztof Czarnecki
34
Using A Feature Model Payment ElectronicCheck PayOnDelivery CreditCard PayByBill OrderCapture Tax Invoice OnlinePrinted ShipmentCost ApprovalFulfillment OrderManagement ShippingElectronicDelivery PackageTrackingNoPackageSlip Used by permission from Krzysztof Czarnecki
35
Using A Feature Model Payment ElectronicCheck CreditCard OrderCapture Tax Invoice OnlinePrinted ShipmentCost ApprovalFulfillment OrderManagement Shipping PackageSlip Used by permission from Krzysztof Czarnecki
36
Industrializing Software Development Improve productivity and predictability across the software life cycle Make it easy to deliver a wide range of tailored solutions Software Product Lines Architecture Frameworks Model Driven Development Guidance In Context
37
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.