The Roadmap to Software Factories Tools, Patterns and Frameworks

Preview:

Citation preview

The Roadmap to Software Factories

Tools, Patterns and Frameworks

Roadmap to Software Factories

What is a Software Factory?“Models are used not only for analysis and design, but to support many varied types of computation across the entire software life cycle – even at run time”

“Software Factories are really just the logical next step in the continuing evolution of software development methods and practices”

Roadmap to Software Factories

ContextPast Adhoc tools and

personal styles Exploration of best practices

Present

Disparate tools and patterns

Emerging best practices

Future Integrated tools and patterns

Consolidation and adoption of best practices

Roadmap to Software Factories

Lifecycle

Roadmap to Software Factories

Envisioning

Poor communication

Core business goals often missed

Roadmap to Software Factories

Envisioning

Inward View

Business goals and successfactors in isolation

Roadmap to Software Factories

Envisioning

Outward Focus

Holistic view of business –“What do we provide?”

Roadmap to Software Factories

Planning

Static functional and technicalrequirements

Adhoc Requirements and Featurediscovery

Roadmap to Software Factories

Planning

Static Use Case and Use Caseanalysis

Personas and Scenarios *

Roadmap to Software Factories

Roadmap to Software Factories

DesignDesign for one use, singlepurpose, single system

Design for reuse, services for sharingand consuming

Tools provide modelling capabilities

Roadmap to Software Factories

Developing

Basic Patterns evolving

Re-use gained through evolution of delivery

Reliance on raw man power

Roadmap to Software Factories

Developing

Patterns used to communicateand design best practice

Use of Code Generators to simplifyand accelerate infrastructure tasks *

Roadmap to Software Factories

Roadmap to Software Factories

Developing

Model Driven Development

Test Driven Development

Integrated Pattern -> Code in tools

Roadmap to Software Factories

Stabilising

Manual Integration

Developer or QA resource provides adhoc testing coverage

Basic level of CM applied

Roadmap to Software Factories

StabilisingUse of Build Frameworks

Use of Unit Testing *

Continuous Integration *

Tools support CM processes

Roadmap to Software Factories

Roadmap to Software Factories

Deploying

Release build by hand or usingsimple install project

For manual release, developer contextoften required

Roadmap to Software Factories

Deploying

Components assembled byautomated build scripts

Release packaging automated

Developer context still required for manual release

Roadmap to Software Factories

Deploying

Release, associated release notesand status reports automated

Strong context linking issues, change-sets and builds

Environments modelled (e.g. DSI)

Roadmap to Software Factories

Conclusion

Progression from disparate approaches, to distillation of best practice into patterns and toolsBetter end to end tools and frameworks (e.g. Visual Studio Team System)Focus on discipline and maturity

Roadmap to Software Factories

Further informationSoftware Factories Initiative:

http://lab.msdn.microsoft.com/teamsystem/workshop/sf/default.aspx

Download slides/links:http://turtle.net.nz/blog

Jeremy Boyd: jeremyb@intergen.co.nzMark Orange: marko@intergen.co.nz

Recommended