Tik-76.119 Programming methodology - examination 31 January 1995
Merkitse koepaperiin kurssin nimi, päivämäärä, koko nimesi, koulutusohjelmaja opintokirjan numero.
1/4. Selitä lyhyesti (korkeintaan viisi riviä) seuraavat käsitteet: (max 6 p.)
(a) Abstrakti kantaluokka
(b) Moniperintä
(c) Funktion ylikuormitus (C++)
(d) Automaattinen muistinhallinta eli roskankeruu
(e) Luokan rajapinta
(f) Parametroitu luokka (C++)
2/4. Vastaa lyhyesti seuraaviin C++ -kieltä käsittelevän kysymyksiin (max 6 p.)
(a) Kuinka luokan jäsenfunktio on esiteltävä, jotta funktion voisi haluttaessa määritellä uudestaan johdetussa luokassa?
(b) Kuinka luokan jäsenfuktio on esiteltävä, kun halutaan, että funktio on pakko määritellä johdetussa luokassa?
(c) Kuinka luokan jäsenfuktio on esiteltävä, jotta funktiota voisi kutsua luokasta johdettujen luokkien jäsenfunktioista (mutta ei mistä tahansa luokasta)?
(d) Luokan A jäsenfunktioiden halutaan pystyvän käsittelemään luokan B yksityisiä jäseniä. Kuinka luokkia A ja/tai B täytyy muuttaa?
(e) Luokka sisältää jäsenfunktion 'create', jolla luodaan luokan instansseja. Tätä funktiota ei siis kutsuta millekään olemassa olevalle oliolle. Kuinka funktio on määriteltävä?
(f) Anna esimerkki kohtaan 'xxx' kirjoitettavasta käskystä, joka on nyt virheellinen, mutta ei olisi virheellinen, jos vahvennetut sanat 'const' puuttuisivat.
class C
{
void f (const char *p) const;
int i;
}
void c::f (const char *p) const
{
xxx
}
3/4. Piirrä OMT-notaation mukainen oliomalli (hyvin paljon yksinkertaistetusta) kirjaston tietojärjestelmästä. Kaaviossa pitää esittää seuraavat asiat: (max 6 p.)
* Teos voi olla kirja tai äänite..
* Jokaisesta teoksesta tallennetaan tekijän nimi ja teoksen nimi. Kirjoista tallennetaan lisäksi ISBN-numero ja äänitteistä äänitteen pituus.
* Jokaisesta teoksestaon yksi tai useampia kappaleita. Kullakin kappaleella on oma hankintanumero. Merkitse teoksen ja sen kappaleiden välille aggregaatiosuhde.
* Kirjastoa käyttävät ihmiset esitetään lainaajina. Jokaisesta lainaajasta tallennetaan nimi ja osoite.
* Lainaajien ja teosten kappaleiden välillä on lainaussuhde. Kukin kappale voi olla korkeintaan yhdellä lainaajalla lainassa, ja yhdellä lainaajalla voi olla useita kappaleita lainassa. (Lainaajat esittävät kaikkia kirjastokortin omistajia, joten lainaajalla ei tarvitse olla yhtään kappaletta lainassa). Kustakin lainauksesta tallennetaan lainauspäivämäärä.
* Kahden kirjan välillä voi olla suhde, joka kertoo toisen kirjan olevan käännös toisesta kirjasta.
Käännössuhteessa olevien kirjojen roolit ovat "alkuperäinen"ja "käännös".'Yhdestä kir asta voi olla useampia käännöksiä, ja kullakin käännöksenä on täsmälleen yksi alkuperäisteos. Käännössuhteeseen liittyy kääntäjän nimi.
4/4. Piirrä seuraavan kuvauksen mukainen tilakaavio. (max 6 p.)
Järjestelmässä on kaksi päätilaa: A ja B. Järjestelmä on aluksi tilasssa A. Tila A sisältää alitilat A1 ja A2, vastaavasti tila B sisältää alitilat B1 ja B2. Päätilaan A tai B tultaessajärjestelmä on aluksi tilassa A1 tai B 1.
Tilasta A1 siirrytään tilaan A2 tapahtumana 'e1' mikäli samalla on voimassa ehto 'c1'. Tilasta A2 palataan tilaan A1 tapahtumalla 'e2'. Tilasta B1 siirrytään tilaan B2 tapahtumalla 'e3', takaisin tullaan tapahtumalla 'e4'. Tilassa B2 tapahtuma 'e5' suorittaa toiminnon 'a', mutta tila ei muutu.
Kaikista A:n alitiloista siirrytään tapahtumana 'e6' päätilaan B, ja kaikista B:n alitiloista siirrytään tapahtumana `e7' takaisin päätilaan A.