Skip to content
Snippets Groups Projects
Commit f5347280 authored by Jakub Štercl's avatar Jakub Štercl
Browse files

added activity diagram for distributing to thesis

parent 497361b8
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -35,9 +35,9 @@
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {1}C\IeC {\'\i }l pr\IeC {\'a}ce}{3}{chapter.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Existuj\IeC {\'\i }c\IeC {\'\i } \IeC {\v r}e\IeC {\v s}en\IeC {\'\i }}{3}{section.1.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Anal\IeC {\'y}za po\IeC {\v z}adavk\IeC {\r u}}{3}{section.1.2}}
\citation{uml2}
\citation{uml2}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Anal\IeC {\'y}za po\IeC {\v z}adavk\IeC {\r u}}{4}{section.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Funk\IeC {\v c}n\IeC {\'\i } po\IeC {\v z}adavky}{4}{subsection.1.2.1}}
\citation{umlsroz}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}Nefunk\IeC {\v c}n\IeC {\'\i } po\IeC {\v z}adavky}{5}{subsection.1.2.2}}
......@@ -64,24 +64,27 @@
\citation{domainmodel}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Persistence dat}{11}{subsection.2.1.4}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Dom\IeC {\'e}nov\IeC {\'y} model}{11}{section.2.2}}
\citation{uml2}
\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Dom\IeC {\'e}nov\IeC {\'y} model\relax }}{12}{figure.caption.7}}
\newlabel{fig:domain}{{\M@TitleReference {2.1}{Dom\IeC {\'e}nov\IeC {\'y} model\relax }}{12}{Doménový model\relax }{figure.caption.7}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Proces rozd\IeC {\v e}len\IeC {\'\i } skupiny}{12}{section.2.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Diagram aktivit zn\IeC {\'a}zor\IeC {\v n}uj\IeC {\'\i }c\IeC {\'\i } proces vytvo\IeC {\v r}en\IeC {\'\i } rozd\IeC {\v e}len\IeC {\'\i }\relax }}{13}{figure.caption.8}}
\newlabel{fig:activity}{{\M@TitleReference {2.2}{Diagram aktivit zn\IeC {\'a}zor\IeC {\v n}uj\IeC {\'\i }c\IeC {\'\i } proces vytvo\IeC {\v r}en\IeC {\'\i } rozd\IeC {\v e}len\IeC {\'\i }\relax }}{13}{Diagram aktivit znázorňující proces vytvoření rozdělení\relax }{figure.caption.8}{}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {3}Implementace}{13}{chapter.3}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {3}Implementace}{15}{chapter.3}}
\bibstyle{csn690}
\bibdata{mybibliographyfile}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{Z{\' a}v{\v e}r}{15}{chapter*.8}}
\@writefile{toc}{\contentsline {chapter}{Z{\' a}v{\v e}r}{17}{chapter*.9}}
\bibcite{uml2}{1}
\@writefile{toc}{\contentsline {chapter}{Literatura}{17}{section*.10}}
\@writefile{toc}{\contentsline {chapter}{Literatura}{19}{section*.11}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {appendix}{\chapternumberline {A}Seznam pou\IeC {\v z}it\IeC {\'y}ch zkratek}{19}{appendix.A}}
\@writefile{toc}{\contentsline {appendix}{\chapternumberline {A}Seznam pou\IeC {\v z}it\IeC {\'y}ch zkratek}{21}{appendix.A}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {appendix}{\chapternumberline {B}Obsah p\IeC {\v r}ilo\IeC {\v z}en\IeC {\'e}ho CD}{21}{appendix.B}}
\memsetcounter{lastsheet}{35}
\memsetcounter{lastpage}{21}
\@writefile{toc}{\contentsline {appendix}{\chapternumberline {B}Obsah p\IeC {\v r}ilo\IeC {\v z}en\IeC {\'e}ho CD}{23}{appendix.B}}
\memsetcounter{lastsheet}{37}
\memsetcounter{lastpage}{23}
......@@ -5,6 +5,7 @@
\contentsline {figure}{\numberline {1.1}{\ignorespaces Diagram p\IeC {\v r}\IeC {\'\i }pad\IeC {\r u} u\IeC {\v z}it\IeC {\'\i }\relax }}{6}{figure.caption.6}
\addvspace {10pt}
\contentsline {figure}{\numberline {2.1}{\ignorespaces Dom\IeC {\'e}nov\IeC {\'y} model\relax }}{12}{figure.caption.7}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Diagram aktivit zn\IeC {\'a}zor\IeC {\v n}uj\IeC {\'\i }c\IeC {\'\i } proces vytvo\IeC {\v r}en\IeC {\'\i } rozd\IeC {\v e}len\IeC {\'\i }\relax }}{13}{figure.caption.8}
\addvspace {10pt}
\addvspace {10pt}
\addvspace {10pt}
......
......@@ -7,7 +7,7 @@
\BOOKMARK [1][-]{section.2.2}{Dom\351nov\375 model}{chapter.2}% 7
\BOOKMARK [1][-]{section.2.3}{Proces rozdelen\355 skupiny}{chapter.2}% 8
\BOOKMARK [0][-]{chapter.3}{Implementace}{}% 9
\BOOKMARK [0][-]{chapter*.8}{Z\341ver}{}% 10
\BOOKMARK [0][-]{section*.10}{Literatura}{}% 11
\BOOKMARK [0][-]{chapter*.9}{Z\341ver}{}% 10
\BOOKMARK [0][-]{section*.11}{Literatura}{}% 11
\BOOKMARK [0][-]{appendix.A}{Seznam pou\236it\375ch zkratek}{}% 12
\BOOKMARK [0][-]{appendix.B}{Obsah prilo\236en\351ho CD}{}% 13
No preview for this file type
No preview for this file type
......@@ -30,7 +30,7 @@
 
\setlength{\fboxsep}{0.005pt}
\newcommand{\tmpframe}[1]{\fbox{#1}}
%\renewcommand{\tmpframe}[1]{#1}
\renewcommand{\tmpframe}[1]{#1}
 
\newcommand{\tg}{\mathop{\mathrm{tg}}} %cesky tangens
\newcommand{\cotg}{\mathop{\mathrm{cotg}}} %cesky cotangens
......@@ -64,7 +64,7 @@ Moderní technologie a výpočetní technika nám čím dál více usnadňují
 
 
\chapter{Cíl práce}
Cílem práce je tedy na základě analýzy požadavků navrhnout a posléze naimplementovat aplikaci, \blind[1]
Cílem práce je tedy na základě analýzy požadavků navrhnout a posléze naimplementovat aplikaci, která bude organizátorům soustředění korespondenčního semináře FIKS (Fiťácký informatický korespondenční seminář)\footnote{\url{https://fiks.fit.cvut.cz/}} sloužit při tvorbě týmů pro jednotlivé hry. Hlavní motivací, proč organizátoři takovouto aplikaci chtějí je, aby se účastníci mezi sebou poznali, tj. každou hru hráli, pokud možno, s novými spoluhráči.
 
\section{Existující řešení}
Vzhledem k tomu, že s~podobným problémem se organizátoři po~celém světě samozřejmě setkávají poměrně často, existují různé nástroje, které tvorbu skupin umožňují. Většinou se ale jedná buď o~webové nebo mobilní aplikace. Jednou z~takových webových aplikací je například Team~Maker\footnote{\url{http://chir.ag/projects/team-maker/}}, podobná mobilní aplikace je Teamistr\footnote{\url{https://itunes.apple.com/us/app/teamistr/id609410714?mt=8} pro iOS \\ \url{https://play.google.com/store/apps/details?id=com.brownapps.sortr} pro Android}. Tyto aplikace ale neumožňují vytvoření a uložení seznamů lidí (např. paralelky), tudíž neukládají ani historii vytvořených týmů, neumožňují zobrazení, s~kým už daná osoba ve skupině byla a~neumožňují ani zvolit, zda preferujeme rozdělení, kde lidé v~jednotlivých týmech spolu již spolupracovali, nebo naopak. Proto nejsou zdaleka dostačující a jejich jediný účel je rozdělovat skupiny do týmů \uv{spravedlivě}.
......@@ -80,7 +80,7 @@ Požadavky sebrané v analýze (příp. sběru) požadavků se nejčastěji děl
Na základě diskuse se zadavatelem jsem dospěl k následujícím funkčním požadavkům:
\begin{itemize}
\item \textbf{Správa skupin} -- Aplikace bude umožňovat vytvořit, přejmenovat a upravovat skupiny lidí. Úpravou skupiny se myslí možnost přidávat členy, případně členy odebírat a přejmenovávat.
\item \textbf{Rozdělení skupiny do týmů} -- Aplikace bude umět navrhnout rozdělení skupiny do týmů podle zadaných parametrů. Těmito parametry může být minimální/maximální počet lidí v týmu, počet týmů v rozdělení a vynucení/zakázání určitých dvojic (skupin) lidí ve stejném týmu. Dále bude aplikace umožňovat zvolit, zda preferujeme takové rozdělení do týmů, ve kterém lidé, kteří spolu již v týmu spolupracovali, budou opět ve stejném týmu, či naopak.
\item \textbf{Rozdělení skupiny do týmů} -- Aplikace bude umět navrhnout rozdělení skupiny do týmů podle zadaných parametrů. Těmito parametry může být minimální/maximální počet lidí v týmu, počet týmů v rozdělení a vynucení/zakázání určitých dvojic (skupin) lidí ve stejném týmu. Dále bude aplikace umožňovat zvolit, zda preferujeme takové rozdělení do týmů, ve kterém lidé, kteří spolu již v týmu spolupracovali, budou opět ve stejném týmu, či naopak. V případě, že požadované rozdělení neexistuje, aplikace navrhne takové rozdělení, které porušuje co nejméně požadavků.
\item \textbf{Vizualizace rozdělení} -- Aplikace bude umět vytvořené rozdělení vizualizovat pro potřeby tisku.
\item \textbf{Export rozdělení} -- Aplikace bude umět vytvořené rozdělení exportovat do textového souboru. Soubor se bude skládat jednotlivých týmů, každý na samostatné řádce. Každá řádka bude začínat jménem týmu, následovaném jmény členů týmu, oddělenými čárkou.
\item \textbf{Zobrazení historie rozdělení} -- Aplikace bude umět pro každého člena skupiny umět zobrazit s kterými členy skupiny již byl v týmu a kolikrát. Zároveň bude aplikace umět pro každou skupinu zobrazit uložená rozdělení.
......@@ -228,9 +228,20 @@ Doménový model \ref{fig:domain} pro tento projekt je celkem jednoduchý, obsah
\end{figure}
 
\section{Proces rozdělení skupiny}
Nejdůležitějším a zároveň také nejkomplikovanějším procesem v aplikaci je vytvoření rozdělení, tj. rozdělení skupiny do týmů. Proto jsem se rozhodl při návrhu jej popsat a ujasnit, jak bude vlastně takové rozdělení probíhat. Pro popis tohoto procesu jsem využil diagram aktivit (activity diagram).
Diagram aktivit slouží právě k popisu procesů. Ať už se jedná o bussiness procesy nebo proces přímo v systému, obojí můžeme snadno a přehledně popsat právě diagramem aktivit. Dle \cite{uml2} \uv{nabízí univerzální mechanismus pro modelování chování, který můžeme využít, kdykoli se nám to bude hodit} a právě při popis procesu rozdělení skupiny se tento diagram náramně \textit{hodí}.
Při pohledu na diagram \ref{fig:activity} může vyvstat otázka, proč, pokud systém nenajde vhodné rozdělení do týmů, má uživatel možnost opakovat hledání a proč by to chtěl udělat. Tuto možnost jsem do diagramu, a také do aplikace, doplnil až v průběhu implementace a souvisí to se způsobem (algoritmem), který se používá pro nalezení vyhovujícího rozdělení. Více o tomto algoritmu v sekci \todo{odkaz na sekci s algoritmem}.
\begin{figure}
\tmpframe{\includegraphics[width=\linewidth, trim=0.1cm 8.8cm 0.1cm 0.1cm, clip]{images/activity_distribtuion.pdf}}
\caption{Diagram aktivit znázorňující proces vytvoření rozdělení}
\label{fig:activity}
\end{figure}
 
\chapter{Implementace}
%\blind[2]
%\section{Ikony}
%https://iconmonstr.com - iconmonstr(malým), add to resource file, pyrcc5
 
......
......@@ -4,7 +4,7 @@
\contentsline {chapter}{{\' U}vod}{1}{chapter*.5}
\contentsline {chapter}{\chapternumberline {1}C\IeC {\'\i }l pr\IeC {\'a}ce}{3}{chapter.1}
\contentsline {section}{\numberline {1.1}Existuj\IeC {\'\i }c\IeC {\'\i } \IeC {\v r}e\IeC {\v s}en\IeC {\'\i }}{3}{section.1.1}
\contentsline {section}{\numberline {1.2}Anal\IeC {\'y}za po\IeC {\v z}adavk\IeC {\r u}}{4}{section.1.2}
\contentsline {section}{\numberline {1.2}Anal\IeC {\'y}za po\IeC {\v z}adavk\IeC {\r u}}{3}{section.1.2}
\contentsline {subsection}{\numberline {1.2.1}Funk\IeC {\v c}n\IeC {\'\i } po\IeC {\v z}adavky}{4}{subsection.1.2.1}
\contentsline {subsection}{\numberline {1.2.2}Nefunk\IeC {\v c}n\IeC {\'\i } po\IeC {\v z}adavky}{5}{subsection.1.2.2}
\contentsline {subsection}{\numberline {1.2.3}P\IeC {\v r}\IeC {\'\i }pady u\IeC {\v z}it\IeC {\'\i }}{5}{subsection.1.2.3}
......@@ -16,8 +16,8 @@
\contentsline {subsection}{\numberline {2.1.4}Persistence dat}{11}{subsection.2.1.4}
\contentsline {section}{\numberline {2.2}Dom\IeC {\'e}nov\IeC {\'y} model}{11}{section.2.2}
\contentsline {section}{\numberline {2.3}Proces rozd\IeC {\v e}len\IeC {\'\i } skupiny}{12}{section.2.3}
\contentsline {chapter}{\chapternumberline {3}Implementace}{13}{chapter.3}
\contentsline {chapter}{Z{\' a}v{\v e}r}{15}{chapter*.8}
\contentsline {chapter}{Literatura}{17}{section*.10}
\contentsline {appendix}{\chapternumberline {A}Seznam pou\IeC {\v z}it\IeC {\'y}ch zkratek}{19}{appendix.A}
\contentsline {appendix}{\chapternumberline {B}Obsah p\IeC {\v r}ilo\IeC {\v z}en\IeC {\'e}ho CD}{21}{appendix.B}
\contentsline {chapter}{\chapternumberline {3}Implementace}{15}{chapter.3}
\contentsline {chapter}{Z{\' a}v{\v e}r}{17}{chapter*.9}
\contentsline {chapter}{Literatura}{19}{section*.11}
\contentsline {appendix}{\chapternumberline {A}Seznam pou\IeC {\v z}it\IeC {\'y}ch zkratek}{21}{appendix.A}
\contentsline {appendix}{\chapternumberline {B}Obsah p\IeC {\v r}ilo\IeC {\v z}en\IeC {\'e}ho CD}{23}{appendix.B}
......@@ -4,4 +4,4 @@ class Team:
def __init__(self, id_, name, members):
self.id_ = id_
self.name = name
self.members = members
\ No newline at end of file
self.members = members
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment