58172-1 Ohjelmistotuotanto: Koetehtäviä


Erikoistyö, kuulustelu 15.12.94 - Software engineering project, examination 15-DEC-94
Harri Laine
  1. Toimintapistemenetelmä työmäärän arvioinnissa - periaate, edut ja haitat.
    Function point method in estimating effort - principles, benefits and deficiencies.
  2. Analysoi prototyyppien käyttöä eri elinkaarimalleissa.
    Analyse the use of prototypes in software life cycle models.
  3. Ohjelmiston integrointitavan vaikutukset toteutusvaiheen työskentelyyn?
    How does the way of integrating software modules affect on the implementation process?
  4. Hyvä ohjelmointityyli, mitä tulisi välttää ja mitä suosia?
    A good programming style, what to avoid and what to prefer?
  5. Miten laadit testiaineiston?.
    How do you select the test cases?
Kunkin tehtävän maksimipistemäärä on 6. - Maximum credit for each question is 6 points.
Minkään tehtävän vastaus ei saa olla kahta (2) sivua pidempi! - No answer should exceed 2 pages in length.

Erikoistyö uusintakuulustelu 3.2.95
Harri Laine
  1. Ohjelmiston määrittelylle asetetavat vaatimukset?
    Demands on software specifications.
  2. Luokkakirjastojen käyttö - miksi, milloin, miten?
    The use of class libraries - why, when, how?
  3. Ohjelmistoprojektin tuottavuuten vaikuttavat tekijät?
    Factors that affect on the productivity of a software project?
  4. Millainen on hyvä moduulijako?
    Explain a good module decomposition?
  5. Katselmukset ohjelmistotuotannossa.
    Reviews in software engineering.
Kunkin tehtävän maksimipistemäärä on 6. - Maximum credit for each question is 6 points.
Minkään tehtävän vastaus ei saa olla kahta (2) sivua pidempi! - No answer should exceed 2 pages in length.

Erikoistyö uusintakuulustelu 29.8.1995
Harri Laine
  1. Boehmin spiraalimalli - käyttötarkoitus ja periaatteet.
    Boehm's Spiral Model - use and principles.
  2. Millainen on hyvä moduulijako?
    Explain a good module decomposition?
  3. Testiaineiston suunniteluperiaatteet?
    Principles in the design of test data?
  4. Ylläpidettävyys ja miten se saavutetaan?
    Updatability and how it can be achieved?
  5. Selvitä lyhyesti ohjelmistotuotannon kypsyysmalli.
    Explain briefly the maturity model for software engineering.
Kunkin tehtävän maksimipistemäärä on 6. - Maximum credit for each question is 6 points.

Ohjelmistotuotanto, kertauskoe 10.10.95
Inkeri Verkamo
  1. Ohjelmatuotteen elinkaaren eri vaiheissa ohjelmistotuotantoon osallistuu useita eri henkilöryhmiä, joilla on erilaiset näkökulmat ja tarpeet laadittavan tuotteen suhteen. Nimeä nämä ryhmät ja selosta, missä suhteessa niiden tarpeiden välillä voi olla ristiriitoja.
  2. Mitä tarkoitetaan ohjelmatuotteen hallinnalla (software configuration management)?
  3. Miten ei-toiminnalliset vaatimukset kuvataan määrittelydokumentissa? Milloin ja miten selvitetään, että tuote täyttää asetetut ei-toiminnalliset vaatimukset?
  4. Mistä osavaiheista ohjelmiston suunnittelu koostuu? Selvitä, mitä kussakin vaiheessa tehdään ja mitä dokumentin osia niissä syntyy.
  5. Standardit ohjelmistotuotannon eri vaiheissa: mitä ja miksi on tarpeen standardoida?
  6. Katselmukset.
Kunkin tehtävän maksimipistemäärä on 10 pistettä.
Vastaa lyhyesti ja selkeästi - mikään tehtävä ei edellytä yli kahden sivun pituista vastausta!

