Tik-76.138 Ohjelmistometodiikka - tentti 27.2.1996

Tik-76.138 Programming methodology - examination 27 February 1996

Merkitse koepaperiin kurssin nimi, päivämäärä, koko nimesi, koulutusohjelma ja opintokirjan numero. [Write the following information on your paper: The name of the course, date, your full name, your study programme and your study book number.]

1/4. Selitä lyhyesti seuraavat käsitteet (tai anna esimerkki): [Explain briefly the following concepts (or give an example):] (max 6 p.)

(a) Abstrakti kantaluokka [Abstract base class]

(b) Automaattinen muistinhallinta eli roskankeruu [Automatic memory management or garbage collection]

(c) Ystäväluokka C++:ssa [Friend class in C++]

(d) C++ -luokan staattinen jäsen [Static member of a C++ class]

(e) Vakiojäsenfunktio C++:ssa [Function overloading in C++]

(f) Nimikonflikti moniperinnässä [Name conflict in multiple inheritance]

2/4. Mitä yhteistä on C++:n ylikuormitetuilla funktioilla ja virtuaalifunktiolla, ja miten ne eroavat toisistaan? [What is common between overloaded and virtual functions in C++ and how they differ from each other?] (max 6 p.)

3/4. Heikko ja vahva tyypitys oliokielissä. [Weak and strong typing in object-oriented programming languages.] (max 6 p.)

4/4. Piirrä OMT-notaation mukainen oliokaavio, joka esittää seuraavat asiat kursseista ja opiskelijoista. [Draw the following an object model on university courses and students using the OMT notation.] (max 6 p.)

· Kurssilla on nimi ja koodi. [A course has a name and a code.]

· Kustakin kurssista on kurssiversioita. Kustakin kurssiversiosta tallennetaan luennointivuosi ja lukukausi. [Each course has a number of course versions. Each version stores the year and term (spring or autumn) when the course version is lectured.]

· Kurssiversio muodostuu osista (merkitse tämä aggregaattina). Kukin osa on tentti, harjoitustyö tai kirjallinen raportti. Erilaisista osista tallennetaan erilaisia tietoja, mutta niistä ei välitetä tässä tehtävässä. [A course version is composed of course units (mark this as an aggregate). Each unit is an examination, an assignment or a written report. Different kinds of units store different data, but they can be ignored here.]

· Opiskelija on perusopiskelija tai jatko-opiskelija. Kustakin opiskelijasta tallennetaan nimi ja opintokirjan numero. Lisäksi perusopiskelijasta tallennetaan koulutusohjelman koodi ja jatko-opiskelijasta perustutkinnon suoritusvuosi. [A student is an undergraduate student or a graduate student. Name and study book number are stored for each student. Moreover, a code for the degree programme is tored for an undergarudate student and the graduation year is stored for a graduate student.]

· Opiskelija voi olla suorittanut kurssien osia. Kustakin suorituksesta tallennetaan suorituspäivämäärä ja arvosana. [A student can have completed a number of course units. For each conrpleted course unit, one stores a date and grade.]

· Yksittäisten kurssin osien lisäksi opiskelija voi olla suorittanut kokonaisia kursseja. Kurssin suorituksesta tallennetaan samat tiedot kuin kurssien osien suorituksista. [In addition to irrdividual course units, a student can have completed a number of courses as whole. The same data are stored for completed courses as for completed course units.]