Design af genbrugeligt objektorienteret software
|
|
- Ingelise Lorenzen
- 6 år siden
- Visninger:
Transkript
1 Velkommen Design af genbrugeligt objektorienteret software Evaluering af software ved hjælp af statiske mål. 24 februar 2004 Specialeforsvar af: Søren Gaardbo Jensen Design af genbrugeligt objektorienteret software p. 1/38
2 Motivation og baggrund Hvad er problemet? Design af genbrugeligt objektorienteret software p. 2/38
3 Motivation og baggrund Hvad er problemet? Hvad karakteriserer det gode design i forhold til genbrug og vedligeholdelse, og kan vi automatisk evaluere software så problematiske dele identificeres? Design af genbrugeligt objektorienteret software p. 2/38
4 Motivation og baggrund Hvad er problemet? Hvad karakteriserer det gode design i forhold til genbrug og vedligeholdelse, og kan vi automatisk evaluere software så problematiske dele identificeres? Reusability/Maintainability Profiler. Genbrug? - Vedligeholdelse? Design af genbrugeligt objektorienteret software p. 2/38
5 Strategi Strategi. Eksisterende softwaremål. Designprincipper og sammenhæng med softwaremålene. Tilstrækkelighed i mål. Eksperimenter. Design af genbrugeligt objektorienteret software p. 3/38
6 Afgrænsning Objektorienterede paradigme Java. Design af genbrugeligt objektorienteret software p. 4/38
7 Afgrænsning Objektorienterede paradigme Java. Ingen metadata. Design af genbrugeligt objektorienteret software p. 4/38
8 Afgrænsning Objektorienterede paradigme Java. Ingen metadata. Statiske mål. public class Receipt { private Sale sale; public Receipt(Sale _sale) { sale = _sale; } public String gettext() { float total=0; String receipt; receipt = sale.getcustomer().getname() + "\n"; receipt += sale.getcustomer().getaddress() + "\n\n"; SalesItems salesitems = sale.getsalesitems(); Product[] p = salesitems.getproducts(); } } for(int i=0; i<salesitems.getproductcount();i++) { receipt += p[i].getname() + "\t" + p[i].getpriceinclvat() +"\n"; total += p[i].getpriceinclvat(); } receipt += "\ntotal:\t\t" + total + "\n"; return receipt; Softwaremål CBO = 5 LOC = 18 Design af genbrugeligt objektorienteret software p. 4/38
9 Resultat Plug-in til Eclipse blev udviklet. Sammenhæng mellem nogle mål og principper. Nye mål blev konstrueret: Abstraktionsfaktorer. Kendskab. Design af genbrugeligt objektorienteret software p. 5/38
10 Konklusion Målene kan i nogen grad identificere potentielt problematisk kode. Kan ikke bruges helt uden metadata. Abstraktionsfaktorene ser lovende ud. Skal undersøges nærmere. Design af genbrugeligt objektorienteret software p. 6/38
11 Disposition Eksisterende softwaremål. Designprincipper og sammenhæng med softwaremålene. Tilstrækkelighed i mål. Eksperimenter. Konklusion. Design af genbrugeligt objektorienteret software p. 7/38
12 Softwaremål Strukturerede paradigme. Objektorienterede paradigme. To gennemgående begreber: Kobling. Kohæsion. Design af genbrugeligt objektorienteret software p. 8/38
13 Kobling & Kohæsion Kobling. Design af genbrugeligt objektorienteret software p. 9/38
14 Kobling & Kohæsion Kobling. Client +getyearssince(int year) MySystem +getcurrentyear() return MySystem.getCurrentYear() - year; // return years: yy Design af genbrugeligt objektorienteret software p. 9/38
15 Kobling & Kohæsion Kobling. Client +getyearssince(int year) MySystem +getcurrentyear() return MySystem.getCurrentYear() - year; // return years: yy Kobling fra client til MySystem. Design af genbrugeligt objektorienteret software p. 9/38
16 Kobling Ændringer i et modul kan kræve ændringer i koblede moduler. Svært at isolere til genbrugelige moduler. Svært at overskue: Kræver kendskab til koblede dele. Design af genbrugeligt objektorienteret software p. 10/38
17 Kohæsion Kohæsion. Design af genbrugeligt objektorienteret software p. 11/38
18 Kohæsion Kohæsion. +method(...) ClientF2C Converter +convert(int type, int value):int +method(...) ClientI2C Converter.convert( FAHRENHEIT_2_CELSIUS, 100) Converter.convert( INCHES_2_CM, 100) public int convert(int type, int value) { int result = 0; switch(type) { case FAHRENHEIT_2_CELSIUS: result = (int) ((value - 32) / 1.8); break; case INCHES_2_CM: result = (int) (value * 2.54); break; } return result; } Design af genbrugeligt objektorienteret software p. 11/38
19 Kohæsion Lettere at vedligeholde. Mindre fejlbehæftet [McConnell] Lav kohæsion er udtryk for uhensigtsmæssigt design. Design af genbrugeligt objektorienteret software p. 12/38
20 Måling af kobling Fan in/fan out. Coupling Between Object classes: CBO Coupling Factor: COF. Globale data Fan out (opdatering) Fan in (hentning) Fan in (Kald fra andre moduler) Modul Fan out (Kald til andre moduler) Design af genbrugeligt objektorienteret software p. 13/38
21 Måling af kohæsion Kan ikke måles! Design af genbrugeligt objektorienteret software p. 14/38
22 Måling af kohæsion Kan ikke måles! Lack of COhesion in Methods: LCOM. Flere versioner. Design af genbrugeligt objektorienteret software p. 14/38
23 Disposition Eksisterende softwaremål. Designprincipper og sammenhæng med softwaremålene. Tilstrækkelighed i mål. Eksperimenter. Konklusion. Design af genbrugeligt objektorienteret software p. 15/38
24 Designprincipper Der findes mange principper. Mange egenskaber kan ikke måles. Udvalgt fire principper: Information Expert. Polymorphism. Law of Demeter. Design mod et interface. Design af genbrugeligt objektorienteret software p. 16/38
25 Designprincipper Information Expert. Mindre kommunikation mellem klasser. Højere kohæsion i klassen. DataClass attributes 1..m OperationClass +operation 1..n Design af genbrugeligt objektorienteret software p. 17/38
26 Designprincipper Information Expert. Mindre kommunikation mellem klasser. Højere kohæsion i klassen. Ikke problemfrit. DataClass attributes 1..m OperationClass +operation 1..n Design af genbrugeligt objektorienteret software p. 17/38
27 Polymorphism Polymorphism. Bruges til udvidelser og erstatninger. Hvis princippet erstatter switch i kode, redureres koblingen. Receipt 1 1 Sale <<uses>> <<interface>> PrintDeviceInterface +print(string):void +setitalics(boolean):void +setboldface(boolean):void 1 1 PrintDeviceFactory ScreenPrintDevice <<creates>> Design af genbrugeligt objektorienteret software p. 18/38
28 Law of Demeter Law of Demeter. Receipt Sale Customer String +print() +getcustomer() +getname() -sale:sale -customer:customer -name:string customer.getname() return name; sale.getcustomer().getname() Sale Receipt Customer Design af genbrugeligt objektorienteret software p. 19/38
29 Law of Demeter - 2 Receipt Sale Customer String +print() +getcustomername() +getname() -sale:sale -customer:customer -name:string return customer.getname() return name; sale.getcustomername() Sale Receipt Customer Reducerer koblinger i systemet. Design af genbrugeligt objektorienteret software p. 20/38
30 Design mod et interface Design mod et interface. Generelt princip. Sikrer information hiding. Polymorphism afhænger af dette. Design af genbrugeligt objektorienteret software p. 21/38
31 Disposition Eksisterende softwaremål. Designprincipper og sammenhæng med softwaremålene. Tilstrækkelighed i mål. Eksperimenter. Konklusion. Design af genbrugeligt objektorienteret software p. 22/38
32 Tilstrækkelighed Ingen mål afslører brud på Design mod et interface. Design af genbrugeligt objektorienteret software p. 23/38
33 Tilstrækkelighed Ingen mål afslører brud på Design mod et interface. Abstraktionsfaktorer. Design af genbrugeligt objektorienteret software p. 23/38
34 Tilstrækkelighed Ingen mål afslører brud på Design mod et interface. Abstraktionsfaktorer. KoblingsAbstraktionsFaktor baseret på CBO. Design af genbrugeligt objektorienteret software p. 23/38
35 Abstraktionsfaktorerne Koblingsbaseret abstraktion er ikke altid tilstrækkelig. Design af genbrugeligt objektorienteret software p. 24/38
36 Abstraktionsfaktorerne Koblingsbaseret abstraktion er ikke altid tilstrækkelig. Design af genbrugeligt objektorienteret software p. 24/38
37 Kendskab Kendskab. Tæller samtlige typer der er kendskab til. Supermængde til CBO. Grænseklasser medtages i målet. Design af genbrugeligt objektorienteret software p. 25/38
38 Abstraktionsfaktorerne Forholdet mellem interface koblinger i forhold til samtlige koblinger. Forholdet mellem interface kendskaber i forhold til samtlige kendskaber. Design af genbrugeligt objektorienteret software p. 26/38
39 Disposition Eksisterende softwaremål. Designprincipper og sammenhæng med softwaremålene. Tilstrækkelighed i mål. Eksperimenter. Konklusion. Design af genbrugeligt objektorienteret software p. 27/38
40 Eksperimenter To forskellige eksperimenter. Tre softwaremål LCOM. CBO. Kendskabet. Design mod et interface. Abstraktionsfaktorene. Design af genbrugeligt objektorienteret software p. 28/38
41 Eksperimenter Information Expert. Kobling er reduceret. Kohæsion er forbedret (småt system). Kendskab er reduceret. Design af genbrugeligt objektorienteret software p. 29/38
42 Eksperimenter Polymorphism. Koblingen er bedre pga. omfordeling af koblingerne. Kohæsionen er uændret (småt system). Kendskab er reduceret. Design af genbrugeligt objektorienteret software p. 30/38
43 Eksperimenter Law of Demeter. Kobling er bedre pga. omfordeling af koblingerne. Kohæsionen er uændret (småt system). Kendskab er lidt reduceret uden parm. og lidt forøget med parm. Design af genbrugeligt objektorienteret software p. 31/38
44 Eksperimenter Svært at sige noget om kohæsionen pga. systemets størrelse. Generelt bliver koblinger reduceret. Generelt bliver kendskabet reduceret. Koblingsmålet kan måske bruges til identifikation af problematiske klasser. Design af genbrugeligt objektorienteret software p. 32/38
45 Eksperimenter - Abstraktionsfaktorene Interfaceprincippet i Eclipse & POS. To versioner: Kendskab & kobling. Forventet at Eclipse er mere abstrakt end POS. Design af genbrugeligt objektorienteret software p. 33/38
46 Kendskab Kendskab. Kendskab i Eclipse og Pos x = 0 0<x<10 10 <= x < <= x < <= x < <= x < <= x < <= x < <= x < 80 % af klasser 80 <= x < <= x < <= x Kendskab Eclipse Pos Kendskab (0 < kendskab <= 20) i Eclipse og Pos Eclipse Pos 0 < x <= 2 2 < x <= 4 4 < x <= 6 6 < x <= 8 8 < x <= < x <= < x <= < x <= < x <=18 18 < x <=20 Kendskab Design af genbrugeligt objektorienteret software p. 34/38 % af klasser
47 Kobling Kobling. Kobling (CBO) i Eclipse og Pos x = 0 0<x<10 10 <= x < <= x < <= x < <= x < <= x < <= x < <= x < 80 % af klasser 80 <= x < <= x < 100 CBO Eclipse Pos Kobling (CBO) i Eclipse og Pos (0 < CBO <=20) Eclipse Pos 0 < x <= 2 2 < x <= 4 4 < x <= 6 6 < x <= 8 8 < x <= < x <= < x <= < x <= < x <=18 18 < x <=20 CBO Design af genbrugeligt objektorienteret software p. 35/38 % af klasser
48 Abstraktionsfaktorerne Abstraktionsfaktorerne. Kendskabsabstraktionsfaktoren (KAF) i Eclipse og Pos x = 0 0 < x < <= x < <= x < <= x < <= x < <= x < <= x < <= x < <= x < <= x < 1 x = 1 % af klasser og interfaces KAF Eclipse Pos Koblingsabstraktionsfaktoren (CAF) i Eclipse og Pos Eclipse Pos x = 0 0 < x < <= x < <= x < <= x < <= x < <= x < <= x < <= x < <= x < <= x < 1 x = 1 CAF Design af genbrugeligt objektorienteret software p. 36/38 % af klasser
49 Disposition Eksisterende softwaremål. Designprincipper og sammenhæng med softwaremålene. Tilstrækkelighed i mål. Eksperimenter. Konklusion. Design af genbrugeligt objektorienteret software p. 37/38
50 Konklusion Der er en sammenhæng mellem designprincipper og mål. En automatisk identifikation af potentielt problematiske områder er mulig men... Design af genbrugeligt objektorienteret software p. 38/38
51 Konklusion Der er en sammenhæng mellem designprincipper og mål. En automatisk identifikation af potentielt problematiske områder er mulig men......der er brug for metadata for at kunne anvende resultaterne. Design af genbrugeligt objektorienteret software p. 38/38
52 Konklusion Der er en sammenhæng mellem designprincipper og mål. En automatisk identifikation af potentielt problematiske områder er mulig men......der er brug for metadata for at kunne anvende resultaterne. Eksperimenterne var for små til at sige noget om målet LCOM. Design af genbrugeligt objektorienteret software p. 38/38
53 Konklusion Der er en sammenhæng mellem designprincipper og mål. En automatisk identifikation af potentielt problematiske områder er mulig men......der er brug for metadata for at kunne anvende resultaterne. Eksperimenterne var for små til at sige noget om målet LCOM. Abstraktionsmålene forventes at sige noget om systemets generelle fleksibilitet, men skal undersøges nærmere. Design af genbrugeligt objektorienteret software p. 38/38
Design af genbrugeligt objektorienteret software Evaluering af software ved hjælp af statiske mål.
Design af genbrugeligt objektorienteret software Evaluering af software ved hjælp af statiske mål. Speciale Januar 2004 af: Søren Gaardbo Jensen Vejleder: Eric Jul DIKU, Datalogisk Institut
Læs mereObjektorientering. Programkvalitet
1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mereAssignment #5 Toolbox Contract
Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal
Læs mereSoftware Design (SWD) Spørgsmål 1
Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Activity Milestone Artifact Spørgsmål
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereEksempel: et ordresystem note 5 Lagdeling s. 1
Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar
Læs mereObjektorienteret design med arv og polymorfi:
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret
Læs mereForelæsning Uge 3 Mandag
Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereBemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.
Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereForelæsning Uge 3 Torsdag
Forelæsning Uge 3 Torsdag Billedredigering (bl.a. brug af for-løkker) Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt)
Læs mereSoftware Design (SWD) Spørgsmål 1
Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Activity Milestone Artifact Spørgsmål
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereForelæsning Uge 5 Mandag
Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere
Læs mereModern Concurrency Abstractions for C#
Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereHvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag
Hvem er vi? Kursus Introduktion Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark 100 studerende med forskellig baggrund: software teknologi It og Kom
Læs mereForelæsning Uge 3 Torsdag
Forelæsning Uge 3 Torsdag Billedredigering Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt) antal elementer Afleveringsopgave:
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereVirkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Læs mereIntegrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere
Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel
Læs mereLinkGRC. Dokumenter. Brugermanual
Brugermanual 1 INDHOLD 1. Navigation 2. Dashboard 3. 4. Support 2 NAVIGATION 1 På forsiden finder du dine installerede moduler i LinkGRC løsningen og du kan her vælge hvilket modul du ønsker at arbejde
Læs mereMiniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.
Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet
Læs mereKlasser og objekter. (Afsnit i manualen)
Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser
Læs meredintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mere4 Basal Objekt-orienteret Programmering I.
4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgaver
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereLektion 3. Grundlæggende programmering i VR
Lektion 3 Grundlæggende programmering i VR Plan for i dag UML Usecase diagrammer Aktivitets diagrammer Klasse diagrammer Udforskning af forskelligt VR og andre måder at udvide virkeligheden på Cardboard
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6
DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...
Læs mereLær Python - Dag 4, modul 1 Objektorienteret programmering
Lær Python - Dag 4, modul 1 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Objektorienteret programmering Hvad er objektorienteret programmering? Vi
Læs mereGoogle App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben
GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor
Læs mere30 Objekt-orienteret Programmering i Andre Sprog.
30 Objekt-orienteret Programmering i Andre Sprog. Abstrakte datatyper i Pascal. Abstrakte datatyper i Modula og Ada. C++ Overordnet organisering Instantiering og initialisering. Interfaces. Nedarvning.
Læs mereSoftware 1 with Java. Recitation No. 7 (Servlets, Inheritance)
Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereDatastrukturer. Datastruktur = data + operationer herpå
Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)
Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer
Læs mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereSoftware Design (SWD) Spørgsmål 1
Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Artifact Milestone Du skal relaterer
Læs mereObjects First with Java A Practical Introduction Using BlueJ
Objects First with Java A Practical Introduction Using BlueJ En introduktion til objektorienteret programmering for begyndere ud fra et software engineering aspekt Om at programmere i Java, ikke om værktøjet
Læs mereKlasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.
Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens
Læs mereVejledende løsninger
Roskilde Universitetscenter side 1 af 8 sider Vejledende løsninger Opgave 1 Spørgsmål 1.1 a = b - a; b = b - a; a = b + a; Opgaven har flere løsninger. En anden løsning er: a = b + a; b = a - b; a = a
Læs mereJacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004
Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret
Læs mereStrategisk partnerskab mellem KMD og SAP
DIAS 1 Strategisk partnerskab mellem KMD og SAP Jan Hesthaven Afdelingsdirektør SAP Strategic Partner Management Størrelsesforholdet mellem KMD og SAP AG DIAS 2 KMD er store i Danmark og i Norden Omsætning
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgaver
Læs mereProgrammering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Læs mereLær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Læs mereForelæsning Uge 1 Torsdag
Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige
Læs mereELEKTRONISK INDBERETNING POST 23/8 2007 VERSION 1.13
ELEKTRONISK INDBERETNING POST 23/8 2007 VERSION 1.13 Indhold Indhold... 2 Introduktion... 3 dk.hob.ei.general.plugin... 4 Metoder... 4 GetPrivateMail... 4 GetPrivateMailNext... 7 DeletePrivateMailEx...
Læs mereSpecialeforsvar: Fundamentet for et fleksibelt container bibliotek
Specialeforsvar: Fundamentet for et fleksibelt container bibliotek Foundations of an adaptable container library Bo Simonsen Datalogisk Institut, Københavns Universitet Denne præsentation, afhandlingen,
Læs mereForelæsning Uge 6 Mandag
Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
Læs mereOversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering
Oversigt Modellering Begrebsmodellering, UML og Java Begrebsapparat til objektorientering Begrebsopfattelser og -modellering Strukturer: specialisering, aggregering, associering Anvendes til organisering
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereSoftware Design (SWD) Spørgsmål 1
Spørgsmål 1 Unified Process Du skal give en beskrivelse af Unified Process. Beskrivelsen skal indeholde forklaring på følgende begreber: Phase Iteration Discipline Artifact Milestone Du skal relaterer
Læs mereIntroduktion til OO* og UML
Introduktion til OO* og UML Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Hvad er OO*? UML Essensen af objekt-orienteret analyse og design: klassebegrebet Relationer mellem objekter
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereOm binære søgetræer i Java
Om binære søgetræer i Java Mads Rosendahl 7. november 2002 Resumé En fix måde at gemme data på er i en træstruktur. Måden er nyttig hvis man får noget data ind og man gerne vil have at det gemt i en sorteret
Læs mereDatabasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002
Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
Læs mereSigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
Læs mereInstallation og ibrugtagning af Geomagic Alibre Vault
Karl Lausten Bright Ideas Tlf.:+45 98 62 28 37 Mejsevej 8 Email: klausten@bright-ideas.dk DK-9600 Aars www.bright-ideas.dk CVR 26 85 59 69 12.02.2014 Installation og ibrugtagning af Geomagic Alibre Vault
Læs mere5. Vores Skole bruger verden hver dag
5. Vores Skole bruger verden hver dag Skoler og virksomheder kan få mere ud af hinanden Skoler og virksomheder kan indgå både dybere og længerevarende samarbejder, der kan være med til at forberede eleverne
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereThermo Surveillance System TSS
Teknisk Informationsteknologi Ingeniørhøjskolen Aarhus Projekt: TI-OOMI Dato: 15.12.2003 Thermo Surveillance System TSS GRUPPE Tommy Andreasen 20030336 Anders Dyhrberg 20033981 Mette Vestergaard au2227
Læs mereTredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereMapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.
MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1 MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2 Program Hurtig
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereSider og segmenter. dopsys 1
Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSider og segmenter. dopsys 1
Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mereBegreber om Godt Software
Begreber om Godt Software Maintainability (vedligeholdelse): Softwarens evne til at blive ændret (funktionalitet, rettet, forbedrelser, miljø, krav). - Analyserbart: Evnen til at blive fejldiagnosticeret,
Læs mereWebserverprogrammering
Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereIBM WebSphere Operational Decision Management
IBM WebSphere Operational Decision Management 8 0 49., WebSphere Operational Decision Management 8, 0, 0. Copyright IBM Corporation 2008, 2012. ........... 1 :......... 1 Miniloan........ 3 1:........
Læs mereUdvikling af DOTNET applikationer til MicroStation i C#
Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt
Læs mereInstallere Windows Custom PostScript- eller PCL-printerdriverne
Installere Windows Custom PostScript- eller PCL-printerdriverne Denne fil med vigtige oplysninger indeholder en vejledning til installation af Custom PostScript- eller PCL-printerdriveren på Windows-systemer.
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereDatastrukturer. Datastruktur = data + operationer herpå
Prioritetskøer Prioritetskøer? Datastrukturer Datastruktur = data + operationer herpå Datastrukturer Data: Datastruktur = data + operationer herpå Ofte en ID + associeret data. ID kaldes også en nøgle
Læs mereHvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation
Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et
Læs mereBOSK F2012, 1. del: Prædikatslogik
ε > 0. δ > 0. x. x a < δ f (x) L < ε February 8, 2012 Prædikater Vi skal lære om prædikatslogik lad os starte med prædikater. Et prædikat er et orakel der svarer ja eller nej. Eller mere præcist: Prædikater
Læs mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mere