-
Notifications
You must be signed in to change notification settings - Fork 10
/
AMT Book.tex
151 lines (127 loc) · 7.79 KB
/
AMT Book.tex
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
\RequirePackage{silence} % :-\
\WarningFilter{scrreprt}{Usage of package `titlesec'}
%\WarningFilter{scrreprt}{Activating an ugly workaround}
\WarningFilter{titlesec}{Non standard sectioning command detected}
\documentclass[ twoside,openright,titlepage,numbers=noenddot,%1headlines,
headinclude,footinclude,cleardoublepage=empty,abstract=on,
BCOR=5mm,paper=a4,fontsize=11pt
]{scrreprt}
\usepackage{listings}
\lstdefinestyle{amt}{
basicstyle=\scriptsize\ttfamily,
stringstyle=,
numbers=left,
stepnumber=1,
captionpos=b
}
\usepackage{breakurl}
%********************************************************************
% Note: Make all your adjustments in here
%*******************************************************
\input{classicthesis-config}
%********************************************************************
% Bibliographies
%*******************************************************
\addbibresource{Bibliography.bib}
\addbibresource[label=ownpubs]{AMiede_Publications.bib}
%********************************************************************
% Hyphenation
%*******************************************************
%\hyphenation{put special hyphenation here}
% ********************************************************************
% GO!GO!GO! MOVE IT!
%*******************************************************
\begin{document}
\frenchspacing
\raggedbottom
\selectlanguage{american} % american ngerman
%\renewcommand*{\bibname}{new name}
%\setbibpreamble{}
\pagenumbering{roman}
\pagestyle{plain}
%********************************************************************
% Frontmatter
%*******************************************************
%\include{FrontBackmatter/DirtyTitlepage}
\include{FrontBackmatter/Titlepage}
%\include{FrontBackmatter/Titleback}
%\cleardoublepage\include{FrontBackmatter/Dedication}
%\cleardoublepage\include{FrontBackmatter/Foreword}
%\cleardoublepage\include{FrontBackmatter/Abstract}
%\cleardoublepage\include{FrontBackmatter/Publications}
%\cleardoublepage\include{FrontBackmatter/Acknowledgments}
\cleardoublepage\include{FrontBackmatter/Contents}
%********************************************************************
% Mainmatter
%*******************************************************
\cleardoublepage
\pagestyle{scrheadings}
\pagenumbering{arabic}
%\setcounter{page}{90}
% use \cleardoublepage here to avoid problems with pdfbookmark
\ctparttext{This introductory part introduces the notion of \emph{multi-tiered software architecture}. It proposes a reference model, which consists of five different tiers. It also gives a high-level overview of the \ac{Java EE} platform. It explains how this particular technology stack can be used to \emph{build} and \emph{run} multi-tiered applications. The Java EE development cycle, through which developers write Java code and generate \ac{WAR} packages then deployed in a compliant application servers is presented. In terms of practice and experimental tasks, while reading this part, the reader is invited to install and execute three different Java EE application servers. The reader is also invited to deploy an existing application in these servers, to understand what it means to run a Java EE application.}
\part{Introduction}\label{pt:introduction}
\include{chapters/chapter-intro-to-javaee}
\ctparttext{This part introduces the core APIs that are part of the umbrella \ac{Java EE} specification. We use the terms \emph{legacy} and \emph{old-style} because many new projects use frameworks built on top of the \ac{Java EE} APIs. These frameworks hide details and offer a higher level of abstraction. Even if they make developers more productive, it is important to understand what happens behind the scenes, in the foundations of the platform. Furthermore, there are still many companies who need to maintain older applications, built directly on top of Java EE. There is a high probability for a software engineer to encounter such applications in the professional life.
In the chapter dedicated to the \emph{client tier}, we review several types of clients (thin clients, rich clients, etc.). We also look at the communication between client-side and server-side components.
In the chapter dedicated to the \emph{presentation tier}, we present three design patterns: the \ac{MVC} pattern, the \ac{IoC} pattern and the Pipes and filters pattern. We present these patterns in generic terms, as they can be applied in any technology stack. We also show how they can be concretely applied with Java EE components.
[More content to be added for the business, integration and resources tiers.]
}
\part{Old-style Java EE}\label{pt:old-style}
\include{chapters/chapter-client-tier}
\include{chapters/chapter-presentation-tier}
\include{chapters/chapter-business-tier}
\include{chapters/chapter-integration-tier}
%
%\chapter{Business tier}\label{ch:first-steps}
%\section{The Dependency Injection pattern}
%\section{Enterprise Java Beans}
%
%\chapter{Integration tier}\label{ch:first-steps}
%\section{The Data Access Object pattern}
%\section{Java DataBase Connectivity}
%\section{Boiler plate code and reflection}
%\section{Object Relational Mapping}
%
\ctparttext{This part presents a selection of frameworks that have been built on top of \ac{Java EE} APIs and are currently very popular in the market. These frameworks aim to make developers more productive, by providing additional capabilities and by hiding some of the implementation details. They also address the evolution towards the cloud and micro-services architecture. This topic has been a gap in the Java EE specification (this will be one focus area for its future versions) for a long time, which is one reason to explain the popularity of the frameworks.
}
\part{Modern Java EE}\label{pt:old-style}
%
%\chapter{Micro-services with Springboot}\label{ch:first-steps}
%\section{The Spring Framework}
%\section{The Springboot Project}
%\section{Micro-services}
%
%\chapter{Persistence with Spring Data}\label{ch:first-steps}
%
%\chapter{APIs with Spring Data REST}\label{ch:first-steps}
%
\ctparttext{This part presents software engineering practices that are recommended when developing multi-tiered applications. The goal of these practices is to improve the productivity of the team and the quality of the developed product. A lot of these practices are related to testing, which is a broad subject. Both functional and non-functional requirements need to be tested. Different techniques and tools can be used for this purpose. Some of them are presented in the following chapters, with concrete case studies and examples.}
\part{Software engineering practices}\label{pt:old-style}
\include{chapters/chapter-performance-load-testing}
%
%\chapter{Load and performance testing}\label{ch:first-steps}
%\chapter{Contract-first development of REST APIs}\label{ch:first-steps}
%\chapter{Continuous integration}\label{ch:first-steps}
%\chapter{User Interface testing}\label{ch:first-steps}
%\chapter{Behaviour Driven Design}\label{ch:first-steps}
%\include{multiToC} % <--- just debug stuff, ignore for your documents
% ********************************************************************
% Backmatter
%*******************************************************
%\appendix
%\renewcommand{\thechapter}{\alph{chapter}}
%\cleardoublepage
%\part{Appendix}
%\include{Chapters/Chapter0A}
%********************************************************************
% Other Stuff in the Back
%*******************************************************
%\cleardoublepage\include{FrontBackmatter/Bibliography}
%\cleardoublepage\include{FrontBackmatter/Declaration}
%\cleardoublepage\include{FrontBackmatter/Colophon}
% ********************************************************************
% Game Over: Restore, Restart, or Quit?
%*******************************************************
\end{document}
% ********************************************************************