Begreber om Godt Software
|
|
|
- Ejvind Ibsen
- 10 år siden
- Visninger:
Transkript
1 Begreber om Godt Software Maintainability (vedligeholdelse): Softwarens evne til at blive ændret (funktionalitet, rettet, forbedrelser, miljø, krav). - Analyserbart: Evnen til at blive fejldiagnosticeret, eller finde steder, der skal ændres - Forandringsevne: Evnen til at implementere en specifik ændring - Stabilitet: Evnen til at undgå uventede effekter pga. modifikationer - Testbarhed: Evnen til at ændrede systemer valideres Fleksibilitet: Evnen til at understøtte tilføjelser eller forhøjet funktionalitet ved kun at tilføje sw-enheder (og ikke ved at ændre nuværende). Coupling:Hvor afhængig en software-enhed er af andre enheder. - Lav: få dependencies - Høj: mange Giv ansvar så vi får lav kobling Lokale ændringer har ikke meget effekt, nemmere at forstå units i sig selv, større sandsynlighed for genbrug Cohesion: Hvor stærkt relateret og fokuseret ansvar og givet opførsel af enhed er. Law of demeter: Tal ikke med fremmede (ingen lange /nestede metodekald). + Sænker direkte kobling - Interfaces bliver fyldt med mange metoder For at opdage fejl, må man teste. Fejl, når software ikke opfører sig som forventet. En defekt er årsagen til fejl, da det er forkert implementation af kode. Test cases laves for at finde fejl, man giver noget input til UUT og tjekker på output. En test suite er en mængde test cases. Unit under test (UUT), en del af systemet vi betragter som et hele. Man kan bruge manuelle tests hvilket er test cases der køres manuelt, eller automatiserede tests, test suites der bliver kørt og tjekket automatisk af et program. Man skal bruge regression testing, dvs kører test cases ofte, for at sikre at systemets opførsel ikke har ændret sig. Produktions kode, den kode der styrer opfylder kravene til programmet. Test kode, den kode der tester produktions koden. 1
2 1 Test-driven development Test før produktionskode laves, med automatiserede tests. Der laves en test liste, hvoraf det fremgår, hvad der skal testes en test vælges som vil lære en noget, og komme frem i udviklingen. Der gås frem efter TDD-rytmen: 1. Test tilføjes hurtigt 2. Alle tests køres, og den nye fejler 3. Der laves en lille ændring i produktionskoden 4. Alle tests køres, og den nye går igennem 5. Refaktorer for at fjerne unødvendig kode. Fake-it-princippet bruges (til en hvis grad), med mindre der kan laves en åbenlys implementation. Triangulering bruges til at sikre at alle aspekter af fx algoritmer dækkes (ved at lave flere tests). Generelt bruger vi isolerede tests, så de forskellige tests ikke påvirker hinanden. Vi refaktorerer for at gøre vedligeholdelse og fleksibilitet større (uden at påvirke systemets opførsel ud af til). I vores tests bruges tydelig data vi skal lave testene så vi forstår dem (ikke regne dem ud for computeren). Vi bruger repræsentativt data, så vi ikke vælger tre tests med data inden for samme ækvivalensklasse. Desuden skal testene også være tydelige. TDD-værdier: Hold fokus, tag små skridt (hurtigt), simpelt Fordele: - Ren (vedligeholdbar) kode, som virker (troværdig) - Hurtigt feedback giver programmøren selvtillid (hvis fejler, ved man det er i skridtet før, eller før det, der er fejl i produktionskoden) - Troværdig software (pga. testcases) - Kun ønsket opførsel programmeres (da vi kun programmerer det testene kræver) - Dokumentation - Ingen driver -kode, vi har testcasene - Struktureret programmeringsproces Ulemper: Hvis interfaces af en grund skal ændres, så skal alle tests ændres. Tests skal holdes simple, ellers er de værdiløse for læseren. Relater til Black Box Testing samt Godt Software. 2
3 2 Systematic black-box testing Systematisk testing er en planlagt og systematisk proces, som bruges til at finde fejl i veldefinerede dele i systemer. Black-box testing behandler UUT (enhed under tester) som en sort boks! Det eneste vi ved om den er specifikationen implementationen er skjult for os. Derudover kræves der viden omkring hyppige fejl lavet af programmører. White-box testing, vi kender hele implementationen. Vi kan vælge ikke at teste overhovedet (for helt simple accessor og set metoder) vi kan vælge undersøgende (eksplorativ) testing, hvor vi bruger vores erfaring til sidst er der systematisk test, hvor vi går efter at finde fejl (for avancerede systemer, hvor sikkerheden er vigtig)! Vi bruger ækvivalensklasser til dele input til UUT op. Input fra samme ækvivalensklasse skal give samme output (og samme fejl). Vi finder ECs ved at kigge på betingelserne for input (og nogen gange output). Herefter kigger vi på vores ECs, og repartionerer evt. de fundne ECs. Herefter kigger vi på dem endnu engang, for at sikre, alt er dækket. Man deler ofte op i gyldige og ugyldige Ecs, afhængigt af gyldigheden af input. Men gyldigt input kan også være ugyldigt, hvis det fx betyder at metoden bailer ud (fx en if sætning i starten, der bare retunerer en fast værdi). Herefter laver man testcases ud fra ECs. Myers heuristik er god: 1) Indtil alle gyldige ECs er dækket, laves en test, hvor så mange gyldige ECs dækkes som muligt. 2) Indtil alle ugyldige ECs er dækket, laves en testcase, hvis elementer kun ligger i én ugyldig EC. Herudover er det meget godt at lave tests, som ligger lige på grænsen, boundary analysis tre for hver grænse. Så der sikres, at der findes dumme programmør-fejl, hvor der fx mangler en = i en if-sætning. Key points: Test ikke på preconditions. Test ikke på overdrevet dum programmering. Myers heuristics skal bruges velovervejet og ikke ukritisk. Relater til TDD. 3
4 3 Variability management Vi identificerer et punkt i vores kode, som varierer. Der er 4 forskellige fremgangsmåder: Kildekodekopiering: Der kopieres simpelthen en hel kopi af den nuværende udgave, hvor vi så ændrer i kopien. + Simpelt + Hurtigt + Afkoblet (fejl i den ene udgave kommer ikke i den anden) - Vedligeholdelsen af flere systemer besværlig (multiple maintenance problem) - Varianterne glider fra hinanden, og ender med at blive forskellige produkter - Besværligt at arbejde med mange udgaver af stort set samme kode Parametrisk løsning: En if-sætning bruges til at bestemme, hvilken variant der skal bruges. + Simpelt + Multiple maintenance problem undgås - Ændring ved modificering, troværdighedsproblem, evt. nye fejl (alle varianter skal testes) - Jo flere krav der styres med denne løsning, jo svære er det at analysere koden (mange ifsætninger) - Ansvarstillægelse nu får den specifikke klasse pludselig ansvar for at skifte variant Polymorf løsning: Vi nedarver og overskriver de metoder, som vi vil ændre i varianten. + Multiple maintenance problem undgås + Vi ændrer ikke eksisterende kode, tilføjer kun + Nemmere at læse ny kode - Flere klasser at forholde sig til - Kan kun nedarve fra én klasse (C# og Java) - Svært at genbruge kode fra andre varianter (super og sub-klasser) - Varianten bindes allerede ved compile-time, kan ikke ændres med mindre der compiles en ny udgave Compositionel løsning: Vi uddelegerer ansvaret, der varierer, til andre objekter, som arbejder sammen. + Vi ændrer ikke i gammel kode, tilføjer kun nyt reliable + Run-time binding, vi kan ændre variant undervejs + Separering af ansvar + Separering af tests nemmere at teste specifikke varianter + Variant vælges lokalt og kun et sted + Endnu flere variabilitetspunkter kan tilføjes uden at påvirke dette - Flere klasser og interfaces - Klienter skal være opmærksomme på at vælge en strategi Normalt identificeres noget opførsel, der varierer, ved at bruge metoden: 3. Find variabilitetspunkt 1. Flyt ansvar til interface 2. Uddeleger opførsel til konkrete objekter Relater til Dessign Patterns og Godt Software. 4
5 4 Test stubs and unit/integration testing Direkte input er data, som gives af vores testkode og som påvirker opførslen for vores UUT. Indirekte input er data, som vi ikke kan give direkte i vores testkode, som ændrer opførslen for vores UUT. Depended-on Unit (afhængig af denne): En del i produktionskoden, som giver data til UUT og påvirker dennes opførsel. Igen et variabilitetsproblem: - Under test bruger vi data, som vi bestemmer (test stub) - Under normal brug, bruges den rigtige varierende data (som vi ikke har kontrol over) (DOU) Der findes forskellige test doubles: - Test stub: Få indirekte input under kontrol - Test spy: Indirekte output optages for at kontrollere om UUT giver de rigtige kommandoer - Mock objekt: En test spy med fail fast egenskab (fejl på først brud af protokol), også stub - Fake objekt: En hurtig men realistisk erstating (når UUT-DOU er langsom) Man skal vide, hvornår man ikke skal teste fx bør man stole på at firmaer som Sun og Microsoft selv tester, deres software. Unit-testing: Software-enheden udføres i isolation for at finde defects (fejl-implementationer). Integration-testing: Software-enhed udføres i samarbejde med andre enheder, for at finde fejl i deres interaktion. System-testing: Hele systemet udføres for at finde fejl i forhold til kravene. Relater til Godt Software, TDD og Compositionelt Design. 5
6 5 Design patterns Patterns er beskrivelser af kommunikerende objekter og klasser, som ændres til at løse generelle problemer i en bestemt kontekst. Becks def.: Et designpattern er en information om noget, som har virket godt i før, som kan bruges til lignende situationer i fremtiden. Patterns er defineret ud fra de problemer de løser! Mange kan ligne hinanden. Patterns organiserer koden på to måder: - Statisk: Interfaces og klasser - Dynamisk: Give ansvar og interagere Valg af pattern sker på baggrund af fordele/ulemper-analyse i forhold til problem. At bruge pattern er ikke et mål i sig selv, men en måde at opnå kvalitativ kode. Pattern fragility: Hvis ikke et pattern implementeres korrekt, kan vi ende op med kun at for ulemperne fra et pattern. Deklaration: Brug ikke klassenavne, men interface navne i deklarationer. Binding det rigtige sted: Objekter skal laves og kobles i produktionskoden, hvor ansvaret præcist er at konfigurere og binde. Beslut dig for en design strategi, og hold dig til denne (ingen evt nemme løsninger). Undgå ansvarserodering hvis der er nye krav, så flyt ansvar ud i nye klasser (følg pattern). Patterns som roller: Pattern definerer et sæt roller med noget ansvar, og en veldefineret protokol imellem disse roller. Der kan så laves et rolle diagram, hvor de forskellige patterns roller (interface/objekt-navne) også står, udover det alm. UML-diagram. Patterns som roadmap: Patterns strukturerer, dokumenterer og giver overblik over roller og protokoller i komplekse kompositionelle designs. Generelt bruges metoden til at finde designpatterns. Relater til Godt Software og Compositionelt Design. 6
7 6 Compositional design 3 grundlæggende principper for fleksibelt design. 1. Programmer til et interface, ikke en implementation. a. Kig kun på ansvar, ikke konkret implementationsdetaljer. b. Interfaces udtrykker specifikt ansvar, klasser koncepter (flere ansvar). 2. Favoriser objekt sammensætning (composition) frem for nedarvning. a. Nedarvning: compile-time binding, man får al opførsel fra super-klassen (ansvar kan kun tilføjes, ikke fjernes), data-strukturer defineret, ændring i super-klasse fører til gennemtestning af sub-klasser, høj kobling, indkapsling brydes b. Lav kobling, ansvar deles tydeligt op 3. Betragt, hvad der skal variere i designet (eller sammenfat den varierende opførsel). a. Betragt, hvad man gerne vil være i stand til at ændre uden at redesigne. b. Kode der skal være stabil identificeres, og kode der skal variere identificeres. i. Change by add, not by mod. Dette er principper, ikke love. Brug kun, hvis fordelene kan realiseres. Ellers hold sig til TDD-værdien: simpelhed. Compositionel løsning: Vi uddelegerer ansvaret, der varierer, til andre objekter, som arbejder sammen. + Vi ændrer ikke i gammel kode, tilføjer kun nyt reliable + Run-time binding, vi kan ændre variant undervejs + Separering af ansvar + Separering af tests nemmere at teste specifikke varianter + Variant vælges lokalt og kun et sted + Endnu flere variabilitetspunkter kan tilføjes uden at påvirke dette - Flere klasser og interfaces - Klienter skal være opmærksomme på at vælge en strategi Sprog-centriske perspektiv: Objekter er felter og metoder, konkret kode. Model-centriske perspektiv: Fokus på koncepter og relationer (nemmest for noget real-world ). Objekter skal gøre noget vi animerer dem, da et flysæde fx ikke har en opførsel. Først defineres klasser, derefter deres opførsel. Ansvars-centriske perspektiv: Objekters opførsel og ansvar er centrale. Et OO-program består af nogle interagerende objekter, som hver især indtager nogle roller, og udfører en service. Opførsel: Noget gøres på en observerbar måde. Når vi kalder en metode på et objekt. Ansvar: Ansvar abstraherer konkret opførsel væk. Interfaces bedre til at beskrive ansvar end konkrete klasser, da disse har implementation med. Metode signaturer deklarerer ansvaret, men selve opførslen (metode kroppen) dikteres ikke. Rolle: Fokuserer både på funktionalitet og sammenhængen. Definerer noget ansvar og måden der samarbejdes med andre roler. Protokol: Konvention omkring den forventede (og krævede) interaktion roller imellem. Rolle-objekt relation: En rolle mange objekter: Fx Comparable i Java Mange roller et objekt: En personer er både ven, studerende, kæreste, osv. 7
8 7 Frameworks Et framework bruges til at lave flere varianter af et produkt. Et framework er et sæt samarbejdende klasser, som tilsammen udgør et design, der kan gebruges. Genbrug af både design og kode, genbrug i et veldefineret domæne, høj genbrugsprocent, skal tilpasses efter kundens behov. - Skelet: Framework giver opførsel på et højt plan af abstraktionen. - Domæne: Frameworket giver en bestemt opførsel inden for et veldefineret domæne. - Samarbejdende klasser: Frameworket bestemmer protokollen, der fortæller hvordan klasserne i frameworket skal arbejde sammen. Disse skal forstås for at man kan bruge det. - Tilpasning/abstrakte klasser: Det kan skræddersyes til en bestemt kontekst (så længe det er i domænet). - Implementation: Genbrug af kode og design. Applikationer lavet ud fra framework består af framwork koden, den tilpassede kode (vores kode) og ikke framework-relateret kode (vores kode). Frozen spot: Et sted i frameworket, vi ikke kan ændre på grundlæggende design og protokoller. Hot spot: Et tydeligt defineret sted, hvor vores egen specialiserede kode kan sættes ind. Flere metoder til dette: - Komposition (dependency injection objekter der definerer opførsel placeres i fw), parametrisering, nedarvning - Et framework skal understøtte lige fra ingen (interfaces), partiel (abstrakte klasser) til fuld (konkrete klasser) implementation. Frameworks kræver at de forståes, ellers er de nytteløse. Deres protokol skal forstås. Inversion of control handler om, at vores framework der bestemmer flow-of-control. Don t call us, we ll call you. Frameworks er en black-box, så vi tilpasser ikke frameworks via modifikationer men ved at tilføje. 8
9 Design patterns Strategy Når der ønskes flere forskellige varianter af en algoritme. Den overordnede algoritme lægges ud i et interface, og der implementeres konkrete udgaver. State Når der ønskes en ændring af opførsel, når den interne tilstand ændres. Beskriv ansvar for den dynamiske ændrede opførsel i et interface, og implementer den konkrete opførsel i klasser. Når den interne tilstand ændres, flyttes objekt referencen til en anden konkret tilstandsklasse. Abstract Factory Der ønskes at kunne lave relaterede objekter, uden at specificere deres konkrete klasser. Der laves en abstraktion hvis ansvar er at lave familier af objekter. Clienten bruger så denne factory, som så laver klasserne, i stedet for selv at skulle lave dem. Template Method Der er brug for forskellig opførsel I nogen af skridtene I en algoritme, ellers er algoritmens struktur fast. To måder: Definer algoritmens struktur og ikke-varierende opførsel i en metode, og kald hook-metoder, som indeholder de varierende skridt. Hook-metoderne kan enten være abstrakte metoder (unification) eller de kan være uddelegeret i andre objekter, som implementerer interfaces, der indeholder hook-metoderne (separation). Facade Kompleksiteten af et subsystem må ikke vises for klienter. Et interface defineres (facaden), som giver simpel adgang til subsystemet. Klienter tilgår så facaden i stedet for objekterne i subsystemet direkte. Decorator Man vil tilføje ansvar og opførsel til et individuelt objekt uden at modificere dens klasse. Vi laver en decorator-klasse ud fra samme interface. Decoratoren videresender alle forespørgsler til det dekorerede objekt, men kan derudover tilføje ekstra opførsel til specielle requests. Adapter Konverterer interface for en klasse til et andet interface, som der ønskes. Adapter lader klasser arbejder sammen, som ellers ikke kunne pga. inkompatible interfaces. Builder Separer konstruktionen af et komplekst objekt fra dets repræsentation, så den same konstruktionsproces kan generere forskellige repræsentationer. Null Object Definer et no-operation object til at repræsentere null. Bruges så man ikke skal tjekke for null hele tiden. Observer En-til-mange. Når et objekt ændrer tilstand, skal alle andre objekter gøres opmærksom på dette. Alle obervers indeholder en update()-metode, som subjectet sørger for at kalde, specifikke (de ønskede) steder i koden. Iterator, Composite, MVC 9
Software arkitektur. Tobias Brixen Q2-2012
Software arkitektur Tobias Brixen Q2-2012 1 Contents 0.1 Diverse defs.............................. 3 1 Test-driven development 3 1.1 Motivation.............................. 3 1.2 Koncepter...............................
Udfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling
Java og JEE 1 2 Udfordringer og problemstillinger En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling 3 Generelt om Java og JEE 4 Generelt, I Man undervurderer hvor mange
Ugeseddel 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,
dsoftark Noter Michael Lind Mortensen, , DAT4 23. januar 2009
dsoftark Noter Michael Lind Mortensen, 20071202, DAT4 23. januar 2009 Indhold 1 Test-Driven Development 5 1.1 Concept Overview........................ 5 1.2 Concept Details.......................... 5
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion
Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt
Succesfuld implementering af automatiseret test
Succesfuld implementering af automatiseret test Forudsætningerne og faldgruberne John Fodeh [email protected] 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject
UML til kravspecificering
UML til kravspecificering UML mini-kompendium - til brug i forbindelse med modellering af kravspecifikationer. Copyright 2006 Teknologisk Institut, IT-Udvikling Aktivitetsdiagram 2/9 Aktion Aktionsnavn
Introduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Systematisk testning af program til udregning af mellemskat
Systematisk testning af program til udregning af mellemskat Indledning I denne opgave vil vi definere passende cases til systematisk black-box test af et program til beregning af mellemskat. Vi har valgt
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Hovedopgave. OpenSign Refaktorering. af Paw Figgé Kjeldgaard DATALOGISK!INSTITUT! Master i Informationsteknologi. linien i Softwarekonstruktion
DATALOGISK!INSTITUT! DET!NATURVIDENSKABELIGE!FAKULTET! AARHUS!UNIVERSITET! Hovedopgave Master i Informationsteknologi linien i Softwarekonstruktion OpenSign Refaktorering af Paw Figgé Kjeldgaard 14. Juni
DM507 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
Datatekniker med programmering som speciale
Datatekniker med programmering som speciale H2 H1 varer ti uger bestående af ti uddannelsesspecifikke fag. Indhold På H2 er der fokus på at integrere Objektorienteret Programmering i dine programmer. Fagene
Software 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 /
Nye testteknikker fra ISTQB - direkte fra hylderne. Ole Chr. Hansen
Nye testteknikker fra ISTQB - direkte fra hylderne Ole Chr. Hansen TestExpo 29. Januar 2015 Præsentation Ole Chr. Hansen Managing Consultant Fellow SogetiLabs Global Innovation Team Blog - http://ochansen.blogspot.com
Tree 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
(Unit) Testing. Det skal du
(Unit) Testing Det skal du 1 Overblik I dag skal det handle om testing (unit testing) 1. Kort om forskellige former for tests. 2. Unit Testing (Black Box Testing) Opfører kode under test sig som forventet?
Klasser 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
dsoftark E2007 Gruppe 14: Anders, Troels & Søren 15. november 2007 Rapport til a. 1
dsoftark E2007 Gruppe 14: Anders, Troels & Søren 15. november 2007 Rapport til a. 1 'TDD rytmen' Vi bruger gennem vores arbejde, rytmen fra Test Driven Development-paradigmet. Quickly add a test Run tests
10 spørgsmål der vil hjælpe dig med dine testcases
10 spørgsmål der vil hjælpe dig med dine testcases Hvad er en testcase En testcase designes ud fra et eller flere test formål, som f.eks. at teste en speciel funktionalitet eller kvalitetsegenskab for
Teknologiforståelse. Måloversigt
Teknologiforståelse Måloversigt Fagformål Eleverne skal i faget teknologiforståelse udvikle faglige kompetencer og opnå færdigheder og viden, således at de konstruktivt og kritisk kan deltage i udvikling
DM507 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
DANMARKS 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
BAAN IVc. Brugervejledning til BAAN Data Navigator
BAAN IVc Brugervejledning til BAAN Data Navigator En udgivelse af: Baan Development B.V. P.O.Box 143 3770 AC Barneveld Holland Trykt i Holland Baan Development B.V. 1997. Alle rettigheder forbeholdes.
2. Systemarkitektur... 2
Indholdsfortegnelse 2. Systemarkitektur... 2 2.1 Præsentationsserverarkitektur... 3 2.2 Applikationsserverarkitektur... 7 Version 7.0 Side 1 af 7 5. Systemarkitektur Arkitekturen for Nyt BBR bygger på
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Programming Project Report. Programmeringsprojekt i PaSOOS fagpakken. 20097733 Bobby Nielsen; 20097626 Jon Rune Jørgensen
Programming Project Report Programmeringsprojekt i PaSOOS fagpakken Underviser: Henrik Bærbak Christensen 08-06-2011 Indhold 1 Udvikling og test af binær søgning... 2 1.1 TDD på binær søgning... 2 1.1.1
Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6
Side 1 af 6 Indholdsfortegnelse INDHOLDSFORTEGNELSE 1 INTRO 3 STARTEN AF SPECIALISERINGEN 3 ANKOMST TIL SKOTLAND 4 DATABASER 5 NETVÆRK 5 INTERAKTION 5 AFSLUTNING AF SPECIALISERINGEN 5 KONKLUSION 6 Side
SWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Agil-model versus V-model set i lyset af en testers dilemmaer
Agil-model versus V-model set i lyset af en testers dilemmaer 1 Præsentation Foredragsholder Ane Clausen: Cand.Scient i Datalogi Københavns Universitet, Danmark Gift, 3 børn 25 års erfaring med IT: 12
Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag
Hvem er vi? Kursus Introduktion Anne Haxthausen [email protected] Informatics and Mathematical Modelling Technical University of Denmark 100 studerende med forskellig baggrund: software teknologi It og Kom
Datatekniker med programmering som speciale
Datatekniker med programmering som speciale H3 H1 varer ti uger bestående af syv uddannelsesspecifikke fag, samt 2 Valgfri Udannelsesspecifikke Fag og 1 Valgfrit Speciale Fag Indhold På H2 er der fokus
Klasser 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
Undervisningsbeskrivelse
Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Institution Uddannelse Fag og niveau Lærer(e) Hold Termin hvori undervisningen afsluttes: maj-juni 2014 HTX
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Undervisningsbeskrivelse
Undervisningsbeskrivelse Programmering C ved mst Termin Juni 117 Institution Uddannelse Fag og niveau Lærer Hold Erhvervsskolerne Aars hhx Programmering C Michael Stenner (mst) 2-3g16 pro Forløbsoversigt
Plan for præsentationen
Rejsen på vej til Test Drevet Udvikling i Uddannelses- og Forskningsministeriet Præsenteret af Klaus Olsen Willy Kofoed kontorchef i Uddannelses- og Forskningsministeriet Kenneth B Andersen IT Minds På
Object-Relational Mapping
Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel
Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails
Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med
Singleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:
Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.
Abstrakte 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
Videregående Programmering for Diplom-E Noter
Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså
Introduktion til design patterns.
Introduktion til design patterns. Genbrug. Pattern languges i arkitektur. Standardbeskrivelse af design patterns. Oversigt over design patterns. Observer. Composite. Decorator. Abstract Factory. Patterns
A Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Databasesystemer. 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
RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Test 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
Skriftlig opgave. Designtanker i database-nære systemer
Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Jacob 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
Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5
Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:
Software 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
SYSTEMDOKUMENTATION AF POC
DIGITALISERINGSSTYRELSEN POC PÅ ORKESTRERINGSKOMPONENTEN SYSTEMDOKUMENTATION AF POC Version: 1.1 Status: Endelig Godkender: Forfatter: Copyright 2019 Netcompany. All rights reserved Dokumenthistorik Version
