Abstraktion & Modellering

Størrelse: px
Starte visningen fra side:

Download "Abstraktion & Modellering"

Transkript

1 Abstraktion & Modellering Palle Nowack Center for Science Uddannelse, Aarhus Universitet Without abstraction we only know that everything is different. Grady Booch Introduktion! 2 Hvad er en model?! 5 Systemer & perspektiver! 5 Modelsystem & referentsystem! 9 Metoder! 11 Procesmodeller: vandfald og spiraler! 13 Eksempler! 15 Programmering! 15 Repræsentation og digitalisering! 15 Arkitektur! 16 Referencer! 18 Appendix A: Modelleringskompetencer! 19 Side 1 af 19

2 Introduktion Øvelse: Kig på programmet til venstre i figur 1. Prøv at forstå, hvad programmet gør. Kig så på modellen til højre i samme figur. Som du sikkert hurtigt indser, er der en sammenhæng. Hvad synes du er nemmest at forstå? Hvorfor tror du, det er sådan? Figur 1: Java kode eksempel og rutediagram 1 Koden er naturligvis vanskelig at læse, hvis man ikke kender Java programmeringssproget, men bortset fra det, er der en anden central forskel, nemlig at rutedigrammet er en abstraktion over koden. Når vi abstraherer, fokuserer vi på visse egenskaber ved et fænomen, og ignorerer andre egenskaber. Koden til venstre skal kunne afvikles på en computer, og det indeholder derfor en masse bogholderi og detaljer, som computeren har brug for, for at kunne udføre programmet. Diagrammet til højre er beregnet til at skulle læses af mennesker, og dette tilfælde har vi valgt at fokusere på logikken i koden til venstre. Vi abstraherer således fra en lang række egenskaber ved koden: syntax, typer, parametre, input/output m.m. Derfor udtrykker rutediagrammet noget langt simplere end koden. Andre åbenlyse forskelle er, at koden er tekstuel (skal læse ovenfra og ned, venstre til højre), hvorimod diagrammet er grafisk. Nogle (de fleste?) har nemmere ved at forstå diagrammer end tekst. Forestil dig nu, vi skal udvikle en løbe-musik-app til en Smartphone. Når vi skal udvikle systemer, er det generelt en god idé at tale med de kommende brugere, så vi ikke kommer til at lave et system, ingen vil bruge. Vi har derfor interviewet Kim fra løbeklubben, der har bestilt systemet, og spurgt, hvad han kunne tænke sig:... jeg vil gerne have, at musikken tilpasser sig min løberytme. Altså, når jeg løber langsomt, skal systemet finde et langsomt nummer, som passer med mine skridt. Hvis jeg løber hurtigt skal den finde et hurtigt nummer. Så musikken skal hele tiden tilpasses den rytme, jeg løber i lige nu.... Og den skal finde nye numre hver gang, jeg skifter tempo... ikke bare øge tempoet på den sang, jeg hører i forvejen, så Justin Bieber kommer til lyde endnu mere som Mickey Mouse.. det er ikke det jeg mener!...omvendt, så kunne det også være smart, hvis man kunne gøre det modsatte.. altså at jeg selv kunne vælge et nummer, som var langsomt, mellem, eller hurtigt.. hvis jeg nu havde lyst til at presse mig selv eller træne i et bestemt tempo en dag. Faktisk ville det være fedt, hvis jeg også kunne lave mine egne playlister hjemmefra, så jeg kunne lægge ud med et langsomt nummer, øge 1 Fra Side 2 af 19

3 rytmen løbende gennem 2-3 numre, maksimal rytme i ét nummer, og så afslutte med et langsomt nummer til sidst... Kig på modellerne i figur 2. De er begge udtrykt i et grafisk modelleringsprog, der hedder UML (Unified Modeling Language). UML er et meget omfattende sprog, hvor der findes et hav af notationer til at beskrive mange forskellige dele af og syn på modeller i forbindelse med systemudvikling. De to illustrerede er nogle af de mere almindelige. Det er ikke meningen, at du skal kunne forstå detaljerne i eksemplerne, men du skal have en idé om, hvad der forsøges udtrykt. Figur 2: UML klassediagram (til venstre) og use-case diagram (til højre). I klassediagrammet til venstre har jeg gengivet de begreber (klasser), som vores bruger anvendte, da han talte om det ønskede system. Hver kasse udtrykker et begreb (navnet på begrebet står øverst i kassen), og for nogle af kasserne, har jeg også tilføjet såkaldte attributter (dvs. egenskaber for begrebet): f.eks. kan vi se at et musiknummer (Track) har en varighed (length) og en rytme (beats per minute). Pilene med de trekantede hoveder udtrykker, at et begreb kan være en specialisering af et andet begreb. Så i dette tilfælde er Track det generelle begreb, og Fast Track, Medium Track, og Slow Track er specialiseringer af dette begreb. Vi vender tilbage til dette senere i noten. Endelig kan vi også se at stregen mellem Playlist og Track har en lille hvid rhombe i den ene ende: dette udtrykker aggregering, dvs. det forhold, at en Playliste består af en række tracks. I use-case diagrammet til højre, har jeg prøvet at ordne og gruppere den funktionalitet, som brugeren (tændstikmanden) ønskede i såkaldte use-cases (ovalerne). Hver use-case (også kaldet brugsmønstre) navngiver og beskriver en serie af trin i interaktionen ml. en bruger og et system. Så man skal altså forestille sig, at jeg også har lavet en detaljeret beskrivelse af alle ovalerne, f.eks. Select playlist, hvor den tilsvarende use-case i tekst, detaljeret vil beskrive hvad henholdsvis brugeren skal gøre, og systemet gør, når man vil vælge playlist. Nu har du set 3 eksempler på modeller, som benyttes i forbindelse med systemudvikling. Lad os prøve at reflektere lidt over det vi har set: Modeller kan udtrykke egenskaber ved systemets interne dele: programmer og kode. Man kan lave en sådan model ud fra eksisterende kode for at synliggøre vise dele/aspekter (en analyse model), eller man kan lave en model, inden man begynder at kode (en design model). Side 3 af 19

4 Modeller kan udtrykke egenskaber ved systemets omgivelser: problemområde og anvendelsesområde. Problemområdet er det som systemet skal kontrollere eller overvåge (f.eks udtrykt ved vores klassediagram). Anvendelsesområdet er det, der foregår mellem bruger og system (f.eks. udtrykt ved vores use-case diagram). Modeller er udtryk for abstraktion: når vi laver en model, lægger vi vægt på visse dele (f.eks. logikken i vores rutediagram) og ignorerer andre dele. Det betyder også, at en model altid udtrykker en bestemt synsvinkel på systemet eller på dets omgivelser. Nogle modeller udtrykker dynamiske egenskaber ved et system eller dets omgivelser: f.eks. rutediagrammet eller use-case diagrammet. Her er der således fokus på dynamik, processer, hændelser - noget der sker, som vi skal forstå og/eller holde styr på. Nogle modeller udtrykker statiske (strukturelle) egenskaber ved et system eller dets omgivelser: f.eks. klassediagrammet. Her er der fokus på begreber og strukturer, som ikke ændrer sig over tid, mens vi bruger systemet. Når vi abstraherer, vælger vi som sagt en bestemt synsvinkel at beskrive ud fra. Dette gælder også størrelsesforholdet (ofte kaldet modellens granularitet). Dette har vi ikke vist eksempler på, men forestil dig, at vi tager fat i klassen Playlist fra klassediagrammet. Denne kan naturligvis forstørres op og beskrives i yderligere detalje, hvor vi så typisk ser bort fra den kontekst (sammenhæng) som klassen indgår i. Sammenfattende: når vi laver modeller, så ofrer vi typisk en detaljerigdom (jvf. koden og interviewet med brugeren) til fordel for en præcision og et bestemt fokus. Vores modeller er fattigere på detaljer end virkeligheden (det vi forsøger at beskrive). Til gengæld bliver det nemmere at holde fokus på bestemte aspekter ved den virkelighed. Modeller hjælper os med at håndtere usikkerhed og kompleksitet i vores arbejde med it. Modeller kan understøtte en dialog ml. personer involveret i udviklingen af it-baserede systemer: kunder, brugere, programmører, grafiske designere, interaktionsdesignere, databasedesignere, osv. Uden sådanne konkrete, håndfaste modeller kan det være svært at forstå hvad den anden part mener, og derfor udvikler vi modeller, der udtrykker bestemte egenskaber ved det system, der er under udvikling, såvel som ved de omgivelser et system skal bruges i. På den måde er der noget konkret at forholde sig til, hvilket gør en dialog om ændringer og tilføjelser meget lettere. Vi kender brugen af modeller fra mange andre områder: Når vi har svært ved at finde rundt i den fysiske verden, så benytter vi os af kort. Det kan være en kortbog i bilen, et kort over undergrundsbanen i London, et kort over Københavns centrum, et kort over et storcenter, en plantegning over rummene i huset vi overvejer at købe osv. Vi er så vant til disse anvendelser, at vi ofte ikke tænke over at vi bruger dem. Vi glemmer at skelne mellem model og virkelighed, hvilket jo er helt fint, hvis modellen er god, og udtrykker de ting fra virkeligheden, som er vigtige for vores tanker her og nu i situationen. Omvendt så kender vi alle situationer, hvor modellen ikke svarer til virkeligheden (eller er det omvendt?). F.eks. hvis vi har vadet 2 km gennem et storcenter for at finde en bestemt butik, der så er flyttet, når vi kommer frem. Nogle gange er kortet (modellen) forældet. Nogle gange er kortet (modellen) for ny ("Butikken åbner om 14 dage. På gensyn!"). Når vi skal forklare og visualisere processer, så anvender vi også modeller. Det kan være en grafisk fremstilling af en uddannelse med fagpakker, fag, studieretninger, toninger, år og semestre. Eller det kan være en samlevejledning til en reol fra IKEA. Vejledningen udtrykker en model af den proces, som vi skal igennem for at komme fra plader og skruer til et sted at opbevare tøj og bøger. Side 4 af 19

