Søgemaskinedesign ved brug af Catalysis

Størrelse: px
Starte visningen fra side:

Download "Søgemaskinedesign ved brug af Catalysis"

Transkript

1 Søgemaskinedesign ved brug af Catalysis Kasper Egdø og Morten Bjerre 0. april 2005 Indhold Introduktion 2 2 Design 2 2. Domain Model Renement: Domain Model II Renement: Domain Model III Connectors og Components Evaluering af Catalysis 2 3. Vores indtryk af Catalysis Uafklarede forhold ved brug af ved Catalysis Konklusion 4

2 Introduktion Vores mål med denne rapport er at bruge Catalysis metoden [Catalysis, Components] på et mere abstrakt eksempel for at se om metoden fungerer i praksis. Vi vil derfor bruge Catalysis design metoden til at lave et komponentbaseret design af datahentningsdelen i en søgemaskine. Denne rapport består primært af et design kapitel der beskriver vores arbejde, erfaringer og resultater ved brug af Catalysis. Til sidst er der et evalueringskapitel hvor vi evaluerer Catalysis metoden. Ved at bruge Catalysis håber vi at opnå et solidt komponentbaseret design der gør det nemt at skifte komponenter ud og vedligeholde den endelige løsning. En af os arbejder til daglig med søgemaskiner og vores design er derfor baseret på dennes viden om søgemaskiner. 2 Design I dette kapitel vil vi gennemgå den process hvor ved vores design blev lavet. Hvert afsnit i dette kapitel svarer løst til en fase i designforløbet. For hver fase vil vi kort beskrive målet set udfra Catalysis, vores tanker i løbet af fasen og resultatet af fasen. Et Catalysis design er bygget op af ere dele, først skal hele begrebsverdenen for et projekt kortlægges således at alle der er involverede i designet, snakker det samme (rigtige!) sprog. Denne overordnede begrebsverden kaldes for en Domain Model. En Domain Model består af objekter forbundet via use-cases der beskriver hvordan objekterne bruges i modellen. Catalysis metoden starter ved at der først laves en overordnet Domain Model der består af de vigtigste use-cases og objekter. Den overordnede Domain Model skal dække hele begrebsverdenen og kun indeholde de overordnede objekter og use-cases. Derefter forbedres denne model ved brug af blandt andet abstraktion og renement. Abstraktion er det at se bort fra detaljer der ellers vil forstyrre den model der er ved at blive bygget. Vi betragter abstraktion, som en måde hvorpå man kan zoome længere væk eller tættere på, og derefter nøjes med at betragte dele af modellen. Renement bruges til iterativt at føje ere detaljer til modellen. I vores design laver vi først den simple Domain Model for hele søgemaskinen. Derefter bruger vi abstraktion til at zoome ind på datahentningsdelen. De andre dele skærer vi fra for at begrænse omfanget af designprocessen, samt for at undgå at de forstyrrer. Den interessante del modellerer vi så i ere detaljer ved brug af renement i ere omgange. Til sidst håber vi på at have en detaljeret Domain Model for datahentningsdelen. Den næste fase er at bruge den endelige Domain Model til at designe components og connectors. Connectors er en abstrakt repræsentation af data udveksling og kommunikation mellem komponenter. Det er derfor vigtigt at designe connectors før components således at generelle connectors kan identiceres. De generelle connectors er de connectors, som kan bruges i mere end et tilfælde. De kan altså genbruges mange forskellige steder i den endelige implementation. Når alle connectors er på plads kan components designes og kobles sammen udfra Domain Modellen. 2

3 2. Domain Model For at lave en Domain Model er det vigtigt nøje at undersøge domænet: Kigge implementationen af andre søgemaskiner igennem, læse manualer til tidligere udgaver af søgemaskinen, snakke med brugere/adminen osv. I vores tilfælde havde vi dog ikke mulighed (eller tid) til at være så grundige. I stedet interviewede vi hinanden (netop således at det svarerede til forholdet mellem en kunde og en analytiker) og på baggrund af det byggede vi vores Domain Model. Den første Domain Model se gur, er lavet på det højeste abstraktionsniveau dvs. den er helt zoomet ud og indeholder alle de objekter der bruger eller bruges af søgemaskinen. Domain Modellen består af 4 objekter nemlig brugere, en adminstrator, en datakilde og selve søgemaskinen. Brugere bruger søgemaskinen til at søge og det er vist ved den use-case der hedder søg. Administratoren administrerer søgemaskinen og det er vist ved den use-case der hedder administrer. Søgemaskinen bruger datakilden til at indsamle den information som brugeren kan søge i og det er vist ved den use-case der hedder Indeksering. Bruger Søg Søge Maskine Admin Administrer Indeksering Figur : Domain Model Udfra Domain Model lavede vi en data association i modellen se gur 2 på næste side. Data associations modellen beskriver de statiske associationer der er mellem de forskellige data i Domain Modellen. Det var nødvendigt at introducere nogle ekstra data i modellen sådan at vi korrekt kunne associere Domain Modellens objekter. De nye data er Søge Udtryk der repræsenterer hvad brugeren søger efter, Resultat der repræsenterer det output brugeren ser efter en søgning og Dokument der repræsenterer søgemaskinens interne repræsentation af det der søges i. Bemærk også at Admin er associeret med datakilde direkte, dette er fordi vi besluttede at på det nuværende abstraktions niveau administrerer Adminen kun hvilke datakilder data hentes fra. 3

4 Vi forestiller os datakilden, som en mængde af forskellige resourcer fx. html og pdf dokumenter. Dokumenter er en samling af ord og anden interessant information struktureret på en generel måde. Søge Udtryk udtrykker hvad brugeren søger efter. Resultat er en samling af dokumenter valgt og vægtet udfra Søge Udtryk. Søge udtryk Resultat Dokument Bruger Admin Figur 2: Data association model Til sidst studerede vi vores use-cases nærmere og opstillede Conditions for hver use-case, se tabel. Conditions kan være pre conditions, conditions eller invariants (gælder alle use-cases). De er logiske udtryk der beskriver betingelser der respektivt skal være opfyldt før, efter og både før og efter for en use-case. Conditions udtrykker ekstra information der sørger for at Domain Modellen ikke bliver uklar eller tvetydig, derudover tvinger de designerne til at re-evaluere om Domain Modellen er korrekt. Hvis der ikke kan udtrykkes klare conditions til at beskrive de brugte use-cases så er der noget galt med modellen. Vores conditions er rimelig simple: Søg og Indekser har hver en condition der udtrykker at deres respektive sæt får tilføjet et resultat eller dokument efter den use-case er udført; Administrer har den condition af Søgemaskinens datakildesæt er ændret efter use-casen er udført altså der er enten tilføjet eller fjernet nogle datakilder; Søg og Administrer har en invariant der udtrykker at de to use-cases ikke ændrer ved søgemaskinens dokumentsæt. inv (Bruger,Søgemaskine) :: Søg(Søge Udtryk) De sørger Bruger.Resultatsæt = Bruger.Resultatsæt@pre resultat (Søgemaskine,Data Kilde) :: Indekser(Data Kilde) Et dokument er tilføjet Søgemaskinens dokumentsæt (DS) Søgemaskine.DS = Søgemaskine.DS@pre dokument (Admin,Søgemaskine) :: Administrer() Søgemaskinens sæt af data kilder er ændret Søgemaskine.DataKildesæt!= Søgemaskine.DataKildesæt@pre En søgning ændrer ikke på søgemaskinens dokumentsæt (DS) Søg/Administrer::Søgemaskine.DS = Søgemaskine.DS@pre Tabel : Conditions for Domain Model 4

