58305102 Ohjelmistojen ylläpito
Seminaari, kevät 2005 (2 ov)
Jukka Paakki
Aika ja paikka
19.1.-4.5.2005, keskiviikkoisin klo 14-16,
B222 (Exactum).
Yleistä
Ylläpito on ohjelmistoprojektin vaiheista eniten resursseja vievimpiä.
Ohjelmiston ylläpidolla tarkoitetaan kaikkia ohjelmistoon sen
käyttöönoton jälkeen kohdistettavia muutostoimenpiteitä,
kuten virheiden korjaamista ja uusien piirteiden toteuttamista.
Seminaarissa käsitellään ohjelmistojen ylläpidon käsitteitä,
tehtäviä, prosesseja, menetelmiä ja aputyökaluja.
Seminaarin tavoitteena on sekä luoda kattava yleiskuva aihepiiristä
että esitellä systemaattisen ylläpidon lähestymistapoja.
Työskentely
Seminaarissa jokainen opiskelija pitää kirjalliseen tiivistelmään
perustuvan suullisen esitelmän johonkin
ohjelmistojen ylläpitoon liittyvästä aiheesta.
Mikäli opiskelijalla on (dokumentoituja) käytännön kokemuksia
ohjelmistojen ylläpidosta, voi myös niitä
esitellä seminaarissa.
Esitelmöinnnin lisäksi jokaisen on muutoinkin osallistuttava
aktiivisesti seminaarityöhön.
Jokaisella esitelmällä on nimetty opponentti,
joka tutustuu erityisen huolellisesti esitelmään ja sen aiheeseen.
Opponentin tehtävänä on seminaaritilaisuudessa tuoda esiin
esitelmään liittyviä täydentäviä ja kriittisiäkin näkökulmia.
Opponenttina toimii aina edellisen seminaarikerran esitelmöijä
(ensimmäisen esitelmän opponenttina toimii viimeinen esitelmöijä).
Kirjallisen alustuksen (7-10 sivua) on oltava valmiina viikkoa ennen
esitelmää. Alustus julkaistaan tällä seminaarisivulla,
ja jokaisen osallistujan - ei pelkästään opponentin - on tutustuttava
siihen etukäteen pystyäkseen osallistumaan seminaaritilaisuudessa
käytävään keskusteluun. Alustus on kirjoitettava suomeksi tai englanniksi.
Arvostelu
Seminaarin arvosana muodostuu seuraavista tekijöistä:
(1) kirjallinen alustus 30%,
(2) suullinen esitelmä 40%,
(3) opponointi 10%,
(4) muu aktiivinen osallistuminen keskusteluun 20%.
Suullisista esitelmätilaisuuksista saa olla poissa enintään
kaksi kertaa ilman hyvin perusteltua syytä.
Esitiedot
Ohjelmistotuotanto, Ohjelmistotuotantoprojekti ja joitakin ohjelmistotekniikan
laudaturkursseja.
Aikataulu
Mahdollisia aiheita
Alla luetellaan mahdollisia esitelmäaiheita sekä
vähintään yksi kuhunkin aiheeseen liittyvä lähde.
Esitelmille on etsittävä muitakin lähteitä kuin
alla mainitut! Esitelmille on annettava
aihetta kuvaava otsikko.
Myös opiskelijoiden omat aiheet (esimerkiksi käytännön
kokemuksista) ovat mahdollisia ja jopa toivottavia.
-
Ohjelmistoylläpidon tyypit.
N. Chapin, J. Hale, K. Khan, J. Ramil, W.-G. Tan:
Types of Software Evolution and Maintenance.
Journal of Software Maintenance and Evolution:
Research & Practice 13, 1, 2001, 3-30.
-
Ohjelmiston evoluutio.
C. Kemerer, S. Slaughter:
An Empirical Approach to Studying Software Evolution.
IEEE Transactions on Software Engineering 25, 4, 1999,
493-509.
-
Ohjelmien ymmärtämisen mallit ja prosessit.
A. von Mayrhauser, A.M. Vans:
Program Understanding: Models and Experiments.
In: Advances in Computers, vol. 40 (M.C. Yovits,
M. Zelkowitz, eds.). Academic Press, 1995, 1-38.
A. von Mayrhauser, A.M. Vans:
Identification of Dynamic Comprehension Processes during
Large Scale Maintenance. IEEE Transactions on
Software Engineering 22, 6, 1996, 424-437.
-
Ylläpidon tietotarpeiden lähteet.
J. Singer: Practices of Software Maintenance.
In: Proc. IEEE International Conference on Software
Maintenance, 1998. IEEE Computer Society, 1998, 139-145.
C. Seaman: The Information Gathering Strategies of
Software Maintainers.
In: Proc. IEEE International Conference on Software
Maintenance, 2002. IEEE Computer Society, 2002, 141-149.
- Ylläpitoprojektin työmäärän ja kustannusten arviointi.
A. De Lucia, A. Pannella, E. Pompella, S. Stefanucci:
Assessing Massive Maintenance Processes: An Empirical Study.
In: Proc. IEEE International Conference on Software
Maintenance, 2001. IEEE Computer Society, 2001, 451-458.
A. De Lucia, M. Di Penta, S. Stefanucci, G. Venturi:
Early Effort Estimation of Massive Maintenance Processes.
In: Proc. IEEE International Conference on Software
Maintenance, 2002. IEEE Computer Society, 2002, 234-237.
-
Ohjelmarakenteen vaikutus ylläpitoon.
D. Boehm-Davis, R. Holt, A. Schultz:
The Role of Program Structure in Software Maintenance.
International Journal of Man-Machine Studies 36, 1,
1992, 21-63.
D. Lanning, T. Khoshgoftaar:
Modeling the Relationship between Source Code Complexity
and Maintenance Difficulty.
Computer 27, 9, 1994, 35-40.
-
Ohjelmien viipalointi.
D. Binkley, K. Gallagher: Program Slicing.
In: Advances in Computers, vol. 43
(M. Zelkowitz, ed.). Academic Press, 1996, 1-50.
-
Ohjelman ylläpito hypertekstinä.
J. Paakki, A. Salminen, J. Koskinen:
Automated Hypertext Support for Software Maintenance.
The Computer Journal 39, 7, 1996, 577-597.
J. Paakki, J. Koskinen, A. Salminen:
From Relational Program Dependencies to Hypertextual
Access Structures. Nordic Journal of Computing
4, 1, 1997, 3-36.
-
Proseduraalisen ohjelman muuttaminen olioperustaiseksi
(reengineering).
S. Pidaparthi, G. Cysewski:
Case Study in Migration to Object-Oriented System Structure
Using Design Transformation Models.
In: Proc. First Euromicro Conference on
Software Maintenance and Reengineering, 1997.
IEEE Computer Society, 1997, 128-135.
J. Martin, H.A. Muller: Strategies for Migration from
C to Java.
In: Proc. 5th European Conference on
Software Maintenance and Reengineering, 2001.
IEEE Computer Society, 2001, 200-209.
-
Java-kielen käänteistekniikat (reverse engineering).
T. Systä, K. Koskimies, H. Muller:
Shimba - An Environment for Reverse Engineering Java
Software Systems. Software - Practice and Experience
31, 2001, 371-394.
-
Käänteistekniikoiden käyttökokemukset.
P. Tonella, G. Antoniol, R. Fiutem, F. Calzolari:
Reverse Engineering 4.7 Million Lines of Code.
Software - Practice and Experience 30, 2000, 129-150.
-
Ohjelman uudelleenmuotoilun (refactoring) vaikutus
ylläpidettävyyteen.
Y. Kataoka, T. Imai, H. Andou, T. Fukaya:
A Quantitative Evaluation of Maintainability Enhancement
by Refactoring.
In: Proc. IEEE International Conference on Software
Maintenance, 2002. IEEE Computer Society, 2002, 576-585.