Fra problem til program. Stein Gjessing Inst. for informatikk
|
|
- Karsten Berntsen
- 7 år siden
- Visninger:
Transkript
1 INF våren 2009 Fra problem til program Stein Gjessing Inst. for informatikk 1
2 Oversikt: INF Systemutvikling Fasene i utvikling av datasystemer Utviklingsmetoder Fossefall og Unified Process (UP) Smidig systemutvikling Hvordan finne et forslag til klassene i systemet UML Substantivmetoden ti t Design av programmet Top-down og bottom-up programmering Innkapsling og grensesnitt Programmønstre Testing (bare litt) 2
3 Utvikling av store datasystemer Aktiviteter: Hvilke ulike arbeidsoppgaver er det i utviklingsarbeidet Eller er det bare å starte å programmere? Utviklingsmetodikk: De ulike aktivitetene i arbeidet, er det noen anbefalt måte/rekkefølge å gjøre disse på? Gjøres de hver for seg i rekkefølge - en etter en? Gjøres de i parallell - alle sammen eller bare noen? Gjentas noen av aktivitetene, i eller blir man greit ferdig med ddem en etter en? Økonomi: Er det enkelt/mulig å få vite hvor mye et datasystem vil koste å lage? Vanligvis ikke! - Men vi lærer (kanskje) 3
4 Eksempel: Lage en nytt hus Arbeidet deles i aktiviteter: Planlegge rom-behov (typer og antall/størrelse) Tegne hus (arkitekt) Bygge hus: Velge entreprenør/utbygger/håndverkere Velge materialer/innredning Søke tillatelser,.., 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. 4
5 Oversikt over aktivitetene i programutvikling: 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
6 Hvordan utføres aktivitetene i prosjektet Utviklingsmetoder - hvordan gjennomføre aktivitetene : Bli helt ferdig med en før du begynner på neste. Fossefalls-modellen Gammeldags, urealistisk, fordi: Kan ikke ombestemme oss, vanskelig å hel-spesifisere noe man ikke ser eller har testet Nyttes nå bare nå i militære systemer og romfart Iterativt ( Unified Process - UP) - starter på flere aktiviteter samtidig og gjør alle aktiviteter flere ganger, g men: Forprosjektet ferdiggjøres raskt 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. Et profesjonelt prosjekt går framover ved at det minst hver 2-3 uke lages en ny versjon som kan testes. Smidig systemutvikling 6
7 Smidig systemutvikling (agile) Ett nytt virkende system ofte Hver uke hver 4. uke Hver iterasjon inneholder Planlegging kravspesifikasjon design koding testing - dokumentasjon Brukere og programmerere snakker mye sammen Det virkende systemet definerer fremdriften Ny funksjonalitet og forandringer kan lett legges inn Lett å holde øye med budsjettet 7
8 Aktivitetene i UP - (slik de fremstilles av guruene i bransjen)
9 Forprosjekt Skal undersøke om det er vits i å lage et system Viktigst er: En grov oversikt over viktige funksjoner Et første kostnadsestimat Hvem vil betale for (eie) systemet Men også: Vurdering av potensielle brukere (kunder) til systemet En vurdering av konkurrentene Alt dette resulterer i en foretningsplan og plan for finansiering og bemanning, og: Avgjørelse om vi skal droppe prosjektet eller lage det. Risikovurderinger 9
10 Kravspesifikasjon Vi trenger en nøyere spesifikasjon av hva systemet skal gjøre Hvilke funksjoner skal det ha og avgrensning Ulik brukergrupper og deres krav og behov Ulike, ofte motsetningsfylte krav og behov Ytelseskrav Hvor store datamengder, Mki Maksimalt antall llbrukere og maksimale ki svartider Andre krav, Ergonomi Kobling mot andre systemer En kravspesifikasjon tilsvarer ofte en oppgavetekst for dere 10
11 Analyse Analyse = best mulig forståelse av problemområdet (for å lage et system) Viktig å forstå problemområdet vi skal lage system for: Vi trenger en modell (UML + fritekst) av det området vi skal lage et system for = domenemodell Hvilke klasser er det i den virkelige verden som interesserer oss Hvilke funksjoner gjør de ulike klassene våre Hvordan vil brukerne utveksle data med systemer Bruks-modellering (Use-case) 11
12 Viktig å avgrense systemet Det problemområdet vi ser på har Et nær utall begreper (= klasser) hvis vi bare ser nøye nok etter 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, ) Vi må avgrense systemet Hvilke begreper som interesserer system vårt Hvilke data trenger vi om hvert slikt objekt av disse begrepene 12
13 UML-diagrammer Objektdiagram: Vi tegner for det meste Java datastrukturer isteden. Klassediagram: Husk å se for deg objekt(er) der boksene (klassene) er tegnet 13
14 UML diagram for Bank: Bank 1 * Konto Navn: String Saldo : double Gir denne Java datastrukturen: Bank-objekt navn: type: HashMap Konto-objekter navn: type: Bank navn: HashMap-objekt type: Bank 14
15 Hvordan finne klassene Gitt et utkast til en kravspesifikasjon, hvordan finne klassene i problemområdet? Substantivmetoden 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) " 15
16 Understrek substantivene i kravspesifikasjonen "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: Eiendomsregister, eiendom, hjørnepunkt, grense, linje, eier, nabo, register(=kommune), gårdsnummer, bruksnummer 16
17 Forslagene til klasser må bearbeides: Hvilke substantiver er samme begrep Eiendomsregister, register, kommune er hele systemet; er eieren av resten av dataene. Nesten alltid er det en slik klasse som: Det lages bare ett objekt av Som eier resten av dataene Er det begrep som kan representeres indirekte, som er motsatsene til hverandre: Hjørnepunkt, grense, linje - representerer det samme på ulike måte - vi velger én f.eks. hjørne Hvilke begreper blir til enkle variable i andre klasser og hvilke blir til egne klasser? 17
18 Når lager vi klasser? Noen blir bare variable i andre klasser Eks: En temperatur Andre opplyslysninger blir til egne klasser som vi lager objekter av Eks: En person, en bankkonto, en eiendom Det er ikke noe ved gjenstanden i verden, i virkeligheten som sier om vi skal lage en klasse eller ikke: Eks: et bilhjul er sammensatt del for en bilfabrikk, men kanskje ikke for Vegvesenents database over norske kjøretøyer. 18
19 Sammensatte ting blir klasser og objekter Hvis vi bare har en opplysning og ingen finere oppdeling av tingen, bruker vi bare en enkel, vanlig variabel Eks: Gnr,og Bnr, temperatur, grenselengde, (grenselengde kan også avledes av grensepunkter) Hvis data om en gjenstand har flere felt, mer enn et datum knyttet t til seg, lager vi en klasse: Hvis vi er i tvil : Lag en klasse (det blir gjerne flere opplysninger jo mer vi jobber med et problem). 19
20 Substantivmetoden gir ikke fasit, men et utgangspunkt Ingen metode - heller ikke substantivmetoden - gir en fasit, men et godt utgangspunkt for å drøfte hvilke klasser vi skal ha i systemet vårt. Husk at vi skal gå flere runder med analyse og design, men vi trenger et utgangspunkt for å lage første, minimale system. 20
21 Design av programsystemet Analysen var (den gode) beskrivelsen av problemområdet (med baktanke om at det skal inn i et datasystem) Design er utformingen av selve programsystemet (inkl. evt. database og kommunikasjonsløsning ikke i inf1010) Vi starter med det vi har så langt: Kravspesifikasjon (nesten ferdig) Analysen med: UML-diagram av problemområdet 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) 21
22 Mer om design: Innkapsling og grensesnitt 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) Dette gjelder ikke bare enkeltdata, men også data som kan avledes - for eksempel summen og gjennomsnitt av data i et objekt eks. gjennomsnittstemperatur, grenselengder Adgang til data bare via metoder kalles innkapsling Gjør det mye enklere å teste, feilsøke og endre et program 22
23 Hvor skal vi legge metodene (funksjonene) Kan synes opplagt, men er det ikke alltid To prinsipper i (gir ofte, men ikke alltid samme resultat): Legg en funksjon der (nesten alle) data er som funksjonen skal jobbe på Legg funksjonene der de hører hjemme naturlig / i virkeligheten Ofte samme resultet, men ikke her: I et student/eksamens-system skal det skrives ut vitnemål. Skal metoden skrivvitemål() legges i: Class Student - hvor data ligger Class SkoleAdministrasjon - hvor funksjonen utføres i den virkelige verden Vl Velg det siste - blir lettere å vedlikeholde ld systemet (SkoleAdministrasjon henter data fra Student) 23
24 Design - kjente grep for å strukturere koden Top-down nedbryting av funksjoner til flere enklere metoder i ett eller flere nivåer Tidligere ble dette nyttet til å lage hele systemet. Nå nyttes OO. Top-down nyttes for enkelte funksjoner Bottom-up programmering 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. Design-mønstre (patterns) For eksempel MVC Model View Control: del systemet opp i tre moduler/komponenter/klasser: Modell En ren datastruktur (i lageret) som holder alle data om problemet. Utsyn Usy Egen modul for å presentere modellen for brukeren på ulike måter valgt av brukeren (via kontrollen) Kontroll 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
25 Top-down nedbrytning av en beregning 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
26 Top-down: Gj.snitt nedbør per år og mnd. Enten en metode i class Stasjon med tre løkker inne i hverandre, over alle Måneder, Dager, Observasjoner Komplikasjon: Håndtering av manglende data på alle nivåer 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
27 Kjente mønstre for programoppdeling Det er mange kjente og velprøvde måter å dele opp programkoden. Slike kjente måter kalles design patterns. Tatt fra standard designer i arkitekturen Christoffer Alexander Et slikt mønster lærte dere i INF1000 med kommandoløkka kk som legger ut en meny og tar kommando fra brukeren. Og i INF1010: Modell - Kontroll Utsyn Gå til bake og repeter Bank-eksemplet 27
28 Testing Alle klasser og metoder testes først separat, så samlet Unit testing i obligene. Integrasjons-testing. System-testing Regresstesting kjør alle gamle tester + evt. nye hver gang noe endres (ikke bare test det nye med nye tester) Binær søking Bruk av debugger Testing kan aldri vise fravær av feil, bare at systemet t virker for visse inndata. Bevis av programmer? Særs vanskelig og dyrt Lønner seg bare i helt spesielle tilfeller Jfr. invarianter i løkker og datastrukturer Legg tester inn i programmet (for- og bak -betingelser (bak-tilstand)) Sist, men ikke minst: Dokumentasjon, brukeropplæring, innføring (INF1050) 28
INF våren Fra problem til program. Utvikling av store datasystemer. Eksempel: Lage en nytt hus. Oversikt:
Oversikt: INF1010 - 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
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
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
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
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
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:
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
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
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,
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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»
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
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
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
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
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
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
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
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
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.
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
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.
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
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
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,
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
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,
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
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
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 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
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
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
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
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)
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
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,
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
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
DetaljerGJENNOMGANG UKESOPPGAVER 9 TESTING
GJENNOMGANG UKESOPPGAVER 9 TESTING INF1050 V16 KRISTIN BRÆNDEN 1 A) Testing viser feil som du oppdager under kjøring av testen. Forklar hvorfor testing ikke kan vise at det ikke er flere gjenstående feil.
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
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:
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
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:
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
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
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
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
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:
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.
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
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
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
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
DetaljerKravspesifikasjon med UML use case modellering. Erik Arisholm 25.02.2009
Kravspesifikasjon med UML use case modellering Erik Arisholm 25.02.2009 Unified Modeling Language (UML) Notasjon som støtter opp under modellbasert systemutvikling objektorientert analyse ( hva systemet
DetaljerIN1010 våren januar. Objektorientering i Java
IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som
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
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
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
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
DetaljerSystemutvikling - oppsummering. Alexander Nossum blog.eksplisitt.net 22. mai 2006
Systemutvikling - oppsummering Alexander Nossum alexander@nossum.net blog.eksplisitt.net 22. mai 2006 INNHOLD 2 Innhold 1 Utviklingsprosessmodeller 3 1.1 Fossefall/waterfall................................
DetaljerForskningsmetoder. INF1050: Gjennomgang, uke 13
Forskningsmetoder INF1050: Gjennomgang, uke 13 Kompetansemål Forskningsmetoder Hva? Hvorfor? Empiriske forskningsmetoder Eksperiment Case-studier Etnografi Aksjonsforskning Spørreskjema Systematisk litteraturstudie
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
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
Detaljer