Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 1 (7)
Utvecklingsmiljö Ladok3
Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 2 (7)
Innehåll
1
Introduktion .....................................................................................................................4
2
Verktyg .............................................................................................................................4
2.1 IDE ........................................................................................................................4
2.2 Applikationsserver .................................................................................................4
2.3 Ramverk ................................................................................................................4
2.4 Acceptanstest .........................................................................................................5
2.5 Utforskande tester ..................................................................................................5
2.6 Lasttester ...............................................................................................................5
2.7 Gränssnittstester .....................................................................................................5
2.8 Byggserver ............................................................................................................6
2.9 Byggverktyg ..........................................................................................................6
2.10 Operativsystem ....................................................................................................6
2.11 Versionshantering ................................................................................................6
2.12 Wiki ....................................................................................................................7
Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 3 (7)
Utgåvehistorik för dokumentet
Utgåva
Datum
Kommentar
1.0
2011-10-04
Första version
1.1
2011-11-09
Lagt till verktyg
1.2
2011-11-10
Lagt till lasttester
1.3
2012-01-03
Lagt till mer om Spring
2.0
2012-01-18
Andra version
Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 4 (7)
1
Introduktion
Detta dokument beskriver hur utvecklingsmiljön för Ladok3 installeras.
Många av verktygen baseras på tidigare erfarenhet i NyA och Ladok samt andra projekt
som bedrivs på ITS. Det är inga experimentella verktyg som är föreslagna. Verktyget
Cucumber som skall användas för acceptanstester är kanske det mest oprövade kortet.
Det finns alternativa verktyg som JBehave eller Concordion om Cucumber inte skulle
möta behoven.
2
Verktyg
2.1
IDE
För själva programmeringen används Eclipse, som har visat sig bli det mest populära
open source-alternativet. Samma verktyg används i både nuvarande Ladok-förvaltning
och för NyA. I NyA används IBMs utökade Eclipse som heter Rational Application
Developer.
Eftersom Spring är ett fundament i modern Java-utveckling används den version av
Eclipse som är optimerad för Spring-ramverket. Eclipse SpringSource Tool Suite, 2.7.2 är
den kompletta IDE som används för Ladok3.
http://download.springsource.com/release/STS/2.7.2/dist/e3.7/springsource-tool-suite2.7.2.RELEASE-e3.7-win32-installer.exe
2.2
Applikationsserver
Historiskt sett har olika applikationsservrar varit det de-facto-sätt som serverbaserade
Java-applikationer blivit driftsatta. Som exempel kan vi ta NyA som nu är driftsatt på
IBM WebSphere Application Server eller Ladok på Web som är driftsatt på JBoss.
Den komplexitet som en komplett applikationsserver innebär är inte längre nödvändig.
Ett enklare sätt att utveckla och driftsätta applikationer är att använda servletmotorn
Tomcat. För de allra flesta applikationer behöver man inte något mer. I Ladok3 används
Tomcat 7.0.22. Om situationen uppstår där mer funktionalitet behövs är det enkelt att
migrera till en komplett applikationsserver.
http://apache.mirrors.spacedump.net/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat7.0.22.zip
2.3
Ramverk
Det ramverk som är de facto-standard i Java-världen är numera Spring. Tidigare har
Enterprise Java Beans varit det gällande valet, men med en enklare
Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 5 (7)
programmeringsmodell och ett mer omfattande stöd för applikationsutveckling, har
medfört att Spring nu tagit över.
Det enda realistiska alternativet är att använda CDI-standarden. Akronymen står för Java
Contexts and Dependency Injection for the Java EE platform. I dagsläget finns det bara
en implementation och det är Apache Weld som inte är lika mogen som Spring. Vi
bedömer att de båda teknikerna kommer att vävas ihop inom en snar framtid. Spring kan
redan idag använda sig av de annoteringar som finns i CDI-standarden.
2.4
Acceptanstest
I Ladok3 skall körbara acceptanstester driva utvecklingen. För att göra det på enklaste
sätt används verktyget Cucumber. Testerna skrivs i ett format som
verksamhetsrepresentanter kan förstå och kan exekveras i en testmiljö. Dessa tester blir
då en levande dokumentation stöd för utvecklingen i ett.
Ett exempel:
Egenskap: Registrera student
För att få studera på högskolan
Som student
Vill jag kunna registrera mig
Scenario: En kurs
Givet att jag är antagen på en kurs
När jag klickar på registrera
Så ska resultatet vara ”Registrerad” på skärmen
Fördelen med Cucumber är att verktyget är översatt till Svenska.
https://github.com/cucumber/cuke4duke
2.5
Utforskande tester
2.6
Lasttester
En viktig aspekt av ett systems acceptans och stabilitet är förmågan att hantera hög
belastning. För att möjliggöra det krävs regelbundna lasttester. För närvarande är det
NeoLoad som har tagit ledningen jämfört med andra verktyg som LoadRunner, Rational
Performance Tester, OpenSTA och JMeter. Vi föreslår därför att NeoLoad skall användas
för lasttester i Ladok3.
http://www.neotys.com/product/overview-neoload.html
2.7
Gränssnittstester
För att automatiskt testa användargränssnittet behövs ett verktyg för det. Eftersom
Ladok3 har ett webbgränssnitt används ett verktyg som speciellt anpassat för det kravet.
Selenium uppfyller kraven och används i både Ladok och NyA.
Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 6 (7)
http://release.seleniumhq.org/selenium-ide/1.3.0/selenium-ide-1.3.0.xpi
2.8
Byggserver
För att hantera alla mjukvarubyggen och automatiska tester behövs ett byggverktyg som
körs på en gemensam server. Tidigare har Huson varit det givna valet, men efter en
konflikt mellan Oracle och den open source-community som drivit projektet har det
delats upp i två. Det andra projektet heter Jenkins och bygger vidare på Hudson. I Ladok3
väljer vi att följa den open source-community som finns och använder Jenkins.
http://mirrors.jenkins-ci.org/war/latest/jenkins.war
2.9
Byggverktyg
För att köra tester och skapa distribuerbara delar av mjukvaran används ett byggverktyg.
Tidigare har Ant varit det mest populära, men Maven har på senare tid växit sig stark.
Fördelen med Maven är de inbyggda profilerna som skapar t.ex. en webbapplikation och
kör tester. Många andra verktyg integrerar med Maven, t.ex. Jenkins och Eclipse.
http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.3-bin.zip
2.10 Operativsystem
Ladok3 behöver driftsättas i en servermiljö. Java och Linux har länge använts ihop och
ger bra prestanda och enkel installation. Ladok3 använder samma operativsystem som
NyA och Ladok, Red Hat Enterprise 6 på 64-bitar. Fördelen med att använda Red Hat är
att vi får ett supportavtal och snabb tillgång till säkerhetspatchar. Red Hat är också
optimerat för virtualisering och eventuell drift i molnet.
https://rhn.redhat.com/rhn/software/downloads/SupportedISOs.do
2.11 Versionshantering
För versionshantering av kod och dokument finns det en stor mängd olika verktyg. Om
man reducerar ned floran till de mest använda finns det inte så många kvar. Vi har inte
valt att använda ett distribuerat versionshanteingssystem eftersom vi inte bedriver
utveckling efter den modellen. Kvar finns då i stort sett bara open-source-verktyget
Subversion och IBMs ClearCase.
ClearCase är inte lämpligt för nya projekt eftersom det har dyra licenskostnader och inga
funktionella fördelar jämfört med Subversion.
Vi har därför valt att använda Subversion 1.7.1 för versionshantering i Ladok3.
http://subversion.apache.org/packages.html#redhat
Utvecklingsmiljö
Version 2.0
Ladok3-projektet
2012-09-06
Mikael Berglund
Sida: 7 (7)
2.12 Wiki
För att kunna definiera domänmodellen och kommunicera på ett bra sätt i projektet skall
en Wiki användas. Det finns många olika Wiki-programvaror. Vi har valt att använda
Atlassians Confluence. Det finns flera anledningar till det. Bl.a. så är det samma
leverantör som gör JIRA som används för hantering av åtgärder för Ladok. Det gör att
man kan använda samma användaruppgifter i de båda systemen. I många fall kommer det
att vara samma personer som har tillgång till JIRA och Ladok3s Wiki. Många
organisationer använder Confluence, däribland NORDUnet och SWAMI. Det går också
att koppla Confluence till UML-diagram som skapas med verktyget Gliffy.