Tik-76.115 Vaatimusmäärittely

SUSI - Smart web Updating with a Simple Interface



Sisällysluettelo

1. Johdanto
1.1 Yleistä
1.2 Termit
1.3 Vaatimusmäärittelyn sisältö
2. Yleiskuvaus
2.1 Käyttötarkoitus
2.2 Käyttäjät
2.3 Käyttöympäristö
3. Toiminnot
3.1 Asiakasohjelma
3.2 Palvelin
3.3 Sivujen generointi
4. Ulkoiset liittymät
5. Muut ominaisuudet
6. Laatusuunnitelma



1. Johdanto

1.1 Yleistä

SUSI-projektin tarkoituksena on kehittää Ohjelmatyö-kurssin (Tik-76.115) puitteissa ohjelmisto, jonka avulla voidaan editoida WWW-sivuja Javaa tukevan selainohjelman kautta. Ohjelman tarkoituksena on helpottaa WWW-järjestelmien ylläpitäjien työtä antamalla loppukäyttäjille suoran työkalun sivujen muokkaukseen ilman HTML-kielen osaamista. Järjestelmä mahdollistaa myös rajoitetun editoinnin pohjien (template) avulla, joissa määritellään erikseen sallitut toimenpiteet dokumentille. Lisäksi palvelin huolehtii käyttäjien tunnistamisesta, jolloin loppukäyttäjille voidaan antaa erilaisia oikeuksia eri dokumentteihin.

1.2. Termit

1.3. Vaatimusmäärittelyn sisältö

Luvussa 2 käsitellään järjestelmän yleiskuvaus arkkitehtuurista ja käyttöympäristöstä sekä käytettävistä työkaluista.
Luvussa 3 kerrotaan lyhyesti järjestelmän keskeisistä toiminnoista.
Luvussa 4 käydään läpi järjestelmän ulkoiset liitynnät, tietoliikennetarpeet sekä alustava näkemys käyttöliittymästä.
Luvussa 5 kerrotaan ohjelmiston yleisistä omainaisuuksista, jotka liittyvät lähinnä sen sisäiseen rakenteeseen.
Lopuksi luvussa 6 määritellään keskeiset laatukriteerit, joihin kehitystyössä panostetaan.

2. Yleiskuvaus

2.1 Käyttötarkoitus

Tässä ohjelmatyössä tuotetaan WWW-sisältötuotannon työkalu, jonka avulla voidaan tuottaa WWW-sivuja ennaltamäärättyjen sivupohjien (template) pohjalta ilman HTML-koodin kirjoittamista; järjestelmä huolehtii HTML-koodin generoinnista sivupohjien ja syötetyn datan perusteella.

2.2 Käyttäjät

Ensisijainen kohderyhmä ovat käyttäjät, joilla on WWW-sivujen tuottamiseen tarvittavat tiedot, mutta ei taitoa, kokemusta tai halua kirjoittaa sivuja HTML-muodossa. Järjestelmä on suunnattu myös organisaatioille, jotka haluavat tuottaa laadukkaita sekä ulkoasultaan ja layoutiltaan korkeatasoisia ja yhtenäisiä WWW-sivuja riippumatta siitä, kuka varsinaiset tiedot sivuille kirjoittaa.

2.3 Käyttöympäristö

Järjestelmä toteutetaan client/server-pohjaisella ratkaisulla. Asiakasohjelma toimii missä tahansa WWW-selaimessa, joka tukee vähintään JDK 1.02:lla tehtyjä editoriappletteja sekä HTML-kielen versiota 3.2.

Palvelinosa pyritään toteuttamaan mahdollisimman laitteisto- ja käyttöjärjestelmäriippumattomaksi käyttämällä Java-ohjelmointikieltä sekä tarpeen vaatiessa muita yleisiä skriptikieliä (esimerkiksi perl). Nopeudeltaan kriittisissä komponenteissa (kuten salauksen purku ja allekirjoitusten tarkistus) voidaan palvelimessa käyttää myös C++-kieltä, mutta nämäkin komponentit on ohjelmoitava mahdollisimman pienin muutoksin siirrettäviksi.

Ensisijaisesti kuitenkin toteutetaan palvelinosa jonkin UNIX:n päällä toimivaksi.

Järjestelmän vaatimat tietokanta-, tiedosto- ja tietoliikenneliittymät pyritään jättämään mahdollisimman avoimiksi. Vaatimuksena käytetylle tietokannalle on tuki JDBC-rajapinnalle.

Tietoliikenteen osalta vaaditaan asiakkaan ja palvelimen välille HTTP-yhteys, joka myös riittää ulkoisiin tietoliikenneyhteyksiin. Näin järjestelmää käytettäessä palomuureihin ei tarvitse avata uusia portteja.

Alla alustavat kaaviot järjestelmäarkkitehtuurista ja tietoliikenteen toteutusmalleista.

Järjestelmäkaavio
Kuva 1. WWW-editorin järjestelmäarkkitehtuurin yleiskuva

Järjestelmäkaavio
Kuva 2. Yleiskuva tietoliikenteen toteutusmalleista

3. Toiminnot

Vaaditut toiminnot voidaan jakaa kolmeen osaan: asiakasohjelma (editori), palvelin sekä sivujen generointi.

