Gaud - PowerPoint PPT Presentation

About This Presentation
Title:

Gaud

Description:

Gaud - (kokeellinen) ohjelmistotehdas ja ohjelmointilaboratorio Ralph Back Ivan Porres CREST: Center for Reliable Software Technology bo Akademi – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 31
Provided by: IvanP85
Category:
Tags: gaud | projects | vlsi

less

Transcript and Presenter's Notes

Title: Gaud


1
Gaudí - (kokeellinen) ohjelmistotehdas
jaohjelmointilaboratorio
  • Ralph Back
  • Ivan Porres

CREST Center for Reliable Software
Technology Åbo Akademi
2
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-opi
    skelijat, lopputyön tekijät)

3
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ä

4
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 rakennetaanyleensä vain
    prototyyppejä

5
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 tutkitaantehtaassa sovellettavia
    tuotantoprosesseja

6
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

7
Gaudi - tehdas
Tutkimustulokset, julkaisut, jne
CREST
Tutkimus- yksiköt (ES,DS,SC,MR)
Gaudí
toimeksiannot resurssit
ohjelmistot
Ohjelmistotuotteet, kokemukset, raportit,
käyttöohjeet jne
8
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

9
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

10
Gaudi laboratorio
CREST
Tutkimus- yksiköt (ES,DS,SC,MR)
Gaudí
toimeksiannot resurssit
tulokset
kokeet
tulokset
Software Construction yksikkö
11
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

12
Koejärjestelyt
D0.1
D0.2
D.0.2.1
tuote
C0.2
B0.1
B0.4
B0.6
B1.0
A0.1
A0.3
A0.2
aika
  • Yksittäisen tuotteen rakentaminen jaetaan
    ajallisesti osaprojektiin
  • Jokainen osaprojekti on koe, jota valvotaan ja
    jonka tuloksia analysoidaan
  • Eri kokeissa voidaan kokeilla erilaisia
    menetelmiä (prosesseja)

13
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

14
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 (ohjelmistoarkitehtu
    uri)
  • Design by contract (komponenttin määrittely ja
    testausmenetelmä)
  • UML suunnittelukielenä
  • Joustava ohjelmointikieli(Python)

15
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

16
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 tutkimallahankalat
    kysymykset heti alussa(spike solutions)
  • ei ylityötä
  • automaattinen testaaminen

17
  • 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.

18
Kokeiltavia XP menetelmiä
  • Asiakasmalli (on site customer)
  • Release planning
  • Projektinopeuden arviointi
  • CRC korttien (tai vastaavan) käyttö
  • Testien kirjoittaminen ennen kooodaamista

19
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.

20
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ää

21
Math Editor
22
Software modelling workbench
23
Gaudi historiikki
  • Kesä 2003
  • 3 kuukautta
  • 20 opiskelijaa, 6 ohjaajaa
  • 2 laboratorioteknikkoa
  • 5 tuotetta
  • 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

24
Kesän 2003 Gaudi tuoteprojektit
  • 3-D UML kaavioiden animointi
  • MathEditor
  • Financial planner
  • Mobile ad-hoc network
  • Digital TV middleware

25
Gaudí työtilat
  • 280m2 tilat
  • Huoneet kalustettu XP tyyliin
  • Suuri yhteinen alue
  • Tekninen tuki

Datacity B, 4th floor
26
XP työhuoneen organisointi
Common Area
Private Area
27
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

28
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ä

29
Gaudi laajennussuunnitelmat
  • Gaudia on tarkoitus laajentaaakateemisesta
    ympäristöstämyöskin yritysprojekteihin

Academic Gaudi
Experimental Gaudi
Industrial Gaudi
30
Antoni Gaudí i Cornet 1852-1926
  • 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.
Write a Comment
User Comments (0)
About PowerShow.com