%%
%%====================================================================%%
%%                    Wojskowa Akademia Techniczna
%%                        Wydzial Cybernetyki
%%
%%                  prezentacja pracy magisterskiej
%%    Konstrukcja i integracja mechanizmu monitorów statystycznych
%%                 na potrzeby symulacji w języku C++
%%
%%       Autor : Marcin Malich
%%    Kierunek : Informatyka
%%   Nr albumu : 46852
%%    Promotor : dr inż. Jarosław Rulka
%%  Data (wer) : 19.06.2011, v1.00
%%
%% Copyright (c) 2011 by Marcin 'Malcom' Malich <me@malcom.pl>
%%--------------------------------------------------------------------%%
%%

\documentclass{beamer}
\usetheme{Rochester}

\usepackage{polski}
\usepackage[utf8]{inputenc}

\title{Konstrukcja i integracja mechanizmu monitorów statystycznych na potrzeby symulacji w języku C++}
\subtitle{Praca magisterska}
\author{Marcin Malich}
\institute{Wojskowa Akademia Techniczna\\ Wydział Cybernetyki}
\date{Warszawa, 2011}

\begin{document}

\begin{frame}
	\titlepage
\end{frame}

\begin{frame}
	\frametitle{Plan prezentacji}
	\tableofcontents
\end{frame}


\section{Wprowadzenie}

\begin{frame}
	\frametitle{Cel pracy}
	Cel pracy:
	\begin{itemize}
		\item Konstrukcja monitorów statystycznych w C++
		\item Analiza i przegląd parametrów i charakterystyk
		\item Analiza i przegląd możliwości wizualizacji
		\item Biblioteka \textit{sim::mom}
	\end{itemize}
\end{frame}


\section{Monitory statystyczne}

\subsection{Modelowanie i symulacja}

\begin{frame}
	\frametitle{Modelowanie i symulacja}
	\begin{itemize}
		\item System, model, symulacja
		\item Znaczenie monitorów w symulacji
	\end{itemize}
\end{frame}

\subsection{Rola i cechy monitorów}

\begin{frame}
	\frametitle{Rola monitorów}
	\begin{itemize}
		\item Obserwowanie i śledzenie zmian
		\item Gromadzenie danych
		\item Wyznaczanie statystyk oraz charakterystyk
		\item Wizualizacja wyników
		\item Narzędzie do debugowania
	\end{itemize}
\end{frame}

\begin{frame}
	\frametitle{Cechy monitorów}
	\begin{itemize}
		\item Prosta instalacja
		\item Transparentność
		\item Separacja i niezależność
		\item Szybkość i elastyczność
	\end{itemize}
\end{frame}

\subsection{Rodzaje i budowa monitorów}

\begin{frame}
	\frametitle{Rodzaje i budowa monitorów}
	Rodzaje monitorów:
	\begin{itemize}
		\item zwykłe
		\item ważone czasem
	\end{itemize}
	\vskip 12pt
	Konstrukcja monitorów:
	\begin{itemize}
		\item modułowa
		\item monolityczna
	\end{itemize}
\end{frame}


\section{Parametry i charakterystyki}

\begin{frame}
	\frametitle{Parametry i charakterystyki}
	Statystyka opisowa:
	\begin{itemize}
		\item Miary położenia
		\item Miary zmienności
		\item Miary asymetrii
		\item Miary koncentracji
	\end{itemize}
	\vskip 12pt
	Inne parametry:
	\begin{itemize}
		\item Liczebność, Minimum i Maksimum
		\item Średnia krocząca
		\item Histogram
		\item Wskaźnik struktury
	\end{itemize}
\end{frame}


\section{Możliwości wizualizacji}

\begin{frame}
	\frametitle{Możliwości wizualizacji}
	Biblioteki i toolkity:
	\begin{itemize}
		\item wxFreeChart (\textit{wxWidgets})
		\item Qwt (\textit{Qt})
	\end{itemize}
	\vskip 12pt
	Pakiety i narzędzia:
	\begin{itemize}
		\item gnuplot
		\item Środowisko R
		\item MATLAB
	\end{itemize}
\end{frame}


\section{Biblioteka sim::mon}

\begin{frame}
	\frametitle{Biblioteka \textit{sim::mon}}
	\begin{itemize}
		\item Implementacja monitorów w C++
		\item \textit{Template-based design}
		\item Multiplatformowość i przenośność
		\item Licencja MIT
	\end{itemize}
