Hovedopgave. Master i Informationsteknologi. linien i Softwarekonstruktion. Reconstructing architectural dokumentation for BOS.

Størrelse: px
Starte visningen fra side:

Download "Hovedopgave. Master i Informationsteknologi. linien i Softwarekonstruktion. Reconstructing architectural dokumentation for BOS."

Transkript

1 Hovedopgave Master i Informationsteknologi linien i Softwarekonstruktion Reconstructing architectural dokumentation for BOS af 15. juni 2010, studerende Kari Rye Schougård, vejleder 1

2 Indholdsfortegnelse INDHOLDSFORTEGNELSE MOTIVATION PROBLEM FORMULERING METODE Symphony processen Faser Designfasen Udførelsesfasen Viewpoints og mål grupper Andre arkitekturrekonstruktionsmetoder Opsummering Tekniker og metoder Data Gathering Værktøjer Opsummering BAGGRUND AF BOS Brugere af BOS Ordliste Opsummering FØRSTE INTERAKTION Rekonstruktion design Problem Elicitation Opsummering af Problem elicitation aktiviteten Concept Determination Identify Potentially Useful Viewpoints Define Target viewpoints Define Source viewpoints Define mapping rules Determine Role and Viewpoint of Hypothetical Views Opsummering Rekonstruktion udførelse Data Gathering

3 Manual Inspection Databasekomponent over konfigurationsdata...33 Konfigurationsdata og regler...33 Valideringformer...34 Produktvarianter Server delen...35 Pakkediagram over Server delen Klient delen...36 Klassediagram over BOSClient view configuration til MC402 måler Opsummering Observation af applikationens opførsel Struktur af Configate modelkomponent Interaktioner under client-side validering i BOS system Erfaringopsamling ANDEN INTERAKTION Rekonstruktion design Usecases...40 Usecase 1 Konfiguration af måler:...40 Usecase 2 - Gem konfiguration af måler Concept Determination Identify Potentially Useful Viewpoints Define Target viewpoints Define Source viewpoints Define mapping rules Reconstruktion execution Data Gathering Usecase 1 Konfiguration af måler Statisk information over serverkomponent til Multical Dynamisk information over serverkomponent til Multical Statisk information over klientkomponent til Multical Struktur af den grafiske grænseflade Dynamisk information over klientkomponent til Multical Usecase 2 - Gem konfiguration af måler Validering af MC402 modul...51 Dynamisk information Gem MC402 modul...53 Dynamisk information...53 Gem MC402 konfiguration i databasen Information interpretation Opsummering af den anden interaktion Konklusion

4 7. REFERENCES...58 BILLAG 1 (BESKRIVELSE AF BOS ARKITEKTUR) BOS Client...60 BOS Server...60 Prods Server...60 Unix Server

5 1. Motivation I forbindelse med mit nye arbejde på en industri virksomhed, har jeg fået ansvar for et BOS Java framework, som var lavet af et eksternt konsulent firma for flere år siden. Virksomhedens udviklingsafdeling var ikke så stor på det tidspunkt, og det var billigere at købe sig til et system hos et konsulent firma, i stedet for at implementere et selv. Som resultat af købet var der lavet et framework, og udviklet et salgs system, som er livsvigtig for virksomhedens salg og produktion. Samarbejde imellem virksomheden og konsulent firmaet fungerede rigtig godt i alle disse år, og der var stillet en konsulent til rådighed, som har været med til at udvikle frameworket, og som har fået ansvar for vedligeholdelse og videreudvikling af systemet. Det var den eneste person, som havde viden om systemet. Da han blev alvorlig syg en dag, og derefter havde glemt alt det, han havde lavet, opstod der et stort problem for virksomheden. I forbindelse med det, blev der truffet en beslutning om at ansætte sin egen medarbejder, nemlig forfatteren af denne opgave, til vedligeholdelse af frameworket, hvilket var billigere og meget mere effektivt, end at bruge en anden konsulent fra konsulent firmaet, som så skulle lære systemet fra bunden. I øjeblikket eksisterer der kun i meget begrænset omfang arkitekturdokumentation af systemet. Der er behov for løbende udvikling af nye produkter på basis af frameworket, sammen med vedligeholdelse af systemet. Min opgave er at finde ud af, hvordan jeg hurtigt og effektivt kan lære systemet at kende, for at komme i gang med mine arbejdsopgaver. Det sker tit og ofte, når man kommer i en ny virksomhed, at der ikke altid findes tilstrækkelig arkitekturdokumentation af systemet, og derfor opstår der problemer med, hvordan man griber ind. Hvis det er et meget komplekst system, kan det meget nemt tage lang tid at finde ud af det. Det kunne være meget interessant at finde ud af, hvilke videnskabelige metoder vedr. rekonstruering af arkitekturdokumentation der findes til rådighed, hvordan de kan anvendes, og hvor effektive de er. Denne interesse har affødt formuleringen af denne opgaves problemformuleringen som er: En arkitektonisk rekonstruktion af BOS frameworket ved hjælp af Symphony processen. Arkitektur rekonstruktionen drives af behovet for udvikling af et nyt konfigurationsmodul, som skal anvendes ved salg af en ny varmemåler. Erfaringerne med anvendelsen af Symphony processen opsamles og analyseres med henblik på en evaluering." Dette dokument vil fokusere på: anvendelse af Symphony processen til software arkitektur rekonstruktion præsentation af lessons learned evaluering af Symphony processen Denne undersøgelse kan komme til gavn for mange virksomheder, udviklere og studerende, og give gode håndtag til en effektiv løsning af flere udviklings opgaver. 5

6 2. Problem formulering Der er behov for en arkitektonisk rekonstruktion, som kan give mulighed for at få overblik over BOS frameworkets arkitektur med henblik på udvikling af nyt konfigurationsmodul, som vil muliggøre salg af ny varmemåler. Arkitektur dokumentation er en abstrakt beskrivelse af et system, som gør det muligt for systemets interessenter at få et indblik i systemet. Arkitektur dokumentationen indeholder design beslutninger, som er baseret på krav, omgivelserne, teknisk og domain viden, og som tydeliggør forbindelser imellem lavt niveau oplysninger, som udtrækkes af systemet, og den abstrakte arkitekturbeskrivelse. Dokumentation af disse beslutninger gør det muligt at lave modifikationer i de senere faser af et projekts livscyklus, og vurdering af risici, som er forbundet med disse modifikationer. I den virkelige verden er arkitektur dokumentation ikke altid komplet, eller overhovedet eksisterende. Kun kode af systemet kan ikke altid fortælle om designbeslutninger. I disse tilfælde er der behov for arkitektonisk rekonstruktion af systemet. Software architecture reconstruction is a process of obtaining the documented architecture of an existing system [Rainer Koschke]. Det er en proces til analyse af systemet, som giver mulighed for at identificere systemets komponenter og deres relationer, og skabe en højniveau repræsentation af systemet. Arkitektur rekonstruktion skaber arkitektoniske view for et eksisterende system. Anvendelse af arkitektoniske viewpoints og views er et nøgle aspekt i Symphony. Deursen et al. beskriver i [van Deursen et al., 2004] en generel metode til at bestemme target view til et system. Denne metode er view-drevet, og det er indledt af en specifik problemformulering som kunne komme fra diverse ledergrupper. Metoden introducerer tre viewpoints, der bruges ved genopbygningen af arkitekturen. Et viewpoint kommer til at udgøre en højniveau repræsentation af målet (Target viewpoint), mens en anden vil være en lav niveau repræsentation (Source viewpoint). De view, der svarer til disse viewpoints vil primært blive skabt ved at indsamle data fra systemet. Det tredje viewpoint (Hypotetisk set) bygger på oplysninger fra personer, som har udviklet systemet. Indsamling af data fra systemet kan gøres på flere måder. Manuel inspektion og leksikalsk analyse blandt andet, bruges til at indhente de ønskede oplysninger fra systemet. Fælles for disse er, at de alle er relateret til statisk analyse af systemet. En anden måde at indsamle oplysninger fra systemet er at observere systemets runtime adfærd (dynamisk analyse af systemet). Tidlige tilgange til arkitektur rekonstruktion adskiller sig fra Symfoni i, at de tager et bestemt mål, konkrete teknikker, og en vist fast sæt af view, der skal rekonstrueres, mens Symphony er en proces, der giver en generel genopbygnings model til at definere rekonstruktions aktiviteter, og rapportere erfaringer ved rekonstruktion. De andre teknikker beskriver hvordan man genopbygger bestemte arkitektoniske views, hvor Symphony også beskriver hvordan man udvælger views til rekonstruktion. En af ulemperne ved at bruge Symphony metode til rekonstruktion er at det er et højniveau præsentation af rekonstruktionsprocessen, som kan være svært at konkretisere især første gang man udfører en arkitektur rekonstruktion. Konkretiseringsprocessen kræver meget arbejde. Dette dokument vil beskrive en rekonstruktion af arkitektur dokumentationen for BOS med anvendelse af de principper, der er beskrevet i [van Deursen et al., 2004], med både statiske og dynamiske analyser som en del af processen. 6

7 Målet for denne genopbygning er at producere (eller gengive) den arkitektoniske dokumentation for systemet i form af arkitektoniske views, som formaliseres igennem viewpoints, hvilket specificerer den slags informationer som views skal indeholder. For at finde ud, hvilke viewpoints systemet skal repræsenteres med, vil jeg tage udgangspunkt i de anbefalinger som [Christensen et al, 2004] opstiller for arkitekturbeskrivelse. Det betyder, at jeg som udgangspunkt vil benytter 3 viewpoints Module, Component & Connector og Allocation view. Jeg vil naturligvis benytte UML til at beskrive de konkrete target views i form af modul og klassediagrammer, sekvensdiagrammer samt deployment diagrammer [Erikson et al., 1998]. Udover de enkelte viewpoints anbefaler [Christensen et al, 2004] også at de mest betydende krav til arkitekturen defineres og beskrives, svarende til mission i [IEEE 1471, 2000]. Disse krav vil også være defineret og beskrevet i dette projekt. I processen vil jeg fokusere på at bygge nogle arkitektoniske views. Derudover indeholder dokumentet en opsamling af de indsigter (lessons learned), der er fremkommet ved anvendelse af Van Deursens arkitekturrekonstruktionsproces. Endvidere indeholder dokumentet en evaluering af Van Deursens arkitekturrekonstruktionsproces baseret på disse indsigter. 3. Metode Dette afsnit vil give definitionen af Symphony processen, sammen med beskrivelsen af 3 typer views, som er forbundet med den. Afsnittet vil beskrive: hvordan Christensen og IEEEs views forholder sig til Deursens views, de overordnede faser i Symphony processen, som er Designfasen og Udførelsen fasen, udvalg af views ud fra systemets interessenter, samen med opsummering af udvalg af de relevante views, de teknikker, som views kan konstrueres med; de datalogiske værktøjer, der er anvendt som en del af arkitektur rekonstruktions, og som bruges ved statisk og dynamisk analyse. 3.1 Symphony processen [van Deursen et al, 2004] beskriver Symphony processen som a common framework for reporting reconstruction experiences og a vehicle for exposing and demarcating research problems in a software architecture reconstruction. Artiklen beskriver, ud over selve processen, også forfatternes erfaringer med at anvende processen. Dette afsnit beskriver Symphony i korte træk. Symphony følger basalt set en data gathering, knowledge inference and information presentation model, hvor man indsamler forholdsvis rå information omkring et system, destillerer denne information til noget mere brugbart, hvorefter man kan præsentere denne information til de relevante interessenter. Symphony er, som beskrevet i [van Deursen et al, 2004], problem-driven and uses a rich set of architecture views hvilket passer godt ind i øvrige artikler omkring arkitekturbeskrivelser, specifikt [Christensen et al, 2004], og [IEEE Computer Society, 2000]. 7

8 Symphony anvender 3 typer views i forbindelse med processen: Source views repræsenterer den rå information som kan udtrækkes af systemets source kode, build filer, konfiguration informationer, dokumentation, osv. Target views repræsenterer de mappede source views, som viser dele af systemets arkitektur (as-implemented). Hypothetical views repræsenterer f.eks. eksisterende dokumentation af arkitekturen, eller den information der kan findes frem gennem interviews af tilgængelige eksperter, og som beskriver arkitekturen på den måde som de husker / byggede system på. Arkitekturen i dette view bruges ofte som vejledning til at forstå den as-implemented arkitektur, eller som sammenligning til den arkitektur, som kommer fra genopbygningsprocessen. A view is a representation of a whole system from the perspective of the set of related components Such views are formalized through viewpoints. A viewpoint specifies the kind of information that can be put in the view [IEEE Computer Society, 2000]. Anvendelse af arkitektoniske viewpoints og views er et nøgle aspekt i Symphony. Anvendelse af mangeartet arkitektoniske viewpoints er til gavn for en arkitektonisk rekonstruktion, og hjælper til at afgøre hvilken information der skal rekonstrueres, for at løse et bestemt problem. I flg. [Rainer Koschke], Clements and colleagus brought some order to sea of viewpoints. They distinguish the following categories of viewpoints: Module, Component & Connector, and Allocation viewpoints. I [Christensen et al, 2004] anbefaler Christensen at benytte disse viewpoints for at gøre systemets beskrivelse godt forståelig. Udover de enkelte viewpoints anbefaler [Christensen et al, 2004] også at de mest betydende krav til arkitekturen defineres og beskrives, svarende til mission i [IEEE 1471, 2000]. I forbindelse med Symphony processen, kan disse viewpoints optræde som både source, target og hypotetisk - det kommer an på om det er koden art, der viser implementeret arkitektur eller hypotetisk arkitektur Faser Symphony processen består overordnet af to faser Reconstruction design og Reconstruction execution, hvor begge faser følger data gathering, knowledge inference and information presentation modellen som beskrevet i de efterfølgende afsnit. Designfasen består af en fastlæggelse af hvad man ønsker at opnå, herunder formulering af det problem man ønsker at løse og fastlæggelse af henholdsvis Target- og Source views samt regler for hvordan man transformerer de genererede Source views til de ønskede Target views. Udførselsfasen består i at udføre den faktiske analyse af det konkrete system og derved, som resultat, generere de ønskede Target views som blev defineret i forbindelse med designfasen. Outputtet af design fasen er således køreplanen for hvordan rekonstruktionen skal udføres, mens outputtet fra udførelsesfasen er en arkitekturbeskrivelse der løser det ønskede problem, identificeret i designfasen. 8

9 3.1.2 Designfasen Figur 1 herunder viser en oversigt over flowet i design fasen. Figur 1: oversigt over flow og de aktiviteter, der er involveret i Symphony processen. Det kan findes i [van Deursen et al., 2004, s. 3] Designfasen starter med en Problem Elicitation, eller problemformulering, hvor man formulerer det problem man ønsker at løse ved at udføre rekonstruktionen. Da udarbejdelsen af problemformuleringen involverer et antal forskellige interessenter, vil denne typisk ikke være i termer af softwarearkitektur. Man tager derfor i Concept Determination udgangspunkt i problemformuleringen og definerer hvilken arkitekturinformation der er nødvendig for at løse dette problem. Det er med andre ord i denne forbindelse at man definerer de ønskede Source- og Target viewpoints samt sammenhængen mellem disse. Dette danner grundlaget for de 3 sidste trin: Data Gathering, Knowledge Inference og Information Interpretation, som udgør udførelsesfasen. 9