5 2.2 Renement: Domain Model II Efter at have lavet den første Domain Model valgte vi at kigge på Indekserings use-casen. Vi zoomede ind på den use-case og brugte renement til at udbygge hvordan et dokument bliver indekseret og tilføjet til de dokumenter der kan søges i. Her er det vigtigt at bemærke at resultatet af renement og abstraktion skal passe med de tidligere Domain Modeller der er blevet opstillet. Hvis de ikke passer sammen er det jo ikke muligt at zoome ind og ud, og i så fald falder hele Catalysis metoden fra hinanden. Vi havde en del problemer med at tilføje ere detaljer da vi ikke helt kunne få Indeksering til at passe med de nye use-cases vi ville tilføje. Indeksering var faktisk kun en lille del af søgemaskinen der sørgede for at bygge et indeks over de søgbare dokumenter i søgemaskinen. Vi valgte derfor helt at fjerne Indeksering og lave en Tilføj Dokument use-case istedet. Det endelige resultat var at vi zoomede et stykke ind, fandt et problem med den første Domain Model, zoomede ud igen og rettede problemet således at vi kunne zoome ind igen og fortsætte med at lave renement. Denne process med at bevæge sig op og ned igennem de forskellige abstraktions niveauer er en vigtig del af Catalysis, der ikke kun er en top down metode. Resultatet blev Domain Modellen i gur 3. Bemærk at søgemaskinen fra den første Domain Model ikke indgår, istedet har vi taget en del af søgemaskinen med i Domain Modellen nemlig objektet Søgbar Mængde der repræsenterer søgemaskinens samling af dokumenter. Domain Model II består af 4 objekter nemlig datakilde, Resource, Dokument og Søgbar mængde. n indeholder en samling af Resourcer der kan hentes og parses til Dokumenter der så kan tilføjes til den Søgbar Mængde. Bruger Søg Search System Søgbar Mængde Admin Administrer Tilføj Dokument Refinement Tilføj Dokument Hent Dokument Parse Resource Figur 3: Domain Model II Udfra Domain Model II lavede vi så en Data associations model, se gur 4 på den følgende side. Det var ikke nødvendigt at tilføje ere typer data i denne omgang da Domain Model II indeholdt alle de nødvendige data. Vi havde dog en diskussion om hvordan dokumenter og resourcer skulle associeres. Kunne det f.eks. tænkes at en resource ikke har noget tilhørende dokument i søgemaskinen eller at et dokument ikke længere havde nogen tilhørende resource hvis datakilden var ændret. Vi blev enige om at modellere det ved et 0, forhold begge veje, men vi var fristede til at lave et - forhold mellem resource og dokument. I afsnit 2. blev det kort nævnt at vi forestillede os at en datakilde indeholdt resourcer. Dette objekt har vi nu tilføjet til Domain Modellen og til Data as- 5

6 sociations modellen. Vi forestiller os at resourcer er en binær klump, der på en eller anden måde kan konverteres til et dokument. Søgbar mængde 0, 0, Dokument Resource Figur 4: Data association model Til sidst studerede vi vores use-cases også kaldet s nærmere og opstillede Conditions for hver use-case, se tabel 2. Vores conditions er lidt mere komplicerede end i det første afsnit og vi har her kun inkluderet de vigtigste conditions: Hent udtrykker at Resource indeholder en ny resource efter hver Hent Action; Det samme gælder en Parse Dokument indeholder derefter et nyt der er resultatet af at parse en resource; Tilføj Dokument fungerer ligesom før og føjer bare et dokument til den Søgbar Mængdes dokumentsæt. Det skal nævnes at vi er rimelig usikre på om vores conditions for Hent og Parse er korrekte. Det virker som om der mangler noget mere i Domain og Data associations modellerne sådan at conditions kunne udtrykkes tydeligere. For eksempel virker det forkert at sætte objektet Resource lig en Ny Resource; det ville give bedre mening at have et objekt der indeholdt en samling af resourcer som efter en Hent operation indeholdt yderligere en resource, men så ville vi jo bare beskrive n igen. Måske burde Dokument og Resource slet ikke være objekter i Domain Model II, men vi kunne ikke helt nde ud af hvordan vi så skulle bygge modellen op så vi valgte at beholde dem som objekter. (Resource,) :: Hent() Resource indeholder nu en ny resource fra datakilden Resource = Ny Resource (Dokument,Resource) :: Parse(Resource) Dokument indeholder nu resultatet af parsningen Dokument = Parse(Resource) (Dokument,Søgbar Mængde) :: Tilføj Dokument(Dokument) Den søgbar mængde (SM) får tilføjet et dokument SM.DokumentSæt = SM.DokumentSæt@pre Dokument Tabel 2: Conditions for Domain Model II' 2.3 Renement: Domain Model III Efter at have lavet den anden Domain Model færdig valgte vi at zoome ind igen og tilføje ere detaljer, se gur 5 på den følgende side. Vi har tilføjet to nye objekter, en fortolker og en efterbehandler. Bemærk at både Fortolk og Generaliser indeholder information om hvilken type resource der fortolkes eller generaliseres. Det der modelleres er, at der er mange meget forskellige typer af resourcer og det er derfor nødvendigt at have mange forskellige fortolkere. 6

7 Fortolkerobjektet i Domain Model III repræsenterer derfor en masse forskellige fortolkere der bliver valgt alt efter hvilken type resource der skal fortokes. Efterbehandlingsobjektet repræsenterer det der bliver gjort ved dokumenter før de bliver tilføjet den søgbar samling f. eks. stavekontrol, oversættelse osv. Hent Resource Fortolk(R.type) Fortolker Generaliser(R.type) Søgbar mængde Tilføj Efterbehandler Efterbehandling Dokument Figur 5: Domain Model III Udfra Domain Model III forsøgte vi at lave en passende Data associations model. Modellen lignede umiddelbart meget Data associations modellen i gur 4 på foregående side, men vi kunne ikke nde ud af hvordan vi skulle modellere det faktum at hver resource har en type og at der ndes mange forskellige fortolkere der hver kan fortolke en resource. Vi prøvede at modellere det på to forskellige måder, det første forslag ses i gur 6. I forslag modellen har resourcetyper og fortolkere et til forhold og fortolkere har et til mange forhold til dokumenter. Forslag virker syntaktisk korrekt, men udtrykker ikke krystalklart det faktum at der eksisterer mange forskellige fortolkere. Fortolker Resource Type 0, Resource Efterbehandler Dokument Søgbar mængde Figur 6: Data associations model forslag Det andet forslag ses i gur 7 på næste side. I forslag 2 bruger vi trekanten til at vise at Resource Type til N er en subtype af Resource og på samme måde er Fortolker Type til N en subtype af fortolker. Vi har brugt... til at vise at der kan være vilkårlig mange resource type med tilhørende fortolker. Forslag 2 udtrykker tydeligt at der er mange forskellige fortolkere, men vi er usikre på om forslaget bryder med hvordan data modeller skal laves i Catalysis. Bemærk at vi har klippet den sidste del af forslag 2 ud da det er identisk med forslag. 7