5 I stort set alle fag i en uddannelse støder vi ind i modeller: modeller af atomer i fysik, molekyler i kemi, celler i biologi, eksponentielle funktioner i matematik, modeller for dramaturgisk udvikling af en historie i dansk, modeller af den menneskelige pskyke i psykologi, af samfundet i samfundsfagosv. Maslows behovspyramide i historie er også en model. Alle fag benytter sig af modeller, fordi modeller forsimpler virkeligheden og gør det lettere at håndtere den og forstå den. Så på den ene side, så kender vi i forvejen en masse konkrete modeller og modeltyper. På den anden side, så er det for mange lidt uklart, hvornår vi har fat i en rigtig model eller måske blot en beskrivelse eller en forklaring. Da både modelbegrebet og kompetencerne involverede i at kunne bruge, ændre og skabe modeller, begge er så centrale for it-faget, udgør emnet et kernestofområde, som det er fordelagtigt, at vi behersker for at kunne arbejde kreativt og effektivt med it. I denne note beskriver vi først hvad en model er for en størrelse. For at kunne være lidt mere præcis i vores forståelse, tager vi en tur omkring systemer & perspektiver, fænomener & begreber, og vi forklarer hvad henholdsvis et modelsystem og et referentsystem er, ligesom vi forklarer sammenhængen mellem disse to systemer. Dernæst tager vi et kig på sammenhængen mellem modeller, metoder og processer. Til sidst giver vi en række eksempler på, hvordan modeller og modelleringstankegangen er central for informationsteknologi som fag. I Appendix A har vi desuden opsummeret de forskellige kompetencer, som er vigtige, når man arbejder med modeller. Hvad er en model? Et karakterstika ved alle modeller er således, at de fremhæver og udtrykker visse dele af det, som de er en model af, imens de undertrykker og skjuler andre dele. På den måde er modellen en abstraktion over virkeligheden. Modellen reducerer kompleksiteten i vores forståelse af virkeligheden. Et andet karakteristika ved anvendelsen af modeller, er at anvendelsen hjælper os med at reducere usikkerhed. Hvis vi f.eks. i en gruppe sidder med en fysisk plastikmodel af et molekyle, så kan vi se de forskellige bindinger og atomer, vi kan fjerne nogle og tilføje andre. På den måde bliver det klart for alle, hvad den enkelte mener, når vedkommende forklarer og fortæller. Vi kan diskutere om det er korrekt eller hensigtsmæssigt, i forhold til det vi ønsker at opnå eller beskrive, men muligheden for misforståelser er klart mindre, end hvis vi bare sidder og taler ud i den blå luft og fægter lidt med armene. På samme måde anvender f.eks. arkitekter fysiske modeller i deres samarbejde med kunder og ingeniører. Ud fra en model af en ny bygning kan man diskutere om rummene og forbindelserne imellem disse er hensigtsmæssige og funktionelle, ligesom man kan diskutere æstetiske aspekter ved dele og helheden. Denne måde at reducere usikkerhed på, er klart billigere end at lave den virkelige bygning, rive ned og bygge op. Systemer & perspektiver Når vi arbejder med it, så taler vi ganske ofte om systemer. Men hvad er et system i denne sammenhæng? Side 5 af 19

6 Et system er en opfattelse af en mængde fænomener, der er meningsfyldt relaterede, så det er muligt og hensigtsmæssigt at betragte dem som et hele med særlige systemiske 2 egenskaber. (Lindgreen, 1990) Et system er altså udtryk for en bestemt opfattelse 3 eller man kunne sige et bestemt perspektiv: Et perspektiv er det middel en person bruger til at strukturere vedkommendes tænkning og forståelse i relation til situationer i et område. (BETA, 1993) Eksempler: Hvis jeg som bruger betragter Facebook som et system, så kan jeg vælge at opfatte det som et socialt medie, hvor jeg kan kommunikere med mine venner, få nye venner, finde gamle venner, og dele tanker om nyheder, videoer, og musik. Hvis jeg er lidt mere gusten og beregnende, kan jeg se det som et medie til selvpromovering: ved omhyggeligt at udvælge, hvad jeg skriver på min væg, hvilke billeder jeg deler, osv. kan jeg skabe et billede af mig selv, som jeg ønsker at fremstå overfor andre. Hvis jeg er en virksomhed, der reklamerer, kan jeg betragte Facebook som et medie til målrettet at henvende mig til potentielle kunder, baseret på mine oplysninger om disse. Hvis jeg er producent af Facebook kan jeg betragte systemet som en platform, hvor det gælder om at tiltrække så mange brugere og så mange virksomheder som muligt, så de bliver bundet til netop min platform (i stedet for Twitter eller Google+ f.eks.) Hvis jeg arbejder som socialrådgiver i en kommune kan jeg vælge at se på de arbejdsløse borgere, som sager, der skal løses, indenfor det budget jeg har, og den lovgivning jeg er underlagt. En anden mulighed er, at betragte dem som klienter, der skal hjælpes. En tredje mulighed er, at betragte dem som kunder, jeg skal sælge kommunens aktiveringstilbud til. Ligegyldigt hvilket perspektiv jeg (mere eller mindre bevidst) vælger, så farver det mit syn på dem og mine arbejdsopgaver i forbindelse med dem - det påvirker min tænkning og min forståelse. Perspektivet er altså vigtigt for ens forståelse af et system, og dermed også for ens adfærd i forbindelse med systemet. Når vi skaber it-baserede systemer er perspektivet derfor helt afgørende. Det kan i sidste ende afgøre om systemet bliver brugt eller ej. Abstraktioner, fænomener, begreber Et system er en opfattelse af en mængde fænomener, skrev vi ovenfor. Hvis vi igen bruger Facebook som eksempel, så har systemet millioner af brugere. Hvis vi forsøger at forstå dem allesammen individuelt kommer vi ret hurtigt til kort. Derfor klassificerer vi alle de fænomener, der har ensartede egenskaber og adfærd til begreber. Vi taler om brugere, profiler, beskeder, tidslinjer. Ikke bare om Karoline som bruger, Michaels profil, Josephines tidslinje, eller den fatale besked 2 En systemisk egenskab er en egenskab, man i sin opfattelse af en mængde fænomener som en helhed tillægger helheden i relation til resten af verden, og som hver af fænomenerne bidrager til uden nødvendigvis selv at besidde den (Lindgreen, 1990). F.eks. består min hund af hovede, ben, krop, hale, osv., men det at han kan gø og sige vuf er en systemisk egenskab ved (mange dele af) hele hunden, snarere end det er en isoleret egenskab ved hovedet. Det samme gælder i øvrigt hans egenskab med ikke at komme, når jeg kalder, som jeg ikke tror kan henføres til hverken ører eller ben. Muligvis hans diminutive hjerne. 3 Bemærk at dette er udtryk for såkaldt Soft Systems Thinking, modsat Hard Systems Thinking, hvor ens tænkning om systemer er baseret på den antagelse, at systemerne har selvstændig eksistens i virkeligheden uafhængig af en evt. betragter (CoC, 1993). Groft sagt, så er Hard Systems Thinking den typiske naturvidenskabelige ingeniør-tilgang, hvor Soft Systems Thinking har rødder i samfundsvidenskab og konstruktivisme. Side 6 af 19

7 vedr. æblet fra Eva til Adam i går kl Det er en vældig handy cognitiv mekanisme, og vi bruger den hvert eneste minut hele dagen uden at tænke over det. Hvis vi udelukkende tænkte i konkrete forskellige fænomener, ville vi kun vide, at alting var forskelligt 4. Ikke to personer er ens. Ikke to græsstrå er ens. I stedet abstraherer hjernen heldigvis automatisk fra de mindre væsentlige forskelligheder og kategoriserer alle de fænomener, der har væsentlige fælles egenskaber, så vi kan tale om personer og græsstrå, på en måde som er meningsfuld (endda på tværs af sprog og kulturer). Lad os få defineret, hvad vi mener med henholdsvis et fænomen og et begreb: Et fænomen er noget, der har afgrænset, selvstændig eksistens i virkeligheden eller i sindet. (BETA, 1993) Et fænomen kan f.eks. være naboens bil, dvs. den røde, støjende, ildelugtende rustbunke, som holder i hans indkørsel. Men et fænomen kan også være en en begivenhed (juleaften 2010) eller en proces (studieturen til Norge) udstrakt over tid. Det er meget forskelligt om flere personer kan blive enige om, om de taler om og tænker på det samme fænomen. Med fysiske observerbare fænomener er det ofte let, idet man kan pege på genstanden eller referere til fælles erindringer om eller planer for det fysiske fænomen. Med fænomener i sindet er det ofte vanskeligere. Harry Potter er bestemt et fænomen i sindet, og takket været film og bøger (fysiske support-fænomener), kan vi nok ret hurtigt blive enige om, hvad dette fænomen er for noget. Men andre gange er det vanskeligere. Et begreb er en generaliseret ide om en samling af fænomener, baseret på viden om fænomenernes fælles egenskaber. (BETA, 1993) Et begreb klassificerer således en række fænomener i kraft af deres ensartede egenskaber. F.eks. er vi ikke i tvivl om at min fine nye Mercedes er meget forskellig fra naboens gamle Lada. Men vi kan hurtigt blive enige om, at begge dele (begge fænomener) er eksempler på det generelle begreb "en bil". Egenskaberne er f.eks. at de har 4 hjul, et rat, en gearstang, benzindæksel, et antal sæder, og et antal døre, og at de (ikke mindst - hvilket ofte er rustbunkeejermændenes væsentlige pointe) bringer passageren "fra A til B". Bemærk også, at hvor et fænomen kan være fysisk til stede i virkeligheden eller i sindet, så hører begreber altid hjemme i sindet. Du kan aldrig køre en tur i begrebet en bil, men altid kun i en bestemt bil. Et begreb er karakteriseret ved 3 mængder: Ekstension: mængden af fænomener, som begrebet omfatter og beskriver. Intention: mængden af alle de egenskaber, der kan bruges til at karakterisere alle de fænomener, der er i et begrebs ekstension. Designation: mængden af alle de navne (eller symboler og tegn), som begrebet er kendt under. Dette er illustreret i figuren til højre. Et eksempel kunne være begrebet en hund. Ekstensionen omfatter de konkrete hunde Fido, Rolf, Bimmer osv. Intentionen omfatter: kødædende, 4 Grady Booch: Without abstraction we only know, that everything is different. Onde tunger påstår så ind i mellem at With abstraction everything looks the same. Side 7 af 19

8 kan sige vov, har 4 ben, har en hale, kan ikke lide katte osv. Designationen omfatter en hund, en køter, et kræ, en vovse, Canidae m.fl. Når vi tænker på og arbejder med fænomener og begreber, så bruger vi en række begrebsdannelsesprocesser, som jeg har illustreret i figur 3: Figur 3: Begrebsdannelsesprocesser Eksemplifikation: Givet et begreb ( en filosof ), så kan vi eksemplificere med en række fænomener ( Kierkegaard, Sartre, Camus, Anders Fogh ). Klassifikation: Givet en række fænomener ( Daniel Agger, Lionel Messi, Christiano Ronaldo, Sofus Krølben ), så kan vi klassificere dem som værende eksempler på samme begreb ( en fodboldspiller ). Generalisering: Givet en række begreber ( hund, gris, ko ) kan vi generalisere disse til et nyt mere generelt begreb ( pattedyr ). Bemærk at alle egenskaberne for det generelle begreb ( pattedyr ) er gældende for alle de specialiserede begreber, men ikke omvendt. F.eks. føder alle pattedyr levende unger, hvilket derfor også gælder for hunde, grise, og køer, men en ko har horn, hvilket ikke gælder alle pattedyr. Specialisering: Givet et generelt begreb ( en gnaver ) kan vi aflede en række specialiserede begreber ( kanin, mus, rotte ). Dette er blot den omvendte proces af generalisering. Aggregering: Givet en række del-begreber, kan vi samle disse i et helhedsbegreb. F.eks. kan vi samle begreberne rod, stængel, blade, og blomst i begrebet plante. Dekomponering: Givet et sammensat begreb, kan vi dekomponere dette i bestanddele. F.eks. kan vi opdele et fodboldhold i forsvar, midtbane og angreb. Dette er blot den modsatte proces af aggregering. Alt dette kan måske virke vældig teoretisk, men når vi arbejder med it, så skal vi huske, at maskinen i udgangspunktet er meget dum. Den forstår ikke vores sprog, og derfor bliver vi nødt til at være meget præcise, når vi programmerer den og udvikler systemer til den. Som en bonus / sidegevinst, så bliver det også nemmere at tale præcist med sine samarbejdspartnere. Bemærk derfor præcisionen som ovenstående begrebsapparat medfører. I stedet for at vi kan tale om, at nogle ting har med nogle andre ting at gøre, kan vi pludseligt blive meget skarpe. Vi kan tale om, at et begreb er en generalisering af 3 andre begreber, og at det samme begreb kan opsplittes Side 8 af 19

