Faglærer : Tom Røise. IMT Objektorientert systemutvikling 1. IMT3102 Objektorientert systemutvikling. Læringsutbytte i emnebeskrivelsen.

Like dokumenter
Faglærer : Tom Røise. IMT Objektorientert systemutvikling 1. Temaer. IMT3102 Objektorientert systemutvikling Introduksjon av emnet høsten 2011

Open Source Community

Forelesning IMT Mars 2009

Open Source Software Development

Forelesning IMT apr 2010

Lynkurs 10. Januar 2012

Systemutviklingsmetoder

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Distributed object architecture

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Konfigurasjonsstyring

AlgDat 10. Forelesning 2. Gunnar Misund

EKSAMEN 05HBINDA, 05HBINFA, 05HBISA, 05HBMETEA, 06HBINFA. Tom Røise. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

A Study of Industrial, Component-Based Development, Ericsson

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

11 Planlegging og dokumentasjon

AlgDat 12. Forelesning 2. Gunnar Misund

Distributed object architecture

Tom Røise 9. Februar 2010

Kap 11 Planlegging og dokumentasjon s 310

Operativsystemer: Litt IT- og Linux-historie

Operativsystemer: Litt IT-historie

En praktisk anvendelse av ITIL rammeverket

Systemutvikling (Software Engineering) Professor Alf Inge Wang

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

Dagens. Faglærers bakgrunn IMT 1321 IT-LEDELSE. Faglærer : Tom Røise 11.Jan IMT1321 IT-Ledelse 1

IMT 1321 IT-Ledelse IMT 1321 IT-LEDELSE IMT 1321 IT-LEDELSE. Faglærer : Tom Røise 13.Jan IMT1321 IT-Ledelse 1. Dagens :

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

Moderne systemutviklingsmetoder. Smidige prosesser Kjetil Jørgensen-Dahl Objectnet as

Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus, våren Camilla Kaasi(s188070) Roza Moustafa(s188113)

Oppgave 1: Multiple choice (20 %)

Software Requirements and Design (SRD) 1 Generelt om dokumenter

Hvem er vi og hva gjør vi?

Operativsystemer: Litt IT- og Linux-historie

Tom Røise 18. Februar 2009

Kurskategori 3: Utvikling av IKT- systemer. høsten

Tom Røise IMT 2243 : Systemutvikling 1. Forelesning IMT Mars Designfasen i SU-prosjekter : Generelle steg i Designprosessen

Innhold. Innledning Del 1 En vei mot målet

Unified Consulting AS Objectnet AS

Bruk av HP Quality Center med smidige utviklingsmetoder. HP Sofware Norge

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

Introduksjon til kurset og dets innhold

Jonas Markussen Morten Ødegaard Nora Raaum

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag:

Jon Hammeren Nilsson, Anders Emil Rønning, Lars Grini og Erling Fjelstad

Kurskategori 3: Design av IKT- systemer. Normalt vår, 14/15: høst

Forelesning IMT Mars 2011

F.I.F.F.I.G. Fleksibelt og Innovativt system For FakultetsInformasjon og andre Greier

Smidig innhold Hvordan smidige metoder hjelper oss å lage kvalitetsinnhold. Ove Dalen

Forretningsmodeller med Fri Programvare

Software Development Plan. Software Development Plan. Forum / Nettverkssamfunn Team 2

Oppgaver uke 42. Systemutvikling

Kravspesifiseringsprosessen

Tom Røise 24.Mars 2009

inf 1510: bruksorientert design

Erfaringer fra en Prosjektleder som fikk «overflow»

PLAN. INF5180 Produkt og prosessforbedring i systemutvikling DEL 5 Målsetninger og måling. Geir Amsjø. geirams@ifi.uio.no, geir.amsjo@spitia.

Modellering IT konferanse

IA4412 Systemutvikling og dokumentasjon Læringsutbytte, arbeidsbelastning og vurderingsformer

Forelesning IMT Mars 2011

CONNECTING BUSINESS & TECHNOLOGY KURS OG SERTIFISERINGER - SCRUM

Øystein Haugen, Professor, Computer Science MASTER THESES Professor Øystein Haugen, room D

Gruppe 43. Hoved-Prosjekt Forprosjekt

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

OOSU 22.sept Pattern har sin opprinnelse innen arkitektur (byplanlegging / bygninger)

Søknadsfrist

Risikostyring og programvare utvikling i en smidig verden

Forprosjektrapport ElevApp

Software Innovation med Public 360 Online. Odd-Henrik Hansen, Salgsdirektør og partneransvarlig Oktober 2014

