Wrote everything from Google docs

This commit is contained in:
Kristofers Solo 2023-10-08 19:31:35 +03:00
parent 9c1104992f
commit d3adc91476
33 changed files with 487 additions and 35 deletions

View File

@ -10,6 +10,7 @@
\usepackage{hyperref}
\usepackage{indentfirst}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{ragged2e}
\usepackage{secdot}
\usepackage{tabularx}
@ -18,7 +19,9 @@
\usepackage{listings}
\usepackage{tocloft}
\usepackage{caption}
\usepackage{lipsum} % TODO: Remove
\usepackage{fmtcount}
\usepackage{ltablex}
\usepackage{chngcntr}
\usetikzlibrary{positioning}
\hypersetup{
@ -29,12 +32,36 @@
\urlstyle{rm}
\titlespacing*{\section}{0pt}{2em}{2em}
\titlespacing*{\subsection}{0pt}{2em}{2em}
\titlespacing*{\subsubsection}{0pt}{2em}{2em}
\titlespacing*{\paragraph}{0pt}{2em}{2em}
\titlespacing*{\subparagraph}{0pt}{2em}{2em}
\titleformat{\section}{\large\bfseries\centering\vfill\eject\MakeUppercase}{\thesection}{1em}{} % section formatting
\titleformat{\subsection}{\large\bfseries\centering}{\thesubsection}{1em}{} % subsection formatting
\titleformat{\subsubsection}{\large\bfseries\centering}{\thesubsubsection}{1em}{} % subsubsection formatting
\titleformat{\paragraph}{\large\bfseries\centering}{\theparagraph}{1em}{} % paragraph formatting
\titleformat{\subparagraph}{\large\bfseries\centering}{\thesubparagraph}{1em}{} % subparagraph formatting
% Modify caption style
\DeclareCaptionFormat{format}{\textit{#1} \textbf{#3}}
\captionsetup{format=format}
\DeclareCaptionLabelFormat{image}{#2 att.}
\captionsetup[figure]{labelformat=image, labelsep=period}
\counterwithin{figure}{section} % Reset figure counter within each section
\renewcommand{\thefigure}{\thesection\arabic{figure}.} % Redefine figure numbering
\counterwithin{table}{section} % Reset table counter within each section
\renewcommand{\thetable}{\thesection\arabic{table}.} % Redefine table numbering
\captionsetup[table]{justification=raggedleft,singlelinecheck=off} % Align table caption text to the left
\captionsetup[figure]{justification=raggedright,singlelinecheck=off} % Align figure caption text to the right
\geometry{a4paper, left=30mm, right=20mm, top=20mm, bottom=20mm}
@ -47,11 +74,12 @@
\setlength{\parindent}{1cm}
\setlength{\parskip}{0pt}
\setcounter{secnumdepth}{3} % Numering for subsubsections
\setcounter{secnumdepth}{5} % Numering for subsubsections
\setcounter{tocdepth}{3} % Add subsubsections in ToC
% ToC config
% TODO: section in uppercase
\renewcommand{\cftsecfont}{\MakeUppercase}
\renewcommand{\cfttoctitlefont}{\hfill\large\bfseries\MakeUppercase}
\renewcommand{\cftaftertoctitle}{\hfill}
@ -62,17 +90,20 @@
% \renewcommand{\contentsname}{Satura rādītājs}
% }
% TODO: configure table
% TODO: configure image
% Table config
\newcounter{rownum}
\renewcommand{\therownum}{\padzeroes[2]{\decimal{rownum}}}
\begin{document}
\input{./src/title-page.tex}
\input{./src/abstract.tex}
\pagebreak
\tableofcontents
\input{./src/introduction.tex}
\input{./src/example.tex}
\input{./src/introduction/index.tex}
\input{./src/legends.tex}
\input{./src/description/index.tex}
\input{./src/requirements/index.tex}
\end{document}

View File

@ -1,6 +1,20 @@
\section*{Anotācija}
\setcounter{page}{2}
\lipsum[1-3]
Sociālā lomu spēle ``Mafija'' ir plaši pazīstama.
Tā ir pieejama vairākos paveidos un formātos, kā arī piedāvā neierobežotu skaitu konfigurāciju un lomu.
Spēlētāju ērtībai tiek piedāvāts lietotnes formāts, kas ietver norādījumus, informējot lietotāju par pieejamajām iespējām, un skaidrojumus, aprakstot spēles elementus un saskarni, ar mērķi vienkāršot tās spēlēšanu.
Tirgus izpēte apliecina, ka ir pieejami vairāki, nepilnvērtīgi risinājumi.
Programmatūras prasību specifikācija apraksta sistēmas pamatprasības ar papildus funkcionalitāti, tostarp lomu klāsta papildināšanu, spēles konfigurāciju izveidi, kā arī priviliģēta lietotāja stāvokli (maksas lietotāja), izmantojot abonamenta formāta maksājumu sistēmu.
\textbf{Atslēgvārdi:}
Mafijas spēle, sistēmas prasības, specifikācijas dokuments, programmatūras uzlabošana, lomu spēles mehānika, vienkāršota spēlēšana, organizatoriski risinājumi, programmatūras prasību specifikācija, lietotāju veidots saturs, abonamenta maksājumi, maksas lietotājs.
\section*{Abstract}
\lipsum[1-3]
The social role-playing game ``Mafia'' is widely known.
It is available in various versions and formats, offering an unlimited number of configurations and roles.
For the convenience of players, there is an application format that includes instructions, informing the user about available options, and explanations describing the game's elements and interface, to simplify its play.
Market research confirms that several incomplete solutions are available.
The software requirements specification describes the system's basic requirements with additional functionality, including expanding the range of roles, creating game configurations, and a privileged user status (premium user) using a subscription-based payment system.
\textbf{Keywords:}
Mafia game, system requirements, specification document, software improvement, role-playing mechanics, simplified gameplay, organizational solutions, software requirements specification, user-generated content, subscription payments, premium user.

View File

@ -0,0 +1,4 @@
\subsection{Esošā stāvokļa apraksts}
Tirgū pastāv vairākas platformas un citi programmatūras formāti, piemēram, lietotnes, kas piedāvā dažādas lomu spēļu variācijas, to skaitā, ``Warewolf online'', ``Town of Salem'', ``Mafia.gg'', ``BeyondMafia'' un ``Mafia: The Game'' un daudzi citi.
Esošiem risinājumiem ir vairākas problēmas: maksas piekļuve, pārmērīgs iespēju skaits, kas ir pieejamas tikai par maksu, spēle ir pieejama tikai uz mobilā viedtālruņa.
``MAFIJA'' īstenos svarīgākās no esošo spēļu iespējām un pievienos jaunas iespējas, kas papildinās un uzlabos lietotāju pieredzi, kā arī samazinās maksas funcionalitāti.

View File

@ -0,0 +1,2 @@
\subsection{Pasūtītājs}
Sistēma nav izstrādāta pēc konkrēta pasūtītāja pieprasījuma, tā ir raksturota un projektēta ar iespēju realizēt pēc studentu grupas iniciatīvas programminženierijas kursa ietvaros.

View File

@ -0,0 +1,8 @@
\subsection{Pieņēmumi un atkarības}
\begin{itemize}
\item Platformu veidojošās datnes, datu bāzes, kontrolieri tiks mitināti pie viena mitināšanas pakalpojuma sniedzēja.
\item Ierīce atbalsta un ļauj pilnā sistēmas funkcionalitātē pieslēgties sistēmai. Lietotāja ierīce ir sasniegusi minimālo vajadzības slieksni, lai izmantotu produktu, bez problēmām.
\item Tiek pieņemts, ka lietotāja ierīcei ir stabils interneta savienojums. Bez stabila interneta savienojuma ir iespējami traucējumi lietotnes izmantošanā.
\item Sistēmā būs integrēti maksājumu ārpakalpojumi. Sistēmā būs iespēja iegūt maksas pakalpojumus.
\item Sistēma tiek veidota kā interneta lietotne, tāpēc ierobežojumi galvenokārt ir saistīti ar pārlūkprogrammu savietojamību. Tiek pieņemts, ka sistēmas lietotāji to lietos, izmantojot pārlūkprogrammas, kas atbalsta funkcionālas prasības, kas ir nepieciešamas, lai īstenotu korektu sistēmas darbību.
\end{itemize}

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

View File

@ -0,0 +1,8 @@
\section{Vispārējais apraksts}
\input{./src/description/current-situation.tex}
\input{./src/description/customer.tex}
\input{./src/description/perspective.tex}
\input{./src/description/requirements.tex}
\input{./src/description/users.tex}
\input{./src/description/restrictions.tex}
\input{./src/description/dependencies.tex}

View File

@ -0,0 +1,6 @@
\subsection{Produkta perspektīva}
Sistēma tiek integrēti vai izmantoti citu uzņēmumu un izstrādātāju piedāvāti pakalpojumi.
Produkta realizācijā ir paredzēts izmantot maksājumu apstrādāšanas pakalpojumus, kamēr tie atbilst sistēmas pieprasītajai funckionalitātei un piedāvā optimālākos, kā arī drošākos un efektīvākos risinājumus tirgū.
Maksājumu apstrādātājs tiks izmantots, lai īstenotu lietotāju maksas pakalpojumi iegādi noteikto papildus iespēju iegūšanai uz noteiktu laiku.
Maksājuma pieprasījuma un stāvokļa dati tiek uzblabāti sistēmā, taču pati apstrāde notiek ārējās sistēmas ietvaros.

View File

@ -0,0 +1,17 @@
\subsection{Darījumprasības}
Sistēmā ``MAFIJA'' tiks realizētas sekojošās darījumprasības:
\begin{enumerate}
\item Lietotāju reģistrācija, autentifikācija;
\item Lietotāju un to privilēģiju pārvalde;
\item Lietotāju konta apstiprināšana, izmantojot e-pastu;
\item Lietotāju profilu personalizācija - profila attēla un segvārda redigēšana;
\item Lietotāju stāvokļa virtuālajās telpās uzturēšana un izmaiņa;
\item Lietotāju informēšana, izmantojot paziņojumu sistēmu;
\item Sinhronizēta spēles stāvokļa atjaunināšana;
\item Spēļu konfigurāciju un lomu klāsta pārvalde;
\item Publisko un privāto virtuālo telpu pārvalde;
\item Spēles automātiska vadība;
\item Kopēja un ierobežotu grupu (lomu atkarīga) tērzēšana;
\item Privilēģiju izmaiņa, imantojot bezpersonisku maksājumu sistēmu;
\item Lietotāju moderēšana;
\end{enumerate}

View File

@ -0,0 +1,22 @@
\subsection{Vispārējie ierobežojumi}
\begin{enumerate}
\item Drošības un aizsardzības apsvērumi:
\begin{enumerate}
\item Lietotāju paroles tiek uzglabāti šifrētā veidā, izmantojot SHA-2 algoritmu.
\item Tiek izmantota trešās puses autentifikācijas integrācija (izmantojot ārējas bibliotēkas).
\end{enumerate}
\item Regulējoša politika:
\begin{enumerate}
\item Par analītikas nolūkos izmantotu sīkdatņu atļauja tiek prasīta.
\end{enumerate}
\item Izstrādes vides, tehnoloģijas un tīmekļa ierobežojumi
\begin{enumerate}
\item Valodas, to tehniskie ierobežojumi;
\item Responsivitāte;
\item Sistēmas lietotāju saskarne ir realizējama caur tīmekļa vietni;
\item Sistēmas ietvaros mitināta vietne ir kopīga neatkarīgi no ierīces, no kuras tā tiek izmantota (netiek izmantots apakšdomēna vārds mobilo tālruņu lietotājiem).
\end{enumerate}
\end{enumerate}

22
src/description/users.tex Normal file
View File

@ -0,0 +1,22 @@
\subsection{Sistēmas lietotāji}
Nereģistrēts lietotājs (viesis) lietotāju grupas lietotāji nav reģistrēti datubāzē, i.e., viesis ir jebkurš lietotājs, kas nav pieteicies autentifikācijai vai kuram nav konta.
Tas var reģistrēties vai atjaunot savu lietotāja profilu;
Kopš lietotājs ir pieteicies un tika autentificēts, tam ir pieejamas registrēta lietotāja grupas darbības, kas as spēli, profilu, kontu saistītās darbības.
Lielākā daļa lietotāju piederēs šij lietotāju grupai.
Papildus reģistrētiem lietotājiem, par kuru kļūst jebkurš reģistrējies lietotājs, daļai no lietotāji maksas lietotāja grupā, kam ir pieejama papildus uz noteiktu laiku periodu pieejamā funkcionalitāte, kā veidot jaunas virtuālās istabas, spēļu uzstādījumu, jaunas lomas u.c.
Reģistrēta lietotāja un maksas lietotāja grupu apvieno spēles funkcionalitāte, kas ir vajadzīga pamata sistēmas mērķa realizēšanai - spēles procesam.
Vadības lietotāju grupas mērķis ir uzturēt un regulēt istabas, lietotājus un ar noteiktus spēles procesu saistītus sistēmas atribūtus sai ar darbībām, kā blokēšana, stāvokļa regulēšana, konta informācijas izmaiņa vai lomu redigēšana u.c.
Administrātoru lietotāju papildus pamata vadības funkcionalitātei piemīt paplašinātsas darbības saistībā ar noteikto kritisku spēles sistēmas atribūtu izmaiņas, kā, piemēram, lietotāju lietotāju grupas maiņa.
Maksājumu apstrādātājs tiks izmantots, lai nodrošinātu maksāšanas apstrādāšanu ārpus sistēmas. Tādējādi sistēma uzglabā minimālu informāciju par transakcijām, to realizēšanu uzticot arējam pakalpojumu sniedzējam.
Iepriekš aprakstītās datu plūsmas ir attēlotas sistēmas nultā līmeņa DPD (\ref{fig:dpd_0} attēls).
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{./src/description/img/DPD_0.png}
\caption{0-tā līmeņa DPD}
\label{fig:dpd_0}
\end{figure}

View File

@ -1,18 +0,0 @@
\section{Example 1}
\lipsum[1]
\subsection{Subsection 1}
\lipsum[2-3]
\subsubsection{Subsubsection 1}
\lipsum[4-5]
\subsubsection{Subsubsection 2}
\lipsum[6]
\subsection{Subsection 2}
\lipsum[7]
\subsubsection{Subsubsection 3}
\lipsum[8-9]
\section{Example 2}
\lipsum[10-11]
\section{Table Example}
\section{Image Example}

View File

@ -1,6 +0,0 @@
\section*{Ievads}
\addcontentsline{toc}{section}{Ievads}
\lipsum[1-2]
\subsection*{Subsection}
\lipsum[1]

View File

@ -0,0 +1,2 @@
\subsection*{Saistība ar citiem dokumentiem}
PPS ir izstrādāta, ievērojot LVS 68:1996 ``Programmatūras prasību specifikācijas ceļvedis'' un LVS 72:1996 ``Ieteicamā prakse programmatūras projektējuma aprakstīšanai'' standarta prasības.

View File

@ -0,0 +1,6 @@
\section*{Ievads}
\addcontentsline{toc}{section}{Ievads}
\input{./src/introduction/purpose.tex}
\input{./src/introduction/scope.tex}
\input{./src/introduction/documents.tex}
\input{./src/introduction/overview.tex}

View File

@ -0,0 +1,9 @@
\subsection*{Pārskats}
Dokumenta ievads satur ievadinformāciju: dokumenta nolūku, izstrādājamās programmatūras, vispārīgu programmatūras nolūku un funkcijas, saistību ar citiem dokumentiem, kuru prasības tika izmantotas dokumenta izstrādāšanas gaitā un pārskatu par dokumenta daļu saturu ar skaidrojumu dokumenta organizāciju.
Pirmajā nodaļa tiek aprakstīti faktori, kas var ietekmēt produktu un tā prasības.
Nodaļā tiek pamatota programmatūras izstrādes motivācija un nolūks, aprakstītas produkta vieta citu sistēmu perspektīvā, galvenās augsta līmeņa darījumprasības, sistēmas lietotāju grupu lomas un mērķi, kā arī tiek uzskaitīti faktori, kas var ierobežot vai ietekmēt PPS.
Otrajā nodaļā tiek norādītas izstrādājamās programmatūras konkrētas prasības, kas satur visu nepieciešamo programmatūras projektējuma veidošanai.
Tā ietver: datu bāzes konceptuālo modeli, funkcionālās prasības, kas apraksta sistēmas funkciju sadalījumu pa moduļiem, arējās saskarnes prasības un sistēmas vispārējās prasības.
Trešajā nodaļā tiek aprakstīts projektējums, kas ietver sistēmas sastāvdaļu aprakstu turpmākā sistēmas projektējuma atvieglošanai.
Nodaļa satur datu sistēmas bāzes projektējumu un daļēju funkciju un lietotāju saskarņu projektējumu.

View File

@ -0,0 +1,3 @@
\subsection*{Nolūks}
Šī dokumenta mērķis ir raksturot tiešsaistes platformas ``MAFIJA'' programmatūras prasības.
Sistēma ir paredzēta individuāliem lietotājiem, kuru interesēs ir iesaistīties savstarpējā sociālā aktivitātē lomu spēles formātā.

View File

@ -0,0 +1,14 @@
\subsection*{Darbības sfēra}
Platforma ``MAFIJA'' atdarina pazīstamu lomu spēli, kas ir sociāla galda spēle ar dedukcijas elementiem.
Spēlē piedalās indivīdi - Spēlētāji, kas sadalīti vairākās grupās un tajās ietvertās lomās.
Lomu grupa ``Ciems'' lomas ``Iedzīvotājs'' ietvaros cenšas izdibināt kuri ir lomu grupas ``Mafija'' locekļi.
Mafijas mērķis ir radīt haosu ciema iedzīvotāju vidū un pakāpeniski izslēgt ciema iedzīvotājus no spēles, izmantojot stratēģisku manipulāciju vai spēlē paredzētās lomas darbības.
Spēlētāji, kuri nav ietverti ne ``Ciems'', ne ``Mafija'' lomu grupā cenšas sasniegt tiem iedalītās lomas darbības mērķi.
Tikai mafijai ir informācija par to, kuri no spēlētāju loka pieder ``Mafija'' lomu grupai.
Katram spēlētājam jāizmanto individuāla ierīce, kas nodrošina iespēju pieslēgties tīmeklim, lai pieteikties platformā, pievienotos konkrētajai spēlei un piedalītos tajā.
Katra spēlētāja ierīcē spēles sesijas laikā tiek parādīta individuāla informācija par iedalīto lomu un ar to saistītajām, pieejamajām darbībām, kuru nav paredzēts vai atļauts rādīt citiem spēlētājiem.
Platformas vizuālā saskarne ietver informāciju par spēles aktuālo stāvokli, precīzāk, fāzi (diena / nakts), spēles ilgumu, palikušo spēlētāju skaitu un citiem spēli raksturojošiem faktoriem.
Spēlētāja darbību klāsts ir atkarīgas no iedalītās lomas un aktuālā spēles stāvokļa.
Spēles organizātoram (maksas lietotājam) ir iespēja izveidot virtuālu telpu un pielāgot tās iestatījumus, lai organizētu spēli vai mainītu tās izpausmi, lomu klāstu un citus raksturojošos faktorus.
Katram spēlētājam tiek nodrošināta sihnronizēta informācija par spēles tekošo stāvokli un pieejamajām darbībām, tai skaitā, paziņojumi par spēles stāvokļa izmaiņām.
Ārpus spēles sesijas, lietotājiem ir pieejams spēļu saraksts, kas var ietvert gan atklātas, gan privātas virtuālās spēļu telpas, statistikas pārskats, kurā aplūkojama statistika par jau izspēlētajām spēlēm, un lietotāja profils, kurā var rediģēt lietotāja raksturojošo informāciju.

15
src/legends.tex Normal file
View File

@ -0,0 +1,15 @@
\section*{Apzīmējumu saraksts}
\addcontentsline{toc}{section}{Apzīmējumu saraksts}
MAFIJA - tiešsaistes lomu spēles platforma;
PPS - programmatūras prasību specifikācija;
ER modelis - entitāšu saišu modelis (angl. entity relationship model);
DPD - datu plūsmas diagramma;
LBPK - Uz lomu bāzēta piekļuves kontole;
Maksas siena - maksājums par lietotāju pieeju daļai no sistēmas piedāvātās funkcionalitātes;
Spēlētājs - lietotāja ieraksts vienas virtuālās istabas kontekstā.

View File

@ -0,0 +1,26 @@
\subsection{Konceptuālais datu bāzes apraksts}
Konceptuālajā modelī redzamās entītijas no konceptuālā ER modeļa (\ref{fig:conceptual_model} attēls):
\begin{itemize}
\item Lietotājs - reģistrēts lietotājs, kas pieder noteiktai grupai;
\item Lietotāju grupa - grupa ar saistītp atļauto darbību kopo;
\item Lietotāju grupas darbība - noteikta darbību sistēmā;
\item Attēls - datnes metadati un tās adrese, kas ir saistīta ar lietotāju vai spēles lomu;
\item Maksas abonements - lietotāju maksas abonementa dati. Taču abonementa stāvokļa datu uzglabāšanu atbild maksājuma procesors, no kura ir iegūstama informācija, kā nākamās norēķina datums un vai abonements ir aktīvs.
\item Spēles uzstādījums - vairāku spēles lomu kopa, kas ir izveidojamas arī publiski (maksas spēlētājiem)
\item Spēles loma - spēlē izmantojamaās lomas apraksts, katrai lomai obligāti piemī trūkumi un darbības. Tā var tikt izveidota publiski (analoģiski spēles uzstādījumiem);
\item Lomas darbība - vienai vai vairākām spēles lomas piemītošās spēles darbības apraksts un spēlei specifiskie atribūti(/-s);
\item Lomas trūkums - vienai vai vairākām spēles lomas piemītošā trūkuma apraksts;
\item Spēlētājs - vienai virtuālai spēles istabai piederošais spēlētājs. Tam piemīt viena spēles loma un var būt vairākas spēles gaitā veiktās lomai atbilstošās darbības;
\item Īsziņa - virtuālās istabas terzēšanā izveidotā īsziņa, kas tiek saistīta ar vienu spēlētāju un var atbildēt uz citu īsziņu izveides laikā;
\item Spēles notikums - spēlē notiekošie notikumi, kā spēles fāzes maiņa, izbalsošanas, slepkavības u.c. .
\item Spēles vituāla istaba - vienas gaidāmas, tekošās vai pagātnē notikušas spēles, kam piemīt spēlētāji, spēles uzstādījumi, spēles notiukumi, izveidotājs (lietotājs maskas lietotāja grupā);
\item Paziņojums - universāla (izmantojama iekš un ārpus spēles istabas) paziņojuma dati;
\end{itemize}
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{./src/requirements/img/conceptual_model.png}
\caption{Datu bāzes konceptuālais ER modelis}
\label{fig:conceptual_model}
\end{figure}

View File

@ -0,0 +1,78 @@
\subsubsection{Funkciju sadalījums moduļos}
\begin{tabularx}{\linewidth}{|p{2cm}|X|p{2.7cm}|X|}
\caption{Funkciju sadalījums pa moduļiem} \label{tab:function_modules} \\
\hline
\textbf{Modulis} & \textbf{Funkcija} & \textbf{Identifikators} & \textbf{Lietotāja kategorija} \\
\hline
\endfirsthead
\multicolumn{4}{c}%
\raggedright{{\textit{\thetable{} \tablename} \textbf{turpinājums no iepriekšējās lapas}}} \\
\hline
\textbf{Modulis} & \textbf{Funkcija} & \textbf{Identifikators} & \textbf{Lietotāja kategorija} \\
\hline
\endhead
\hline \multicolumn{4}{|r|}{{Turpinājums nākamajā lapā}} \\ \hline
\endfoot
\hline
\endlastfoot
% Table data here
\setcounter{rownum}{0}
\multirow{10}{2cm}{Lietotāja modulis} & Lietotāja pieteikšanās & \stepcounter{rownum}LMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Lietotāja konta apstiprināšana & \stepcounter{rownum}LMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Lietotāja reģistrācija & \stepcounter{rownum}LMF\therownum & Nereģistrēts lietotājs \\ \cline{2-4}
& Lietotāja konta rediģēšana & \stepcounter{rownum}LMF\therownum & Reģistrēts lietotājs, Maksas lietotājs, Administrātors \\ \cline{2-4}
& Lietotāja konta rediģēšana & \stepcounter{rownum}LMF\therownum & Administrātors \\ \cline{2-4}
& Lietotāja konta bloķēšana & \stepcounter{rownum}LMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Lietotāja konta atteikšanās & \stepcounter{rownum}LMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Sava lietotāja konta datu pārskats & \stepcounter{rownum}LMF\therownum & Reģistrēts lietotājs, Maksas lietotājs, Administrators \\ \cline{2-4}
& Lietotāja datu pārskats & \stepcounter{rownum}LMF\therownum & Administrators \\ \cline{2-4}
& Lietotāja konta dzēšāna & \stepcounter{rownum}LMF\therownum & Administrators \\ \hline
\setcounter{rownum}{0}
\multirow{4}{2cm}{Maksas abonamentu modulis} & Maksas par abonementu pieteikuma izveide & \stepcounter{rownum}MAMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Maksas abonementu uzskaite & \stepcounter{rownum}MAMF\therownum & Maksas lietotājs \\ \cline{2-4}
& Maksas abonementa detaļu ieguve & \stepcounter{rownum}MAMF\therownum & Maksas lietotājs \\ \cline{2-4}
& Maksas abonementa atcelšana & \stepcounter{rownum}MAMF\therownum & Maksas lietotājs \\ \hline
\setcounter{rownum}{0}
\multirow{5}{2cm}{Tērzētavas modulis} & Jaunas īsziņas izveidošana & \stepcounter{rownum}TMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Īsziņas izdzēšana & \stepcounter{rownum}TMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Īsziņu uzskaite & \stepcounter{rownum}TMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Savu īsziņu redigēšana & \stepcounter{rownum}TMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Īsziņu dzēšana & \stepcounter{rownum}TMF\therownum & Administrators \\ \hline
\setcounter{rownum}{0}
\multirow{14}{2cm}{Spēles istabas modulis} & Jaunas spēles istabas izveide & \stepcounter{rownum}SMF\therownum & Maksas lietotājs \\ \cline{2-4}
& Spēles sākuma pieteikums & \stepcounter{rownum}SMF\therownum & Maksas lietotājs, Administrators \\ \cline{2-4}
& Spēles darbības veikšana & \stepcounter{rownum}SMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Virtuālās istabas stāvokļa maiņa & \stepcounter{rownum}SMF\therownum & Administrators \\ \cline{2-4}
& Spēlētāja izslēgšana & \stepcounter{rownum}SMF\therownum & Administrators \\ \cline{2-4}
& Spēles stāvokļa iegūšana & \stepcounter{rownum}SMF\therownum & Sistēma, Administrators \\ \cline{2-4}
& Virtuālās istabas spēlētāju iegūšana & \stepcounter{rownum}SMF\therownum & Administrators \\ \cline{2-4}
& Nākamā spēles stāvokļa noteikšana & \stepcounter{rownum}SMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Spēlētāja pievienošana & \stepcounter{rownum}SMF\therownum & Administrators \\ \cline{2-4}
& Spēlētāja lomas iegūšana & \stepcounter{rownum}SMF\therownum & Sistēma \\ \cline{2-4}
& Spēlētāja stāvokļa iegūšana & \stepcounter{rownum}SMF\therownum & Sistēma \\ \hline
\setcounter{rownum}{0}
\multirow{9}{2cm}{Spēles uzstādījumu modulis} & Jaunas lomas izveidošana & \stepcounter{rownum}SUMF\therownum & Maksas lietotājs, Administrators \\ \cline{2-4}
& Lomu uzskaite & \stepcounter{rownum}SUMF\therownum & Reģistrēts lietotājs, Adminitrators \\ \cline{2-4}
& Lomas darbību uzskaite & \stepcounter{rownum}SUMF\therownum & Reģistrēts lietotājs \\ \cline{2-4}
& Lomas rediģēšana & \stepcounter{rownum}SUMF\therownum & Maksas lietotājs, Adminitrators \\ \cline{2-4}
& Lomas dzēšana & \stepcounter{rownum}SUMF\therownum & Maksas lietotājs, Adminitrators \\ \cline{2-4}
& Jauna spēles uzstādījuma izveidošana & \stepcounter{rownum}SUMF\therownum & Maksas lietotājs, Adminitrators \\ \cline{2-4}
& Spēles uzstādījuma dzēšana & \stepcounter{rownum}SUMF\therownum & Adminitrators \\ \cline{2-4}
& Spēles uzstādījuma deaktivizēšana & \stepcounter{rownum}SUMF\therownum & Maksas lietotājs, Adminitrators \\ \cline{2-4}
& Spēles uzstādījuma lomu iegūšana & \stepcounter{rownum}SUMF\therownum & Maksas lietotājs \\ \hline
\setcounter{rownum}{0}
\parbox{2cm}{Saziņas modulis} & Apstiprinājuma ziņas izsūtīšana & \stepcounter{rownum}[ID]\therownum & Sistēma \\ \hline
% ... continue for each row
\end{tabularx}
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{./src/requirements/img/DPD_1.png}
\caption{1. līmeņa DPD}
\label{fig:dpd_1}
\end{figure}

View File

@ -0,0 +1,39 @@
\subsubsection{Vispārīgi paziņojumi}
\begin{tabularx}{\linewidth}{|p{2.5cm}|X|p{2.7cm}|X|}
\caption{Vispārīgi paziņojumi} \label{tab:general_notices} \\
\hline
\textbf{Paziņojumu grupa} & \textbf{Paziņojums} & \textbf{Identifikators} & \textbf{Raksturojums} \\
\hline
\endfirsthead
\multicolumn{4}{c}%
{{\thetable{} \tablename: turpinājums no iepriekšējās lapas}} \\
\hline
\textbf{Paziņojumu grupa} & \textbf{Paziņojums} & \textbf{Identifikators} & \textbf{Raksturojums} \\
\hline
\endhead
\hline \multicolumn{4}{|r|}{{Turpinājums nākamajā lapā}} \\ \hline
\endfoot
\hline
\endlastfoot
% Table data here
\setcounter{rownum}{0}
\multirow{3}{2.5cm}{Vispārīgi kļūdu paziņojumi} & ``Iesniegtā datne pārsniedz maksimālo pieļaujamo datnes lielumu. Lūdzu, mēģiniet vēlreiz ar mazāka izmēra datni!'' & \stepcounter{rownum}VKP\therownum & Iesniegtā datne pārsniedz maksimālo datnes izmēru. \\ \cline{2-4}
& ``Jūsu pieprasījums spēļu sistēmai nav korekts. Lūdzu, mēģiniet vēlreiz!'' & \stepcounter{rownum}VKP\therownum & \dots \\ \cline{2-4}
& ``Ir notikusi sistēmas iekšējā ķļūme. Lūdzu, mēģiniet vēlreiz!'' & \stepcounter{rownum}VKP\therownum & \dots \\ \hline
\setcounter{rownum}{0}
\multirow{5}{2.5cm}{Vispārīgi apstiprinājumu paziņojumi} & ``[Entitātes nosaukums] ir veiksmīgi izveidota(/-s)!'' & \stepcounter{rownum}VAP\therownum & Lietotājs ir veiksmīgi izveidojis entitāti. \\ \cline{2-4}
& ``[Entitātes nosaukums] ir veiksmīgi rediģēta(/-s)!'' & \stepcounter{rownum}VAP\therownum & Lietotājs ir veiksmīgi rediģējis entitāti. \\ \cline{2-4}
& ``[Entitātes nosaukums] ir veiksmīgi rediģēta(/-s)!'' & \stepcounter{rownum}VAP\therownum & Lietotājs ir veiksmīgi rediģējis entitāti. \\ \cline{2-4}
& ``[Entitātes nosaukums] ir veiksmīgi rediģēta(/-s)!'' & \stepcounter{rownum}VAP\therownum & Lietotājs ir veiksmīgi rediģējis entitāti. \\ \cline{2-4}
& ``[Entitātes nosaukums] ir veiksmīgi rediģēta(/-s)!'' & \stepcounter{rownum}VAP\therownum & Lietotājs ir veiksmīgi rediģējis entitāti. \\ \hline
\setcounter{rownum}{0}
\parbox{2.5cm}{Vispārīgi informācijas paziņojumi} & & \stepcounter{rownum}VIP\therownum & \\ \hline
\setcounter{rownum}{0}
\parbox{2.5cm}{Vispārīgi spēles paziņojumi??} & & \stepcounter{rownum}VSP\therownum & \\ \hline
% ... continue for each row
\end{tabularx}

View File

@ -0,0 +1,10 @@
\subsection{Funkcionālās prasības}
\input{./src/requirements/functional-requirements/general-notices.tex}
\subsubsection{Citas apakšnodaļas ar vispārīgu lietu aprakstu}
\input{./src/requirements/functional-requirements/function-modules.tex}
\subsubsection{Modulis A}
[2. Līmeņa DPD modelis]
\subsubsection{Pārējie Modulis X}
[2. Līmeņa DPD modelis]

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 KiB

View File

@ -0,0 +1,4 @@
\section{Programmatūras prasību specifikācija}
\input{./src/requirements/conceptual-description.tex}
\input{./src/requirements/functional-requirements/index.tex}
\input{./src/requirements/nonfunctional-requirements/index.tex}

View File

@ -0,0 +1,30 @@
\subsubsection{Projekta ierobežojumi}
\paragraph{Atbilstība standartiem}
\textit{(some text, but don't know what exactly)}
\subparagraph{Datu privātuma atbilstība}
Platformai ir jāatbilst datu aizsardzības noteikumiem, tostarp vispārīgajai datu aizsardzības regulai (General Data Protection Regulation - GDPR).
Ir būtiski noteikt visaptverošu datu apstrādes praksi, lai nodrošinātu lietotāju datu konfidencialitāti un drošību.
\subparagraph{Pieejamības standarti}
Lai nodrošinātu vienlīdzīgu piekļuvi visiem lietotājiem, platformai jāatbilst tīmekļa satura pieejamības vadlīnijām (Web Content Accessibility Guidelines - WCAG) attiecībā uz tīmekļa pieejamību.
Jāapsver lokalizācijas un iekļaušanas iespējas, lai pielāgotos dažādām auditorijām.
\subparagraph{Intelektuālā īpašuma tiesības}
Projektā jāievēro autortiesību un preču zīmju likumi.
Lai izvairītos no juridiskām problēmām, ir jāsaņem atbilstošas atļaujas un licences par spēļu aktīviem \textit{(assets)}.
\subparagraph{Drošības standarti}
Jāievieš stingri drošības pasākumi, ievērojot nozares paraugpraksi, piemēram, atvērto lietojumprogrammu drošības projektu visā pasaulē (Open Worldwide Application Security Project - OWASP), lai pasargātu no bieži sastopamām tīmekļa ievainojamībām.
Datu aizsardzībai jāizmanto šifrēšanas protokoli.
\paragraph{Aparatūras ierobežojumi}
\textit{(some text, but don't know what exactly)}
\subparagraph{Atbalstītās ierīces}
Platformai jābūt saderīgai ar dažādām ierīcēm, tostarp galddatoriem, klēpjdatoriem, viedtālruņiem un planšetdatoriem.
Lai nodrošinātu netraucētu spēlēšanu, jānosaka minimālās aparatūras prasības.
\subparagraph{Serveris un mitināšana}
\subparagraph{Tīkla veiktspēja}

View File

@ -0,0 +1,9 @@
\subsubsection{Ārējās saskarnes prasības}
\paragraph{Lietotāja saskarne}
\paragraph{Apratūras saskarne}
\paragraph{Programmatūras saskarne}
\paragraph{Sakaru saskarne}

View File

@ -0,0 +1,6 @@
\subsection{Nefunkcionālās prasības}
\input{./src/requirements/nonfunctional-requirements/performance-requirements.tex}
\input{./src/requirements/nonfunctional-requirements/safety-requirements.tex}
\input{./src/requirements/nonfunctional-requirements/usability.tex}
\input{./src/requirements/nonfunctional-requirements/constraints.tex}
\input{./src/requirements/nonfunctional-requirements/external-requirements.tex}

View File

@ -0,0 +1,7 @@
\subsubsection{Veiktspējas prasības}
\begin{itemize}
\item Sistēmai ir jānodrošina, ka 95\% no dienā veiktajiem pieprasījumiem tiek izpildīti uz servera ne ilgāk kā 5 sekundēs.
\item Jānodrošina normāla sistēmas darība vismaz 500 lietotājiem paralēli.
\item Datu saglabāšanai jāizpildās maksimums 3 sekunžu laikā.
\item Prasības neattiecas uz tīkla veiktspēju.
\end{itemize}

View File

@ -0,0 +1,73 @@
\subsubsection{Drošības prasības}
\begin{enumerate}
\item Autentifikācija
\begin{itemize}
\item Jāizmanto daudzfaktoru autentifikāciju (MFA).
\item Paroles tiek glabātas šifrētā formātā, pirms šifrēšanas, tām pievieno sāli.
\item Jāizmanto drošus paroles atiestatīšanas procesus.
\end{itemize}
\item Pilnvarošana
\begin{itemize}
\item Uz lomu bāzēta piekļuve.
\item Pilnvaru pārbaude gan priekšgala saskarnē, gan aizmugursistēmā.
\end{itemize}
\item Datu aizsardzība
\begin{itemize}
\item Datu šifrēšana glabājot un sūtot.
\item Sistēmai nav jāglabā dati, kas nav nepieciešami sistēmas darbībai.
\end{itemize}
\item Sesiju pārvalde
\begin{itemize}
\item \textit{Izmanto tikai HTTP sīkdatnes.}
\item \textit{Use secure and http-only cookies.}
\item Seisijas noildzes izmantošana.
\end{itemize}
\item Input Validation \& Sanitization
\begin{itemize}
\item SQL injekciju, komandu injekciju un citu injekciju aizsardzība.
\item \textit{Protect against SQL injection, command injection, and other injection attacks.}
\item \textit{Implement proper validation for all user inputs and any data received from external systems.}
\end{itemize}
\item Izvades iekodēšana
\begin{itemize}
\item Aizsardzība pret starpvietņu-skriptošanas (XSS) uzbrukumiem.
\end{itemize}
\item Starpvietņu pieprasījumu (CSRF) aizsardzība
\begin{itemize}
\item Kļūdu paziņojumi neatklāj sensitīvu informāciju.
\item Kļūdu paziņojumi, kas ir pielāgoti lietotāju grupai.
\end{itemize}
\item Error Handling
\begin{itemize}
\item CSRF marķiera izmantošana.
\end{itemize}
\item Server \& Infrastructure Security
\begin{itemize}
\item Vides \textit{(environment)} izolēšana.
\end{itemize}
\item API Security
\begin{itemize}
\item API marķieru izmantošana.
\item API pieprasījumu ierobežojums.
\item API pieprasījumu ievades validācija un sanitizēšana.
\end{itemize}
\item Datņu augšuplādēšana
\begin{itemize}
\item \textit{Ensure uploaded files are scanned for malware.}
\item \textit{Validate and sanitize the file type and content.}
\item \textit{Store files in a secure manner, avoiding direct execution paths.}
\end{itemize}
\item Backup and Disaster Recovery
\begin{itemize}
\item \textit{The system shall support regular data backups.}
\item \textit{There should be a procedure for disaster recovery.}
\end{itemize}
\item Monitoring \& Logging
\begin{itemize}
\item \textit{Implement real-time monitoring and alerting for suspicious activities - implement a canary bird.}
\item \textit{Maintain logs securely and regularly review them.}
\item \textit{Save log backups on a remote server.}
\item \textit{Ensure logs don't store sensitive information.}
\end{itemize}
\end{enumerate}

View File

@ -0,0 +1,11 @@
\subsubsection{Izmantojamība}
\begin{itemize}
\item 90\% jaunu lietotāju jāspēj lietot visas tiem pieejamās funkcijas bez palīdzības.
\item Sistēmai jāatbalsta responsīvs dizains - jāpielāgojas dažādiem ekrānu izmēriem.
\item Saskarnēm jābūt adaptētām gan priekš ainavas, gan portreta orientācijas.
\item Teksta fonta izmēram datoru ekrāniem jābūt vismaz 14 pikseļi, lai nodrošinātu labu salasāmību.
\item Visām funkcijām palīdzības ziņojumi pieejami angļu valodā.
\item Sistēmai ir jānodrošina, ka lietotājam pirms datu dzēšanas tiek pieprasīts darbību apstiprināt.
\item Izveidota piekļuves programmsaskarnes (Application Programming Interface - API) integrācija ar ārējiem pakalpojumiem, piemēram, maksājumu pakalpojumiem.
\item Nodrošināta starpplatformu savietojamība, ļaujot lietotājiem piekļūt platformai no dažādām tīmekļa pārlūkprogrammām un operētājsistēmām.
\end{itemize}

View File

@ -6,9 +6,9 @@
\MakeUppercase{\large Datorikas Fakultāte}
\vfill
\textbf{\Large Galda spēle}
\textbf{\Large Tiešsaistes spēles sistēmas ``MAFIJA''}
\textbf{\Large programmatūras prasību specifikācija}
\textbf{\MakeUppercase{\Large Mafija}}
\vspace{1cm}
\MakeUppercase{Praktiskais darbs programminženierijā}