You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

818 lines
26 KiB
TeX

2 years ago
% !TeX spellcheck = pl_PL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Szablon pracy dyplomowej inzynierskiej %
% zgodny z aktualnymi przepisami SZJK %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% (c) Krzysztof Simiński, 2018-2022 %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Najnowsza wersja szablonów jest %
% podstępna pod adresem %
% github.com/ksiminski/polsl-aei-theses %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% Projekt LaTeXowy zapewnia odpowiednie formatowanie pracy,
% zgodnie z wymaganiami Systemu zapewniania jakości kształcenia.
% Proszę nie zmieniać ustawień formatowania (np. fontu,
% marginesów, wytłuszczeń, kursywy itd. ).
%
% Projekt można kompilować na kilka sposobów.
%
% 1. kompilacja pdfLaTeX
%
% pdflatex main
% bibtex main
% pdflatex main
% pdflatex main
%
%
% 2. kompilacja XeLaTeX
%
% Kompilatacja przy użyciu XeLaTeXa różni się tym, że na stronie
% tytułowej używany jest font Calibri. Wymaga to jego uprzedniego
% zainstalowania.
%
% xelatex main
% bibtex main
% xelatex main
% xelatex main
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% W przypadku pytań, uwag, proszę pisać na adres: %
% krzysztof.siminski(małpa)polsl.pl %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Chcemy ulepszać szablony LaTeXowe prac dyplomowych.
% Wypełniając ankietę spod poniższego adresu pomogą
% Państwo nam to zrobić. Ankieta jest całkowicie
% anonimowa. Dziękujemy!
% https://docs.google.com/forms/d/e/1FAIpQLScyllVxNKzKFHfILDfdbwC-jvT8YL0RSTFs-s27UGw9CKn-fQ/viewform?usp=sf_link
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PERSONALIZACJA PRACY DANE PRACY %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Proszę wpisać swoje dane w poniższych definicjach.
% TODO
\newcommand{\FirstName}{Wojciech}
\newcommand{\Surname}{Janota}
\newcommand{\Supervisor}{$\langle$dr inż. Błażej Adamczyk$\rangle$} % dane promotora (bez $\langle$ i $\rangle$)
\newcommand{\Title}{System do obsługi pracowni informatycznych z wykorzystaniem maszyn wirtualnych} % tytuł pracy po polsku
\newcommand{\TitleAlt}{A system for upporting IT labs with the use of virtual machines} % thesis title in English
\newcommand{\Program}{$\langle$Informatyka$\rangle$} % kierunek studiów (bez $\langle$ i $\rangle$)
\newcommand{\Specialisation}{$\langle$Bazy Danych i Inżynieria Systemów$\rangle$} % specjalność (bez $\langle$ i $\rangle$)
\newcommand{\Id}{$\langle$290357$\rangle$} % numer albumu (bez $\langle$ i $\rangle$)
\newcommand{\Departament}{$\langle$Katedra Sieci i Systemów Komputerowych$\rangle$} % katedra promotora (bez $\langle$ i $\rangle$)
% Jeżeli został wyznaczony promotor pomocniczy lub opiekun, proszę go/ją wpisać ...
\newcommand{\Consultant}{} % dane promotora pomocniczego, opiekuna (bez $\langle$ i $\rangle$)
% ... w przeciwnym razie proszę zostawić puste miejsce jak poniżej:
%\newcommand{\Consultant}{} % brak promotowa pomocniczego / opiekuna
% koniec fragmentu do modyfikacji
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% KONIEC PERSONALIZACJI PRACY %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PROSZĘ NIE MODYFIKOWAĆ PONIŻSZYCH USTAWIEŃ! %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,twoside,12pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage[british,polish]{babel}
\usepackage{indentfirst}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex—text} % to support TeX conventions like ``——-''
\usepackage{xunicode} % Unicode support for LaTeX character names (accents, European chars, etc)
\usepackage{xltxtra} % Extra customizations for XeLaTeX
\else
\usepackage{lmodern}
\fi
\usepackage[margin=2.5cm]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{mathtools}
\usepackage{geometry}
\usepackage{subcaption} % subfigures
\usepackage[page]{appendix} % toc,
\renewcommand{\appendixtocname}{Dodatki}
\renewcommand{\appendixpagename}{Dodatki}
\renewcommand{\appendixname}{Dodatek}
\usepackage{csquotes}
\usepackage[natbib=true,backend=bibtex]{biblatex} % kompilacja bibliografii BibTeXem
%\usepackage[natbib=true,backend=biber]{biblatex} % kompilacja bibliografii Biberem
\bibliography{biblio}
\usepackage{ifmtarg} % empty commands
\usepackage{setspace}
\onehalfspacing
\frenchspacing
%%%% TODO LIST GENERATOR %%%%%%%%%
\usepackage{color}
\definecolor{brickred} {cmyk}{0 , 0.89, 0.94, 0.28}
\makeatletter \newcommand \kslistofremarks{\section*{Uwagi} \@starttoc{rks}}
\newcommand\l@uwagas[2]
{\par\noindent \textbf{#2:} %\parbox{10cm}
{#1}\par} \makeatother
\newcommand{\ksremark}[1]{%
{%\marginpar{\textdbend}
{\color{brickred}{[#1]}}}%
\addcontentsline{rks}{uwagas}{\protect{#1}}%
}
\newcommand{\comma}{\ksremark{przecinek}}
\newcommand{\nocomma}{\ksremark{bez przecinka}}
\newcommand{\styl}{\ksremark{styl}}
\newcommand{\ortografia}{\ksremark{ortografia}}
\newcommand{\fleksja}{\ksremark{fleksja}}
\newcommand{\pauza}{\ksremark{pauza `--', nie dywiz `-'}}
\newcommand{\kolokwializm}{\ksremark{kolokwializm}}
\newcommand{\cudzyslowy}{\ksremark{,,polskie cudzysłowy''}}
%%%%%%%%%%%%%% END OF TODO LIST GENERATOR %%%%%%%%%%%
%%%%%%%%%%%% ZYWA PAGINA %%%%%%%%%%%%%%%
% brak kapitalizacji zywej paginy
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LO]{\nouppercase{\it\rightmark}}
\fancyhead[RE]{\nouppercase{\it\leftmark}}
\fancyhead[LE,RO]{\it\thepage}
\fancypagestyle{tylkoNumeryStron}{%
\fancyhf{}
\fancyhead[LE,RO]{\it\thepage}
}
\fancypagestyle{bezNumeracji}{%
\fancyhf{}
\fancyhead[LE,RO]{}
}
\fancypagestyle{NumeryStronNazwyRozdzialow}{%
\fancyhf{}
\fancyhead[LE]{\nouppercase{\FirstName\ \Surname}}
\fancyhead[RO]{\nouppercase{\leftmark}}
\fancyfoot[CE, CO]{\thepage}
}
%%%%%%%%%%%%% OBCE WTRETY
\newcommand{\obcy}[1]{\emph{#1}}
\newcommand{\ang}[1]{{\selectlanguage{british}\obcy{#1}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% polskie oznaczenia funkcji matematycznych
\renewcommand{\tan}{\operatorname {tg}}
\renewcommand{\log}{\operatorname {lg}}
% jeszcze jakies drobiazgi
\newcounter{stronyPozaNumeracja}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xstring}
\usepackage{ifthen}
\newcommand{\printOpiekun}[1]{%
\StrLen{\Consultant}[\mystringlen]
\ifthenelse{\mystringlen > 0}%
{%
{\large{\bfseries OPIEKUN, PROMOTOR POMOCNICZY}\par}
{\large{\bfseries \Consultant}\par}
}%
{}
}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Proszę nie modyfikować poniższych definicji!
\author{\FirstName\ \Surname}
\newcommand{\Author}{\FirstName\ \MakeUppercase{\Surname}}
\newcommand{\Type}{PROJEKT INŻYNIERSKI}
\newcommand{\Faculty}{Wydział Automatyki, Elektroniki i Informatyki}
\newcommand{\Polsl}{Politechnika Śląska}
\newcommand{\Logo}{politechnika_sl_logo_bw_pion_pl.pdf}
\newcommand{\LeftId}{Nr albumu}
\newcommand{\LeftProgram}{Kierunek}
\newcommand{\LeftSpecialisation}{Specjalność}
\newcommand{\LeftSUPERVISOR}{PROWADZĄCY PRACĘ}
\newcommand{\LeftDEPARTMENT}{KATEDRA}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% KONIEC USTAWIEŃ %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% MOJE PAKIETY, USTAWIENIA ITD %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Tutaj proszę umieszczać swoje pakiety, makra, ustawienia itd.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% listingi i fragmentu kodu źródłowego
% pakiet: listings lub minted
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% biblioteka listings
\usepackage{listings}
\lstset{%
morekeywords={string,exception,std,vector},% słowa kluczowe rozpoznawane przez pakiet listings
language=C++,% C, Matlab, Python, SQL, TeX, XML, bash, ... vide https://www.ctan.org/pkg/listings
commentstyle=\textit,%
identifierstyle=\textsf,%
keywordstyle=\sffamily\bfseries, %\texttt, %
%captionpos=b,%
tabsize=3,%
frame=lines,%
numbers=left,%
numberstyle=\tiny,%
numbersep=5pt,%
breaklines=true,%
%morekeywords={descriptor_gaussian,descriptor,partition,fcm_possibilistic,dataset,my_exception,exception,std,vector},%
escapeinside={@*}{*@},%
}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% pakiet minted
%\usepackage{minted}
% pakiet wymaga specjalnego kompilowania:
% pdflatex -shell-escape main.tex
% xelatex -shell-escape main.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% KONIEC MOICH USTAWIEŃ %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%\kslistofremarks
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PROSZĘ NIE MODYFIKOWAĆ STRONY TYTUŁOWEJ! %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%% STRONA TYTUŁOWA %%%%%%%%%%%%%%%%%%%
\pagestyle{empty}
{
\newgeometry{top=1.5cm,%
bottom=2.5cm,%
left=3cm,
right=2.5cm}
\ifxetex
\begingroup
\setsansfont{Calibri}
\fi
\sffamily
\begin{center}
\includegraphics[width=50mm]{\Logo}
{\Large\bfseries\Type\par}
\vfill \vfill
{\large\Title\par}
\vfill
{\large\bfseries\Author\par}
{\normalsize\bfseries \LeftId: \Id}
\vfill
{\large{\bfseries \LeftProgram:} \Program\par}
{\large{\bfseries \LeftSpecialisation:} \Specialisation\par}
\vfill \vfill \vfill \vfill \vfill \vfill \vfill
{\large{\bfseries \LeftSUPERVISOR}\par}
{\large{\bfseries \Supervisor}\par}
{\large{\bfseries \LeftDEPARTMENT\ \Departament} \par}
{\large{\bfseries \Faculty}\par}
\vfill \vfill
\printOpiekun{\Consultant}
\vfill \vfill
{\large\bfseries Gliwice \the\year}
\end{center}
\ifxetex
\endgroup
\fi
\restoregeometry
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% KONIEC STRONY TYTUŁOWEJ %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
\rmfamily\normalfont
\pagestyle{empty}
%%% No to zaczynamy pisać pracę :-) %%%%
% TODO
\subsubsection*{Tytuł pracy}
\Title
\subsubsection*{Streszczenie}
2 years ago
Tematem pracy jest stworzenie systemu do zarządzania pracowniami informatycznymi
używając możliwości oferowanych przez maszyny wirtualne.
Proponowana solucja umożliwia zdalne, zautomatyzowane przygotowanie pracowni informatycznej do zajęć lekcyjnych,
minimalizując wymaganą liczbę manualnych kroków.
2 years ago
\subsubsection*{Słowa kluczowe}
2 years ago
automatyzacja,PXE,Python,Ansible,Linux,QEMU
2 years ago
\subsubsection*{Thesis title}
\begin{otherlanguage}{british}
\TitleAlt
\end{otherlanguage}
\subsubsection*{Abstract}
\begin{otherlanguage}{british}
2 years ago
Topic of this thesis is a automated system for managing IT labs using virtual machines. Solution allows
for remote, automated preparation of the lab for classes, minimizing number of manual steps required.
2 years ago
\end{otherlanguage}
\subsubsection*{Key words}
\begin{otherlanguage}{british}
2 years ago
automation,PXE,Python,Ansible,Linux,QEMU
2 years ago
\end{otherlanguage}
%%%%%%%%%%%%%%%%%% SPIS TRESCI %%%%%%%%%%%%%%%%%%%%%%
%\pagenumbering{Roman}
\thispagestyle{empty}
\tableofcontents
\thispagestyle{empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{stronyPozaNumeracja}{\value{page}}
\mainmatter
\pagestyle{empty}
\cleardoublepage
\pagestyle{NumeryStronNazwyRozdzialow}
%%%%%%%%%%%%%% wlasciwa tresc pracy %%%%%%%%%%%%%%%%%
% TODO
\chapter{Wstęp}
\label{ch:wstep}
2 years ago
\paragraph{}
2 years ago
Jednym z wielu problemów, z jakimi musi zmierzyć się administrator systemów (na przykład w placówce edukacyjnej),
jest konfiguracja i zarządzanie flotą wielu maszyn, użytkowanych często przez osoby nietechniczne. Powstało wiele
narzędzi służących do ułatwienia tego zadania, wśród których zwrócono uwagę na kilka przykładów:
\begin{itemize}
\item Microsoft Active Domain jako system do zarządzania już skonfigurowanymi maszynami opartymi o system Microsoft Windows
\item Ansible jako system do zarządzania maszynami opartymi o systemy z rodziny UNIX
\item Ubuntu Landscape jako system służący do zarządzania flotą maszyn opartych o system Ubuntu Linux
\item Microsoft Windows Unattended Install, czyli narzędzie służące do automatycznego konfigurowania instalacji systemu Microsoft Windows
\end{itemize}
Każde z tych narzędzi pozwala na zautomatyzowanie jednego z podstawowych kroków w procesie zarządzania i utrzymania
pracowni informatycznej: instalacji systemu/systemów operacyjnych, konfiguracji systemu, aktualizacji i utrzymania systemu.
Pewne przypadki użycia wymagają jednak pewnych cech, które bardzo trudno osiągnąć używając powyższych narzędzi.
Przykładem takiej sytuacji jest resetowanie urządzeń po każdych zajęciach lekcyjnych, zapewniając przy tym, że
każde środowisko na którym pracują uczniowie/studenci jest identyczne. W takiej sytuacji najczęściej wykorzystuje
się maszyny wirtualne, które po zakończeniu zajęć są przywracane do migawki, lub ich obraz dysku
jest podmieniany na oryginalny. Wymaga to jednak kilku manualnych kroków, które należy wykonać pomiędzy zajęciami.
\paragraph{}
Proponowane rozwiązanie automatyzuje proces dystrybucji obrazów maszyn wirtualnych, instalacji oraz konfiguracji
systemu operacyjnego, pod kontrolą którego będą pracować maszyny wirtualne. Celem tej pracy było napisanie
programu serwera obrazów maszyn wirtualnych, którego zadaniem jest
2 years ago
2 years ago
\begin{itemize}
\item wprowadzenie w problem/zagadnienie
\item osadzenie problemu w dziedzinie
\item cel pracy
\item zakres pracy
\item zwięzła charakterystyka rozdziałów
\item jednoznaczne określenie wkładu autora, w przypadku prac wieloosobowych tabela z autorstwem poszczególnych elementów pracy
\end{itemize}
% TODO
\chapter{[Analiza tematu]}
\begin{itemize}
\item sformułowanie problemu
\item osadzenie tematu w kontekście aktualnego stanu wiedzy (\ang{state of the art}) o poruszanym problemie
\item studia literaturowe \cite{bib:artykul,bib:ksiazka,bib:konferencja,bib:internet} - opis znanych rozwiązań (także opisanych naukowo, jeżeli problem jest poruszany w publikacjach naukowych), algorytmów,
\end{itemize}
Wzory
\begin{align}
y = \frac{\partial x}{\partial t}
\end{align}
jak i pojedyncze symbole $x$ i $y$ składa się w trybie matematycznym.
% TODO
\chapter{Wymagania i narzędzia}
\label{ch:wymagania-i-narzedzia}
\begin{itemize}
\item wymagania funkcjonalne i niefunkcjonalne
\item przypadki użycia (diagramy UML) -- dla prac, w których mają zastosowanie
\item opis narzędzi, metod eksperymentalnych, metod modelowania itp.
\item metodyka pracy nad projektowaniem i implementacją -- dla prac, w których ma to zastosowanie
\end{itemize}
% TODO
\chapter{[Właściwy dla kierunku -- np. Specyfikacja zewnętrzna]}
\label{ch:04}
Jeśli „Specyfikacja zewnętrzna”:
\begin{itemize}
\item wymagania sprzętowe i programowe
\item sposób instalacji
\item sposób aktywacji
\item kategorie użytkowników
\item sposób obsługi
\item administracja systemem
\item kwestie bezpieczeństwa
\item przykład działania
\item scenariusze korzystania z systemu (ilustrowane zrzutami z ekranu lub generowanymi dokumentami)
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%
%% RYSUNEK Z PLIKU
%
%\begin{figure}
%\centering
%\includegraphics[width=0.5\textwidth]{./politechnika_sl_logo_bw_pion_pl.pdf}
%\caption{Podpis rysunku zawsze pod rysunkiem.}
%\label{fig:etykieta-rysunku}
%\end{figure}
%Rys. \ref{fig:etykieta-rysunku} przestawia …
%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%
%% WIELE RYSUNKÓW
%
%\begin{figure}
%\centering
%\begin{subfigure}{0.4\textwidth}
% \includegraphics[width=\textwidth]{./politechnika_sl_logo_bw_pion_pl.pdf}
% \caption{Lewy górny rysunek.}
% \label{fig:lewy-gorny}
%\end{subfigure}
%\hfill
%\begin{subfigure}{0.4\textwidth}
% \includegraphics[width=\textwidth]{./politechnika_sl_logo_bw_pion_pl.pdf}
% \caption{Prawy górny rysunek.}
% \label{fig:prawy-gorny}
%\end{subfigure}
%
%\begin{subfigure}{0.4\textwidth}
% \includegraphics[width=\textwidth]{./politechnika_sl_logo_bw_pion_pl.pdf}
% \caption{Lewy dolny rysunek.}
% \label{fig:lewy-dolny}
%\end{subfigure}
%\hfill
%\begin{subfigure}{0.4\textwidth}
% \includegraphics[width=\textwidth]{./politechnika_sl_logo_bw_pion_pl.pdf}
% \caption{Prawy dolny rysunek.}
% \label{fig:prawy-dolny}
%\end{subfigure}
%
%\caption{Wspólny podpis kilku rysunków.}
%\label{fig:wiele-rysunkow}
%\end{figure}
%Rys. \ref{fig:wiele-rysunkow} przestawia wiele ważnych informacji, np. rys. \ref{fig:prawy-gorny} jest na prawo u góry.
%%%%%%%%%%%%%%%%%%%%%
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
y tick label style={
/pgf/number format/.cd,
fixed, % po zakomentowaniu os rzednych jest indeksowana wykladniczo
fixed zerofill, % 1.0 zamiast 1
precision=1,
/tikz/.cd
},
x tick label style={
/pgf/number format/.cd,
fixed,
fixed zerofill,
precision=2,
/tikz/.cd
}
]
\addplot [domain=0.0:0.1] {rnd};
\end{axis}
\end{tikzpicture}
\caption{Podpis rysunku po rysunkiem.}
\label{fig:2}
\end{figure}
% TODO
\chapter{[Właściwy dla kierunku -- np. Specyfikacja wewnętrzna]}
\label{ch:05}
Jeśli „Specyfikacja wewnętrzna”:
\begin{itemize}
\item przedstawienie idei
\item architektura systemu
\item opis struktur danych (i organizacji baz danych)
\item komponenty, moduły, biblioteki, przegląd ważniejszych klas (jeśli występują)
\item przegląd ważniejszych algorytmów (jeśli występują)
\item szczegóły implementacji wybranych fragmentów, zastosowane wzorce projektowe
\item diagramy UML
\end{itemize}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% Pakiet minted wymaga odkomentowania w pliku config/settings.tex %
% importu pakietu minted: \usepackage{minted} %
% i specjalnego kompilowania: %
% pdflatex -shell-escape praca %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
Krótka wstawka kodu w linii tekstu jest możliwa, np. \lstinline|int a;| (biblioteka \texttt{listings})% lub \mintinline{C++}|int a;| (biblioteka \texttt{minted})
.
Dłuższe fragmenty lepiej jest umieszczać jako rysunek, np. kod na rys \ref{fig:pseudokod:listings}% i rys. \ref{fig:pseudokod:minted}
, a naprawdę długie fragmenty w załączniku.
\begin{figure}
\centering
\begin{lstlisting}
class test : public basic
{
public:
test (int a);
friend std::ostream operator<<(std::ostream & s,
const test & t);
protected:
int _a;
};
\end{lstlisting}
\caption{Pseudokod w \texttt{listings}.}
\label{fig:pseudokod:listings}
\end{figure}
%\begin{figure}
%\centering
%\begin{minted}[linenos,frame=lines]{c++}
%class test : public basic
%{
% public:
% test (int a);
% friend std::ostream operator<<(std::ostream & s,
% const test & t);
% protected:
% int _a;
%
%};
%\end{minted}
%\caption{Pseudokod w \texttt{minted}.}
%\label{fig:pseudokod:minted}
%\end{figure}
% TODO
\chapter{Weryfikacja i walidacja}
\label{ch:06}
\begin{itemize}
\item sposób testowania w ramach pracy (np. odniesienie do modelu V)
\item organizacja eksperymentów
\item przypadki testowe zakres testowania (pełny/niepełny)
\item wykryte i usunięte błędy
\item opcjonalnie wyniki badań eksperymentalnych
\end{itemize}
\begin{table}
\centering
\caption{Nagłówek tabeli jest nad tabelą.}
\label{id:tab:wyniki}
\begin{tabular}{rrrrrrrr}
\toprule
& \multicolumn{7}{c}{metoda} \\
\cmidrule{2-8}
& & & \multicolumn{3}{c}{alg. 3} & \multicolumn{2}{c}{alg. 4, $\gamma = 2$} \\
\cmidrule(r){4-6}\cmidrule(r){7-8}
$\zeta$ & alg. 1 & alg. 2 & $\alpha= 1.5$ & $\alpha= 2$ & $\alpha= 3$ & $\beta = 0.1$ & $\beta = -0.1$ \\
\midrule
0 & 8.3250 & 1.45305 & 7.5791 & 14.8517 & 20.0028 & 1.16396 & 1.1365 \\
5 & 0.6111 & 2.27126 & 6.9952 & 13.8560 & 18.6064 & 1.18659 & 1.1630 \\
10 & 11.6126 & 2.69218 & 6.2520 & 12.5202 & 16.8278 & 1.23180 & 1.2045 \\
15 & 0.5665 & 2.95046 & 5.7753 & 11.4588 & 15.4837 & 1.25131 & 1.2614 \\
20 & 15.8728 & 3.07225 & 5.3071 & 10.3935 & 13.8738 & 1.25307 & 1.2217 \\
25 & 0.9791 & 3.19034 & 5.4575 & 9.9533 & 13.0721 & 1.27104 & 1.2640 \\
30 & 2.0228 & 3.27474 & 5.7461 & 9.7164 & 12.2637 & 1.33404 & 1.3209 \\
35 & 13.4210 & 3.36086 & 6.6735 & 10.0442 & 12.0270 & 1.35385 & 1.3059 \\
40 & 13.2226 & 3.36420 & 7.7248 & 10.4495 & 12.0379 & 1.34919 & 1.2768 \\
45 & 12.8445 & 3.47436 & 8.5539 & 10.8552 & 12.2773 & 1.42303 & 1.4362 \\
50 & 12.9245 & 3.58228 & 9.2702 & 11.2183 & 12.3990 & 1.40922 & 1.3724 \\
\bottomrule
\end{tabular}
\end{table}
% TODO
\chapter{Podsumowanie i wnioski}
\begin{itemize}
\item uzyskane wyniki w świetle postawionych celów i zdefiniowanych wyżej wymagań
\item kierunki ewentualnych danych prac (rozbudowa funkcjonalna …)
\item problemy napotkane w trakcie pracy
\end{itemize}
\backmatter
%\bibliographystyle{plplain} % bibtex
%\bibliography{biblio} % bibtex
\printbibliography % biblatex
\addcontentsline{toc}{chapter}{Bibliografia}
\begin{appendices}
% TODO
\chapter{Spis skrótów i symboli}
\begin{itemize}
\item[DNA] kwas deoksyrybonukleinowy (ang. \ang{deoxyribonucleic acid})
\item[MVC] model -- widok -- kontroler (ang. \ang{model--view--controller})
\item[$N$] liczebność zbioru danych
\item[$\mu$] stopnień przyleżności do zbioru
\item[$\mathbb{E}$] zbiór krawędzi grafu
\item[$\mathcal{L}$] transformata Laplace'a
\end{itemize}
% TODO
\chapter{Źródła}
Jeżeli w pracy konieczne jest umieszczenie długich fragmentów kodu źródłowego, należy je przenieść w to miejsce.
\begin{lstlisting}
if (_nClusters < 1)
throw std::string ("unknown number of clusters");
if (_nIterations < 1 and _epsilon < 0)
throw std::string ("You should set a maximal number of iteration or minimal difference -- epsilon.");
if (_nIterations > 0 and _epsilon > 0)
throw std::string ("Both number of iterations and minimal epsilon set -- you should set either number of iterations or minimal epsilon.");
\end{lstlisting}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% Pakiet minted wymaga odkomentowania w pliku config/settings.tex %
% importu pakietu minted: \usepackage{minted} %
% i specjalnego kompilowania: %
% pdflatex -shell-escape praca %
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%\begin{minted}[linenos,breaklines,frame=lines]{c++}
%if (_nClusters < 1)
% throw std::string ("unknown number of clusters");
%if (_nIterations < 1 and _epsilon < 0)
% throw std::string ("You should set a maximal number of iteration or minimal difference -- epsilon.");
%if (_nIterations > 0 and _epsilon > 0)
% throw std::string ("Both number of iterations and minimal epsilon set -- you should set either number of iterations or minimal epsilon.");
%\end{minted}
% TODO
\chapter{Lista dodatkowych plików, uzupełniających tekst pracy}
W systemie do pracy dołączono dodatkowe pliki zawierające:
\begin{itemize}
\item źródła programu,
\item dane testowe,
\item film pokazujący działanie opracowanego oprogramowania lub zaprojektowanego i~wykonanego urządzenia,
\item itp.
\end{itemize}
\listoffigures
\addcontentsline{toc}{chapter}{Spis rysunków}
\listoftables
\addcontentsline{toc}{chapter}{Spis tabel}
\end{appendices}
\end{document}
%% Finis coronat opus.