\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}