Erikoistyö uusintakuulustelu 24.11.1995
Harri Laine
  1. Toimintopisteanalyysi - periaatteet ja käyttötarkoitus.
    Function point analysis - principles and usage.
  2. Luokkakirjastojen käyttö - miksi, milloin, miten? Ero aliohjelmakirjastoihin?
    The use of class libraries - why, when, how? How class libraries differ from function libraries.
  3. Ohjelmistokomponenttien integrointistrategiat ja niiden vaikutukset toteutus- ja testausprosesseihin.
    Strategies for software component integration and their effects on the software implementation and testing process.
  4. Millainen on hyvä moduulijako?
    Explain a good module decomposition?
  5. Katselmukset ohjelmistotuotannossa.
    Reviews in software engineering.
Kunkin tehtävän maksimipistemäärä on 6. - Maximum credit for each question is 6 points.

Ohjelmistotuotanto, kertauskoe 19.12.95
Inkeri Verkamo
  1. Miten ohjelmistotuotanto eroaa yksittäisen ohjelman tekemisestä?
    How does software engineering differ from making a single program?
  2. Työmäärän arviointi COCOMO-menetelmässä. Mitkä ovat COCOMO-mallin mukaan viisi keskeisintä työmäärään vaikuttavaa tekijää?
    Estimation of development effort in COCOMO. According to COCOMO, what are the five most important factors influencing the development effort?
  3. Mihin määrittelydokumenttia käytetään ja miten sen käyttötarpeet vaikuttavat dokumentin esitystapaan ja rakenteeseen?
    What is the requirements document used for and how does its use influence the presentation and the structure of the document?
  4. Ohjelmistorakenteen kiinteys ja kytkentä: mitkä seikat lisäävät tai vähentävät ohjelmiston (ja sen osien) kiinteyttä tai kytkentää?
    Cohesion and coupling in the software structure: what increases or decreases cohesion or coupling of the software?
  5. Ohjelmiston integrointistrategiat ja niiden hyvät ja huonot puolet.
    Software integration strategies, their advantages and disadvantages.
  6. Suunnittele suppea, mutta riittävä testitapausjoukko alla olevan ohjelman testaamiseksi ottamatta kantaa ohjelman toteutukseen. Selvitä kunkin testitapauksen osalta, miksi se on tarpeen.
    Give a small but adequate set of test cases to test the following program, irrespective of its implementation. Explain why each test case is necessary.
    The program reads three integers representing the sides of a triangle. Depending on the shape of the triangle, the output is one of the following: equilateral (tasasivuinen), isosceles (tasakylkinen), scalene (erisivuinen).
Kunkin tehtävän maksimipistemäärä on 10 pistettä. - Maximum credit for each question is 10 points.
Minkään tehtävän vastaus ei saa olla yli kahden sivun pituinen! - No answer should exceed 2 pages in length!

Ohjelmistotuotanto, kertauskoe 28.2.96
Inkeri Verkamo
  1. Miksi ohjelmistoprojektissa tarvitaan dokumentointia?
  2. Piirrä yksinkertainen tilakaavio ja selitä, mitä perusosia se sisältää ja mitä niillä kuvataan. Mihin tilakaavioita voidaan käyttää ohjelmistoprojektissa?
  3. Projektin ajankäytön suunnittelu ja seuranta: miksi näitä tarvitaan, mihin ne perustuvat ja millaisia apuvälineitä niihin käytetään?
  4. Mitä ohjelmiston laadulla tarkoitetaan ohjelmiston tuottajan, käyttäjän ja käyttäjäyrityksen näkökulmasta? Millä tavoin nämä eri näkökulmat vaikuttavat ohjelmiston laadun arviointiin?
  5. Yksi suunnitteluvaiheen tehtäviä on moduulijaon ja rajapintojen määrittely. Mitä näkökohtia rajapintojen määrittelyssä on otettava huomioon?
Kunkin tehtävän maksimipistemäärä on 8 pistettä.
Minkään tehtävän vastaus ei saa olla yli kahden sivun pituinen!

Software Engineering (Project Work), exam 28.2.96
Inkeri Verkamo
The exam is based on Roger S. Pressman, Software Engineering - A Practitioner's Approach, Third Edition, McGraw-Hill 1992 (chapters 1-4, 6-7, 10-11, 14, 16-19).
  1. What is the purpose of documentation in a software project?
  2. Draw a simple data flow diagram and explain its basic elements and their purpose. What are data flow diagrams used for in a software project?
  3. Project schedule planning and tracking: why do we need it, how is it done and what kind of tools and techniques can be used for it?
  4. What does software quality mean - as seen by the producer of the software, by the user of the software, or by the enterprise using the software? How do these different viewpoints influence software quality evaluation?
  5. One of the tasks during the design phase is designing the modularization of the system and defining the module interfaces. How would you characterize a good modular design?