Altinns nye tjenesteverksted. Lars Vegard Bachmann, produkteier portal og tjenester, Altinn

IT Service Management

INF3221/4221 Phases, Decisions, Quality, Ethics

Strategi med kunden i fokus

Qt Jambi E t R ammeverks His torie

Hva kreves av en god byggherre? «Store utbyggingsprosjekter», 23. okt 2014

UKEOPPGAVER 2: SYSTEMUTVIKLINGSPROSESSER OG PROSJEKTARBEID INNSPILL TIL SVAR

Kravspesifikasjon. Dagens forelesning. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Kravspesifikasjon og objektorientert analyse

Prosessmodeller og smidig programvareutvikling. INF1050: Gjennomgang, uke 02

Studieplan 2011/2012

Kurskategori 2: Læring og undervisning i et IKT-miljø. vår

Tom Røise 27.Jan 2011

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Uke 5. Magnus Li INF /

Dagens IMT 1321 IT-LEDELSE. Faglærer : Tom Røise. IMT1321 IT-Ledelse 1. Faglærers bakgrunn

Bakgrunn. Kurset krever ingen spesielle forkunnskaper om modellering.

Hva er mappevurdering?

ISO 41001:2018 «Den nye læreboka for FM» Pro-FM. Norsk tittel: Fasilitetsstyring (FM) - Ledelsessystemer - Krav og brukerveiledning

Prosjektledelse - fra innsiden

Prosess til folket! AICIT work in progress. Copyright 2012 Accenture All Rights Reserved

Avdeling for teknologi - HiBu

Får man det man betaler for?

Lean markedsutvikling en raskere og tryggere vei til internasjonal vekst

Brukbarhet ved benyttelse av fri programvare i systemutvikling - en praktisk studie

Marin Prosjektering. IMT linjevalg 2012

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

Prosjektledelse, prosjektplanlegging, teamarbeid

Søknadsfrist

Studentdrevet innovasjon

Presentasjon 1, Requirement engineering process

Transkript:

IMT3102 Objektorientert systemutvikling 10 studiepoeng Bachelor i Programvareutvikling Emnet forutsetter IMT2243 Systemutvikling og bygger på IMT1082 Objektorientert programmering 5 timer pr uke (onsdag og torsdag) : forelesning, diskusjon, case, mappearbeid Evalueringsform : mappeevaluering!!! Tre individuelle arbeider to skal i presentasjonsmappa Tre gruppearbeider to skal i presentasjonsmappa Karakter settes ut fra presentasjonsmappa ingen eksamen Utstrakt tilbud om veiledning gjennom semesteret, men IKKE retting underveis kan forbedre arbeidene Et prosjektarbeid utføres mot en reell oppdragsgiver 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 1 Læringsutbytte i emnebeskrivelsen Studentene skal : oppnå kunnskaper om smidig systemutvikling og Open Source-basert systemutvikling bli i stand til å gjennomføre analyse og design basert på objektorientert modellering i modelleringsspråket UML. forstå Design Patterns og relevansen av å anvende dette ved programvaredesign, samt foreta arkitekturvurderinger ved utvikling av programvare 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 2 Temaer Kursets hovedtemaer Vekt Smidige systemutviklingsmetoder og Open Source Software Development (35 %) Objektorientert analyse og design med anvendelse av Unified Modelling Language (30 %) Programvarearkitektur og Design Patterns (35 %) 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 3 IMT3102 - Objektorientert systemutvikling 1

Determine objectives alternatives and constraints Plan next phase Evaluate alternatives identify, resolve risks analysis analysis analysis Operational Prototype 3 Prototype 2 protoype REVIEW type 1 Requirements plan Simulations, models, benchmarks Life-cycle plan Concept of Operation S/W requirements Product design Detailed Requirement design Development plan validation Code Design Unit test Integration and test plan V&V Integration Acceptance test Service test Develop, verify next-level product Faglærer : Tom Røise MAPPEARBEIDENE Mappe 1 : Open Source Software Development lære om denne arbeidsformen gjennom å kartlegge, analysere og sammenligne utvalgte OpenSourceprosjekter (Gruppearbeid) Mappe 2 : Smidige systemutviklingsmetoder lære mer om SCRUM og øvrige smidige metoder. Drøfte metodene opp mot hverandre og diskutere valg av metode i utviklingsprosjekt (individuell) Mappe 3 : Design Patterns utgangspunkt i Gang of Four pattern ene meget relevant og viktig fagfelt for en programvareutvikler (individuell) 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 4 MAPPEARBEIDENE Mappe 4: Inceptionfasen i et reelt systemutviklingsprosjekt smidig anvendelse av Unified Process og UML med vekt på problemforståelse og krav (gruppe) Mappe 5: Elaborationfasen i samme systemutviklingsprosjekt vekt på vurdering av alternative teknologier og programvareløsninger. Utforme skisse til arkitektur der også SOA og Cloud Computing inngår (gruppe) Mappe 6: Refleksjonsnotat der de ulike temaer vi har tatt for oss i emnet settes inn i en Bacheloroppgavekontekst og diskuteres (individuell) 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 5 Repetisjon fra Systemutvikling : Tradisjonelle Systemutviklingsmodeller Requirements definition System and software design Define outline requirements Assign requirements to increments Design system architecture Implementation and unit testing Integration and system testing Develop system increment Valida te Integrate increment increment System incomplete Vali dat e system Final system Operation and maintenance Concurrent activities Specification Initial version analysis Proto- Outline description Development Validation Intermediate versions Final version 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 6 IMT3102 - Objektorientert systemutvikling 2