10 3.1.3 Udførelsesfasen Udførelsesfasen består, som beskrevet, af de 3 trin Data Gathering, Knowledge Inference og Information Interpretation. Figur 2 herunder illustrerer flowet mellem disse trin. Figur 2 Symphony udførelsesfase. Det kan findes i [van Deursen et al., 2004, s. 3] I forbindelse med Data Gathering indsamles information omkring systemet, typisk ved at benytte værktøjer til at generere data ud fra forskellige aspekter af systemet. [van Deursen et al., 2004] beskriver et antal teknikker og værktøjer som kan benyttes i dette trin. Indsamling af data kan gøres ved at analysere både den statiske og dynamiske aspekt af applikationen. Statisk analyse Analysere applikationens artefakter som source kode, build filer osv. Dynamisk analyse Analyse af runtime opførsel af applikationen, mens det udføres. Det betyder, at de indhentede oplysninger kun er garanteret at være gyldige for den aktuelle udførelse. Værktøjer og teknikker er debugging og Profilers. Når de rå data i form af Source views er indsamlet, kan man i forbindelse med Knowledge Inference anvende de i designfasen opstillede regler for hvordan man mapper et eller flere Source views til de ønskede Target views. Det sidste trin Information Interpretation handler om at gøre den rekonstruerede arkitektur tilgængelig for systemets interessenter. Med andre ord, er det vigtigt at den generede information gøres synlig, sådan at interessenterne har mulighed at drage konklusioner på baggrund af disse informationer. 10

11 3.2 Viewpoints og mål grupper Som var beskrevet i kapitel 3.1, A view is a representation of a whole system from the perspective of the set of related components. Such views are formalized through viewpoints. A viewpoint specifies the kind of information that can be put in the view [IEEE Computer Society, 2000]. I [Christensen et al, 2004] anbefaler Christensen til at benytte forskellige viewpoints for at gøre systemets beskrivelse godt forståelig. Han snakker om 3 viewpoints, som er beskrevet på følgende måde: Modul viewpoint beskriver funktionalitet af systemet og mapping af funktionalitet til implementation, Component & Connector viewpoint beskriver hvordan funktionalitet af systemet kortlægges til komponenter, og interaktion blandt disse komponenter, Allocation viewpoint beskriver hvordan softwarekomponenter kortlægges ind til omgivelserne, specifikt til hardware struktur. I [IEEE Computer Society, 200] anbefales også, at viewpoints skal udvælges med interessenterne i tankerne. Systemet kan have mange forskellige interessenter, som for eks. Software arkitekt, Udvikler/Vedligeholder, Reviewer, Reviewer/Analyst, Kunder, Netværksadministrator. De opgaver, som jeg har fået i forbindelse med overtagelse af BOS frameworket er at holde styr på fejlrettelser i systemet, ombygning og tilføjelse af nye funktioner, og redesign på længere sigt. Anvendelse af Modul og Component & Connector viewpoints med disse opgaver, vil give mulighed for at arbejde mere selvstændigt og hurtigere. Andre opgaver, som jeg skal stå for, har noget at gøre med, hvordan softwarekomponenterne er fordelt under forskellige miljø, for eksempel når man skal foretage en installations setup. Her er der behov for Allocation viewpoint Andre arkitekturrekonstruktionsmetoder I dette afsnit ville jeg præsenter nogle af de arkitekturrekonstruktion metoder som findes allerede, og som fokuserer på software arkitekturrekonstruering og genopbygning. I [Claudio Riva, 2002] fortælles om arkitektur rekonstruktion nøgle rolle i produkt family udvikling, og beskrives reverse engineering (rekonstruction) metode til at begribe en aktuel implementering af et produkt. 1. I følge deres metode, sigter den første fase mod at tydeliggøre semantik af begreberne involveret i genopbygningen. 2. Metode generaliseres til hver arkitektonisk stil i form af at udføre yderligere aktivitet som er fokuseret på de vigtigste arkitektoniske aspekter til arkitekter. 3. Et nøgle aspekt af metoden er en web interface, der tillader arkitekter at offentliggøre de arkitektoniske diagrammer på intranettet. Der bliver inkluderet et Venedig webapplikation, som giver mulighed for at offentliggøre diagrammer på nettet i UML format. 4. Brugeren kan definere enhver form for mapning eller opbygning af source kode model 5. Prolog udnyttes som en mekanisme til at udføre en serie af abstrakte interaktioner. 6. Arkitektonisk koncept bygger på første klasse enheder i genopbygningsprocessen fra de meget tidlige faser. 11

12 7. Outputtet til rekonstruktionen præsenterer forskellige aspekter af model ved hjælp af flere arkitektoniske views (4+1 model), som er følgende: Conceptual view: beskriver de vigtigste arkitektoniske begreber, der er instantieret i andre views. Component view: beskriver de vigtigste komponenter, deres grænseflader og deres logiske relationer. Development view: beskriver tilrettelæggelsen af kildekodefilerne og deres relationer (for eksempel inkluderer afhængigheder). Task view: beskriver opgavefordeling af de arkitektoniske enheder og viser kommunikationer i indre tasks. Feature view: beskriver run-time gennemførelse af en funktion på et højt abstraktionsniveau. Disse synspunkter, er baseret på statiske aspekter (fanget uden at køre system) og dynamiske aspekter (vedrørende rine-time adfærd). De bruger 4 faser til rekonstruktionen, som de kalder for interaktiv og incremental proces: 1. Recovery of architectural concepts er den første fase, som har til formål at rekonstruere og præcisere betydelige koncepter af arkitekturen, som systemet ar bygget på. Her snakker de om begreber om hvordan udviklerne tænkte på systemet, og som bliver til terminologien til rekonstruerings processen.outputtet af denne fase er et Conceptual view, som beskriver alle de vigtige typer af arkitektoniske koncepter, og deres relationer, sammen med beskrivelse af mapninger imellem højere niveau koncepter og implementationer. Den vigtigste kilde til information er dokumentationen af systemet eller uformelle diskussioner med eksperter. 2. Model captur Her bygges en model af systemet, hvis enheder er forekomster af de begreber, som var identificeret i den foregående fase. Et korrekt valg af de begreber skal sikre, at modellen er bygget på det rigtige niveau af abstraktion. Deres kilde til den statiske analyse er et source kode. De baserer sig på ad hoc-analysatorer (for eksempel skrevet i Perl), eller på de kommertialle API. De opbevarer dokumentation, og software diagrammer (f.eks CASEværktøjer). For den dynamiske analyse, bruger de bl.and. ThirdEye. Modellen af denne fase er præsenteret ved meget lav niveau af abstraktionen. 3. Abstraction Formålet med denne fase er at berige modellen med domæne specifik viden som vil føre til et højt niveau abstraktionen af systemet. De kendte abstraktioner kan let tilføjes til modellen. De ukendte abstraktioner skal identificeres af arkitekter, kategoriseres, og derefter lagres i modellen. Arkitekter producerer manuelt abstraktionsregler, som beriger modellen. Begrundelsen er foretaget manuelt. Abstraktions regler bliver specificeret med en logisk sprog Prolog. 4. Presentation Her vælger arkitekterne en særlig arkitektonisk view, og et særlig visualiserings format: hierarkiske grafer, web-dokumenter (med hyperlinks), UML logiske diagrammer og message sekvens charts. De bruger Rigi til at visualisere hierarkisk orienterede grafer. Dette muliggør for arkitekterne at navigerer i modellen, analysere afhængigheder, og identificere nye mulige grupperinger at tilføje til modellen. De bruger Venice værktøj til at bygge de logiske views(components, packages, interfaces, inheritance and dependencies) i UML notationer. 12

13 I [Kazman et al. 12] beskrives hvordan en kode niveau abstraktion kan fodre en pattern baseret analyse. Her presenters et ARM (Arkitectur Reconstruktion method), som er en iterativ genopbygningsproces, hvor de historiske design beslutninger er opdaget ved at formulere / validere arkitektoniske hypoteser. De påpeger endvidere, betydningen af modelleringen af ikke kun oplysninger om systemet, men også en beskrivelse af den underliggende semantik. De præsenterer Software Arkitektur Rekovery med to faser: Identificering og udtrækning af source kode artifakter, som inkluderer arkitektoniske elementer, og analyse af de udtrækkende source kode artefakter til at beskrive view af den implementerede arkitektur. De udtrækkende source kode artefakter formerer en sourse model, som består af elementer, (d.v.s. funktioner, variabler, objekter), relationer imellem elementer (funktion kalder funktion, objekt A har en enstance), og et set af attributter af disse elementer og relationer (funktion kalder funktion N flere gange). I artiklen repræsenteres ARM som semi-automatic analyse metode til rekonstruering af arkitekturen, som baseres på genkendelse af arkitektoniske pattern. Figur 3. præsenterer de fire største faser i form af en pattern i genkendelses processen flowchart: Figur 3. Pattern genkendelse proces flowchart. Hentet fra [Kazman et al. 12] Konstruering af den konkrete pattern genkendelses plan består af 3 trin. Det første trin er at udvikle den instantierede pattern beskrivelse, som er konkrete pattern beskrivelser med alle pattern elementer, og deres relationer. Man starter med et design dokument, manuelt bestemt patern som er brugt i designet. Her kan udtrækkes de abstrakte pattern regler design regler, som definerer strukturelle og opførsels properties. Pattern 13

14 beskrivelser kan findes i design pattern literature, eller udtrukket af de mennesker, som kender systemet design, og kan bruges som supplerende regler. Ved hjælp af disse abstrakte pattern regler, kan man undersøge source kode af flere forskellige potentiale patern instanser til at beskrive konkrete pattern regler. Disse konkrete pattern regler kan genkendes ved navne konversioner og nogle ord af programmerings sprog, eller analyse af data access og kontrol flow. De bruger Rigi Standard Format (RSF) til at skrive specificationer af de konkrete pattern beskrivelser. Det anden trin af ARM er at udtrække source model, som repræsenterer systemets source elementer og relationer mellem dem. Outputtet af denne fase er en source model, som indeholder informationen, der skal bruges til opdage de nødvendige regler. Her præsenteres mulighed for at opdage pttern instanser ved hjælp af Dali, som er en automatisk process, hvor der bruges query værktøjer til at opdage alle pattern instanser. Som det sidste trin, som bruges ved analyse er Reconstruction and analysis af arcitecture. I forbindelse med dette trin bruges visualiserings værktøjet, som Rigi. Og den retter de fundne arkitektoniske pattern instanser mod de designede pattern instanser, organiserer andre elementer i source code model rund omkring de detekterede instanser. I [L.Ding and N. Medvidovic] beskriver Ding og Medvidovic om Focus metode til genoprettelse af arkitekturen. Arkitekturen genoprettes trinvis, og her fokuseres på genoprettelse kun af de deller af systemet, som bliver påvirket af en given ændring. Genoprettelse af et ekstra system arkitektur opstå som en ny modifikation. Focus tilgang er enestående på den måde, at: der genoprettes alle basale byger blokker af arkitekturen (data komponenter, processing komponenter og connectors), den skelner imellem systemets logisk og fysisk arkitektur, og giver muligheden at rekonstruere at system under udvikling. Dette afskiller Focus fra en del af andre relaterede tilgange, som går ud på at genoprettelse af arkitekturen fra systemets source code. Focus tilgang et baseret på antagelse om der er meget lidt eller ikke pålidelig dokumentation der findes for et system, som bliv modificeret. Sammen med det, i fokus laves der et minimale set af krav om, at der er kendskab til: detaljer om den ønskede modifikation, Bruger-niveau properties af applikationen, De basale karakteristikker af arkitekturen. Det første krav er ikke Focus specifikt, og er relevante til hvilken som helst software modifikation arbejde. Det anden krav kan udføres ved at observerer applikation udførelsen. Den tredje krav kan være forbundet med støre udfordringer til de udvikler, som har ingen kendskab til en given implementering platform.der er to interaktioner i Focus som er sammensat af to trin: Architectural recovery og System evolution. Architektur recovery trin sammensættes af seks aktiviteter, som er vist i figur 4. Disse aktiviteter er opdelt i to kategorier: logisk og fysisk arkitektur recovary. Man begynder med en idealiseret, højere niveau model af arkitekturen, som er gættet fra de udvalgte arkitektoniske stiler, et brugerniveau opførsel, og som fokuserer på specifikke deller af arkitekturen, som er påvirket af en krævende ændring, og efterfølgende forfines modellen ved at integrere flere højere niveauer af detaljer. Her starter man mad kildekoden, og abstrakter den til de faktiske komponenter og deres interaktioner. Målet med denne proces er at nå frem til en arkitektur, der giver mening for det pågældende system, d.v.s at den er delvis rigtig.. 14

15 Figur 4. Architektur recovery trin af Focus. Hentet fra [L.Ding and N. Medvidovic]. System Evolution dette skridt anvendes efter arkitektur genoprettelse er gennemgået, og bruges til at modificere applikationen med de ændringer, som passer til ny krav. Dette skridt udføres også trinvis, sådan at de vigtigste ændringer gennemføres først. Som vist i figur 5. System Evolution er sammensæt af følgende 5 store aktiviteter. Figur 5. Aktiviteter af System evolution. Hentet fra [L.Ding and N. Medvidovic]. Ved den første aktivitet, som er Propose idealized arch evolution bliv lavet et højt niveau arkitektur evolution plan. Den anden aktivitet er Add/Modify Components, og er afhængige af den første aktivitet. Her skal ingeniørerne afgøre, om tilføjelsen af nye eller ændre eksisterende komponenter, eller begge dele. 15

16 Den tredje aktivitet er Update Component Interactions, og er afhængige af den anden aktivitet. Her opdateres kontrol flow bland de komponenter, som er tilføget eller ændret. Næste aktivitet er Generate Evolved Architecture, og er afhængige af den første og tredje aktivitet. Her alle de ovennævnte ændringer til den oprindelige system integreres i den oprindelige arkitektur, og dette vil danne grundlag for den detaljerede udformning og gennemførelse af ændringer. Den sidste aktivitet er Set the New Focus, og er afhængige af den foregående aktivitet. Hvis arkitekturen genereret i den foregående aktivitet er stadig ikke detaljeret nok til, at gennemførelsen af de nødvendige ændringer, en ny interaktion af de to store skridt i Focus er påkrævet. Her, under efterfølgende interaktioner, setes fokus på de komponenter, der påvirket af ændringer, hvor resten af arkitektur vil forblive upåvirket af ændringer, og er dermed ignoreres i denne proces. Hver efterfølgende interaktion er at yde supplerende lavere niveau detaljer i påvirket komponenter Opsummering I dette afsnit er det blevet beskrevet, hvordan det er muligt at rekonstruere softwarearkitektur. Dette gøres ved hjælp af Symphony proces som udgangspunkt. Der bliver også beskrevet 3 viewpoints som er Module, Component & Connector og Allocation viewpoints. Modulet viewpoint er at præcisere det domæne, og den statiske struktur, Component & Connector viewpoint er at tydeliggøre samspillet og indbyrdes kommunikation mellem komponenter, og endelig Allocation viewpoint er at skitsere, hvordan komponenterne er fordelt på de fysiske noder. Den sidste type af view er især relevant, når ingeniører ønsker at konfigurere et testmiljø, som de kan udføre forskellige former for test, dvs. i forhold til applikationen udførelse. Nogle viewpoints er desuden blevet knyttet til deres rette målgrupper, og i forhold til den valgte målgruppe for dette dokument, de relevante viewpoints er blevet udvalgt på baggrund af denne. Det ender med tre viewpoints som måtte være interessant for målgruppen. Det sidste underafsnit om Andre arkitektur rekonstruktionsmetoder bliv gennemgået nogle af de eksisterende rekonstruerings metoder. Efter at målgruppen og viewpoints er blevet defineret, er det næste skridt at tage et kig ind i de teknikker, som disse viewpoints kan konstrueres med. Disse teknikker er beskrevet i det følgende afsnit 3.3 Tekniker og metoder Med genopbygningen af software-arkitektur, er det vigtigt at arkivere korrekt information af systemet. Oplysninger, der er nemme at indhente, ville være information om koden struktur, biblioteker og pakker blandt andre. Oplysninger, som blandt andre, er vanskeligere at udtrække er brug af mønstre og kontrol flow. De nemt hentede oplysninger kontrolleres ofte manuelt, mens forskellige former for værktøjer anvendes, når de mere komplekse oplysninger skal udtrækkes fra applikationen, men ofte afhænger det af de tilgængelige værktøjer. 16

