% .tex-tiedosto projektin dokumenttien latomiseksi.

% Kirjoitelmaluokka, tässä käytetään projektien projdoc-luokkaa.
\documentclass[twoside]{projdoc}

\usepackage{makecell} % taulukkoon monta riviä

\project{Groundhog}

% Luottamuksellisuus: käytä termiä 'Luottamuksellinen' tai 'Julkinen'
\publicity{Julkinen}

% Versionumero: numerointikäytäntö on projektikohtainen
\version{1.0.0}

% Päivämäärä: ylikirjoittaa automaattisen päiväyksen
\date{24.8.2021}

% Dokumentin nimi
\title{Vaatimusmäärittely}

\def \jobname {vaatimusmaarittely} % tämän tiedoston nimi ilman .tex

% Tekijät: huomaa aakkosjärjestys sukunimen mukaan
\author{Iiro Iivanainen}{Harri Linna}{Jere Pakkanen}{Riikka Vilavaara}
% Puhelinnumerot: tekijöitä vastaava järjestys!
\authorphones{}{}{}{}
% Sähköpostiosoitteet: tekijöitä vastaava järestys!
\authoremails{iiro.h.iivanainen@student.jyu.fi}{harri.s.linna@student.jyu.fi}{jere.j.pakkanen@student.jyu.fi}{riikka.k.vilavaara@student.jyu.fi}
% Etu- ja sukunimen alkukirjaimet: tekijöitä vastaava järjestys!
\authorinitials{II}{HL}{JP}{RV}

% Tiivistelmä dokumentista: tämä ei siis ole tiivistelmä projektista,
% vaan tämän ko. dokumentin tarkoituksesta. 
\docabstract{Groundhog-projektissa toteutetulla ohjelmistolla voidaan yhdistää, hallita ja visualisoida erityyppisiä geologian näytteiden tutkimusdatoja. Dokumentissa kuvataan projektissa kehitettävän tietojärjestelmän toiminnalliset vaatimukset sekä niiden prioriteetit ja tilat.}

% Tiivistelmä projektista
\projectabstract{Groundhog-projekti suunnittelee ja toteuttaa Geologian tutkimuskeskukselle (GTK)
multimodaalisen tutkimusdatan hallintaohjelmiston kevätlukukaudella 2021.}

% Avainsanat: dokumentin sisältöön liittyviä olennaisia asiasanoja: aakkosjärjestys, ensimmäinen sana isolla alkukirjaimella ja piste loppuun.
\keywords{Prioriteetti, tila, vaatimukset, vaatimusmäärittely, tomografia, 3D-kartta.}

% Vaatimuslaskuri
\newcommand{\kokonaisuusvaihtuu}{\stepcounter{kokonaislaskuri}\setcounter{vaatimuslaskuri}{1}}
\newcommand{\laskuri}{\arabic{kokonaislaskuri}.\arabic{vaatimuslaskuri}.\stepcounter{vaatimuslaskuri}}

% Varsinainen tulosteessa näkyvä ladonta alkaa
\begin{document}

% Tämä latoo versiohistorialle ympäristön, sen alapuolelle ladotaan
% versiohistoriataulukko. Esimerkin vuoksi tehty. 
\versionhistory

%\begin{tabular}{|c|r|p{7cm}|p{3.5cm}|}
\begin{tabular}{|c|l|p{10.5cm}|p{1.2cm}|}
\hline
\textbf{Versio} & \textbf{Päivämäärä} & \textbf{Muutokset} & \textbf{Tekijät} \\
\hline \hline
0.1.0 & 23.2.2021 & Tehtiin dokumentin pohja ja listattiin alustavat vaatimukset. & JP\\
\hline
0.1.1 & 3.3.2021 & Muutettiin prioriteettien luokitusta, lisättiin vaatimuskategorioita sekä vaatimuksia. & JP\\
\hline
0.2.0 & 14.3.2021 & Lisättiin selitys \textbf{TARKENNETTAVA}-merkinnästä sekä muokattiin vaatimuksia. & HL, JP, RV ja II\\
\hline
0.2.1 & 25.3.2021 & Tarkennettiin ja lisättiin vaatimuksia sekä muokattiin vaatimusten luokkia. Korjattiin kirjoitusasua. & JP\\
\hline
0.2.2 & 6.4.2021 & Lisättiin palavereissa esille tulleita vaatimuksia sekä poistettiin turhia vaatimuksia. Lisättiin vaatimusten toteutumisen ja yhteenvedon luvut. & JP\\
\hline
0.3.0 & 9.4.2021 & Lisättiin termilista, poistettiin yhteneviä tai päällekkäisiä vaatimuksia ja päivitettiin vaatimusten tiloja. & JP\\
\hline
0.3.1 & 26.4.2021 & Päivitettiin termilistaa. & RV\\
\hline
0.4.0 & 16.5.2021 & Päivitettiin vaatimusten tiloja, lisättiin uusia vaatimuksia, tarkennettiin ja jaettiin vanhoja vaatimuksia sekä paranneltiin ulkoasua. & JP\\
\hline
%0.4.1 & 1.6.2021 & Lisättiin kaksi käyttöliittymää koskenutta vaatimusta 11.11–12. Kirjoitettiin tekstikappale vaatimusten toteutumisesta. Tarkennettiin kolmea vaatimusta 11.1 ja 13.1–2. & HL\\ 
0.4.1 & 1.6.2021 & Lisättiin ja tarkistettiin vaatimuksia. & HL\\ 
\hline
0.4.2 & 2.6.2021 & Päivitettiin termilistaa. & HL\\
\hline
0.4.3 & 4.6.2021 & Päivitettiin prioriteetteja ja tiloja. & JP\\
\hline
%0.4.4 & 9.6.2021 & Lisätty tai muokattu vaatimuksia 4.4, 5.5, 5.8, 6.2, 9.8, 11.12–18, 16.5. Muutokset koskivat palaverien 7–10 eli aikavälin 15.4.2021–27.5.2021 pöytäkirjojen päätöksiä. Muutosten yhteyteen lisättiin perustelut kommenteissa. Kirjoitettiin selvitystä vaatimusten toteutumisesta sekä lisättiin listaukset toteutettavista ja toteutumattomista vaatimuksista. Kuitattiin vaatimukset 10.9, 10.11 tehtävienhallinnasta. & HL\\
0.4.4 & 9.6.2021 & Lisättiin ja muokattiin vaatimuksia palaverien 7--10 perusteella. & HL\\
\hline
0.4.5 & 11.6.2021 & Lisättiin vaatimus 11.19 ja päivitettiin toteutettujen vaatimusten tilat. & HL\\
\hline
0.4.6 & 16.6.2021 & Päivitettiin termilistaa. & HL\\
\hline
0.5.0 & 18.6.2021 & Lisättiin vaatimuksia palautteen mukaan ja kirjoitettiin vaatimusten toteutumisesta. & JP\\
\hline
0.5.1 & 6.7.2021 & Asemoitiin kansilehti uudelleen. & HL\\
\hline
0.5.2 & 7.7.2021 & Siirrettiin tietoa projektista dokumenttiluokkaan ja päivitettiin termilistaa. & HL\\
\hline
0.5.3 & 11.7.2021 & Päivitettiin termilistaa, lisättiin vaatimuskategorioita sekä päivitettiin vaatimusten tiloja.  & JP\\
\hline
\end{tabular}

