MVC i Swing, trinn for trinn
|
|
- Dagny Berg
- 7 år siden
- Visninger:
Transkript
1 MVC i Swing, trinn for trinn Læringsmål: Forståelse av komponenthierarkier Forståelse av forhold mellom komponent og datamodell Hvordan lage modell for egne type data Bruk av interaksjonsdiagrammer
2 UML og design og konstruksjon av brukergrensesnitt
3 UML Unified Modelling Language De-facto industristandard for modellbasert systemutvikling Familie med diagrambaserte notasjoner for generell modellering Use Case brukstilfeller Sekvens sekvens av aksjoner og hendelser Klasser og objekter begreper fra brukers verden Tilstander regler for aktørers og objekters oppførsel System- vs. brukerfokus, analyse vs. design
4 UML - mål Generelt, visuelt modelleringsspråk Spesifisere, visualisere, konstruere og dokumentere programvare(systemer) Utvidbart og spesialiserbart Uavhengig av programmeringsspråk og utviklingmetoder og -prosesser Formelt definert Fokus på verktøystøtte og gjenbruk Hva med design av brukergrensesnitt?
5 Hvordan bruke UML? UML brukes til både analyse og design av systemer Hvordan forstå og utnytte UML i kontekst av konseptuell design konkret design Konstruksjon Tegneverktøy for UML: Violet
6 Konseptuell design Mål Å utarbeide en beskrivelse av hvilke oppgaver et system skal støtte Hvilke funksjoner systemet skal ha, og hvordan disse settes sammen ved utførelse av oppgaver Premiss Scenarier er laget for å bli kjent med brukeren, f.eks. basert på studium av bruker(e) i deres naturlig kontekst Oppgaveanalyse er utført Teknikker Konseptuelle modeller, f.eks. UML, brukes både for modell av brukers verden og applikasjonens
7 Eksempel: Kalender Hva er en kalender? tid, aktiviteter, sosiale relasjoner, forpliktelser Hvem bruker kalendre? alle, foreldre, ungdommer, studenter, forretningsfolk Hva brukes kalendre til? beslutninger, planlegging, koordinering Hvordan opptrer de? almanakk, månedskalender fra butikken, tidsplanlegger (filofax), gule lapper og lister, Yahoo, timeplan, Outlook/ Exchange
8 Familien og hjemmet Brukskontekster ukeplan, barnehage, skole og jobb, treningsplan, bursdager, kveldsaktiviteter, fritid og ferie, osv. Forretningslivet arrangementer, avtaler/forpliktelser, møteplanlegging, felles hukommelse, frister, ressurser og budsjett Studenten fagplan, treningsplan, arrangementer, semester og ferie, jobbing på si, gjengen og klasse
9 Begreper Tid minutt/time/dag/uke/måned/år koordinater, presisjon Hendelser og aktiviteter 17.mai, lunsj, bursdager, møter, arrangementer Sosialt personer (familie, venner, kontakter) intensjoner og forpliktelser Geografi steder, møteplasser og ressurser, transport
10 Klassediagram for begrepsmodellering Klasser (class) begreper, benevnes med substantiver, f.eks. fag og foreleser Objekter (object) instanser, konkrete ting som finnes, f.eks. sif8040 og Hallvard Trætteberg Relasjoner (association) sammenhenger mellom begreper, ofte verb, f.eks. foreleser kardinalitet ( n-n ), rolle ( forelest-av ), egne klasser Attributter (attribute) egenskaper, ofte adjektiver, f.eks. vekttall og navn
11
12 Begreper (tid) vs. Hverdagslige begreper: Tidsenhet Dato Tid n n Tidspunk t Uke Matematiske begreper: Ukedag Hva med ukedag? Hva med idag?
13 Analyse - Use Cases Forhold mellom aktører og oppgaver/funksjonalitet Aktører kan være brukere og eksterne systemer eller interne delsystemer Spesifikasjon av funksjonelle krav Detaljeres vha. scenarioer Spesifiserer operasjoners oppførsel som må realiseres
14 Arrangement : Use Case Å arrangere krever aktører arrangør deltagere Å arrangere omfatter å invitere å ta i mot svar Arrangør Arrangere includes Invitere Deltager Use Case-elementer finnes igjen i klassediagram?!
15 Dynamikk - sekvenser Aktører og objekter/tjenester Oppgaver og funksjoner Brukes til detaljering/ realisering av Use Case-diagrammer
16 Arrangement : sekvens Sekvensdiagram detaljerer Use Case tidsdimensjon aktører og objekter ulike forløp (typiske, unntak) : Aktør : Arrangement : Person opprett arrangement bestem tid send invitasjon svare legge til delt ager Brukes til både analyse og design
17 Dynamikk - tilstander Utvidelse og tilpasning av Harels Statechart To typer bruk: oppførsel til klasse, dvs. reaksjon til eksterne hendelser protokollspesifikasjon, dvs. lovlig sekvens av operasjoner Opererer i en kontekst, som angir aktuelle hendelser, betingelser og aksjoner
18
19 Arrangement : tilstand opprettet Tilstandsdiagram Annen måte å beskrive sekvens på initiere forhandling Enklere å vise alternative forløp typisk og unntak forslag motforslag avslag alternativ hendelser og betingelser tidsfrist[ uenighet ] enighet gjennomføre
20 Eksempel: Trestruktur Lag en trestruktur i Java for å representere og beregne enkle matematiske uttrykk. Velger binærtre der nodene enten er tall eller operatorer. Velger å la alle noder ha metoden eval() som returnerer dens verdi. Tallnoder returnerer sitt tall, mens operatornoder ber sine undernoder om deres verdi og returnerer beregnet verdi, f.eks. venstre node + høyre node dersom operatoren en +.
21 Eksempel på struktur: 1 + (2 * 3) int eval() operator: + {return left.eval() + right.eval();} left right {return number} int eval() number: 1 int eval() operator: * left right {return left.eval() * right.eval();} {return number} int eval() int eval() number: 2 number: 3 {return number}
22 Klassene MyObject og MyNumber public abstract class MyObject { abstract int eval(); } public class MyNumber extends MyObject { int number; public MyNumber(int i) {number = i;} } public int eval() {return number;}
23 Klassen MyOperator public class MyOperator extends MyObject { String operator; public MyObject left, right; public MyOperator(String op) {operator = op;} } public int eval() {if ((left!= null) & (right!= null)) {if (operator == "+") {return left.eval() + right.eval();} else if (operator == "*") {return left.eval() * right.eval();} else return(0);} else {return 0;} }
24 Bygg opp og evaluer private MyOperator op1, op2, top; private MyNumber a,b,c; private void init_my_objects() { op1 = new MyOperator("+"); } op2 = new MyOperator("*"); a = new MyNumber(1); b = new MyNumber(2); c = new MyNumber(3); op1.left = a; op1.right = op2; op2.left = a; op2.right = c; top = op1; Beregne verdi: top.eval()
25 MVC Model, View, Controller-arkitekturen Observatør-observert-teknikken anvendt på GUIprogrammering
26 Læringsmål Slider-prosjektet: MVC hvordan styre enkle komponenter hvordan reagere på manipulasjon av enkle komponenter komponenter og modeller roller hvem gjør hva mønstre typisk bruk
27 Slider-prosjektet: SliderSliderExample: to sammenkoblete slidere direkte lytting på og endring av komponenter SliderSliderSliderExample: tre sammenkoblete slidere, ellers som over SliderSliderSliderModelExample: sammenkobling vha. standard modell
28 Design SliderSliderExample to slidere, verdiområde 0-20 når den ene beveges, følger den andre etter. slider1.value = slider2.value og omvendt
29 SliderSliderExample Konstruksjon SliderSliderExample arver fra (extends) JPanel to JSlider-instanser SliderSliderExample implementerer ChangeListener, og lytter på de to JSliderinstansene JPanel (from swing) SliderSliderE xample 1 slider1 1 JSlider 1 slider2 1 <<Interface>> ChangeListener statechanged()
30 Kode public SliderSliderExample() { } // create and configure slider1 slider1 = new JSlider(); slider1.setminimum(0); slider1.setmaximum(20); slider1.setvalue(10); slider1.setmajortickspacing(4); slider1.setminortickspacing(2); slider1.setpaintticks(true); slider1.setpaintlabels(true); // create and configure slider2 slider2 = new JSlider(); // add listener, so we can react to changes slider1.addchangelistener(this); slider2.addchangelistener(this); // remember to add them to the panel add(slider1); add(slider2);
31 Kode (2) public void statechanged(changeevent event) { if (event.getsource() == slider1) { int newvalue = slider1.getvalue(); System.out.println("stateChanged: Slider 1 changed to: " + newvalue); // set slider2 to slider1 value slider2.setvalue(newvalue); } else if (event.getsource() == slider2) { int newvalue = slider2.getvalue(); System.out.println("stateChanged: Slider 2 changed to: " + newvalue); // set slider1 to slider2 value slider1.setvalue(newvalue); }
32 SliderSliderExample Konfigurering legger til lytter Flytter på slider1 mottar endringshendelse leser slider1 sin verdi setter slider2 sin verdi Tilsvarende dersom slider2 flyttes på example : SliderSliderExample slider1 : JSlider addchangelistener(changelistener) statechanged(changeevent) getvalue( ) setv alue(int) slider2 : JSlider
33 example : SliderSliderExample slider1 : JSlider slider2 : JSlider SliderSlider addchangelistener(changelistener) Example statechanged(changeevent) getvalue( ) sequence vs. collaboration diagram setv alue(int) example : SliderSliderExample 1: addchangelistener(changelistener) 3: getvalue( ) 2: statechanged(changeevent) slider1 : JSlider 4: setvalue(int) slider2 : JSlider
34 Design SliderSliderSliderExample tre slidere, verdiområde 0-20 når ene av dem beveges, følger de andre etter Slider1.verdi = slider2.verdi = slider3.verdi
35 SliderSliderSliderExample Konstruksjon SliderSliderSliderExample arver fra (extends) JPanel to JSlider-instanser SliderSliderSliderExample implementerer ChangeListener, og lytter på de tre JSlider-instansene Vil denne konstruksjonen skalere til 4+ antall slidere? JPanel SliderSliderSliderExample slider1 : JSlider slider2 : JSlider slider3 : JSlider <<Interface>> ChangeList ener
36 Kode for 3 slidere public void statechanged(changeevent event) { } if (event.getsource() == slider1) { int newvalue = slider1.getvalue(); System.out.println("stateChanged: Slider 1 changed to: " + newvalue); // set sliders to new value slider2.setvalue(newvalue); slider3.setvalue(newvalue); } else if (event.getsource() == slider2) { int newvalue = slider2.getvalue(); System.out.println("stateChanged: Slider 2 changed to: " + newvalue); // set sliders to new value slider1.setvalue(newvalue); slider3.setvalue(newvalue); } else if (event.getsource() == slider3) { int newvalue = slider3.getvalue(); System.out.println("stateChanged: Slider 3 changed to: " + newvalue); // set sliders to new value slider1.setvalue(newvalue); } slider2.setvalue(newvalue);
37 Problem med konstruksjonen Ved endring av en må alle de andre oppdateres n x n krysskoblinger gjør koden komplisert Når én til legges til, må logikken for de andre endres Essensielt samme data spredd på flere objekter Alle til/fra alle
38 Alternativ konstruksjonen Innføre eget objekt for lagring av data, en såkalt modell Komponentene viser frem og endrer dataene i dette modellen Hver komponent forholder seg bare til modellen, ikke de andre Modellen administrerer oppdatering av registrerte avhengige objekter Alle til/fra én
39 Sammenligning Tydeligere rollefordeling Mer robust og skalerbar kode Alle til/fra alle vs. Alle til/fra én n <= 3 n >= 3
40 Felles modell for slider-objektene slider1:jslider slider2:jslider slider3:jslider modell: IntervalValueModel
41 SliderSliderSliderModelExample Swing inneholder en rekke standardmodeller Hver modell er tilpasset en eller flere standardkomponenter Det finnes en standardmodell kalt BoundedRangeModel for intervall i intervall: minimum- og maksimum-verdier verdi-interval innenfor min- og maks-verdiene min value value + extent max DefaultBoundedRangeModel implementerer BoundedRangeModel JSlider-klassen bruker allerede en slik modell!
42 SliderSliderSliderModelExample Vi har innført eksplisitt felles modell Eksempel-klassen lytter på både komponenter og modell Swing-komponenter gjør dette allerede, dvs. har intern modell som kan deles M M M K K K M K K K M
43 Kode private BoundedRangeModel model; public SlidersCommonModelExample() { // create and configure model model = new DefaultBoundedRangeModel(10, 0, 0, 20); // value, extent, min, max // create and configure slider1 slider1 = new JSlider(model); slider1.setmajortickspacing(4); slider1.setminortickspacing(2); slider1.setpaintticks(true); slider1.setpaintlabels(true); // create with shared model slider2 = new JSlider(model); // create with shared model. slider3 = new JSlider(model); // create with shared model.. // remember to add them to the panel add(slider1); add(slider2); add(slider3);
44 Slider JPanel model : BoundedRangeModel s lider1 : JSlider slider2 : JSlider Slider Slider Model SliderSliderSlider ModelExample addchangelistener setvalue addchangelistener Example slider2 statechanged slider1 slider3 getvalue JSlider statechanged model getvalue <<Interface>> BoundedRangeModel
45 Fra TDT4100 i fjor: Oppdatering av avhengig objekt Ganske ofte må et objekt vite når et annet er endret, for å være konsistent. Eksempel: Kalkulator-GUI må oppdateres når kalkulatorkjernen endres.
46 Oppdatering av avhengig objekt Når en lager et program med GUI, f.eks. spill, er det lurt å skille mellom det som er GUI-spesifikt og det som er programmets indre logikk. Det blir lettere å dele oppgaven på flere personer Det blir mindre arbeid å lage flere varianter av GUI et, f.eks. Java/Swing, mobil-java eller HTML. GUI et må hele tiden være oppdatert ift. den indre logikken. Det finnes en standard kodingsteknikk for å holde et objekt oppdatert ift. et annet.
47 Idol, Idolfan og Beundrer Et Idol har en hårfarge som Beundrer ønsker å kopiere. Hver gang Idol skifter hårfarge ønsker Beundrer å gjøre det samme. Idolet på sin side nyter å bli beundret og vil gjerne hjelpe Beundrer. Idol går med på å si fra til Beundrer hver gang hårfargen skifter. Hva skjer når fargen endres?
48 Sekvensdiagram for skifte av hårfarge #1: Idol #2: Beundrer sethårfarge(color.red) hårfargeendret(color.red) sethårfarge(color.red)
49 Problemer med Idol-Beundrerforholdet Et Idol kan ha mange flere egenskaper som Beundrere kan ønske å kopiere. En kan lage flere xxxendret-metoder, eller En kan ha en generell metode noeendret som tar et hva -parameter som forteller hvilken egenskap som endret seg. Beundrer henter selv ut verdien. En Beundrer kan ha flere idoler Endringsmetoden bør ta som parameter hvilket Idol som endret seg. Dersom Beundrer har mange flere metoder, er det greit å skille ut hvilke(n) som Idol bryr seg om, nemlig xxxendret evt. noeendret. Vi kan definere et grensesnitt Idolfan som inneholder relevante metoder. Dersom Idol har en beundrerskare, bør alle behandles likt, dvs. få beskjed om endringer. Vi bytter ut Beundrer med liste av Idolfans.
50 Idol og Idolfan Idolfan-grensesnitt med én metode for å si fra om endring Idol har liste med fans. Hver gang en egenskap endres, må listen med fans på beskjed. Lager hjelpemetode for å få gjennom fan-lista og kalle endringsmetoden. Ekstra metoder for å legge til og fjerne fans fra lista.
51 Nytt sekvensdiagram for skifte av hårfarge #1: Idol #2: Beundrer #3: Beundrer sethårfarge(color.red) egenskapendret( hårfarge ) idolendret(#1, hårfarge ) gethårfarge() sethårfarge(color.red) idolendret(#1, hårfarge )...
52 Generell struktur på observatør-observert-problem Observert er et objekt som sier fra til andre når noe er endret. Observatøren er objektet som ønsker å følge med på en eller flere observerte. Kodingsteknikk Et observatør-grensesnitt definerer metoder for å få beskjed om endringer. Observert har en liste med observatører. Hver gang en (relevant) endring skjer, må alle observatører få beskjed, vet at en observatør-metode blir kalt.
53 MVC Model, View, Controller Basert på tredeling av funksjonalitet Modell holder underliggende data View leser og visualiserer data Controller tolker input og endrer data Fordeler kan bytte ut hver enkelt del flere view mot samme data automatisk koordinering Mer komplekst
54 MVC-arkitekturen binder sammen komponenter og data
55 MVC i Swing View Controller lese vha. get-metoder endre vha. set/ add-metoder Modell endringshendelser
56 Typisk modell Klasse med uavhengige attributter kalt properties, basert på domenemodell F.eks. Person-klasse: name og , begge String-objekter dateofbirth, java.util.date-objekter Modellen må ha to egenskaper metoder for å lese og skrive attributtene kunne sende ut endringshendelser
57 Basert på JPanel Typisk komponent JLabel med tekst tilsvarende attributtnavn komponent tilpasset attributtets klasse/datatype F.eks. PersonPanel: JTextField for name (ingen syntaksbegrensninger) JTextField for address JPanel-komponenten har en modell-property leser og skriver modellens attributter lytter til endringer i modellens attributter
58 JavaBeans-baserte modeller En JavaBean har visse egenskaper og følger visse navngivingskonvensjoner Alle JavaBeans har et sett såkalte properties av ulike kategorier Alle JavaBeans er kodet iht. visse konvensjoner navngiving av metoder for å lese og skrive properties, read-metode: public <type> get<property>, f.eks. public String getname() write-metode: public void set<property>(<type> p), f.eks. public void setname(string name) generering av hendelser ved endringer av properties hendelsesklasse: PropertyChangeEvent metoder for å registrere PropertyChangeListener-lyttere: add/removepropertychangelistener
59 Typisk kallsekvens 1. Komponenter legger seg til som lytter på modell 2. Modellen legger lytteren inn i liste 3. Komponenten (eller annet objekt) endrer på en property i modellen 4. Modellen lager en endringshendelse og kaller endringsmetoden til alle lytterne 5. Lytterne reagerer på endringshendelsen. Lytterne får endringshendelsen uavhengig av hvilket objekt som endret property en
60 Bound properties En bound property genererer en PropertyChangeEvent ved endring Hver endring av property må skje gjennom set-metode, også interne endringer dersom property ens nye verdi er ulik den gamle, må endringen kringkastes lyttende objekter (dvs. registrerte objekter som implementerer PropertyChangeListener-grensesnittet) Mekanikken kan delegeres til et PropertyChangeSupportobjekt, som håndterer registrering av lyttere og kringkasting av hendelser add/removepropertychangelistener firepropertychange
61 Class PropertyChangeSupport public class PropertyChangeSupport This is a utility class that can be used by beans that support bound properties. You can use an instance of this class as a member field of your bean and delegate various work to it. Constructor: PropertyChangeSupport(Object sourcebean) Constructs a PropertyChangeSupport object. Methods: void addpropertychangelistener(propertychangelistener listener) Add a PropertyChangeListener to the listener list. void firepropertychange(string propertyname, boolean oldvalue, boolean newvalue) Report a boolean bound property update to any registered listeners.
62 Interface PropertyChangeListener public interface PropertyChangeListener extends EventListener A "PropertyChange" event gets fired whenever a bean changes a "bound" property. You can register a PropertyChangeListener with a source bean so as to be notified of any bound property updates. public void propertychange(propertychangeevent evt) This method gets called when a bound property is changed. Parameters: evt - A PropertyChangeEvent object describing the event source and the property that has changed.
63 Klassediagram PropertyChangeSupport JPanel 1 PersonPanel getmodel() : Person setmodel(person) 0..n model 1 Person getname() : String setname(string) addpropertychangelistener(propertychangelistener) 0..n pcs 1 listeners <<Interface>> PropertyChangeListener 0..n propertychange()
64 Typisk kallsekvens panel : PersonPanel addpropertychangelistener person : Person pcs : PropertyChangeSupport addpropertychangelistener setname firepropertychange propertychange configurepanel
65 Person-klassen (model) En attributt: name (kunne i tillegg ha hatt f.eks. address, ,,) Metoder for lese og skrive attributtverdier get/set-metodepar for hvert felt get-metodene er parameterløse og returnerer objekt av type tilsvarende attributtets set-metoden tar ett parameter av type tilsvarende attributtets og returnerer ingenting (void) Property-navn-konstanter objekt (String) som identifiserer property, f.eks. public final static NAME_PROPERTY = name ; konstantverdien brukes bl.a. i endringshendelsesobjekter for å angi hvilken property som er endret lyttere sjekker typisk hvilken property som er endret, for å kunne reagere riktig, f.eks. oppdatere tilsvarende tekstfelt
66 Person-klassen (model) Metoder for håndtere endringslyttere addpropertychangelistener(propertychangelistener) removepropertychangelistener(propertychangelistener) Beskyttet metode for å fyre av endringshendelser protected firepropertychange(property, oldvalue, newvalue) Delegerer til privat PropertyChangeSupport-instans private PropertyChangeSupport pcs = new PropertyChangeSupport(this);... public void addpropertychangelistener(propertychangelistener listener) { pcs.addpropertychangelistener(listener); }... protected void firepropertychange(string prop, Object old, Object ny) { pcs.firepropertychange(prop, oldvalue, newvalue); }
67 import java.beans.propertychangesupport; import java.beans.propertychangelistener; public class Person { public final static String NAME_PROPERTY = "Name"; private PropertyChangeSupport pcs; private String name = null; public Person() { pcs = new PropertyChangeSupport(this); } public String getname() { return name; } public void setname(string name) { String oldvalue = this.name; this.name = name; pcs.firepropertychange(name_property, oldvalue, name); } public void addpropertychangelistener(propertychangelistener listener) { pcs.addpropertychangelistener(listener); } }
68 PersonPanel-klassen (view) Modell-referanse et modell-attributt av typen Person all visning og editering skjer på dette objektet merk at modellen kan være null Property-orienterte subkomponenter JLabel tilsvarende property-navnet Lytter til property-endringer implements PropertyChangeListener public void propertychange(propertychangeevent evt)
69 import java.beans.*; import java.awt.event.*; import javax.swing.*; public class PersonPanel extends JPanel implements PropertyChangeListener { private Person model; private JTextField namefield; private JButton clearbutton; public PersonPanel() { namefield = new JTextField(); namefield.setcolumns(20); namefield.addactionlistener(new mytextaction()); add(namefield); clearbutton = new JButton("Clear"); clearbutton.addactionlistener(new ClearButtonAction()); add(clearbutton); } /** Action for text field * */ class mytextaction implements ActionListener { public void actionperformed(actionevent e) { model.setname(namefield.gettext()); } } /** Action for clearbutton * */ class ClearButtonAction implements ActionListener { public void actionperformed(actionevent e) { model.setname(""); } }
70 // Set model public void setmodel(person themodel) { model = themodel; model.addpropertychangelistener(this); } } // PropertyChangeListener public void propertychange(propertychangeevent evt) { if (evt.getpropertyname() == Person.NAME_PROPERTY) { namefield.settext(model.getname()); } }
71 Persons-prosjektet: Person-klassen er modellen til to PersonPanel view. Person-objektet (modellen) er observerbare alle vesentlige egenskaper kan leses vha. getmetoder Modellen sier fra når disse egenskapene endres lyttere kan registrere seg, så de får endringshendelser
72 import javax.swing.jpanel; import javax.swing.jframe; public class PersonPanelExample_Simple extends JPanel { private PersonPanel personpanela, personpanelb; private Person model; public PersonPanelExample_Simple() { model = new Person(); personpanela = new PersonPanel(); personpanela.setmodel(model); add(personpanela); personpanelb = new PersonPanel(); personpanelb.setmodel(model); add(personpanelb); } model model } public static void main(string args[]) { JFrame frame = new JFrame("..."); frame.add(new PersonPanelExample_Simple()); frame.pack(); frame.setvisible(true); }
MVC Model, View, Controller
MVC Model, View, Controller Basert på tredeling av funksjonalitet Modell holder underliggende data View leser og visualiserer data Controller tolker input og endrer data Fordeler kan bytte ut hver enkelt
DetaljerEKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300
Side 1 av 8 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag
DetaljerPensum SWING/MCV delen av TDT4180- MMI. Vår 2009 Dag Svanæs, IDI
Pensum SWING/MCV delen av TDT4180- MMI Vår 2009 Dag Svanæs, IDI Pensum Kun de sentrale delene av det som er gjennomgått er direkte eksamensrelevant. Andre deler er relevant for øvinger, men vil ikke bli
DetaljerEKSAMEN I FAG TDT4180 MMI Lørdag 15. august 2009 Tid: kl
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Lørdag 15. august
DetaljerEKSAMEN I FAG TDT4180 MMI Onsdag 28. mai 2008 Tid: kl. 0900-1300
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Hallvard Trætteberg, Tlf: 73 59 34 43 EKSAMEN I FAG TDT4180 MMI Onsdag 28.
DetaljerEksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI)
Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI) Faglig kontakt under eksamen: Dag Svanæs Tlf.: 91897536 Eksamensdato: 5. August Eksamenstid
DetaljerEKSAMEN I FAG TDT4180 - MMI Lørdag 4. juni 2005 Tid: kl. 0900-1300
Side 1 av 7 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag
DetaljerEKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl. 0900-1300
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010
DetaljerEKSAMEN I FAG TDT4180 - MMI Lørdag 26. mai 2012 Tid: kl. 0900-1300
Side 1 av 9 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag
DetaljerEKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009
DetaljerJList, JTree, JTable. JList
JList, JTree, JTable JList JList ListModel ListSelectionModel ListCellRenderer JList View lese vha. get-metoder MVC Modellen Model Controller endre vha. set/ add-metoder endringshendelser JList ListModel
DetaljerEKSAMEN I FAG TDT MMI Mandag 15. august 2011 Tid: kl
Side 1 av 9 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Mandag
DetaljerGrafisk Brukergrensesnitt
Grafisk Brukergrensesnitt Repetisjonskurs Hva må kunnes? JFrame JPanel JComponents Layouts Listeners jframe Representerer et vindu JComponents legges på vinduet Har en tittel og størrelse Komponenter struktureres
DetaljerNORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP. Løsningsforslag
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Hallvard Trætteberg, Tlf: 73 59 34 43 Løsningsforslag EKSAMEN I FAG TDT4180
DetaljerEKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010
DetaljerEKSAMEN I FAG TDT4180 MMI Lørdag 21. august 2010 Tid: kl
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Lørdag 21. august
DetaljerEKSAMEN I FAG TDT4180 - MMI Mandag 4. august 2008 Tid: kl. 0900-1300
Side 1 av 11 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Mandag
DetaljerKonseptuell modell, skjermdesign og konstruksjon
Konseptuell modell, skjermdesign og konstruksjon Vedlegg til øving D3 1. Gjennomgående eksempel 2. Beskrivelse av konseptuell modell 3. Skjermdesign, kobling mot konseptuell modell og oppførsel 4. Dokumentasjon
DetaljerOppgave 1 (30%) Grensesnittdesign
Side 1 av 7 Oppgave 1 (30%) Grensesnittdesign Firmaet Glade Bad A/S planlegger en ny serie med badefliser for salg i sine butikker. Forretningsideen er at kundene skal kunne designe sine egne mønstre utifra
DetaljerNORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP
Side 1 av 9 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag
DetaljerEKSAMEN I FAG TDT4180 MMI Onsdag 18. mai 2009 Tid: kl
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Onsdag 18. mai 2009
DetaljerEksamensoppgave i TDT4180 Menneske-maskin-interaksjon
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon Faglig kontakt under eksamen: Hallvard Trætteberg Tlf.: 91897263 Eksamensdato: 31. mai Eksamenstid
Detaljercase forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg
Objekt-interaktor med valg AMS- case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Relatert objekt velges ofte blant mange kandidater Output av kandidat-sett Input
DetaljerEKSAMEN I FAG TDT MMI Tirsdag 1. juni 2004 Tid: kl
Side 1 av 5 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 Hallvard Trætteberg, Tlf: 73 59
DetaljerINF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010
Grafisk brukergrensesni3 med Swing og awt del 1 GUI (Graphical User Interface)- programmering Hvordan lage et vindu på skjermen Hvordan legge ulike komponenter i vinduet (trykknapper, tekseelter, tekst,
DetaljerINF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk
INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør
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,
Detaljercase forts. Generell interaktor Integer- interaktor Domenemodell Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt
Domenemodell AMS- case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Sentrale begreper og relasjoner Utgangspunkt for både oppgave- og dialogmodeller Mange muligheter
DetaljerLO191D/LC191D Videregående programmering
LO191D/LC191D Videregående programmering Eksamen mai 2012 Løsningsforslag Oppgave 1 Klassen Destinasjon: // Oppgaven er uklar på hva som skal inn i klassen Destinasjon. // Her følger en minimumsutgave
DetaljerAMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt
AMS-case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Domenemodell Sentrale begreper og relasjoner Utgangspunkt for både oppgave- og dialogmodeller Mange muligheter
DetaljerAMS-case. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt
AMS-case Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Domenemodell Sentrale begreper og relasjoner Utgangspunkt for både oppgave- og dialogmodeller Mange muligheter kan undersøkes
DetaljerTDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
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
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
DetaljerGrafiske brukergrensesnitt med Swing og AWT
Grafiske brukergrensesnitt med Swing og AWT - 1 av 11 INNHOLD INTRODUKSJON 3 VINDUER, RAMMER OG PANELER. 4 KOMPONENTER OG VINDUSELEMENTER 6 KNAPPER OG KNAPPELYTTERE.. 8 LAYOUT.. 10 APPENDIX. 11 2 av 11
DetaljerINF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
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
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
Detaljerclass Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
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
DetaljerEKSAMEN I FAG SIF8040 - MMI OG GRAFIKK Lørdag 16. august 2003 Tid: kl. 0900-1400
Side 1 av 6 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG SIF8040 - MMI OG GRAFIKK
DetaljerArv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
DetaljerKalkulator-leksjonen (nesten ferdig)
Kalkulator-leksjonen (nesten ferdig) Introduksjon I denne leksjonen vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Steg 1: Opprette app-pakke, app-klasse,
DetaljerLøsningsforslag (Løsningene i kursiv)
Institutt for Datateknikk og Informasjonsvitenskap Løsningsforslag (Løsningene i kursiv) Eksamensoppgave i TDT4180 Menneske- Maskin-Interaksjon (MMI) Faglig kontakt under eksamen: Dag Svanæs Tlf.: 91897536
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
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
DetaljerAMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt
AMS-case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Objekt-interaktor med valg Relatert objekt velges ofte blant mange kandidater Output av kandidat-sett Input av
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
Detaljer. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.
~KSAMENSOPPGA VE Les gjennom hele oppgavesettet før du begynner A besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i oppgaveteksten, dog med unntak av metodenes parametemavn som
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
DetaljerINF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1
INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt del 1 1 Hvordan lage et vindu på skjermen 2 Hvordan legge inn enkle elementer i vinduet 3 Hvordan lage et vindu med et sudokuspill 4 Hvordan lage en
DetaljerEksamensoppgave i TDT4100 Objektorientert programmering med Java
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Rune Sætre Tlf.: 452 18 103 Eksamensdato: 2013, torsdag
DetaljerOppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
DetaljerINF1010 våren 2008 Uke 4, 22. januar Arv og subklasser
Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering
DetaljerAVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE
AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO325E Faglig veileder: G.Milvang og H.Hemmer Gruppe(r): 2EA,2EB,2EC Dato:12.12.03 Eksamenstid:9 00-14 00 Eksamensoppgaven
DetaljerEks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
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
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
DetaljerTDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Tirsdag 2. juni 2009, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under
DetaljerEksamensoppgave i TDT4100 Objektorientert programmering med Java
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Rune Sætre Tlf.: 452 18 103 Eksamensdato: 2013, torsdag
DetaljerGjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
Detaljer1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
DetaljerEKSAMEN I FAG TDT4180/IT2401 MMI Onsdag 23. mai 2007 Tid: kl. 0900-1300
NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180/IT2401 MMI Onsdag 23.
DetaljerMål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon
Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og
DetaljerEksamensoppgave i TDT4100 Objektorientert programmering med Java
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Hallvard Trætteberg Tlf.: 918 97263 Eksamensdato: 2013,
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerRepitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
DetaljerAVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE
AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO334E Faglig veileder: Hilde Hemmer Gruppe(r): 2EA,2EB,2EC Dato:14.12.04 Eksamenstid: 9 00-12 00 Eksamensoppgaven består av:
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med
DetaljerUNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet
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
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 våren Arv og subklasser del 1
INF1010 våren 2015 Torsdag 12. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering
Detaljer< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar
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
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
DetaljerINF1010 Binære søketrær ++
INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010
DetaljerUNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220
DetaljerINF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
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
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,
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
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
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
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
DetaljerBOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs
BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Bruk av grensesnitt og implementasjoner i Collection-klasser Java-prog, kap. 14-16 i Big Java Og side 990-997 i Appendix D Collection-rammeverket og iterasjon
DetaljerEksamen Oppgave a) public class DayTime { public final int hours, minutes;
Eksamen 2012 Del 1 - Innkapsling (20%) Gitt følgende klasse, som representerer et tidspunkt på dagen: public class DayTime { public final int hours, minutes; public DayTime(int hours, int minutes) { this.hours
DetaljerKonstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
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.
DetaljerTDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Lørdag 22. mai 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under
DetaljerUML-Unified Modeling Language. Prosess-oversikt. Use case realisering
Use case realisering Designmodellering 31.01.2005 Kirsten Ribu UML-Unified Modeling Language Use Case diagram Klassediagram Oppførselsdiagrammer Sekvensdiagram Kollaborasjonsdiagram Tilstandsdiagram Aktivitetsdiagram
DetaljerNB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..
Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan
DetaljerINF1010 våren Arv og subklasser del 1
INF1010 våren 2016 Torsdag 4. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering
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
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
DetaljerOO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0
OO-eksempel I eksemplet er det deklarert tre klasser: 1) Fag (skal instansieres ett objekt for hvert fag) 2) Student (skal instansieres ett objekt for hver student) 3) Studenter (abstrakt klasse skal ikke
Detaljerimport javax.swing.*; import java.awt.*;
import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; Pluss mange Implementasjoner av forskjellige grensesnitt class RammeDemo { public static void main(string[] args) { JFrame
Detaljer