A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter...
-
Upload
toby-jordan -
Category
Documents
-
view
221 -
download
4
Transcript of A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter...
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
Overview
What we do
The problem
Our approach
Lessons learned
What We Do . . .Custom web applications
Small/mid sized businesses
$10,000 - $50,000
Content management
E-commerce
Document management
Workflow
. . .
The Problems
Clients don’t know
Elicit requirements
Clients don’t care
Efficient feature reuse
Clients DO care
Build anything, change everything
Clients Don’t Know . . .Problem:
Marketing managers/CEOs
No software experience
Vague requirements
Fixed bid/scope/timeframe
Need:
Quick, flexible approach
Clients Don’t Care . . .
Problem:
Don’t want to specify everything
Mainly want “good enough”
Need:
Reusable “best practices”
Efficient fabrication
Clients DO Care . . .
Care about some things
Covers all areas
Build anything - change everything
Our Approach
Software product line
Specification process
Feature model
Decision support
Domain Specific Languages
Dynamic framework
Software Product Lines
Lots of similar applications
Framework
Components
Configuration
Extension
Bounded/Unbounded
Layered approach
Specification Process
Business intent
Roles/personas
Essential tasks
Packages
Screens/Actions
IA
Look and feel
Feature ModelingCommercial products
pure:variants
Big Lever
Our approach
Feature tree
Essential/optional metadata
Feature constraints
Decision Support
Associating optional metadata
Decision tree
Non-technical users
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
Domain Specific LanguagesAbstract grammar vs. Concrete Syntax
Projections (storage/editing)
Edit: cms
Store: db
Publish: XML
Consume: Framework/API
Dynamic FrameworkPowered by parameterization
Where are the classes?
Merging DSLs with code
Inheritance, AOP, mixins (object/class), code blocks
Lessons Learned
Reuse specs - not code
Framework vs. code generation
Evolution is key
Questions?
Read the paper :)
Website: www.systemsforge.com
Blog: www.pbell.com
Email: [email protected] - Yahoo: freshstartsw - AIM: appgeneration