19. januar 2012 Noen punkter fra i går
|
|
- Linda Sunde
- 8 år siden
- Visninger:
Transkript
1 1 19. januar 2012 Noen punkter fra i går Godkjente øvinger og prosjekt er obligatorisk for å få gå opp til eksamen Noen myter om systemutvikling Ariane 5 ulykken 2 Noen myter om systemutvikling Myte 1: Systemet må tilpasse seg datamaskinens krav (bruke få ressurser, være tilpasset fysisk arkitektur) Informasjonssystemet skal være tilpasset bruker og deres krav! Nøkkelord: Evolusjonær utvikling, evaluering av prototyper, brukergrensesnittdesign Myte 2: De beste datasystemer er de du selv bygger opp fra grunnen ( Not Invented Here -syndromet) Studier viser at det er overraskende lite gjenbruk av funksjonalitet eller kode mellom prosjekter! Undersøk først om det finnes standardprogrammer (eller et sett med standardkomponenter) som allerede dekker (deler av) behovene, eller som enkelt kan tilpasses til å dekke behovene Nøkkelord: komponentbasert utvikling 1
2 3 Myte 3: datasystemet skal automatisere gamle rutiner Systemutvikling dreier seg også om å identifisere forbedringsmuligheter og finne nye løsninger for å oppnå bestemte mål. Ofte vil innføring av nye datasystemer omlegge rutinene i en bedrift totalt Nøkkelord: Målanalyse, BPR Eksempler: Bank, bestille flybillett 4 En myte til Myte 4: Programvare er så fleksibel at den alltid kan endres senere 2
3 5 Noen flere myter Myte 5: Løsningen ligger i å bruke riktige verktøy A fool with a tool is still a fool Myte 6: Ansett flere programmerere hvis prosjektet er forsinket Brook s Mythical Man-Month: adding people to a late software project makes it later : Opplæring Antall kommunikasjonskanaler = n(n-1)/2 6 Faren ved gjenbruk: the Ariane 5 accident, 1996 Single root cause failure! The bug : attitude deviation stored as 2-byte integer (max value 65,535) in stead of 4-byte (max value 4,294,967,295) SW module was reused from Ariane 4 Insufficient V&V of detailed requriements: larger attitude deviation tolerated in Ariane 5 than in Ariane 4 Ariane 5 production cost 10 years and $7 billion; luckily no victims because it was unmanned. 65,535 = ,536 =
4 7 Introduksjon til objektorientert analyse og design 8 Mål med forelesningen Formål Introdusere objektorientert design med UML Foreløpig innføring i klassediagram Opplæringsmål Grunnleggende om programvaredesign Hva er et design Hva er funksjonen til et design Når i utviklingsprosessen lager vi design Grunnleggende om klassediagram i UML Klasser med attributter og operasjoner Assosiasjoner mellom klasser og multiplisitet Generalisering og abstrakte klasser 4
5 9 Agenda Hva er et design? Fra kode til diagram: Et praktisk eksempel Design forklart Funksjonen til et design Utarbeidelse av klassediagram Kort om klassediagram Praktisk eksempel Avhengigheter og multiplisitet Generalisering og abstrakte klasser Praktiske råd om objektorientert design 10 OOAD i livsløpsperspektiv Krav Design Konstruksjon Testing Vedlikehold Her er vi i nå 5
6 11 Hva er et design? public class FlatFile { public Group load(file afile) throws java.io.ioexception, ParseException { Group agroup = new Group(); FileReader afilereader = new FileReader(aFile); BufferedReader areader = new BufferedReader(aFileReader); String line = areader.readline(); while (line!= null) { agroup.addperson(assembleperson(line)); line = areader.readline(); return agroup; private Person assembleperson(string line) throws ParseException { StringTokenizer tokenizer = new StringTokenizer(line, ";"); String name = tokenizer.nexttoken(); String = tokenizer.nexttoken(); Date date = parsedate(tokenizer.nexttoken()); Person aperson = new Person(); aperson.setname(name); aperson.set ( ); aperson.setbirthdate(date); return aperson; 12 Hva er et design? public class FlatFile { public Group load(file afile) throws java.io.ioexception, ParseException { Group agroup = new Group(); FileReader afilereader = new FileReader(aFile); BufferedReader areader = new BufferedReader(aFileReader); String line = areader.readline(); while (line!= null) { agroup.addperson(assembleperson(line)); line = areader.readline(); return agroup; private Person assembleperson(string line) throws ParseException { StringTokenizer tokenizer = new StringTokenizer(line, ";"); String name = tokenizer.nexttoken(); String = tokenizer.nexttoken(); Date date = parsedate(tokenizer.nexttoken()); Person aperson = new Person(); aperson.setname(name); aperson.set ( ); aperson.setbirthdate(date); return aperson; 6
7 13 Hva er et design? public class FlatFile { public Group load(file afile) throws java.io.ioexception, ParseException { Group agroup = new Group(); FileReader afilereader = new FileReader(aFile); BufferedReader areader = new BufferedReader(aFileReader); String line = areader.readline(); while (line!= null) { agroup.addperson(assembleperson(line)); line = areader.readline(); return agroup; private Person assembleperson(string line) throws ParseException { StringTokenizer tokenizer = new StringTokenizer(line, ";"); String name = tokenizer.nexttoken(); String = tokenizer.nexttoken(); Date date = parsedate(tokenizer.nexttoken()); Person aperson = new Person(); aperson.setname(name); aperson.set ( ); aperson.setbirthdate(date); return aperson; 14 Hva er et design? public class FlatFile { public Group load(file afile) throws java.io.ioexception, ParseException { Group agroup = new Group(); FileReader afilereader = new FileReader(aFile); BufferedReader areader = new BufferedReader(aFileReader); String line = areader.readline(); while (line!= null) { agroup.addperson(assembleperson(line)); line = areader.readline(); return agroup; private Person assembleperson(string line) throws ParseException { StringTokenizer tokenizer = new StringTokenizer(line, ";"); String name = tokenizer.nexttoken(); String = tokenizer.nexttoken(); Date date = parsedate(tokenizer.nexttoken()); Person aperson = new Person(); aperson.setname(name); aperson.set ( ); aperson.setbirthdate(date); return aperson; 7
8 15 Hva er et design? 16 Design forklart Design: Strukturen til et programsystem Implisitt design: Strukturen til koden Eksplisitt design: Diagrammer som beskriver strukturen til et programsystem med en spesifikk notasjon Notasjon Språk bestående av grafiske symboler for å beskrive (modellere) programvaresystem Regler for hvordan de grafiske symbolene kan brukes og knyttes sammen UML: Notasjon for objektorientert design 8
9 17 Design forklart Det er dette vi mener med et design i dette kurset Design: Strukturen til et programsystem Implisitt design: Strukturen til koden Eksplisitt design: Diagrammer som beskriver strukturen til et programsystem med en spesifikk notasjon Notasjon Språk bestående av grafiske symboler for å beskrive (modellere) programvaresystem Regler for hvordan de grafiske symbolene kan brukes og knyttes sammen UML: Notasjon for objektorientert design 18 Funksjonen til et design Hvordan lager vi et design? Gjenskape design ('reverse engineering') med utgangspunkt i kode Konstruksjonsplanlegging ('forward engineering') med utgangspunkt i krav Hvorfor lager vi et design? Gjøre et design for å kommunisere designet til andre Gjøre et design for å forstå krav eller kode (for oss selv og andre) Typer design Kladd Konstruksjonsplan (Programmeringsspråk) 9
10 19 Agenda Hva er et design? Fra kode til diagram: Et praktisk eksempel Design forklart Funksjonen til et design Design av klassediagram Kort om klassediagram Praktisk eksempel Avhengigheter og multiplisitet Generalisering og abstrakte klasser Praktiske råd om objektorientert design 20 Klassediagram Hensikten med diagrammet Beskrive klassene i systemet Beskrive hvordan klassene forholder seg til hverandre (relasjoner) Klasse Strukturen på fenomenet (i motsetning til objekt som er instansen av fenomenet) Attributter Operasjoner 10
11 21 Grunnelementene i et klassediagram Argument-liste Retur-type Diagram Operasjons-navn Klassenavn Attributter Operasjoner 22 Praktisk eksempel: Del 1 Meldingsbroen skal motta meldinger fra telefonsvarere og oversette meldingene til kommandoer. Kommandoene skal meldingsbroen sende til kjernesystemet. Meldingsbroen skal oversette responsen fra kjernesystemet til en melding som sendes tilbake til telefonsvareren. Meldingsbroen skal lytte på innkommende oppkoblinger fra telefonsvarerne. En telefonsvarer kan sende flere meldinger før den kobler seg fra meldingsbroen. Telefonsvareren skal sende en avslutningsmelding til meldingsbroen når den er ferdig med å sende meldinger. Meldingsbroen skal selv avslutte en oppkobling dersom det ikke har mottatt en melding fra telefonsvareren på 60 sekunder. Meldingsbroen skal ikke akseptere flere enn 10 oppkoblinger fra telefonsvarerne. 11
12 23 Praktisk eksempel: Del 1 Meldingsbroen skal motta meldinger fra telefonsvarere og oversette meldingene til kommandoer. Kommandoene skal meldingsbroen sende til kjernesystemet. Meldingsbroen skal oversette responsen fra kjernesystemet til en melding som sendes tilbake til telefonsvareren. Meldingsbroen skal lytte på innkommende oppkoblinger fra telefonsvarerne. En telefonsvarer kan sende flere meldinger før den kobler seg fra meldingsbroen. Telefonsvareren skal sende en avslutningsmelding til meldingsbroen når den er ferdig med å sende meldinger. Meldingsbroen skal selv avslutte en oppkobling dersom det ikke har mottatt en melding fra telefonsvareren på 60 sekunder. Meldingsbroen skal ikke akseptere flere enn 10 oppkoblinger fra telefonsvarerne. 24 Praktisk eksempel: Del 1 Meldingsbroen skal motta meldinger fra telefonsvarere og oversette meldingene til kommandoer. Kommandoene skal meldingsbroen sende til kjernesystemet. Meldingsbroen skal oversette responsen fra kjernesystemet til en melding som sendes tilbake til telefonsvareren. Meldingsbroen skal lytte på innkommende oppkoblinger fra telefonsvarerne. En telefonsvarer kan sende flere meldinger før den kobler seg fra meldingsbroen. Telefonsvareren skal sende en avslutningsmelding til meldingsbroen når den er ferdig med å sende meldinger. Meldingsbroen skal selv avslutte en oppkobling dersom det ikke har mottatt en melding fra telefonsvareren på 60 sekunder. Meldingsbroen skal ikke akseptere flere enn 10 oppkoblinger fra telefonsvarerne. 12
13 25 Klassediagram for meldingsbro 26 Klassediagram til kode class Oppkobling { Telefonsvarer telefonsvarer; Kjernesystem kjernesystem; Oppkobling(Telefonsvarer telefonsvarer, Kjernesystem kjernesystem) { this.telefonsvarer = telefonsvarer; this.kjernesystem = kjernesystem; 13
14 27 Klassediagram til kode class Oppkobling { Telefonsvarer telefonsvarer; Kjernesystem kjernesystem; Oppkobling(Telefonsvarer telefonsvarer, Kjernesystem kjernesystem) { this.telefonsvarer = telefonsvarer; this.kjernesystem = kjernesystem; Melding motta() { 28 Klassediagram til kode class Oppkobling { Telefonsvarer telefonsvarer; Kjernesystem kjernesystem; Oppkobling(Telefonsvarer telefonsvarer, Kjernesystem kjernesystem) { this.telefonsvarer = telefonsvarer; this.kjernesystem = kjernesystem; Melding motta() { Respons send(kommando enkommando) { 14
15 29 Klassediagram til kode class Oppkobling { Telefonsvarer telefonsvarer; Kjernesystem kjernesystem; Oppkobling(Telefonsvarer telefonsvarer, Kjernesystem kjernesystem) { this.telefonsvarer = telefonsvarer; this.kjernesystem = kjernesystem; Melding motta() { Respons send(kommando enkommando) { void sendtilbake(melding enmelding { 30 Klassediagram til kode class Oppkobling { Telefonsvarer telefonsvarer; Kjernesystem kjernesystem; Oppkobling(Telefonsvarer telefonsvarer, Kjernesystem kjernesystem) { this.telefonsvarer = telefonsvarer; this.kjernesystem = kjernesystem; Melding motta() { Respons send(kommando enkommando) { void sendtilbake(melding enmelding { void koblefra() { 15
16 31 Assosiasjoner og multiplisitet Assosiasjoner Viser relasjonen til en annen klasse Hel linje mellom to klasser Enveisrelasjon: Linjen er rettet fra kildeklassen til målklassen Toveisrelasjon: Pil i begge ender Multiplisitet Indikasjon på hvor mange objekter som fyller attributtet 1, 0..1, * 32 Klassediagram for meldingsbro 16
17 33 Assosiasjoner for meldingsbro 34 Multiplisitet i meldingsbro 17
18 35 Praktisk eksempel: Del 2 En melding består av et meldingshode og en meldingskropp på dette formatet: #<meldingshode>#<meldingskropp> Meldingshodet er et standard for alle meldingene på følgende format: <3-sifret meldingskode>,<bankid>,<meldingstidspunkt> Meldingen for å overføre penger har meldingskode 503, og med følgende meldingskropp: <fra_konto 11 siffer>,<til konto 11 siffer>,<beløp> Meldingen for å sperre konto har meldingskode 201, og følgende meldingskropp: <konto som skal sperres 11 siffer> 36 Klassediagram meldingsbro 18
19 37 Generalisering og aggregering Generalisering (arv) Superklasse og barneklasse Eks: Hund er en type dyr Aggregeringer ( består av relasjoner) Klasse som beskriver hvordan hvordan noe er satt sammen Eks.: Sykkel består av ramme, hjul, sete, styre osv. Hjul består av felg, slange, dekk, nav, eiker osv. 38 Klassediagram meldingsbro Generalisering 19
20 39 3 enkle triks Ikke bruk all tilgjengelig notasjon. Hold det så enkelt som mulig (KISS keep it simple stupid) Konseptuelle klassediagrammer fokuserer på datamodellen og er nyttige for å forstå et domene. Ikke prøv å modellere alt. Forkuser på de viktigste delene. 40 Hva skal vi modellere? Hva vi tar med i modellen avhenger av hva vi skal lage. Om vi skal modellere en bil kan vi fokusere på: Mekanikk motor, drivverk, vindusheiser, bremser etc. Software kontroll av forgasser, bremser, girkasse 20
21 41 Oppsummering Grunnleggende om programvaredesign Hva et design er Hva funksjonen til et design er Når i utviklingsprosessen lager vi design Grunnleggende om klassediagram i UML Klasser med attributter og operasjoner Assosiasjoner mellom klasser og multiplisitet Generalisering og abstrakte klasser 21
UML 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
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
DetaljerKap3: Klassemodellering
Kap3: Klassemodellering I dag: Litt repetisjon fra sist (innledende om klassemodellen) Deretter egentlig litt mer repetisjon, men nå fra intro- Felt-/Instansvariabler og kurset i Java: Klasser og Objekt,
Detaljer20.01.2012. Brukerkrav og use case diagrammer og -tekst 19. januar 2012. Agenda. Brukerkrav og use case. Diagrammer Tekst.
Brukerkrav og use case diagrammer og -tekst 19. januar 2012 Agenda Brukerkrav og use case Diagrammer Tekst Praktisk eksempel 1 OOAD i livsløpsperspektiv Krav Design Konstruksjon Her er vi i nå Testing
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
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
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)
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
DetaljerLykke til! Eksamen i fag TDT4140 Systemutvikling 28.11.2012 9.00. NTNU Norges teknisk-naturvitenskapelige universitet
Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Sensurfrist:
DetaljerEksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
DetaljerSocket og ServerSocket
Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket
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
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: INF1050 Eksamensdag: 2. juni 2014 Tid for eksamen: 09:00-13:00 Oppgavesettet er på 4 sider Vedlegg: Ingen Tillatte hjelpemidler:
DetaljerTittel Objektorientert systemutvikling 2
EKSAMENSFORSIDE Fagnr. OBJ208 Tittel Objektorientert systemutvikling 2 Ansvarlig faglærer Viggo Holmstedt Klasse(r) Dato IS/IN 2 11.06.2009 Eksamensoppgaven Ant. sider inkl. består av følgende: forside
DetaljerOppgave 1: Multiple choice (20 %)
Oppgave 1: Multiple choice (20 %) For alle oppgavene gjelder at det bare er ett riktig svar. No Spørsmål Svar A Svar B Svar C Svar D 1 Kanban er et eksempel på: Prosess Software prosess Prosess modell
DetaljerUniversitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte
Universitetet i Oslo Institutt for informatikk Eskild Busch UML hefte 6. desember 2000 Innhold Dette heftet tar for seg deler av UML som er sentralt i kurset IN29. Use case-, sekvens-, tilstand- og klassediagrammer,
DetaljerTom Røise 26.02.2007. IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar 2007. Klassediagrammet. Klasse
IMT2243 Systemutvikling 26. februar 2007 Tema : Domenemodellering og Kravspeken - Repetisjon konseptuelle klassediagram - Eksempler - konseptuelle klassediagram (IHID løsningen og OL-Veiviseren) - Maler
DetaljerEksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
DetaljerKlasser. Webprogrammering høsten 2015. Objekter. Eksempelklasser og -objekter. 2 of 11 14.10.2015 07:56. 1 of 11 14.10.2015 07:56
[Kurssidene] [ ABI - fagsider bibin ] Objekter Webprogrammering høsten 2015 Et objekt er en "ting" som representeres i et program. Representasjonen tar for seg attributter og oppførsel Attributter (egenskaper)
DetaljerHvordan designe en ER-modell med MS-VISIO
AITeL Databaser Hvordan designe en ER-modell med MS-VISIO Kjell Toft Hansen 19. august 2003 Brukerveiledningen er forfatters eiendom. Som kursdeltaker kan du fritt bruke den til eget personlig bruk. Kursdeltakere
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
DetaljerMotivasjon: Hvorfor modellere? Systemutvikling med UML Del 2 (forelesning 4-6) Repetisjon: Egenskapsrommet. Egenskapsrommet
Motivasjon: Hvorfor modellere? Systemutvikling med UML Del 2 (forelesning 4-6) Øyvind Stavdahl Institutt for teknisk kybernetikk, NTNU Oktober 2004 Avmystifisere systemets kompleksitet Skaffe oversikt
DetaljerObject interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.
Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører
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
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
DetaljerØvingsforelesning TDT4105
Øvingsforelesning TDT4105 Gjennomgang øving 9, intro øving 10. Eksamensoppgaver. Benjamin A. Bjørnseth 10. november 2015 2 Oversikt Praktisk Gjennomgang øving 9 Introduksjon sudoku Oppgave 4 Kont-eksamen
DetaljerINF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
DetaljerInnhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49
Innhold Forord...5 1 Det første programmet...15 1.1 Å kommunisere med en datamaskin 16 1.2 Programmeringsspråk 17 1.3 Et program som skriver på skjermen 18 1.4 Kompilering og kjøring 19 1.5 Kommentarer
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
DetaljerINF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004
INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp
DetaljerTittel Objektorientert systemutvikling 1. Eksamenstid, fra-til 09.00-12.00 Ant. oppgaver 6
EKSAMENSFORSIDE Fagnr. OBJ208a Tittel Objektorientert systemutvikling 1 Ansvarlig faglærer Viggo Holmstedt Klasse(r) IS 2 og IN 2 Eksamensoppgaven består av følgende: Tillatte hjelpemidler: Dato 17.12.2008
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Delegeringsteknikken Delegering vs. arv 1 Dagens forelesning Introduksjon og motivasjon Hvorfor forelese om standardteknikker, såkalte patterns? Hva slags
DetaljerGruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>
Gruppenavn Prosjektnavn Beskrivelse av design For Navn på systemet Versjon Revisjonshistorie Dato Versjon Beskrivelse av endring Forfatter Innhold 1. Innledning
DetaljerFra krav til modellering av objekter
INF1050: Systemutvikling 14. februar 2017 Fra krav til modellering av objekter Førstelektor Yngve Lindsjørn INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 1 Temaer i dagens forelesning
Detaljer1. Modellering av objektorienterte systemer
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Modellering av objektorienterte systemer Tore Berg Hansen Lærestoffet er utviklet for faget IFUD Objektorientert systemutvikling 1. Modellering
DetaljerAlgoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien
DetaljerFra krav til objekter. INF1050: Gjennomgang, uke 05
Fra krav til objekter INF1050: Gjennomgang, uke 05 Kompetansemål Systemmodellering og systemperspektiv Utvikle abstrakte modeller av et system Ulike modeller representerer ulike perspektiver av systemet
DetaljerEksamen i Internetteknologi Fagkode: ITE1526
Datateknikk Side 1 av 8 Eksamen i Internetteknologi Fagkode: ITE1526 Tid: Mandag, 23.05.05, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 3 oppgaver og
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
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
DetaljerHvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000
Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
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
DetaljerKapittel 7: Mer om arv
Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
DetaljerKlasser, objekter, pekere og UML. INF1000 - gruppe 13
Klasser, objekter, pekere og UML INF1000 - gruppe 13 Klasse Beskriver ofte ting fra den virkelige verden Veldig ofte et substantiv (Person, Bok, Bil osv.) class Person { String navn; int alder; } class
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
DetaljerEKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG ENTREPRENØRSKAP
Høgskolen i Buskerud Avdeling for økonomi og samfunnsvitenskap 3502 Hønefoss EKSAMEN I INF244: OBJEKTORIENTERT PROGRAMVAREUTVIKLING I BACHELORSTUDIET I IT OG INFORMASJONSSYSTEMER BACHELORSTUDIET I IT OG
DetaljerHvorfor objektorientert programmering?
Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
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
DetaljerSensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013
Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013 Oppgave 1) Her var det en manglende høyreparentes i 1 b) slik at de som svarer virker ikke eller lignende istedenfor det riktige svaret, skal
DetaljerHusk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.
Skilpaddeskolen Steg 1: Flere firkanter Nybegynner Python Åpne IDLE-editoren, og åpne en ny fil ved å trykke File > New File, og la oss begynne. Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell'
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
DetaljerKapittel 1: Datamaskiner og programmeringsspråk
Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen
DetaljerObjektorientert design av kode. Refaktorering.
Objektorientert design av kode. Refaktorering. DEL 2 INF1010-forelesning 9. mars Ragnhild Kobro Runde Kjennetegn på god design (fra INF1050) En god utforming gjør den jobben den er ment å gjøre. En god
DetaljerModellering av data. Magnus Karge, Kartverket
Modellering av data Magnus Karge, Kartverket 02.05.2018 Modellering av data Innhold Sentrale elementer i klassediagrammer Sentrale elementer i pakkediagrammer Relevante standarder Internasjonalt: ISO 19103
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Prøveeksamen tirsdag 23. november 2010 Tid for eksamen:
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Håndtering av unntak (eng: exceptions) Java-programmering Håndtering av unntak Exception-objekter og klasser try, catch og finally throw og throws Eclipse
Detaljer81,9(56,7(7(7,26/2 'HWPDWHPDWLVNQDWXUYLWHQVNDSHOLJHIDNXOWHW
81,9(56,7(7(7,26/2 'HWPDWHPDWLVNQDWXUYLWHQVNDSHOLJHIDNXOWHW (NVDPHQL,1)²*UXQQNXUVLREMHNWRULHQWHUWSURJUDPPHULQJ (NVDPHQVGDJ )UHGDJGHVHPEHU 7LGIRUHNVDPHQ ² 2SSJDYHVHWWHWHUSnVLGHU%RNPnO 9HGOHJJ VWN 7LOODWWHKMHOSHPLGOHU$OOHWU\NWHRJVNUHYQH
DetaljerMetode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur
Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram
DetaljerEn oppsummering (og litt som står igjen)
En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de
DetaljerKompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering
Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at
DetaljerSkilpaddefraktaler Erfaren Python PDF
Skilpaddefraktaler Erfaren Python PDF Introduksjon Vi vil nå jobbe videre med skilpaddekunsten fra tidligere. Denne gangen skal vi tegne forskjellige figurer som kalles fraktaler. Fraktaler er figurer
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
DetaljerUML-Unified Modeling Language
UML-Unified Modeling Language Use case realisering Designmodellering 21.01.2004 Kirsten Ribu Use Case diagram Klassediagram Oppførselsdiagrammer: Sekvensdiagram Kollaborasjonsdiagram Tilstandsdiagram Aktivitetsdiagram
DetaljerBeskjed fra Skagestein
Beskjed fra Skagestein "I forbindelse med prosjektoppgavens delinnlevering 4 vil gruppelærerne sette opp en PHP-orakeltjeneste torsdag 7. april kl 1415-1800 på termstua i Niels Henrik Abels hus." INF1050-klasser-1
DetaljerLøsningsforslag til Case. (Analysen)
Løsningsforslag til Case (Analysen) Dette er en skisse til løsning av Case et med bussinformasjonssystemet. Jeg kaller det en skisse fordi det på den ene siden ikke er noe fasitsvar og fordi løsningen
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
DetaljerEKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00
Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG
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,
Detaljer1. Designe ER-modeller med MS Visio
Kjell Toft Hansen 01.07.2009 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1- databaser 1. I dette notatet skal vi se på hvordan vi kan lage ER-modeller ved å bruke
DetaljerJ2EE. CMP Entity Beans, Transaksjoner, JSP
J2EE CMP Entity Beans, Transaksjoner, JSP CMP Entity Beans Container Managed Persistence Container sin oppgave å lagre innholdet i EJB til varig lager (typisk DB). Implementasjonsklassen lages abstrakt.
DetaljerMetode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering av ansvar i en trelagsarkitektur
Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram
DetaljerLøsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene
DetaljerGjennomgang av eksamen H99
Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerEKSAMENSFORSIDE SKRIFTLIG EKSAMEN
EKSAMENSFORSIDE SKRIFTLIG EKSAMEN Fag-/kurskode OBJ110 Fag/kurs Objektorientert systemutvikling 1 Ansvarlig faglærer Viggo Holmstedt Ansvarlig fakultet ØS Klasse(r)/gruppe(r) IS2 Dato 13.12.2010 Eksamenstid,
DetaljerEksamen Objektorientert Programmering 2013
Eksamen Objektorientert Programmering 2013 Høgskolen i Østfold 2013-01-07 Emnekode Emne ITF10611 Dato 2013-01-07 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering To A4-ark (fire
DetaljerINF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
DetaljerLøsningsforslag Test 2
Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.
DetaljerEKSAMEN. Objektorientert programmering
EKSAMEN Emnekode: ITF 10609 Dato: 13.mai 2009 Emne: Objektorientert programmering Eksamenstid: kl 09.00 til kl 12.00 Hjelpemidler: 2 A4-ark med valgfritt innhold på begge sider. Faglærere: Tom Heine Nätt
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,
DetaljerHva er en algoritme? Har allerede sett på mange algoritmer til nå i IT1101. Forholdet mellom en algoritme og et program. Algoritme program prosess
IT1101 Informatikk basisfag, dobbeltime 2/10 Hva er en algoritme? Fremgangsmåte for noe Hittil: Datarepresentasjon Datamanipulasjon Datamaskinarkutektur hvordan maskinen jobber Operativsystem Program som
DetaljerConference Centre Portal (CCP)
IN-MMO Obligatorisk oppgave 1 Brian Elvesæter mmo-oppgaver@ifi.uio.no 1 Conference Centre Portal (CCP) 2 1 Oblig 1: Problem description [1/3] The Conference Center Portal is an Internet portal that organizers
DetaljerHva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP
Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker å
DetaljerBakgrunn. Kurset krever ingen spesielle forkunnskaper om modellering.
Bakgrunn Modellering har lenge vært et kjent begrep innen systemutvikling. På 80-tallet ble metoder som Yourdon/Demarco og Gane&Sarson brukt for å lage dataflyt-diagrammer. Etter hvert ble disse integrert
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
DetaljerDagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?
Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 17. august 2012 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:
DetaljerEvaluering av IT-systemer Introduksjon. Monica Kristiansen
Evaluering av IT-systemer Introduksjon Monica Kristiansen 1 Bruk av programvare i kritiske systemer En spennende verden! 2 Avanserte løfteraketter (Ariane 5) 3 Avanserte flyegenskaper 4 Avanserte flyegenskaper
DetaljerObjekt med Java. Harald Yndestad Høgskolen i Ålesund
Objekt med Java Harald Yndestad Høgskolen i Ålesund Dagens tema Objektorientert programmering Abstraksjon Modul-konseptet Arv Livssyklus 26.10.2002 HiÅ/KBS2001/Yndetad/JavaObjekt 2 26.10.2002 HiÅ/KBS2001/Yndetad/JavaObjekt
DetaljerUML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller
UML- Use case drevet analyse og design Bente Anda 23.09.2004 23.09.04 INF320 I dag Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller 23.09.04 INF320
DetaljerDiverse eksamensgaver
Diverse eksamensgaver Noen har fått den idé å lage et språk hvor klasser kan ha noe tilsvarende byvalue-result -parametere. Klasser har ingen konstruktører, og by-value-result parametere spesifiseres som
DetaljerFlere design mønstre. 19. september 2002, Tore Berg Hansen, TISIP
Flere design mønstre 19. september 2002, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker å
DetaljerI denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.
Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke JS Bin
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 :
DetaljerShellscripting I. Innhold
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring
DetaljerMetode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur
Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram
DetaljerMetode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur
Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram
Detaljer