summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cs-techrep/template/cs-techrep-example-neumann.tex
blob: 9122c3ddf4a7a1c10fe6f15ff0656de85a9e04e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
\documentclass[conference,a4paper,flushend]{cs-techrep}
\pdfoutput=1 % pdflatex hint for arxiv.org (within first 5 lines)

% Class iaria.cls loads biblatex / biber with predefined options
\addbibresource{embedded.bib}       % its content is declared below, embedded within this tex-file
\addbibresource{webdev_commons.bib} % includes REST, React, Angular, Vue, Svelte, Docker, AWS-*, Socket.IO, and many more!
\addbibresource{cpn_all_all.bib}    % includes all previous CyberLytics@OTH-AW technical reports

% ======================================================================
% EDIT THESE:

\cstechrepAuthorListTex{Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
% Team example:
%\cstechrepAuthorListTex{Vorname1 Nachname1, Vorname2 Nachname2, Vorname3 Nachname3, Vorname4 Nachname4,\\ Vorname5 Nachname5, Vorname6 Nachname6, Christoph P.\ Neumann\,\orcidlink{0000-0002-5936-631X}}
\cstechrepAuthorListBib{Christoph P. Neumann}
% Team example:
%\cstechrepAuthorListBib{Vorname1 Nachname1 and Vorname2 Nachname2 and Vorname3 Nachname3 and Vorname4 Nachname4 and Vorname5 Nachname5 and Vorname6 Nachname6 and Christoph P. Neumann}

\cstechrepTitleTex{The cs-techrep Example of a Technical Report in Computer Science and Software Engineering}
 % IF you need manual linebreaks in the titel, then clone the title without linebreaks for BibTeX:
\cstechrepTitleBib{{\cstechrepTitleTex}}
%\cstechrepTitleBib{The cs-techrep \LaTeX{} Class Example of a Software Engineering Technical Report}

\cstechrepDepartment{CyberLytics\-/Lab at the Department of Electrical Engineering, Media, and Computer Science}
%\cstechrepDepartment{CyberLytics\-/Lab an der Fakultät Elektrotechnik, Medien und Informatik} % DE
\cstechrepInstitution{Ostbayerische Technische Hochschule Amberg\-/Weiden}
\cstechrepAddress{Amberg, Germany}
%\cstechrepAddress{Amberg, Deutschland} % DE
\cstechrepSeries{Technical Reports}
%\cstechrepSeries{Technische Berichte} % DE
\cstechrepYear{2024}
\cstechrepMonth{3}
\cstechrepNumber{CL-\cstechrepYear{}-42}
\cstechrepLang{english}  % en-US
%\cstechrepLang{ngerman} % DE

% Special remark on babel/csquotes terminology in regard with US-vs-UK:
% en-US  = [english]/[american]/[usenglish] (+ [canadian])
% en-UK  =           [british] /[ukenglish] (+ [australian]) <OXFORD>
% For cs-techrep (like ACM), the recommended english variant is en-US!

% DO NOT DELETE THIS:
\filecontentsForceExpansion|[] % force command expansion inside a filecontents* environment
\begin{filecontents*}[overwrite]{selfref.bib}
	@TECHREPORT{selfref,
		author = {|cstechrepAuthorListBib},
		title  = {\cstechrepTitleBib},
		institution = {\cstechrepInstitution, \cstechrepDepartment},
		series = {\cstechrepSeries},
		number = {\cstechrepNumber},
		year   = {|cstechrepYear},
		month  = {|cstechrepMonth},
		langid  = {|cstechrepLang},
	}
\end{filecontents*}

% ======================================================================
% EDIT THIS:

\begin{filecontents}[overwrite]{embedded.bib}
	@online{ieee2015howto,
		author = {Michael Shell},
		title = {How to Use the {IEEEtran} \LaTeX\ Class},
		url = {http://mirrors.ctan.org/macros/latex/contrib/IEEEtran/IEEEtran_HOWTO.pdf},
		year = {2015}
	}
	@online{ieee2018formattingrules,
		author = {{IEEE}},
		title = {Conference Template and Formatting Specifications},
		url = {https://www.ieee.org/content/dam/ieee-org/ieee/web/org/conferences/Conference-template-A4.doc},
		year = {2018}
	}
	@online{iaria2014formattingrules,
		author = {{IARIA}},
		title = {Formatting Rules},
		url = {http://www.iaria.org/formatting.doc},
		year = {2014}
	}
	@online{iaria2009editorialrules,
		_author = {Cosmin Dini},
		author = {{IARIA}},
		title = {Editorial Rules},
		url = {https://www.iaria.org/editorialrules.html},
		year = {2009}
	}
	@online{languagetool,
		author = {{LanguageTooler GmbH}},
		title  = {{LangueTool}},
		url    = {https://languagetool.org/overleaf}
	}
	@online{overleaf,
		author = {{Digital Science UK Limited}},
		title  = {{Overleaf}},
		url    = {https://www.overleaf.com}
	}
\end{filecontents}

\usepackage{fontawesome} % i.a., \faWarning{}
\usepackage{relsize}     % i.a., \textsmaller{...}
\usepackage{lipsum}      % for blindtext

% ======================================================================

% cf. https://ctan.org/pkg/acronym
% Usage:
% singular, within sentence       = \ac{gui}
% singular, beginning of sentence = \Ac{gui}
% plural, within sentence       = \acp{gui}
% plural, beginning of sentence = \Acp{gui}
\begin{acronym}
	\acro{gui}[GUI]{Graphical User Interface}
	\acro{ide}[IDE]{Integrated Development Environment}
\end{acronym}

% https://www.silbentrennung24.de/
% https://www.hyphenation24.com/
\hyphenation{block-chain block-chains Ethe-re-um}

\begin{document}
\selectlanguage{\cstechrepLang}

\maketitle

\begin{abstract}
	\lipsum[1][3-10]
	\{\,\faWarning{}The abstract does neither mention a teaching module nor a team/project,
	it is a summary of the content of the technical report, thus, the objectives and architecture.\}
\end{abstract}

% A list of IEEE Computer Society appoved keywords can be obtained at
% http://www.computer.org/mc/keywords/keywords.htm
\begin{IEEEkeywords}
	template; lorem ipsum.
\end{IEEEkeywords}

\section{Introduction and Objectives \textbar{} Functional Requirements \textbar{} Problem Statement}

The cs-techrep formatting is adopted both from \textsmaller{IEEE} \cite{ieee2018formattingrules} and \textsmaller{IARIA} \cite{iaria2014formattingrules} styles.
The cs-techrep \LaTeX\ class is based on \textsmaller{IEEE}tran class \cite{ieee2015howto}.
In addition, be aware of the supplementary \textsmaller{IARIA} editorial rules \cite{iaria2009editorialrules} \faWarning{} that provide a beginner-friendly set of further advices.
It is recommended to use a grammar tool, e.\,g., the LanguageTool \cite{languagetool} browser plugin in combination with Overleaf \cite{overleaf}.

The pipe symbol \textquote{\textbar{}} in the headings represents alternatives. Choose one and remove the others. The selectively provided quoted terms are special German alternatives.

The problem statement needs to be written from perspective of a subject-matter expert (\textquote{Fachkonzept}). Like an elevator pitch / mission statement \faWarning{}. NOT from a technical perspective.

\section{Optional: Related Work \textbar{} State of the Art \textbar{} Methods \textbar{} Data Acquisition}
\lipsum[2]

\section{Architectural Goals} % \textbar{} \textquote{Architekturziele}}
Provides
(1) a visualization of the external systems and users with which the system interacts (\textquote{Kontextabgrenzung}),
(2) the most important technical and organizational preconditions (\textquote{Rahmenbedingungen}),
(3) quality/non-functional requirements (\textquote{Qualitätsziele}), and/or
(4) architectural style design decisions with formative patterns of the solution (\textquote{Architekturstil})
as well as (5) the applied programming language.

\section{Architecture of FancyName \textbar{} Results \textbar{} Structural Design \textbar{}  \textquote{Bausteinsicht}}

\subsection{Technology Stack \textbar{} Overall System} %\textbar{} \textquote{Gesamtsystem}}
Provides
(1) design decisions based on the previously defined requirements and
(2) a visualization of the functional structure at top level including relationships (\textquote{Grobe Zerlegung}), thus, gives an overview on modules, frameworks, and middleware.

In discussions of multi-tier architecture, layer is often used interchangeably -- and mistakenly -- for tier. They aren't the same. A \textquote{layer} refers to a functional division of the software, but a \textquote{tier} refers to a functional division of the software that runs on infrastructure separate from the other divisions. The Contacts app on your phone, for example, is a three-layer application, but a single-tier application, because all three layers run on your phone.

In discussions concerning multi-tier architecture, the term \textquote{layer} is frequently misused interchangeably with \textquote{tier}, despite their distinct meanings. A layer denotes a functional partition within the software, whereas a tier signifies a functional division that operates on separate infrastructure from other divisions/tiers. For instance, the Camera app or Settings app on your phone exemplifies a three-layer application but remains a single-tier application since all three layers run on your phone.


\subsection{Presentation Tier \textbar{} Frontend}
\lipsum[3]

\subsection{Application Tier \textbar{} Backend \textbar{} \textquote{Anwendungskern}}
\lipsum[4]

\subsection{Data Tier \textbar{} Persistence}
\lipsum[5]

\subsection{Optional: Infrastructure and Deployment \textbar{} Distribution Perspective \textbar{} \textquote{Verteilungssicht}}
Provides (1) information about configuration, exact software versions, SBOM, DevOps, Cloud, AWS, and others.
Should add (2) security-related considerations or disclaimers.
Could include (3) a software bill of materials (SBOM), at least for the major libraries or frameworks.


\section{Discussion \textbar{} Evaluation \textbar{} \\ Lessons Learned \textbar{} Impediments}
\lipsum[6]

\section{Conclusion and Future Work \textbar{} \\ \textquote{Fazit und Ausblick}}
\lipsum[7]


%%% Advisor
\nocite{StNe23foodfresh}

%%% First-Author
\nocite{NeLe13adhocCoop}
\nocite{Neumann2012lni}
\nocite{NeLe12alphaFlow}
\nocite{NeHL12hydra}
\nocite{NeWL12offsync}
\nocite{NSWL11alphaadaptive}
\nocite{NeFL10oxdbs}
\nocite{NeLe10alphaUC}
\nocite{NeLe09alphaflow}
\nocite{NeLe09dmps}
\nocite{NHSL09oxdbs} % DE
\nocite{NeWL09xdsrig} % DE
\nocite{NRDL09deus}

%%% Co-Authorship
\nocite{LeNe24vocattllm}
\nocite{PANP23seccloudfogai}
\nocite{WaNe12alphaoffsync}
\nocite{ToNe11alphaprops}
\nocite{FDI+10esmmog}
\nocite{JBN+10fcmdb}
\nocite{ILN+09semrttx}
\nocite{IND+09lzatav} % DE
\nocite{MeNe04testejb}

%%% Monographic Work
\nocite{Neumann2013dissBook}
\nocite{Neumann2012dissPreprint}
\nocite{neumann2005da}
\nocite{neumann2004sa}

%%% TechRep / Non-Peer-Reviewed

\nocite{SaNe24othfb}

\nocite{ModA-TR-2023SS-WAE-TeamWeiss-Neunerln}
\nocite{ModA-TR-2023SS-BDCC-TeamRot-CompVisPipeline}
\nocite{ModA-TR-2023SS-BDCC-TeamBlau-NauticalNonsense}
\nocite{ModA-TR-2023SS-BCN-TeamGruen-TorpedoTactics}
\nocite{ModA-TR-2023SS-BCN-TeamCyan-Stockbird}
\nocite{ModA-TR-2023SS-BCN-TeamBlau-FancyChess}
\nocite{ModA-TR-2023WS-SWT-TeamRot-SGDb}
\nocite{ModA-TR-2023WS-SWT-TeamGruen-OPCUANetzwerk}
\nocite{ModA-TR-2022SS-WAE-TeamWeiss-WoIstMeinGeld}
\nocite{ModA-TR-2022SS-BDCC-TeamWeiss-TwitterDash}
\nocite{ModA-TR-2022SS-BDCC-TeamRot-Reddiment}
\nocite{ModA-TR-2022SS-BDCC-TeamGruen-ExplosionGuy}
\nocite{ModA-TR-2022SS-BDCC-TeamCyan-OTHWiki}
\nocite{ModA-TR-2022WS-SWT-TeamGruen-Graphvio}
\nocite{ModA-TR-2021SS-WAE-TeamWeiss-CovidDashboard}
\nocite{ModA-TR-2021SS-WAE-TeamRot-FireForceDefense}
\nocite{ModA-TR-2021SS-WAE-TeamGruen-MedPlanner}

\nocite{NeRL12deus}
\nocite{LNR+11egr}

% ======== References =========
%\vfill % To end last page and thus get bibliography "behind" subfigure example, only this allows pbalance to level columns at the last page correctly (but no other balance-package can handle this situation better than pbalance, either). % However, pbalance ist not compatible with arxiv.
\begingroup
\sloppy
\printbibliography[notcategory=selfref]
\endgroup 
	
\end{document}