9 i 5 del-begreber. Vi kan forstå, at en angriber ikke er eksempel på en fodboldspiller, men at en angriber er en specialiering af en fodboldspiller. Vi kan skelne skarpt mellem konkrete fænomener og abstrakte begreber. Uanset hvilken notation og type af modellering, du anvender, så er det en god generel kompetence at have. Det er afgørende betydning om man vælger den ene eller anden forståelse af fænomener og begreber, når modellen skal repræsenteres i et system. Øvelse: Tag en model i en notationsform du kender (f.eks. et java-program, et rutediagram, et E/Rdiagram, et tilstandsdiagram). Beskriver modellen fænomener eller begreber? Begge dele? Hvis modellen beskriver begreber, så prøv at give eksempler på designation, ekstension, intention. Prøv tilsvarende at finde eksempler på de 6 begrebsdannelsesprocesser. Hvis du ikke kan finde eksempler på dem alle, så prøv at overvej, hvad de kunne være. Modelsystem & referentsystem I forbindelse med modellering skelner vi mellem to typer af systemer: modelsystem og referentsystem. Referentsystemet er det som vi ønsker at lave en model af, og modelsystemet er den model, vi så rent faktisk får lavet. To eksempler: På mit 5-stjernede hotel i London får jeg udleveret et kort over undergrundsbanen. Kortet er modelsystemet. Londons undergrundsbane er referentsystemet. Jeg bruger modelsystemet til at forstå referentsystemet. F.eks. til at orientere mig om, hvor jeg er henne pt. eller måske planlægge en rejse i morgen. Modelsystemet er i dette tilfælde ikke det samme som et almindeligt landkort, idet det er tegnet på en måde, så stationerne og linjerne er tydeligt markerede og med pæn indbyrdes afstand, og derfor ikke nødvendigvis ligger geografisk korrekt i forhold til hinanden. Modellen fremhæver altså visse aspekter (stationer og linjer) og skjuler andre (geografisk placering, hundetoiletter, Apple butikker osv.). Herning kommune har besluttet at lave nye busruter. Kommunens topplanlægger har fået til opgave at lave en skitse over mulige fremtidige busruter. Skitsen er modelsystemet, og referentsystemet er i dette tilfælde planlæggerens forestilling (vision) om fremtidige busruter i kommunen. Bemærk altså, at i dette tilfælde findes referentsystemet endnu ikke i virkeligheden, men at vi bruger et modelsystem til at diskutere en mulig fremtidig virkelighed. Ovenstående er faktisk karakteristisk for mange anvendelser af modeller og modellering: hvis man skaber en model for at forstå noget eksisterende, så taler man ofte om analysemodeller; hvis man skaber en model for at illustrere muligheden af noget nyt, så taler man ofte om designmodeller. I ovenstående eksempler er London-kortet således en analysemodel, og Herning-kortet en designmodel. Lad os lige få koblet det vi har lært om fænomener og begreber, med det vi har lært om referentsystem og modelsystem. Kig på figur 4. Til venstre har jeg vist et referentsystem (RS) med begreber og fænomener, som vi er interesserede i. De grønne pile symboliserer de begrebsdannelsesprocesser, vi beskrev tidligere (aggregering, specialisering, osv.). Til højre har jeg vist et modelsystem (MS). Det interessante er, hvad dette indeholder. Det indeholder nemlig en repræsentation af begreberne fra RS (øverste kasse), en repræsentation af fænomenerne fra RS (nederste kasse), samt en repræsentation af begrebsdannelsesprocesserne fra RS (de sorte pile). Side 9 af 19

10 Figur 4: Modellering: Referentsystem og Modelsystem Så hvis vi tager vores eksempel med Londons undergrundsbane, så har vi stationerne og linjerne som elementer til venstre i RS, men selve symbolerne på kortet er til højre i MS: symbolforklaringen på kortet (altså forklaringen af hvordan en linje og en station ser ud) er vores begrebsrepræsentation (for oven), og selve det fysiske layout af linjer og stationer vores fænomensrepræsentation (for neden). Kig nu igen på figur 2 med UML diagrammet. Dette er nemlig et andet konkret eksempel på ovenstående generelle model. Begreberne (Track, Playlist, osv. fra vores referentsystem) er repræsenterede som klasser (kasser) i modellen (vores modelsystem). Begrebsdannelsesprocesserne specialisering og agggregring fra RS er repræsenterede som henholdsvis pilene og stregen med rhomben i MS. Øvelse: Kig nu på figur 1 med javakoden og rutediagrammet. Kan du se, at rutediagrammet er en model af javakoden? Hvilke begreber og hvilke fænomener beskriver det? Sammenfattende er det vigtigt at forstå, at når vi laver modeller, så anvender vi altid et bestemt perspektiv eller en synsvinkel. Dette perspektiv definerer hvilket referentsystem, vi vælger at beskæftige os med - hvad vi vælger at se og opfatte, når vi kigger på virkeligheden. Altså inden vi overhovedet er begyndt på vores model - når bare vi kigger - så har vi allerede foretaget nogle meget afgørende valg. Det er også vigtigt at forstå, at et referentsystem kan bestå af fænomener i et systems omgivelser (londons undergrund) eller interne dele (javakode). Desuden kan vi vælge at lave vores modelsystem i forskellige notationer, f.eks. UML, naturligt sprog, uformelle tegninger, eller javakode. Dette forhold - at et program kan være både et referentsystem, som vi skal lave en model af, eller i sig selv være et modelsystem for noget andet - kan være temmelig forvirrende. I øvrigt skal det bemærkes at, hvis man anvender objekt-orienterede programmeringssprog (som f.eks. Java), så stiller sproget primitiver og mekanismer direkte til rådighed til at udtrykke fænomener, begreber, og specialisering, og aggregering. De lærde kan så slås om, hvilke begreber og fænomener, man bør udtrykke i sådanne programmeringssprog: om det skal være fra systemets omgivelser, fra programmørens hjerne (f.eks. i form af design mønstre), eller fra den platform man arbejder på (f.eks. vinduer, knapper, osv.). Side 10 af 19

11 Metoder Når vi arbejder med metoder til systemudvikling, så skelner man ofte mellem "low-ceremony" og "high-ceremony" metoder. I det følgende kigger vi lidt på anvendelsen af modeller og modellering i forbindelse med begge. High-ceremony metoder anvender mange formelle møder, reviewprocesser, tests, og modeller. Udviklerne fordeler ofte et antal formelt definerede roller i mellem sig (arkitekt, use-case analytiker, databaseansvarlig, GUI-udvikler, tester, m.fl.) - den enkelte udvikler har ofte flere roller. Til modellerne er der som oftest knyttet mere eller mindre præcis semantik (betydning, dvs. hvad betyder en konkret model) og syntax (regler for form, dvs. hvordan må en model se ud, hvis den skal være "lovlig"). Klassiske (typisk lidt ældre) metoder er ofte high-ceremony. High-ceremony metoder har et naturvidenskabeligt udgangspunkt, hvor man vægter præcision, eksplicithed, forudsigelighed, osv. Hvis systemudviklingsprocessen fejler har man en tilbøjelighed til at skyde skylden på udviklerne, snarere end på metoden eller situationen. Specifikt i forhold til brugen af modeller, så forbindes High-ceremony metoder ofte med omfattende brug af dokumentation, specielt modeller som udarbejdes og vedligeholdes i såkaldte CASE-værktøjer (Computer Aided Software Engineering). Fortalerne for sådanne værktøjer nævnes ofte som to af de vigtigste fordele, at værktøjerne understøtter kodegenerering og reinforcement of syntactical rules. Modstanderne finder værktøjer unødig komplicerede og begrænsende, forstået på den måde, at udover selve modellens kompleksitet (som jo har med det problem, vi forsøger at udtrykke og/eller løse at gøre), så indfører værktøjerne et ekstra lag af kompleksitet, fordi man nu også skal sikre sig, at modellen er syntaktisk korrekt, for at man overhovedet kan udtrykke modellen i værktøjet. Low-ceremony metoder vægter i kontrast til det ovenstående konkret kode og direkte menneskelig kommunikation højere end udformningen og udveksling af modeller og dokumenter. Som et respons på den stigende brug af mere og mere omfattende metoder i 80-erne og 90-erne, opstod der i slutningen af 90-erne et modsvar fra de systemudviklere, der begyndte at opfatte metoderne, modellerne, notationerne, og værktøjerne, som spændetrøjer. F.eks. formulerede Kent Beck en række principper for det han kaldte extreme Programming (XP). XP er karakteriseret ved, at man fokuserer på traditionelle håndværksmæssige aspekter af programmering. F.eks. ved man erfaringsmæssigt, at det er godt, at programmere to personer sammen ved én maskine, idet to par øjne ser bedre end ét, og to hjerner tænker bedre end én. Den ene person kan taste koden ind, mens den anden hele tiden kigger med og kommer med forslag til forbedringer og ændringer. På den måde bliver ideerne løbende testet af mod en anden persons viden og erfaring i stedet for at ende ukritisk i koden. En anden fordel er, at begge personer således er inde i forståelsen af koden, og derfor er projektet meget mindre sårbart, hvis den ene programmør har barnets første sygedag, eller hvis den anden programmør skifter job til et andet projekt eller en anden virksomhed. Dette kaldes pair-programming. Et andet eksempel er Customer On-Site -princippet, hvor man under hele udviklingsprocessen har en kommende bruger af systemet til rådighed i projektet. Vedkommende er med til at træffe beslutninger, når udviklerne er i tvivl om noget skal laves på den ene eller anden måde. Alternativt til dette, så anvender high-ceremony metoderne ofte et omfattende batteri af kravspecifikationer - dvs. lange og detaljerede (ofte formelle) beskrivelser af brugernes krav til systemet - der udarbejdes i starten af projektet, hvorefter det kastes over muren til en horde af Side 11 af 19