\begin{tabular}{|c|l|p{10.5cm}|p{1.2cm}|}
\hline
\textbf{Versio} & \textbf{Päivämäärä} & \textbf{Muutokset} & \textbf{Tekijät} \\
\hline \hline
0.6.0 & 13.7.2021 & Tehtiin yhteenveto, päivitettiin tiloja ja korjattiin kirjoitusvirheitä.  & HL ja JP\\
\hline
1.0.0 & 24.8.2021 & Muokattiin ulko- ja kirjoitusasua. Hyväksytty versio julkistettiin.  & JP\\
\hline
\end{tabular}


% \projectinfo latoo ympäristön projektin tiivistelmälle, joka on 
% projektikohtainen.
% Projektin tiivistelmä ja tekijöiden tiedot ladotaan automaattisesti sivun
% alkuun. Eli lisättävä projektiorganisaation tiedot muiden kuin tekijäiden
% osalta sekä tarvittavat yhteystiedot. Alla tämä on tehty esimerkin vuoksi.
\projectinfo

%----------------------------------------------------------------------------
% \mainmatter latoo automaattisesti sisällysluettelon ym. alkusivut, ja 
%% sen jälkeen alkaa dokumentin sisällysluettelossa näkyvät luvut.
\mainmatter

% \chapter{Pääluvun nimi} aloittaa pääluvun, \section{Alaluvun nimi} alaluvun,
% ja \subsection{Ala-alaluvun nimi} ala-alaluvun.

\chapter{Johdanto}

% Mielellään korkeintaan yksi sivu.
% \begin{itemize}
% \item  Asiaan johdattelu historian, kokonaisuuden ja/tai aihealueen kautta.
% \item  Projektiorganisaation osapuolet ja tehtävät.
% \item  Projektin erityispiirteet ja lähestymistapa.
% \item  Dokumentin tarkoitus. Voi olla osa jompaa kumpaa seuraavista kappaleista.
% \item Muiden dokumenttiin liittyvien tulosten (dokumentit, sovellus ja materiaalit) maininta.
% \item Lukujen sisällön esittely.
% \end{itemize}

Groundhog-projekti\footnote{Groundhog Daytä vietetään Kanadassa vuosittain 2. helmikuuta.} kehitti Geologian tutkimuskeskukselle multimodaalisen tutkimusdatan hallintaohjelmiston kevätlukukaudella 2021. Projektin jäsenet kehittivät ohjelmiston osana Jyväskylän yliopiston informaatioteknologian tiedekunnan Sovellusprojekti-nimistä projektiopintojaksoa.

Dokumentissa kuvataan Groundhog-projektissa toteutetulle ohjelmistolle määritellyt vaatimukset ja rajoitteet. Tämän lisäksi dokumentti sisältää tiedon kyseisten vaatimusten prioriteetista ja tilasta projektin päättyessä. Projektin taustoja, sekä toteutettavan tietojärjestelmän tavoitteita ja rakennetta kuvataan projektiraportissa \cite{projektiraportti}. Toteutettua sovellusta kuvataan sovellusraportissa \cite{sovellusraportti} ja sovelluksen toimintaa kuvataan käyttöohjeessa \cite{kayttoohje}. Testaussuunnitelmassa \cite{testaussuunnitelma} kuvataan ohjelmalle toteutettua testausta ja suoritettujen testauskertojen tuloksia kuvataan testausraporteissa \cite{ testausraportti1, testausraportti2}.

Luvussa 2 kuvataan dokumentissa käytettävät termit. Luvussa 3 esitellään vaatimusten prioriteetit ja tilat sekä niiden tulkintaohjeet. Luvut 4--16 sisältävät ominaisuuskokonaisuuksittain tietojärjestelmän toiminnalliset vaatimukset. Luvussa 17 tarkastellaan, miten projektissa kehitetty sovellus täyttää sille asetetut vaatimukset.

\chapter{Termit}
\termitIlmanKehitysvalineita

\chapter{Vaatimusten prioriteetit ja tilat}
Kuhunkin vaatimukseen kirjattava prioriteetti tulee olla yksi seuraavista:
\begin{Ventry}{Sovellusprojekti}
    \item [Pakollinen] vaatimus on välttämätön sovelluksen toiminnan kannalta.
    \item [Tärkeä] vaatimus tuo huomattavaa lisäarvoa käyttäjille.
    \item [Valinnainen] vaatimus tuo vähän lisäarvoa käyttäjille tai se on hoidettavissa muulla tavalla. 
    \item [Idea] vaatimuksen todellinen arvo ei ole vielä tiedossa.
    \item [Ei toteuteta] vaatimus on todettu tarpeettomaksi
\end{Ventry}
Kuhunkin vaatimukseen kirjattava tila tulee olla yksi seuraavista:
\begin{Ventry}{Sovellusprojekti}
    \item [Hyväksytty] vaatimus on toteutettu, testattu ja hyväksytty.
    \item [Testattu] vaatimus on toteutettu ja testattu.
    \item [Toteutettu] vaatimus on toteutettu tietojärjestelmään.
    \item [Keskeneräinen] vaatimus on suunniteltu, mutta toteutuksen osalta sitä ei ole vielä saatu
    valmiiksi.
    \item [Suunnittelussa] oleva vaatimus on suunnitteluvaiheessa, eikä sen toteutusta ole vielä aloitettu.
    \item [Toteuttamatta] olevaa vaatimusta ei ole aloitettu.
\end{Ventry}
Jos vaatimuksen kuvauksessa lukee \textbf{TARKENNETTAVA}, se tarkoittaa, että vaatimuksen kuvaus on heikko tai epämääräinen. Kyseiset vaatimukset ovat kumminkin tulleet jossain muodossa esille sovellusta suunniteltaessa, ja tästä syystä ne ovat kirjattu vaatimuksiin. Kyseisiä vaatimuksia tulee tarkentaa vaatimusmäärittelyn tulevissa versioissa.
%Asetetaan vaatimuksien laskurit
\newcounter{kokonaislaskuri}
\setcounter{kokonaislaskuri}{4}