17 3.3.1 Data Gathering Indsamling af data kan opdeles i flere kategorier, nogle af dem er: Statisk analyse baseres på systemets artefakter (source kode, dens struktur, og anden information), som kan indhentes fra ikke udførende applikation. Hvert af disse artefakter hører indirekte til deres egne views sammen med de oplysninger, der kan udledes af dem. Certain components or subsystems may be stored in particular directories, and capturing relations such as dir_contains_file and dir_contains_dir can help to identify components later in the reconstruction process. [Rick Kazman et al., 2002 s. 7] Ved strukturering af kildekoden til en applikation, en software arkitekt ofte inddeler hver komponent eller modul i separate mapper. Disse mapper er nemme at identificere, og det gør det ofte lettere at identificere komponenter på denne måde. Forbindelserne mellem de forskellige komponenter kan identificeres ved at iagttage overskrifter, der bruges i komponenterne ved opsporing af de respektive header filer tilbage til deres oprindelses kilder. Fra en fil kan det yderligere blive udtrukket, hvilke funktionsdefinitioner den indeholder, og kald til disse kan yderligere hentes. Dette vil skitsere interfaces, relationer, og identificerer interaktion, eksterne synlige egenskaber og relationer. En endnu tættere analyse af filerne kan hente information om, hvor variablerne er skrevet og læst. Dette beskriver, hvordan data bliver transporteret ind i applikation, som giver mulighed til at identificere hvilke typer af connectors, som bruges imellem komponenterne. Forskellige slags værktøjer anvendes til at indhente de statiske oplysninger som beskrevet ovenfor. Kategorier, som af disse værktøjer kan inddeles i, er beskrevet nedenfor og beskrevet i [Rick Kazman et al., 2002 s. 8] 1. Parsere, som analyserer koden og genererer typisk interne repræsentationer, der anvendes til generering af maskinens kode. 2. Abstract syntaks træ baseret analysator, som analyser kode til det formål at generere eksplicitte træ repræsentationer, og output udvalgte stykker af arkitekturen. 3. Leksikale analysatorer, som analyserer kilden artefakter som strenge af leksikalske elementer. Når de korrekte statiske oplysninger er hentet fra artefakter, der tilhører applikationen, bør det, hvis de korrekte oplysninger er blevet fanget, være muligt at gøre de første udkast til de views, som er baseret på biblioteker og kildekode struktur. Næste view fra de første udkast kan suppleres med oplysninger om adfærdsmønstre, call grafer og kode instrumentering etc. Dymanisk analyse indsamling af informationer fra systemet på run time, som giver et indblik i de dynamiske aspekter ved systemet, dvs. hvad der sker når systemet kører, hvilke elementer der samarbejder og hvordan de samarbejder. Ved en dynamisk analyse, kommer de udtrækkende oplysninger fra den kode, som er ved at blive udført. Dette kan gøres ved hjælp af debugging. Mange programmer har debugger indbygget, som giver mulighed for at se på systemets tilstand, mens den udføres. Fordele med debugging er at det er muligt at se koden under udførelsen, og indhente nyttig (statisk) information samtidig. Ulempen er håndtering af multitrådet og real-time events, når debugger stopper. 17

18 Men, selv den dynamiske analyse lader til at være en nem måde til at udtrække et præcis figur af systemet, den har også ulemper, som også er beskrevet i [IBM Systems Journal, 36(4): , Oct. 1997, s.20] Det er meget svært at udtrække alt opførsel fra et kompleks system Mængden af information er uhyre stor, og det kræver meget tid til analyse Men, i kombinationen med den statiske analyse, dynamik analyse kan bruges til afklare de specifikke dele af systemet Værktøjer I det foregående afsnit var nogle af de generelle teknikker, som kan bruges til at indsamle oplysninger til arkitektoniske genopbygning, nævnt. Disse teknikker er beskrevet i to kategorier: 1) en statisk analyse og 2) en dynamisk analyse. Når disse teknikker er skitseret er det på tide at tage et kig på nogle af de værktøjer, der bruges af disse teknikker. Det følgende afsnit vil indføre et par af disse værktøjer, og vil beskrive generelt, hvilke oplysninger den kan indsamle fra applikationen og dets artefakter. Det system, som jeg skal rekonstruere i dette projekt, og er udviklet i Java programmeringssprog. De værktøjer, som kan være relevant for mig at anvende, kan være: ECLIPSE, Code Visual to flowchart, og KLOCKwork insight. Eclipse is an open source community, whose projects are focused on building an open development platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software across the lifecycle. [Eclipse Foundation]. For det meste bruges Eclipse som en Java udvikling miljøer. Fordele: En fordel ved Eclipse arbejdsområdet er, at det giver et meget tilpasselig miljø, der kan skræddersys til behovene af de enkeltes software udviklere. Man kan bruge UML baserede model-driven development (MDD)sammen med Eclipse. Denne fremgangsmåde giver mulighed for at opnå fordelene ved abstraktion og automatisering fra en modellering, simulering og kodegenerering løsning med C, C++ oh Java. Som en ekstra fordel, kan automatisk MDD miljøproducere kode dokumentation og test scenarier. Samtidige modellen og kode niveau debugguing Det koster ikke noget at bruge værktøjet, og det er det værktøj, hvor det system, som jeg skal rekonstruere, var udviklet i. Jeg har kendskab til udvikling i Eclipse teknologier fra mit tidligere job. Fire vigtige teknologier kan bruges ved Eclipse: Reverse engineering af eksisterende kode i en grafisk model; Round-aktivering af ændringer i den kode, der udvikles tilbage i modellen; Automatisk generering af ny kode fra modellen; Dynamic model code associativity (DMCA), som hjælper med at sikre, at ændringer af enten koden eller model holdes synkroniseret. 18

19 Code Visual to flowchart Et kommerciel software produkt kaldet Code Visual til flowchart er udviklet af et selskab kaldet FateSoft eller Share-it 9. Applikationen er i stand til at analysere kildekode og konstruere et flowchart diagram baseret på flow i kildekoden. Ifølge selskabet selv har dette produkt følgende vigtige funktioner: Det kan anvende reverse engineering af et program med kode analysator, skabe programmering af flow chart fra kode, der mest bruges på flowcharting af et program, og dokumentere kildekode. Det kan generere Visio, Word, Excel, Power point, PNG og BMP flowcharts dokument fra kode. I forhold til disse centrale funktioner den kan bruges til at undersøge flow i kildenkode. En vis sekvens af kald eller en stor og kompleks funktion kan visualiseres, for at hjælpe til at forstå kildekoden. Diagrammet kan udvides med kodestumper og kommentarer fra kildekoden. Det giver en let navigering gennem flowchart diagram. Flow i kildekoden er beskrevet ved hjælp af flowcharts. Kildekoden typisk viser strukturer (dvs. hvis-sætninger, løkker osv.), og nedkaldelse. Denne information kan bruges til at rekonstruere software arkitektur som sekvens diagrammer for nogle dele af system, men ulemperne ved dette værktøj er, at det fungerer på et meget lavt niveau. Fordi denne ikke kan bruges som et stand-alone værktøj til at rekonstruere software arkitektur, men når komponenterne er identificeret, kan den bruges til at identificere, hvordan kommunikation er foretaget mellem dem, ved at analysere de metoder, som tager sig af forbindelsestrapper eller et andet konkret handling såsom at tilføje en bruger. Dette værktøj kan bruges samen med statisk og dynamisk analyse værktøjer ved rekonstruktion af sequence diagram. Fordelene ved at bruge dette værktøj er: en nem navigation gennem koden ved hjælp af automatisk genererede flowcharts, nyttigt ved diagnoser connectors og komplekse foretningsregler. Ulemperne ved at bruge dette værktøj kan være: Det fungerer på et meget lavt niveau, hvilket gør det vanskeligt at udtrække højt / arkitektonisk information. KLOCworks insight Tool KLOCworks insight Tool bruger kode analyse algoritmer til at udtrække views af softwarearkitektur, interaktioner, logik flow, og udførelse at tråde direkte fra source kode af både hele og delsystemer [Klocwork 02]. Sight angiver produkt beskrivelse for KLOCwork som følgende: allows for architektural comprehension, automatic control, and management through its graphic visualisation of software architecture, architectural rules setting, and automatic tracking capabilities. Dette værktøj tillader ikke brugeren at bygge, eller bruge pattern til abstrakt repræsentation af arkitektur fra underordnet information, som var udtrukket fra source kode. Snarere værktøjet tillader brugeren at vælge kilde elementer fra visualisering og skabe større gruppering af disse elementer ind i arkitektoniske komponenter, hvilket kan lette arkitektur rekonstruktion. 19

20 3.3.3 Opsummering I dette afsnit har jeg kigget på de generelle teknikker, som kan bruges i til at indsamle oplysninger til arkitektoniske genopbygning, og som er en af Symphony udførelsesfase aktiviteter. Disse teknikker var beskrevet i to kategorier: 1) en statisk analyse og 2) en dynamisk analyse. Under afsnittet Værktøjer er der beskrevet generelt nogle af de værktøjer, der kan bruges i forbindelse med disse teknikker, og hvilke oplysninger der kan indsamles fra applikationen og dets artefakter. Der blev beskrevet om ECLIPSE, Code Visual to flowchart, og KLOCKwork insight værktøjer, og der var præsenteret fordelene og ulemperne ved brug af disse værktøjer. I dette projekt har jeg valgt at bruge ECLIPSE fordi det er dette værktøj, som den eksisterende applikation var udviklet i fra staren, det dækker de behov, som jeg har i forbindelse med rekonstruktionen, som skal udføres, og som ikke er forbundet med udgifter, fordi det er gratis at bruge. 4. Baggrund af BOS BOS står for Brugevenligt ordre system. Målet med BOS var at ordresystemet på Kamstrup A/S kunne få en forbedret brugergrænseflade, en lettere indtastningsprocedure, en minimering af fejlordre og blive forbedret til benyttelse gennem Internettet. Kvalitetsfaktorer: Brugervenligt Udvidelsesvenligt Vedligeholdelsesvenligt Sikkert Minimum fejlprocent Forståeligt Korrekt Tekstbart BOS administrer indtastning, søgning og opfølgning på ordre både for Konfigurerede og Ikke Konfigurerede Varer. BOS er brugergrænseflade, som sørger for validering af de Konfigurerede varers hardware og software. Primær grund til at BOS skulle udvikles var, at Kamstrup A/S har haft store omkostninger i forbindelse med forkert konfigureret hardware. 20

21 BOS skulle: sørge for at forkert konfiguration ikke kunne forekomme, hardware såvel som software sørge for at gemme og hente Igangværende Ordre, så man ikke behøvede at genindtaste data sørge for at vedligeholde en prognose over hvornår den udvalgte vare kunne leveres (dette gælder konfigurerede varer) der skulle foreligge en hovedplan, så man kunne se hvor mange ikke-konfigurerede varer der er på lager sørge for at hente Gamle Ordrer, og tilrette dem, derunder skulle det være muligt at oprette, gemme og hente kundeprofiler indeholdende ordretemplates, begge skulle tilrettes sørge for mulighed for at udskrive ordrebekræftelse til kunden på , fax og print sørge for at vise oversigter over Gamle Ordrer til kunderne sørge for at man kunne fremkalde en oversigt over Afgivne Ordrer og deres status i produktionen, så kunderne kunne få at vide hvor deres varer befinder sig indeholde en administrationsdel, så systemadministrator kunne vedligeholde brugerprofiler og kundeprofiler, sammen med at det skulle være muligt for systemadministrator at slette ordre templates, leveringsadresser samt konfigurationer. Brugerfladen, inklusivt varebeskrivelser skulle forefindes på flere sprog, idet en del af Kamstrup A/S kunder er udenlandske og fordi der senere skulle være mulighed for at disse kunder selv kunne indtaste ordre over Internettet. Informationer til BOS kommer fra en Produkt Data Base (PDB). PDB består af flere databaser, der indeholder alle de data der skal bruges i BOS. Dette indeholder tabeller med oplysninger om ordre, kundeprofiler og brugerprofiler. Derunder er der tabeller der beskriver valideringsreglerne for hardware. PDB oprettes i en Progress database samt en SQL database for at lette tilgangen fra MFG til databasen (Progress delen). PKS er et system der kan validere software, og den indeholder softwarevalideringsregler i databaseform og i programmeret form. BOS bruger PKS til validering af hver eneste felt i softwarekonfiguration af en konfigureret vare. Når alle felter er udfyldt foretages en ekstra slutvalidering ned i PKS. 4.1 Brugere af BOS. De grupper af personer der benytter BOS er: Systemadministrator, som: står for oprettelse og vedligeholdelse af Brugerprofiler samt Kundeprofiler står for vedligeholdelse af sprogfunktionalitet i systemet Sælgere, som indtaster nye leveringsadresser til kundeprofiler, må ikke have adgang til systemadministratorsiderne. BOS benyttes af Kamstrups sælgere mange gange om dagen. Derfor skulle BOS have en brugervenlig grænseflade der kunne være nem at finde rund i, med mulighed for at bruge tastaturet til rokering mellem felter i indtastningsproceduren. Tastaturet skulle bruges til alle funktioner. 21

22 BOS blev udviklet i programmeringssprog Java og gør brug af produktet SonicMQ til kommunikation mellem de forskellige systemdele (PKS, PDB, og BOS). SonicMQ er et beskedsystem udviklet i Progress der ved hjælp af en central Broker er i stand til at håndtere meddelelser mellem vidt forskellige systemer. Der bruges så vidt muligt XML som besked-format. Der gøres desuden brug af en MS-SQL Database. 4.2 Ordliste Centrale ord Brugerprofil Broker Gammel Ordre Igangværende Ordre Indkøbsordre Konfigurerede Varer Kunde Kundeoplysninger MFG/PRO Ordretemplate Prognose Progress PKS PDB Validering Forklaring En omsætning for de brugere der benytter BOS Distributør til udveksling af beskeder mellem 2 eller flere parter. En ordre der er sendt til kunde En ordre der er ved at blive indtastet, samt en ordre der er delvis indtastet og gemt. Det nummer kunden har på ordren i sit eget system Varer der er kombineret af flere dele, eller varer med indstilleligt software. En virksomhed eller flere virksomheder der har slået sig sammen om at bestille varer. Kunders adresse, Leveringsadresse og Faktureringsadresse. Administration system a la SAP. En ofte benyttet skabelon for en ordre. Knyttet til en kundeprofil. En oversigt over hvor mange enheder af varen der kan reserveres i produktionen, på ugebasis. En database. Produkt Konfigurerings System validere Software konfigurationer. Produkt Data Base validere Hardwarekonfigurationer. En test af og godkendelse af, at delkomponenter i varen passer sammen. 4.3 Opsummering Formålet med dette afsnit var at give læseren et overblik over, hvad BOS system er, og hvad det bruges til. Her blev beskrevet: definitionen af BOS system, hvilke kvalitet faktorer BOS systemet skulle opfylde, hvilke krav der var stillet til BOS systemet, og hvem der er brugere af BOS. Under Ordliste er der beskrevet og forklaret de begreber og forkortelser, som bruges i BOS. 22

