17
A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Embed Size (px)

Citation preview

Page 1: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

A Practical High Volume Software Product Line

A Practical High Volume Software Product Line

Peter BellCEO/CTO

SystemsForge

ooPLSA ‘07

Peter BellCEO/CTO

SystemsForge

ooPLSA ‘07

Page 2: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Overview

What we do

The problem

Our approach

Lessons learned

Page 3: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

What We Do . . .Custom web applications

Small/mid sized businesses

$10,000 - $50,000

Content management

E-commerce

Document management

Workflow

. . .

Page 4: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

The Problems

Clients don’t know

Elicit requirements

Clients don’t care

Efficient feature reuse

Clients DO care

Build anything, change everything

Page 5: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Clients Don’t Know . . .Problem:

Marketing managers/CEOs

No software experience

Vague requirements

Fixed bid/scope/timeframe

Need:

Quick, flexible approach

Page 6: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Clients Don’t Care . . .

Problem:

Don’t want to specify everything

Mainly want “good enough”

Need:

Reusable “best practices”

Efficient fabrication

Page 7: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Clients DO Care . . .

Care about some things

Covers all areas

Build anything - change everything

Page 8: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Our Approach

Software product line

Specification process

Feature model

Decision support

Domain Specific Languages

Dynamic framework

Page 9: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Software Product Lines

Lots of similar applications

Framework

Components

Configuration

Extension

Bounded/Unbounded

Layered approach

Page 10: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Specification Process

Business intent

Roles/personas

Essential tasks

Packages

Screens/Actions

IA

Look and feel

Page 11: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Feature ModelingCommercial products

pure:variants

Big Lever

Our approach

Feature tree

Essential/optional metadata

Feature constraints

Page 12: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Decision Support

Associating optional metadata

Decision tree

Non-technical users

Page 13: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Domain Specific Languages

“Efficiently encode executable intent”

Everything is a DSL

Language, API, XML, Data model, etc.

Flexibility in implementation

“When I use a word, it means just what I choose it to mean”

- Humpty Dumpty

Page 14: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Domain Specific LanguagesAbstract grammar vs. Concrete Syntax

Projections (storage/editing)

Edit: cms

Store: db

Publish: XML

Consume: Framework/API

Page 15: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Dynamic FrameworkPowered by parameterization

Where are the classes?

Merging DSLs with code

Inheritance, AOP, mixins (object/class), code blocks

Page 16: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Lessons Learned

Reuse specs - not code

Framework vs. code generation

Evolution is key

Page 17: A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07

Questions?

Read the paper :)

Website: www.systemsforge.com

Blog: www.pbell.com

Email: [email protected] - Yahoo: freshstartsw - AIM: appgeneration