12 vilde programmører, der så kan misforstå specifikationerne og komme til at lave det forkerte system. I begge tilfælde anvender man en praksis, som er velkendt for programmører - f.eks. at hjælpe hinanden med at programmere og at tale med brugerne - men man gør det konsekvent og disciplineret i hele projektforløbet (heraf ordet ekstrem ). Et nyere eksempel på en low-ceremony metode er SCRUM, som anvendes meget i industrien i dag. i SCRUM benytter man bl.a. daglige ultra-korte morgenmøder, hvor alle udviklerne i en lille gruppe samles, og hvor hver udvikler kort skal svare på spørgsmålene: Hvad fik jeg lavet i går?, Hvad vil jeg lave i dag?, Hvor tror jeg, at jeg kan løbe ind i udfordringer, og kan få brug for hjælp?. På den måde er alle kort orienterede om hinanden arbejde, man får en fornemmelse af den fælles fremdrift, og hvis nogle gør opmærksom på en udfordring, så kan andre byde ind og tilbyde sin hjælp til at få løst problemet. Møderne foretages stående - gerne ved en tavle med post-it notes, der repræsenterer opgaverne, og som kan placeres i en struktur på tavlen - for at forebygge at møderne trækker i langdrag. Et sådant SCRUM-møde tager typisk minutter for en lille gruppe af 4-5 udviklere 5. XP, SCRUM og andre low-ceremony metoder kaldes ofte for Agile (adrætte) metoder, og nogle af fortalerne har sågar begået et manifest, der udtrykker principperne for de rettroende: agilemanifesto.org. Betyder det så, at man ikke laver modeller, hvis man anvender agile (low ceremony) metoder? Nej, men rollen af modellerne er anderledes. Man laver typisk modellerne med tusch på en tavle, som er i det rum, udviklerne sidder i. På den måde kan alle hele tiden se disse, og man opfordres til at bidrage - hvilket ofte ikke er tilfældet, hvis en kollega sidder med hovedet begravet i et UMLværktøj på sin egen pc. Desuden går man ikke ret meget op i formel syntax og semantik. Hvis ens samtalepartner kan forstå den model, man har lavet, så er den pr. definition god nok - selv om den ikke anvender korrekt UML notation. Endelig så har modellerne ofte kortere levetid. I forbindelse med high-ceremony metoder gemmes alle modeller (og også gerne tidligere versioner af samme model) med henblik på at kunne dokumentere systemudviklingsprocessen. Med agile metoder smider man ofte modellen væk, når den har tjent sit umiddelbare formål, dvs. når forståelsen er på plads og tavlen er ryddet. En helt almindelig praksis, hvis man alligevel ønsker at gemme (eller måske distribuere) sådanne tavle-modeller, er at fotografere og arkivere dem. Som et eksempel på udvikling og brug af modeller i forbindelse med high-ceremony metoder, kan du kigge på Figur 2 igen. Her har jeg brugt et gratis UML-værktøj (ArgoUML), til at lave modellerne. Som et eksempel på low-ceremony anvendelse af modeller, kan du kigge på de mange digitale fotos i noten, hvor jeg hurtigt har skitseret nogle modeller på et whiteboard og taget et foto med min mobil, for at illustrere en pointe. Som nævnt så opstod den agile bevægelse som et modsvar fra programmørerne imod den stigende formalisering af udviklingsmetoderne (processen og dokumentationen). Kritikken lød ofte, at metodekonsulenterne havde fået alt for meget magt i virksomhedernes systemudvikling, og at det flyttede fokus fra at lave gode systemer til at følge en bestemt metode til punkt og prikke. Det skal 5 Scrum er efter sigende navngivet efter det lille taktik-møde, som rugby-spillere afholder inden de afvikler et set-play i en rugby-kamp. Side 12 af 19

13 også indskydes, at metodekonsulenterne ofte var meget mere akademiske og teoretiske end de praktisk anlagte programmører (mange metoder er opstået i forskningsmiljøer og på universiteter). For de dramatisk og religøst anlagte folk, blev Agile metoder derfor opfattet som lidt af en frihedskamp, som gik ud på at give systemudviklerne og programmørerne magten tilbage igen. Det pudsige er så, at historien bider sig selv lidt i halen. I dag bruger man i mange virksomheder uforholdsmæssigt langt tid på at diskutere om SCRUM skal forstås på den ene eller den anden måde. Må man f.eks. godt holde møder i længere end 15 minutter? Kan man godt programmere alene engang i mellem, uden at universet kollapser af den grund? Man har også indført certificering af SCRUM-udøvere, så nu kan du komme på kursus og få sort bælte i SCRUM. Man kan grine lidt af, at metodekonsulenterne (også kaldet metodisterne ) fra tidligere, nu er erstattet af certificerede SCRUM-masters (det hedder det virkeligt!), og man kan komme til at tænke på både farisæere, ypperstepræster, Yoda og zen-mestre i den anledning. Men det er nok en vigtig pointe, at hvis man vælger en low-ceremony metode frem for en high-ceremony metode, så har man ikke så mange regler, notationer, roller, opskrifter og håndbøger at støtte sig til, og dermed bliver den enkeltes kompetencer meget vigtigere. Både de snævert faglige kompetencer, men også samarbejdskompetencerne. Derfor kan der være en vis mening i, at man skal træne og certificeres for opnå færdigheder og disciplin, inden man indgår i et samarbejde om at konstruere komplicerede software systemer. Groft sagt, så kan man sige, at high-ceremony metoder er designede ud fra hypotesen, om at du og dine kolleger ikke er alt for kvikke, og derfor vil begå fejl som skal fanges og udbedres, og til dette formål anvendes omfattende dokumentation og tilhørende reviewprocesser. Low-ceremony metoder antager, at både du, dine kolleger, kunden og brugerne er særdeles kompetente og disciplinerede, og at I selv løbende fanger fejlene. Begge antagelser kan være rigtige eller forkerte. Procesmodeller: vandfald og spiraler I det foregående afsnit diskuterede vi forskellige typer af metoder med specielt fokus på deres anvendelse af modeller. Men som nævnt indledningsvis, så kan vi også lave modeller af processer, og hvorfor ikke kigge på to forskelllige modeller af vores egen udviklingsproces, når vi udvikler software. I det følgende kigger vi derfor på henholdsvis vandfalds- og spiralmodellen. Figur 5: Vandfaldsmodellen I vandfaldsmodellen (figur 5) opdeler man udviklingsprocessen i et antal faser. Det centrale er, at man færdiggør hver fase, inden man påbegynder den næste. Dvs. først indsamles og beskrives alle kravene til systemet, som sammenfattes i et kravspecifikationsdokument, der reviewes og godkendes; dernæst laves en omfattende analyse af disse krav og resultatet sammenfattes i et Side 13 af 19

14 analysedokument, der reviewes og godkendes; herefter designer man en løsning, der sammenfattes i et designdokument, der reviewes og godkendes; så følger selve programmeringen (implementationen), og systemet/koden dokumenteres og reviewes, og endelig testes systemet på forskellig vis, og når det opfylder kravspecifikationen, så er systemet færdigt og tages i brug. Øvelse: Hvad er fordelen ved vandfaldsmodellen? Hvad er ulemperne? I spiral modellen (figur 6) opdeler man i stedet processen i et antal aktiviteter: kravspecifikation, analyse, design, implementation, og test 6. Disse gennemløbes i rækkefølge i et antal iterationer indtil systemet vurderes til at være færdigt. I stedet for at starte med den totale kravspecifikation, tager man fat i et enkelt krav til at begynde med. Dette krav analyseres, designes, implementeres og testes. Så sammenholder man det med kravspecifikationen, og hvis testen viser, at den programstump man har fået lavet lever op til kravene, så går man videre med det næste krav. På denne måde vokser systemet inkrementielt - stykke for stykke. Figur 6: Spiralmodellen Alternativt - hvis programstumpen ikke lever op til kravene - tager man en tur mere rundt i cirklen: måske var kravet ikke præcist nok formuleret? Måske var analysen ikke grundig nok? Måske valgte vi et forkert design? Måske havde vi blot lavet en simpel programmeringsfejl? Måske var koden faktisk ok, men vi testede forkert? Denne type udvikling kaldes også for en iterativ (at man gentager aktiviteterne) og inkrementiel (at man opbygger systemets funktionalitet stykvist) proces. Øvelse: Hvad er fordelen ved spiralmodellen? Hvad er ulemperne? Der er mange måder at gribe en iterativ og inkrementiel udviklingsproces an på. F.eks. Top-Down, hvor man starter med at lave en abstrakt og generel skelet-applikation (dvs. grundliggende en arkitektur), hvor strukturen er på plads, men alle komponenter er tomme og uden funktionalitet. Dette skelet kan man så gradvist forfine og konkretisere ved at hælde mere kode på. Dette princip kender du måske fra stepwise refinement i programmering. 6 Det skal understreges af faserne fra vandfaldsmodellen og aktiviteterne fra spiralmodellen kunne hedde meget andet - afhængigt af den konkrete metode, der anvendes, og desuden kan der forekomme flere end blot 5. Side 14 af 19

15 Alternativt kan man gribe det an som en Bottom-Up proces, hvor man starter med at lave små byggeklodser (komponenter), så man så trinvist sætter sammen i stadig større blokke, der bliver til komponenter på næste niveau, osv. Den strategi, man vælger, er afhængig af mange faktorer: Hvis man f.eks. skal lave et system med en arkitektur, man har prøvet at bygge mange gange før, men hvor f.eks. den teknologi, der er valgt til grænsefladen eller databasen er helt ny, kan man med fordele forsøge at reducere usikkerheden for hele projektet, ved at starte med at den komponent. Arkitekturen ved man jo, at man behersker. Hvis man omvendt skal lave et system, hvor man ikke har en god ide om arkitekturen, så skal man måske starte med et lave et antal prototyper på forskellige arkitekturer. Hertil kommer alle de lavpraktiske faktorer, som gør sig gældende i hverdagen: hvornår får vi databasen leveret? Hvornår er vores grafiske designere ledige? Har vi komponenter fra andre projekter, vi kan genbruge? Har vi et hold af meget erfarne udviklere eller består holdet af nybegyndere, der skal læres op, mens vi udvikler? Øvelse: Prøv at tænke på sidste gang du skulle konstruere, bygge eller skabe noget. Det kan f.eks. være et kaninbur, et hus i Sim City, lægge make-up, skrive en dansk stil, eller lave en projektrapport fra et gruppearbejde. Arbejdede du/i efter en vandfaldsmodel? En spiralmodel? Arbejdede du/i Top-Down? Bottom-Up? Var det et fornuftigt valg? Hvorfor (ikke)? Eksempler I det følgende karakteriserer og eksemplificerer vi anvendelsen af modellering i centrale dele af itfaget: programmering, repræsentation, samt arkitektur. Programmering Når man programmerer, laver man en model (kaldet kildekoden, source code) af en programudførsel, som man giver til et andet (specielt) program, oversætteren (compileren eller fortolkeren). Oversætteren oversætter så kildekoden fra programmeringssprog (som programmører kan læse og skrive) til maskinsprog (som en computer kan læse og skrive). Herefter kan programmet (nu udtrykt i maskinsprog) udføres direkte på computeren. I praksis kan denne proces bestå af flere forskellige trin, hvor repræsentationen af et program gradvist og trinvist oversættes til noget, der er mere maskinnært. Selve det at programmere er derfor en form for modellering. Repræsentation og digitalisering Når vi arbejder med it, så arbejder vi også ganske ofte med en lidt anden betydning af ordet modeller end det som vi fokuserer på i denne note - nemlig de tilfælde hvor vores informationssystem - vores - software - indeholder en model af et problemområde. Typisk så indeholder et system en model af det område, som systemet skal bruges til at kontrollere, overvåge, eller styre. Dette kaldes ofte problemområdet. F.eks. indeholder et banksystem en (mere eller mindre eksplicit) model af kunder, konti, renter, indsættelser, udbetalinger, saldi, osv. Et system til simulering og træning af hjerte- eller ørekirurgi indeholder en model af væv, knogler, blodbaner, osv. En social medie applikation såsom twitter eller Facebook indeholder en model af profiler, chatbeskeder, wallposts, reklamer, osv. Side 15 af 19

