Ohjelmistojen vaatimusmäärittely
Seminaari, syksy 2003 (2 ov)
Jukka Paakki
Aika ja paikka
16.9.-9.12.2003, tiistaisin klo 14-16, A320.
Yleistä
Seminaarissa tarkastellaan ohjelmistojen vaatimusmäärittelyä
(software requirements engineering): sen keskeisiä käsitteitä,
menetelmiä ja tekniikoita. Vaatimusten määrittely on
ohjelmistoprojektien tärkeimpiä vaiheita, koska silloin luotavan
perustan muuttaminen projektin myöhemmissä vaiheissa on
vaikeaa ja syö sekä aikaa että henkilöresursseja.
Seminaarissa käsitellään ohjelmistojen vaatimusmäärittelyä
laajasti ja syvällisesti tavoitteena luoda kokonaisvaltainen
kuva sekä (a) vaatimusten tarkasta määrittelystä (jolloin niitä
ei tarvitse muuttaa) että (b) vaatimusten löyhästä kartoittamisesta
(jolloin niitä voi iteratiivisesti kehittää).
Työskentely
Seminaarissa jokainen opiskelija pitää kirjalliseen tiivistelmään
perustuvan suullisen esitelmän jostakin
ohjelmistojen vaatimusmäärittelyyn liittyvästä aiheesta.
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 (5-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.
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.
-
Vaatimusten luokittelu.
(a) R.T. Yeh: Requirements Analysis - A Management Perspective.
In: Proc. IEEE Computer Society's 6th International Computer
Software & Applications Conference (COMPSAC 82),
Chicago, Illinois, 1982, 410-416.
(b) Jokin ohjelmistotekniikan oppikirja.
-
Vaatimusten esiinkaivelu (elicitation).
(a) I. Sommerville, P. Sawyer:
Requirements Engineering - A Good Practice Guide.
John Wiley & Sons, 2000, Chapter 4: 63-109.
(b) I.K. Bray: An Introduction to Requirements Engineering.
Addison-Wesley, 2002, Chapter 3: 41-50 & Chapter 9: 223-234.
-
Vaatimusten hallinta.
P. Haumer, K. Pohl, K. Weidenhaupt:
Requirements Elicitation and Validation with Real World Scenes.
IEEE Transactions on Software Engineering 24, 12, 1998, 1036-1054.
-
Vaatimusten validointi.
(a) M.P.E. Heimdahl, N.G. Leveson:
Completeness and Consistency in Hierarchical State-Based
Requirements. IEEE Transactions on Software Engineering
22, 6, 1996, 363-377.
(b) C.L. Heitmeyer, R.D. Jeffords, B.G. Labaw:
Automated Consistency Checking of Requirements Specifications.
ACM Transactions on Software Engineering and Methodology
5, 3, 1996, 231-261.
(c) B. Boehm, H. In: Identifying Quality-Requirement Conflicts.
IEEE Software 13, 2, 1996, 25-35.
-
Vaatimusten jäljittäminen.
(a) F.A.C. Pinheiro, J.A. Goguen:
An Object-Oriented Tool for Tracing Requirements.
IEEE Software 13, 2, 1996, 52-64.
(b) B. Ramesh, M. Jarke:
Toward Reference Models of Requirements Traceability.
IEEE Transactions on Software Engineering 27, 1, 2001, 58-93.
-
Skenaariot.
(a) A.G. Sutcliffe, N.A.M. Maiden, S. Minocha, D. Manuel:
Supporting Scenario-Based Requirements Engineering.
IEEE Transactions on Software Engineering 24, 12, 1998, 1072-1088.
(b) J.M. Carroll, M.B. Rosson, G. Chin, J. Koenemann:
Requirements Development in Scenario-Based Design.
IEEE Transactions on Software Engineering 24, 12, 1998, 1156-1170.
-
Formaali lähestymistapa käytännössä.
(a) B. Dutertre, V. Stavridou:
Formal Requirements Analysis of an Avionics Control System.
IEEE Transactions on Software Engineering 23, 5, 1997, 267-278.
(b) J. Crow, B. Di Vito:
Formalizing Space Shuttle Software Requirements: Four Case Studies.
ACM Transactions on Software Engineering and Methodology
7, 3, 1998, 296-332.
-
Formaali + epäformaali lähestymistapa.
N.G. Leveson: Intent Specifications:
An Approach to Building Human-Centered Specifications.
IEEE Transactions on Software Engineering 26, 1, 2000, 15-35.
-
Toteutus vs. vaatimusmäärittely.
S. Antoy, D. Hamlet:
Automatically Checking an Implementation against Its Formal
Specification. IEEE Transactions on Software Engineering
26, 1, 2000, 55-69.
-
Vaatimusten tarkastaminen ja katselmointi.
(a) J. Martin, W.T. Tsai:
N-fold Inspection: A Requirements Analysis Technique.
Communications of the ACM 33, 2, 1990, 225-232.
(b) G.M. Schneider, J. Martin, W.T. Tsai:
An Experimental Study of Fault Detection in User Requirements.
ACM Transactions on Software Engineering and Methodology
1, 2, 1992, 188-204.
(c) A.A. Porter, L.G. Votta:
An Experiment to Assess Different Defect Detection Methods for
Software Requirements Inspections.
In: Proc. 16th (IEEE) International Conference on
Software Engineering, Sorrento, Italy, 1994, 103-112.
-
Vaatimusten priorisointi.
J. Karlsson, K. Ryan:
A Cost-Value Approach for Prioritizing Requirements.
IEEE Software 14, 5, 1997, 67-74.
-
Vaatimusten evoluutio.
(a) T. Tamai, A. Itou:
Requirements and Design Change in Large-Scale Software
Development: Analysis from the Viewpoint of Process Backtracking.
In: Proc. 15th (IEEE) International Conference on Software
Engineering, Baltimore, Maryland, 1993, 167-176.
(b) A.I. Antón, C. Potts:
Functional Paleontology: System Evolution as the User Sees It.
In: Proc. 23rd (IEEE) International Conference on Software
Engineering, Toronto, Canada, 2001, 421-430.
-
"State-of-the-practice".
(a) J. Siddiqi, M.C. Shekaran: Requirements Engineering: The
Emerging Wisdom. IEEE Software 13, 2, 1996, 15-19.
(b) P. Zave, M. Jackson:
Four Dark Corners of Requirements Engineering.
ACM Transactions on Software Engineering and Methodology
6, 1, 1997, 1-30.