Skip to content

Commit 52ae25e

Browse files
xxthunderjomal77
andauthored
Reviewer comments and final review (#1)
* 371: Clarify Monorepo * 380 and 387 : Typos and section references * 385: whitespace does not look nice * 377: definition of OEM * Fix autoformatter's whitespace madness * 389: improve wording * 390: font is Libertine in all figures * ignore *.ts * 393, 378, 381, 388, 389, 390, 379: worked further on findings (JM and KG) * worked on references.bib * 382: Reformulate sentence * 383: express figure 2, get rid of some warnings. * 384: devops handbook * 376: short abstract * 394: Scaling within introduction rephrased * 396: feature model rephrased * 386: refrase unit test demand paragraph * 423: earlier intro of space and time dimension in variation * 375: explain fear * 395: restructure conclusion and focus on future work * 375: Corrected typo * 374: modularization * Final review by Jochen and Karsten. DONE Co-authored-by: Maletschek, Jochen (SD-RM) <[email protected]>
1 parent 4a30106 commit 52ae25e

17 files changed

+474
-417
lines changed
Binary file not shown.

paper/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
/texmfs
2+
/*.bak
23
/*.aux
34
/*.log
45
/*.out
56
/*.bbl
67
/*.blg
78
/*.fdb_latexmk
89
/*.fls
10+
/*.ts
911
/*.synctex.gz
1012
/paper.pdf

paper/challenge.tex

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
\section{Challenge}
1+
\section{Challenge}\label{challenge}
22

3-
Our migration method is supposed to be a generic solution for a migration from a
4-
polyrepo project landscape to a monorepo SPL, but our circumstances might have
5-
some influence on the ideas that we share in this paper. This section will
6-
explain the challenges we had, both coming from the products' nature and its
7-
industry and also from our corporate processes and strategies.
3+
Our migration method is supposed to be a generic solution, but our company's
4+
circumstances might have some influence on the ideas that we share in this
5+
paper. This section will explain the challenges we had, both coming from the
6+
products' nature and its industry and also from our corporate processes and
7+
strategies.
88

99
The projects that we migrated are in the area of electric cars for premium
1010
automobile manufacturers. The software is written in (Embedded) C and Matlab and
@@ -29,7 +29,7 @@ \section{Challenge}
2929
Dimensions repository. Dimensions is a Source Code Management (SCM) system
3030
similar to Revision Control System (RCS) used at the Marquardt GmbH for source
3131
code administration and project documentation. Each individual source code
32-
repository is a self-contained ready to build project, including all required
32+
repository is a self-contained ready-to-build project, including all required
3333
tools and libraries to build the product binaries, like compilers, MSYS and GNU
3434
Make. The C code was validated with Jenkins nightly builds. Those Jenkins
3535
scripts were located in separate repositories, not part of the project's
@@ -41,7 +41,7 @@ \section{Challenge}
4141
already existing project (`clone-and-own'). This approach had several benefits:
4242
the setup time was short and because a mature project was taken as basis, the
4343
project's software was stable already and debugging and adapting was possible.
44-
There was less work for generic parts and only hardware and customer specific
44+
There was less work for generic parts and only hardware and customer-specific
4545
modifications were required. However, this approach also caused a lot of
4646
disadvantages. By simply cloning an existing project there was not only a copy
4747
of functionality available in the new project, but also a copy of all its flaws.

paper/conclusion.tex

+23-23
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
\section{Conclusion and Future Work}
1+
\section{Conclusion and Future Work}\label{conclusion}
22

33
This work provides an iterative and incremental migration strategy towards SPL
44
for the software of a real-world product family of an automotive supplier. We
@@ -15,40 +15,40 @@ \section{Conclusion and Future Work}
1515
\item established a stable SPL with variants buildable at any time,
1616
\item reduced workload of developers by reducing the number of repositories,
1717
\item increased collaboration beyond project borders and
18-
\item integrated all software sources of a product family into one git
18+
\item integrated all software sources of a product family into one Git
1919
repository.
2020
\end{itemize}
2121

22-
We implemented a build system with modern CMake fully supporting the concept of
23-
SPL variants.
24-
2522
At the submission date's point of time we managed to proof about 50\% of our
26-
concept. The build system prototype required two persons full-time for six
27-
weeks, the implementation for migration step one and two required two persons
28-
full-time for three more months. Over a time frame of two months we
29-
incrementally added ten variants, while each import to the SPL was really fast
30-
due to the automated importing mechanism. We already started with
23+
concept. We implemented a build system with modern CMake fully supporting the
24+
concept of SPL variants. The build system prototype required two persons
25+
full-time for six weeks, the implementation for migration step one and two
26+
required two persons full-time for three more months. Over a time frame of two
27+
months we incrementally added ten variants, while each import to the SPL was
28+
really fast due to the automated importing mechanism. We already started with
3129
\textit{Modularization} of software components, but only converted a few
32-
components and begun with removing duplicates. Recently we focussed more on
30+
components and begun with removing duplicates. Recently we focused more on
3331
automation than on the SPL migration, as we saw more advantages there in the
3432
long run. The automation for CI/CD is helpful for the migration as well.
35-
Nevertheless, the build system requires some more features to be able to handle
36-
our migration step three and we plan to implement them in the coming months, in
37-
parallel to the \textit{Modularization} step of the software components.
3833

39-
Additionally to the build system implementation and the actual migration of the
40-
embedded source code, it is required for us to qualify tools which have an
41-
impact on the created binaries or the processes to build them. This tool
34+
Nevertheless, the build system requires more features, e.g., a package manager
35+
for dependency handling and a unit test framework for Test Driven Development
36+
(TDD) to be able to support our migration steps two and three and we plan to
37+
implement them in the coming months, in parallel to the \textit{Modularization}
38+
of the software components. Additionally it is required to qualify tools which
39+
have an impact on the created binaries or the processes to build them. This tool
4240
qualification is requested by the ISO 26262 standard for safety reasons. We must
4341
take care that CMake, Ninja and KConfig are properly qualified. On the other
4442
hand, proprietary software might come with safety evaluations already. This
45-
should be kept in mind, when deciding for your tool landscape.
43+
should be kept in mind, when deciding for a future tool landscape.
4644

4745
Besides all the discussed technical challenges, there were also social obstacles
48-
on the way to SPL. Fear was probably the strongest emotion we faced. At the
49-
beginning we were certain that all required build system features were
50-
implemented and we always had a backup plan to go back to the original
51-
repositories. There was no real threat and still no one had enough confidence to
52-
start the migration. Afterwards we do not see a reason for hesitation, but
46+
on the way to introduce an SPL.\@ Fear of change was probably the strongest
47+
emotion we faced. We feared the introduction of our SPL approach, although we
48+
were certain that all required build system features were implemented and we
49+
always had a backup plan to go back to the original repositories. On the other
50+
hand the development team had a lot of doubts to adapt fast enough to new tools
51+
and processes. There was no real threat and still no one had enough confidence
52+
to start the migration. Afterwards we do not see a reason for hesitation, but
5353
sometimes it simply needs someone brave in the team or someone pushing you. Our
5454
conclusion is: Just do it! And if you break it, make sure you can fix it fast!

paper/fonts/LinLibertine_Rah.ttf

788 KB
Binary file not shown.

paper/fonts/source.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
LateX class "acmart" uses font Libertine. Got it from here: https://libertine-fonts.org/
149 Bytes
Binary file not shown.
37.8 KB
Binary file not shown.

paper/images/migration_steps.pdf

-350 KB
Binary file not shown.

paper/images/migration_steps.pptx

1.04 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<mxfile host="Electron" modified="2022-06-10T14:12:46.079Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/19.0.3 Chrome/102.0.5005.63 Electron/19.0.3 Safari/537.36" version="19.0.3" etag="4Wro6nL2rmszLiauxm7u" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>
1+
<mxfile host="Electron" modified="2022-07-08T13:11:22.551Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/19.0.3 Chrome/102.0.5005.63 Electron/19.0.3 Safari/537.36" etag="ilkoquzPVNKv4u-L_zYM" version="19.0.3" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>
210 KB
Binary file not shown.

paper/introduction.tex

+27-26
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
\section{Introduction}
1+
\section{Introduction}\label{introduction}
22

33
Development of product families rather than individual products is a goal for
44
many engineering companies. Product Line Engineering (PLE) is a widely used
@@ -16,39 +16,40 @@ \section{Introduction}
1616
Lines (SPL)~\cite{confsplc2000}. An SPL increases reusability~\cite{Clem02a} and
1717
therefore increases quality and decreases development costs of software by
1818
building up shared core assets and customer-specific functionality. With this
19-
reuse in place, a business will be able to do larger scaling, with higher number
20-
of projects the development costs will drastically decrease compared to
21-
traditional engineering methods and the time-to-market will improve due to less
22-
development effort~\cite{confsplcAzanzaMD21}. Thus an SPL is one possible
23-
solution to win against competitors.
19+
reuse in place, a business will be able to do larger scaling. A higher number of
20+
projects will drastically decrease the development costs compared to traditional
21+
engineering methods and the time-to-market will improve due to less development
22+
effort~\cite{confsplcAzanzaMD21}. Thus an SPL is one possible solution to win
23+
against competitors.
2424

2525
But even after years of research, source code migrations to SPL are still
2626
complicated and there are no bullet proof concepts available that are applicable
2727
to actively running projects with tight release plans. Much research has been
2828
done on product line architectures~\cite{Svahnberg1999EPLA,
29-
confsplcTomashchukLJ21} and system engineering \cite{confsplcSchaferBAKR21},
29+
confsplcTomashchukLJ21} and system engineering~\cite{confsplcSchaferBAKR21},
3030
about feature model migrations~\cite{ncstrlustuttgartfiINPROC200185,
3131
confsplcGrunerBKR20, confsplcDuszynskiDB19, confsplcFritschAR20}, SPL
3232
evolution~\cite{journalssmrQuintonVRBGS21, Svahnberg1999ESPL, Eise02b,
3333
kconfigKernel} and safety aspects~\cite{confsplcWolschke0SAM19} of SPLs. On the
34-
other hand, \cite{confoopslaHetrickKM06} and \cite{confsplcAbbasJLESS20} have
35-
written about the overall process, general benefits and a change of mindset,
36-
but not specifically about source code. Contrary to \cite{confsplcRubinCC13},
37-
cloned variants are no option for us anymore. The authors of
38-
\cite{Krueger2001SMC} reported different migration strategies more than 20 years
39-
ago already: (1) proactive, (2) extractive and (3) reactive, but no work
40-
described a mixture of extractive and reactive migrations, which we needed.
41-
Inspired by the work of \cite{confsplcJepsenDB07} we aim for a strategy with
42-
which we are able to migrate multiple repositories to a monorepo, allowing
43-
developers and software product managers to proceed with their own pace and
44-
according to the project plan without risking its deadlines and always being
45-
able to do a step backwards if neccessary.
34+
other hand, Hetrick et al.~\cite{confoopslaHetrickKM06} and Abbas et
35+
al.~\cite{confsplcAbbasJLESS20} have written about the overall process, general
36+
benefits and a change of mindset, but not specifically about source code.
37+
Contrary to Rubin et al.~\cite{confsplcRubinCC13}, cloned variants are no option
38+
for us anymore. Krueger~\cite{Krueger2001SMC} reported different migration
39+
strategies more than 20 years ago already: (1) proactive, (2) extractive and (3)
40+
reactive, but no work described a mixture of extractive and reactive migrations,
41+
which we need for existing and upcoming customer projects. Inspired by the work
42+
of Jepsen et al.~\cite{confsplcJepsenDB07} we aim for a strategy with which we
43+
are able to migrate multiple independent repositories to a scalable SPL,
44+
allowing developers and software product managers to proceed with their own pace
45+
and according to the project plan without risking its deadlines and always being
46+
able to do a step backwards if necessary.
4647

4748
In this paper we propose an iterative and incremental migration strategy in
48-
three steps. We structured the paper in the following way: Section two stating
49-
the challenges we faced in our projects and industry to explain our view on the
50-
problem and why standard solutions did not work for us, section three explaining
51-
our three step solution of the source code migration in detail, presenting
52-
infrastructure and build system ideas and section four presenting our
53-
conclusion, an overview on where we stand right now and giving a forecast on
54-
future work.
49+
three steps. We structured the paper in the following way:
50+
Section~\ref{challenge} stating the challenges we faced in our projects and
51+
industry to explain our view on the problem and why standard solutions did not
52+
work for us, section~\ref{solution} explaining our three step solution of the
53+
source code migration in detail, presenting infrastructure and build system
54+
ideas and section~\ref{conclusion} presenting our conclusion, an overview on
55+
where we stand right now and giving a forecast on future work.

0 commit comments

Comments
 (0)