Customiza*on and 3D Prin*ng A Challenging Playground for So3ware Product Lines Mathieu Acher , Benoit Baudry, Olivier Barais, JeanMarc Jézéquel
Dec 18, 2014
Customiza*on and 3D Prin*ng
A Challenging Playground for So3ware Product Lines
Mathieu Acher, Benoit Baudry, Olivier Barais, Jean-‐Marc Jézéquel
3D Print your 3D Printer
Puppets
5
6
7
9
So7ware product line (SPL) perspec*ve
3D PrinIng is gaining momentum – CustomizaIon also
• SPL? Variability? • « the ability of a so3ware system or arIfact to be efficiently extended, changed, customized or configured for use in a parIcular context »
• Can SPL engineering learn from 3D prin*ng? • Can 3D prin*ng benefit from SPL engineering?
10
Field/ethnographic study
We observed how a community of people (i.e, the Thingiverse community) interacts and collaborates for achieving a technical work (i.e., customizing and producing 3D models)
11
Playground
12
13
No need to hide, there is an “open” access to data
14
Analysis of Thingiverse
15
16
17
18
19
.scad
20
Documenta*on (hLp://customizer.makerbot.com/docs)
21
22 Variability Modeling Variability Implementation
Configuration Reuse
We observed how a community of people (i.e, the Thingiverse community) interacts and collaborates for achieving a technical work (i.e., customizing and producing 3D models)
Preconcep*on: product line perspec*ve
23
24
25
Conditional statements hell
26
33 imbrications “else” not necessarily here
27
Configuration
Clone and Own
28
Reuse
Key Results (1)
• Variability Modeling and ConfiguraIon – Variability concepts are here – No constraints – ConfiguraIon
• Configurator • Visibility / SeparaIon of Concerns • Many configuraIon issues
– Huge complexity • 38 parameters, 8 tabs, 10^28 configuraIons
29
Key Results (2)
• ImplementaIon – Parameterized Procedures – CondiIonal Statements
• 33 imbricaIons – pre-‐compiled datastructures
• themselves parameterizable
• DerivaIon – You can visualize your result before prinIng
• Limited reuse mechanism
30
So What?
• Will So3ware Product Line Engineering save the world?
• Can help, can learn
• Challenges ahead
31
Capture Specific Things
• Physical properIes – Are we even able to print the 3D product
• Specific to the product – knowledge out there
• So3ware level
32
Complexity and Cogni*ve Effort
• Keeping a low cogniIve effort – Not necessarily so3ware developers
• More sophisIcated techniques induce someImes accidental complexity
33
Cost-‐benefit Tradeoff
• Cost of applying more sophisIcated techniques versus benefit of upfront investment
• Pay off when? – For dozens of people in their garage? – For millions of rich people?
34
Challenging Playground
35
Future
• Automated techniques to support large scale, more comprehensive analysis – Beyond an exploratory and very manual analysis
– We have an infrastructure to mine Things and analyze .scad files
• Adressing the challenges • Helping a community like Thingiverse to master the complexity
36
OpenJSCAD
37