\newcounter{vaatimuslaskuri}
\setcounter{vaatimuslaskuri}{1}

%\renewcommand{\descriptionlabel}{\hspace{\labelsep}\stepcounter{vaatimuslaskuri}\arabic{kokonaislaskuri}.\arabic{vaatimuslaskuri}.}


\chapter{Karttatiedostojen lukuvaatimukset}


\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
 \laskuri & Sovellus pystyy lukemaan \texttt{3D-tiff}-tiedostoja. & Tärkeä & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy lukemaan \texttt{image sequence}-tiedostoja \texttt{tif}-muodossa. & Pakollinen & Testattu \\
 \hline
 \laskuri & Sovellus pystyy lukemaan \texttt{image sequence}-tiedostoja \texttt{png}-muodossa. & Tärkeä & Testattu \\
 \hline
 % Päätös 18.5.2021: 32-bittisten Raw-tiedostojen voi olettaa olevan floating point -formaatissa.
 % Päätös 8.4.2021: Sovelluksen ei tarvitse tukea Raw-tiedostoja, joissa on header alussa.
 \laskuri & Sovellus pystyy lukemaan 8-, 16- ja 32-bittisiä \texttt{raw}-tiedostoja, joiden tavujärjestestys on joko big endian tai little endian. & Pakollinen & Testattu \\
 \hline
 \laskuri & Sovellus pyrkii lukemaan tiedostonimestä dimensiot sekä bittisyvyyden lukiessaan \texttt{raw}-tiedostoja. & Tärkeä & Toteuttamatta \\
 \hline
 % Päätös 15.4.2021:  64-bittisten kuvien lukeminen ohjelmalla ei ole korkealla prioriteetilla.
 \laskuri & Sovellus pystyy lukemaan 64-bittisiä kuvia. & Valinnainen & Toteuttamatta\\
 \hline
\end{tabular}