forts. repetisjon Moderne tilnærminger til systemutvikling extreme Programming : Verdigrunnlag : Communication, Simplicity, Feedback, Courage 12 pratices : On-site Customer System Metafor Små releaser Planning Game Par programmering Felles eierskap Test før kode Refactoring Enkelt Design (DTSTTCPW) Kontinuerlig integrasjon Kode standard 40 timers uke 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 7 Methodology topics and samples (A. Cockburn ) / 19.Aug 2010 Forelesning 1 i IMT3102 høst 2010 8 Open Source Hva vet dere nå om dette temaet? IMT3102 - Objektorientert systemutvikling 3

Open Source Software Development Open Source begrepet knyttes ofte til et sett av kriterier for distribusjon av programvaren man har utviklet. Det er en misoppfatning at det her er snakk om gratis programvare. Aktører som legger ut sitt arbeid som Open Source gjør programvaren tilgjengelig i form av at mottaker gis frihet til bruk og også bearbeide den videre. Tilgang på kildekoden er et viktig element i dette. Man kan velge å utvikle en programvare på tradisjonelt vis og deretter slippe den ut som Open Source. Noen Open Sourceprosjekter tar steget videre og anvender en helt anderledes måte å kjøre selve utviklingen av programvaren på. Man velger her å involvere brukere av programvaren i selve utviklings- og testingsaktiviteten. Dette er OSSD! Man etablerer en gruppe (ofte idealistiske) systemutviklere til å komme med sine bidrag i programvaren (Developer Community), samtidig oppfordrer man alle brukere der ute til å teste og komme med feilrapporter og forslag til utvidelser (User Community). Litt historikk innen OSSD 1983 GNU-prosjektet startet av Richard Stallman. Mål om å lage et Unix-lignende operativsystem og distribuere det som fri programvare 1985 FSF Free Software Foundation stiftet av Richard Stallman Støtte til universell frihet til å distribuere og endre programvare uten. Fokuserer på fri som i frihet ikke fri som i gratis! 1991 Linus Torvalds lanserer sin ide om å utvikle et operativsystem og drar dermed i gang prosjektet som resulterer i Linux. I 2002 hadde anslagsvis 8000 årsverk av frivillig utviklingstid resultert i et operativsystem som ble benyttet på 25 % av verdens servere. 1997 Eric Raymonds diskuterer i sitt manifest The Cathedral and the Bazaar det han mener er fundamentale forskjeller mellom utviklingsprosesser for henholdsvis tradisjonell kommersiell programvare (Cathedral model) og internett-basert samarbeid og fri informasjonsdeling i prosjekter som Linux og Fetchmail (Bazaar model). 1998 Open Source begrepet etableres (http://www.opensource.org/docs/osd) Karakteristika ved OSSD-prosesser Må ha et startpunkt i form av et eksisterende produkt eller en genial ide. Gjerne også et nettverk av kontakter innen Open Source miljøer. Ulike utviklingsprosesser (A. Capiluppi m.fl): Soloarbeid, en person eier og videreutvikler programvaren, men distribuerer den som Open Source Soloarbeid med innslag av eksterne patcher. Her er det en utvikler, men eksterne bidragsytere gir inn feedback, patcher og eventuelt forslag til utvidelser Gruppearbeid med interne patcher. En lukket utviklergruppe som gjør all videreutvikling selv. Gruppearbeid med reelle bidrag fra større utvikler- og brukermasser (Reelt OSSD). IMT3102 - Objektorientert systemutvikling 4

Eksempler på OSSD Utviklingen av Linux ansees av mange som skoleeksemplet ikke bare på en velfungerende programvare distribuert som Open Source, men også som en reell OOSD utviklingsprosess der fordelene med å få engasjerte bruker- og utviklermiljøer er utnyttet til fulle. Andre kjente OpenSource : Apache Software Foundation, Mozilla Project, KDE, Open Office, Eclipse, Android, Viktige kildene for å finne gode Open Source prosjekter http://sourceforge.net/index.php http://freshmeat.net/ http://launchpad.net/ http://code.google.com/intl/no/ Open Source diskusjon : Hvilke Open Source programvare bruker dere? Hvilke Open Source prosjekter kjenner dere noe av historikken til? Hvilke trekk fra de ulike systemutviklingsmodellene er relevant i en OSSD sammenheng? Hva finner dere igjen fra extreme Programming som kan være relevant i OSSD? Hvor viktig er responstid innen Open Source prosjekter? Hva er motivasjonen for å bidrar som henholdsvis User og eller Developer, og hva er belønningen? Hvorfor skulle du som HiG student vurdere å bidra i et Open Source prosjekt? Open Source temaer : Roller i OS-prosjekter : Prosjektleder, release manager, bug master, dokumentansvarlig, web-ansvarlig, sikkerhetsansvarlig Core developer, Active developer, User (aktiv), User (passiv), Bug fixer, Reader (holder seg informert) Motivasjon til deltagelse Idealisme, Læring, Livsstil - addicted, Ære, Aksept blant likesinnede, CV-fokus, Karrierestart, Savner noe i programvaren man selv har behov for, Egoboo Kommunikasjonskanaler : Web site, Mailing lists, Versjonskontroll, Bug tracking, Real-time chat Lederstiler : Konsensus-basert (votingsystem/lazy consensus), Enehersker, Benevolent dictator Benevolent dictatorship is a form of government in which an authoritarian leader exercises political power for the benefit of the whole population rather than exclusively for his or her own self-interest or benefit or for the benefit of only a small portion of the population. IMT3102 - Objektorientert systemutvikling 5

Open Source temaer : User Community : Påpeke feil (Thousand eyeballs ansvar for å sjekke duplikater mer og mer i fokus), Melde nye krav og ønsker, Være aktive på informasjonsfora skape diskusjon og debatt rundt SW, Skape entusiasme for bruk innselgere i egen org Release policy : Gamle feil rettet og nye introdusert, Ny funksjonalitet, Utvidet funksjonalitet (forbedret tidligere), Endringer i installasjonsrutiner Veldig viktig at nyheter er beskrevet!! Tredelt : 2.2.1 Major.Minor.Micro - ulikt grad av kompabilitet her Konfig.styring : Alt Jon L. sa er helt og fullt inne i alle typer Open Source prosjekter, de som ikke praktiserer lever ikke lenge Open Source temaer : Kommersielle aktørers motiv : Bidrag for å øke interesse for HW. Marked for salg av supporttjenester (konsulentvikrsomhet) Utvikle lukkede utvidelser som selges Operere med Dual lisens (kommer mer og mer) Tjene penger på Reklame Slippe ellers dødende interne applikasjoner skape blest / goodwill Open Source roller : IMT3102 - Objektorientert systemutvikling 6

Open Source Bug-lifecycle. Open Source MAPPE 1 : Velg dere ut 3 4 OS-prosjekter som dere går inn og gransker nøye. NB! bruk tid til å orientere dere først og bytt gjerne ut enkeltprosjekter underveis Finn ut : Målsetting for prosjektet, Hvem utvikler, organisering, lisensvalg, informasjonskanalene vurder web-side side, wikibruk, mailinglister, IRC, Antall deltagere i ulike kategorier, styringsstruktur, releaser, popularitet, Fork-historikk, prog.språk, plattformer Kommersielle aktører vs frivillige, betalte vs ubetalte, kobling til andre prosjekt, kom.versjon/fri versjon? Bug-innblikk, Historikken til prosjektet, startet det med working code Tilbakemeldinger på deltagelse hyppighet, form, åpenhet Analyser likheter, forskjeller. Hva har dere lært av disse som dere selv vil anvende den dagen dere gründer et OSSD-prosjekt Open Source Mappe forts. : Hvis kontakt gjør klart at dere har et education-oppdrag som er kartlegging ikke deltagelse. Ikke spill potensielle utviklere for å få ut info mot reglene og god OSSD skikk. Hvis dere vil være Users så gjør det seriøst, ellers bare bruk tilgjenglig og åpen info. Kild h i i ikti P j kt id kl t ikti kild Kildehenvisninger viktig. Prosjektsiden klart viktigs kilde, men mys også litt rundt etter prosjektomdømme utenfor. IMT3102 - Objektorientert systemutvikling 7