%
% Esimerkki LaTeX-ladontaohjelma k�yt�st� TiKi-kurssia varten
% Roope Kaivola, 10.2.1998
%
% P�ivitti Matti Nyk�nen 01.03.2001.
% Muutokset l�ytyv�t hakuavaimella 'MJN:'.

%
% Sanotaan aluksi, ett� k�yt�mme article-dokumenttiluokkaa 12 pisteen
% kirjasinkoolla, A4-paperikoolla ja suomenkielisell� tavutuksella. T�m�n 
% j�lkeen otetaan k�ytt��n skandimerkit ja vanhan LaTeX-version 2.09 
% mukaiset symbolit.
%

\documentclass[12pt,a4paper]{article}
\usepackage[finnish]{babel}
\usepackage{t1enc}
\usepackage{latexsym}

% MJN: Valitaan vaihtoehtoinen kirjasintyyli joka n�ytt�� hyv�lt� my�s
% PDF-tiedostoissa. (Kiitos vinkist� Oskari Heinoselle.) Jos itsell�si
% ei ole t�t� palatino-kirjasinta, niin j�t� komento pois ja saat
% LaTeXin oletusarvoiset Computer Modern -kirjasimet.
\usepackage{palatino}

% lis�� seuraava rivi kuvien liitt�mist� varten
% MJN: Uusi pakkaus 'graphicx' olisi helpompi k�ytt��...
%\usepackage{psfig}
\usepackage[dvips]{graphicx}  

% lis�� seuraava rivi vierekk�isten kuvien liitt�mist� varten
%\usepackage{subfigure}  

%
% Otetaan k�ytt��n joukko TKTL:n TiKi-kurssin dokumenttiformaatin mukaisia
% m��rittelyjen muutoksia (mm. l�hdeluettelon tyyli, kansilehti).
% T�t� varten tulee samassa hakemistossa olla tiedosto tktltiki.sty
%
% MJN: T�h�nkin pakkaukseen koskettu 29.01.2001.

\usepackage{tktltiki}

% MJN: K�ytet��n WWW-osoitteiden ladontapakkausta.
\usepackage{url}

%
% Asetellaan marginaaleja
%
% MJN: Uusi pakkaus 'geometry' helpottaisi t�t�kin...

%\setlength{\textwidth}{6.0in}
%\setlength{\textheight}{9.0in}
%\setlength{\topmargin}{0in}
%\setlength{\headheight}{0.2in}
%\setlength{\headsep}{0.2in}
%\setlength{\oddsidemargin}{0.5in}
%\setlength{\evensidemargin}{0.5in}

\setlength{\textwidth}{15cm}
\setlength{\textheight}{23cm}
\setlength{\topmargin}{0cm}
\setlength{\headheight}{0.5cm}
\setlength{\headsep}{0.5cm}
\setlength{\oddsidemargin}{1cm}
\setlength{\evensidemargin}{1cm}

%
% Sanotaan, ettei kappaleiden alkuja sisennet� ja ett� kappaleiden v�liin
% tulee hieman tyhj��.
%

\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex}

%
% Sanotaan, ett� sivunumerot tulevat sivun oikeaan yl�kulmaan ja ett�
% sivunumerointiin k�ytet��n roomalaisia numeroita (i, ii, iii, iv ...) 
%

\pagestyle{myheadings}
\markright{}
\pagenumbering{roman}

%
% T�st� alkaa varsinainen sis�lt�
%

\begin{document}

%
% Ensin otsikkosivu (otsikkosivun ulkon�k� kuvataan tktltiki.sty:ss�)
% Otsikon muuttuvat tiedot ilmoitetaan komennoilla
% \title, \author, \date (ei v�ltt�m�t�n) ja \kirjoitelmalaji 
%
% N�iden J�LKEEN tuleva komento \maketitle tekee varsinaisen
% otsikkosivun.
%

\title{Suunnitteludokumentti}
\author{WWW-museo\\ \newline Tekij�t:\\ \newline Kim Josefsson (KJ)\\Samppa Saarela (SS)\\ Eetu M�kel� (EM)\\
 Taneli Rantala (TR)\\Robert Holmberg (RH)\\Pasi Lehtim�ki (PL)}
\date{\today}
\kirjoitelmalaji{Versio 0.3}