\end{frame}

\subsection{Funkcje i możliwości}

\begin{frame}
	\frametitle{Funkcje i możliwości biblioteki}
	\begin{itemize}
		\item Obsługa monitorów zwykłych i ważonych czasem
		\item Implementacje podstawowych parametrów i statystyk
		\item Łatwa rozbudowa i rozszerzalność (monitory, statystyki)
		\item Możliwość monitorowania dowolnych typów elementów
		\item Powiadamianie o zmianach wartości monitorowanego obiektu
		\item Możliwość wizualizacji z wykorzystaniem dowolnego softu
		\item Transparentność, elastyczność i szybkość
		\item Prosta instalacja oraz wykorzystanie
	\end{itemize}
\end{frame}

\begin{frame}
	\frametitle{Zawansowane możliwości}
	\begin{itemize}
		\item Statystyki historyczne
		\item Mechanizm sygnałów
		\item Powiadamianie o zmianach wartości
		\item Powiadamianie o zmianach statystyk
		\item Dowolna obsługa sygnałów (funktory)
	\end{itemize}
\end{frame}

\subsection{Implementacja}

\begin{frame}
	\frametitle{Implementacja}
	\begin{itemize}
		\item Klasa \texttt{BasicMonitor}
		\item \texttt{MonitorTraits}
		\item \texttt{StatFunctorTraits}
		\item \texttt{DefaultParams}
		\item Funktory statystyk
		\item Pomocne konstrukcje (\texttt{Monitor} i \texttt{TMonitor}, i inne)
	\end{itemize}
\end{frame}

\subsection{Budowanie i testowanie}

\begin{frame}
	\frametitle{Budowanie i testowanie}
	\begin{itemize}
		\item Brak procesu budowania (kompilacji)
		\item Prosta instalacja (header path)
		\item Testy oparte na \textit{Boost Test Library}
	\end{itemize}
\end{frame}

\subsection{Korzystanie z biblioteki}

\begin{frame}
	\frametitle{Korzystanie z biblioteki}
	\begin{itemize}
		\item Proste użycie biblioteki
		\item Prosta rozbudowa
		\item Przykładowe aplikacje i kody źródłowe
	\end{itemize}
\end{frame}


\section{Symulacja SMO}

\begin{frame}
	\frametitle{Program SMO}
	\begin{itemize}
		\item Symulacja systemów kolejkowych
		\item Realne wykorzystanie biblioteki \textit{sim::mon}
		\item Wykorzystanie biblioteki \textit{cppsim} i \textit{wxWidgets}
		\item Napisany w języku C++
	\end{itemize}
\end{frame}

\subsection{Budowa programu}

\begin{frame}
	\frametitle{Budowa programu}
	\begin{itemize}
		\item OOP w C++
		\item Aplikacja wielowątkowa
			\begin{itemize}
				\item wątek główny (GUI)
				\item wątek procesu symulacji
			\end{itemize}
		\item Zawansowane, dokowane GUI (\textit{wxAUI})
		\item Wizualizacja danych oparta na \textit{wxFreeChart}
	\end{itemize}
\end{frame}

\subsection{Możliwości programu}

\begin{frame}
	\frametitle{Możliwości programu}
	\begin{itemize}
		\item Konfiguracja systemu SMO
		\item Sterowanie procesem symulacji
		\item Monitorowanie wybranych punktów systemu
		\item Wyznaczanie parametrów i charakterystyk
		\item Wizualizacja \textit{on-line} wybranych statystyk
	\end{itemize}
\end{frame}


\section{Podsumowanie}

\begin{frame}
	\frametitle{Podsumowanie}
	\begin{itemize}
		\item Wszystkie założenia i  cele zostały zrealizowane
		\item Łatwa rozszerzalność biblioteki
		\item Proste wykorzystanie
		\item Realne zastosowania
	\end{itemize}
	\vfill
\end{frame}


\begin{frame}
	\frametitle{}
	{\bf {Marcin Malich} \par}
	\href{mailto:me@malcom.pl}{me@malcom.pl}\\
	web: \href{http://malcom.pl}{malcom.pl}\\
	xmpp: \href{xmpp:me@malcom.pl}{me@malcom.pl}\\
\end{frame}

\end{document}
