AISE502/skript/AISE502_Vorlesung_Skript.tex
herzogflorian 39f3d64a52 Add AISE502 course materials: script, slides 1-6 (FHGR theme), semester plan, project exercise
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 14:16:09 +02:00

182 lines
6.6 KiB
TeX

\documentclass[12pt,a4paper]{article}
% ============================================
% PACKAGES
% ============================================
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{geometry}
\geometry{margin=2.5cm, headheight=14.5pt, footskip=1.8cm}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{xurl} % allow URLs to break anywhere (fixes overfull bibliography lines)
\usepackage{xcolor}
\usepackage{listings}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{enumitem}
\usepackage{fancyhdr}
\usepackage{titlesec}
\usepackage{tcolorbox}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{parskip}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows.meta, positioning, fit, backgrounds, calc, decorations.pathreplacing}
\usepackage{float}
\usepackage{rotating}
\usepackage[round,authoryear]{natbib}
\bibliographystyle{plainnat}
% ============================================
% COLORS
% ============================================
\definecolor{bankblue}{rgb}{0.0,0.28,0.67}
\definecolor{bankgreen}{rgb}{0.13,0.55,0.13}
\definecolor{bankred}{rgb}{0.7,0.13,0.13}
\definecolor{aiviolet}{rgb}{0.42,0.19,0.58}
\definecolor{projteal}{rgb}{0.0,0.45,0.45}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
% ============================================
% CODE LISTING STYLE
% ============================================
\lstdefinestyle{pythonstyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{bankgreen},
keywordstyle=\color{blue},
numberstyle=\tiny\color{codegray},
stringstyle=\color{bankred},
basicstyle=\ttfamily\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=4,
language=Python
}
\lstset{style=pythonstyle}
% ============================================
% CUSTOM ENVIRONMENTS
% ============================================
\newtcolorbox{keypoint}{
colback=blue!5!white,
colframe=bankblue,
title=Key Concept
}
\newtcolorbox{examplebox}[1][]{
colback=green!5!white,
colframe=bankgreen,
title={Example: #1}
}
\newtcolorbox{definitionbox}[1][]{
colback=yellow!5!white,
colframe=yellow!50!black,
title={Definition: #1}
}
\newtcolorbox{thinkbox}{
colback=orange!5!white,
colframe=orange!60!black,
title=Discussion
}
\newtcolorbox{hinweisbox}{
colback=red!5!white,
colframe=bankred,
title=Important Note
}
\newtcolorbox{ailinse}[1][]{
colback=violet!5!white,
colframe=aiviolet,
title={AI Lens: #1}
}
\newtcolorbox{projektbox}{
colback=teal!5!white,
colframe=projteal,
title=Project Link: Portfolio Intelligence Platform
}
% ============================================
% HEADER/FOOTER
% ============================================
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{AISE502 -- AI in Software Engineering II}
\fancyhead[R]{Lecture Notes}
\fancyfoot[L]{\thepage}
\fancyfoot[R]{\includegraphics[height=0.9cm]{FHGR_Logo_small}}
% ============================================
% DOCUMENT
% ============================================
\begin{document}
% ============================================
% TITLE PAGE
% ============================================
\begin{titlepage}
\centering
\vspace*{1cm}
\includegraphics[width=0.5\textwidth]{FHGR_Logo_Large}\\[1.5cm]
{\Huge\bfseries AISE502: AI in Software\\Engineering II\par}
\vspace{1.5cm}
{\Large Lecture Notes\par}
\vspace{0.5cm}
{\large Core Part: A Theory of Architecture--Application Fit\par}
\vspace{1cm}
{\large Dr.\ Florian Herzog\par}
\vspace{0.3cm}
{\large University of Applied Sciences of the Grisons (FH Graub\"unden), Chur\par}
\vspace{0.5cm}
{\large Autumn Semester 2026\par}
\vfill
\begin{abstract}
These lecture notes form the core of the module AISE502 \emph{AI in Software Engineering II}. They develop a coherent theory of \emph{architecture--application fit}: software architecture is understood as the set of significant, hard-to-reverse decisions, driven by measurable quality attributes, made by systematically matching application requirements profiles against pattern capability profiles, and validated empirically over the entire software lifecycle. \textbf{Part~I} lays the conceptual and methodological foundations: architecture as a decision problem, quality attributes as architectural drivers, measurable quality attribute scenarios, and Architecture Decision Records. \textbf{Part~II} catalogues seven central architectural patterns -- from the layered architecture, the modular monolith and microservices to event-driven, pipeline and serverless architectures -- as capability profiles with their software engineering implications. \textbf{Part~III} characterises ten application classes -- from core banking systems, social media platforms and simulations to the AI-native advisory platform -- as weighted requirements profiles. \textbf{Part~IV} brings both sides together: the fit matrix, the step-by-step decision procedure (utility tree, trade-off analysis, ADR) and the continuous measurement of the decision in operation (fitness functions, DORA metrics, evolution paths). \textbf{Part~V} extends the theory along the AI dimension: AI as a tool in the software lifecycle (Axis~A) and AI as a non-deterministic system component (Axis~B) -- showing that both roles demand the same engineering discipline.
The methodology applied throughout rests on four principal sources, gratefully acknowledged here: the quality attribute scenarios, architectural tactics, and utility-tree/ATAM decision apparatus of the Software Engineering Institute, as consolidated by \citet{bass2021software}; the architecture-characteristics ratings and trade-off laws of \citet{richards2025fundamentals}; the architectural fitness functions of \citet{ford2022evolutionary}, which turn every decision into a measurable contract; and the empirical delivery-performance research of the DORA programme \citep{forsgren2018accelerate}. The quality vocabulary of the profile dimensions is anchored in ISO/IEC 25010:2023 \citep{iso2023product}.
\end{abstract}
\vspace{1cm}
\end{titlepage}
% ============================================
% TABLE OF CONTENTS
% ============================================
\tableofcontents
\newpage
\input{chapters/part1_architecture_decisions}
\input{chapters/part2_patterns}
\input{chapters/part3_application_classes}
\input{chapters/part4_fit}
\input{chapters/part5_ai_dimension}
\newpage
\bibliography{references}
\end{document}