8 Resource Resource Type Resource Type Resource Type N Fortolker Type Fortolker Type Fortolker Type N Fortolker Dokument Se forslag Figur 7: Data associations model forslag 2 I tabel 3 på den følgende side ses vores conditions for de use-cases der indgår i Domain Model II. Hent og Tilføj er uændrede. Fortolk use-casen indeholder en pre condition der kræver at for at fortolke en given resource skal der eksistere og bruges en fortolker med samme type som resourcen. Post conditionen for Fortolk er at Fortolkeren får tilføjet endnu en fortolket resource til fortolkerens sæt. Generaliser use-casen har en condition der udtrykker at Dokument objektet skal indeholde det resulterende dokument efter generaliseringen er udført. Det er ikke helt klart hvordan der skal stille conditions op der dækker det faktum, at der er ere fortolkere og at en resource kun kan fortolkes af en passende fortolker. Det samme gælder for generaliserings use-casen, hver generalisering skal passe med fortolkeren og derfor direkte med resourcetypen. 8

9 pre (Resource,) :: Hent() Resource indeholder nu en ny resource fra datakilden Resource = Ny Resource (Fortolker[Fortolker Type],Resource) :: Fortolk(Resource) Der eksisterer en fortolker der kan fortolke Resource Type Resource.Type = Fortolker Type Fortolkeren får tilføjet en fortolket resource (FR) af en hvis type til sin mængde Fortolker.FRsæt = Fortolker.FRsæt@pre FR (Dokument,Fortolker) :: Generaliser(Fortolket Resource) Dokument indeholder nu resultatet af generaliseringen Dokument = Generaliser(Fortolket Resource) (Dokument,Efterbehandler) :: Efterbehandling(Dokument) Efterbehandleren (E) får tilføjet et dokument der er blevet efterbehandlet E.DokumentSæt = E.DokumentSæt@pre Efterbehandling(Dokument) (Efterbehandler,Søgbar Mængde) :: Tilføj Dokument(Dokument) Den søgbar mængde (SM) får tilføjet et dokument SM.DokumentSæt = SM.DokumentSæt@pre Dokument Tabel 3: Conditions for Domain Model III 2.4 Connectors og Components Udfra vores domainmodel kan vi se, at de typer af ting, som "bevæger" sig rundt i systemet, er dokumenter og resourcer. I særdeleshed kan vi se at ting som datakilder, brugere og den søgbare mængde ikke er noget der umiddelbart giver mening at ytte rundt på. Til og med er disse dokumenter og resourcer nogle ret enkle/basale elementer i vores system. Dvs at det virker oplagt at man i forbindelse med konstruktion af connectors er bevidst om dette. I det konkrete tilfælde virker det endda oplagt at lave nogle connectors baseret netop på kommunikation af resourcer og dokumenter. Det udmunder i i første omgang to connectortyper, som man kan se på gur 8. Som vi har været inde på tidligere, ndes der forskellige mulige typer knyttet til resourcerne. Her er det vigtigt at understrege at resource-connectoren forestilles at anvende den generiske type (eller overklassen), og at der til denne er knyttet funktionalitet således at dens egentlige type kan afgøres, hvis dette er nødvendigt. Connectorne har også en klar sender og modtager - det er de sorte kasser der svarer til output og de hvide kasser der svarer til input, dvs. at man ved brug af disse connectores får modeleret (i hvert fald dele af) owet i applikationen der anvender disse connectors. De hvide og sorte kasser omtales mere formelt som porte. Dokument connector Resource connector Figur 8: Vores to connectortyper 9

10 Resouce og dokument virker måske som en for løs denition, men skal ses i lyset af at en resource meget vel kunne svare til en egentlig resource i stil med et html-, pdf- eller ocedokument, som kan repræsenteres som en klump binær data, plus en typedeskriptor. Præcis hvorledes dette modeleres er ikke interessant på connector-niveau. Disse connectors er jo stadig på et relativt højt plan designmæssigt (f.eks. fremgår det ikke hvorledes connectorne fungerer på et kodeniveau, altså om de forestilles implementeret via f.eks. events eller tilsvarende programmeringsmekanismer). De beskriver kun den overordnede kommunikation mellem (de endnu ikke denerede) komponenter. Et eksempel på hvorledes disse to connectortyper kan anvendes kan ses på gur 9 og gur 0 på næste side. Her ses hvorledes dele af vores overordnede model kunne sættes sammen ved brug af de to typer connectors og nogle mulige komponenter. Bemærk i særdeleshed at den komponent der er mærket Fortolker og generalisator givetvist vil bestå af ere komponenter, som hver i sær kan behandle en bestemt type af resource. Som modeleret tidligere ville disse også rimeligvis hver især kunne deles i to dele nemlig fortolker og generalisator. Af de to gurer ses, at det er ganske enkelt at tilføje f.eks. en stavekontrolkomponent, som stavekontroller og -retter et dokument. Der er tydeligvis ikke behov for ændringer i nogen af de øvrige komponenter for at tilføje stavekontrolskomponenten. Her kommer dokumentconnectoreren virkelig til sin ret. Fortolker og generalisator Søgemaskine Tilføjet Fortolk Fortolket Tilføj Dokument connector Resource connector Figur 9: Datahentningstrinnet udtrykt vha connectors Denne samlede fortolk-og-generaliser komponent kunne have en opbygning som den der er afbilledet på på den følgende side. Ydersiden af den samlede komponent svarer da til de to komponenter type dispatch og NOP. Førstnævnte sørger for at sende resourcer hen til en fortolker som forstår den specikke type. Sidstnævnte sørger blot for at samle samtlige fortolkede og generaliserede dokumenter i en enkelt port. Type dispatch er på tegningen vist med præcis tre connectorporte på højresiden - der er dog ikke noget i vejen for en mere kompliceret model hvor højresiden er kongurerbar, altså således at man, når man samler de mange komponenter til en løsning, opbygger en højreside, f.eks. ved nogle dynamiske arrays af porte. Man kan også se på guren at der mellem parene af fortolker og generalisatorer er mulighed, måske endda behov, for at denere nogle ere connectors. Det er måske i særdelesheds interessant hvis man ikke har en egentlig fortolk-og-generaliser-komponent, men blot anvender de enkelte dele på en måde svarende til den viste, så kan man enkelt indskyde nye komponenter mellem de enkelte fortolkere og generalisatorer; forestiller man sig f.eks. at outputet fra html-fortolker komponenten var en html-dom og tilsvarende at html-generalisatoren blot udtrak tekst, kunne en 0

