%
% 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{Projektisuunnitelma}
\author{WWW-museo}
\date{\today}
\kirjoitelmalaji{Versio 1.0}

\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.
%

%\sivumaara{\pageref{loppusivu} sivua}
%\aiheluokat{C.2.4}
%\avainsanat{verkkokauppa, tietoturva, yksityisyys, käyttäjän tunnistus}



%
% 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}
  
Projektissa on tarkoitus tuottaa selainpohjainen dynaaminen WWW-sivusto, eli virtuualimuseon näyttely.
Näyttelyssä vierailija voi käydä läpi tietokannassa olevia kuvia. Näyttelyn on tarkoitus olla älykäs,
eli ohjelman pitäisi osata päätellä vierailijan kiinnostuksen kohteet ja ehdottaa sopivia kuvia.
Näyttelyn teemana on tohtoripromootio.

\subsection{Asiakas}

Projektin asiakas on Eero Hyvönen.

\section{Projektin tavoitteet}

\subsection{Ohjelmisto}

Tavoitteena on tuottaa toimiva ohjelmisto, joka toetuttaa
vähintään asiakkaan haluamat perustoiminnot. Ohjelmiston
tulisi olla vakaa, eli se ei saa kaatua. Käyttöliittymästä
pyritään tekemään mahdollisimman selkeä, jotta näyttelyssä
vierailu olisi helppoa.

\subsection{Lisäominaisuudet}
Oletusarvoisesti asiakaan ehdottamia lisäominaisuuksia
ei pyritä totetuttamaan. Projektissa käytettävät ohjelmat ja
teknologiat ovat projektiryhmälle uusia, joten niihin tutustuminen
vie aikaa. Jo perustoimintojen toteuttamisessa on paljon työtä.

\subsection{Rajoittavia tekijöitä}

Yliopiston mseon tietokannasta saaduissa kuvissa olevan metatiedon
määrä vaihtelee paljon kuvakohtaisesti. Tekoälyn taso riippuu metatiedon
määrästä. Jos kuvista ei ole annettu mitään taustatietoja, tekoälyalgoritmin
on vaikea päätellä kuvista ja niiden yhteyksistä yhtään mitään. Taustatiedon
määrä on lähes suoraan verrannollinen järjestelmän toimivuuteen ja älykkyyteen.

\section{Toteutus- ja toimintaympäristö}

   
\subsection{Laitteisto ja tarvittavat ohjelmat}
Ohjelmiston tulisi toimia laitteistoriippumattomasti
verkossa selaimen välityksellä. Käyttöliittymässä käytetään
mahdollisesti JavaScriptiä ja Java-sovelmia. Ohjelmistoa käyttävässä
järjestelmässä tulisi olla asennettu Java-tuki. Käyttöliittymä on
graafinen.

\subsection{Käyttäjiltä vaadittavat taidot}
Ohjelmiston käyttäminen ei vaadi erityistaitoja.
Selaimen ja graafisen käyttöliityymän toimintojen ymmärtäminen
riittää.      

 

\section{Projektin henkilöt ja tehtäväjako}



\subsection{Projektiryhmä}
Samppa Saarela samppa.saarela@cs.helsinki.fi
\newline
Kim Josefsson kim.josefsson@helsinki.fi
\newline
Eetu Mäkelä eetu.makela@cs.helsinki.fi
\newline
Robert Holmberg robert.holmberg@helsinki.fi
\newline
Pasi Lehtimäki pjlehtim@cs.helsinki.fi
\newline
Taneli Rantala Taneli.Rantala@cs.helsinki.fi
\newline

Projektiryhmä on johtajavetoinen ja projektipäällikkö on Samppa Saarela.
Muutkin ryhmän jäsenet voivat tarvittaessa johtaa ryhmää, jos heillä on
erityisosaamista tietyltä ohjelmiston osa-alueelta.



\subsection{Ohjaaja ja asiakas}

Ryhmän ohjaaja on Matti Nykänen ja asiakas Eero Hyvönen.
\newline
Yhteystiedot:
\newline
\newline
Matti Nykänen \newline
E-mail: Matti.Nykanen@cs.helsinki.fi \newline
Huone: C481 \newline
\newline
Eero Hyvönen \newline
E-mail: Eero.Hyvonen@cs.helsinki.fi \newline
Huone: A405


\subsection{Tehtäväjako}
Eri tehtäviä pyrittämään hajauttamaan mahdollisimman
paljon siten, että jokainen osallistuu kaikkiin työvaiheisiin.
Projektipäällikkö päättää tehtävien jakamisesta. Ryhmän jäsenet
kirjaavat ylös työtuntinsa, jotta projektipäällikkö pystyy seuraamaan
projektin edistymistä.

Jokainen dokumentoi oman koodinsa. Dokumenteilla ja jokaisella ohjelmiston
osa-alueella on oma vastuuhenkilönsä. Alustavat vastuuhenkilöt eri alueille ovat:

\begin{table}[h]
\centering
\begin{tabular}{ll} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
					  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden välii 
	Dokumentit ja XML-asiat		&	Kim  \\  
	Käyttöliittymä	&	Pasi ja Samppa  	\\
	Tietokanta-asiat	&	Robert  \\
	Tekoäly	&	Eetu ja Taneli 		\\ 
\end{tabular}
\end{table}

Sihteeri valitaan kokouksissa viikoksi kerrallaan. Sihteeri pitää
kokouspöytäkirjaa ja laittaa sen verkkoon. 


\newpage
\section{Projektin toiminta}

\subsection{Projektimalli}

Projektimalliksi valittiin lineaarinen vesiputousmalli. Seuraavassa on
eritelty eri projektivaiheiden arvioidut kestoajat:

\begin{table}[h]
\centering
\begin{tabular}{llc} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
					  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin
	1)	&	Projektin suunnittelu	&	2.5vk	  \\  
	2)	&	Määrittely	&	1vk  	\\
	3)	&	Suunnittelu	&	4.5vk  \\
	4)	&	Toteutus	&	4vk	\\
      5)	&	Testaus	&	1.5vk 		\\ 
      6)	&	Viimeistely	&	2vk   \\
\end{tabular}
\end{table}





\subsection{Tarkistukset}
Jokaisen vaiheen dokumentit tarkastetaan ja hyväksytään ennen siirtymistä seuraavaan
vaiheeseen. Määrittelydokumentin ja suunitteludokumentin valmistuttua voidaan pitää
kokous asiakkaan kanssa. Projektin etenemistä ja aikataulussa pysymistä tarkkaillaan
kokouksissa. Myös ryhmän jäsenten työmäärää arvioidaan säännöllisesti.



\subsection{Aikataulu}
Seuraavalla sivulla esitetään projektin suunniteltu aikataulu ensin Gantt-kaaviona
ja sitten taulukkona: 

\newpage
\begin{figure}
\begin{center}
\includegraphics[width=1.0\textwidth]{gantt.ps}
\caption{Projektin aikataulu}
\label{Gantt-kaavio}
\end{center}
\end{figure}


\begin{table}[h]
\centering
\begin{tabular}{ll} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
					  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Projektin suunnittelu	&	22.1 -- 8.2	  \\  
	Määrittely	&	8.2 -- 15.2  	\\
	Suunnittelu	&	15.2 -- 20.3  \\
	Toteutus	&	20.3 -- 17.4 \\
      Testaus	&	17.4 -- 26.4  		\\ 
      Viimeistely	&	26.4 -- 10.5	\\
\end{tabular}
\end{table}

%\begin{figure}
%\begin{center}
%\includegraphics[width=1.0\textwidth]{gantt.ps}
%\caption{Projektin aikataulu}
%\label{Gantt-kaavio}
%\end{center}
%\end{figure}

Aikataulussa jää pelivaraa lähinnä suunnitteluosan loppuun sekä viimeistelyosuuteen.
Toteutusosuudessa täytyy huomioida pääsiäisloma ja sen vaikutus. Ohjelmisto on valmis
viimeistään 10.5. Viimeistelyvaihe käytetään koodin hiomiseen ja loppuraportin
kirjoittamiseen. Aikaa voidaan käyttää myös muihin työvaiheisiin, mikäli aikataulusta
ollaan jäljessä. Valmis ohjelma esitellään asiakkaalle erikseen sovittavana ajankohtana.




\section{Projektin välineet ja menetelmät}


\subsection{Dokumentointi}
Dokumentointiin käytetään LaTeX:ia ja dokumentit tallennetaan ps-muodossa.
Dokumenttien ulkoasu pidetään yhtenevänä koko projektin ajan.

\subsection{Versionhallinta}
Versionhallintaan käytetään laitoksen Linux--järjestelmässä toimivaa \\
CVS--versionhallintajärjestelmää. CVS:n alla pyritään pitämään kaikki ryhmän tuottama materiaali.

\subsection{Suunnittelu}
Suunnittelussa käytetään Ohjelmistotuotanto-kurssin kaaviotekniikoita. Niiden
piirtämisessä voidaan käyttää apuna laitokselta löytyviä ohjelmia.

\subsection{Ohjelmointi}
Ohjelmoinnissa käytetään Java-kielen versiota 1.3. Ohjelmistossa käytetään \\
Java Server Pages --järjestelmää, jota varten ryhmän käyttöön asennetaan Tomcat. XML-tietokantana
käytetään DBXML:ää. Xercesiä käytetään XML--parserina. Järjestelmää nimeltä Jena saatetaan käyttää
RDF--rakenteen toteuttamiseen. Käyttöliittymä ohjelmoidaan HTML:llä, johon liitetään mahdollisesti
JavaScriptiä tai Java--sovelmia. Koodi koodataan englanniksi, mutta kommentoidaan suomeksi. Koodi kommentoidaan
siten, että koodista voidaan automaattisesti generoida Javadoc--sivusto.  