\maketitle

% MJN: Roomalainen numerointi ei koske viel� kansilehte� vaan vasta
% tiivistelm�sivua.
\setcounter{page}{1}

%
% Sanotaan, ett� t�st� eteenp�in k�ytet��n 1.5-riviv�li�
%
% (Tekninen huomautus: tekstikoon muuttaminen hetkellisesti \large:lla 
% tarvitaan, jotta baselineskip asetettaisiin heti baselinestretchin
% mukaiseksi.)
%
% MJN: 'LaTeX Companion' -kirjan Taulukko 3.1 sivulla 53 antaa
% seuraavat maagiset luvut oikeille kirjapainok�yt�nn�n mukaisille
% v�listyksille:
%
%       kirjasinkoko
% v�li 10pt 11pt 12pt
% 1.5  1.25 1.21 1.24
% 2.0  1.67 1.62 1.66
%
% Siirryt��n saman tien 2.0-riviv�liin.

\renewcommand{\baselinestretch}{1.24}
\large
\normalsize

%
% Tiivistelm�sivu. Komennoilla \sivumaara, \aiheluokat ja \avainsanat
% kerrotaan vastaavat tiedot tiivistelm�sivua varten. N�iden J�LKEEN
% tuleva abstract-ymp�rist� sis�lt�� varsinaisen tiivistelm�n ja tekee
% tiivistelm�sivun.
%




%
% Tehd��n sis�llysluettelo 
%

\tableofcontents

%
% Aloitetaan leip�teksti uudelta sivulta ja sanotaan, ett� 
% sivunumerointiin k�ytet��n arabialaisia numeroita (1, 2, 3, 4 ...).
%

\newpage
\pagenumbering{arabic}

\section{Johdanto (KJ)}
T�m� dokumentti on Helsingin yliopiston museon WWW-n�yttelyn
suunnitteludokumentti. Dokumentissa kerrotaan, miten j�rjestelm�
totetutetaan ja mit� metodeja ja luokkia j�rjestelm� sis�lt��.
Luvussa 2 annetaan yleiskuva toteutettavasta ohjelmistosta.
Luvussa 3 esitet��n erilaisia k�ytt�tapauksia, joita j�rjestelm�n
k�ytt�jill� on. Luvussa 4 esitet��n vaatimuksia j�rjestelm�n tekniselle
toteutukselle. Luvussa 5 puhutaan suunnittelurajoituksista ja lis�ominaisuuksista,
joita ei toteuteta t�ss� projektissa. Luvussa 6 annetaan yleiskuva ohjelmiston
osaj�rjestelmist�. Luvussa 7 esitell��n tietokantamoduuli. Luvussa 8 k�yd��n l�pi
k�ytt�liittym�moduuli. Luvussa 9 tarkastellaan profiilimoduulia. Luvussa 10 k�yd��n
l�pi suodatinmoduulin rakenne. Luvussa 11 pohditaan testausta, eli miten siihen varaudutaan
ohjelmoinnin aikana. Liitteess� 1 esitet��n tietokantamoduulin sis�inen rajapinta.
Liitteess� 2 esitet��n k�ytt�liitym�moduulin sis�inen rajapinta.


\subsection{Versiohistoria}
\begin{table}[h]
\centering
\begin{tabular}{lll} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
					  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden v�liin

	Versio	&	P�iv�m��r�	&	Tehdyt muutokset	  \\ \hline  
	0.1	&	20.3.2002	&	Alustava versio. Sis�lt�� perusralenteen.  	\\
      0.3	&	22.3.2002	&	Kuvia ja teksti� paranneltu. Arviointiversio, johon\\
	&	&	pyydet��n asiakkaalta kommentteja.
       
\end{tabular}
\end{table}

\newpage