11 Dokument connector Resource connector Fortolker og generalisator Søgemaskine Tilføjet Fortolk Fortolket Tilføj Stavekontrol Stavekontroler Stavekontrolleret Figur 0: Datahentningstrinnet med indskudt stavekontrol indskudt komponent måske fjerne uinteressante dele fra html-dom'en, inden de blev sendt videre i systemet. Fortolker og generalisator Dokument connector Specialiserede connectors Resource connector Htmlfortolker Html Gen. Fortolk Fortolket Gen. Dok. Type dispatch Pdffortolker Pdf Gen. NOP Fortolk Html Pdf Fortolk Fortolket Gen. Dok. Dok Fortolket Office Officefortolker Office Gen. Fortolk Fortolket Gen. Dok. Figur : Mulig opbygning af Fortolker og generalisator komponenten vha mindre komponenter Dette kunne eksempelvis være at man ønskede at fjerne menu/navigationsdele fra domen

12 3 Evaluering af Catalysis 3. Vores indtryk af Catalysis Overordnet synes vi at metoden tvang os til at overveje beslutninger mange gange, specielt omkring renements af vores s. Specielt på en sådan måde at vi ved renement opdagede at den overordnede egentligt ikke var klar. Vi tror at en del af grunden til disse genovervejelser skyldes at vores Domain model behandler nogle ting som i sig selv er ganske abstrakte i modsætning til mere håndgribelige ting som en ordre eller en kunde i et ordrestyringssystem. Konkret opdagede vi at vi havde fået blandet nogle begreber sammen på det helt overordnede niveau hvor vi oprindelige havde en indeksér, som reelt var en tilføj-. Denne fejl begik vi primært fordi hele systemet kun er interessant netop fordi der er tale om at søgemaskinen (internt) kan indeksere en dokumentmængde, men set overordnet er forbindelsen mellem datakilder og søgemaskinen blot at sørge for at søgemaskinen får tilføjet nogle dokumenter. Da vi først havde denne forskel på plads, faldt nogle øvrige modeleringsbrikker på plads. Alle de mange tegninger vi undervejs har begået (både midlertidige på tavler og dem som er vist tidligere), har i sig selv bidraget til en mere konkret diskussion af de forskellige dele. Netop fokus på modelering via tegninger er i sig selv meget værd både til diskussion og formidling og kan også ofte udtrykke nogle forhold mere koncist end en tilsvarende skriftlig forklaring. Tilsvarende er netop kombinationen af tegninger og tilhørende conditions (invarianter, pre og -conditions) på de enkelte s er et stærkt værktøj til at kontrollere Domain modellens nøjagtighed. Et noget forstyrende element i processen er dog at vejen ned gennem de enkelte renement trin kan føles meget lang specielt når man på forhånd mener at kunne forudsige hvorledes delsystemer/s bør hænge sammen. Vi havde konkret en idé om at tilføj-en, i den anden model, var en slags pipeline, som ganske enkelt ville kunne udtrykkes ved de enkelte unders. Det er også det design som i sidste ende blev resultatet, men undervejs i de forskellige renementtrin har en været svær at udtrykke. Generelt er renementtrin svære for de mere abstrakte s mellem abstrakte ting. Det er måske ganske rimeligt, idet det jo strengt taget er hele pointen i designet. En del af sværheden stammer givetvist fra at den ene af os i forvejen har en del erfaring med design af søgemaskinesystemer og således får svært ved at træde væk fra praktiske detaljere og overvejelser. Det er nok et problem der generelt vil gøre sig gældende når man forsøger at udvikle komponentbaserede løsninger, der ikke er fokuseret på en specik kunde, men i stedet på fællesløsninger til et af marked bestående af sæt af relativt ens kunder. Man vil da opleve at domaineksperten og analytikeren er den samme person. En del af de ting vi har modeleret er mere eller mindre transiente (eller blot opstår undervejs, f.eks. dokumenter) og pre- og conditions relateret til disse virker lidt anstrengte. Det er måske et tveægget sværd, idet det trods alt medfører nogle overvejelser omkring designet, og mulige problemer kan da lettere komme til udtryk. Vores oplevelse var at det sidste trin (altså af dem vi har gennemgået), nemlig design af connectors, var relativt enkelt givet de tidligere trin - connectorne opstod mere eller mindre naturligt af sig selv fra de øvrige trin. Vi kunne godt 2

13 tænke os at vide om connectors ville være lige så lette at lave hvis vi var på et lavere abstraktionsniveau og om Catalysis metoden generelt sørger for, at det er nemt at lave connectors. Sammenligner man Catalysis tilgangsmetode med en klassisk ikke-komponentbevidst, objektorienteret, bottom-up metode, vil det være væsentligt sværere (tror vi) at opnå et design der er samme grad tillader udskiftning og tilføjelser af ny funktionalitet, fordi man nemt kommer til at låse sig fast på en mere konkret monolitisk programstruktur. Samtidigt vil der i bottom-op tilgangen givetvist være et større fokus på hvorledes fejlsituationer og uforudsette situationer håndteres - noget der synes at mangle fra Catalysis. Det vil dog nok være svært at komme fra et objektorienteret design til et komponentbaseret design (og det er givetvist også svært at tilrette en eventuel konkret implementation) i særdeleshed fordi kommunikationen mellem de enkelte objekter givetvist er reduceret til at udtrykke kun det nødvendige, og således er mere nkornet end den typiske connector/component baserede kommunikation. 3.2 Uafklarede forhold ved brug af ved Catalysis Vi har forsøgt at følge de anvisninger og patterns som udgør Catalysis, og undrer os over et meget afslappet til håndtering af fejl-situationer. Både mht til fejl som konsekvens af defekte komponenter (altså f.eks. programmeringsfejl), som jo i praksis er uundgåelige, men også hvorledes de forestiller sig at man håndterer situationer hvor de ønskede s ikke lader sig gøre fordi deres preconditions ikke er opfyldt. Eksempelvis har forfatterne til [Catalysis] jo en arrange- hvor preconditionen (i kraft af nogle invarianter) er, at der er en ledig instruktor med de nødvendige kvalikationer. Dvs at hvis det ikke er opfyldt fejler arrange-en, men det fremgår ikke rigtigt hvad dette medfører. Isoleret set er dette måske nemt at give et svar på (kursus-would-be-aftageren får at vide at det ikke kan lade sig gøre) og arrange-en fejler da blot næsten inden den er begyndt, men for mere komplekse systemer er det måske ikke praktisk muligt at afgøre om en s samlede pre-conditions er opfyldt, før dele af dens s er gennemført. Dvs at den overordnede model måske giver det indtryk at en udføres som en atomisk transaktion, mens det skjuler at det ikke på detaljeniveau lader sig udføre som en atomisk transaktion. Dvs at der kan være noget nødvendigt fejlhåndtering (altså forårsaget af en pre-condition først undervejs i en indses ikke at være sand), som burde propageres op på det øverste niveau af modellen. Det synes der ikke umiddelbart at være lagt op til i catalysis - de nævner jo at Notice that at the coarser scale, you are not compromising the truth but only telling less of it. Everything you say in the big picture is still true when you look at the ner scale. Det er måske en sandhed med modikationer. Vi har undervejs også undret os lidt over hvorledes man bedst modelerer grupper af ting hvis eneste forskel er en type - konkret vores lille familie af fortolkere og generalisatorer, gur 5 på side 7. Det er dog muligt at det blot kræver bedre kendskab til Catalysis og UML end det vi har. Generelt savner vi en lidt mere konkret preskriptiv processbeskrivelse, i stedet for de ofte lidt løse deskriptive patterns og meget generelle og lidt for nemme eksempler. 3