16 Et sportsspil som FIFA indeholder komplicerede modeller af fysiske legemer og bevægelser, såsom spillere (med arme og ben), bold og bane, såvel som modeller af spillernes samarbejde, taktikker, og strategier for de enkelte hold og dele af holdene. Denne type af modeller repræsenterer fænomener og begreber fra den virkelige eller imaginære verden. Repræsentationen (modellen) kan være lavet på baggrund af en digitalisering af virkelige fænomener fra den virkelige verden, eller den kan være baseret på forestillinger om, hvordan vi tror - i følge videnskaben og de pt. gængse teorier - fænomenerne er opbyggede og indbyrdes relaterede. Arkitektur Arkitektur handler om strukturen af it-systemer, og der findes mange forskellige varianter og forståelser af arkitekturbegrebet: man kan tale om applikations-arkitektur, som er strukturen af individuelle systemer, om informations-arkitektur, der handler om strukturen af data (repræsentationer), om system-arkitektur, der handler om strukturen ml. en familie af sammenhængende systemer, osv. Fælles for dem alle er, at når man anvender et arkitektursyn på it, så fokuserer man på strukturen og interaktionen mellem delene (og ikke på selve komponenterne, modulerne, programmerne). Grunden til at dette er vigtigt, er at man erfaringsmæssigt har erkendt, at når et system bliver sat i drift, så kommer der uværgeligt rettelser og tilføjelser til systemerne. Hvis systemet har en uhensigtsmæssigt struktur, så bliver det ofte vanskeligt at vedligeholde disse systemer. Nogle gange så vanskeligt, at man må skrotte et system, og lave et helt nyt, hvilket er dyrt. Omvendt, hvis systemet har en god arkitektur - typisk beskrevet som løs kobling mellem delene - så er det nemmere at vedligeholde systemet. Naturligvis har UML et omfattende beskrivelsesapparat til at modellere arkitektur - faktisk fra en hel række (typisk 4 eller 5) forskellige synsvinkler (ofte kaldet views). I denne note vil vi dog gå lidt mere praktisk og pædagogisk til værks, idet vi vil beskæftige os med en helt generel model for arkitektur, som kan være vældig nyttig, når man skal forstå, bruge, ændre, eller skabe systemer. Modellen er således ikke specifik for et bestemt konkret system, men er generel anvendelig som mental model (forståelse) af alle systemer. Modellen opdeler et system i 3 dele: grænseflade, funktionalitet, repræsentation 7, i det følgende benævnt G, F, og R. Grænsefladen er den del af systemet (af koden), som brugeren (eller andre eksterne systemer) kommunikerer med. Tænk på knapper, vinduer, scroll-barer, indtastningsfelter - alt det som du kan navigere rundt i med mus og tastatur på en pc eller med fingrene på en smartphone. Repræsentationen er den del af systemet (koden), som indeholder repræsentationerne af det som systemet handler om - dataene. Hvis det er en musik-app vi kigger på, så drejer det sig om selve musiknumrene, som de er gemt i systemet, og hvad der ellers er gemt af yderligere information i forbindelse med disse musiknumre: coverbillede, titel, albumtitel, kunstner, længde, kvalitet, genre, antal afspilninger, osv. Funktionaliteten er den del af systemet (koden), som typisk indeholder algoritmerne for det som vi ønsker at gøre ved vores data. Hvis det f.eks. er et program til at lave ringetoner med, vi kigger på, så er der typisk funktioner til at udvælge, redigere og gemme lyden: vælge en del ud, ændre lydstyrken, lave ekko, ændre pitch, sætte delen ind på et andet tidspunkt i nummeret, lave loops, osv. Øvelse: Hvorfor tror du disse 3 aspekter typisk er adskilt fra hinanden i et system? 7 Repræsentationen kaldes ofte for modellen, idet den er en model af systemets problemområde, men det forvirrer begreberne i forhold til det, vi indtil videre har sagt om modeller og modellering. Side 16 af 19

17 Ovenfor har vi ikke taget stilling til, hvor systemdelen (koden) rent fysisk befinder sig: om det hele er placeret på samme computer eller fordelt på flere forskellige maskiner. Der er nemlig flere muligheder. Betragt figur 7 nedenfor. Figur 7: Logisk versus fysisk opdeling af systemdele. Figuren viser to klassiske mønstre i arkitektur. Til venstre har vi ideen om lagdeling, hvor vi har opdelt et system i grænseflade, funktionalitet, og repræsentation, som forklaret tidligere. Til højre har vi ideen om klienter og servere: pointen i dette mønster er, at en række forskellige brugere af systemet kan benytte hver deres klient til at forbinde sig til og kommunikere med en fælles server. Dels betyder det, at flere brugere kan bruge deres klienter samtidigt (uden at skulle slås om tastatur og skærm), dels betyder det, at brugerne og klienterne kan være geografisk distribuerede. Forskellige kombinationer af disse to simple mønstre giver en god forståelse for mange af de systemer, vi bruger i det daglige. Betragt Figur 8. De grønne kasser er klienter, de blå er servere, og de røde er vores forskellige logiske systemdele (G, F, R). Figur 8: Varianter af distribuerede systemer. I a-varianten har vi alle tre systemdele kørende på samme computer. Et eksempel er applikationerne fra officepakken, hvor vi kan bruge henholdsvis Word, Powerpoint, og Excel isoleret på vores egen maskine uden at være på nettet. I b-varianten har vi vores grænsefladekomponent placeret på en klient, hvorimod funktionaliteten og repræsentationen er placerede på en server. Dette er typisk for mange web-baserede systemer, at Side 17 af 19

18 vi har vores browser kørende på vores egen computer, men at vi så kan koble op på en webside, der tilbyder noget funktionalitet og noget data vi kan arbejde på. F.eks. Facebook. I c-varianten har vi både grænsefladen og funktionaliteten placeret på vores egen klient. Hvis du har prøvet at arbejde med et fællesdrev, som bruges til at dele dokumenter og filer på en skole eller en arbejdsplads, så kender du også denne variant. Dette gælder f.eks. hvis du bruger Word til at rette i et dokument som ligger på et fællesdrev. Eller hvis du har adgang til en database, som du kan bruge eller opdatere. Hvis du har prøvet dette, så kender du også fornemmelsen, når netværksforbindelsen mistes - enten pga. en fejl, eller fordi du sidder i sommerhuset uden internet og skulle have lagt sidste hånd på en opgave, der skulle afleveres i morgen. Endelig er der d-varianten, som skal forstås på den måde, at repræsentationen (vores data) er fordelt på både klient og server. Dette kender du sikkert fra de mange såkaldte cloud-baserede services, som er dukket op de senere år: Google Drive, Microsoft Skydrive, Apple s icloud, eller DropBox. Her er idéen, at man kan arbejde videre på sine data, selv om man ikke har netforbindelse. Klientcomputeren (f.eks. din bærbare) opretholder nemlig en lokal kopi af dine data fra serveren, som du altid kan arbejde på. Når computeren så igen får netforbindelse, så opdaterer den automatisk både din lokale kopi (hvis der er ændringer på serveren, f.eks. fra andre brugere af DropBox, som har uploadet nye filer til jeres delte dropbox) og serveren (hvis du har ændret i eller oprettet nye dokumenter i din lokale kopi af jeres dropbox). Dropbox synkroniserer således klienter og serveren. Øvelse: Vælg en håndfuld applikationseksempler, som du kender fra pc/mac, ipads, og smartphones. Overvej for hver enkelt applikation, hvilken af varianterne a-d du tror, der bliver anvendt. For hver variant a-d, overvej fordele og ulemper ved denne arkitektur. Overvej om der er flere varianter end de nævnte a-d. Referencer (BETA, 1993) Madsen, O. L., Møller-Pedersen, B., and Nygaard, K.: Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, (CiC, 1993) Dahlbom, Bo and Mathiassen, Lars: Computers in Context. Blackwell Publishing, (Lindgreen, 1990) Lindgreen, P.: Systemanalyse. Jurist- og Økononomforbundets Forlag, Side 18 af 19

19 Appendix A: Modelleringskompetencer Vi skelner mellem tre forskellige former for kompetence i arbejdet med modeller: Anvendelseskompetence. Man kan forstå og anvende en model. o Eksempelvis at man kan læse og forstå dele af et UML klassediagram. Ændringskompetence. Man kan forstå, anvende og ændre/modi>icere en model under vejledning og instruktion. Jvf. ideerne om faded guidance og scaffolding. o Eksempelvis at man kan forstå en E/R- model og ændre udvalgte dele af denne så resultatet er korrekt syntaktisk og semantisk. Skaberkompetence. Man kan anvende, ændre og skabe nye modeller. o Eksempelvis at man kan udforme et UML sekvensdiagram, der udtrykker samarbejdet mellem en række objekter. Vi skelner yderligere mellem tre typer af ændringskompetencer: Konkretisering. At gøre en abstrakt model mere konkret. o Eksempelvis at erstatte abstrakte klasser med konkrete klasser i et klassediagram. Udvide. At tilføje noget til en model. o Eksempelvis at tilføje klasser til et klassediagram. Restrukturere. At ændre modellen, så den funktionelt udtrykker det samme, men udtrykker ændrede ikke- funktionelle egenskaber. o Eksempelvis at indføre en række design patterns i sit klassediagram. Side 19 af 19

Lærervejledning til undervisningsforløbet. Det digitale spejl

Lærervejledning til undervisningsforløbet. Det digitale spejl Lærervejledning til undervisningsforløbet Det digitale spejl Introduktion Det digitale spejl er et undervisningsforløb om net- etikette og digital adfærd. De traditionelle informationskanaler som fx aviser

Læs mere

Objektorienteret Analyse & Design

Objektorienteret Analyse & Design Objektorienteret Analyse & Design Lars Mathiassen, Andreas Munk-Madsen, Peter Axel Nielsen og Jan Stage ISBN: 87-7751-153-0 Udgave: 3. udgave Udgivelsesår: 2001 Antal sider: 452 Pris: Kr. 410,00 På de

Læs mere

It- fagets metoder, version 0.3

It- fagets metoder, version 0.3 It- fagets metoder, version 0.3 Et notat der beskriver it- fagenes metoder med specielt fokus på det nye forsøgsfag informationsteknologi i de gymnasiale uddannelser: stx, hhx, htx og hf. Michael E. Caspersen

Læs mere

2 Abstrakte datatyper.

2 Abstrakte datatyper. 2 Abstrakte datatyper. Motivere eksempel: top-down udvikling af program 'mini-bank' Strukturering af et program: efter data eller funktion? Definition af en abstrakt datatype og tilknyttede begreber. Fænomener,

Læs mere

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau Roskilde Tekniske Gymnasium Eksamensprojekt Programmering C niveau Andreas Sode 09-05-2014 Indhold Eksamensprojekt Programmering C niveau... 2 Forord... 2 Indledning... 2 Problemformulering... 2 Krav til

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

