Upload
barry-weaver
View
35
Download
2
Embed Size (px)
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 Presentation
Citation preview
Gaudí - (kokeellinen) ohjelmistotehdas jaohjelmointilaboratorio
Ralph BackIvan Porres
CREST: Center forReliable Software TechnologyÅbo Akademi
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)
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ä
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ä
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
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
Gaudi - tehdas
Tutkimus-yksiköt
(ES,DS,SC,MR)Gaudí
Tutkimustulokset,julkaisut, jne
Ohjelmistotuotteet, kokemukset, raportit, käyttöohjeet jne
CREST
toimeksiannotresurssit
ohjelmistot
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
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
Gaudi –laboratorio
Tutkimus-yksiköt
(ES,DS,SC,MR)Gaudí
CREST
toimeksiannotresurssit
tulokset
Software Construction
yksikkö
kokeet tulokset
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
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
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
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)
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
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
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.
Kokeiltavia XP menetelmiä Asiakasmalli (on site customer) Release planning Projektinopeuden arviointi CRC korttien (tai vastaavan) käyttö Testien kirjoittaminen ennen kooodaamista
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.
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ää
Math Editor
Software modelling workbench
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
Kesän 2003 Gaudi tuoteprojektit 3-D UML kaavioiden animointi MathEditor Financial planner Mobile ad-hoc network Digital TV middleware
Gaudí työtilat
280m2 tilat Huoneet kalustettu XP
tyyliin Suuri yhteinen alue
Tekninen tuki
Datacity B, 4th floor
XP työhuoneen organisointi
Private AreaCommon Area
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
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ä
Gaudi laajennussuunnitelmat
ExperimentalGaudi
AcademicGaudi
IndustrialGaudi
Gaudia on tarkoitus laajentaaakateemisesta ympäristöstämyöskin yritysprojekteihin
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