23 5 Første interaktion 5.1 Rekonstruktion design Som beskrevet i afsnit i denne rapport, består Symphony processen af flere rekonstruktions skridt, hvor Design skridt inkluderer Problem Elicitation, hvor det problem, som sættes i gang til rekonstruktionen, skal analyseres og diskuteres med interessenterne, og Concept Determination, hvor man skal identificere arkitektonisk koncept, relateret til problemet. Disse skridt vil være beskrevet i dette kapitel i afsnittene 5.1, og Problem Elicitation Som beskrevet tidligere i problemformulering, ønsker jeg at benytte Symphony til arkitektonisk rekonstruktion af BOS, som kan give mulighed for at få overblik over BOS frameworkets arkitektur med henblik på udvikling af nyt konfigurationsmodul, som vil muliggøre salg af en ny varmemåler. For at identificere de dele af systemet, som skal bruges i forbindelse med udvikling af nyt konfigurationsmodul i BOS, har jeg haft flere møder med folk fra min arbejdsgruppe, som har relation til vedligeholdelse af konfigurationsdata, og som tidligere har været involveret i analyse i forbindelse med udvikling af BOS frameworket, og ved implementeringer af de tidligere målere. Deres opgaver var, og er at holde styr på datagrundlag og de konfigurationsparametre, som skal bruges af BOS frameworket til implementering af ny måler og andre produkter. Dette gav mig mulighed for at se hvordan datagrundlag for et ordre, sammen måler specifikke konfigurationer er designet, og implementeret i SQL database. Sammen med det, har jeg haft mulighed for at gennemgå BOS Client applikationen funktionalitet, ved oprettelse af flere ordrer på nogle af de eksisterende produkter sammen med sælgere, som er primære brugere af systemet. Dette gav mig mulighed for at identificere de skærmbilleder, som står for konfiguration af måler, sammen med validering af de komponenter, som en måler kan bygges med. Jeg har også fået mulighed for at snakke med en ekstern konsulent Ole Frederiksen, som står for ansvar for MFG og Progress systemer, som bruges af BOS frameworket til at gemme alle ordre data, som skal bruges i forbindelse med produktion af måler i MFG. Han har været med ved analyse og udvikling af BOS framework helt fra starten af. Han kunne hjælpe med at få overblik over BOS system opbygning og deployment delen. Efter alle disse interview, fandt jeg ud af: at der findes et begrænset antal af gamle dokumenter, som beskriver analyse af BOS frameworket, at der findes dokumentation vedr. konfiguration parametre til de tidligere implementerede konfigurationsmoduler, som indgår i validering af softwarekomponenter, som konfigurationsmodulet består af, at data til den ny konfigurationsmodul, som skal udvikles, skal gemmes og vedligeholdes på lignede måder, som de tidlige konfigurationsmoduler, 23

24 at der findes kilde kode af hele frameworket, som kunne sættes ind i Eclipse udvikling miljø, så det er muligt at afvikle frameworket lokalt på min maskine, at alle de tidligere implementerede konfigurationsmoduler var implementeret som add-on til BOS systemet, at der findes et højniveau deployment diagram over hele BOS systemet, som viser hvordan BOS system var designet fra starten af. Ud fra interview med Ole Frederiksen, fandt jeg ud af, hvilke dele af systemet der var for gamle, og skulle erstattes med de, som er aktuelle nu, hvis system skal være up to date. Jeg har lavet et revideret deployment diagram, og det er brugt som input til at konkretisere problemet. For at forklare hvilke moduler rekonstruktionen vil koncentrere sig om, kommer her en præsentation af det reviderede deployment diagram (se Figur 6). Beskrivelse til diagrammet findes i Bilag 1. Diagrammet viser, at design af BOS er tænkt som 3-lags client/server model. 24

25 Figur 6: BOS komponent arkitektur deployment diagram. Revideret udgave af gammelt diagram, som kommer fra [BOS]. Ud fra alt den information, som bliv opsamlet i dette skridt, kunne jeg identificere de komponenter, der indgår i en af de tidligere implementerede moduler, og som skal indgår i min rekonstruktion. Disse er: Serverkomponent, som holder styr på database og kommunikationskomponent. 25

26 Databasekomponent, som indeholder en række af stored procedures, der kaldes for at hente og gemmer informationer, og som er defineret på SQL server. Klientkomponent, som er en grafisk brugegrænseflade, og som giver mulighed at gennemgår Hardware vælg og software konfiguration af en konfigurationsmodul Opsummering af Problem elicitation aktiviteten I dette afsnit ville jeg beskriver de opsamlede erfaringer med at udføre Problen elicitation aktivitet, som er en af de første aktiviteter under designfase af Symphony processen. Som første trin af denne aktivitet, har jeg formuleret det problem, som skulle løses ved udførelsen af rekonstruktionen. I efterfølgende trin har jeg identificeret de deler af systemet, som skulle bruges i forbindelse med at løse problemet. Dette bliv gjord ved hjælp af møder og interviews med de forskellige mennesker, som havde relationen til systemet., sammen med gennemførsel af forskellige scenarier, som sælgere bruger BOS system til. Som resultatet af opsummering af alle disse trin bliv der produceret en liste over dokumentation, og de resurser, som jeg skal bruger under rekonstruktionen Concept Determination Som beskrevet tidligere i afsnit handler Concept Determination om at raffinere problemformuleringen til det sæt Source, Target og Hypotethical views, som kan vise den information, man ønsker for at løse problemet med. De efterfølgende afsnit svarer til de 5 trin indenfor Concept Determination, som [van Deursen et.al.,2004] beskriver Identify Potentially Useful Viewpoints Når man dokumentere softwarearkitektur, er det gavnligt at benytte forskellige viewpoints til et system, til at gøre beskrivelsen af systemet forståelig. Som det også var beskrevet i afsnit 3.2, ønsker jeg at tage afsæt i de anbefalinger, som [Cristensen et al, 2004] opstiller for arkitekturbeskrivelser. Det betyder at jeg som udgangspunkt skal benytte 3 viewpoints Modul, Component & Connector og Allocation. Definitionen og beskrivelse af de udvalgte til første interaktions viewpoints kommer i afsnit Jeg vil naturligvis benytte UML til at beskrive de konkrete target viewpoints i form af modul- og klassediagrammer, sekvencediagrammer samt med deploymentdiagrammer [Eriksson et al, 1998]. Udover de enkelte viewpoints anbefaler [Cristensen et al, 2004] også, at de mest betydelige krav til arkitekturen defineres og beskrives, svarende til mission i [IEEE 1471, 200]. Tidligere i afsnit 4, var der angivet beskrivelse af BOS system, sammen med alle de krav, der var stillet til BOS system helt fra starten af. I forbindelse med implementering af den ny konfigurationsmodul stilles der følgende krav til BOS: at der skal udvikles BOS system, som skal søge for validering af den nyudviklede konfigurationsmodulets hardware og software; at forkert konfiguration ikke kunne forekomme, hardware såvel som software; 26

27 at det skal være muligt at gemme og vedligeholde de konfigurerede data til den pågældende konfigurationsmodul Det er nødvendigt at implementere en databasekomponent til konfigurationsmodul fordi: Det er forskellige informationer der skal hentes/gemmes for hvert produkt. Det er forskellige Stored Procedure (SP) der skal kaldes pr. produkt. De SP er der skal kaldes kan ligge på forskellige databaser Define Target viewpoints Som beskrevet i [van Deursen et al., 2004], er target views outputtet fra rekonstruktionsprocessen. Som tidligere beskrevet ville jeg tage udgangspunkt i [Christensen et al., 2004], når jeg udarbejder arkitekturbeskrivelse. Jeg vælger også at tage udgangspunkt i en af de identificerede til rekonstruktion komponenter fra afsnit 5.1, som er Klientkomponent, og som er en grafisk brugegrænseflade. Her kam man gennemgår Hardware vælg og Software konfiguration af en konfigurationsmodul. Jeg har med udgangspunktet heri, opstillet følgende target viewpoint. Module viewpoint Formålet med dette viewpoint er at give en indsigt i hvordan funktionalitet mapper til implementeringsenhederne for de pakker og klasser som indgår i at foretage et Hardware valg og Software konfiguration af et konfigurationsmodul. Module viewpoint vil blive beskrevet med en pakke og et klassediagram (Klientkomponent). Component & Connector (C&C) viewpoint - formålet med dette viewpoint er at give en indsigt i hvordan funktionalitet på run-time mapper til implementeringsenheder (componenter), som er ansvarlige for udførelse, sammen med hvordan disse enheder udveksler kontrol og data i at foretage et Hardwarevalg og Software konfiguration af et konfigurationsmodul. C&C viewpoint bliver beskrevet med et sekvensdiagram Define Source viewpoints Som beskrevet i afsnit 3.1, er en af de typer af view, som Symphony anvender, et source view. Her repræsenteres den rå information som kan udtrækkes af systemets source kode, build filer, konfiguration informationer, dokumentation, osv. Denne proces er tæt forbundet med at definere mapping regler til at mappe source views til target views. En indledende analyse af strukturen af BOS kildekoden viser at Moduldiagrammet kan baseres på den. Dette kan gøres i form af reverce reingenering i Eclipse udviklingmiljø, ved hjælp af UML tools, som er integreret ind i Eclipse. Component og Connector viewpoints er et højniveau view, som er svært at automatisere genereringen af, og derfor vil den ikke laves her Define mapping rules Tabel 1 viser opsamling af de mapping regler, der ville anvendes ved den første interaktion. 27

28 Vedr. Modul diagrammer: UML værktøj, som er integreret i Eclipse, giver mulighed at generere Modul diagrammer fra kildekoden, som jeg har fuld adgang til, og derfor behøver jeg ikke at opstille regler for mapping af data mellem source- og target views. Target Viewpoint Source Viewpoint Mapping Klasser genererede fra den del af koden, som findes i.jar fil.jar fil, Dir struktur; Package struktur; Java regler om packages Package diagram Klasse diagram Fil Navne Type referencer mellem klasser Automatisk Java regler om pakker fra Eclipse Model Klasse diagram Sekvens diagram Database diagram Relationer mellem tabellerne Implementering klasser Automatisk MC SQL server regler om tabeller og relationer mellem tabeller Førsteklasses repræsentation af kommunikation sti imellem komponenter Tabel 1. Viewpoints og Mapping Rules til den første interaktion Determine Role and Viewpoint of Hypothetical Views Ifølge [van Deursen et al., 2004] er hypotetiske views mest anvendt til at guide rekonstruktionen eller som grundlag for sammenligning af arkitekturer f.eks. om en arkitektur rent faktisk er blevet implementeret som det var designet. I mit tilfældet vil de hypotetiske views blive anvendt til at guide rekonstruktionen. Som tidlige beskrevet er det lykkes for mig at finde et begrænset antal af gamle dokumenter, som beskriver arkitektur ag BOS ved opstart af udvikling af dette system. Ved hjælp af interview med Ole Frederiksen, har jeg også fået et up to date figur over de komponenter, som BOS består af, sammen med ansvar fordeling og relationer mellem dem i form af det overordnede deployment diagram over hele BOS system. Denne figur kan danne grundlag for det ønskede deployment diagram Opsummering I denne afsnit ville jeg beskrive de opsamlede erfaringer ved brugen af Concept determination trin af Symphony processen, og som bruges til at bestemmer, hvilken information af arkitekturen er nødvendig til at løse problemet, sammen med den måde, som dette informationen skal præsenteres på. I den foregående afsnit har jeg beskrevet 5 trin indenfor Concept Determination. 28

29 Under det første trin, som er Identify Potentially Useful Viewpoints, har jeg besluttet om at benytte 3 viewpoints Modul, Component & Connector og Allocation til at arkitekturbeskrivelser under min rekonstruktion. Sammen med det var truffet beslutninger om at bruge UML til at beskrive de konkrete target viewpoints, sammen med hvilke typer af diagrammer, der skal anvendes. Her bliv også defineret og beskrevet de mest betydelige krav til arkitekturen. Under afsnittet Define Target viewpoints har jeg defineret og beskrevet de target viewpoints, som er relevante til Klientdelen af systemet. I afsnittet Define source viewpoints, har jeg truffet beslutninger om hvilke sourse viewpoints bliv bygget under rekonstruktionen. I afsnittet Define/Refine Mapping rules har jeg opsamlet de mapping regler, der skulle anvendes ved den første interaktion. Det er disse mapping regler, som jeg skal anvender til at bygger target views ud fra sourse views. I den sidste afsnit har jeg truffet beslutninger om at jeg ville bruge hypotetiske view til at guide rekonstruktionen. 5.2 Rekonstruktion udførelse Data Gathering De følgende afsnit beskriver hvordan de udvalgte til rekonstruktion af BOS system delkomponenter blev analyseret for at danne de beskrivende source views. I denne første iteration er det source kode analyse. De data gathering ekstraktion teknikker, som jeg vil anvende i første interaktion er: Manual Inspection af direktory struktur af BOS (pakker struktur, verifikation af clientserver separation); Gennemgang af klasse hierarki og andre konstruktioner ved brug af Eclipse UML. Observerer applikationens opførsel ved udførelsen; læse kilde kode; læse diagrammer fra BOS dokumentation. Manual Inspection Som var beskrevet i afsnittet 5.1, findes der source kode af hele frameworket, som kunne sættes op i Eclipse udvikling miljø. Dette giver mulighed for at afvikle frameworket lokalt på min maskine. Ud fra system opsætning kan jeg se de projekter og pakke strukturer, som frameworket er opdelt i. Se figur 5.1. Ud fra figuren kan man se, at frameworket er opdelt i to forskellige projekter: BOSServer og Client, som svare til den opdeling for Server og Klient komponenter, som man kan se fra den overordnede deployment diagram (figur 6). 29

30 Figur 5.1. En overordnede projekt opdeling for BOS framework i Eclips Pakage Explorer. Ved at analysere nærmere BOSServer projekt, kan jeg se, at serverdelen består af Database og Kommunikationskomponent. Se figur 5.2. Figur 5.2 Source view over serverdelen af BOS Framework. 30