WWW. Forslag til integreret digitalt værk ved Det Informationsvidenskabelige Akademi på KUA3 Udarbejdet af Jacob Nielsen 2013

WWW. Forslag til integreret digitalt værk ved Det Informationsvidenskabelige Akademi på KUA3 Udarbejdet af Jacob Nielsen 2013 WWW Forslag til integreret digitalt værk ved Det Informationsvidenskabelige Akademi på KUA3 Udarbejdet af Jacob Nielsen 2013 Arbejdstitel: "Internet på hovedet" Projektet tager udgangspunkt i det formelt

Læs mere

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang.

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Den tekniske platform Af redaktionen Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Teknologisk udvikling går således hånd i hånd med videnskabelig udvikling.

Læs mere

Udfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling

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

Læs mere

ipad for let øvede, modul 10 ipad og Computer

ipad for let øvede, modul 10 ipad og Computer 17112014AS ipad for let øvede modul 10 ipad og computer Indledning I dette modul gennemgås nogle af de muligheder, der er for samspil mellem computeren og ipad'en. På ipad'en findes app'en itunes Store.

Læs mere

ipad for let øvede, modul 8 Underholdning på ipad Læsning

ipad for let øvede, modul 8 Underholdning på ipad Læsning 12052014AS ipad for let øvede modul 8 Underholdning på ipad Læsning I dette modul vil vi beskæftige os med nogle af de muligheder, der er for at læse på ipad'en. Aviser/dagblade Vi har i modul 2 vist,

Læs mere

Studieordning del 4-2014

Studieordning del 4-2014 Studieordning del 4-2014 Fagbeskrivelser Datamatiker AP Graduate in Computer Science Version 1.1 Revideret august 2014 Side 0 af 8 Indhold del 4 Fagbeskrivelser 1. Faget Programmering (PRO)...2 2. Faget

Læs mere

Pædagogisk IT. Vejledning i Office 365 til elever og deres familier. Version 4 Side 1. Kan udfyldes for at hjælpe med at huske

Pædagogisk IT. Vejledning i Office 365 til elever og deres familier. Version 4 Side 1. Kan udfyldes for at hjælpe med at huske Navn: Uni-login: Uni-login kode: Office365 email: Kan udfyldes for at hjælpe med at huske UNI-LOGIN @undervisning.kk.dk Version 4 Side 1 Indledning Velkommen til denne vejledning i Office 365, som introducerer

Læs mere

kollegiekokkenet.tmpdesign.dk Side 1

kollegiekokkenet.tmpdesign.dk Side 1 kollegiekokkenet.tmpdesign.dk Side 1 Indholdsfortegnelse Forord 3 Problemformulering 4 Udviklingsmetode 5 Tidsplan 6 Målgruppe 7 Design brief 8 Logo 10 Typografi og farve 11 Navigationsdiagram 12 Usecase

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

PRODUKTIONSSTYRING OG -PLANLÆGNING

PRODUKTIONSSTYRING OG -PLANLÆGNING PRODUKTIONSSTYRING OG -PLANLÆGNING Introduktion Er det egentlig præcist at tale om produktion når temaet er spiludvikling? For produktion dufter jo af faste procedurer, kendte milepæle, og definerede krav

Læs mere

It i gymnasiet En ny start

It i gymnasiet En ny start It i gymnasiet En ny start Michael E. Caspersen Center for Scienceuddannelse Aarhus Universitet It for alle It, et alment fag kreativt revolutionerende grænseoverskridende meningsfuldt udbud for alle inspiration

Læs mere

Tilpas: Hurtig adgang

Tilpas: Hurtig adgang Tilpas: Hurtig adgang Genveje, Se skærmtips Se tips Hold alt tasten nede. Og brug bogstaver Word Fanen Filer PDF dokument Brug skabelon Visninger Husk Luk ved fuldskærmsvisning Brug zoom skyder Marker,

Læs mere

VISUEL MIND MAPPING. Visuel Mind Mapping

VISUEL MIND MAPPING. Visuel Mind Mapping Visuel Mind Mapping 5 Visuel Mind Mapping - introduktion Kunne du tænke dig: At have overblik - også i pressede situationer - det gælder som taler, som referent, som mødeleder, i eksamenssituationer eller...?

Læs mere

Mathias Turac 01-12-2008

Mathias Turac 01-12-2008 ROSKILDE TEKNISKE GYMNASIUM Eksponentiel Tværfagligt tema Matematik og informationsteknologi Mathias Turac 01-12-2008 Indhold 1.Opgaveanalyse... 3 1.1.indledning... 3 1.2.De konkrete krav til opgaven...

Læs mere

10-trins raket til logo-design

10-trins raket til logo-design 10-trins raket til logo-design Stjerne-modellen Dette notat er udarbejdet i forbindelse med foredrag og kurser som supplement til bogen Virksomhedens logo. Ideen er, at det skal fungere sammen med bogen,

Læs mere

3. klasse 6. klasse 9. klasse

3. klasse 6. klasse 9. klasse Børne- og Undervisningsudvalget 2012-13 BUU Alm.del Bilag 326 Offentligt Elevplan 3. klasse 6. klasse 9. klasse Matematiske kompetencer Status tal og algebra sikker i, er usikker i de naturlige tals opbygning

Læs mere

INTERAKTIONSDESIGN PROCESSEN (KAP 9), REPETITION, KÅRING AF ÅRETS BEDSTE MUSIKVIDEO OG PROJETK

INTERAKTIONSDESIGN PROCESSEN (KAP 9), REPETITION, KÅRING AF ÅRETS BEDSTE MUSIKVIDEO OG PROJETK INTERAKTIONSDESIGN PROCESSEN (KAP 9), REPETITION, KÅRING AF ÅRETS BEDSTE MUSIKVIDEO OG PROJETK Marianne Graves Petersen Associate Professor Computer Science Dept, University of Aarhus Center for Interactive

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

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

Hvor og hvordan kan man være tilstede på nettet?

Hvor og hvordan kan man være tilstede på nettet? Hvor og hvordan kan man være tilstede på nettet? 1) Den klassiske tilstedeværelse Visitkort hele pakken blogs Fora Netbutik Distribueret indhold 2) De sociale medier Facebook LinkedIn Twitter Faglige blogs

Læs mere

Velkommen til IT for let øvede

Velkommen til IT for let øvede Velkommen til IT for let øvede at dias ligger på hjemmesiden, så I kan se dem igen hjemme. Peter har ordet Blev vi færdige med vinduerne?? Øvelse tastatur og mus vi ikke kunne sidste gang får I som hjemmeopgave

Læs mere

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel 1 1. udgave som E-bog 2007 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt

Læs mere

Simulering af stokastiske fænomener med Excel

Simulering af stokastiske fænomener med Excel Simulering af stokastiske fænomener med Excel John Andersen, Læreruddannelsen i Aarhus, VIA Det kan være en ret krævende læreproces at udvikle fornemmelse for mange begreber fra sandsynlighedsregningen

Læs mere

Selam Friskole Fagplan for Matematik

Selam Friskole Fagplan for Matematik Selam Friskole Fagplan for Matematik Formål Formålet med undervisningen er, at eleverne udvikler matematiske kompetencer og opnår viden og kunnen således, at de bliver i stand til at begå sig hensigtsmæssigt

Læs mere

Kom godt igang med OpenMeetings

Kom godt igang med OpenMeetings Kom godt igang med OpenMeetings Kom godt igang med OpenMeetings Side 2 Indholdsfortegnelse 1. Log på / Registrer dig... 3 1.1 Find Forsvarets Elektroniske Skole på internettet... 3 1.2 Login skærmen...

Læs mere

Indholdsoversigt. Emne. Side

Indholdsoversigt. Emne. Side Indholdsoversigt Emne o Log-in på din Idify Tidslinje Åben Idify Timeline på din ipad Indtast dine log-in oplysninger o Navigation af din tidslinje Tidslinjens oversigt Åbne Favorit erindring Navigér og

Læs mere

Paradigmer. Hvilket paradigme holder dig fast? Hvilke nye paradigmer er du på vej hen mod?

Paradigmer. Hvilket paradigme holder dig fast? Hvilke nye paradigmer er du på vej hen mod? Paradigmer Fastlåst eller innovativ? Hvem er lyst til det første? Vi vil vel alle gerne være innovative? Alligevel kan vi opleve, at vi også selv sidder fast i nogle mønstre og har svært ved at komme ud

Læs mere

ipad let øvede, modul 10

ipad let øvede, modul 10 12052014AS ipad for let øvede modul 10 Underholdning på ipad TV og Podcasting Der er mange muligheder for underholdning på ipad'en: I dette modul gennemgås, hvordan man kan se TV, høre eller se podcasts

Læs mere

Evaluering af matematik undervisning

Evaluering af matematik undervisning Evaluering af matematik undervisning Udarbejdet af Khaled Zaher, matematiklærer 6-9 klasse og Boushra Chami, matematiklærer 2-5 klasse Matematiske kompetencer. Fællesmål efter 3.klasse indgå i dialog om

Læs mere

Teknologianvendelse. - En overset ledelsesopgave. Af Christine Secher, Villa Venire A/S Marts 2013

Teknologianvendelse. - En overset ledelsesopgave. Af Christine Secher, Villa Venire A/S Marts 2013 Teknologianvendelse - En overset ledelsesopgave Af Christine Secher, Villa Venire A/S Marts 2013 Udviklingen i retning af smarte, selvbetjente it-løsninger accelererer overalt i frontlinien, hvor borgere

Læs mere

Diagrammer visualiser dine tal

Diagrammer visualiser dine tal Diagrammer visualiser dine tal Indledning På de efterfølgende sider vil du blive præsenteret for nye måder at arbejde med Diagrammer på i Excel. Vejledningen herunder er vist i Excel 2007 versionen, og

Læs mere

Introduktion. I denne vejledning 1 finder du nogle af de muligheder, Elevintra har. Flere følger senere. Login

Introduktion. I denne vejledning 1 finder du nogle af de muligheder, Elevintra har. Flere følger senere. Login Introduktion Elevintra er et samarbejdsværktøj for skolens elever og lærere. Det er web-baseret, hvilket betyder at du kan logge dig på hvilken som helst pc, bare der er Internet-adgang. I denne vejledning

Læs mere

Bilag H: Transskription af interview d. 14. december 2011

Bilag H: Transskription af interview d. 14. december 2011 : Transskription af interview d. 14. december 2011 Interviewer (I) 5 Respondent (R) Bemærk: de tre elever benævnes i interviewet som respondent 1 (R1), respondent 2 (R2) og respondent 3 (R3). I 1: jeg

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 3: E-R modellering 17. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvornår, hvorfor og hvordan? Business

Læs mere

Computerspil rapport. Kommunikation og IT. HTX Roskilde klasse 1.4. Casper, Mathias Nakayama, Anders, Lasse og Mads BC. Lærer - Karl Bjarnason

Computerspil rapport. Kommunikation og IT. HTX Roskilde klasse 1.4. Casper, Mathias Nakayama, Anders, Lasse og Mads BC. Lærer - Karl Bjarnason Computerspil rapport Kommunikation og IT HTX Roskilde klasse 1.4 Casper, Mathias Nakayama, Anders, Lasse og Mads BC Lærer - Karl Bjarnason Indledning Vi har lavet et computerspil i Python som er et quiz-spil