Maximum credit for each question is 8 points.
No answer should exceed 2 pages in length!

Ohjelmistotuotanto, kertauskoe 12.4.96
Inkeri Verkamo
  1. Ohjelmiston elinkaari ja vaihejakomallit?
  2. Piirrä yksinkertainen tietovuokaavio ja selitä, mitä perusosia se sisältää ja mitä niillä kuvataan. Mihin tietovuokaavioita voidaan käyttää ohjelmistoprojektissa?
  3. Mitä, miksi ja miten ohjelmistotuotannossa sertifioidaan?
  4. Katselmukset (tarkastukset) ohjelmistoprojektissa: mitä hyötyä niistä on - mitä ongelmia niihin liittyy?
  5. Uudelleenkäytön tärkeimmät edut ja keskeiset ongelmat ohjelmistotuotannossa.
Kunkin tehtävän maksimipistemäärä on 8 pistettä.
Minkään tehtävän vastaus ei saa olla yli kahden sivun pituinen!

Ohjelmistotuotanto, kertauskoe 11.6.96
Inkeri Verkamo
  1. Mitkä ovat vesiputousmallin ja protoiluun perustuvan ohjelmiston kehityksen olennaiset erot? Millaisessa ohjelmistoprojektissa käyttäisit vesiputousmallia - entä protoilua?
  2. Piirrä yksinkertainen luokkakaavio (oliokaavio) ja selitä, mitä perusosia se sisältää ja mitä niillä kuvataan. Mihin oliokaavioita käytetään?
  3. Mitä tarkoitetaan ohjelmatuotteen hallinnalla? Millaisia välineitä siihen tarvitaan?
  4. Vertaa koodin tarkastamista ja testaamista laadunvarmistuksen menetelminä - mitä etuja ja mitä haittoja niihin liittyy?
  5. Millainen on hyvä moduulijako?
Kunkin tehtävän maksimipistemäärä on 8 pistettä.
Minkään tehtävän vastaus ei saa olla yli kahden sivun pituinen!

Ohjelmistotuotanto, kertauskoe 14.10.1996
Jukka Paakki
  1. Mitkä ovat ohjelmistotuotannon suurimmat ongelmat?
  2. Mitä tarkoitetaan seuraavilla käsitteillä?
  3. Mitkä ovat ohjelmistojen keskeiset suunnitteluperiaatteet, ja mihin niillä pyritään?
  4. Anna esimerkki (järkevästä) tietovuokaaviosta, jossa käytetään kaikkia tietovuokaaviosymboleja. Selitä, mitä kaaviosi kuvaa.
  5. Millainen on mielestäsi laadukas ohjelmisto? Perustele vastauksesi.
Kunkin tehtävän maksimipistemäärä on 8.
Yhdenkään tehtävän vastaus ei saa olla yli kahden sivun pituinen !

Ohjelmistotuotanto, kertauskoe 15.11.1996
Jukka Paakki
  1. Miten laaditaan projektin aikataulu, ja miten seurataan sen toteutumista? Miksi ylipäänsä tarvitaan aikataulua ja sen seurantaa?
  2. Millaisia dokumentteja syntyy tyypillisessä (laadukkaassa) ohjelmistonkehitysprosessissa, ja miksi niitä on syytä tuottaa?
  3. Ohjelma lukee henkilöiden syntymäaikoja ja tulostaa niiden henkilöiden lukumäärän, jotka ovat syntyneet jonkin kuun viimeisenä päivänä. Syntymäajat annetaan muodossa DD-MM-YYYY, missä DD ilmaisee päivän, MM kuukauden ja YYYY vuoden; esimerkiksi 15-11-1996. Millaisia testitapauksia käyttäisit testatessasi ohjelmaa ns. mustalaatikkomenetelmällä (black-box testing, functional testing)? Selvitä kunkin testitapauksen osalta, miksi se on tarpeen.
  4. Mitkä ovat yleiset ohjelmistojen suunnitteluperiaatteet? Mihin tavoitteisiin näillä periaatteilla tähdätään?
  5. Mitkä ovat oliokeskeisten menetelmien keskeiset käsitteet ja mekanismit? Anna luokkakaavio (oliokaavio, oliomalli), joka havainnollistaa joitakin näistä käsitteistä ja mekanismeista. Kerro, mitä kaaviosi kuvaa. Käytä OMT(++)-notaatiota.