\section{Riskienhallinta}

\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
	\hline				  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Riski:	\\
      Ryhmän jäsen ei tee tarpeeksi töitä	\\  \hline
	Miten havaitaan: \\
      Seurantakokuksien ja tuntikirjanpidon perusteella		\\  \hline
	Miten ratkaistaan:  \\
      Järjestellään tehtävät uudestaan. Mikäli tämä ei auta, \\
       projektipäällikkö pitää jäsenelle puhuttelun ja motivoi tätä.	\\ \hline

\end{tabular}
\end{table}



\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
	\hline				  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Riski:	\\
      Työvaiheet työläämpiä kuin on osattu ennakoida	\\  \hline
	Miten havaitaan: \\
      Suunnitellun aikataulun ja projektin etenemisen vertaileminen		\\  \hline
	Miten ratkaistaan: \\
      Karsitaan ominaisuuksia tai kiristetään tahtia.\\
      Neuvottelu asiakkaan kanssa	\\ \hline

\end{tabular}
\end{table}


\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
	\hline				  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Riski:	\\
      Tuntemattomien tekniikoiden (mm. RDF) opiskelu liian hidasta	\\  \hline
	Miten havaitaan: \\
      Kesustellaan kokouksissa		\\  \hline
	Miten ratkaistaan: \\
      Ryhmässä olevat mahdolliset asiantuntijat opastavat \\
      muita. Hyvien ohjeiden ja oppaiden etsiminen.	\\ \hline

\end{tabular}
\end{table}

\newpage

\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
	\hline				  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Riski:	\\
      Laitoksen järjestelmät, CVS, tms. kaatuu  ja koneella olevat tiedostot
      tuhoutuvat	\\  \hline
	Miten havaitaan: \\
      Katsomalla tyhjää ryhmähakemistoa		\\  \hline
	Miten ratkaistaan: \\
      Pidetään varmuuskopiot kaikista tiedostoista\\ \hline

\end{tabular}
\end{table}

\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
	\hline				  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Riski:	\\
      Ohjelmiston laatu heikko	\\  \hline
	Miten havaitaan: \\
      Suunnitelluvaiheessa tai viimeistään testauksen aikana		\\  \hline
	Miten ratkaistaan:  \\
      Suunitelaan uudestaan. Jos ohjelmisto on jo testausvaiheessa, \\
      niin yritetään paikata koodia niin pitkälle kuin vain on mahdollista	\\ \hline

\end{tabular}
\end{table}

\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
	\hline				  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	
	Riski:	\\
      Ontologioida ei saada valmiina tai yhteistyö\\
 projektiin liittyvien graduntekijöiden kanssa ei toimi	\\  \hline
	Miten havaitaan: \\
      Työmäärä kasvaa ja suunnitellu hankaloituu		\\  \hline
	Miten ratkaistaan: \\
      Tehdään ontologiat itse ja neuvotellaan asiakkaan kanssa	\\ \hline

\end{tabular}
\end{table}

\begin{table}[h]
\centering
\begin{tabular}{|l|} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
        \hline                            % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin
        Riski:  \\
      Valmiit työkalut, kuten DBXML, eivät toimi\\
      oikein tai odotetulla tavalla\\  \hline
        Miten havaitaan: \\
      Työkalut eivät toimi                \\  \hline
        Miten ratkaistaan: \\
      Vaihdetaan työkalua tai muokataan vanhaa  \\ 
      mahdollisuuksien mukaan \\ \hline
      
\end{tabular}
\end{table}


\newpage
\section{Kokoarvio}
Arviot ovat erittäin alustavia. Käytettettävät teknologiat ovat
ryhmälle uusia, joten vaadittavan koodimäärän arvioiminen näin
alkuvaiheessa on lähes arpomista.

\begin{table}[h]
\centering
\begin{tabular}{ll} %montako saraketta ja kuinka ne tasataan: l->left, c->center,r->right
					  % pystyviiva saadaan kirjoittamalla putkimerkki | tasausohjeiden väliin	 
	XML-data	&	2KB/kuvakortti. Kortteja noin 500 eli yhteensä 1MB	  \\  
	Tietokantaliittymä	&	1000 riviä  	\\
	Ontologiat	&	Pitäisi saada valmiina. Ei arvioida tässä vaiheessa.  \\
	Käyttöliittymä	&	850 riviä \\
        Tekoäly	&	500--700 riviä \\
        Ontologioiden käsittely	&	700 riviä
\end{tabular}
\end{table}

Näistä tulee yhteensä kolmisen tuhatta riviä. Lopullinen kokoarvio
tarkentuu myöhemmin projektin edetessä.













%
% Sitten alkaa lähdeluettelo
%

\label{loppusivu}

\newpage
\pagestyle{empty}


\end{document}