Læs mere

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0 SmartFraming Et vindue til nationale sundhedssystemer Version 3.0 Infrastruktur i dagens sundheds IT Det sundhedsfaglige personale benytter sig i dag af en række forskellige systemer i forbindelse med

Læs mere

Computerundervisning

Computerundervisning Frederiksberg Seminarium Computerundervisning Koordinatsystemer og Funktioner Lærervejledning 12-02-2009 Udarbejdet af: Pernille Suhr Poulsen Christina Klitlyng Julie Nielsen Indhold Introduktion... 3

Læs mere

Italien spørgeskema til sproglærere dataanalyse

Italien spørgeskema til sproglærere dataanalyse Italien spørgeskema til sproglærere dataanalyse Dig selv 1. 32 sproglærere har besvaret spørgeskemaet, 15 underviser på mellemtrinnet, 17 på ældste trin. 2. 23 underviser i engelsk, 6 i fransk, 3 i tysk,

Læs mere

Uge 5.3: (Search,) Select & implement and development methods

Uge 5.3: (Search,) Select & implement and development methods Innovationsprocesser Uge 5.3: (Search,) Select & implement and development methods A A R H U S U N I V E R S I T E T Department of Computer Science 1 Innovation & ICT development *** Innovation *** * ***

Læs mere

Brugervenligt webdesign

Brugervenligt webdesign Brugervenligt webdesign 2. udgave Af Rolf Molich 3 Brugervenligt webdesign 2. udgave, 1. oplag 2003 Copyright 2003 Ingeniøren bøger, Ingeniøren A/S Forlagsredaktion: Peter Bjerre Rosa og Peter Græbe Omslag:

Læs mere

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN 5. OPSÆTNING DOKUMENTSKABELONER Under fanen Dok. skabeloner kan du arbejde med de skabeloner som du har i systemet, eller du kan oprette nye. I denne vejledning kigger vi på hvordan du kan tilrette selve

Læs mere

om YouTube og barcodes i undervisningen

om YouTube og barcodes i undervisningen Broadcast yourself om YouTube og barcodes i undervisningen På dette mediacard skal vi arbejde med video og videodokumentation af faglige emner i undervisningen, som skal deles på YouTube og omsættes til

Læs mere

Elevvejledning til SkoleKomNet - Min egen hjemmeside

Elevvejledning til SkoleKomNet - Min egen hjemmeside Indledning...1 Sådan får du adgang...2 Dit KlasseWeb skrivebord Overblik...2 Dit arbejdsområde...3 Din hjemmeside på nettet...3 Sådan laver du en hjemmeside i 4 trin...3 Trin 1 Dit personlige billede på

Læs mere

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger Kompetenceområde Efter klassetrin Efter 6. klassetrin Efter 9. klassetrin Matematiske kompetencer handle hensigtsmæssigt i situationer med handle med overblik i sammensatte situationer med handle med dømmekraft

Læs mere

Basicon Nodepult. Basicon Nodepult er den moderne afløser for det traditionelle nodestativ, men har derudover en lang række fordele:

Basicon Nodepult. Basicon Nodepult er den moderne afløser for det traditionelle nodestativ, men har derudover en lang række fordele: Basicon Nodepult Programmet Basicon Nodepult henvender sig til musikere, som ofte har behov for at medbringe deres forskellige nodesamlinger til forskellige orkestre. Basicon Nodepult er den moderne afløser

Læs mere

Når du har logget dig ind, ser du Randers Kommunes byvåben midt på siden. I venstre side er der en række mapper:

Når du har logget dig ind, ser du Randers Kommunes byvåben midt på siden. I venstre side er der en række mapper: DXP vejledning Generelt: DXP er et værktøj til at fremstille præsentationsmaterialer (foldere, brochurer, løbesedler mv.) DXP egner sig kun til mindre brochurer og lign., da den største skabelon kan rumme

Læs mere

XProtect-klienter Tilgå din overvågning

XProtect-klienter Tilgå din overvågning XProtect-klienter Tilgå din overvågning Tre måder at se videoovervågning på For at skabe nem adgang til videoovervågning tilbyder Milestone tre fleksible brugergrænseflader: XProtect Smart Client, XProtect

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Silkeborg Review Mine sider

Silkeborg Review Mine sider Silkeborg Review Mine sider Datagrundlag Det er vigtigt, at de informationer man viser kan hentes let (hurtigt) fra bibliotekssystemet eller Brønden. Det vil betyde rigtig meget for hastighed i præsentationen

Læs mere

VELKOMMEN 3. KOM GODT I GANG 4 Log ind 5 Kontrolpanel 6 Tilpas profil 7 Tilknyt hold 8 Tilknyt fag 9

VELKOMMEN 3. KOM GODT I GANG 4 Log ind 5 Kontrolpanel 6 Tilpas profil 7 Tilknyt hold 8 Tilknyt fag 9 VEJLEDNING 1.0 Indhold VELKOMMEN 3 KOM GODT I GANG 4 Log ind 5 Kontrolpanel 6 Tilpas profil 7 Tilknyt hold 8 Tilknyt fag 9 SÅDAN OPRETTER DU EN QUIZ 10 Quiz info 11 Tilføj spørgsmål 12 Tilføj formel til

Læs mere

Indhold. 1. Adgang og afslutning

Indhold. 1. Adgang og afslutning 1 Indhold 1. Adgang og afslutning 2. Menupunkter 3. Tekst 4. Billeder 5. Video 6. Lyd 7. Bannere 8. Bokse 9. Dokumenter 10. Links 11. Iframe 12. Markedspladsen 13. Nyheder 14. Job 15. Kalender 16. Selvbetjeningsbjælken

Læs mere

Edb-tekstbehandling, præsentation mm

Edb-tekstbehandling, præsentation mm Edb-tekstbehandling, præsentation mm I denne lektion skal du: - hente kopier et skærmbillede og sætte det ind i et dokument - beskære billedet, så det passer til dit dokument Der findes specielle programmer

Læs mere

ipad for let øvede, modul 8 Underholdning på ipad Læsning

ipad for let øvede, modul 8 Underholdning på ipad Læsning 23012015AS ipad for let øvede modul 8 Underholdning på ipad Indledning I dette modul vil vi beskæftige os med nogle af de muligheder, der er for at læse på ipad'en. Aviser/dagblade Vi har i modul 2 vist,

Læs mere

Gratis kontorpakke til din tablet

Gratis kontorpakke til din tablet OPRET, REDIGER OG LÆS DOKUMENTER PÅ DIN TABLET: Gratis kontorpakke til din tablet DET FÅR DU OVERBLIK SVÆRHEDSGRAD Let Middel Svær Tekstbehandling Præsentation Regneark FOR ENHEDER MED Android ios (Apple)

Læs mere

Indholdsfortegnelse for kapitel 1

Indholdsfortegnelse for kapitel 1 Indholdsfortegnelse for kapitel 1 Forord.................................................................... 2 Kapitel 1.................................................................. 3 Formål............................................................

Læs mere

Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering

Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering Oversigt Modellering Begrebsmodellering, UML og Java Begrebsapparat til objektorientering Begrebsopfattelser og -modellering Strukturer: specialisering, aggregering, associering Anvendes til organisering

Læs mere

GRUNDLÆGGENDE TEORI LIGE FRA HJERTET

GRUNDLÆGGENDE TEORI LIGE FRA HJERTET GUIDE 1 Blænde ISO Lukkertid Eksponeringsværdi. og lidt om, hvordan de hænger sammen GRUNDLÆGGENDE TEORI LIGE FRA HJERTET 2015 LÆRfoto.dk Indhold Indhold... 2 Indledning... 3 Blænde... 4 Blænde og dybdeskarphed...

Læs mere

Første del: indsatsen

Første del: indsatsen Første del: indsatsen Beskriv den indsats I vil sætte i gang Hvilke konkrete aktiviteter består jeres indsats af, og hvem skal gøre hvad? Elever i 5.a skal arbejde med emnet design Et tværfagligt forløb

Læs mere

portal.microsoftonline.com

portal.microsoftonline.com Office Online Office Online er et supplement til Officepakken, som du har liggende på computeren. Office Online ligger i skyen og åbnes i din webbrowser på adressen: portal.microsoftonline.com Du skal

Læs mere

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

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

Læs mere

Facebook Timeline FACEBOOK TIMELINE KOMPLET GUIDE TIL FACEBOOK TIMELINE. Udarbejdet af Kasper Ebsen webdanmark.com

Facebook Timeline FACEBOOK TIMELINE KOMPLET GUIDE TIL FACEBOOK TIMELINE. Udarbejdet af Kasper Ebsen webdanmark.com Facebook Timeline KOMPLET GUIDE TIL FACEBOOK TIMELINE Udarbejdet af Kasper Ebsen webdanmark.com W EBDANMARK.COM APS T: +45 7020 1619 CVR 25 85 88 32 SØNDERHØJ 7 DK- 8260 VIBY J F: +45 7020 1629 INFO@W

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

Rudme-modellen : fra idemøder til kaffeklubber. En metode til kickstart af innovativ kultur i enhver landsby. v/ Ryslinge Innovationshøjskole

Rudme-modellen : fra idemøder til kaffeklubber. En metode til kickstart af innovativ kultur i enhver landsby. v/ Ryslinge Innovationshøjskole Rudme-modellen : fra idemøder til kaffeklubber En metode til kickstart af innovativ kultur i enhver landsby v/ Ryslinge Innovationshøjskole RUDME-MODELLEN - introduktion I den lille landsby Rudme har man

Læs mere

Guide til elektronisk retning

Guide til elektronisk retning Guide til elektronisk retning Jens Sveistrup, Gl. Hellerup Gymnasium Elektronisk aflevering er med elevernes større anvendelse af computer i undervisningen og med Lectios store udbredelse blevet mere og

Læs mere

SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION

SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION SÅDAN BRUGER DU TEKST- BEHANDLING INTRODUKTION I vejledningen bruger vi det gratis program Writer fra OpenOffice som eksempel til at vise, hvordan man bruger nogle helt grundlæggende funktioner i tekstbehandling.

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

Gruppe: 2 Hold: MulB Årgang 2013 Lærere: Merete Geldermann Lützen & Jesper Hinchely

Gruppe: 2 Hold: MulB Årgang 2013 Lærere: Merete Geldermann Lützen & Jesper Hinchely Bannerpage: http://spicegirls.creativefolder.dk/bannerpage/ Landingpage: http://spicegirls.creativefolder.dk/ René Skovgaard Andersen cph-ra73@cphbusiness.dk Stig Hamborg Nielsen cph-sn9@cphbusiness.dk

Læs mere

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393.

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Broer, skak og netværk Side 1 af 6 Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Eksempler på praktiske anvendelser af matematik og nogle uløste problemer Indledning Figur

Læs mere

Sådan kommer du i gang med at bruge video

Sådan kommer du i gang med at bruge video Sådan kommer du i gang med at bruge video INDHOLD INDLEDNING... 3 DERFOR SKAL DU I GANG MED AT BRUGE VIDEO... 4 OVERVEJELSER... 5 SOCIALE MEDIER... 5 YOUTUBE... 6 OPDATER OFTE... 6 UDSTYR... 6 HVAD SÅ