\section{Ohjelmiston yleiskuvaus (KJ)}
Toteutettava j�rjestelm� on Helsingin yliopiston museon WWW-valokuvan�yttely,
Valokuvien aiheena on promootio. J�rjestelm� jakaantuu viiteen osaj�rjestelm��n:
k�ytt�liittym��n, suodattimeen, profiilin, tietorakenteisiin ja tietokantaan. N�m� kuvataan tarkemmin seuraavissa
luvuissa. Valokuvien tiedot on koodattu XML-tiedostoihin.
N�it� tiedostoja muokataan k�sin
siten, ett� ne ovat RDF-syntaksin mukaisia. N�m� RDF-tiedostot ripustetaan Avril Styrmannin
Protege-ohjelmalla luomaan Promootio-ontologiaan. Ontologiaa voidaan muuttaa ja muokata,
mik�li muutokset katsotaan tarpeellisiksi. K�ytt�liittym�n ohjelmoinnissa k�ytet��n
JSP:t� ja Java-sovelmia. Java-koodit erotetaan sivuista Java-papujen ja JSP-merkkausten, tagien, avulla. Teko�ly osaa
ehdottaa ohjelman k�ytt�j�lle mielenkiintoisia linkkej� (katso Ongelmakentt�dokumentti), jotka johtavat k�ytt�j�� mahdollisesti kiinnostaviin
kuviin. J�rjestelm� toteuteaan Tomcat-ymp�rist�ss� yliopiston DB-palvelimelle.

\section{Ohjelmiston k�ytt�tapauksia}
Seuraavassa esitet��n erilaisia k�ytt�tapauksia:

\input{personia_ja_kayttotapauksia.tex}
\input{vaatimukset.tex}


\section{Suunnittelurajoitukset}
Seuraavassa luetellaan lis�mominaisuuksia, joita ei toteuteta, mutta
joiden my�hemp��n toteuttamiseen varaudutaan:

 \subsection{K�ytt�j�profiili} 

  Ohjelmistoon tulee olla mahdollista lis�t� my�hemmin k�ytt�j�profiilit ja
  niiden avulla teht�v� kuvien ja �lykk�iden linkkien rajaus. Kuvien ja
  linkkien rajaamis/arvottamisfunktio suunnitellaan modulaariseksi ja
  laajennettavaksi. 

 \subsection{Laitteistoprofiili ja monikielisyys} 

  Laitteistoprofiilien ja monikielisyyden tueksi k�ytt�liittym� ja muu koodi
  erotetaan toisistaan mahdollisimman hyvin. JSP -sivuissa k�ytet��n
  tagikirjastoja. 

 \subsection{Istuntohistoria}

  Istuntohistorian tallentamisen mahdollistamiseksi ohjelmisto yritet��n
  suunnitella niin, ett� sen tila on helppo tallentaa kullakin hetkell� ja
  ett� kulloinkin voimassa oleva tila on aina ohjelman tiedossa
  (varaudutaan back-nappulan painamiseen ja muihin komplikaatioihin).

\input{osajarjestelmienyleiskuvaus.lue}
\input{tiraapi.tex}
\input{kalimoduli.tex}
\input{suodatin.txt}

\section{Testaus (KJ)}
Testaukseen k�ytet��n ilmaista JUnit-luokkakirjastoa.
Kirjasto on toteutettu Javalla. Kirjastoa k�ytet��n
kirjoittamalla koodin sekaan JUnitin syntaksin
mukaisia testioperaatioita. My�s osaj�rjestelmien v�lisen kommunikoinnin 
testaaminen on t�rke��. T�h�n JUnit ei ole paras ratkaisu, joten n�ihin
testeihin kehitet��n omat testimetodit. Pienimuotoista testausta 
suoritetaan jatkuvasti koodauksen aikana. Kattava testaussuunnitelma
tehd��n, kun toteutus on edennyt sellaiseen vaiheeseen, ett� j�rjestelm�n
lopullinen rakenne alkaa hahmottua.
\label{loppusivu} 
             
\newpage 
\pagestyle{empty} 
 
 
\appendix
\addtocontents{toc}{\protect \contentsline {section}{Liitteet}{}}
\section*{Liite 1. Tietokantamoduulin sis�inen rajapinta}
\addtocontents{toc}{
\protect \contentsline {section}{\hspace{0.5cm}1 Tietokantamoduulin sis�inen rajapinta.}{}}

\input{tiraapi_liite.tex}


\section*{Liite 2. K�ytt�liittym�moduulin sis�inen rajapinta}
\addtocontents{toc}{
\protect \contentsline {section}{\hspace{0.5cm}2 K�ytt�liittym�moduulin sis�inen rajapinta.}{}}

\input{kaliapikuvaus.tex}
\newpage
 



\end{document}