31 Kommunikationskomponenten (alle pakker, som starter med bosserver.communication) indeholder et interface, som klienten anvender til at kommunikere med server modulet. Pakke bosserver.communication.produkts.pks.db indeholder klasser, som holder styr på databaseadgang til alle af de eksisterende måler. Andre pakkers navne, som starter med bosserver.communication.produkts.pks.db + måler navn (mc402, mc601, mc801 + modul + nr Findes til de måler typer, som kan konfigureres med løse moduler, og som grupperes under forskellige nr. Disse pakker indeholder klasser, som holder styr på database adgang til de løse moduler, som nogle af de eksisterende måler kan konfigureres med. Databasekomponent (alle pakker som starte med bosserver.model) tilbyder adgang til Prods og Elmåler databasen. Resterense pakker er hjælpepakker som bosserver.util og bosserver.exeption. Ved at analysere Client projektet, nærmere kan man se, af hvilke dele Client delen består af. Se figur 5.3. Jeg kan se, at Client delen er noget stører end Server delen, og logisk opdelt på følgende mode: pakker, som hører til bosclient.adminview, hvor der holdes styr på den administrative del af BOS Client, pakker, som hører til bosclient.communikation delen af BOS Client, og står for kommunikation mellem server og client delen, pakker, som hører til bosclient.view delen af BOS Client, og det er der, hvor de tidlige måler implementeringer er placeret i de relevante pakker på følgende måde: - bosclient.view.congfig.mc402 - bosclient.view.congfig.mc402.validator - bosclient.view.congfig.mc402.moduls - bosclient.view.order - de øvrige pakker Navn mc402 referer til en konkret måler type, og strukturen i form af bosclient.view.congfig + måler navn genfindes for de andre måler typer, som mc601, mc801, multical401. Navn bosclient.view.congfig.mc402.moduls referer til de løse moduler, som MC402 måler kan konfigureres med. Strukturen i form af bosclient.view.congfig + måler navn + modules genfindes også til andre måler typer, som kan konfigureres med de løse moduler, dog ikke til multical401, fordi at den ikke kan indeholder moduler. Pakke bosclient.view.order, som holder styr på implementering af Order delen, og de øvrige hjælper pakker. Ud fra denne opbygning kan man konstatere at, i dette framework er meget tæt kobling imellem den generelle del af Clinten og de specifikke implementeringer af de forskellige konfigurationsmoduler, som var implementeret ind i systemet. 31

32 Figur 5.3. Client view af BOS framework, som det ser ud i Eclips udvikling miljø. Ud fra den gamle dokumentation, som var fundet i forbindelse med Problem elicitation, fandt jeg ud af, at de ovenover beskrevne komponenter, som kommunication, database, og view komponenter er de samme elementer der findes i det hypotetiske deployment diagram. Figur viser på et overordnet niveau de komponenter der indgår i en konfigurationsmodul. Klient Server Database gui Configate db db comm comm Figur Deployment diagram over konfigurationsmodul. Kommer fra gammelt BOS dokumentation. 32

33 Der vil i forbindelse med udvikling af et nyt konfigurationsmodul være nødvendigt at implementere nye klient-, server- og databasekomponenter. I de følgende afsnit vil jeg analysere disse komponenter for at finde ud af, hvad der skal implementeres i de enkelte komponenter Databasekomponent over konfigurationsdata Selve Databasekomponent, som var udvalgt til rekonstruering under Problem elicitation, repræsenterer en af Prods databaser, der skal anvendes af konfigurationsmodulet. Databasekomponent indeholder en række af Stored Procedures (SP), der kaldes for at hente og gemme informationer, og er defineret på SQL server. Databasekomponent bliv analyseret ved hjælp af ApexSQL Edit værktøj. I det følgende beskrives, hvordan konfigurationsdata opbevares i databasen, hvilke valideringer der kan udtrykkes i databasen, samt hvordan data der gemmes i databasen. Konfigurationsdata og regler Figur 5.4 viser tabeldesign for de tabeller, der opbevarer konfigurationsparametre og regler for konfigurationsmoduler i den Generale modul (Configate - identificeret og beskrevet under Dynamisk analyse). Tabelstrukturen er så generel, at den uden videre kan anvendes til at opbevare regler og parametre for et vilkårligt antal produkter. Tabelstrukturen er oprettet i Prods databasen, hvor den pt. indeholder konfigurationsdata for alle tidligt implementerede måler og produkter. Tabellen ParamDef indeholder de parametre, der skal tildeles værdier for at konfigurere software for et produkt. Eksempler på parametre for Multical402 måler modulet er logge perioder, moduler og display opsætning. Tabellen herunder viser de informationer, der registreres for hver parameter. Figur 5.4: Database diagram for konfigurationsdata. Udtræk fra SQL Server Management Studio. Kolonne Beskrivelse Eksempel ID Et unikt parameter id. 1 ProductID Unik ID for det produkt parameter tilhører. ID for et bestemt måler modul Group ID for den gruppe parameteren tilhører. ID for konfiguration 1 Description Beskrivelse for parameter. Vælg display setup 33

34 Type Angivelse af type for parameter. Heltal, decimal, osv. ConstraintName Anvendes ikke. LangLabelID Tekst ID hvis der senere ønskes sprogstyring. Tabellen ParamValues indeholder de værdier, som en given parameter kan antage. Parametre kan som udgangspunkt konfigureres ved at vælge en pre-defineret værdi fra en liste eller indtaste en værdi i et felt. Liste: Tabellen indeholder en række pr. værdi, som parameteren kan antage. Indtastning: Tabellen vil indeholde præcis en række, hvor default værdi angives i pvalue. De informationer der registreres pr. værdi fremgår at tabellen herunder. Kolonne Beskrivelse Eksempel ID Et unikt id for værdien 1 paramdefid Fremmednøgle til ID feltet i ParamDef 1 pvalue Default værdi for parameter 01 pname Det navn der skal vises på skærmen 01 Cal. active energy LangLabelID Tekst ID hvis der senere ønskes sprogstyring. Tabellen ParamConstraints indeholder de egenskaber, der knyttes til en værdi for at konfiguratoren kan afgøre om en værdi er kompatibel med en given konfiguration. En egenskab består af et navn og en liste af værdier, der udtrykker at egenskaben er kompatibel med andre egenskaber med samme navn og en ikke tom fællesmængde af værdier. Hvis en egenskab er kompatibel med flere værdier adskilles disse ved en skråstreg som vist i tabellen herunder. Kolonne Beskrivelse Eksempel ID Unikt id for reglen 1 ParamValID Fremmednøgle til ID feltet i ParamValues 1 Name Navn/nøgle for egenskab LLL Properties Listen af værdier knyttet til denne egenskab 100/101/102/103 Valideringformer Tabelstrukturen i figur 5.4 kan anvendes til at udtrykke regler på følgende former: Moduler med kode 00 må kombineres med displays med koder 100, 101, 102, 103 Værdien for pulsedivisionsfaktor skal være heltal ml 100 og Password skal bestå af mindst 6 karakter. Tabelstrukturen kan ikke anvendes til at udtrykke regler, der kræver specialbehandling i form af algoritmer til beregning, validering osv. F.eks. angivelse af skæringsdato på formen MM.DD, hvor MM=12 og DD=

35 Produktvarianter For hver produkt der skal udstyres med et software konfigurationsmodul, er der udviklet funktioner til at opfylde følgende use-cases: Opret/rediger konfiguration Slet konfiguration Hent konfiguration Hent konfigurationsdata Disse funktioner implementeres i SP, som f.eks. søger for at udtrække måler- og serienumre, samt opdatere MFG/PRO database med konfigurationsdata til ordrepreview Server delen Ud fra figur kan jeg se, at der vil være nødvendigt at udvikle serverdelen i BOS med en kommunikations- og databasekomponent, for at understøtte et nyt konfigurationsmodul. Pakkediagram over Server delen Ved hjælp af Eclipse UML extention, kan man automatisk udtrække et pakkediagram over BOS Server kommunikation delen. Se figur 5.6. Det viser sig, at det er mange pakker, der indgår i kommunikation delen, og der er ret mange afhængigheder mellem disse pakker. Dette gøre det svært at udvælge, hvilke af disse pakker som skal indgår i en arkitektur pakkediagram. Figur 5.6 Pakkediagram over BOSServer komponent (kommunikation) delen. 35

36 Klient delen Klientkomponenten udgøres som vist i figur af en grafisk brugergrænseflade, og en kommunikationskomponent samt konfigurator Configate. Der vil i forbindelse med implementering af et nyt konfigurationsmodul være nødvendigt at udvikle en grafisk brugegrænseflade. Jeg vil tage udgangspunkt i en af de eksisterende målere, og kigge nærmere på en pakke bosclient. view. congfig.mc402. Klassediagram over BOSClient view configuration til MC402 måler. Det automatiske udtræk af klassediagram fra Eclipse (figur 5.7) viser et meget kompleks figur, hvor der er mange forskellige klasser og afhængigheder mellem disse klasser. Figur 5.7 Klassediagram over BOS Client view configuration til MC402 måler. Udtræk fra Eclipse Opsummering Her ville beskrives de opsamlede erfaringer ved brugen af Data Gathering under analyse af den statiske del af systemet. I dette trin tog jeg udgangspunkt i opdelling af BOS system i 3 store deler, som jeg kunne identificere ud fra den hypotetiske deployment diagram. Som resultat af Manuale inspektion af source kode kunne jeg finde de relevante pakker. Indholdet af disse pakker var 36

37 analyseret videre for at identificere de underpakker, som skulle være relevante til rekonstruktionen. Jeg har anvendt navne konversioner til at analysere source koden af BOS systemet, for at finde de pakker og klasser, som har nogen med implementeringen af tidligere måler at gøre. Under analyse af Databasekomponent har jeg brugt Database model som min sourse viewpoint, for at danne et billede over datagrundlæget af BOS Frameworket konfigurationsdel. Pakke og klassediagrammer var buget ved hjælp af automatiske udtræk fra eklipse, og har vist sig at være alt for kompleks. På grund af de mange afhængigheder mellem klasser og pakker. Erfaringer med disse diagrammer viser, at der er behov for afgrænsninger i de udvalgte rekonstruktions områder Observation af applikationens opførsel For at danne sig et billede af hvordan konfiguration af en måler fungerer i praksis, har jeg debugget klient delen af en af de tidlige implementerede målere, for at se det tættere udspil imellem de forskellige komponenter i systemet. Det som jeg kunne observere var følgende: mange design pattern, som var brugt i koderne (Factory method, Polimorphi, Observer, Singleton, Iterator og mange flere) at arkitekturen for BOS framework er baseret på 3-lags klient/server model. at BOS frameworket løsning er baseret på klient-side validering, hvor datagrundlaget for konfigurationen indlæses i en Configurator, der efterfølgende kan validere de valg som brugeren træffer. Se sekvens diagram i figur 5.8. nogle objekter, som kommer fra en Generalt modul (Configate), og som tilknyttet til Client projekt i form af ekstern jar fil. Dette modul indgår i alle implementerede moduler. Datamodel over Generalt Configate modul var analyseret og beskrevet i form af Database diagram i For at se på opbygning af dette modul, skulle jeg bruge et eksternt værktøj, som kunne udbakke jar fil, og viser java koden ud fra source kode. Til dette formål har jeg brugt et værktøj DJ Java Decompiler 3.1. Dette gav mig mulighed at se opbygning af dette modul. Ud fra java doc. Kan jeg læse at dette modul anvendes i forbindelse af validering af konfigurationer Struktur af Configate modelkomponent Klassediagram fra figur 5.8 viser de klasser, der anvendes til validering af konfigurationer i generelt Configate komponenten. Det fremgår af diagrammet, at et ItemGroup er associeret med et vilkårligt antal items, og at et item er associeret men et vilkårligt antal ItemProperties. 37

38 ItemGroup -id -groupid Item -id -description 1 0..* 1 0..* ItemProperty -key : String -value : String Figur 5.8 Model Klassediagram over generalt del af konfigurationsmodulet - Configate. ItemGroup Klassen ItemGroup indkapsler informationer om de parametre, der skal vælges for at konfigurere en måler. Klassen indeholder en unik id for gruppen, samt en id for den hovedgruppe, som parameteren er en del af, dvs. konfiguration 1 og 2, Variable værdier, målernummer eller logo. Eksempler på parametre er strømforsyning, display, moduler, log perioder mm. Item Klassen item modellerer en parameter, der repræsenterer en specifik værdi for den ItemGroup, den indgår i. Eksempler på parametre er 5,10 og 15 A parametre for strømforsyninger. ItemProperty Klassen ItemProperty indkapsler navn og værdi for en egenskab, der knyttes til en parameter. Klassen anvendes af Konfiguratoren til at validere konfigurationer Interaktioner under client-side validering i BOS system. Sekvens diagram i figur 5.9 viser interaktionerne mellem MC402 panel, ConfigurationPanel og ConfigurationComponent. Ifølge mappins reglerne, er klasserne ConfigurationPanel og ConfigurationComponent er de overordnede klasser af disse typer klasse hierarki. Metoden checkconfiguration() blive kaldt fra MC402 panelet, efter at brugeren har trykket OK til at konfigurere en MC402 måler, og den kaldes på alle de underpaneler, som indgår i MC402Panel, og som er af typen ConfigurationPanel. ConfigurationPanel kalder update() metode på alle de konfigurationskomponenter, som de lige nævnte paneler er bygget af, hvor de efterfølgende valideres efter specifikke regler, som var beskrevet i afsnit under Valideringsregler. Figur 5.9. Sekvens diagram over client side validering af BOS system. 38

39 5.2.4 Erfaringopsamling I denne interaktion har jeg analyseret de komponenter, der indgår i et modul konfiguration af software for produkter hos Kamstrup A/S. Som resultat af denne analyse, fandt jeg ud af at BOS frameworket er baseret på 3-lags klient/server model, som består af 3 deler: Server, Klient og Databasedelen. Disse dele var analyseret nærmere, og ud fra dette analyse, suppleret med gammelt dokumentation, kunne jeg se hvordan disse dele er opbygget. F.eks. analyse af Databasekomponenet sammen med det Generale modul (Modulkomponent) har givet en godt billede over datagrundlæget af BOS Frameworket. De andre deler, som Server og Klient delen, var analyseret ved hjælp af automatisk udtræk af Pakke- og Klassedigram fra Eclipse, og de er svære at forstå på grund af høj detalje rigdom. De mange afhængigheder mellem klasser og pakker gør det svært at udvælge hvad der skal vises i en arkitektur klassediagram. Tabellen herunder viser de analyserede komponenter, sammen med den funktionalitet, der skal implementeres i forbindelse med udvikling af nyt konfigurationsmodul hos Kamstrup A/S. Komponent Database Server Klient Opgave 1. Definer SP 2. Impl. af SP 1. Impl. af comm og db 1. Design af GUI 2. Impl. Af comm og GUI 6. Anden interaktion Erfaringer fra den første interaktion har vist for store kompleksitet, og derfor har jeg besluttet at lave den anden interaktion, hvor jeg vil afgrænse analyse områder ved at tage udgangspunkt i usecases, som relaterer til konfiguration af en måler i BOS. 6.1 Rekonstruktion design Som resultat af Problem elicitation kunne jeg identificeres følgende funktionalitet af BOS system, som var relaterende til en overordnede funktionalitet, som er gennemførsel af en ordre, hvor der skulle gennemgås konfiguration af en af de eksisterende målere (konfigurationsmoduler): Konfiguration af hardware til en måler efter, at en bestemt måler (konfigurationsmodul) udvælges til konfiguration, så skal målerens hardware konfigureres, ud fra de udvælg, der eksistere til den pågældende måler. Konfiguration af software til en måler efter, at hardware komponenter til en måler er udvalgt, så skal software dele af måler konfigureres, ud fra de valg, der eksistere til den pågældende måler, og som afhænger af hardware valget. Gem måler data efter, at software valgt er gennemgået, så skal de valgte software data valideres i forhold til de konfigurationsregler, som findes i databasen til hver måler, og gemmes i de respektive steder i databasen. 39

40 6.1.1 Usecases På baggrund af denne opdeling af funktionalitet, har jeg defineret følgende usecases. Disse usecases repræsenterer den funktionalitet der ligger til grund for rekonstruktion. Usecase 1 Konfiguration af måler: Her skal man konfigurere den sammensatte måler, som skal sættes op af hardware og software delen. Denne usecase består af to usecases: 1.1 og 1.2. Usecase Konfiguration af hardware. (Se figur 7.1) Konfiguration af hardware til en måler giver mulighed at gennemgår et hardware konfiguration til en måler. Ud fra Typenummer til en måler, udvælges der koden for den enkelte felt fra en egenskabsliste som indeholder information om hvordan en given vare må sammensættes. Egenskabsliste viser koden og tekst for, hvad koden dækker over. Listen vedligeholdes i MFG/PRO, og rettelser og/eller ændringer til en vare skal laves der. Under oversigt område af skærmbillede kan man se hvilke valg man har foretaget i hardwarekonfigurationseditoren. Konfigurationsoversigten indeholder kode og tekst for typenummer og beskrivelse. Figur 7.1. Skærmbillede af Konfiguration af hardware til Multical402. Ved at trykke på Konfigurer knap, vil hardwarevalget være valideret i forhold de tilgængelige og valide software parametre. 40

41 Hvis data ikke kan valideres, præsenteres brugeren for en fejlbesked. Brugeren kan ikke komme videre før fejlene er rettet, eller hele hardwarekonfigurationen kan annulleres, ved tryk på Annuler knap. Usecase Konfiguration af Software. (Se figur 7.2) Konfiguration af Software til en måler giver mulighed at gennemgår et softwarekonfiguration til en måler. Gule felter viser at data kræves til dette felt. Der er nogle felter, der er pre-udfylde af BOS, og er f.eks. Multical402 type, som er taget fra hardwarekonfigurationen. Efterhånden som de enkelte felter blive udfyldt vil data blive valideret op imod Konfiguration databasen, som indeholder softwarevalideringsregler. Figur 7.2. Skærmbillede af Konfiguration af Software til Multical402 side 1. Usecase 2 - Gem konfiguration af måler. (Se figur 7.3) Fra side 2 (figur 7.3) af softwarekonfigurationen til en måler, kan man gemme måler konfiguration. De konfigurerede måler data skal valideres, til at kunne være gemt i en ordre i form af en ordre linje. Systemet vil forsøge at gemme data når brugeren forsøger at trykke på knap OK. Hvis systemet ikke kan gemme data, præsenteres brugeren for en fejlbesked. Brugeren kan ikke komme videre før fejlene er rettet, eller kan hele softwarekonfigurationen annulleres, ved tryk på Annuler knap. 41

42 Figur 7.3. Skærmbillede af Gem konfiguration af måler side Concept Determination De efterfølgende afsnit svarer til de 5 trin indenfor Concept Determination, som [van Deursen et.al.,2004] beskriver, og vil benyttes her til den anden interaktion Identify Potentially Useful Viewpoints I den første interaktion, for at definere target viewpoint, har jeg identificeret Modul viewpoint i form af klasse- og pakkediagrammer. Sammen med det, har jeg følt anbefalinger fra [Cristensen et al, 2004], at de mest betydelige krav til arkitekturen defineres og beskrives, svarende til mission i [IEEE 1471, 200]. Her, i den anden interaktion, vil jeg, udover Modul viewpoint, også benytte Component & Connector viewpoint, og Allocation viewpoint. Beskrivelse af disse kommer i afsnit Define Target viewpoints Som beskrevet i [van Deursen et al., 2004], er target views outputtet fra rekonstruktionsprocessen. Som var beskrevet i begyndelse af afsnit 6, har jeg besluttet, at afgrænse analyse områder i den anden interaktion med at tage udgangspunkt i usecases, som relaterer til konfiguration af en måler i BOS. Med udgangspunkt heri, bliver der opstillet følgende target viewpoints: Module viewpoint som var præsenteret og beskrevet under den første interaktion, se afsnit

43 Component & Connector (C&C) viewpoint - som var præsenteret og beskrevet under den første interaktion, se afsnit Define Source viewpoints I den første interaktion, definition af source viewpoints var drevet af den information, som kunne udtrækkes automatisk ved hjælp af Eclipse UML værktøj, MCSQL værktøj, sammen med den Manual inspektion af source kode, og observering af system opførsel under udførelse. I den anden interaktion har jeg afgrænset rekonstruktions område til usecases, som var beskrevet og præsenteret tidligere i afsnit De GUI komponenter, der repræsentere disse usecases, outputtet, som var genereret i den første interaktion i form af klasser og pakkerdiagrammer, og source kode base bliver til input til anden interaktion, og alt det er Source viewpoints her i den anden interaktion Define mapping rules Target Viewpoint Source Viewpoint Mapping Paskage diagram; Klassediagram Dir struktur Pakke struktur Java regler om pakker, Klasserne og pakker skal kun med, hvis de bruges af usecaserne Configuration klasser GUI klasser Projekt design konvention Simplificeret sekvensdiagram Pakke struktur, usecase implementering klasser Hierarkisk organisation af komponenter i pakker Førsteklasses repræsentation af kommunikation sti imellem komponenter 6.2 Reconstruktion execution Det følgende afsnit beskriver hvordan jeg har analyseret konfiguration af et tidlige implementerede målere. Jeg tage udgangspunkt i et Multical402 måler Data Gathering Ifølge Symphony, er formålet med Data gathering at indsamler data, som er nødvendige til rekonstruktionen fra systemets artefakter, hvor informationen om arkitekturen udtrækkes fra source kode, bygge filer, konfigurationsfiler. Disse data opsamles, og behandles i Knowledge Inference skrit. I dette skridt vil jeg lave sourcekode analyse, ud fra de usecases, som var beskrivet i Jeg vil afgrænse source kode analyse område ved at kigge kun på de relevante til disse usecases paskages og klasser, som var defineret under mappings rules i afsnit Sammen med det, vil jeg observere applikationen udførelse, læse source kode, bruge den information, som jeg har fået som input fra den første interaktion. 43

44 Source kode base analyse Som jeg fandt ud af i den første interaktion, består BOS framevorket af to projekter: BOS Server og Client, se figur 5.1. Jeg vil anvende reglen om navne konversioner, til at analysere Client source kode, for at finde de pakker og klasser, som hører til implementation af MC402 måler. Ved en manual analyse af Client projekt i Eclipse, fandt jeg følgende pakker, der indeholder navn mc402, og disse er: bosclent.view.congfig.mc402 bosclent.view.congfig.mc402.validator bosclent.view.congfig.mc402.modules bosclent.view.congfig.mc402.modules.modul1 Ved at ekspandere de enkelte pakker, kan jeg se indholdet af disse pakker, som det er vist i figur 7.4. Figur 7.4. Udsnit af pakkestruktur over Client delen, som er relevant til Multical402. Udtræk fra Eclipse Pakage Explorer. Ved en manuelt analysere af BOSServer projekt, kunne jeg finde de pakker, som er relevante til implementering af Multical402 måler, og som er: bosserver.communication.produkts.pks.db.mc402.module1 bosserver.communication.produkts.pks.db.mc402.modules. Sammen med det, ud fra inputtet fra den første interaktion om databasekomponent, og kommunikationskomponenten, kan jeg identificere pakker: bosserver.model.config bosserver.communication.produkts.pks.db, som initialisering af konfigurationsparametre, og implementerer databaseadgang, og. Indholdet af disse pakker vist i figur

45 Figur 7.5. Udsnit af pakkestruktur over Server del, som er relevant til Multical402. Udtræk fra Eclipse Pakage Explorer Usecase 1 Konfiguration af måler Som var beskrevet i afsnit 6.1. konfigureres der en sammensatte måler, som skal sættes op af hardware og software delen. Følgende sammensætning er opdelt på to usecases: Konfiguration af Hardware og Konfiguration af Software til en måler. Disse var beskrevet i For at finde ud af hvordan disse usecases er implementeret, har jeg manuelt analyseret de relevante dele af frameworket, som var præsenteret i afsnit Statisk information over serverkomponent til Multical402 Struktur Som resultat af den første interaktion fandt jeg ud, at det er nødvendigt at udvide serverdelen i BOS med en kommunikations- og databasekomponent, for at understøtte et nyt konfigurationsmodul. I denne interaktion har jeg udvalgt de konkrete klasser fra serverkomponenten, der indgår i database og kommunikationskomponenterne til Multacal402. Disse klasser bruges til at hente og gemme konfigurationen til Multical402, og derfor er relevant til begge usecases, som var introduceret i Figur 7.6 viser et klassediagram over serverkomponent til Multical

46 Figur 7.6 Klassediagram over serverkomponenten (Multical402). Klasser I det følgende redegøres der kort for de enkelte klasser i klassediagrammet: ConfigurationServer interface, som definerer de metoder, som klienterne skal have adgang til i server modulet. Interfacet indeholder traditionelle Create-Update-Delete (CRUD) metoder, samt metoden getitemgroups, der returnerer en liste af parametergrupper med alle parametre og deres egenskaber. Sidstnævnte anvendes til validering af konfigurationer. ConfigurationServer_Impl klasse implementer interfacet ConfigurationServer. Klassen er associeret med ConfigurationDB klassen, der tilbyder adgang til underliggende database. Multical402DB tilbyder adgang til MC402 database kos Kamstrup, der anvendes til at gemme konfigurationer for ordrer, samt indeholder parameterstykliste mm. for konfigurationsmodulet til MC402 måler. Klassen er associeret med klassen Multical402ConfigurationTable. Multical402ConfigurationTable er en hjælpe klasse, som indeholder en Hashtable af Configuration objekter igennem nedarving fra ConfigurationTable, og metoder til at hente og sætte en liste af configurationsobjekter, som er placeret i dette Hashtable objekt. PKSServerManager opretter og styrer mc402 ConfigurationServer objekt, som handler alle forespørgsler til MC402 database Dynamisk information over serverkomponent til Multical402 Sekvensdiagrammet i figur 7.7 viser de overordnede interaktioner mellem objekterne i serverkomponenten, når en klient forsøger at hente en konfiguration til en Multical402 måler. Diagrammet viser kun kald imellem de overordnede klasser. Se reglerne for opbygning af dette diagram, under mapping rules. Det fremgår af diagrammet, at ConfigurationServer objekt blot forwarder kaldet til MC402DB objektet, der tilbyder adgang til Prods databasen igennem kald af superklasens BaseBD 46

47 getconfigparams metode. Herfra udstrækkes alle ItemGroups data til MC402 måler ved hjælp af SP BOS_GetConfigParams. Sekvence diagram viser ikke interaktionerne mellem BaseDB og det CallableStatement, der indkapsler BOS_GetConfigParams stored procedure. Til sidst gemmes de indhentede ItemsGroups data i en ItemValidator objekt på clienten, som kommer fra den generelle pakke, som var beskrevet i afsnittet Figur 7.7: Simplificeret sekvensdiagram over de overordnede interaktioner mellem objekterne i serverkomponenten Statisk information over klientkomponent til Multical402 Ud fra den første interaktion fandt jeg ud af, at klientkomponent for en konfigurationsmodul udføres, som vist i figurt 5.3.1, af en brugergrænseflade, en kommunikationskomponent og konfigurator Configate. Jeg har taget udgangspunkt i brugergrænseflade figur 7.1 fra afsnit Her på skærmfigurt står, at det er Multical402 måler, der skal konfigureres. Derfor er det logisk at kigge på klasserne, som findes i bosclient.view.congfig.mc402 pakke, og bosclient.view.congfig pakke under Client delen, se figur

48 Struktur af den grafiske grænseflade Figur 7.8: Klassediagram for brugegrænseflade Klassediagrammet fra figur 7.8 viser nogle af de klasser, der udgør den grafiske brugegrænseflade på klienten. Ved opbygning af dette diagram, anvendes reglerne om at udvalget af kun de klasser, der indgår i denne usecase til at vise på diagrammet. Her kommer hjælpeklaserne ikke med. Det fremgår af diagrammet, at ItemValidator klassen fra Configate komponenten er associeret med MC402Configurator klasse, og som instantieres af MC402Panel, dvs. validering af konfigurationer sker via MC402Configurator. Validator interfase fra bosclient.view.config.common package er associeret med MC402Configurator klasse. Klasserne CustomerLabelValidator, TarifValidator, MBUSAddressValidator, MeterNumberValidator, CustomerTextValidator, DefaultMeterNumberValidator, CustomerTextValidator er MC402 specifikke valideringsklasser. De arver fra Validator interfase, og udgør validering af den grafiske brugegrænseflade på klienten. Ud over disse klasser, er der en del af nogle generelle valideringsklasser, som anvendes ved validering af den grafiskebrugegrænseflade. Kompleksitet over disse klaser vises i figur 7.12 i form af et klassehierarki. Klassen MC402Panel udgør brugegrænseflade til Multical402, og er associeret med 8 instanser af ConfigurationPannel klassen, der generaliserer over de brugegrænsefladekomponenter, der anvendes til at konfigurere måleren. Klassen implementerer MainConfigurationPanel, som er et hoved klasse for alle konfigurations paneler, og holder styr på alle de 8 instanser, som initialiseres af MC402Panel. ConfigurationPanel klassen er en generel klasse, der specialiseres af klasserne vist i figur

49 Hver af disse klasser udgør en brugegrænseflade komponent, der konfigurer hver deres del af MC402 måleren. Hver klasse mappes til en af de hovedgrupper, der er angivet i Item klassen i figur 5.8. Figur 7.9: Klassediagram over ConfigurationPanel. Der fremgå i figur 7.9, at ConfigurationPanel klassen indeholder metoder til at indsætte, hente, og validere konfigurationer for MC402 måler. Disse metoder er helt generelle, og behøver ikke overskrives af subklasserne. ConfigurationComponent er en abstrakte klasse, der indkapsler tilstand og adfærd for en komponent, der anvendes til at vælge parameter for en given parametergruppe. Klassen indeholder metoder til at indsætte og hente en given parameterkonfiguration, samt returnere id for gruppen der konfigureres af komponenten. De abstrakte metoder implementeres i konkrete subklasser, så disse kan anvendes til konfigurere en parameter. CompoBoxConfigurationComponent klassen anvendes til at vælge en bestemt parameter fra en compobox. Klassen udvider den generelle ConfigurationComponent klasse med de abstrakte metoder. TextFieldConfigurationComponent klassen anvendes til at angive en værdi for en bestemt parameter. Klassen implementerer, i lighed med klassen beskrevet ovenfor, de abstrakte metoder i den generelle ConfigurationComponent klasse. Feltet også acceptere heltal mellem en min og max værdi, såfremt den parameter, der skal konfigureres af komponenten indeholder egenskaber med navnet #MIN og #MAX. Der kan på parameterniveau knyttes en default værdi til feltet, ved at oprette en egenskab for parameter med navnet #DEFAULT Dynamisk information over klientkomponent til Multical402 Ved at afvikle BOSClient applikationen i Eclipse udvikling miljø, kunne jeg finde ud af hvordan applikationen fungerer. For at finde ud af, hvordan data til validering af skærmfigur 7.2, og 7.3 hentes, har jeg brugt debugger tools, som findes i Eclipseen. Dette har i første omgang resulteret i følgende sekvensdiagram. 49

50 Figur 7.10: Sekvensdiagram for MC402 klientkomponent (ind i loaddata metode på MC402Panel) Sekvensdiagram i figur 7.10 viser en delmængde af de interaktioner, der er mellem objekterne i MC402 brugergrænsefladen, når brugeren trykker på knap Konfigurer, se figurt 7.1. Når skærmfigur 7.2 skal vises frem, så kaldes der en update metode på MC402Panel objektet, som bliver kaldt videre på alle de paneler, der anvendes til at konfigurere måleren. Når update metoden invokeres på ConfigurationPanel objektet, søger dette for at opdatere alle konfigurationskomponenter, der er defineret i panelet, med de parametre, der er valide i forhold til den øjeblikkelige konfiguration. Ved styring af denne proces anvendes et Observer patern, som var identificeret tidlige under rekonstruktion, og som tillader et objekt til at uddelegere anmeldelser til andre objekter, uden at kalde direkte til disse objekter. Klassen MC402Panel er et Observer objekt (arver fra Observer interfacet), og indeholder en update metode, som kaldes når tilstanden af de observerede objekter (configurationer) ændre sig. Selve opdateringen sker, som vist i diagrammet, ved at ConfigurationPanel objektet finde id for hver komponent og efterfølgende udtrække en liste af valide parametre fra ItemValidator objektet. Denne metode sikrer, at der altid kun vises lovlige parameterværdier i de komponenter, hvor de enkelte parametre kan vælges/konfigureres. Hvis en bestemt item var tilknyttet til en af de Validator objekter, som er vist i figur 7.8, så bliver parameterværdi valideret af disse objekter i forhold til den valide visning. F.eks. formatering af double værdi, lukning eller åbning af et felt i forhold til, hvad der bliver valgt i et andet felt. Selv om sekvensdiagrammet i figur 7.10 viser interaktionerne for en specifik use-case Konfiguration af måler, er iterationerne i MC402Panel, MC402Configurator og ConfigurationPanel objekterne er så generel karakter, at de også anvendes, når der skal indsættes, hentes eller valideres konfigurationer. 50

51 6.2.3 Usecase 2 - Gem konfiguration af måler Som var tidlige beskrevet i afsnit 5.1.1, skal de konfigurerede måleres data valideres og gemmes i en ordre linje. Efter at man har været igennem usecase1, hvor hardware (usecase1.1) og software (usecase1.2) parametre var udvalgt, kan man gemme disse konfigurationer. Før dette kan lade sig gøre, skal alt det, der var valgt under konfigurationsforløbet valideres Validering af MC402 modul Tidlige i afsnittet var der præsenteret to forskellige valideringsformer, som anvendes i BOSFameworket. Ved en af valideringsformer anvendes der tabelstrukturen (se beskrivelse i afsnittet ), og ved anden, implementeres der speciale algoritmer i form af generelle valideringskomponenter, som kan genbruges af forskellige moduler. Dette vil f.eks. være gældende for algoritmerne til at validere formateringsmaske og skæringsdatoen. De valideringsklasser, som bruges af MC402 konfigurationsmodulet, findes i pakker bosclient.view.config.mc402.validator (MC402 specifikke), og i bosclient.view.config (generelle). Pakkediagram på figurt 7.11 viser de pakker der indgår i det samlede validering af MC402 modulet. Indholdet af pakken dk.unigate.configate.model er beskrevet i afsnit under Struktur af Modelkomponent. Pakken bosserver.util indeholder to klasser, som holder styr på at sammenligne Hardware (ItemConfigurationComparator) og Software (SWConfigurationComparator)valgene før og efter konfigurationen. Relationerne mellem resterende pakker: bosclient.view.config.mc402.validator og bosclient.view.config er vist under klassediagrammet i figur

52 Figur 7.11: Pakkediagram over valideringsdel af MC402 måler. Pakken bosclient.view.config.mc402 indeholder MC402 brugegrænseflade klasser, sammen med grænsefladen specifikke valideringsklaser, kontroller, og konfigurator klasse, som var nærmere beskrevet i afsnit (se klassediagram i figur 7.8). Klassediagram i figur 6.13 viser de klasser, der udgør validering af den grafiske brugegrænseflade på klienten, i form af klassehierarki. Figur Klassediagram over de klasser, der indgår i validering af MC402 konfigurationsmodul. Disse klasser holder styr på MC402 modul specifikke valideringer, som udføres på de forskellige felter, som indgår i software konfiguration, før de blive vist på skærmen. Fælles for disse klasser er, at de alle sammen implementer interface Validator fra bosclient.view.config.common. Denne 52

Digital Kommuneplan. Kravsspecifikation gennem brugerinvolvering

Digital Kommuneplan. Kravsspecifikation gennem brugerinvolvering Digital Kommuneplan Kravsspecifikation gennem brugerinvolvering Indhold Introduktion Afklaring af behov: Hvad skal digitale kommuneplaner kunne? Udarbejdelse og test af løsning: Hvordan skal digitale kommuneplaner

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

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

PCSYS Label Print Server. Labeludskrift på fælles platform til alle virksomhedens printere.

PCSYS Label Print Server. Labeludskrift på fælles platform til alle virksomhedens printere. PCSYS Labeludskrift på fælles platform til alle virksomhedens printere. PCSYS Overordnet set sørger en Label Print Server for, at en virksomheds etiketter har en høj kvalitet. Løsningen sørger for at berige

Læs mere

IT Support Guide. Installation af netværksprinter (direkte IP print)

IT Support Guide. Installation af netværksprinter (direkte IP print) IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:

Læs mere

10. Rapporter i BBR... 2

10. Rapporter i BBR... 2 Indholdsfortegnelse 10. Rapporter i BBR... 2 10.1 Reporting Services arkitektur... 2 10.2 Reporting Services i Nyt BBR... 3 10.3 Faste BBR-rapporter... 4 10.3.1 Kort beskrivelse af de 10 faste rapporter...

Læs mere

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test Struktureret Test og Værktøjer... 1 Appendiks til bogen Struktureret Test... 1 1. Definition og formål... 2 2. Kategorisering... 2 2.1

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

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Notat. Brug personas til at leve dig ind i brugernes liv

Notat. Brug personas til at leve dig ind i brugernes liv Notat SEGES P/S Koncern Digital Datadreven informationsformidling, personas og personalisering Ansvarlig JUPO Oprettet 17-03-2016 Projekt: 7464, Digitale relationer og datadreven informationsformidling

Læs mere

Anklagemyndighedens Vidensbase

Anklagemyndighedens Vidensbase Anklagemyndighedens Vidensbase Indhold 1 OM DENNE VEJLEDNING... 2 2 LOGIN... 3 3 SØGNINGER... 4 3.1 SØG EFTER DOKUMENTER... 4 3.2 NAVIGÉR DIG FREM... 5 3.3 KOMBINÉR SØGNING OG NAVIGATION... 6 3.4 VISNING

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

IFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU

IFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU Mohammad Hussain Parsianfar s102951 Indholdsfortegnelse 1 Introduktion... 3 1.1 Hvorfor er det interessant... 3 1.2 Formål... 4 2 Simplebim... 5 2.1 Præsentation af softwaren... 5 2.1.1 Brugergrænseflade...

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

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

IDAP manual Analog modul

IDAP manual Analog modul IDAP manual Analog modul Dato: 15-06-2005 11:01:06 Indledning Til at arbejde med opsamlede og lagrede analoge data i IDAP portalen, findes en række funktions områder som brugeren kan anvende. Disse områder

Læs mere

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

Arkitektur for begyndere

Arkitektur for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle

Læs mere

BIM Shark brugervejledning v1 Februar 2016

BIM Shark brugervejledning v1 Februar 2016 Indholdsfortegnelse 1 BIM Shark's mission... 2 2 Kom godt i gang... 2 2.1 Oprettelse af bruger... 2 2.2 Oprettelse af virksomhed... 3 2.3 Inviter medlemmer/accepter invitation/sende invitationer... 3 2.3.1

Læs mere

Kapitel 21: Softwarearkitektur designprincipper

Kapitel 21: Softwarearkitektur designprincipper Kapitel 21: Softwarearkitektur designprincipper Miriam Tang Jacob Jensen Lars Christensen Jacob Atzen Onsdag 9/3 Dagens program Definitioner Analyseværktøjer Designprocessen Raffinering Afrunding Design

Læs mere

APEX i Praksis Martin B. Nielsen. Navn. MBNDATA Emne

APEX i Praksis Martin B. Nielsen. Navn. MBNDATA Emne APEX i Praksis Martin B. Nielsen Navn MBNDATA Emne Foredragsholderen Oracle/APEX Arkitekt/udvikler/DBA Siden Oracle v.5 (1988) APEX Siden 2007, men før (Database provider, HTMLDB) MBNDATA siden 1996 MBNDATA

Læs mere

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med

Læs mere

TeamShare 3.0 Forbedringer til TeamShare Office

TeamShare 3.0 Forbedringer til TeamShare Office TeamShare 3.0 Forbedringer til TeamShare Office Kære TeamShare bruger, I min løbende orientering om alle de nye ting der kommer i TeamShare 3.0, vil jeg her give en beskrivelse af de forbedringer vi laver

Læs mere

Procedurer for styring af softwarearkitektur og koordinering af udvikling

Procedurer for styring af softwarearkitektur og koordinering af udvikling LEVERANCE 2.3 Procedurer for styring af softwarearkitektur og koordinering af udvikling Procedurerne vil omfatte: Planlægning af udfasning af gamle versioner af OpenTele Planlægning af modning af kode

Læs mere

10. Rapporter i BBR... 2

10. Rapporter i BBR... 2 Indholdsfortegnelse 10. Rapporter i BBR... 2 10.1 Reporting Services arkitektur...2 10.2 Reporting Services i Nyt BBR...3 10.3 Faste BBR rapporter...4 10.4 Selvgenerede BBR rapporter...5 10.5 BBR-Meddelelser...5

Læs mere

Anvendelse af BPT til manuel test

Anvendelse af BPT til manuel test DIAS 1 Konference HP Test brugergruppen Anvendelse af BPT til manuel test Agenda DIAS 2 _ Præsentation af mig selv _Manuel BPT _ Manuel BPT i KMD _Konklusion _ Diskussion og spørgsmål Præsentation DIAS

Læs mere

Formålet med undervisning fra mediateket er at styrke elevernes informationskompetence, således de bliver i stand til:

Formålet med undervisning fra mediateket er at styrke elevernes informationskompetence, således de bliver i stand til: Informationssøgning Mediateket ved Herningsholm Erhvervsskole er et fagbibliotek for skolens elever og undervisere. Her fungerer mediateket ikke blot som bogdepot, men er et levende sted, som er med til

Læs mere

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag Hvem er vi? Kursus Introduktion Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark 100 studerende med forskellig baggrund: software teknologi It og Kom

Læs 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

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

HVAD DU BØR VIDE OM ELEKTRONISKE PUBLIKATIONER PÅ NETTET. Nye regler for net-publikationers tilgængelighed

HVAD DU BØR VIDE OM ELEKTRONISKE PUBLIKATIONER PÅ NETTET. Nye regler for net-publikationers tilgængelighed HVAD DU BØR VIDE OM ELEKTRONISKE PUBLIKATIONER PÅ NETTET Nye regler for net-publikationers tilgængelighed Net-publikationer skal være tilgængelige Mere end 600.000 danskere har ét eller flere handicap,

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

Netkatalog upload. Forord: Formål:

Netkatalog upload. Forord: Formål: Netkatalog upload Forord: De data, I indsender som e-katalog, genbruges af SKI s kunder i de ordre, der sendes tilbage til Jer. Det er derfor vigtigt, både for kundes efterfølgende fakturakontrol; men

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

Bilag 6.1 SYDDANSK UNIVERSITET / ONLINE STRATEGI. Vision: Scenarier

Bilag 6.1 SYDDANSK UNIVERSITET / ONLINE STRATEGI. Vision: Scenarier Bilag 6.1 SYDDANSK UNIVERSITET / ONLINE STRATEGI Vision: Scenarier Et internationalt universitet med fokus på de studerende Vejviseren til dit rette valg Destination for læring & oplysning Livet & menneskene

Læs mere

DAXIF# - Delegate Automated Xrm Installation Framework. Delegate A/S

DAXIF# - Delegate Automated Xrm Installation Framework. Delegate A/S DAXIF# - Delegate Automated Xrm Installation Framework Delegate A/S Agenda Delegate A/S DAXIF# Kun et programmeringssprog Type stærke script (og selvdokumenterende) filer Unit tests afvikles før assembly

Læs mere

Teknologiforståelse. Måloversigt

Teknologiforståelse. Måloversigt Teknologiforståelse Måloversigt Fagformål Eleverne skal i faget teknologiforståelse udvikle faglige kompetencer og opnå færdigheder og viden, således at de konstruktivt og kritisk kan deltage i udvikling

Læs mere

Metoderne sætter fokus på forskellige aspekter af det indsamlede materiale.

Metoderne sætter fokus på forskellige aspekter af det indsamlede materiale. FASE 3: TEMA I tematiseringen skal I skabe overblik over det materiale, I har indsamlet på opdagelserne. I står til slut med en række temaer, der giver jer indsigt i jeres innovationsspørgsmål. Det skal

Læs mere

Hvad er InfoPath? Et program i Microsoft Office System En desktop applikation Platformen for en ny generation af elektroniske formularer

Hvad er InfoPath? Et program i Microsoft Office System En desktop applikation Platformen for en ny generation af elektroniske formularer Hvad er InfoPath? Et program i Microsoft Office System En desktop applikation Platformen for en ny generation af elektroniske formularer Office InfoPath 2007 kan hjælpe dig med at indsamle oplysninger

Læs mere

MSI pakke til distribution af AutoPilot komponenter.

MSI pakke til distribution af AutoPilot komponenter. MSI pakke til distribution af AutoPilot komponenter. Hermed følger en basal dokumentation for installation af AutoPilot msi pakken. Der vil i det følgende blive forklaret brugen af 4 programmer fra Microsoft,

Læs mere

Et kommercielt whitepaper er således et stærkt marketingsværktøj, der kan støtte beslutningstagere i valget af den ene løsning frem for den anden.

Et kommercielt whitepaper er således et stærkt marketingsværktøj, der kan støtte beslutningstagere i valget af den ene løsning frem for den anden. Sådan skriver du et whitepaper Et whitepaper er et almindeligt brugt værktøj til at introducere tekniske innovationer og nye produkter. Men der er meget at tage stilling til, når man skal skrive et whitepaper.

Læs mere

Udbud.dk Brugervejledning til leverandører

Udbud.dk Brugervejledning til leverandører Udbud.dk Brugervejledning til leverandører Vejledning til at anvende Udbud.dk Januar 2014 Indholdsfortegnelse 1. INDLEDNING... 3 2. OVERORDNET OPBYGNING AF UDBUD.DK... 4 2.1 FORSIDE OG NAVIGATION... 4

Læs mere

WORKCYCLUS. Handlingsplan. Vers 4.0. Juni 2013. Workcompany A/S. Amagertorvet 33, 4.sal. DK-1160 København K. www.workcompany.dk

WORKCYCLUS. Handlingsplan. Vers 4.0. Juni 2013. Workcompany A/S. Amagertorvet 33, 4.sal. DK-1160 København K. www.workcompany.dk WORKCYCLUS Handlingsplan Vers 4.0 Juni 2013 Workcompany A/S Amagertorvet 33, 4.sal DK-1160 København K www.workcompany.dk 1. Indholdsfortegnelse Handlingsplan... 3 Overblik på indsatsområder på handlingsplan...

Læs mere

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests Underbilag 14 C: Afprøvningsforskrifter til prøver tests Udbud om levering, installation, implementering, support, drift vedligehold af Borgeradministrativt System (BAS) Indhold underbilag 14 C Afprøvningsforskrifter

Læs mere

Introduktion. Jan Brown Maj, 2010

Introduktion. Jan Brown Maj, 2010 Jan Brown Maj, 2010 Introduktion OIOXML har eksisteret som det centrale datastandardiseringsparadigme siden 2002. Til OIOXML-konceptet er der et regelsæt betegnet OIO Navngivnings- og Deignregler (NDR),

Læs mere

Automatisering Af Hverdagen

Automatisering Af Hverdagen Automatisering Af Hverdagen Programmering - Eksamensopgave 10-05-2011 Roskilde Tekniske Gymnasium (Kl. 3,3m) Mads Christiansen & Tobias Hjelholt Svendsen 2 Automatisering Af Hverdagen Indhold Introduktion:...

Læs mere

KOMMENTARSKABELON. Høring af CCS Informationsstruktur. Foreningen af Rådgivende Ingeniører, FRI og DANSKE ARK ime@frinet.dk pd@danskeark.

KOMMENTARSKABELON. Høring af CCS Informationsstruktur. Foreningen af Rådgivende Ingeniører, FRI og DANSKE ARK ime@frinet.dk pd@danskeark. KOMMENTARSKABELON Dato Dokument Høring af CCS Informationsstruktur Udfyldt af: E- mail: Foreningen af Rådgivende Ingeniører, FRI og DANSKE ARK ime@frinet.dk pd@danskeark.dk Navn på er Inge Ebbensgaard

Læs mere

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets. Dagens program Har alle fået? Har nogen betalt for meget? Hav jeres koder klar Domæner change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog Hvad er widgets Hvad er

Læs mere

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Hans Hüttel 27. oktober 2004 Mathematics, you see, is not a spectator sport. To understand mathematics means to be able to do mathematics.

Læs mere

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

1-1 Usability evaluering af den simple udgave

1-1 Usability evaluering af den simple udgave BILAG 1 s. 2 af 19 Bilag 1 1-1 Usability evaluering af den simple udgave...5 1-2 Heuristisk inspektion af den simple udgave...6 1-3 Usability evaluering af den avancerede udgave...8 1-4 Heuristisk inspektion

Læs mere

Rapport vedrørende. etniske minoriteter i Vestre Fængsel. Januar 2007

Rapport vedrørende. etniske minoriteter i Vestre Fængsel. Januar 2007 Rapport vedrørende etniske minoriteter i Vestre Fængsel Januar 2007 Ved Sigrid Ingeborg Knap og Hans Monrad Graunbøl 1 1. Introduktion Denne rapport om etniske minoriteter på KF, Vestre Fængsel er en del

Læs mere

1. Indledning. 2. Laswell s fem spørgsmål. Hvem (afsender) Siger hvad (budskab)

1. Indledning. 2. Laswell s fem spørgsmål. Hvem (afsender) Siger hvad (budskab) Indholdsfortegnelse 1. Indledning... 2 2. Laswell s fem spørgsmål... 2 Hvem (afsender)... 2 Siger hvad (budskab)... 2 I Hvilken Kanal (Mediet)... 3 Til Hvem (Modtageren)... 3 Og Med Hvilken Effekt (Virkningen)...

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

Læs mere

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE Kapitel 8: Oprettelse og administration af dokumentgodkendelse KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE Målsætninger Introduktion Målsætningerne er at: Oprette dokumentgodkendelsessystemets

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Forenkling af kommunale affaldsregulativer. Fase 4: Elektronisk videndeling

Forenkling af kommunale affaldsregulativer. Fase 4: Elektronisk videndeling Forenkling af kommunale affaldsregulativer. Fase 4: Elektronisk videndeling Birgit Holmboe, Anders Christiansen og Berit Hallam Rambøll Birgitte Refn Wenzel Mazanti-Andersen, Korsø Jensen & Partnere Miljøprojekt

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

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. .NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS

Læs mere

L Æ R I N G S H I S T O R I E

L Æ R I N G S H I S T O R I E LÆRINGS HISTORIE LÆRINGS HISTORIE Kom godt i gang Før I går i gang med at arbejde med dokumentationsmetoderne, er det vigtigt, at I læser folderen Kom godt i gang med værktøjskassen. I folderen gives en

Læs mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

Microsoft Dynamics CRM 2013

Microsoft Dynamics CRM 2013 Microsoft Dynamics CRM 2013 Dashboard, PowerPivot og PowerView CRM User Group Denmark www.easyconsult.dk Præsentation Henrik Jensen Microsoft Dynamics CRM-arkitekt hj@easyconsult.dk Arbejdet med CRM-systemer

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

Kom godt i gang med Digital Transformation via din Microsoft ERP-platform

Kom godt i gang med Digital Transformation via din Microsoft ERP-platform INDLÆG 16 DIGITAL TRANSFORMATION Kom godt i gang med Digital Transformation via din Microsoft ERP-platform Shila Henriksen 03.11.2015 CGI Group Inc. 2015 Shila Henriksen Uddannelse Civiling, Software Eng.

Læs mere

Guide til opsætning af Google Analytics Nye kunder Visiolab introduktion

Guide til opsætning af Google Analytics Nye kunder Visiolab introduktion Guide til opsætning af Google Analytics Nye kunder Visiolab introduktion Denne guide vil gøre dig i stand til at opstille din Google Analytics konto. Ydermere vil den være en hjælp til at forstå, hvordan

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

Bør kragerne flyve mod øst?

Bør kragerne flyve mod øst? Bør kragerne flyve mod øst? 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),