Læs mere

Formål + ønsket resultat : Dagen gennemgås, så deltagerne er klar til at gå i kødet på opgaverne.

Formål + ønsket resultat : Dagen gennemgås, så deltagerne er klar til at gå i kødet på opgaverne. Drejebog, dagsforløb Herunder finder du en drejebog til et dagsforløb i Mobil Lab 3. Det er en drejebog for hvordan et forløb kan se ud, med 6 klokketimer til rådighed. Du har måske lidt mere eller lidt

Læs mere

Matematik i AT (til elever)

Matematik i AT (til elever) 1 Matematik i AT (til elever) Matematik i AT (til elever) INDHOLD 1. MATEMATIK I AT 2 2. METODER I MATEMATIK OG MATEMATIKKENS VIDENSKABSTEORI 2 3. AFSLUTTENDE AT-EKSAMEN 3 4. SYNOPSIS MED MATEMATIK 4 5.

Læs mere

Digital læring - Kurser efterår 2015

Digital læring - Kurser efterår 2015 www.taarnbybib.dk Digital læring - Kurser efterår 2015 Tårnby Kommunebiblioteker Velkommen til Tårnby Kommunebibliotekers kurser Vil du gerne lære om det nye Windows styresystem, se hvad en 3D-printer

Læs mere

Onsdags-workshops foråret 2014

Onsdags-workshops foråret 2014 Onsdags-workshops foråret 2014 Hver onsdag kl.15-17 Alle workshops er gratis 15. Januar: Google konto til meget mere end g-mail 22. januar: Google Chrome browseren fra Google 29. januar: NemID, borger.dk

Læs mere

Mundtlig matematik. - et udviklingsarbejde Startet på Skovshoved Skole fortsætter her. Ikke bare en proces, men i proces..

Mundtlig matematik. - et udviklingsarbejde Startet på Skovshoved Skole fortsætter her. Ikke bare en proces, men i proces.. Mundtlig matematik - et udviklingsarbejde Startet på Skovshoved Skole fortsætter her. Ikke bare en proces, men i proces.. Hjørring 7. sep. 2012 Line Engsig matematikvejleder på Skovshoved Skole og Mikael

Læs mere

Assertiv kommunikation hos os

Assertiv kommunikation hos os Assertiv kommunikation hos os Formål: Varighed: Deltagere: Formålet med øvelsen er at introducere en virksom tilgang til kommunikation, der kan styrke den enkeltes evne til og mod på at udtrykke følelser,

Læs mere

Fagligt indhold. Oplæg fra underviser Ar)kel Film Del af fagbog. Rammesætning. Indhold Form Evt. midler Distribu)on Deadline(s) Produk)on

Fagligt indhold. Oplæg fra underviser Ar)kel Film Del af fagbog. Rammesætning. Indhold Form Evt. midler Distribu)on Deadline(s) Produk)on En didaktisk model til ipadagogik Fagligt indhold Oplæg fra underviser Ar)kel Film Del af fagbog Rammesætning Indhold Form Evt. midler Distribu)on Deadline(s) Kobling )l praksis Produk)on Individuelt Gruppe

Læs mere

Få din egen hjemmeside

Få din egen hjemmeside I dette afsnit lærer du at bygge din egen hjemmeside tilføje tekst og billeder lave dit eget design lægge en baggrund på hjemmesiden I næste nummer får du hjælp til at bygge en større hjemmeside til en

Læs mere

TEKNISK GYMNASIUM HTXHJØRRING HTX TEKNISK GYMNASIUM HJØRRING 2015. eucnord.dk

TEKNISK GYMNASIUM HTXHJØRRING HTX TEKNISK GYMNASIUM HJØRRING 2015. eucnord.dk TEKNISK GYMNASIUM HTXHJØRRING HTX TEKNISK GYMNASIUM HJØRRING 2015 eucnord.dk Velkommen til HTX Hjørring Studieforberedelse og almendannelse Teknisk Gymnasium tilbyder et fællesskab, hvor aktiviteterne

Læs mere

Excel tutorial om indekstal og samfundsfag 2008

Excel tutorial om indekstal og samfundsfag 2008 Excel tutorial om indekstal og samfundsfag 2008 I denne note skal vi behandle data fra CD-rommen Samfundsstatistik 2008, som indeholder en mængde data, som er relevant i samfundsfag. Vi skal specielt analysere

Læs mere

INDHOLDSFORTEGNELSE. Windows 8.1... 5. KAPITEL ET... Den nye brugergrænseflade. KAPITEL TO... 23 Internet, e-mail, kontakter og kalender

INDHOLDSFORTEGNELSE. Windows 8.1... 5. KAPITEL ET... Den nye brugergrænseflade. KAPITEL TO... 23 Internet, e-mail, kontakter og kalender INDHOLDSFORTEGNELSE Windows 8.1... 5 KAPITEL ET... Den nye brugergrænseflade Sådan får du Windows 8.1 på din pc... 8 Startskærmen... 9 Skrivebordet... 10 Kvikguide til den nye brugergrænseflade... 11 Amulet-menuen...

Læs mere

OS X Mavericks Godt i gang med Mac

OS X Mavericks Godt i gang med Mac DANIEL RIEGELS OS X Mavericks Godt i gang med Mac INDHOLDSFORTEGNELSE Indledning... Daniel Riegels KAPITEL ET... Hurtigt i gang med din Mac Skrivebordet... 10 Docken... 11 Alle dine programmer i Launchpad...

Læs mere

it-undervisning Se mere på hjemmesiden www.it-formidler.dk

it-undervisning Se mere på hjemmesiden www.it-formidler.dk Vejledning i planlægning af it-undervisning Se mere på hjemmesiden www.it-formidler.dk Om vejledningen Vejledningen beskriver kort, hvordan man som underviser, trin for trin, kan planlægge it-kurser efter

Læs mere

Læringsmål ved overgangen fra vuggestue til børnehave (0-3 år)

Læringsmål ved overgangen fra vuggestue til børnehave (0-3 år) Læringsmål ved overgangen fra vuggestue til børnehave (0-3 år) De pædagogiske processer skal lede henimod, at barnet ved slutningen af vuggestuen med lyst har tilegnet sig færdigheder og viden, som sætter

Læs mere

Grundlæggende øvelser til kommunikation og samarbejde

Grundlæggende øvelser til kommunikation og samarbejde Grundlæggende øvelser til kommunikation og samarbejde SkoleKom... 2 Øvelse 1 Start SkoleKom... 2 Øvelse 2 Find en person på SkoleKom... 2 Svar på indlæg... 3 Øvelse 3 Svar på et indlæg i FC-Skole-IT...

Læs mere

Udvikl hver situation til fire øvelser ( formel, funktionel, anvendt spil, anvendt spil i højt tempo )

Udvikl hver situation til fire øvelser ( formel, funktionel, anvendt spil, anvendt spil i højt tempo ) BØRNEAKADEMIET Øvelsesgeneratoren: 1 2 3 4 5 6 Hvad vil du opnå med øvelsen? Hvad er målet? Opstil situationer i spillet, hvor færdigheden bruges Udvikl hver situation til fire øvelser ( formel, funktionel,

Læs mere

Glance - Del din skærm med op. til 200 deltagere. TelefonMøder. Med Glance er du hurtigt og enkelt i gang med at dele din skærm og alle applikationer,

Glance - Del din skærm med op. til 200 deltagere. TelefonMøder. Med Glance er du hurtigt og enkelt i gang med at dele din skærm og alle applikationer, Glance - Del din skærm med op 1 til 200 deltagere. Med Glance er du hurtigt og enkelt i gang med at dele din skærm og alle applikationer, der vises på den med dine mødedeltagere. Fordelene ved at benytte

Læs mere

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW 1. - SUPERBRUGERE OG MEDLEMMER AF RETTIGHEDSGRUPPER -

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW 1. - SUPERBRUGERE OG MEDLEMMER AF RETTIGHEDSGRUPPER - SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW 1. - SUPERBRUGERE OG MEDLEMMER AF RETTIGHEDSGRUPPER - INTRODUKTION TIL SKOLERNES DIGITALE BLANKET FLOW Vi er glade for at kunne byde velkommen til opdateret

Læs mere

Studieordning del 4-2014

Studieordning del 4-2014 Studieordning del 4-2014 Fagbeskrivelser Datamatiker AP Graduate in Computer Science Version 1.2 Revideret januar 2015 Side 0 af 10 Indhold del 4 Fagbeskrivelser 1. Faget Programmering (PRO)...2 2. Faget

Læs mere

Grundforløbsprøve Projektbeskrivelse

Grundforløbsprøve Projektbeskrivelse Grundforløbsprøve Projektbeskrivelse Webintegrator Thomas á Rógvi 221191-2505 Indholdsfortegnelse Opgaven... 3 Tidsplan... 4 Målgruppe... 5 Layout... 6 Design... 7 Fonte... 7 Browser... 7 Bilag... 8 Det

Læs mere

INDHOLDSFORTEGNELSE. Tekstbehandling med Mac... Indledning. KAPITEL ET... 9 Hurtigt i gang med Pages. KAPITEL TO...

INDHOLDSFORTEGNELSE. Tekstbehandling med Mac... Indledning. KAPITEL ET... 9 Hurtigt i gang med Pages. KAPITEL TO... INDHOLDSFORTEGNELSE Tekstbehandling med Mac... Indledning KAPITEL ET... 9 Hurtigt i gang med Pages Anskaf Pages... 10 Opret eller åbn et dokument... 11 Brugerfladen i Pages... 12 Gem dokumenter... 13 Gem

Læs mere

Service Orienteret Arkitektur

Service Orienteret Arkitektur Service Orienteret Arkitektur Datalogisk Institut 22. november 2004 v/ Vidensleverandør Henrik Hvid Jensen, SOA Network henrikhvid@soanetwork.dk (c) SOA Network, 2004 1 Indførelse af et servicelag (c)

Læs mere

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted

Mini SRP. Afkøling. Klasse 2.4. Navn: Jacob Pihlkjær Hjortshøj, Jonatan Geysner Hvidberg og Kevin Høst Husted Mini SRP Afkøling Klasse 2.4 Navn: Jacob Pihlkjær Lærere: Jørn Christian Bendtsen og Karl G Bjarnason Roskilde Tekniske Gymnasium SO Matematik A og Informations teknologi B Dato 31/3/2014 Forord Under

Læs mere

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Matematik i WordMat En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Indholdsfortegnelse 1. Introduktion... 3 2. Beregning... 4 3. Beregning med brøker...

Læs mere

Kontakthierarkier i. Denne vejledning beskriver forskellige måder, man kan præsentere sin myndighed over for borgere og virksomheder

Kontakthierarkier i. Denne vejledning beskriver forskellige måder, man kan præsentere sin myndighed over for borgere og virksomheder Kontakthierarkier i digital post Denne vejledning beskriver forskellige måder, man kan præsentere sin myndighed over for borgere og virksomheder i digital post. Version: 3.0 Udarbejdet: november 2011 Udarbejdet

Læs mere