Presentasjon av masteroppgave Student: Stian Rørlien Arbeidsgiver: Liquiline AS Veiledere: Carsten Helgesen og Lars-Petter Helland
Agenda Kort presentasjon av Liquiline Oppgavens bakgrunn Problembeskrivelse Problemanalyse Løsningsbeskrivelse (så langt) Demonstrasjon av applikasjonen
Kort om Liquiline AS Privateid selskap etablert i 2005 Leverer tjenester og utstyr knyttet til produksjon og distribusjon av gass. Spesialister i flytende nedkjølte gasser Formål: Bidra til etablering av infrastruktur for gass Markedsområder: Naturgass, Bioenergi, Hydrogen/Hytan, Industrigasser (LIN/LOX/LAR), Flytende CO2 Organisasjon: 6 ansatte, hvorav 3 partnere med teknisk og kommersiell kompetanse og erfaring fra hele gasskjeden – produksjon/transport/mottak ISO 9001-sertifisert av Det norske Veritas
Noen av våre referansekunder
Tjenester og Produkter PROSJEKT- TJENESTER UTSTYR SERVICE TRANSPORT SYSTEM
Oppgavens bakgrunn Eksisterende systemer: Excel regneark med logistiske beregninger Relasjonsdatabase (Liquisys) Webgrensesnitt (Liquisys) Mangler mulighet for informasjonsoverføring mellom Liquisys og regneark Få administrative muligheter Ingen kalkuleringer
Problembeskrivelse Oppgaven deles inn i to hoveddeler: Liquisys: Metodikk Liquisys: Visjon: Kan man samle alle våre databehov i et og samme system, skreddersydd for vår organisasjon? Ny applikasjon – komplett verktøy for gassdistribusjon Logistikk, Overvåking, Kart, Miljøregnskap osv. Masteroppgaven begrenses til å gjelde logistikk og overvåking Eksisterende webløsning skal fortsatt være kundens grensesnitt mot databasen Ny applikasjon må inneholde muligheter for administrering av systemet
Problembeskrivelse Metodikk Ta utgangspunkt i ”extreme programming” (XP) Følge de 12 praksisene (http://www.xprogramming.com/xpmag/whatisxp.htm) Noen praksiser vil falle bort naturlig: Parprogrammering Felles kodeeierskap Se spesielt nøye på følgende praksiser: Planleggingsspillet Testdrevet utvikling Refaktorering
Problemanalyse - Liquisys Hvordan ta høyde for ny funksjonalitet i fremtiden? Vil komme til ny funksjonalitet etter at masteroppgaven er ferdig Hvordan skaffe tilgang til tredjeparts server uten å skape en sikkerhetsrisiko Databasen ligger på en server driftet av Here4You. Serveren brukes også av andre enn Liquiline. Hvordan skal grensesnittet mellom applikasjonen og SQL databasen fungere? Flere mulige løsninger. Hvilken er best for dette systemet?
Problemanalyse - Metodikk Hvordan fungerer XP når man bare har en programmerer? Hva mister man? Finnes det klare positive fordeler? Hvor fremtredende vil refaktorering være i et prosjekt med bare en deltager? Vil det bli gjort flere feil uten parprogrammering? Vil totaloversikt gjøre behovet for refaktorering mindre? Blir iterasjonsplanleggingen enklere når man jobber alene Kan man bruke kunden enda mer aktivt? Tar planleggingsfasen kortere tid når man programmerer alene? Hvordan skal applikasjonen testes Akseptansetesting Testing av GUI
Løsningsbeskrivelse - Liquisys Hvordan ta høyde for ny funksjonalitet i fremtiden? Enkelt kodedesign (XP) gjør introduksjon av ny funksjonalitet enklere Hvordan skaffe tilgang til tredjeparts server uten å skape en sikkerhetsrisiko SSH-tunell + All kommunikasjon er kryptert - Ulike brukere på server og database. Må logge inn med 2 ulike brukernavn og passord Hvordan skal grensesnittet mellom applikasjonen og SQL fungere? JPA + Sparer tid i det lange løp - Ressurskrevende i starten av prosjetet
Løsningsbeskrivelse - Metodikk Hvordan fungerer XP når man bare har en programmerer? Vanskeligere å holde fokus som soloprogrammerer Hvor fremtredende vil refaktorering være i et prosjekt med bare en deltager? Refaktorering kan tas mer på sparket Minimalt med refaktorering ved sammenslåing av moduler Blir iterasjonsplanleggingen enklere når man jobber alene Meget effektivt å ha kunde tilgjengelig Kunde setter pris på å bare ha en person å forholde seg til Tar meget kort tid mellom iterasjonsmøte og kodestart Hvordan skal applikasjonen testes Kunde får ny versjon etter hver iterasjon Testing av GUI følger ”checklist” prinsippet Virker til tider lite effektivt Feil har blitt oversett
Demonstrasjon av applikasjon
Spørsmål?