Læs mere

Bevægelses analyse med SkillSpector. Version 1.0 Sidste opdatering: 14/05-2008

Bevægelses analyse med SkillSpector. Version 1.0 Sidste opdatering: 14/05-2008 Bevægelses analyse med SkillSpector Version 1.0 Sidste opdatering: 14/05-2008 Hvad er SkillSpector SkillSpector er software program til video baseret bevægelses analyse. Der er følgende muligheder med

Læs mere

Udbud.dk. Brugerdokumentation, formidler. Vejledning til at anvende Udbud.dk

Udbud.dk. Brugerdokumentation, formidler. Vejledning til at anvende Udbud.dk Udbud.dk Brugerdokumentation, formidler Vejledning til at anvende Udbud.dk oktober 2012 Indholdsfortegnelse 1. Indledning... 3 2. Overordnet opbygning af website... 4 2.1 Forside og navigation... 4 2.2

Læs mere

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner..

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner.. Indholdsfortegnelse Indholdsfortegnelse.. side 2 Adgang til webgraf 3 Opslag adresse... 4 Styring af layout.. 5 Zoom funktioner.. 6 Panorere på skærmen. 7 Information om grafikken.... 8-10 Print et udsnit.....

Læs mere

OIS - Applikationskatalog

OIS - Applikationskatalog OIS - Applikationskatalog OIS arkitekturprodukter 25. januar 2018 Indledning Dokumentationen omkring OIS er struktureret med inspiration fra OIO Arkitekturguidens arkitekturreol, således at arkitekturprodukterne