Kunkin tehtävän maksimipistemäärä on 8.
Yhdenkään tehtävän vastaus ei saa olla yli kahden sivun pituinen !

Ohjelmistotuotanto, kertauskoe 14.2.1997
Jukka Paakki
  1. Millaisia ohjelmiston ominaisuuksia voidaan kuvata (a) kulkukaavioilla, (b) tietovuokaavioilla, (c) tilakaavioilla, (d) ER-kaavioilla ja (e) luokka(olio)kaavioilla? Minkätyyppisten sovellusten kuvaamiseen nämä tekniikat sopivat parhaiten?
  2. Mitä tarkoitetaan katselmuksella, ja mitä vaiheita se sisältää?
  3. Mitä tarkoitetaan ohjelmistotuotteen hallinnalla?
  4. Mitkä ovat ohjelmistojen ylläpidon lajit? Luonnehdi jokaista niistä lyhyesti. Mitä ongelmia liittyy ylläpitoon?
  5. Mitkä ovat projektipäällikön tehtävät? Millainen henkilö sopii projektipäälliköksi? Perustele vastauksesi jälkimmäiseen kysymykseen.
Kunkin tehtävän maksimipistemäärä on 8.
Yhdenkään tehtävän vastaus ei saa olla yli kahden sivun pituinen !

Ohjelmistotuotanto, loppukoe 11.4.1997
Jukka Paakki
  1. Kuvaa ohjelmistotuotannon vesiputousmalli. Mitä ongelmia siihen liittyy?
  2. Mitä tarkoitetaan seuraavilla oliokeskeisillä käsitteillä?
    (a) Luokkahierarkia.
    (b) Abstrakti luokka.
    (c) Dynaaminen sitominen.
    (d) MVC-malli.
  3. Anna yksinkertainen esimerkki suunnittelusta, jossa sovellat osittamista sekä käytät abstraktioita ja rajapintoja. Miksi nämä ovat hyviä ohjelmistojen suunnittelu- ja toteutusperiaatteita?
  4. Tarkastellaan seuraavaa ohjelmanpätkää. Muodosta sitä vastaava tietovuoverkko (data flowgraph) muuttujan x suhteen. Mitkä verkon polut on käytävä testauksessa läpi, jotta saavutetaan (a) kaikki käytöt -strategian (all-uses) mukainen kattavuus muuttujan x suhteen, (b) kaikki määrittelyt -strategian (all-definitions) mukainen kattavuus muuttujan x suhteen? Minimoi kummassakin tapauksessa tarvittavien testiajojen määrä.

    x:= 10;
    read(y);
    if x=y then y:= x+x else y:= x+y;
    write(x);
    write(y);

  5. (a) Mikä on projektisuunnitelman tyypillinen sisältö? (4 p.)
    (b) Kuka suomalainen julkisuuden henkilö (esimerkiksi poliitikko) soveltuisi luonteeltaan erityisen hyvin projektipäälliköksi ja kuka erityisen huonosti? Perustele vastauksesi. (Kyseessä ei ole välttämättä ohjelmistotuotannon projektipäällikkyys.) (4 p.)
Kunkin tehtävän maksimipistemäärä on 8.
Yhdenkään tehtävän vastaus ei saa olla yli kahden sivun pituinen !