14 4 Konklusion Catalysis er en meget stærk metode, fyldt med gode teknikker der gør det muligt at lave et solidt komponentbaseret design. Metoden er generel og omfattende nok til at løse selv meget abstrakte problemer. En anden styrke ved Catalysis er at det er et krav at alle modeller er præcise på deres abstraktions niveau, det betyder at designerne hele tiden bliver nød til at evaluere om deres model er korrekt: Hvis man ikke kan udtrykke en s conditions præcist så er data modellen eller Domain modellen nok forkert. Catalysis er dog ikke perfekt. Metoden kræver meget tid og øvelse, det er svært at opstille korrekte modeller og fejlen i en tidligere model kræver så at gå to skridt tilbage for at tage et skridt frem. Ofte er det meget svært at vide hvor langt man skal zoome ind således at de forskellige abstraktions niveauer giver mening: Skal man zoome så langt ind at der sker noget interessant eller zoome lidt ind ad gangen således at man ikke overser noget? Alt i alt er vi meget tilfredse med vores brug af metoden på en søgemaskine. Resultatet var et simpelt men eektivt komponentbaseret design af en del af en søgemaskine. At opnå det resultat tog dog mange timers arbejde mens vi konstruerede og re-evaluerede vores modeller. Vores konklusion er at Catalysis er en rigtig god metode til at lave komponentbaseret design, hvis man altså har tid til det. Litteratur [Catalysis] Desmond Francis DSouza and Alan Cameron Wills. Objects, Components,and Frameworks with UML, The Catalysis Approach. [Components] George T. Heineman and William T. Councill. Component-based Software Engineering Chapter 7. 4

Component based software enginering Diku 2005 Kritikopgave

Component based software enginering Diku 2005 Kritikopgave Component based software enginering Diku 2005 Kritikopgave Nicolas Møller Henschel 17. april 2005 1 Indhold 1 Indledning 3 2 Indhold 3 2.1 Introduktionen.......................... 3 2.1.1 Mangler..........................

Læs mere

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning: Introduktion til EA3 Mit navn er Marc de Oliveira. Jeg er systemanalytiker og datalog fra Københavns Universitet og denne artikel hører til min artikelserie, Forsimpling (som også er et podcast), hvor

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Vejledning til forløb om regnestrategier med multiplikation og division

Vejledning til forløb om regnestrategier med multiplikation og division Vejledning til forløb om regnestrategier med multiplikation og division Denne lærervejledning beskriver i detaljer forløbets gennemførelse med fokus på lærerstilladsering og modellering. Beskrivelserne

Læs mere

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal?

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal? Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal? Det er ret let at svare på: arealet af en trekant, husker vi fra vor kære folkeskole, findes ved at gange

Læs mere

Objects First with Java A Practical Introduction Using BlueJ

Objects 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 mere

EVALUERING AF BOLIGSOCIALE AKTIVITETER

EVALUERING AF BOLIGSOCIALE AKTIVITETER Guide EVALUERING AF BOLIGSOCIALE AKTIVITETER Det er rart at vide, om en aktivitet virker. Derfor følger der ofte et ønske om evaluering med, når I iværksætter nye aktiviteter. Denne guide er en hjælp til

Læs mere

Abstrakte datatyper C#-version

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

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

Rekursion C#-version

Rekursion C#-version Note til Programmeringsteknologi Akademiuddannn i Informationsteknologi Rekursion C#-version Finn Nordbjerg 1 Rekursion Rekursionsbegrebet bygger på, at man beskriver noget ved "sig selv". Fx. kan tallet

Læs mere

Andengradsligninger. Frank Nasser. 12. april 2011

Andengradsligninger. Frank Nasser. 12. april 2011 Andengradsligninger Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Det Rene Videnregnskab

Det Rene Videnregnskab Det Rene Videnregnskab Visualize your knowledge Det rene videnregnskab er et værktøj der gør det muligt at redegøre for virksomheders viden. Modellen gør det muligt at illustrere hvordan viden bliver skabt,

Læs mere

En spekulativ teori om hvad det vil sige at være en normal person

En spekulativ teori om hvad det vil sige at være en normal person En spekulativ teori om hvad det vil sige at være en normal person Introduktion Jeg har i længere tid gået og spekuleret over hvad dette egentlig vil sige; hvad vi mener når vi siger, at en person er normal

Læs mere

Matematik, maskiner og metadata

Matematik, maskiner og metadata MATEMATIK, MASKINER OG METADATA VEJE TIL VIDEN Matematik, maskiner og metadata af CHRISTIAN BOESGAARD DATALOG IT Development / DBC 1 Konkrete projekter med machine learning, hvor computersystemer lærer

Læs mere

Her følger en række opmærksomhedsfelter i relation til undervisningens form og elevens læring:

Her følger en række opmærksomhedsfelter i relation til undervisningens form og elevens læring: BRØK 1 Vejledning Udvidelsen af talområdet til også at omfatte brøker er en kvalitativt anderledes udvidelse end at lære om stadigt større tal. Det handler ikke længere bare om nye tal af samme type, som

Læs mere

Introduktion til projekter

Introduktion til projekter Introduktion til projekter v. 1.0.3 Introduktion I dette materiale ser vi overordnet på, hvad projekter egentlig er, hvordan de er skruet sammen og hvilke begreber, som relaterer sig til projekter. Vi

Læs mere

Andengradsligninger. Frank Nasser. 11. juli 2011

Andengradsligninger. Frank Nasser. 11. juli 2011 Andengradsligninger Frank Nasser 11. juli 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Hvad er en henvisningsboks. Vejledning til henvisningsbokse

Hvad er en henvisningsboks. Vejledning til henvisningsbokse Indholdsfortegnelse Hvad er en henvisningsboks...1 Indsæt en henvisningsboks...2 Tvinge en henvisningsboks på en bestemt side...2 Indsætte metadata...3 Hvordan opretter jeg så metaord?...4 Oprettes en

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet Sikre Beregninger Kryptologi ved Datalogisk Institut, Aarhus Universitet 1 Introduktion I denne note skal vi kigge på hvordan man kan regne på data med maksimal sikkerhed, dvs. uden at kigge på de tal

Læs mere

Eksempel på den aksiomatisk deduktive metode