\chapter{Karttatiedostojen näyttämisen vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus pystyy näyttämään kolmiulotteisesta karttatiedostosta kaksiulotteisen kuvan käyttäjän määrittelemästä syvyydestä X-, Y- ja Z-pääakselien vastaisista suunnista. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy näyttämään kolmiulotteisesta karttatiedostosta kaksiulotteisen kuvan käyttäjän määrittelemästä syvyydestä vapaavalintaisesta kuvakulmasta. & Valinnainen & Toteuttamatta \\ 
 \hline
 \laskuri & Käyttäjä voi valita vapaavalintaisen kuvakulman syöttämällä numeeriset arvot. & Valinnainen & Toteuttamatta \\
 \hline
  \laskuri & Käyttäjä voi määrittää vapaavalintaisen kuvakulman hiiren tai ohjaimen avulla. & Valinnainen & Toteuttamatta \\
 \hline
 % Palaverissa 8.6.2021 pyydettiin lisäämään liukusäädin.
 \laskuri & Käyttäjä pystyy sovelluksessa vaihtamaan karttatiedoston kaksiulotteisten kuvien näytettävää harmaasävyskaalaa syöttämällä numeerisen arvon. & Pakollinen & Testattu \\
 \hline
\laskuri & Sovelluksessa pystyy vaihtamaan karttatiedoston kaksiulotteisten kuvien näytettävää harmaasävyskaalaa liukusäätimen avulla. & Pakollinen & Testattu \\
 \hline
 \laskuri & Käyttäjä pystyy luomaan sovelluksella automaattisesti karttatiedoston perusteella tehdyn kolmiulotteisen mallin. & Ei toteuteta & Toteuttamatta \\
 \hline
 \laskuri & Sovellus pystyy näyttämään käyttäjälle sovelluksella luodun kolmiulotteisen mallin, joka kuvaa karttatiedoston pintarakennetta. & Ei toteuteta & Toteuttamatta \\
 \hline
 % Päätös 27.5.2021: Karttakuvan tarkentamista varten ohjelmaan lisätään liukusäädin.
 \laskuri & Sovellus pystyy tarkentamaan karttatiedostosta otetun leikkauskuvan näkymää käyttäjän määrittelemään kohtaan syöttämällä numeerisen arvon. & Tärkeä & Testattu \\
 \hline

\end{tabular}



\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
  \laskuri & Sovellus pystyy tarkentamaan karttatiedostosta otetun leikkauskuvan näkymää käyttäjän määrittelemään kohtaan liukusäätimen avulla. & Tärkeä & Testattu \\
 \hline
 \laskuri & Käyttäjä voi käyttöliittymästä valita esitettävän karttatiedoston siivun liukusäätimen avulla. & Tärkeä & Testattu \\
 \hline
 \laskuri & Käyttäjä voi käyttöliittymästä valita esitettävän karttatiedoston siivun nuolinäppäinten avulla. & Tärkeä & Testattu \\
 \hline
 \laskuri & Käyttäjä voi käyttöliittymästä valita esitettävän karttatiedoston siivun syöttämällä numeerisen arvon. & Tärkeä & Testattu \\
 \hline
\end{tabular}


\chapter{Liitedatan lukuvaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.7cm} | p{2.3cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus pystyy lukemaan taulukkomuotoista dataa \texttt{csv}-tiedostoista. & Pakollinen & Testattu \\ 
 \hline
 % Päätös 27.5.2021: CSV-tiedostoja lukiessa ohjelman täytyy pystyä valitsemaan oikea erotin.
 \laskuri & Sovellus pystyy valitsemaan oikean \texttt{csv}-tiedoston erottimen. & Pakollinen & Testattu\\
 \hline
 \laskuri & Sovellus pystyy lukemaan taulukkomuotoista dataa \texttt{xlsx}-tiedostoista. & Tärkeä & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy lukemaan tekstitiedostoja. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy lukemaan kuvatiedostoja \texttt{jpg}-muodossa. & Pakollinen & Testattu \\
 \hline
 \laskuri & Sovellus pystyy lukemaan kuvatiedostoja \texttt{tif}-muodossa. & Pakollinen & Testattu \\
 \hline
 \laskuri & Sovellus pystyy lukemaan kuvatiedostoja \texttt{png}-muodossa. & Pakollinen & Testattu \\
 \hline
\end{tabular}



\chapter{Liitedatan näyttämisen vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
 \laskuri & Sovellus pystyy listaamaan kaikki käsiteltävän näytteen liitedatat. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy näyttämään liitetyn tekstitiedoston sisällön. & Pakollinen & Testattu \\
 \hline
  \laskuri & Sovellus pystyy näyttämään liitetyn kuvan. & Pakollinen & Testattu\\ 
 \hline
   \laskuri & Sovellus pystyy näyttämään liitetyn taulukkotiedoston. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy näyttämään liitetyn datan liitoskohdan kaksiulotteisesta leikkauskuvasta. & Pakollinen & Testattu \\
 \hline
 \laskuri & Sovelluksessa pystytään muokkaamaan liitettyjä tekstitiedostoja. & Tärkeä & Toteuttamatta\\
 \hline
 \laskuri & Sovelluksessa pystytään muokkaamaan tekstitiedostojen ohella muitakin liitedatoja. & Ei toteuteta & Toteuttamatta \\
 \hline
 \laskuri & Sovellus pystyy näyttämään kaikkien liitettyjen datojen liitoskohdat kuvaa vastaavassa kolmiulotteisessa tilakartassa. & Valinnainen & Toteuttamatta \\
 \hline
  \laskuri & Siivun valitsemisessa käytettävä liukusäädin näyttää siivuille asetettujen datanliitoskohtien määrän lämpökartan tyylisesti. & Valinnainen & Toteutettu \\
 \hline
  \laskuri & Siivun valitsemisessa käytettävä liukusäädin näyttää siivuille asetettujen datanliitoskohtien määrän numeerisesti. & Valinnainen & Toteutettu \\
 \hline
\end{tabular}



\chapter{Metatietojen vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovelluksessa pystytään liittämään metatietoja käsiteltävään näytteeseen. & Tärkeä & Testattu \\
 \hline
 \laskuri & Sovelluksessa pystytään liittämään metatietoja karttatiedostoon liitettyihin datoihin. & Valinnainen & Testattu \\
 \hline
 \laskuri & Metatiedot sisältävät liitedatan lisänneen käyttäjän nimen. & Valinnainen & Toteutettu \\
 \hline
 \laskuri & Metatiedot sisältävät liitedatan lisäyspäivämäärän. & Valinnainen & Toteutettu \\
 \hline
 \laskuri & Metatiedot sisältävät dataan liitetyt karttakoordinaatit. & Valinnainen & Toteuttamatta \\
 \hline
 \laskuri & Metatiedot sisältävät tekstikentän kuvaukselle. & Valinnainen & Toteutettu \\
 \hline
 \laskuri & Sovellus pystyy näyttämään näytteeseen merkittyjä metatietoja. & Tärkeä & Testattu \\
 \hline
 \laskuri & Sovellus pystyy näyttämään liitettyihin datoihin merkittyjä metatietoja. & Tärkeä & Testattu \\
 \hline
 \laskuri & Sovelluksessa metatietoja pystytään poistamaan. & Tärkeä & Testattu \\
 \hline
 \laskuri & Sovelluksessa metatietoja pystytään muokkaamaan. & Tärkeä & Testattu \\
 \hline
\end{tabular}



\chapter{Karttatiedoston ja liitedatan hallinnan vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Käyttäjä pystyy yhdistämään liitettävää dataa karttatiedoston vapaavalintaiseen pistemäiseen kohtaan. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Käyttäjä pystyy yhdistämään liitettävää dataa karttatiedoston vapaavalintaiseen tasomaiseen kohtaan (sisältää myös suorat viivat, jotka ovat tason erikoistapauksia). & Tärkeä & Toteuttamatta\\ 
 \hline
 \laskuri & Käyttäjä pystyy yhdistämään liitettävää dataa karttatiedoston vapaavalintaiseen viivaan (esim. käyrään). & Valinnainen & Toteuttamatta \\ 
 \hline
 \laskuri & Käyttäjä pystyy yhdistämään liitettävää dataa karttatiedoston vapaavalintaiseen kolmiulotteiseen kohtaan. & Valinnainen & Toteuttamatta \\
 \hline
 \laskuri & Käyttäjä pystyy lataamaan ohjelmaan liitettävää dataa ilman valittua karttatiedostoa tai liitoskohtaa. & Tärkeä & Testattu \\
 \hline
 \laskuri & Käyttäjä pystyy poistamaan valitsemaansa liitedatan. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Yhteen liitoskohtaan pystytään liittämään useita eri datoja. & Valinnainen & Toteuttamatta \\
 \hline
 % Päätös 27.5.2021: Datan liittäminen useaan pisteeseen ei ole korkealla prioriteetilla
 \laskuri & Yksi data voi olla liitettynä useaan eri liitoskohtaan. & Valinnainen & Toteuttamatta \\
 %\laskuri & Yksi data voi olla liitettynä useaan eri liitoskohtaan. & Tärkeä & Keskeneräinen \\
 \hline
 \laskuri & Käyttäjä pystyy muuttamaan liitedatan liitoskohtaa. & Tärkeä & Toteuttamatta \\
 \hline
 \laskuri & Käyttäjä pystyy sovelluksella luomaan X- ja Y-pääakselien suuntaiset karttatiedostot Z-pääakselin suuntaisesta karttatiedostosta. & Tärkeä & Testattu \\
 \hline
  \laskuri & Muodostettujen X- ja Y-pääakselien suuntaiset karttatiedostot ovat samaa tiedostotyyppiä kuin alkuperäinen karttatiedosto. & Tärkeä & Toteutettu \\
 \hline
\end{tabular}



\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
 \laskuri & Käyttäjä voi valita muodostettujen X- ja Y-pääakselien suuntaisten karttatiedostojen tiedostotyypin itse. & Valinnainen & Toteuttamatta \\
 \hline
 \laskuri & Käyttäjä voi poistaa muodostetut X- ja Y-pääakselien suuntaiset karttatiedostot. & Tärkeä & Testattu \\
 \hline
\end{tabular}

 

\chapter{Sovelluksen tilan tallentamisen ja lataamisen vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Ohjelma tallentaa yhteen tiedostoon näytteeseen liittyvät tiedot lukuunottamatta kartta- ja liitetiedostoja. & Pakollinen & Testattu\\
 \hline
  \laskuri & Tallennettu tiedosto sisältää karttatiedoston hakemistopolun, liitedatojen hakemistopolut, liitedatojen liitospisteet sekä mahdolliset metatiedot. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Käyttäjä pystyy määrittelemään hakemiston, johon sovelluksessa avattu näyte tallennetaan. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy tallentamaan liitedatan liitoskohtien tiedot käsiteltävään näytteeseen. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy tallentamaan käsiteltävään näytteeseen ja liitetiedostoihin lisättyjä metatietoja. & Tärkeä & Testattu \\ 
 \hline
 \laskuri & Sovellus kysyy käyttäjältä liitedatan lisäämisen yhteydessä, kopioidaanko liitetty tiedosto tallennustiedoston hakemistopolkuun. & Valinnainen & Testattu\\ 
 \hline
 \laskuri & Sovellus pystyy avaamaan aiemmin tallennetun näytteen. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus pystyy lataamaan näytteen latauksen yhteydessä sovelluksen tilaan liittyviä ominaisuuksia, kuten ikkunoiden koon ja paikan. & Valinnainen & Toteuttamatta\\ 
 \hline
 \laskuri & Sovelluksella pystytään luomaan uusi näyte. & Pakollinen & Testattu \\ 
  \hline
 \laskuri & Käyttäjä voi päättää, säilyttääkö vai poistaako hän muodostetut X- ja Y-pääakselien suuntaiset karttatiedostot. & Pakollinen & Testattu \\ 
 \hline
 
 
\end{tabular}



\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
 \laskuri & Ohjelma osaa ladata muodostetut X- ja Y-pääakselien suuntaiset karttatiedostot, jos käyttäjä on valinnut säilyttää ne. & Tärkeä & Testattu \\ 
 \hline
 \laskuri & Ohjelma osaa ladata aiemmalla ohjelmaversiolla tallennetun näytteen, eli näytteet ovat taaksepäin yhteensopivia. & Valinnainen & Toteuttamatta\\ 
 \hline
 \laskuri & Tallentaessa ohjelma muuttaa tiedostopolut relatiiviseen muotoon. Tällöin näyte voidaan ladata tietokoneesta riippumattomana, jos tiedostojen polut pysyvät relatiivisesti samana suhteessa tallennustiedoston polkuun. & Tärkeä & Testattu \\ 
 \hline
\end{tabular}



\chapter{Sovelluksen käyttöliittymän vaatimukset}

\kokonaisuusvaihtuu
\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus tarjoaa käyttäjälle mahdollisuuden syöttää muokattavia numeerisia arvoja käsin. & Pakollinen & Toteutettu \\ 
 \hline
 \laskuri & Sovellus sisältää listan korkeintaan neljästä viimeksi avatusta näytetiedostosta, joista käyttäjä voi avata yhden. & Valinnainen & Toteuttamatta \\
 \hline
 \laskuri & Sovellus tarjoaa pikanäppäimet yleisesti käytettäviin toimintoihin. & Tärkeä & Toteutettu \\
 \hline
 \laskuri & Käyttöliittymä tarjoaa käyttäjälleen kaksi tilaa: yhden karttakuvien tarkastelemista varten ja toisen datan liitoskohtien muokkaamista varten. & Tärkeä & Toteutettu \\
 \hline
 \laskuri & Käyttöliittymä näyttää käyttäjälle, onko sovelluksessa päällä katselu- vai muokkaustila. & Tärkeä & Toteutettu \\
 \hline
 \laskuri & Käyttöliittymä näyttää käyttäjälle, paljonko muistia ohjelma käyttää. & Tärkeä & Toteuttamatta \\
 \hline
 \laskuri & Liitosdata avataan käyttöliittymään, jos käyttäjä valitsee kyseisen datan liitoskohdan katselutilan ollessa päällä. & Tärkeä & Toteutettu \\
 \hline
 \laskuri & Käyttöliittymän tulee reagoida käyttäjän toimintoihin korkeintaan muutaman sekunnin viiveellä. & Tärkeä & Toteutettu \\
 \hline
 \laskuri & Käyttöliittymä ilmoittaa virheistä käyttäjälle ponnahdusikkunalla kuvaten virheen. & Valinnainen & Toteutettu\\ 
 \hline
  \laskuri & Käyttöliittymästä voidaan avata About-dialogi, joka näyttää tietoja ohjelmasta. & Valinnainen & Toteuttamatta\\ 
 \hline
 % Päätös 4.5.2021: Raw-tiedostoja avatessa sovelluksessa käyttäjän tulisi voida syöttää leveyden ja korkeuden lisäksi myös syvyys.
 \laskuri & Raw-tiedostoja avatessa sovellus kysyy myös syvyyden. & Pakollinen & Testattu\\
 \hline
\end{tabular}



\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
 % Päätös 4.5.2021: Raw-tiedostoja lukiessa ohjelman olisi hyvä laskea annettujen dimensioiden ja bittisyvyyden perusteella tiedoston koko, jotta käyttäjä voi tarkistaa, syöttikö dimensiot oikein.
 \laskuri & Raw-tiedostoja lukiessa ohjelma laskee annettujen dimensioiden ja bittisyvyyden perusteella tiedoston koon, jotta käyttäjä voi tarkistaa, syöttikö hän dimensiot oikein. & Tärkeä & Testattu\\
 \hline
 % Päätös 4.5.2021: Ohjelman tulisi avata kaikentyyppisiä tiedostoja, jotka käyttäjä on määrittänyt tekstitiedostoiksi.
 \laskuri & Ohjelma avaa kaikentyyppisiä tiedostoja, jotka käyttäjä on määrittänyt tekstitiedostoiksi. & Tärkeä & Testattu\\
 \hline
 % Päätös 15.4.2021:  Ohjelman tulee antaa käyttäjän valita 16-bittisten kuvien kohdalla big-endian tai little-endian lukutapa.
 \laskuri & Ohjelman antaa käyttäjän valita raw-tiedostojen kohdalla tavujärjestyksen eli lukutavaksi joko big-endian tai little-endian. & Pakollinen & Testattu\\
 \hline
 % Päätös 15.4.2021: Näytteen ja liitosten metadatat tulee esittää erikseen avattavana ikkunana.
 \laskuri & Näytteen ja liitetiedostojen metadatat tulee esittää erikseen avattavana näkymänä. & Tärkeä & Testattu\\
 \hline
 \laskuri & Ohjelma näyttää käyttäjälle, jos karttatiedostojen generoiminen on käynnissä. & Valinnainen & Testattu\\ 
 \hline
 \laskuri & Käyttäjä voi avata liitedatalistasta liitedatan kontekstivalikon hiiren oikealla painikkeella. Tästä kontekstivalikosta löytyy \texttt{GoTo} painike, jonka valitsemalla ohjelma vaihtaa näytettävät kuvakulmat kyseisen liitedatan liitoskohtaan. & Valinnainen & Testattu\\
 \hline
\end{tabular}


\chapter{Lokalisaation vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovelluksen käyttöliittymä toimii englanniksi. Sovellus käyttää päivämäärien ja numeroiden muotoiluun käyttöjärjestelmän asetuksia. & Pakollinen & Toteutettu \\
 %(Miten toimitaan desimaalierottimien pvm jne. merkintöjen suhteen?) \textbf{TARKENNETTAVA} & Pakollinen & Suunnittelussa \\ 
 \hline
  \laskuri & Sovellus sisältää suomenkielisen lokalisaation. & Valinnainen & Toteuttamatta \\ 
 \hline
  \laskuri & Käyttöliittymän lokalisaatio valitaan käyttöjärjestelmän kielen mukaan. & Ei toteuteta & Toteuttamatta \\ 
 \hline
\end{tabular}



\chapter{Konfiguraation vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Käyttöliittymän tulee sisältää konfiguraatiodialogi, jonka kautta sovelluksen käyttäjä voi muokata sovelluksen konfiguraatiota. & Tärkeä & Testattu \\
 \hline
  \laskuri & Konfiguraatiodialogi antaa käyttäjän vaihtaa ohjelmassa käyttäjänimeä. & Tärkeä & Testattu \\
 \hline
  \laskuri & Konfiguraatiodialogi antaa käyttäjän vaihtaa pääakselien ja liitoskohtien värikoodausta. & Tärkeä & Testattu \\
 \hline
\end{tabular}



\chapter{Raportointityökalujen vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus sisältää työkaluja raporttien tekemiseen. \textbf{TARKENNETTAVA} & Idea & Toteuttamatta \\ 
 \hline
 \laskuri & Sovellus osaa tehdä raportteja itsenäisesti raportointipohjia käyttäen. \textbf{TARKENNETTAVA} & Ei toteuteta & Toteuttamatta\\ 
 \hline
\end{tabular}



\chapter{Sovelluskehityksen vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus on toteutettu niin, että uusien liitettyjen datatyyppien lisääminen olisi helppoa.  & Tärkeä & Toteutettu \\
 \hline
 \laskuri & Sovellus on toteutettu niin, että jatkokehittäjien lisäämien uusien liitettävien datatyyppien näyttäminen on helppoa. & Tärkeä & Toteutettu \\
 \hline
\end{tabular}

\textbf{Vaatimusten toteutuminen:}
\begin{Ventry} {15.1.}
\item[15.1.] Käyttöliittymän suunniteltiin käytettävän ikkunointia, jotta moduulien lisääminen tai korvaaminen olisi helppoa. Dataliitoksen muoto huomioitiin jatkokehitykseen siirretyssä kolmiulotteisessa tilakartta -komponentissa.
\item[15.2.] Käyttöliittymän suunniteltiin käytettävän ikkunointia, jotta moduulien lisääminen tai korvaaminen olisi helppoa.
\end{Ventry}



\chapter{Ohjeiden vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus tarjoaa käyttöohjeet, jotka kuvaavat sovelluksen tietoja ja toimintoja. & Valinnainen & Toteutettu \\ 
 \hline
 \laskuri & Sovellus ohjaa käyttäjän nettisivustolle, josta käyttöohjeet löytyvät. & Valinnainen & Toteuttamatta \\ 
 \hline
 \laskuri & Sovelluksen mukana tarjotaan ohjeet jatkokehittäjille (esimerkiksi erillisenä tiedostona versiohallinnassa). & Valinnainen & Toteuttamatta \\ 
 \hline
\end{tabular}



\chapter{Rajoitteet}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\ 
 \hline
 \laskuri & Sovellus toimii laitteistossa, jossa pystytään käyttämään Windows 10 -käyttöjärjestelmää. & Pakollinen & Testattu\\  
 %ei ole turhan raskas käyttää ja on ajettavissa perustietokoneella. \textbf{TARKENNETTAVA}
 \hline
 \laskuri & Sovellus ei lataa karttatiedostoja kokonaan välimuistiin, vaan lukee niitä tarpeen tullen yksi kaksiulotteinen kuva kerrallaan kovalevyltä. & Pakollinen & Testattu \\  
 \hline
 \laskuri & Sovellus käsittelee vain yhtä näytettä kerrallaan. & Valinnainen & Testattu\\
 \hline
 \laskuri & Sovellus ei tarjoa kartan selaamista X- ja Y-pääakselien suuntaisesti, ellei kartta ole ladattuna kokonaisena keskusmuistiin. & Valinnainen & Toteuttamatta \\
 \hline
 \laskuri & Vaihtoehtoisesti X- ja Y-pääakselien suuntainen selaaminen toimii, jos kyseisten akselien suuntaiset karttatiedostot on generoitu. & Tärkeä & Testattu \\
 \hline
 \laskuri & Sovellus ei tarjoa kartan selaamista vapaasta kuvakulmasta, ellei kartta ole ladattu kokonaisena keskusmuistiin. & Valinnainen & Toteuttamatta \\
 \hline
 \laskuri & Sovelluksen harmaasävyskaalan muuttaminen ei toimi 32-bittisillä karttatiedostoilla. & Valinnainen & Toteutettu \\
 \hline
 \laskuri & Sovelluksessa 3D-tiff karttatiedostojen koko rajoittuu 4 gigatavuun. & Valinnainen & Toteutettu \\
 \hline
 \laskuri & Sovelluksessa X- ja Y-pääakselien suuntaisten karttatiedostojen generointi rajoittuu image sequence ja raw muotoisille karttatiedostoille. & Valinnainen & Testattu \\
 \hline
 \laskuri & Sovellus tarvitsee ympäristöstä .NET 5.0 toimiakseen. & Valinnainen & Testattu \\
 \hline
\end{tabular}



\chapter{Tekniset vaatimukset}

\kokonaisuusvaihtuu

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila}  \\
 \hline
 \laskuri & Sovellus toimii Windows 10 -käyttöjär\-jestelmässä. & Pakollinen & Testattu \\ 
 \hline
 \laskuri & Sovellus toimii aikaisemmissa Windows-käyttöjärjestelmissä. & Ei toteuteta & Toteuttamatta\\
 \hline
 \laskuri & Sovellus toimii Linux-käyttöjärjestel\-missä. & Valinnainen & Toteuttamatta \\  
 \hline
 \laskuri & Sovellus toimii macOS-käyttöjärjestel\-missä. & Valinnainen & Toteuttamatta \\  
 \hline
 % Päätös 27.5.2021: Ohjelman ei tarvitse olla yhtenä ajettavana tiedostona.
 \laskuri & Sovellus toimii yhtenä ajettavana tiedostona sisältäen linkitetyt tiedostot. & Valinnainen & Toteuttamatta\\
 \hline
 \laskuri & Sovellus toimii 32-bittisissä ympäristöissä. & Tärkeä & Toteutettu\\
 \hline
\end{tabular}



\chapter{Vaatimusten toteutuminen}

Toteutusvaiheessa projektiryhmän aikaresurssit loppuivat, minkä seurauksena osa suunnitelluista vaatimuksista jouduttiin rajaamaan jatkokehitykseen. Tilaajan edustajien kanssa sovittiin rajaus niin, että projektin päättyessä pystyttiin toimittamaan toimiva prototyyppi vaikkakin toiminnoiltaan suunniteltua suppeampana. 

%Toteutettavat vaatimukset sisältää listauksen vaatimuksista, jotka projektiryhmä arvioi pystyvänsä toteuttamaan annetussa aikataulussa. Toteutumattomat vaatimukset puolestaan sisältävät listauksen vaatimuksista, jotka sovittiin siirrettäväksi jatkokehitykseen. Rajaukset kirjattiin vaatimuksista erilliseen kohtaan, jotta vaatimusten alkuperäiset prioriteetit säilyisivät ennallaan projektin läpiviennistä riippumatta.  

\textbf{Toteutumattomien vaatimusten} lista laadittiin pakollisten ja tärkeiden vaatimusten pohjalta. Pakollisia tai tärkeitä vaatimuksia puolestaan siirrettiin toteutumattomien vaatimusten joukkoon, mikäli niistä oli kirjattu päätökset palavereissa.
\iffalse
\section{Toteutettavat vaatimukset}


\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila} \\
 \hline
 11.6 & Pikanäppäimet. & Tärkeä & Keskeneräinen\\
 \hline
 11.19 & About-ikkuna sovellukseen. & Valinnainen & Toteuttamatta\\
 \hline
 14.1 & Projektiryhmä laatii sovellukselle käyttöohjeet. \makecell{\textbf{Päätetty 10. palaverissa 27.5.2021}} & Valinnainen & Toteuttamatta\\
 \hline
 14.2 & Sovellus  ohjaa  käyttäjän  nettisivustolle, josta käyttöohjeet löytyvät. & Valinnainen & Toteuttamatta\\
 \hline
 14.3 & Jatkokehittäjien ohjeet (kehitysympäristö ja datatyyppien lisääminen) & Valinnainen & Toteuttamatta\\
 \hline
 16.6 & Sovellus toimii 64-bittisellä .NET-kirjastolla \textbf{Käytettävyysongelma raportoitu sähköpostissa 16.6.2021} & Tärkeä & Toteuttamatta\\
 \hline
\end{tabular}

\fi

\begin{tabular}{ | p{1cm} | p{7.8cm} | p{2.2cm} | p{2.7cm} | } 
 \hline
 \textbf{Nro.} & \textbf{Kuvaus} & \textbf{Prioriteetti} & \textbf{Tila} \\
 \hline
 4.1 & Kehitettävän sovelluksen ei tarvitse tukea tiedostoformaattia 3D-tiff. \textbf{Päätetty 10. palaverissa 27.5.2021} & Tärkeä & Testattu\\
 \hline
 4.5 & Raw-tiedostojen dimensioiden päättely tiedostonimestä. \textbf{Päätetty 10. palaverissa 27.5.2021}& Tärkeä & Toteuttamatta \\
 \hline
 7.6 & Sovellukseen ei tarvitse lisätä tekstieditoria. \textbf{Päätetty 9. palaverissa 9.5.2021} & Tärkeä & Toteuttamatta\\
 \hline
 9.2 & Liitedatan liittäminen tasomaiseen kohtaan. \textbf{Päätetty 10. palaverissa 27.5.2021}& Tärkeä & Toteuttamatta\\
 %\hline
 %9.8 & Datan liittäminen useaan pisteeseen ei ole korkealla prioriteetilla. \textbf{Päätetty 10. palaverissa 27.5.2021} & Valinnainen & Keskeneräinen\\
 \hline
  9.9 & Dataliitosten liitoskohdan muuttaminen voidaan jättää jatkokehitykseen. \textbf{Päätetty 9. palaverissa 18.5.2021} & Tärkeä & Toteuttamatta\\
 \hline
 11.6 & Käytetyn muistin määrän näyttäminen. \textbf{Päätetty 10. palaverissa 27.5.2021}& Tärkeä & Toteuttamatta\\
 \hline
\end{tabular}

\textbf{Puutteellisesti täytetyt vaatimukset} ovat vaatimuksia, joiden toimintaan liittyy rajotteita, jotka eivät juonna itseään käyttäjän tarpeista. Nämä rajoitteet johtuvat projektin aikaresurssien loppumisesta, toteutukseen liittyvistä ongelmista tai ristiriidoista muiden rajoitusten kanssa. 

X- ja Y-suuntaisten 3D-tiff -karttatiedostojen luomista ei toteutettu. 3D-tiff -karttoihin liittyy myös 4GB:n kokorajoitus. Em. puutteet johtuvat käytetyn kuvankäsittelykirjaston rajoituksista. Yksittäisten poikkileikkaussiivujen kohdalla pätee myös 2GB:n kokorajoitus. Tämä johtuu siitä, että C\#-ohjelmointikielessä yksittäisen olion koko on rajoitettu kahteen gigatavuun 32-bittisten ohjelmien kohdalla.

32-bittisten kuvien kohdalla harmaansävyskaalan muuttaminen ei toimi. Koska kyseisissä kuvissa pikselien arvo on etumerkillinen liukuluku, olisi koko harmaasävyskaalan esittäminen epäkäytännöllistä käyttäjälle. Tällöin ohjelman pitäisi lukea koko karttatiedosto ja määrittää harmaasävyskaala tiedoston maksimi- ja minimiarvojen välille. Kyseistä ominaisuutta ei ehditty toteuttamaan projektin puitteissa.

\textbf{Jatkokehityksessä} suositellaan aluksi keskityttävän puuttellisten vaatimusten täydentämiseen. Tämän jälkeen hyvä kehityskohde olisi em. toteuttamattomat vaatimukset. Projektin puitteissa ohjelmaa ei olla käytetty paljon oikeassa käytössä, joten jatkokehityksen prioriteetit voivat muuttua ja uusia jatkokehitysideoita voi ilmetä ohjelman laajemmassa käytössä.


\chapter{Yhteenveto}

Projektiryhmän sovellukseen toteuttamien vaatimusten toimintojen avulla käyttäjä voi tarkastella yleisesti käytettyjä tomografiadatan tiedostotyyppejä sekä liittää liitedatan käyttäjän valitsemaan kohtaan tomografiatiedoston määrittelemässä avaruudessa.

Groundhog projektissa kirjattiin yhteensä 118 vaatimusta, joista 83 toteutettiin projektissa. Vaatimuksia sovittiin tilaajan kanssa projektin jälkeiseen jatkokehitykseen seuraavista syistä: 

\begin{itemize}
  \item Jotkin vaatimukset olivat osin ideoita jotka eivät tarkentuneen projektin edetessä riittävästi, jotta niitä olisi voinut lähteä toteuttamaan.
  \item Jotkin vaatimukset tulivat esille niin myöhään projektissa, että niiden toteuttamiselle ei ollut enää aikaa.
  \item Tekniset ongelmat estivät joidenkin vaatimusten toteuttamisen, josta kerrotaan yksityiskohtaisemmin luvussa 19.
\end{itemize}
Ongelmat vaatimusten toteuttamisessa johtuivat suurimmaksi osaksi projektin laajuudesta ja rajallisista aikaresursseista, jotka projektiryhmällä oli käytettävissään Sovellusprojektin puitteissa.

\textbf{Vaatimusten toteutuminen prioriteeteittain ja tiloittain} esitetään alla olevassa taulukossa.

\footnotesize{


\begin{tabular}{ | p{2cm} || p{1.2cm} | p{1.4cm} | p{1.5cm} | p{1.4cm} | p{1.4cm} | p{1.5cm} || p{1.5cm} |} 
 \hline
  \textbf{Prioriteetti / Tila}& \textbf{Hyväk-sytty} & \textbf{Testattu} & \textbf{Toteutettu} & \textbf{Kesken-eräinen} & \textbf{Suunnit-telussa} & \textbf{Toteut-tamatta}& \textbf{Yhteensä} \\
 \hline
 \hline
 Pakollinen &  & 30 & 2 &  &  &  & \textbf{32}\\ 
 \hline
 Tärkeä &  & 26 & 9 &  &  & 5 & \textbf{40} \\ 
 \hline
 Valinnainen &  & 7 & 9 &  &  & 23 & \textbf{39}\\  
 \hline
 Idea &  &  &  &  &  & 1 & \textbf{1}\\   
 \hline
 Ei toteuteta &  &  &  &  &  & 6 & \textbf{6} \\ 
 \hline
 \hline
 \textbf{Yhteensä} &  & \textbf{63} & \textbf{20} &  &  & \textbf{35} & \textbf{118}\\ 
 \hline
\end{tabular}

}
\normalsize

Luvun 14 raportointityökalujen vaatimukset sovittiin jo projektin puolessa välissä jatkokehitykseen. Raportointityökalut ominaisuutena tulivat esille hyvin aikaisessa vaiheessa projektia, mutta niiltä vaaditut toiminnot jäivät tarkentamatta, koska päätettiin keskittyä korkeamman prioriteetin ominaisuuksiin.

\clearpage

\small\textbf{Vaatimusten toteutuminen kokonaisuuksittain ja tiloittain} esitetään alla olevassa taulukossa.
\footnotesize{

\begin{tabular}{| p{3cm} || p{1.2cm} | p{1.4cm} | p{1.5cm} | p{1.4cm} | p{1.4cm} | p{1.5cm} || p{1.5cm} |} 
 \hline
  \textbf{Kokonaisuus / Tila} & \textbf{Hyväk-sytty} & \textbf{Testattu} & \textbf{Toteutettu} & \textbf{Kesken-eräinen} & \textbf{Suunnit-telussa} & \textbf{Toteut-tamatta}& \textbf{Yhteensä} \\
 \hline
 \hline
 4. Karttatiedostojen lukuvaatimukset &  & 4 &  &  &  & 2 & \textbf{6}\\ 
 \hline
 5. Karttatiedostojen näyttämisen vaatimukset &  & 8 &  &  &  & 5 & \textbf{13} \\ 
 \hline
 6. Liitedatan lukuvaatimukset &  & 7 &  &  &  &  & \textbf{7}\\  
 \hline
 7. Liitedatan näyttämisen vaatimukset &  & 5 & 2 &  &  & 3 & \textbf{10}\\   
 \hline
 8. Metatietojen vaatimukset &  & 6 & 3 &  &  & 1 & \textbf{10} \\ 
 \hline
 9. Karttatiedostojen ja liitedatan hallinnan vaatimukset &  & 5 & 1 & &  & 7 & \textbf{13} \\ 
 \hline
 10. Sovelluksen tilan tallentamisen ja lataamisen vaatimukset &  & 11 &  & & & 2 & \textbf{13} \\ 
 \hline
 11. Sovelluksen käyttöliittymän vaatimukset &  & 7 & 7 &  &  & 3 & \textbf{17} \\ 
 \hline
 12. Lokalisaation vaatimukset &  &  & 1 &  &  & 2 & \textbf{3} \\ 
 \hline
 13. Konfiguraation vaatimukset &  & 3 &  &  &  &  & \textbf{3} \\ 
 \hline
 \hline
  14. Raportointityökalujen vaatimukset &  &  &  &  &  & 2 & \textbf{2} \\ 
 \hline
 15. Sovelluskehityksen vaatimukset &  &  & 2 &  &  &  & \textbf{2} \\ 
 \hline
 16. Ohjeiden vaatimukset &  &  & 1 &  &  & 2 & \textbf{3} \\ 
 \hline
 17. Rajoitteet &  & 6 & 2 &  &  & 2 & \textbf{10} \\ 
 \hline
 18. Tekniset vaatimukset &  & 1 & 1 &  &  & 4 & \textbf{6} \\ 
 \hline
 \hline
 \textbf{Yhteensä} &  & \textbf{63} & \textbf{20} &  &  & \textbf{35} & \textbf{118} \\ 
 \hline

\end{tabular}

}

\normalsize

\begin{thebibliography}{1}
\makeatletter
\addtocounter{\@listctr}{0}
\makeatother
%Katso kirjoitusohjeen luku 2.3 ja 2.4.

\bibitem{projektiraportti} Iiro Iivanainen, Harri Linna, Jere Pakkanen ja Riikka Vilavaara. Groundhog-projekti, Projektiraportti. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2021.

\bibitem{sovellusraportti} Iiro Iivanainen, Harri Linna, Jere Pakkanen ja Riikka Vilavaara. Groundhog-projekti, Projektiraportti. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2021.

\bibitem{kayttoohje} Iiro Iivanainen. Groundhog-projekti, Sovelluksen käyttöohjeet. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2021.

\bibitem{testaussuunnitelma} Iiro Iivanainen, Harri Linna, Jere Pakkanen ja Riikka Vilavaara. Groundhog-projekti, Järjestelmätestaustauksen testauskerran suunnitelma. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2021.

\bibitem{testausraportti1} Iiro Iivanainen, Harri Linna, Jere Pakkanen ja Riikka Vilavaara. Groundhog-projekti, Järjestelmätestauksen ensimmäisen testauskerran raportti. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2021.

\bibitem{testausraportti2} Iiro Iivanainen, Harri Linna, Jere Pakkanen ja Riikka Vilavaara. Groundhog-projekti, Järjestelmätestauksen toisen testauskerran raportti. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2021.

\end{thebibliography}
\end{document}
