INF våren Fra problem til program. Utvikling av store datasystemer. Eksempel: Lage en nytt hus. Oversikt:
|
|
- Niclas Ødegaard
- 6 år siden
- Visninger:
Transkript
1 Oversikt: INF våren 2008 Fra problem til program Stein Gjessing Inst. for informatikk n Fasene i utvikling av datasystemer n Utviklingsmetoder n Fossefall og Unified Process (UP) n Smidig systemutvikling n Hvordan finne et forslag til klassene i systemet n UML n Substantivmetoden n Design av programmet n Top-down og bottom-up programmering n Innkapsling og grensesnitt n Programmønstre n Testing (bare litt) 1 2 Utvikling av store datasystemer n Aktiviteter: Hvilke ulike arbeidsoppgaver er det i utviklingsarbeidet n Eller er det bare å starte å programmere? n Utviklingsmetodikk: De ulike aktivitetene i arbeidet, er det noen anbefalt måte/rekkefølge å gjøre disse på? n Gjøres de hver for seg i rekkefølge - en etter en? n Gjøres de i parallell - alle sammen eller bare noen? n Gjentas noen av aktivitetene, eller blir man greit ferdig med dem en etter en? n Økonomi: Er det enkelt/mulig å få vite hvor mye et datasystem vil koste å lage? n Vanligvis ikke! - Men vi lærer (kanskje) Eksempel: Lage en nytt hus Arbeidet deles i aktiviteter: n Planlegge rom-behov (typer og antall/størrelse) n Tegne hus (arkitekt) n Bygge hus: n Velge entreprenør/utbygger/håndverkere n Velge materialer/innredning n Søke tillatelser,.., n Kostnadsestimering og finansiering Mange av aktivitetene går i flere runder (tegne hus,..) Man kan f.eks gå tilbake til en tidligere aktivitet (rombehov) som resultat av en annen aktivitet (kostnadene), men noen aktiviteter må klart gå foran andre. Dette er et enkelt problem sammenlignet med å lage et datasystem fordi svært mange lignende hus er laget før. 3 4
2 Oversikt over aktivitetene i programutvikling: Hvordan utføres aktivitetene i prosjektet Aktivitetene (stegene) i utviklingen av et datasystem: 1. Forprosjekt 2. Kravspesifikasjon 3. Analyse 4. Design 5. Programmering 6. Testing 7. Dokumentasjon, brukeropplæring, innføring Hvilken rekkefølge skal vi utføre disse stegene, en etter en eller overlappende? En eller flere ganger? Er det noe system - en anbefalt metode? Hva med vedlikehold av et eksisterende programsystem? 5 Utviklingsmetoder - hvordan gjennomføre aktivitetene : n Bli helt ferdig med en før du begynner på neste. Fossefalls-modellen n Gammeldags, urealistisk, fordi: n Kan ikke ombestemme oss, vanskelig å hel-spesifisere noe man ikke ser eller har testet n Nyttes nå bare nå i militære systemer og romfart n Iterativt ( Unified Process - UP) - starter på flere aktiviteter samtidig og gjør alle aktiviteter flere ganger, men: n Forprosjektet ferdiggjøres raskt n Hver gang vi har gjenntatt Kravspekk, Analyse, Design og Programmering, Testing lager vi en ny versjon av systemet med litt mer funksjonalitet enn den forrige versjonen. n Et profesjonelt prosjekt går framover ved at det minst hver 2-3 uke lages en ny versjon som kan testes. n Smidig systemutvikling 6 Smidig systemutvikling (agile) n Ett nytt virkende system ofte n Hver uke hver 4. uke n Hver iterasjon inneholder n Planlegging kravspesifikasjon design koding testing - dokumentasjon n Brukere og programmerere snakker mye sammen n Det virkende systemet definerer fremdriften n Ny funksjonalitet og forandringer kan lett legges inn n Lett å holde øye med budsjettet Aktivitetene i UP - (slik de fremstilles av guruene i bransjen) 7
3 Forprosjekt Kravspesifikasjon Skal undersøke om det er vits i å lage et system n Viktigst er: n En grov oversikt over viktige funksjoner n Et første kostnadsestimat n Hvem vil betale for (eie) systemet n Men også: n Vurdering av potensielle brukere (kunder) til systemet n En vurdering av konkurrenterne n Alt dette resulterer i en foretningsplan og plan for finansiering og bemanning, og: n Avgjørelse om vi skal droppe prosjektet eller lage det. 9 n Vi trenger en nøyere spesifikasjon av hva systemet skal gjøre n Hvilke funksjoner skal det ha og avgrensning n Ulik brukergrupper og deres krav og behov n Ulike, ofte motsetningsfylte krav og behov n Ytelseskrav n Hvor store datamengder, n Maksimalt antall brukere og maksimale svartider n Andre krav, n Ergonomi n Kobling mot andre systemer n En kravspesifikasjon tilsvarer ofte en oppgavetekst for dere 10 Analyse Viktig å avgrense systemet n Analyse = best mulig forståelse av problemområdet (for å lage et system) n Viktig å forstå problemområdet vi skal lage system for: n Vi trenger en modell (UML + fritekst) av det området vi skal lage et system for = domenemodell n Hvilke klasser er det i den virkelige verden som interesserer oss n Hvilke funksjoner gjør de ulike klassene våre n Hvordan vil brukerne utveksle data med systemer n Bruks-modellering (Use-case) n Det problemområdet vi ser på har n Et nær utall begreper (= klasser) hvis vi bare ser nøye nok etter n Hvert begrep kan gis en nær uendelig lang beskrivelse (eks: Det er ikke ende på hvor mye vi kan finne ut om ett menneske - hele livshistorien, hele DNAprofilen, ) n Vi må avgrense systemet n Hvilke begreper som interesserer system vårt n Hvilke data trenger vi om hvert slikt objekt av disse begrepene 11 12
4 UML-diagrammer UML diagram for Bank: Bank Konto n Objektdiagram: Vi tegner for det meste Java datastrukturer isteden. Bank-objekt 1 * Gir denne Java datastrukturen: Navn: String Saldo : double Konto-objekter navn: navn: n Klassediagram: type: HashMap type: Bank Husk å se for deg objekt(er) der boksene (klassene) er tegnet HashMap-objekt navn: type: Bank Hvordan finne klassene Understrek substantivene i kravspesifikasjonen n Gitt et utkast til en kravspesifikasjon, hvordan finne klassene i problemområdet? n Substantivmetoden n Nesten alle generelle begreper er substantiver - finn disse i kravspesifiksasjonen "Et eiendomsregister inneholder flere eiendommer. En eiendom har tre eller flere hjørnepunkter (grensene er rette linjer mellom disse hjørnepunktene). Et hjørnepunkt deles mellom to eller flere eiendommer (som da er naboer). En eiendom eies av en eller flere eiere. En eiendom er entydig identifisert innenfor ett register (= en kommune) med et gårdsnummer (gnr) og et bruksnummer (bnr) " "Et eiendomsregister inneholder flere eiendommer. En eiendom har tre elle flere hjørnepunkter (grensene er rette linjer mellom disse hjørnepunktene).et hjørnepunkt deles mellom to eller flere eiendommer (som da er naboer). En eiendom eies av en eller flere eiere. En eiendom er entydig identifisert innenfor ett register (= en kommune) med et gårdsnummer (gnr) og et bruksnummer (bnr)..." Gir følgende 11 forslag : ser først på de mest brukte substantivene: n Eiendomsregister, eiendom, hjørnepunkt, grense, linje, eier, nabo, register(=kommune), gårdsnummer, bruksnummer 15 16
5 Forslagene til klasser må bearbeides: n Hvilke substantiver er samme begrep n Eiendomsregister, register, kommune er hele systemet; er eieren av resten av dataene. Nesten alltid er det en slik klasse som: n Det lages bare ett objekt av n Som eier resten av dataene n Er det begrep som kan representeres indirekte, som er motsatsene til hverandre: n Hjørnepunkt, grense, linje - representerer det samme på ulike måte - vi velger én f.eks. hjørne n Hvilke begreper blir til enkle variable i andre klasser og hvilke blir til egne klasser? Når lager vi klasser? n Noen blir bare variable i andre klasser n Eks: En temperatur n Andre opplyslysninger blir til egne klasser som vi lager objekter av n Eks: En person, en bankkonto, en eiendom n Det er ikke noe ved gjenstanden i verden, i virkeligheten som sier om vi skal lage en klasse eller ikke: n Eks: et bilhjul er sammensatt del for en bilfabrikk, men kanskje ikke for Vegvesenents database over norske kjøretøyer Sammensatte ting blir klasser og objekter Substantivmetoden gir ikke fasit, men et utgangspunkt n Hvis vi bare har en opplysning og ingen finere oppdeling av tingen, bruker vi bare en enkel, vanlig variabel n Eks: Gnr,og Bnr, temperatur, grenselengde, (grenselengde kan også avledes av grensepunkter) n Hvis data om en gjenstand har flere felt, mer enn et datum knyttet til seg, lager vi en klasse: n Hvis vi er i tvil : Lag en klasse (det blir gjerne flere opplysninger jo mer vi jobber med et problem). n Ingen metode - heller ikke substantivmetoden - gir en fasit, men et godt utgangspunkt for å drøfte hvilke klasser vi skal ha i systemet vårt. n Husk at vi skal gå flere runder med analyse og design, men vi trenger et utgangspunkt for å lage første, minimale system
6 Design av programsystemet Mer om design: Innkapsling og grensesnitt n Analysen var (den gode) beskrivelsen av problemområdet (med baktanke om at det skal inn i et datasystem) n Design er utformingen av selve programsystemet (inkl. evt. database og kommunikasjonsløsning ikke i inf1010) n Vi starter med det vi har så langt: n Kravspesifikasjon (nesten ferdig) n Analysen med: n UML-diagram av problemområdet n Brukernes interaksjon med systemet for ulike funksjoner Husk at analysen bare er et forslag vi skal gå flere runder med: Kravspesifikasjon -> analyse -> design -> koding -> testing (Men ikke ta for lett på det av den grunn) n En klasse gir ikke andre klasser adgang til sine data direkte, men via et antall metoder for å lese og skrive på disse data (get- og set- metoder) n Dette gjelder ikke bare enkeltdata, men også data som kan avledes - for eksempel summen og gjennomsnitt av data i et objekt n eks. gjennomsnittstemperatur, grenselengder n Adgang til data bare via metoder kalles innkapsling n Gjør det mye enklere å teste, feilsøke og endre et program Hvor skal vi legge metodene (funksjonene) n Kan synes opplagt, men er det ikke alltid n To prinsipper (gir ofte, men ikke alltid samme resultat): n Legg en funksjon der (nesten alle) data er som funksjonen skal jobbe på n Legg funksjonene der de hører hjemme naturlig / i virkeligheten n Ofte samme resultet, men ikke her: n I et student/eksamens-system skal det skrives ut vitnemål. Skal metoden skrivvitemål() legges i: n Class Student - hvor data ligger n Class SkoleAdministrasjon - hvor funksjonen utføres i den virkelige verden Velg det siste - blir lettere å vedlikeholde systemet (SkoleAdministrasjon henter data fra Student) 23 Design - kjente grep for å strukturere koden n Top-down nedbryting n av funksjoner til flere enklere metoder i ett eller flere nivåer n Tidligere ble dette nyttet til å lage hele systemet. Nå nyttes OO. Top-down nyttes for enkelte funksjoner n Bottom-up programmering n Lage generelle klasser og operasjoner (metoder) vi vil trenge i systemet vårt fra bunnen av eller med grunnlag i biblioteker jfr. Java-biblioteket med ca generelle klasser for de fleste behov. n Design-mønstre (patterns) For eksempel MVC Model View Control: del systemet opp i tre moduler/komponenter/klasser: n Modell n En ren datastruktur (i lageret) som holder alle data om problemet. n Utsyn n Egen modul for å presentere modellen for brukeren på ulike måter valgt av brukeren (via kontrollen) n Kontroll n Egen modul/klasse for å motta ordre fra brukeren og enten endre modellen (legge inn nye data, endre, fjerne data) eller sende et nytt bilde av modellen til utsynet 24
7 Top-down nedbrytning av en beregning Top-down: Gj.snitt nedbør per år og mnd. Eksempel værdata fra Met. Inst. (jfr Oblig4 i inf1000): Anta at vi har en enkel modell av værobservasjoner for Meteorologisk institutt, og at observasjonene gjøres på værstasjoner. Annenhver time, hver dag, hele året igjennom registreres temperatur og nedbør siden forrige observasjon. Nå kan vi tenke oss at vi er interessert i maksimums- og minimumstemperatur hver dag, og i gjennomsnittlig temperatur og samlet nedbør hver dag, hver måned og for hele året fra disse observasjonene. Hvordan skal vi regne ut gj.snitt temp og snitt nedbør for en stasjon per år? 25 n Enten en metode i class Stasjon med tre løkker inne i hverandre, over alle Måneder, Dager, Observasjoner n Komplikasjon: Håndtering av manglende data på alle nivåer n Alternativt - bedre: Hver av klassene har sin beregngjennomsnittnedbør() metode, som bare kaller neste tilsvarende det riktige antall ganger (og som til sist leser av verdien i Observasjon) 26 Kjente mønstre for programoppdeling Testing n Det er mange kjente og velprøvde måter å dele opp programkoden. Slike kjente måter kalles design patterns. n Tatt fra standard designer i arkitekturen Christoffer Alexander n Et slikt mønster lærte dere i INF1000 med kommandoløkka som legger ut en meny og tar kommando fra brukeren. n Og i INF1010: Modell - Kontroll Utsyn n Gå til bake og repeter Bank-eksemplet n Alle klasser og metoder testes først separat, så samlet n Regresstesting kjør alle gamle tester + evt. nye hver gang noe endres (ikke bare test det nye med nye tester) n Binær søking n Bruk av debugger n Testing kan aldri vise fravær av feil, bare at systemet virker for visse inndata. n Bevis av programmer? n Særs vanskelig og dyrt n Lønner seg bare i helt spesielle tilfeller n Jfr. invarianter i løkker og datastrukturer 27 28
8 Dokumentasjon, brukeropplæring, innføring n Ikke del av dette kurset, men meget viktig. n Dekkes av kurs fra ISU-gruppa 29
Fra problem til program. Stein Gjessing Inst. for informatikk
INF1010 - våren 2009 Fra problem til program Stein Gjessing Inst. for informatikk 1 Oversikt: INF1050 - Systemutvikling Fasene i utvikling av datasystemer Utviklingsmetoder Fossefall og Unified Process
Detaljer(MVC - Model, View, Control)
INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av
DetaljerINF april 2017
INF1010-20. april 2017 Programmeringsmønstre Patterns Eksempel på bruk av interface Stein Gjessing Universitetet i Oslo 1 1 Problem Spesifikasjon Program 2 Programvare-arkitektur Hvordan programmet er
DetaljerOblig4 - forklaringer. Arne og Ole Christian
Oblig4 - forklaringer Arne og Ole Christian Struktur og alle (?) klassene import easyio.*; import java.util.*; class Oblig4 { public static void main (String[] args) { String s1 = "Stasjoner-1.txt"; String
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
DetaljerOblig 4 (av 4) INF1000, høsten 2009 Værdata, leveres innen 6. nov. kl
Oblig 4 (av 4) INF1000, høsten 2009 Værdata, leveres innen 6. nov. kl. 16.00 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være
DetaljerRekursjon. Binærsøk. Hanois tårn.
Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til
DetaljerSpesifikasjon av Lag emne
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerEndret litt som ukeoppgave i INF1010 våren 2004
Endret litt som ukeoppgave i INF1010 våren 2004!!!" # # $# ##!!%# # &##!'! Kontroller at oppgavesettet er komplett før du begynner å besvare det. Les gjerne gjennom hele oppgavesettet før du begynner med
DetaljerKom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang
Kom forberedt til tirsdag INF1000 Tips til obligatorisk oppgave 4 Kikk på prøveeksamen fra 2004 http://www.uio.no/studier/emner/matnat/ifi/inf1000/h 07/undervisningsmateriale/proveeksamen-H2004.pdf Tittel:
DetaljerVelkommen til. INF våren 2012
Velkommen til INF1010 - våren 2012 I dag: Java datastrukturer Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 I INF1010 skal du lære Å lage gode programmer Objektorientert programmering
DetaljerAnsvarsdrevet OO: CRC og UML Sekvensdiagrammer
Fra krav til objekter Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050--1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use
DetaljerDagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
Detaljer1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje
DetaljerOblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
DetaljerVelkommen til. INF våren 2016
Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010
DetaljerOblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59
Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerINF1000 (Uke 15) Eksamen V 04
INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a
DetaljerUML 1. Use case drevet analyse og design. 20.01.2004 Kirsten Ribu
UML 1 Use case drevet analyse og design 20.01.2004 Kirsten Ribu 1 I dag Domenemodell (forløper til klassediagram) Interaksjonsdiagrammer Sekvensdiagram Kollaborasjonsdiagram 2 Domenemodell visualisering
DetaljerOblig 3 tips litt mer tips enn i oppgaven
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3 tips litt mer tips enn i oppgaven I denne oppgaven skal vi se på Gulbrands tre-etasjes studenthus Utsyn. Hver etasje (-3) har7 hybler og et fellesrom.
DetaljerRekursjon. Hanois tårn. Milepeler for å løse problemet
Rekursjon. Hanois tårn. Milepeler for å løse problemet Hanois tårn. Milepeler for å løse problemet Forstå spillet Bestemme/skjønne hvordan spillet løses Lage en plan for hva programmet skal gjøre (med
DetaljerOblig4 - forklaringer. Arne og Ole Christian
Oblig4 - forklaringer Arne og Ole Christian Stasjonsdata-1.txt NR NAVN MOH KOMMUNE FYLKE 4780 GARDERMOEN 202 ULLENSAKER AKERSHUS 10400 RØROS 628 RØROS SØR-TRØNDELAG 18700 OSLO-BLINDERN 94 OSLO OSLO 25590
DetaljerHensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen
Hensikten med denne delen av kurset Objektorientert systemutvikling Rational Unified Process (RUP) Gurholt og Hasle kap. 6 UML Distilled kap. 2 Å lære modellerings- og designprinsipper og øve opp teknikker
DetaljerI dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?
UML Use case drevet analyse og design 31.01.2005 Kirsten Ribu I dag Domenemodell (forløper til klassediagram) Interaksjonsdiagrammer Sekvensdiagram Kollaborasjonsdiagram 1 2 Domenemodell visualisering
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8
DetaljerInnhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen
Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:
DetaljerINF Obligatorisk innlevering 7
INF1000 - Obligatorisk innlevering 7 Høsten 2016, IFI UiO Frist: 6. November 2016 kl 22:00 Tema denne uka: Et større objektorientert program. Administrasjon av eierskap og utlån av DVD-er I denne oppgaven
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
DetaljerOblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000
Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000 Leveringsfrist Innleveringsfristen er onsdag 15. november kl 16.00. Viktig: se side 4 for detaljerte leveringskrav. Formål Formålet med denne oppgaven
DetaljerOblig 3 tips litt mer tips enn i oppgaven
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3 tips litt mer tips enn i oppgaven lørdag 3. okt 2009 I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert
Detaljeralternativer til sortering og søking binære trær søketrær Ikke-rekursiv algoritme som løser Hanois tårn med n plater
Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»
DetaljerFra krav til objektdesign
Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12. 3 Sette
DetaljerLæringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.
1 TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12. 3 Sette
DetaljerSpesifikasjon av Lag emne. Kursregistrering bruksmønstermodell. Dagens forelesning. Fra krav til objekter
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerEnkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerAlgDat 12. Forelesning 2. Gunnar Misund
AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av
DetaljerMål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære å lage større og sammensatte programmer Pensum Kapitlene
DetaljerSpesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerDagens temaer. Sortering: 4 metoder Søking: binærsøk Rekursjon: Hanois tårn
Dagens temaer Sortering: 4 metoder Hvorfor sortering (og søking) er viktig i programmering Sortering når objektene som skal sorteres er i et array 1. Sorterering ved bruk av binærtre som «mellomlager»
DetaljerSpesifikasjon av Lag emne. Kursregistrering g bruksmønstermodell. Dagens forelesning. Fra krav til objekter
Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer
DetaljerForside Eksamen INF1055 V17
Forside Eksamen INF1055 V17 Eksamensdato: 12. juni 2017 Eksamenstid 15:30-19:30 Hjelpemidler: Ingen Les denne forsiden nøye Oppgaven består av seks deler. Del 1 Modul A - Undersøkelser av bruk 2 diskusjonsspørsmål
DetaljerFra problem til program
Fra problem til program Gitt et problem, hvordan går man fram for å programmere en løsning? UML klassediagrammer Enhetstesting Dokumentasjon Som student ønsker vi oss et program som kan holde oversikt
DetaljerINF1010 UML. Marit Nybakken 26. januar 2004
INF1010 UML Marit Nybakken marnybak@ifi.uio.no 26. januar 2004 Liten tolkning av UML-kapittelet i læreboka. 1 UML-diagrammer Det finnes mange forskjellige typer UML-diagrammer for å dokumentere og planlegge
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008
Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008 Leveringsfrist Oppgaven må løses individuelt og leveres senest fredag 22. februar 2008 kl 16.00 via Joly. Viktig: les slutten av oppgaven for
DetaljerTirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case
1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case Terje Rydland - IDI/NTNU 2 Fram mot eksamen Tirsdag 21/11 Repetisjon. Send inn behov/ønsker til : terjery@idi.ntnu.no
DetaljerEtter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering
Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009
Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009 Leveringsfrist Oppgaven må løses individuelt og leveres senest fredag 20. februar kl 16.00 via Joly. Viktig: les slutten av oppgaven for detaljerte
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000
Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 29 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet med
DetaljerOBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med
DetaljerUKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski
UKE 13 Mer UML modellering Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski Hva skal vi i dag? Objektorientert design - kapittel 5 og 7 UML modellering Aktivitetsdiagrammer Klassediagram Ukesoppgaver
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006
Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 h2006 Leveringsfrist Oppgaven må leveres senest fredag 30 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet
DetaljerLæringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop
Læringsmål uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2018 uke 7 Siri Moe Jensen Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
DetaljerINF1010 MVC i tekstbaserte programmer
INF1010 MVC i tekstbaserte programmer Marit Nybakken marnybak@ifi.uio.no 9. februar 2004 Marit har ingen utdanning innen systemutvikling og vet antageligvis ikke hva hun prater om. Hun har dog skumlest
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerINF1000: Forelesning 6. Klasser og objekter del 1
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK 2 Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer navn, brukernavn og telefonnummer.
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerOblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000
Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 30. september kl 16.00. Viktig: les slutten av oppgaven for detaljerte leveringskrav. Formål Formålet
DetaljerHva er en metode. Hva skjer når vi kaller en metode
Hva er en metode Uke 9 - Repetisjon av metoder, klasser og objekter Innkapsling: private og public Statisk programmering vs. programmering med objeker 18 okt. 2005, Arild Waaler Inst. for informatikk,
DetaljerAlgDat 10. Forelesning 2. Gunnar Misund
AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):
DetaljerInnhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk
Innhold uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2017 uke 7 Siri Moe Jensen Lite tilbakeblikk: Prosedyrer og funksjoner Objektorientert programmering Introduksjon: Hvorfor,
DetaljerInnhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)
Innhold Unified Modelling Language UML INF1000 Høst 2015 Uke 8: Mer objektorientert programmering Siri Moe Jensen En ny type for-løkke Organisering av mengder av objekter HashMap Valg av representasjon
DetaljerEtter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner
Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)
DetaljerObligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006
Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006 Advarsel Etter forelesningen 6. mars har vi gjennomgått alt stoffet som trengs for å løse oppgaven. Du kan imidlertid godt starte arbeidet allerede
Detaljer"Nelsons kaffebutikk"
"Nelsons kaffebutikk" et eksempel på systemutvikling med objekter Originale lysark av Jens Kaasbøll - mindre endringer av G. Skagestein og Knut Hegna IN105-javaNelson-1 Nelsons kaffebutikk Området som
DetaljerUKE 11 UML modellering og use case. Gruppetime INF1055
UKE 11 UML modellering og use case Gruppetime INF1055 Hva skal vi i dag? Analyse og design - kapittel 5 og 7 UML modellering Ukesoppgaver 3: Modellering av krav UML UML Kompetansemål Modellering av krav
DetaljerSystem Dokumentasjon. Team2. Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk
System Dokumentasjon Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk System Dokumentsjon 23/04/2018 Systemutvikling og dokumentasjon/ia4412
DetaljerDrosjesentralen. I-120: Obligatorisk oppgave 2, 2000
Drosjesentralen I-120: Obligatorisk oppgave 2, 2000 Frist Mandag 20. November 2000 kl.10:00, i skuff merket I120 på UA. Krav Se seksjon 4 for kravene til innlevering. Merk krav om generisk løsning for
DetaljerIN1010 Objektorientert programmering Våren 2019
IN1010 Objektorientert programmering IN1010 Objektorientert programmering Våren 2019 Stein Gjessing Hva skjer de første to ukene? Forelesninger de to første ukene i dag 1. time: Info om IN1010 i dag 2.
DetaljerUNIVERSITETET I OSLO
Bokmål Kandidat nummer: UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF1050 Eksamensdag: 0. mai, 2011 Tid for eksamen: 00:00 00:00 Oppgavesettet er på 6 sider Vedlegg:
DetaljerINF Forelesning oppsummering forts. Et meget enkelt banksystem. Oppsummering om klasser, objekter, pekere og.
Oppsummering om klasser, objekter, pekere og. INF1000 - Forelesning 7 - Litt repetisjon fra forelesning 6 - Gjennomgang av BankSystem med full kode - Mer om klasser og objekter -UML 1. mars 2010 Christian
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1050 Eksamensdag: 2. juni 2014 Tid for eksamen: 09:00-13:00 Oppgavesettet er på 4 sider Vedlegg: Ingen Tillatte hjelpemidler:
DetaljerINF1000: noen avsluttende ord
Pensum INF1000: noen avsluttende ord Arne og Ole Christian Det som er gjennomgått på forelesningene Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige
DetaljerForside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.
Forside Eksamen i IN1030 for Våren 2018. Ingen hjelpemidler tillatt. I dette oppgavesettet har du mulighet til å svare med digital håndtegning (oppgave 1, 4 og 5). Du bruker skisseark du får utdelt. Det
DetaljerKapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process
INF 329 Web-teknologier Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process Navn: Bjørnar Pettersen bjornarp.ii.uib.no Daniel Lundekvam daniell.ii.uib.no Presentasjonsdato:
DetaljerVelkommen til. INF våren 2017
Velkommen til INF1010 - våren 2017 Idag: 1. time: Om INF1010 2.time: Om Objekter i Java 1 Stein Gjessing og Stein Michael Storleer Universitetet i Oslo 1 INF1010 Objektorientert programmering I INF1010
DetaljerOblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000
Oblig4 - obligatorisk oppgave nr. 4 (av 4) i INF1000 Leveringsfrist Innleveringsfristen er fredag 14. november kl 16.00. Viktig: se side 4 for detaljerte leveringskrav. Formål Formålet med denne oppgaven
DetaljerINF Obligatorisk innlevering 5
INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerUse Case-modellering. INF1050: Gjennomgang, uke 04
Use Case-modellering INF1050: Gjennomgang, uke 04 Kompetansemål Modellering av krav Kunne modellere ulike typer krav UML-diagrammer Innføring i grunnleggende UML-modellering Bruksmønster (use case) Sekvensdiagram
DetaljerModellering av brukstilfeller og forretningsprosesser. Kurs i standarder, Oslo, 12. juni 2018
Modellering av brukstilfeller og forretningsprosesser Kurs i standarder, Oslo, 12. juni 2018 Modellering av brukstilfeller Innhold Kort innføring i brukstilfeller Elementer i Use Case diagram Relevante
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerPROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004
PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004 VERSJON: PROSJEKTPLAN (1.0) 24. SEPTEMBER, 2004 prosjektplan.doc GRUPPE 12 PROSJEKTPLAN: PROSJEKTLEDELSE: USE CASE: KVALITETSSIKRING: ANDRÉ
DetaljerObjekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden
Objekter Uke 8 - Objekter, klasser og pekere Hvorfor deler vi verden inn i enheter når vi snakker om den? En blomst, fjorten trær, ti mennesker, en bil, en vei, mange murstein, en bankkonti,... Svar :
DetaljerOppsummering av hovedområdene i kurset LO 135A Kirsten Ribu
Systemutvikling Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu 19.05.2004 1 Ulike typer prosessmodeller De røde er viktige i kurset: Evolusjonær (prototyping) Inkrementell (RUP) XP fossefall
DetaljerGJENNOMGANG UKESOPPGAVER 7 REPETISJON
GJENNOMGANG UKESOPPGAVER 7 REPETISJON INF1050 V16 KRISTIN BRÆNDEN DAGENS TEMA Oppgaver hentet fra tidligere eksamensoppgaver om temaene vi har gått gjennom til nå DAGENS PLAN Gjennomgang av oppgaver Repetisjon
DetaljerModellering av krav. INF1050: Systemutvikling 11. februar 2015. Universitetslektor Yngve Lindsjørn
INF1050: Systemutvikling 11. februar 2015 Modellering av krav Universitetslektor Yngve Lindsjørn INF1050 ->Systemutvikling-> Modellering av krav / Yngve Lindsjørn 1 Temaer i dagens forelesning Modellering
DetaljerRequirements & Design Document
Requirements & Design Document Høgskolen i Sørøst-Norge Fakultet for teknologi, naturvitenskap og maritime fag Institutt for elektro, IT og kybernetikk SRD 03/04/2018 Systemutvikling og dokumentasjon/ia4412
DetaljerSystemutvikling. Universitetet i Oslo, Institutt for informatikk Vår 2017
Systemutvikling Universitetet i Oslo, Institutt for informatikk Vår 2017 Dagens plan Introduksjon Emnets oppbygging Praktisk om ukesoppgaver og obligatoriske oppgaver Gjennomgang av ukesoppgaver Registrering
DetaljerDRI2001 h04 - Forelesning Systemutvikling og nettsteder
Systemutvikling utvikling av offentlig nettsteder DRI2001 forelesning 20.10 Litt om eksperimentell systemutvikling og prototyping Systemutviklingsprosessene og utvikling av [offentlige] nettsteder Fasene
DetaljerUke 11 noen tips og råd + eksempel. Noen muligheter. Valg av datamodell: eksempel. Valg av datamodell: oblig 4
Valg av datamodell: eksempel Uke 11 noen tips og råd + eksempel Eksempel: Du har gitt en fil med opplysninger om hvor mange registrerte tilfeller det var av tre ulike sykdommer i Norge hvert av årene 19502000:
DetaljerINF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet
INF 4130 8. oktober 2009 Stein Krogdahl Dagens tema: Uavgjørbarhet Dette har blitt framstilt litt annerledes tidligere år Se Dinos forelesninger fra i fjor. I år: Vi tenker mer i programmer enn i Turing-maskiner
DetaljerVelkommen til. IN1010 Objektorientert programmering Våren 2018
Velkommen til IN1010 Objektorientert programmering Våren 2018 Idag: 1. time: Om IN1010 2. time (+ i morgen og neste uke): Om Java og objekter i Java 1 Stein Gjessing, Siri Jensen og Dag Langmyhr Universitetet
DetaljerDebugging. Tore Berg Hansen, TISIP
Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...
DetaljerModellering av krav. INF1050: Systemutvikling 07. februar Førstelektor Yngve Lindsjørn
INF1050: Systemutvikling 07. februar 2017 Modellering av krav Førstelektor Yngve Lindsjørn INF1050 ->Systemutvikling-> Modellering av krav / Yngve Lindsjørn 1 Temaer i dagens forelesning Modellering av
Detaljer