Eksempel på den aksiomatisk deduktive metode Eksempel på den aksiomatisk deduktive metode Et rigtig godt eksempel på et aksiomatisk deduktivt system er Euklids Elementer. Euklid var græker og skrev Elemeterne omkring 300 f.kr. Værket består af 13

Læs mere

Brugerundersøgelse af Statistikbanken

Brugerundersøgelse af Statistikbanken Maj 2017 Brugerundersøgelse af Statistikbanken Danmarks Statistik har regelmæssigt spurgt brugerne om deres tilfredshed med formidlingen, bl.a. i form af hjemmeside og Statistikbank. I 2017 har der været

Læs mere

Guide til succes med målinger i kommuner

Guide til succes med målinger i kommuner Guide til succes med målinger i kommuner Af Kresten Bjerg, kommunikationsrådgiver, Bjerg K Kommunikation måles af forskellige grunde. Derfor skal kommunikation også måles på forskellige måder. Dit første

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design 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 mere

3 Algebraisk Specifikation af Abstrakte Datatyper.

3 Algebraisk Specifikation af Abstrakte Datatyper. 3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.

Læs mere

Trin for trin guide til Google Analytics

Trin for trin guide til Google Analytics Trin for trin guide til Google Analytics Introduktion #1 Opret bruger #2 Link Google Analytics til din side #3 Opret konto #4 Udfyld informationer #5 Gem sporings id #6 Download WordPress plugin #7 Vent

Læs mere

VEJLEDNING TIL EFFEKTKÆDE

VEJLEDNING TIL EFFEKTKÆDE VEJLEDNING TIL EFFEKTKÆDE Indledning Formålet med effektkæden er at have et værktøj til at planlægge og styre vores indsatser efter, hvad der giver effekt for borgerne. Samtidig kan effektkæden bruges

Læs mere

24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S

24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S 24-03-2009 Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S Problemstilling ved DBK integration i BIM Software Domæner og aspekter Det domæne, der primært

Læs mere

Spil Rapport. Spil lavet i GameMaker. Kevin, Mads og Thor 03-02-2011

Spil Rapport. Spil lavet i GameMaker. Kevin, Mads og Thor 03-02-2011 Spil Rapport Spil lavet i GameMaker Kevin, Mads og Thor 03-02-2011 Indholdsfortegnelse Indledning... 2 HCI... 2 Planlægning / Elementær systemudvikling... 2 Kravspecifikationer... 4 Spil beskrivelse...

Læs mere

1: Hvilket studium er du optaget på: 2: Hvilke af nedenstående forelæsninger har du deltaget i?

1: Hvilket studium er du optaget på: 2: Hvilke af nedenstående forelæsninger har du deltaget i? 1: Hvilket studium er du optaget på: 2: Hvilke af nedenstående forelæsninger har du deltaget i? 3: Hvis du har deltaget i mindre end halvdelen af kursusgangene bedes du venligst begrunde hvorfor har deltaget

Læs mere

Hvem behøver en Fan side?

Hvem behøver en Fan side? Facebook Fan sider er en fantastisk måde at promovere en virksomhed på, og en vigtig del af enhver social media marketing plan. Oprettelse af en grundlæggende side er ikke så kompliceret, men at skabe

Læs mere

DM13-1. Obligatoriske Opgave - Kredsløbs design

DM13-1. Obligatoriske Opgave - Kredsløbs design DM13-1. Obligatoriske Opgave - Kredsløbs design Jacob Christiansen moffe42@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense 1. Opgaven Opgaven består i at designe et kredsløb,

Læs mere

Emmas og Frederiks nye værelser - maling eller tapet?

Emmas og Frederiks nye værelser - maling eller tapet? Emmas og Frederiks nye værelser - maling eller tapet? Emmas og Frederiks familie skal flytte til et nyt hus. De har fået lov til at bestemme, hvordan væggene på deres værelser skal se ud. Emma og Frederik

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro

Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro Arbejde med Regioner Lister, Playlists, og Cutlists i Sound Forge Pro Gary Rebholz Du har sikkert allerede ved, at Sound Forge Pro software kan bruges til en imponerende række af audio opgaver. Alt fra

Læs mere

Formativ brug af folkeskolens prøver årets resultater på landsplan Den skriftlige prøve i matematik med hjælpemidler, FP9 maj 2019

Formativ brug af folkeskolens prøver årets resultater på landsplan Den skriftlige prøve i matematik med hjælpemidler, FP9 maj 2019 Formativ brug af folkeskolens prøver årets resultater på landsplan Den skriftlige prøve i matematik med hjælpemidler, FP9 maj 2019 Skrevet af Klaus Fink på baggrund af oplysninger fra opgavekommissionen

Læs mere

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1

Formål & Mål. Ingeniør- og naturvidenskabelig. Metodelære. Kursusgang 1 Målsætning. Kursusindhold. Introduktion til Metodelære. Indhold Kursusgang 1 Ingeniør- og naturvidenskabelig metodelære Dette kursusmateriale er udviklet af: Jesper H. Larsen Institut for Produktion Aalborg Universitet Kursusholder: Lars Peter Jensen Formål & Mål Formål: At støtte

Læs mere

Hvad kræver en opgradering af dit ERP-system?

Hvad kræver en opgradering af dit ERP-system? Hvad kræver en opgradering af dit ERP-system? At opgradere dit ERP-system kan være meget omfangsrigt. Vi har redegjort for, hvilke elementer du skal være opmærksom og forberedt på inden du skifter. Hvad

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Projekt - Valgfrit Tema

Projekt - Valgfrit Tema Projekt - Valgfrit Tema Søren Witek & Christoffer Thor Paulsen 2012 Projektet Valgfrit Tema var et projekt hvor vi nærmest fik frie tøjler til at arbejde med hvad vi ville. Så vi satte os for at arbejde

Læs mere

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996 Hjerner i et kar - Hilary Putnam noter af Mogens Lilleør, 1996 Historien om 'hjerner i et kar' tjener til: 1) at rejse det klassiske, skepticistiske problem om den ydre verden og 2) at diskutere forholdet

Læs mere

Web Services Light. Karen Thomsen. Silkeborg Bibliotek. Karen Thomsen

Web Services Light. Karen Thomsen. Silkeborg Bibliotek. Karen Thomsen Web Services Light Silkeborg Bibliotek 1 Min baggrund Faglig baggrund datalog Ansættelse 16 år som IT- udvikling og usability 4 år som usability-konsulent og nu 3 år på Silkeborg Bibliotek som IT- udvikling

Læs mere

Formativ brug af folkeskolens prøver. Den skriftlige prøve i matematik i 10. klasse, FP10, maj 2018

Formativ brug af folkeskolens prøver. Den skriftlige prøve i matematik i 10. klasse, FP10, maj 2018 Formativ brug af folkeskolens prøver Den skriftlige prøve i matematik i 10. klasse, FP10, maj 2018 1 Til matematiklæreren i 10. klasse Dette er en rapport om den skriftlige prøve i matematik maj 2018.

Læs mere

Guide til elevnøgler