Læs mere

CCS Formål Produktblad December 2015

CCS Formål Produktblad December 2015 CCS Formål Produktblad December 2015 Kolofon 2015-12-14

Læs mere

ReportLoq Miljørapportering: når du vil, hvor du vil

ReportLoq Miljørapportering: når du vil, hvor du vil ReportLoq Miljørapportering: når du vil, hvor du vil Airloq gasanalyse 2 REPORTLOQ: MILJØRAPPORTERING - NÅR DU VIL, HVOR DU VIL ReportLoq Miljørapportering: når du vil, hvor du vil FLSmidths webbaserede

Læs mere

Workflow 8.0 stort spring med store forbedringer

Workflow 8.0 stort spring med store forbedringer Workflow 8.0 stort spring med store forbedringer Performanceforbedringer gennem et stærkt samarbejde mellem funktionerne som de kendes og et nyt, overskueligt og gennemført layout. En mærkbar videreudvikling

Læs mere

Beskrivelse af indhold i ITOS kurset: Master Class i Kravspecifikation indenfor embeddede systemer

Beskrivelse af indhold i ITOS kurset: Master Class i Kravspecifikation indenfor embeddede systemer Beskrivelse af indhold i ITOS kurset: Master Class i Kravspecifikation indenfor embeddede systemer Introduktion Dag 1 1:00 før frokost Bordet rundt - forventninger Formål Resultat for kursister Opgaver

