Objektorienterede metoder

Gang 12. Kvalitet i større systemer

Evt.: Ekstremprogrammering (XP)

Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

projektopgaven i OOM

Hvordan går det med dit projekt ?

Marcelo Bombaci - holdbarhedsdokumentationen

Peter - DIMS (softwaredistributionssystem)

Ilsemarie

Brian - baseline tool (tjekke versioner af filer)

Jan Bjerregaard Madsen - udenlandske vareforsendelser

Torben

Henrik Klarskov

Morten

Jens

Lisbeth Friis - Luftforureningsvarslingssystem

Anders Jørgen - et PoS system

Nasser Mobaraki - Andedammens Regnskab

Klaus Elmquist - design af procedurale mønstre

Anders - Unittest-framework for X++

Udviklingsmiljøer i større grupper

Fejlrapporteringssystemer

Kapitel 18 (udleveret tidligere) i Ron Patton: Software Testing

BugZilla - http://www.bugzilla.org - Open Source

Bruges til netlæseren Mozilla, Apache-webserveren, Linux-kernen og mange andre Open Source-projekter

Collab.Net

Bruges til udviklingen af OpenOffice.org - eksempel

sourceforge.net

Sted til mere end 100000 projekter med åben kildekode

Versionskontrolsystemer

ofte er fejlrapporteringssystem og versionskontrolsystem integrerede

En fejlrapports

livscyklus

(kilde: The Bugzilla Guide)

Versionskontrolsystemer

Versionskontrolsystemer

Subversion (SVN) - http://subversion.tigris.org/

Efterfølgeren til CVS (begge har Åben Kildekode)

Simpel brug (lokalt)

Installér Subversion (et sæt kommandolinjeværktøjer) og kør

svnadmin create /path/to/repos

svn import /tmp/project file:///path/to/repos -m "Initial import"

svn checkout file:///path/to/repos/trunk project

De 3 trin kan også gøres fra JBuilder (det er lettere)

Webserver med Subversion

Installér (på Linux er det pakken apache2-mod_authz_svn)

I Apaches konfigurationsfil, tilføj:

LoadModule dav_svn_module modules/mod_dav_svn.so

<Location /svn/repos>

DAV svn

SVNPath /path/to/repos

</Location>

Afprøv fra netlæser: http://localhost/svn/repos/

Derefter fra kommandolinje/JBuilder:
svn co "http://localhost/svn/repos/" arbejdskopi

Adrætte processer

Adræt = letvægt

Adaptiv - reagere på det der 'dukker op'

i modsætning til prediktiv - at planlægge alt på forhånd

et radikalt opgør med 'vandfaldsmodellen'

Godt til

Uklare, delvist ukendte eller skiftende krav

Ansvarlige og motiverede udviklere

Kunder, der forstår og gerne vil involveres i udviklingsprocessen

Dårligt til

Udviklingsgrupper med over 100 deltagere

Kontrakter med fast defineret pris og funktionalitet

Manifest for adræt programudvikling

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

(citat fra http://agilemanifesto.org/)

Adrætte processer

Eksempler

Ekstremprogrammering (XP)

...

Scrum

Projekt køres i iterationer á 30 dage (sprints)

Ingen ændringer i krav under en iteration

Dagligt 15-minutters møde (scrum)

Feature Driven Development (FDD)

Projekter med Åben Kildekode

En eller to vedligeholdere, der 'ejer' koden

Alle andre sender programrettelser til dem

UP / RUP ?

Afhænger af hvordan den bruges

Ekstremprogrammering

Hyppige afleveringer

Fælles metafor (sprog)

Testdrevet udvikling

Parprogrammering

Enkelt design

Refaktorering

Fælles ejerskab

Kunden deltager

40 timers arbejdsuge

Fælles kodestandarder

Løbende systemintegration

Ekstremprogrammering

Ekstremprogrammering

Ekstremprogrammering

Ekstremprogrammering

Adrætte processer

Læsning

Artikel The New Methodology

http://www.martinfowler.com/articles/newMethodology.htm

Manifesto for Agile Software Development

http://agilemanifesto.org/

What is Extreme Programming?

http://xprogramming.com/xpmag/whatisXP.htm

Extreme Programming: A gentle introduction.

http://extremeprogramming.org/

Objektorienterede metoder

Præsentatoner fra kurset

2004-08-30T12:23:21