Guide til elevnøgler 21SKILLS.DK Guide til elevnøgler Forslag til konkret arbejde Arbejd sammen! Den bedste måde at få de 21. århundredes kompetencer ind under huden er gennem erfaring og diskussion. Lærerens arbejde med de

Læs mere

De rigtige reelle tal

De rigtige reelle tal De rigtige reelle tal Frank Villa 17. januar 2014 Dette dokument er en del af MatBog.dk 2008-2012. IT Teaching Tools. ISBN-13: 978-87-92775-00-9. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Avisforside. Vi har skrevet en avis om studier ved Aarhus Universitet

Avisforside. Vi har skrevet en avis om studier ved Aarhus Universitet Avisforside Vi har skrevet en avis om studier ved Aarhus Universitet Vi vil meget gerne høre dine umiddelbare tanker om forsiden til avisen. Hvad forventer du dig af indholdet og giver den dig lyst til

Læs mere

Komponentbaseret softwareudvikling Acme ADL

Komponentbaseret softwareudvikling Acme ADL Komponentbaseret softwareudvikling Acme ADL Jonathan Christian Jørgensen , Ture R. Nielsen og Peter Drewsen 9. april 2005 1 INDHOLD INDHOLD Indhold 1 Indledning

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Objektorientering. Programkvalitet

Objektorientering. 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 mere

Mangelfuldt dokumenterede it-systemer. Hvordan løses udfordringen?

Mangelfuldt dokumenterede it-systemer. Hvordan løses udfordringen? Mangelfuldt dokumenterede it-systemer Hvordan løses udfordringen? Indholdsfortegnelse 1. Resume... 3 2. Introduktion... 3 3. Fordelene ved at løse udfordringen... 3 4. Løsningen... 4 4.1 Hvordan?... 4

Læs mere

Jeg ville udfordre eleverne med en opgave, som ikke umiddelbar var målbar; Hvor høj er skolens flagstang?.

Jeg ville udfordre eleverne med en opgave, som ikke umiddelbar var målbar; Hvor høj er skolens flagstang?. Hvor høj er skolens flagstang? Undersøgelsesbaseret matematik 8.a på Ankermedets Skole i Skagen Marts 2012 Klassen deltog for anden gang i Fibonacci Projektet, og der var afsat ca. 8 lektioner, fordelt

Læs mere

Valgfrit tema. Kommunikation/IT 13-04- 2 0 1 2. Jannik Nordahl-Pedersen. HTX - Roskilde. Klasse 3.5

Valgfrit tema. Kommunikation/IT 13-04- 2 0 1 2. Jannik Nordahl-Pedersen. HTX - Roskilde. Klasse 3.5 rt Valgfrit tema Kommunikation/IT Jannik Nordahl-Pedersen HTX - Roskilde Klasse 3.5 13-04- 2 0 1 2 1 Indholdsfortegnelse Indholdsfortegnelse... 2 Indledning... 3 Problemformulering... 3 Valg af løsning...

Læs mere

Martin Geisler. Uge 49, 2001

Martin Geisler. Uge 49, 2001 Min dintprog-browser Martin Geisler Uge 49, 2001 Resumé Dette dokument beskriver tankerne bag min dintprog-browser, en browser skrevet i Java der skal kunne fortolke en mindre delmængde af HTML 4, kaldet

Læs mere

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

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:

Læs mere

Italien spørgeskema til seminarielærere / sprog - dataanalyse

Italien spørgeskema til seminarielærere / sprog - dataanalyse Italien spørgeskema til seminarielærere / sprog - dataanalyse Om dig 1. 7 seminarielærere, der under viser i sprog, har besvaret spørgeskemaet 2. 6 undervisere taler engelsk, 6 fransk, 3 spansk, 2 tysk

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Opdateret: 26-03-2018 Indholdsfortegnelse 1. Først skal du installere programmet på din computer 3 2. Når programmet er installeret er du klar til at pakke robotten ud 4 3. Nu er

Læs mere

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4 IT opgave Informationsteknologi B Vejleder: Karl Navn: Devran Kücükyildiz Klasse: 2,4 Dato:03-03-2009 1 Indholdsfortegnelse 1. Indledning... 3 2. Planlægning... 3 Kommunikationsplanlægning... 3 Problemstillingen...

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Datatekniker med programmering som speciale

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

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Metodehåndbog til VTV

Metodehåndbog til VTV Metodehåndbog til VTV Enheden for Velfærdsteknologi KØBENHAVNS KOMMUNE SOCIALFORVALTNINGEN 1. udgave, maj 2017 Kontakt og mere info: velfaerdsteknologi@sof.kk.dk www.socialveltek.kk.dk 1 Indholdsfortegnelse

Læs mere

Supply Chain Netværk Design

Supply Chain Netværk Design Supply Chain Netværk Design Indsigt og forretningsværdi Den Danske Supply Chain Konference København den 8. juni 2016 Formålet med i dag Give en generel forståelse af hvad supply chain netværk design er

Læs mere

INNOVATION. BLOGS. KU. DK

INNOVATION. BLOGS. KU. DK $ SPØRGEGUIDE TIL BRUGERTEST INNOVATION. BLOGS. KU. DK Katapult og Katalyst interviewer ca. 8 brugere af innovation.blogs.ku.dk for at samle viden om deres adfærd og behov i relationen til udvikling og

Læs mere

Den Kreative Platform i DGI Uhæmmet anvendelse af viden fra forening til forening

Den Kreative Platform i DGI Uhæmmet anvendelse af viden fra forening til forening Den Kreative Platform i DGI Uhæmmet anvendelse af viden fra forening til forening I må gerne sætte jer ned Det vi ser og forstår er styret af mønstre I hjerne og krop Vi ser det vi plejer at se Vi forstår

Læs mere

Kom godt i gang med Fable-robotten

Kom godt i gang med Fable-robotten Kom godt i gang med Fable-robotten 1. Først skal du installere programmet på din computer. Gå ind på shaperobotics.com og under support vælger du download: Her vælger du, under PC App om du kører Windows

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Medicotekniker-uddannelsen 25-01-2012. Vejen til Dit billede af verden

Medicotekniker-uddannelsen 25-01-2012. Vejen til Dit billede af verden Vejen til Dit billede af verden 1 Vi kommunikerer bedre med nogle mennesker end andre. Det skyldes vores forskellige måder at sanse og opleve verden på. Vi sorterer vores sanseindtryk fra den ydre verden.

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

Guide til CraftBot2-3D printere

Guide til CraftBot2-3D printere AARHUS SCHOOL OF ENGINEERING Guide til CraftBot2-3D printere Udarbejdet af: Jens Mejdahl j.mejdahl@post.au.dk Side 1 af 12 Gem din model Når dit emne er tegnet færdig i CAD-programmet (fx SolidWorks) skal

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

7 QNL 9DULDEOH 6DPPHQK QJ +27I\VLN. Trekanter & firkanter. Dåser. Angiv hvilke variable i Figur 2, der er sammenhæng mellem:

7 QNL 9DULDEOH 6DPPHQK QJ +27I\VLN. Trekanter & firkanter. Dåser. Angiv hvilke variable i Figur 2, der er sammenhæng mellem: Trekanter & firkanter Se på Figur 1: Angiv de variable og deres værdier Variabel Værdi(er) Angiv hvilke variable i Figur 2, der er sammenhæng mellem: Angiv sammenhængen: Hvilke af de variable er der sammenhæng

Læs mere

Metode til Komponentbaseret arkitektur og design

Metode til Komponentbaseret arkitektur og design Projektrapport indleveret ved Københavns Universitet Datalogisk institut 10. april 2005 Metode til Komponentbaseret arkitektur og design Gruppe 2 Udarbejdet af: Thomas Mørup Helmudt, Jan Perticai, Lars

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.

Læs mere

Rollespil Brochuren Instruktioner til mødeleder

Rollespil Brochuren Instruktioner til mødeleder Instruktioner til mødeleder Introduktion Med dette rollespil træner I det lærte i lektionen Konflikter med kunder. Der skal medvirke to personer, der skal spille henholdsvis Henrik og Lisbeth, hvor Henrik

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

User s guide til cosinus og sinusrelationen

User s guide til cosinus og sinusrelationen User s guide til cosinus og sinusrelationen Frank Nasser 20. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for

Læs mere

Objektorienteret design med arv og polymorfi:

Objektorienteret 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 mere

Beskæring af et billede med Vegas Pro

Beskæring af et billede med Vegas Pro Beskæring af et billede med Vegas Pro Gary Rebholz Event Pan / Crop værktøj, som du finder på alle video begivenhed i dit projekt giver dig masser af power til at justere udseendet af din video. Du har

Læs mere

Positionssystemet, 2 3 uger (7 lektioner), 2. klasse.

Positionssystemet, 2 3 uger (7 lektioner), 2. klasse. Positionssystemet, 2 3 uger (7 lektioner), 2. klasse. FRA FORENKLEDE FÆLLES MÅL Kommunikation vedrører det at udtrykke sig med og om matematik og at sætte sig ind i og fortolke andres udtryk med og om

Læs mere

Kan anbefalinger af anbefalere anbefales?

Kan anbefalinger af anbefalere anbefales? Kan anbefalinger af anbefalere anbefales? Gå hjem møde ved center for kommunikation December 2003 Timme Bisgaard Munk Formål Hvad er krydssalg? hvordan og hvorfor virker anbefalinger på Internettet til

Læs mere

Problembehandling. Progression

Problembehandling. Progression Problembehandling Progression Problemløsning Problemløsning forudsætter at man står overfor et problem som man ikke har en færdig opskrift til at løse. Algoritme Når man har fundet frem til en metode eller

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

Matematik, der afgør spil

Matematik, der afgør spil Artikeltype 47 Matematik, der afgør spil Sandsynlighedsregning vinder ofte. Kombinatorisk spilteori sejrer hver gang Mads Thrane Hvis du er træt af at tabe opvasketjansen i Sten Saks Papir eller Terning,

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Hassansalem.dk/delpin User: admin Pass: admin BACKEND Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for

Læs mere

Brugergrænseflader i VSU

Brugergrænseflader i VSU 28-10-09 Side 1/5 Brugergrænseflader i Dette notat giver et praktisk eksempel på, hvordan brugergrænsefladen kan håndteres i. Notatet er en konsekvens af en lidt overfladisk beskrivelse i [B&D00] samt

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser

Åben uddannelse, Efterår 1996, Oversættere og køretidsomgivelser 3/10/96 Seminaret den 26/10 vil omhandle den sidste fase af analysen og de første skridt i kodegenereringen. Det drejer sig om at finde betydningen af programmet, nu hvor leksikalsk og syntaktisk analyse

Læs mere

Flere ligninger med flere ukendte

Flere ligninger med flere ukendte Flere ligninger med flere ukendte Frank Villa 14. februar 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Det Nye Testamente lyd-app. v. Stefan Lykkehøj Lund

Det Nye Testamente lyd-app. v. Stefan Lykkehøj Lund Det Nye Testamente lyd-app v. Stefan Lykkehøj Lund Indledning For nogle år siden, fik jeg Det Nye Testamente som lydbog på USB. I starten lyttede jeg en del med tiden blev det dog til mindre og mindre.

Læs mere

Hvad er viaart? viaart kan betegnes som en tænke-, arbejds- og handlemåde, der bidrager til udforskningen af individuel og fælles potentiale.

Hvad er viaart? viaart kan betegnes som en tænke-, arbejds- og handlemåde, der bidrager til udforskningen af individuel og fælles potentiale. viaart Hvad er viaart? viaart er et innovativt koncept, med fokus på udvikling via kunsten. Forretningsområdet tager afsæt i en kunstnerisk 7-trins proces, hvor fokus er på at udvikle målrettede produkter

Læs mere

Lightning Decision Jam. Ti enkle trin til at fastlægge fokus og realiserbare næste bedste skridt

Lightning Decision Jam. Ti enkle trin til at fastlægge fokus og realiserbare næste bedste skridt Lightning Decision Jam Ti enkle trin til at fastlægge fokus og realiserbare næste bedste skridt Lightning Decision Jam Lightning Decision Jam er en trin-for-trin proces, der hjælper teams til at identificere,

Læs mere

v/ Marie Krag, Copenhagen Living Lab BRUGERINDDRAGELSE I UDVIKLING OG TEST AF IHL

v/ Marie Krag, Copenhagen Living Lab BRUGERINDDRAGELSE I UDVIKLING OG TEST AF IHL v/ Marie Krag, Copenhagen Living Lab BRUGERINDDRAGELSE I UDVIKLING OG TEST AF IHL Inddragelse af brugere i udviklingen af IHL Behov Koncept Prototyping (co-creation) Funktionel prototype Bruger-/ systemtest

Læs mere

Fraktaler Mandelbrots Mængde

Fraktaler Mandelbrots Mængde Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Indledning 3 2 Komplekse tal 5 2.1 Definition.......................................

Læs mere

Heldigvis har systemet indbygget en hjælp, som man kan benytte, hvis denne vejledning ikke berører det opståede problem.

Heldigvis har systemet indbygget en hjælp, som man kan benytte, hvis denne vejledning ikke berører det opståede problem. Indhold Introduktion...2 Hjælp...2 Office knappen...2 Menulinjen...3 Fast værktøjslinje Hurtig adgang...3 Menupunkter...4 Startside...4 Indsæt...5 Sidelayout...5 Referencer...6 Forsendelser...6 Gennemse...6

Læs mere

KURSER INDENFOR SOA, WEB SERVICES OG SEMANTIC WEB

KURSER INDENFOR SOA, WEB SERVICES OG SEMANTIC WEB KURSER INDENFOR SOA, WEB SERVICES OG SEMANTIC WEB Det er Web Services, der rejser sig fra støvet efter Dot Com boblens brag. INTRODUKTION Dette dokument beskriver forslag til fire moduler, hvis formål

Læs mere