gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio
DESCRIPTION
Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio. Ralph Back Ivan Porres. CREST: Center for Reliable Software Technology Åbo Akademi. CREST. Center for Reliable Software Technology Åbo Akademi/tietojenkäsittelyopin laitos Osa TUCSia (Turku Centre for Computer Science) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/1.jpg)
Gaudí - (kokeellinen) ohjelmistotehdas jaohjelmointilaboratorio
Ralph BackIvan Porres
CREST: Center forReliable Software TechnologyÅbo Akademi
![Page 2: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/2.jpg)
CREST Center for Reliable Software Technology Åbo Akademi/tietojenkäsittelyopin laitos Osa TUCSia (Turku Centre for Computer Science) Suomen Akatemian tutkimuksen huippuyksikkö (Formaalit
menetelmä ohjelmoinnissa) Keskittynyt ohjelmistotekniikan tutkimukseen Yksiköt:
Embedded systems (ES) Distributed Systems (DS) Software Construction (SC) Mechanized Reasoning (MR)
Noin 50 henkilöä (professorit, tutkijat,jatko-opiskelijat, lopputyön tekijät)
![Page 3: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/3.jpg)
CRESTin tutkimusfokus Luotettavien, oikein toimivien ohjelmistojen
rakentaminen Sovellutusalue laaja:
oliopohjaiset ohjelmat, ohjelmakomponentit UML, ohjelmistojen määrittely hajautetut ohjelmistot sulautetut järjestelmät VLSI piirit, hardware
Formaalien (matemaattisten) menetelmien soveltaminen ohjelmointityössä
![Page 4: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/4.jpg)
Ongelma
Miten rakennetaan luotettavia ohjelmistoja tutkimusympäristössä? Ohjelmisto osa tutkimusprojektia Projektilla rajoitettu aika, tavoitteet ja resurssit Ohjelmoijina useimmiten gradu/diplomityön tekijä Vaihtuvuus suuri, ohjelmoija häipyy kun lopputyö on tehty Vaikea rakentaa ja varsinkin ylläpitää suuria ohjelmistoja Ohjelmat rakennetaan miten
sattuu, ei kunnon prosessia Tutkimuksessa rakennetaan
yleensä vain prototyyppejä
![Page 5: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/5.jpg)
Ratkaisuyritys: Gaudi Perustetaan CRESTin uusi yksikkö, Gaudi, joka
toimii sekä ohjelmistoa tuottavana tehtaana, että ohjelmistotuotantoa tutkivana kokeellisena
laboratoriona Tehdas tuottaa ohjelmistoja tutkimusyksiköiden
tarpeisiin Laboratoriossa tutkitaan
tehtaassa sovellettavia tuotantoprosesseja
![Page 6: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/6.jpg)
Gaudí – ohjelmistoa tuottava tehdas Paikka jossa rakennetaan ohjelmistotuotteita tutkimuksen
tarpeisiin Nykyinen Gaudi on lähinnä pilootti Rahoitus: CREST tutkimusprojektit
näiden rahoitus: Suomen Akatemia, TEKES, Åbo Akademi, yritykset, TUCS, jne
CREST/Software Construction yksikkö vastaa Gaudin toiminnasta
Tuotannossa sovelletaan hyväksi havaittua ohjelmisto-prosessia
Tehdas pyörii pääosin opiskelijatyövoimalla
![Page 7: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/7.jpg)
Gaudi - tehdas
Tutkimus-yksiköt
(ES,DS,SC,MR)Gaudí
Tutkimustulokset,julkaisut, jne
Ohjelmistotuotteet, kokemukset, raportit, käyttöohjeet jne
CREST
toimeksiannotresurssit
ohjelmistot
![Page 8: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/8.jpg)
Tehtaan tavoitteet ja toiminta Päätavoite on ohjelmistojen tuottaminen Ohjelmiston tuottamisessa sovellettaan määrättyä
ohjelmointiprosessia Perustuu extreme programming menetelmään, sovituksineen Ohjelmistoprosessia kehitetään jatkuvasti
Ohjelmistotuotteen rakentamiseen osallistuvat: Ohjelmoijat (yleensä Åbo Akademin ja Turun yliopiston tk-
opiskelijoita) Ohjaaja (coach), valvoo ohjelmoijia ja prosessin soveltamista
(yleensä jatko-opiskelija) Asiakas (yleensä tutkimusjohtaja ) Tekninen tuki (laboratorioteknikot)
Tuoteprojektit yleensä lyhyitä Suurempi projekti jaetaan
osaprojekteihin
![Page 9: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/9.jpg)
Gaudi - ohjelmistotuotantoa kehittävä laboratorio Ohjelmistotehdas tuottaa jatkuvasti tietoa
käytettävän ohjelmistoprosessin hyvistä ja huonoista puolista
Laboratoriossa analysoidaan tieto ja kehitetään tämän perusteella prosessia
Laboratoriossa kokeillaan uusia ohjelmistotuotannon menetelmiä
Tarjoaa kokeellisen ympäristönohjelmistotuotannon menetelmäkehitykselle
![Page 10: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/10.jpg)
Gaudi –laboratorio
Tutkimus-yksiköt
(ES,DS,SC,MR)Gaudí
CREST
toimeksiannotresurssit
tulokset
Software Construction
yksikkö
kokeet tulokset
![Page 11: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/11.jpg)
Laboratorion tavoitteet Uusien menetelmien kehittäminen Olemassa olevien menetelmien arviointi kokeellisesti Ohjelmistoprosessin tavoitteet
Joustava tuotantoprosessi Helppo oppia, kevyt käyttää Johtaa luotettaviin ohjelmiin Hyvä ylläpidettävyys
Koejärjestelyt Huomioidaan ihmisen osuus
ohjelmointityössä Kontrolloidut koejärjestelyt Monitoroidut kokeet Tulosten laadullinen ja
määrällinen arviointi
![Page 12: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/12.jpg)
Koejärjestelyt
Yksittäisen tuotteen rakentaminen jaetaan ajallisesti osaprojektiin
Jokainen osaprojekti on koe, jota valvotaan ja jonka tuloksia analysoidaan
Eri kokeissa voidaan kokeilla erilaisia menetelmiä (prosesseja)
D0.1 D0.2 D.0.2.1
C0.2
B0.1 B0.4 B0.6 B1.0
A0.1 A0.3A0.2
tuote
aika
![Page 13: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/13.jpg)
Yksittäinen koe
Tehtävänä ohjelmistotuotteen rakentaminen ei tutkimusta, ainoastaan tuotteen rakentamista ei koulutuksellisia tavoitteita projektissa opiskelijoille maksetaan palkkaa työstä, ei
opintoviikkoja tk-opiskelijat toimivat ohjelmoijina hyvistä ohjelmoijista pyritään pitämään kiinni,
joten ohjelmoijien kokemus kasvaa Kokeella on rajoitettu koko
4-6 ohjelmoijaa 3-6 kuukauden kesto koko/osapäivätoimi kokonaisvolymi 1-2 miestyövuotta
![Page 14: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/14.jpg)
Gaudi- tuotantoprosessi Extreme programming (XP) perusmenetelmänä XP menetelmään kuuluu useita eri menetelmiä
osa näistä ovat pakollisia Gaudissa toisia kokeillaan ja sovitetaan Gaudin ympäristöön
Prosessia täydennetään muilla menetelmillä: Stepwise feature introduction
(ohjelmistoarkitehtuuri) Design by contract (komponenttin määrittely ja
testausmenetelmä) UML suunnittelukielenä Joustava ohjelmointikieli
(Python)
![Page 15: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/15.jpg)
Ohjelmoijien koulutus Noin 20 tuntia koulutusta ennen projektityön alkamista Aiheet (”best software practices”):
Extreme programming menetelmät Stepwise feature introduction UML kuvausten käyttö ohelmoinnissa Uudet ohjelmointikielet (Python, Eiffel,C++) Versionhallintajärjestelmä (CVS) Yksikkötestaus (PyUnit) Graafinen käyttöliittymä (Qt) Source forge käyttö ym.
Erikoisaiheet ohjelmistotuotteentarpeen mukaisesti
![Page 16: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/16.jpg)
Pakollisia XP menetelmiä pariohjelmointi (pair programming) yksikkötestaus keskeisessä asemassa (unit testing) lyhyet iterointisyklit usein toistuvat ohjelmiston rakenteen korjaukset
(refactoring) kevyt dokumentointi usein toistuva eri osien integrointi ohjaajalla (coach) keskeinen
asema työn ohjaamisessa riskien vähentäminen tutkimalla
hankalat kysymykset heti alussa(spike solutions)
ei ylityötä automaattinen testaaminen
![Page 17: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/17.jpg)
Planning User stories are written. Release planning creates the schedule. Make frequent small releases. The Project Velocity is measured. The project is divided into iterations. Iteration planning starts each iteration. Move people around. A stand-up meeting starts each day. Fix XP when it breaks.
Designing Simplicity. No functionality is added early. Choose a system metaphor. Use CRC cards for design sessions. Create spike solutions to reduce risk. Refactor whenever and wherever
possible.
Coding The customer is always available. All production code is pair programmed. Code must be written to agreed
standards. Code the unit test first. Only one pair integrates code at a time. Integrate often. Use collective code ownership. Leave optimization till last. No overtime.
Testing All code must have unit tests. All code must pass all unit tests before it
can be released. When a bug is found tests are created. Acceptance tests are run often and the
score is published.
![Page 18: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/18.jpg)
Kokeiltavia XP menetelmiä Asiakasmalli (on site customer) Release planning Projektinopeuden arviointi CRC korttien (tai vastaavan) käyttö Testien kirjoittaminen ennen kooodaamista
![Page 19: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/19.jpg)
Stepwise Feature Introduction
Ohjelmisto rakennetaan ohuina päällekkäisinä tasoina
Jokainen taso lisää yhden uuden piirteen, häiritsemättä alempien tasojen tuomia piirteitä
Jokainen taso muodostaa (alempien tasojen kanssa) tomivan ohjelmistotuotteen jota voidaan testata
ylemmistä tasoista riippumatta
Tavoitteena on ohjelmiston luotettavuuden, muunneltavuuden ja ylläpidettävyyden lisääminen.
![Page 20: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/20.jpg)
Keskeiset Gaudi tuotteet
Math Editor (4 osaprojektia) Outline tyyppien tekstieditori
matemaattisten todistusten kirjoittamiseen ja tarkistamiseen.
Software Construction Workbench (3 osaprojektia) UML-kaavojen ym editori,
ohjelmoitava ja laajennettave Software Modeling Workbench
(3 osaprojektia) Ohjelmointiympäristö joka
tukee Stepwise feature introduction menetelmää
![Page 21: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/21.jpg)
Math Editor
![Page 22: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/22.jpg)
Software modelling workbench
![Page 23: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/23.jpg)
Gaudi historiikki Kesä 2001: piloottivaihe
3 kuukautta 6 opiskelijaa, 3 ohjaajaa Yksi tuote
Kesä 2002 4 kuukautta 12 opiskelijaa, 3 ohjaajaa Kolme tuotetta
Syksy 2002 3 kuukautta 12 opiskelijaa, 3 ohjaajaa Kolme tuotetta
Kevät 2003 3 kuukautta 12 opiskelijaa 3 ylläpitoprojektia
Kesä 2003: 3 kuukautta 20 opiskelijaa, 6 ohjaajaa 2 laboratorioteknikkoa 5 tuotetta
![Page 24: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/24.jpg)
Kesän 2003 Gaudi tuoteprojektit 3-D UML kaavioiden animointi MathEditor Financial planner Mobile ad-hoc network Digital TV middleware
![Page 25: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/25.jpg)
Gaudí työtilat
280m2 tilat Huoneet kalustettu XP
tyyliin Suuri yhteinen alue
Tekninen tuki
Datacity B, 4th floor
![Page 26: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/26.jpg)
XP työhuoneen organisointi
Private AreaCommon Area
![Page 27: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/27.jpg)
Kokemuksia-1 Gaudi lähestymismenetelmä toimii hyvin
käytännössä Gaudi ohjelmistotehdas tuottaa ylläpidettäviä,
riittävän luotettavia ohjelmatuotteita Gaudi ohjelmointilaboratorio antaa hyvän
ympäristön erilaisten ohjelmointitekniikoiden kokeilemiseen
Kokeiden tuloksia käytetään Gaudin ohjelmistoprosessin parantamiseen
![Page 28: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/28.jpg)
Kokemuksia-2 XP menetelmästä pääosin myönteisiä kokemuksia
toimii hyvin yliopistoympäristössä opiskelijat tyytyväisiä ohjelmointiympäristöön ja
prosessiin asiakasmallin kokeilut myönteisiä, pitäisi lisätä
tämä standardiprosessiin XP vaatii kuitenkin täydennystä
tarvitaan kokonaisnäkemys ohjelmiston arkitehtuurista (esim SFI)
dokumentointia kehitettävä
![Page 29: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/29.jpg)
Gaudi laajennussuunnitelmat
ExperimentalGaudi
AcademicGaudi
IndustrialGaudi
Gaudia on tarkoitus laajentaaakateemisesta ympäristöstämyöskin yritysprojekteihin
![Page 30: Gaudí - ( kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio](https://reader035.vdocuments.site/reader035/viewer/2022062718/56812fdd550346895d95552e/html5/thumbnails/30.jpg)
Spanish architect, one of the most creative architects in modern times. His style is often described as a blend of neo-Gothic and Art Nouveau, but it also has elements of Surrealism and Cubism.
Gaudí attended the School of Architecture in Barcelona (1874-1878), where he spent his life. Under the patronage of industrialist Eusebio Güell, he completed many important commissions, including the Palacio Güell (1885-1889) and the Park Güell (1900-1914). In 1883 Gaudí was appointed official architect of the Church of the Sagrada Familia, which, although still unfinished at his death, is acknowledged as his masterpiece. Its lofty semi-Cubist towers, with mosaic-covered finials, dominate the skyline of Barcelona.
Antoni Gaudí i Cornet 1852-1926