%PDF-1.4
%
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/Outlines 3 0 R
/Names 4 0 R
/ViewerPreferences <<
/DisplayDocTitle true
>>
/OutputIntents [5 0 R]
/Metadata 6 0 R
/PageMode /UseOutlines
/OpenAction 7 0 R
>>
endobj
8 0 obj
<<
/Title (Yo Variability! JHipster: A Playground for Web-Apps Analyses)
/Subject (Though variability is everywhere, there has always been a shortage of publicly available cases for assessing variability-aware tools and techniques as well as supports for teaching variability-related concepts. Historical software product lines contains industrial secrets their owners do not want to disclose to a wide audience. The open source community contributed to large-scale cases such as Eclipse, Linux kernels, or web-based plugin systems \(Drupal, WordPress\). To assess accuracy of sampling and prediction approaches \(bugs, performance\), a case where all products can be enumerated is desirable. As configuration issues do not lie within only one place but are scattered across technologies and assets, a case exposing such diversity is an additional asset. To this end, we present in this paper our efforts in building an explicit product line on top of JHipster, an industrial open-source Web-app configurator that is both manageable in terms of configurations \(approx 163,000\) and diverse in terms of technologies used. We present our efforts in building a variability-aware chain on top of JHipster's configurator and lessons learned using it as a teaching case at the University of Rennes. We also sketch the diversity of analyses that can be performed with our infrastructure as well as early issues found using it. Our long term goal is both to support students and researchers studying variability analysis and JHipster developers in the maintenance and evolution of their tools. )
/Creator (LaTeX with hyperref package)
/CreationDate (D:20161217193934+00'00')
/ModDate (D:20161217193934+00'00')
/Producer (pdfTeX)
/Trapped /False
/GTS_PDFA1Version (PDF/A-1b:2005)
/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 \(TeX Live 2016/Debian\) kpathsea version 6.2.2)
>>
endobj
2 0 obj
<<
/Type /Pages
/Count 9
/Kids [9 0 R 10 0 R]
>>
endobj
3 0 obj
<<
/Type /Outlines
/First 11 0 R
/Last 12 0 R
/Count 7
>>
endobj
4 0 obj
<<
/Dests 13 0 R
>>
endobj
5 0 obj
<<
/Type /OutputIntent
/S /GTS_PDFA1
/OutputConditionIdentifier (sRGB_IEC61966-2-1_black_scaled)
/DestOutputProfile 14 0 R
/Info (sRGB IEC61966 v2.1 with black scaling)
/RegistryName (http://www.color.org)
>>
endobj
6 0 obj
<<
/Length 6812
/Type /Metadata
/Subtype /XML
>>
stream
http://ns.adobe.com/pdfx/1.3/
pdfx
PDF/X Schema
external
URL to an online version or preprint
AuthoritativeDomain
Text
PRISM metadata
http://prismstandard.org/namespaces/basic/2.2/
prism
aggregationType
Text
external
The type of publication. If defined, must be one of book, catalog, feed, journal, magazine, manual, newsletter, pamphlet.
pdfTeX
application/pdf
Yo Variability! JHipster: A Playground for Web-Apps Analyses
Axel Halin
Alexandre Nuttinck
Mathieu Acher
Xavier Devroey
Gilles Perrouin
Patrick Heymans
ACM
Though variability is everywhere, there has always been a shortage of publicly available cases for assessing variability-aware tools and techniques as well as supports for teaching variability-related concepts. Historical software product lines contains industrial secrets their owners do not want to disclose to a wide audience. The open source community contributed to large-scale cases such as Eclipse, Linux kernels, or web-based plugin systems (Drupal, WordPress). To assess accuracy of sampling and prediction approaches (bugs, performance), a case where all products can be enumerated is desirable. As configuration issues do not lie within only one place but are scattered across technologies and assets, a case exposing such diversity is an additional asset. To this end, we present in this paper our efforts in building an explicit product line on top of JHipster, an industrial open-source Web-app configurator that is both manageable in terms of configurations (approx 163,000) and diverse in terms of technologies used. We present our efforts in building a variability-aware chain on top of JHipster's configurator and lessons learned using it as a teaching case at the University of Rennes. We also sketch the diversity of analyses that can be performed with our infrastructure as well as early issues found using it. Our long term goal is both to support students and researchers studying variability analysis and JHipster developers in the maintenance and evolution of their tools.
Case Study
Web-apps
Variability-related Analyses
1
B
LaTeX with hyperref package
2016-12-17T19:39:34+00:00
2016-12-17T19:39:34+00:00
2016-12-17T19:39:34+00:00
uuid:FB9E508E-C399-5818-39B9-2F01F39BFCA4
uuid:09B18B08-724F-12E3-813B-BA67D51ADF16
endstream
endobj
7 0 obj
<<
/S /GoTo
/D [15 0 R /Fit]
>>
endobj
9 0 obj
<<
/Type /Pages
/Count 7
/Parent 2 0 R
/Kids [16 0 R 15 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R]
>>
endobj
10 0 obj
<<
/Type /Pages
/Count 2
/Parent 2 0 R
/Kids [22 0 R 23 0 R]
>>
endobj
11 0 obj
<<
/Title (Introduction)
/A 24 0 R
/Parent 3 0 R
/Next 25 0 R
>>
endobj
12 0 obj
<<
/Title (References)
/A 26 0 R
/Parent 3 0 R
/Prev 27 0 R
>>
endobj
13 0 obj
<<
/Kids [28 0 R 29 0 R 30 0 R 31 0 R 32 0 R]
/Limits [(Doc-Start) (subsubsection.3.1.3)]
>>
endobj
14 0 obj
<<
/Length 2572
/N 3
/Alternate /DeviceRGB
/Filter /FlateDecode
>>
stream
xڵVgTS=BK@:K DtQ IPP#*8"ȨJAED
T 2
w#?t[z:8 $@#C y2bb j@-6''7[LlqȖ|O^Hr\^]+QރrzbDo@p3\ Tߚ-"I!&]Gc砼ziY""])bIڗ-y"i.Yz~:'K((wरr7i|L+Fb:ӥ!yw Y0w^H', Y@*@#8wA `9
2TZ A8:@78.k&F`!*DT -H2!
@p(J!$
MP TUCuP#+t:](4>Ll [,#ep2
p\5,3@Ȉ0⅄ qH"D"H%R ]H?r /a`g?&dcbc1G1>-(fKŪcMN l6-Vbc۰ww8N gsbqոV\n7*xS>ƋEcs!8L"X| qa#D8K"LfrD}1%$]q,IdHr!ERIHUEC2Cv$*qe(#EbBSĔ#}*j@uQEFcLWfLL̐KYrU'eoȾ#yɱȝ[ɇgoo"?W0PQ**R0FCh4/@H z*}>hXxFQ(((+*Pi,Z^YM]\ܪ|G
CG%MeJ#UjjՋ/jjbjaupԯhhjidiոBSI]3UBMUUuNCHgT1b:YCH::tI,$
^i=-`fD}~~[:&
W6>4e6ӌ4MLRLjLn¦|fX3G3Y0`2J7wгio2ݲrJ*jUkkkum:NW<hvv[z;[9PveG:nǏNN"N93Ӝ'.-lX8vs2\\JܴnnOuݹ'<=R=yzyrZxy{(DTKw//pY+U/?Bv{lBtBSgv=/qyuVpx.rDKRydKʔ|/~5Ujm#isA/S33?s04(K픽;{Z$<,HY<[!/*d| JVN]jj
k<ԭ&]pzG76m}o7Eo*(\_8ossLhxڭl[|IJv?YTpe;v-/_U>+xW{TV!T-ܫl;55m~?w-%ޫk7<;{iCTCϬ.9hѾF&fY|EѿSu}:fzoTykw&tw?|8SټU_t}
p.cnobw_KbEaLKɐ̧$c3 k(B?? CaJ
ߵz X3^OyG0~3Q< =36s~gEZ)'O(`K+bƜL/0cX[Z:dc=)
ꝱͽ1 _ҹٺ/h/ z
?
endstream
endobj
15 0 obj
<<
/Type /Page
/Contents 33 0 R
/Resources 34 0 R
/MediaBox [0 0 612 792]
/Parent 9 0 R
/Annots [35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R
45 0 R 46 0 R]
>>
endobj
16 0 obj
<<
/Contents 47 0 R
/Type /Page
/Resources <<
/Font <<
/F1 48 0 R
/F2 49 0 R
/F3 50 0 R
/F4 51 0 R
>>
/XObject <<
/Xf1 52 0 R
>>
>>
/Annots [53 0 R 54 0 R 55 0 R]
/Parent 9 0 R
/MediaBox [0 0 595 842]
>>
endobj
17 0 obj
<<
/Type /Page
/Contents 56 0 R
/Resources 57 0 R
/MediaBox [0 0 612 792]
/Parent 9 0 R
/Annots [58 0 R 59 0 R 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R 66 0 R 67 0 R
68 0 R 69 0 R 70 0 R 71 0 R 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R
78 0 R]
>>
endobj
18 0 obj
<<
/Type /Page
/Contents 79 0 R
/Resources 80 0 R
/MediaBox [0 0 612 792]
/Parent 9 0 R
/Annots [81 0 R 82 0 R]
>>
endobj
19 0 obj
<<
/Type /Page
/Contents 83 0 R
/Resources 84 0 R
/MediaBox [0 0 612 792]
/Parent 9 0 R
/Annots [85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R
95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R
105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R
115 0 R 116 0 R 117 0 R 118 0 R 119 0 R]
>>
endobj
20 0 obj
<<
/Type /Page
/Contents 120 0 R
/Resources 121 0 R
/MediaBox [0 0 612 792]
/Parent 9 0 R
/Annots [122 0 R 123 0 R 124 0 R 125 0 R 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R
132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R
142 0 R 143 0 R]
>>
endobj
21 0 obj
<<
/Type /Page
/Contents 144 0 R
/Resources 145 0 R
/MediaBox [0 0 612 792]
/Parent 9 0 R
/Annots [146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R 152 0 R 153 0 R 154 0 R]
>>
endobj
22 0 obj
<<
/Type /Page
/Contents 155 0 R
/Resources 156 0 R
/MediaBox [0 0 612 792]
/Parent 10 0 R
/Annots [157 0 R 158 0 R 159 0 R 160 0 R]
>>
endobj
23 0 obj
<<
/Type /Page
/Contents 161 0 R
/Resources 162 0 R
/MediaBox [0 0 612 792]
/Parent 10 0 R
>>
endobj
24 0 obj
<<
/S /GoTo
/D (section.1)
>>
endobj
25 0 obj
<<
/Title (JHipster as a Product Line)
/A 163 0 R
/Parent 3 0 R
/Prev 11 0 R
/Next 164 0 R
/First 165 0 R
/Last 166 0 R
/Count -2
>>
endobj
26 0 obj
<<
/S /GoTo
/D (section.7)
>>
endobj
27 0 obj
<<
/Title (Acknowledgements)
/A 167 0 R
/Parent 3 0 R
/Prev 168 0 R
/Next 12 0 R
>>
endobj
28 0 obj
<<
/Kids [169 0 R 170 0 R 171 0 R 172 0 R 173 0 R 174 0 R]
/Limits [(Doc-Start) (cite.Machado2014)]
>>
endobj
29 0 obj
<<
/Kids [175 0 R 176 0 R 177 0 R 178 0 R 179 0 R 180 0 R]
/Limits [(cite.Marijan2013) (lstlisting.3)]
>>
endobj
30 0 obj
<<
/Kids [181 0 R 182 0 R 183 0 R 184 0 R 185 0 R 186 0 R]
/Limits [(lstlisting.4) (lstnumber.3.8)]
>>
endobj
31 0 obj
<<
/Kids [187 0 R 188 0 R 189 0 R 190 0 R 191 0 R 192 0 R]
/Limits [(lstnumber.3.9) (section.7)]
>>
endobj
32 0 obj
<<
/Kids [193 0 R 194 0 R]
/Limits [(subsection.2.1) (subsubsection.3.1.3)]
>>
endobj
33 0 obj
<<
/Length 6128
/Filter /FlateDecode
>>
stream
x