Læs mere

Opgrader til nyeste Dynamics AX version og profiter af løbende opdateringer

Opgrader til nyeste Dynamics AX version og profiter af løbende opdateringer INDLÆG 13 : DYNAMICS AX Opgrader til nyeste Dynamics AX version og profiter af løbende opdateringer Tonny Bybæk, Lau Bøgelund Larsen Opgrader til nyeste Dynamics AX version og profiter af løbende opdateringer

Læs mere

Metoder og produktion af data

Metoder og produktion af data Metoder og produktion af data Kvalitative metoder Kvantitative metoder Ikke-empiriske metoder Data er fortolkninger og erfaringer indblik i behov og holdninger Feltundersøgelser Fokusgrupper Det kontrollerede

Læs mere

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE Udfordring INDHOLDSFORTEGNELSE 1. Forløbsbeskrivelse... 3 1.1 Overordnet beskrivelse tre sammenhængende forløb... 3 1.2 Resume... 5 1.3 Rammer

Læs mere

UMS Velkomst Byder nye brugere velkommen til skolen

UMS Velkomst Byder nye brugere velkommen til skolen Forord UMS Velkomst modulet giver mulighed for at give de kommende studerende et godt førstehåndsindtryk ved skolestart - den indledende kontakt til de studerende er umådelig vigtig. Velkomst modulet består

Læs mere

SCADA systemet System 2000 - Version 15

SCADA systemet System 2000 - Version 15 System 2000 SCADA systemet System 2000 - Version 15 System 2000 - Version 15 har styrket fokus på fremtidens krav til driftsanlæg indenfor brancherne vandværker, renseanlæg, fjernvarme samt fødevarer og

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

Introduktion. Unifaun Online 29-04-2014

Introduktion. Unifaun Online 29-04-2014 Introduktion Unifaun Online 29-04-2014 2 Indhold 1 Introduktion til Unifaun Online... 3 1.1 Grundlæggende navigering... 3 1.2 Søgning af information... 3 1.3 Indtastning af faste oplysninger... 4 1.4 Din

Læs mere

Hvordan måler vi vores indsats?

Hvordan måler vi vores indsats? Hvordan måler vi vores indsats? Oplæg til netværksmøde for økonomiske rådgivere V/ Charlotte Holm 29.oktober 2014 Oplæg om at dokumentere socialt arbejde De næste to timer handler om at dokumentere socialt

Læs mere

System & Metode ApS præsenterer. En effektiv dokumentportal

System & Metode ApS præsenterer. En effektiv dokumentportal System & Metode ApS præsenterer En effektiv dokumentportal Den 7. september 2006 Velkommen Martin Hecht Olsen, Direktør System & Metode blev etableret i 1989 IBM Business Partner Salg direkte til kunde

Læs mere

// Mamut Business Software Installationsguide: Basis

// Mamut Business Software Installationsguide: Basis // Mamut Business Software Installationsguide: Basis Introduktion Indhold Denne guide forenkler installationen og førstegangsopstarten af Mamut Business Software. Hovedfokus i denne guide er enkeltbrugerinstallationer.

Læs mere

Computerens Anatomi Af Mathias og Mark

Computerens Anatomi Af Mathias og Mark Computerens Anatomi Af Mathias og Mark Planlægning af projekt Case Størstedelen af nutidens unge har deres egen smartphone, computer og fjernsyn. Computere i alle afskygninger bliver fortsat en større

Læs mere

Netværk & elektronik

Netværk & elektronik Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars

Læs mere

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2 Version 1.0 Jan 2013 ROB-EX 4.2 Indhold Hovedskærmens opbygning... 2 Tastaturgenveje... 3 Hovedskærmbilleder... 4 Stamdata generelt... 5 Kalender... 6 Opret/rediger kalender... 7 Specifik kalender pr.

Læs mere

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Den afsluttende prøve i AT består af tre dele, synopsen, det mundtlige elevoplæg og dialogen med eksaminator og censor. De

Læs mere

Spil om LEDELSE. Rigtig god fornøjelse!

Spil om LEDELSE. Rigtig god fornøjelse! Alle virksomheder har medarbejdere, som ledes af ledere. Derfor spørger både ledere og medarbejdere sig selv, hvad effektiv ledelse egentlig er og hvad det består af. Undersøgelser har samtidig vist, at

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

Curriculum Vitae. Type År Sidst Niveau Type År Sidst Niveau

Curriculum Vitae. Type År Sidst Niveau Type År Sidst Niveau Curriculum Vitae Personoplysninger Navn: Søren Hvidkjær Andersen Adresse: Solbærmarken 5 By: 8641 Sorring Mobil: +45 24 82 98 87 E-mail: soren@hvidand.dk Født: 16. Juli 1971 Civilstand: Introduktion Gift

Læs mere

Visioner, missioner og værdigrundlag i de 50 største virksomheder i Danmark

Visioner, missioner og værdigrundlag i de 50 største virksomheder i Danmark KAPITEL 1 Visioner, missioner og værdigrundlag i de 50 største virksomheder i Danmark Kapitel 1. Visioner, missioner og værdigrundlag... Virksomheder har brug for gode visioner. Strategisk ledelseskommunikation

Læs mere

InfoPro 2i. Profil Softwarefirmaet MaCom A/S blev etableret i 1992. Vi udvikler og markedsfører dokumenthåndteringssystemet InfoPro.

InfoPro 2i. Profil Softwarefirmaet MaCom A/S blev etableret i 1992. Vi udvikler og markedsfører dokumenthåndteringssystemet InfoPro. InfoPro 2i Profil Softwarefirmaet MaCom A/S blev etableret i 1992. Vi udvikler og markedsfører dokumenthåndteringssystemet InfoPro. Mission MaCom's mission er at sikre og skabe struktur i vores kunders

Læs mere

Visual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet?

Visual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet? Visual Studio Team System Team Build en grundpille i søgen efter it-projektproduktivitet? Agenda: Introduktion Hvorfor Automatiseret Build Microsoft Team Build Rapportering/Data warehouse Commentor A/S

Læs mere

Kravspecifikation For. Gruppen

Kravspecifikation For. Gruppen Kravspecifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 LÆSEVEJLEDNING...3 2. GENEREL BESKRIVELSE...4 2.1 SYSTEM BESKRIVELSE...4 2.2 SYSTEMETS FUNKTION...4

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12 Installation og Drift Aplanner for Windows Systemer Version 8.15.12 Aplanner for Windows løsninger Anbefalet driftsopsætning Cloud løsning med database hos PlanAHead Alle brugere, der administrer vagtplaner

Læs mere