Ohjelmistotuotanto, loppukoe 12.5.1997
Jukka Paakki
  1. Kuvaa tarkastustilaisuuden (inspection) kulku sekä siihen osallistuvien henkilöiden roolit.
  2. Määrittele lyhyesti seuraavat tuotteenhallinnan käsitteet:
    (a) konfiguraatio
    (b) johdettu komponentti
    (c) versio
    (d) vaihetaso.
  3. Mitä tarkoitetaan ohjelmistojen testauksessa lausekattavuudella ja haarakattavuudella (eli päätöskattavuudella)? Havainnollista ko. testausmenetelmien eroa sopivan esimerkkiohjelman ja sitä vastaavan vuoverkon avulla.
  4. Leipäkone on oletusarvoisesti lepotilassa. Kone aktivoidaan asettamalla ainessammio raaka-aineineen paistopesään ja panemalla hiiva-annos omaan lokeroonsa. Tämän jälkeen on valittava valmistettavan leivän laji (hiivaleipä, tumma leipä, patonki tai taikina). Valmistus voidaan joko käynnistää leipävalinnan jälkeen välittömästi tai viivästää sitä määrittelemällä ajastustoiminnon kautta odotusjakson pituus. Jälkimmäisessä tapauksessa kone aloittaa leivän valmistuksen vasta sen jälkeen, kun odotusjakso on kulunut umpeen. Odotusjakson pituus ilmaistaan erikseen tunteina ja minuutteina. Valmistusvaihe sisältää leipämassan työstämisen (kaikille leipälajeille) ja paistamisen (kaikille leipälajeille paitsi taikinalle). Kone ilmoittaa leivän valmistumisesta äänimerkillä, minkä jälkeen se siirtyy lepotilaan. Mikäli ajastetun odotusjakson tai valmistusvaiheen aikana tulee sähkökatkos, jättää kone tästä ilmoituksen näytölleen ja palaa automaattisesti lepotilaan.
    Kuvaa leipäkoneen toiminta tilakoneena (eli tila-automaattina tai tilakaaviona).
  5. Mitä tarkoitetaan suunnittelumalleilla ja sovelluskehyksillä? Havainnollista molempia sopivalla esimerkkihahmotelmalla. Miksi juuri olioperustaiset menetelmät soveltuvat hyvin sovelluskehysten toteuttamiseen?


Ohjelmistotuotanto, loppukoe 14.5.1997
Jukka Paakki
  1. Kuvaa testauksen ns. V-malli, ja selitä lyhyesti sen jokainen testaustaso.
  2. Mitä tarkoitetaan laadukkaalla ohjelmistolla?
  3. Mitkä ovat käyttäjän ja järjestelmän väliset vuorovaikutustyylit, ja mitkä ovat kunkin vuorovaikutustyylin hyvät ja huonot puolet?
  4. Selitä esimerkin avulla, mitä tarkoitetaan ohjelmistoprojektissa (a) työnosituksella (WBS, work breakdown structure) ja (b) kriittisellä polullla.
  5. Alfredo-pizzapuodissa tehtävä tilaus muodostuu pizzoista ja juomista, joita kumpaakin voi tilata kerralla useamman kappaleen. Juomavalikoimasta löytyy alkoholijuomia (olut, siideri) ja limuja (cola, jaffa, kivennäisvesi). Pizzoja on kolmenlaisia: normaaleja pizzoja, pannupizzoja ja kylkiäispizzoja. Normaalipizzoissa on juustoa sekä 1-5 lajia muita täytteitä (jauheliha, salami, kinkku, herkkusieni, tonnikala). Pannupizzoissa on juustoa sekä 1-2 lajia muita täytteitä (salami, sipuli). Kylkiäispizzoissa on muutoin sama täytevalikoima kuin normaaleissa pizzoissa, mutta itse pizzan lisäksi annokseen kuuluu joko salaatti tai kossuvissy. Normaaleja pizzoja on kolmea kokoa (small, medium, large), mutta pannupizzoja vain yhtä kokoa.
    Mallinna Alfredon tilausvalikoima OMT-menetelmän luokkakaaviona.

Ohjelmistotuotanto, loppukoe 15.8.1997
Jukka Paakki
  1. Kuvaa ohjelmistotuotannon ns. vesiputousmalli. Mitä ongelmia siihen liittyy?
  2. Kuvaa testauksen ns. V-malli, ja selosta lyhyesti sen jokainen testaustaso.
  3. Mitä tarkoitetaan seuraavilla oliokeskeisillä käsitteillä? Anna esimerkki jokaisesta.
    (a) Olio.
    (b) Luokkahierarkia.
    (c) Abstrakti luokka.
    (d) Suunnittelumalli.
  4. Mitkä ovat ohjelmistojen ylläpidon lajit? Luonnehdi jokaista niistä lyhyesti.
  5. Mitkä ovat projektinhallinnan osa-alueet? Luonnehdi jokaista niistä lyhyesti.