3.1 Asiakasohjelma

Järjestelmä generoi annetun sivupohjan perusteella asiakasohjelmalle sivun, joka toimii editorina tietojen syöttöä varten. Asiakas palauttaa syötetyn datan palvelimelle.

Editorin tyylillisistä ominaisuuksista toteutetaan ainakin tekstieditori, jolla voidaan säätää tekstityyliä lopulliselle HTML-sivulle. Lisäksi editoriapplettien on mahdollistettava yksinkertaisten taulukoiden muokkaaminen sekä erilaisten listarakenteiden ja linkkien lisääminen. Myös kuvien lisääminen palvelimen kuvakirjastosta on tarpeellinen toiminto.

3.2 Palvelin

Palvelin huolehtii sivupohjien ja datan tallennuksesta, arkistoinnista ja versionhallinnasta. Palvelin sisältää mekanismit asiakasohjelmien käyttäjien autentikointiin ja näiden oikeuksien hallintaan. Palvelin sisältää myös notifikaatiomekanismit, joilla järjestelmän ulkopuolisille WWW-palveluun kuuluville osille tiedotetaan uusista, muuttuneista ja poistetuista sivuista. Lisäksi palvelin tarjoaa indeksin järjestelmään syötetyistä sivuista.

3.3 Sivujen generointi

Palvelimesta voidaan erottaa erillinen osa, joka huolehtii HTML-koodin generoinnista annetun sivupohjan ja siihen liittyvän datan perusteella. Generaattori on erotettu varsinaisten palvelimesta, koska generaattoria voidaan käyttää myös HTML-koodin generointiin dynaamisesti eli esimerkiksi CGI-binäärin osana.

Sivugeneraattori toteutetaan siten, että HTML-koodi voidaan uudelleengeneroida helposti, jos sivuun liittyvä pohja muuttuu.

4. Ulkoiset liittymät

Järjestelmä tarjoaa ulospäin kohdassa 3.2 kuvatut notifikaatiomekanismit. Palvelimen ylläpitämä indeksi on myös tarjolla indeksisivujen ja muiden viittausten muodostamista varten. Sivugeneraattorin liittymänä ulospäin toimii hakemisto, johon generoidut HTML-sivut tallennetaan. Indeksi sisältää tiedot hakemistosta ja sen sisällöstä.

5. Muut ominaisuudet

Helppokäyttöisyyden lisäksi järjestelmällä on muutamia selkeitä toiminnallisia vaatimuksia. Näistä tärkeimpiä on turvallisuus, sillä luvaton käyttäjä voi aiheuttaa paljon haittaa muokkaamalla sivuja oman mielensä mukaan. Näin käyttäjien tunnistaminen ja oikeuksien rajoittaminen on suunniteltava huolellisesti.

Muutettavista dokumenteista on arkistoitava vanhat versiot, jotta palaaminen virheellisistä muutoksista olisi helppoa. Samalla järjestelmä kerää lokia tehdyistä muutoksista, jolloin väärinkäyttöä voidaan yrittää selvittää jälkikäteen.

Ohjelmisto pyritään myös suunnittelemaan ja toteuttamaan mahdollisimman helposti siirrettäväksi eri ympäristöjen välillä. Tätä varten koodaukseen käytetään java- ja perl-kieliä, jotka löytyvät kaikille yleisimmille alustoille. Toteutus tapahtuu aluksi jonkin UNIX-version päälle sekä Apachen HTTP-palvelimelle, mutta toivottavaa on myös helppo siirtäminen esimerkiksi Windows NT & Microsoft IIS -yhdistelmälle.

Dokumenttipohjien (template) määrittelemiseksi on laadittava HTML:ään laajennus, jossa sallitut editointikohteet voidaan määritellä. Ylläpidettävyyden kannalta tämä vaikeuttaa uusien editoitavien sivujen muodostamista, koska siihen vaaditaan myös laajennuskielen hallitseminen. Tähän tarkoitukseen voisi jatkossa kehittää oman editorinsa, mutta tämän kurssin puitteissa asiaa ei tutkita.

Ohjelmiston suorituskyky pyritään pitämään riittävänä, jotta käytettävyys ei kärsi. Kriittistä suorituskyvyn kannalta on käyttöliittymäapplettien koko, koska suurin osa käyttäjän odotteluajasta kuluu applettien siirtoon verkon yli. Appletit pyritään siis pitämään mahdollisimman pieninä. Palvelimen suorituskyky on pitkälti riippuvainen käytettävästä laitteistosta ja käyttöjärjestelmästä, mutta loppukäyttäjän (sisällöntuottaja) kannalta palvelimen suorituskyky ei ole kovin kriittistä. Kuitenkin palvelinohjelmisto toteutetaan käyttäen mahdollisimman tehokkaita ohjelmistoteknisiä, -arkkitehtuurisia ja algorimisiä ratkaisuja.

6. Laatusuunnitelma

Keskeisiä tavoitteita ohjelmatyön toteuttamiselle ovat:

Tuotettavaan ohjelmistoon liittyvät laatukriteerit

Laatukriteerit ovat tärkeysjärjestyksessä.

Kurssin suorittamiseen liittyvät laatukriteerit


$Id: vm.html,v 1.11 1997/11/03 07:18:44 avaltoka Exp $