Grafisk presentation av SCDR 1



Relevanta dokument
Hantera informationspaket i system för bevarande

En snabb titt på XML LEKTION 6


Projektarbete 2: Interaktiv prototyp

Grafisk visualisering av en spårbarhetslösning

Slutrapport för JMDB.COM. Johan Wibjer

KUNDREGISTER Sid 2(7) Teknisk specifikation

Tolv dagar med Microsoft Office Excel 2007

ÖrebroCupen. Institutionen för Ekonomi, Statistik och Informatik, ESI Informatik, Klientprogrammering för webbsystem, 5 poäng

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Utvärdering av modelleringsvertyg som använder XMI/UML 2.0

Tips och tricks 1 Cadcorp SIS

Objektorienterad programmering

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

Migrera till Word 2010

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

QlikView - Lathund för Flödesmodellen bas

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

LEFI Online. Anslutningsinformation

Labbrapport: HTML och CSS

Inlämningsuppgift 2. DA156A - Introduktion till webbutveckling Teknik och samhälle, Malmö högskola Oktober 2012

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Omtentamen i OOSU2, 21 augusti 2014

Användarmanual HOIF.org

LATHUND FÖR MALVIN. 1 Registrera ny användare Logga In Glömt lösenord Annonsering Skapa annons...

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Smartair System. TS1000 Version 4.23

För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara:

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter

Manual för Typo3 version 4.04

Innehåll. WordWall låter dig som pedagog skapa övningar, aktiviteter och presentationer med några enkla klick.

Användarmanual för Hemsida

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

TABELLHANTERING. Formler, fungerar det att ha i tabeller?

F R Å G O R & S VA R. Open eplatform v SKAPAD AV: Hillar Loor, Senior Partner

7 Mamut Client Manager

Kom igång med LUPP 6.1

Lumbago - Förord. Välkommen till Journalprogrammet Lumbago.

Data visualization on Android

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

Inspektion Användarmanuel

Användarmanual Pagero Connect 2.0

Manual för version V2

Program för skrivarhantering

KOMMUNLEDNINGSKONTORET / IT-AVDELNINGEN. Office 365. Lathund

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

ALEPH ver. 18 ALEPH Digital Asset Module (ADAM)

Manual. Logga in. OBS! Kontrollera så att korrekt epostadress finns ifyllt. Ändra inga andra uppgifter!

En handledning för studerande på Högskolan Kristianstad

Riskanalys fo r kritiska IT-system - metodbeskrivning

Anslutning till Mina meddelanden

Installationsanvisningar

Nyheter och förändringar i advantum release 3.0

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Instruktioner för användning av Accessapplikationen till uppföljning av skyddsvärda arter kärlväxter samt AnnexIIkärlväxter

Introduktion. Byggstenar TDBA

ANVÄNDARMANUAL ANSLUTA TILL REGION HALLAND VIA CITRIX

1284_omslag.qxd :13 Sida 1 ECDL START OFFICE 2003 Allmän IT Windows XP Word 2003 Outlook 2003

Quick start manual. Smart-House Rev 2.0

DRAFT Mottagningswebben Kravspecifikation

En introduktion till Complex Drafting demo version

Att hämta raps-data via Internet

OneDrive/SharePoint. Innehåll

Projektpresentation Wapspel

Användarmanual Mina sidor Timvärden

IT för personligt arbete F2

Användarhandledning Rapportgenerator Version: 1.1

Dokumenthantering för RA-dokument

KOMMUNALT AKTIVITETSMEDLEMSBIDRAG

[MANUAL TILL LUVITS GRUNDFUNKTIONER]

Att göra investeringskalkyler med hjälp av

Hogia Administration AB bedriver kontinuerlig utveckling av programmen och reserverar sig för avvikelse mellan program och handbok.

Utvecklingen av ett tidregistrerings- och faktureringssystem

Instruktioner för beställningar och kontoadministration för abonnenter av inlästa läromedel

Elektroniskt informationsutbyte mellan arbetsgivare och Försäkringskassan. Information om filöverföring

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Säkra pausade utskriftsjobb. Administratörshandbok

Teknikprogrammet, inriktning informations- och medieteknik

Kom igång med LUPP 6.0

INSTRUKTION Specifikation E modul.doc

INSTALLATION AV VITEC MÄKLARSYSTEM. Studentversion

Rebus Web-import av kunder

För installationer av SQL Server som inte görs från Hogias installation måste följande inställningar göras:

Kravspecifikation. Hantering av systemdokument

19. Skriva ut statistik

Systemkrav. Systemkrav för Hogia Approval Manager. Gäller från och med programversion

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Manual Jourläkarschema Närhälsan V7 - Version 1.0

Alla rättigheter till materialet reserverade Easec

TNM065 Johan Eliasson johel964 Dokumentstrukturer Kristina Engström krien026

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Nordic Business Monitor

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

STADSBYGGNADSFÖRVALTNINGEN. Aktivitetsstöd. Behörigheten Föreningsadministratör. Datum: Version 2. Sidan 1 (30)

IBM SmartCloud for Social Business. IBM SmartCloud Engage och IBM SmartCloud Connections Användarhandbok

Quick Guide till Mahara och din Portfolio

ADAD-net. Användarmanual INDIVIDEN. Råbe och Kobberstad Februari 2010

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Transkript:

Grafisk presentation av SCDR 1 Johnny Nyström 16 juni, 2008 Examensarbete i Datavetenskap, 20 poäng Handledare vid CS-UmU: Per Lindström Handledare vid BAE Systems Hägglunds: Gun Persson Examinator: Lennart Edblom UMEÅ UNIVERSITET INSTITUTIONEN FÖR DATAVETENSKAP 901 87 UMEÅ 1 System Configuration Data Repository En omfattande databas inom BAE Systems Hägglunds AB

Sammanfattning Det här examensarbetet utfördes under hösten 2007 på BAE Systems Hägglunds AB i Örnsköldsvik. Syftet var att presentera information ifrån en databas så att det på ett enklare och tydligare sätt går att se vilka kopplingar som finns mellan signaler, datapaket och noder. En annan efterfrågad del var att se hur ett datapaket är sammansatt av signaler för att se om det finns lediga, upptagna eller dubbelbokade positioner. För att få fram information om de olika positionerna har man tidigare varit tvungen att rita upp datapaketet på papper, vilket varit både krångligt och tidsödande. Resultatet blev en webbapplikation som kan presentera informationen ifrån databasen på olika sätt, där kopplingarna mellan bl.a. signaler, noder och datapaket framgår. I applikationen finns också en sida där det enkelt går att plocka fram ett datapaket för att sedan granska vilka typer av positioner det innehåller. Nyckelord: XML, XSL, dotnet,.net, Excel, UML, GraphViz i

Graphical presentation of SCDR Summary This master s thesis was performed during the fall 2007 at BAE Systems Hägglunds AB in Örnsköldsvik. The aim was to present information from a database in a way to simplify and clarify the view of the connections between signals, frames and nodes. To see how a frame is composed of signals in order to know what positions are unoccupied, occupied or double-booked is also a part of this work. Previously, the information regarding different positions in the frame has been drawn up on paper, which is difficult and timeconsuming. A web application is the result of this thesis and it can present the information from the database in different kinds of ways, where connections between signals, nodes, frames, etc. appears. In the web application, there is also a page where a frame can be easily selected and subsequently inspected to see the containing positions. Key Words: XML, XSL, dotnet,.net, Excel, UML, GraphViz iii

Förord Under mina studieår har mitt intresse växt för webbutveckling och webbapplikationer. Kombinationen av att förenkla verktygen för användarna och samtidigt vara i teknikens framkant ger mig mycket inspiration till att göra ett bra arbete. Det är stimulerande att använda datorer för att förverkliga sina idéer det ger så många möjligheter. Vetskapen om att webbutveckling innefattar många olika sorters verktyg såsom databaser och olika programmeringsspråk har efter mina år vid Institutionen för Datavetenskap, Umeå universitet, gett mig näring till vidare inhämtning av kunskaper inom det oändliga området. Uppdragsgivaren, BAE Systems Hägglunds AB, är ett av världens ledande företag inom konstruktion av stridsfordon. Militära system leder ofta teknikutvecklingen och därför är branschen mycket attraktiv för dem med ett intresse i ny teknik vilket jag har. Dessutom har Hägglunds förstått det betydelsefulla med att skapa lättanvända verktyg för användarna, däribland webbapplikationer. Jag är tacksam för att ha fått möjligheten till att göra det här projektet. Den här rapporten är en del av ett självständigt projekt, ett examensarbete på D-nivå om 20 poäng. Examensarbetet är ett krav för en Filosofie magisterexamen i Datavetenskap samt del av en Teknologie kandidatexamen i Elektronik. De båda utbildningarna har jag läst vid Umeå universitet. Örnsköldsvik, mars 2008 v

Innehållsförteckning 1 Inledning...1 1.1 Bakgrund... 1 1.2 Rapportens disposition... 2 2 Problembeskrivning...3 2.1 Bakgrund... 3 2.2 Syfte... 4 2.3 Mål... 4 3 Presentation av SCDR-data...5 3.1 Introduktion... 5 3.2 Frågeställningar... 5 3.3 Struktureringsverktyg... 5 3.3.1 UML Unified Modeling Language... 6 3.3.2 SysML Systems Modeling Language... 7 3.3.3 WebML Web Modeling Language... 7 3.3.4 Hägglunds-varianten... 8 3.3.5 GraphViz... 8 3.4 För- och nackdelar... 9 3.5 Diskussion...10 3.5.1 Slutsats...10 4 Översikt av använda teknologier... 11 4.1 XML...11 4.1.1 Syntax...11 Deklaration...12 Element...12 Attribut...12 Rotelement...12 vii

viii INNEHÅLLSFÖRTECKNING Nästlade element...13 Tomma element...13 Entiteter...13 4.1.2 Användningsområden...14 4.2 Stilmallar...14 4.2.1 XSL...14 XSL Transformations (XSLT)...14 XML Path Language (XPath)...14 4.2.2 Cascading Style Sheets (CSS)...15 4.3 Microsoft.NET 2.0 Framework...15 4.4 Microsoft Excel...15 4.5 Webbtjänster...16 HyperText Transfer Protocol (HTTP)...16 Simple Object Access Protocol (SOAP)...16 Web Service Description Language (WSDL)...17 4.6 Integrerad Windows autenticering...17 5 Genomförande... 19 5.1 Metoder och möjligheter...19 5.1.1 Förstudie...19 5.2 Uppstart...19 5.2.1 Begränsningar...20 5.3 Förstudie...20 5.3.1 Vad som önskades...20 Signaler i datapaket...21 Karta över kopplingar...21 5.3.2 Hur det skulle göras...22 5.4 Projektet...22 6 Implementation...25 6.1 Verktyg...25 6.2 Signaler i datapaket...25

INNEHÅLLSFÖRTECKNING ix Excel-mall med makro...25 6.2.1 Intel- eller Motorola-format...26 Motorola-format...26 Intel-format...26 Beräkning av offset...26 6.2.2 Tekniken bakom Excel-mallen...27 Varför mall?...27 Bladen i mallen...27 Automatisk beräkning...28 Definiera namn på funktioner...28 Villkorsstyrd formatering av celler...31 Makro...32 6.3 Kartor över signaler och noder...32 6.4 Plocka information ur XML-filen...33 6.5 Struktur i databasen...35 6.6 Generera XML-fil...36 6.7 Mastersida...37 6.8 Generell konfigurering...37 6.9 Excel-mallen i webbapplikationen...38 6.10 Klassbibliotek...38 6.11 Säkerhet...39 7 Resultat... 41 7.1 Signaler som bitar i datapaket...41 7.1.1 Exportera till Excel...43 7.1.2 Exportera till Excel med användande av mall...43 7.2 Kartor över signaler och noder...46 7.2.1 Signalen i centrum...46 7.2.2 Noden i centrum...48 7.3 Generera en XML-fil...48

x INNEHÅLLSFÖRTECKNING 8 Slutsats... 51 8.1 Problem under arbetets gång...51 8.2 Restriktioner och begränsningar...52 8.3 Framtida arbete...52 9 Erkännanden...55 Referenser...57 10 Appendix A Akronymer... 61

Figurförteckning Figur 2.1 Befintlig applikation, endast textbaserad presentation. Vid klick öppnas länken i en ny ruta (se figur 2.2)... 3 Figur 2.2 Länken öppnas i ett nytt fönster med rätt ID och namn.... 4 Figur 3.1 Exempel UML Klassdiagram.... 6 Figur 3.2 Exempel SysML Kravdiagram (Requirement diagram)... 7 Figur 3.3 Exempel WebML Graf... 8 Figur 3.4 Exempel Hägglunds-varianten.... 8 Figur 3.5 Exempel GraphViz processdiagram... 9 Figur 5.1 Bild till förstudiefråga....21 Figur 5.2 Karta över önskade kopplingar, en tänkt karta...22 Figur 6.1 Bladen i Excel-mallen....27 Figur 6.2 Excel-mallen med bladet test synligt...28 Figur 6.3 Excel-mallen med bladet count synligt...29 Figur 6.4 Den aktuella XML-filen i systemet....33 Figur 6.5 Figuren visar Solution Explorer i VS.NET där filer och referenser finns. Inringat de webbreferenser till webbtjänster som finns...36 Figur 6.6 Generera en ny XML-fil...36 Figur 6.7 En Mastersidas uppbyggnad med både fasta och dynamiska delar. Mastersidan är den yttre ramen och delarna rubrik, sidhuvud och sidfot är fasta medan delen innehåll är dynamisk och byts ut genom att klicka på länkar i sidhuvudet...37 Figur 7.1 Sidan Signaler i frame. 1) Välj typ av datapaket; SIL, PDO eller J1939. 2) Det finns 7 sidor att visa. Figuren visar de 15 första datapaketen av typen SIL...41 Figur 7.2 1) Ett datapaket är valt. 2) Signalerna i datapaketet visas i en lista där information om signalerna presenteras; ID, namn, storlek, offset och format (Intel eller Motorola). 3) Klicka på knappen Exportera till Excel för att exportera tabellen direkt till Excel. 4) Klicka på knappen Exportera till Excel, använd mall för att exportera tabellen till en förpreparerad mall (se följande figurer)....42 xi

XII TABELLFÖRTECKNING Figur 7.3 Excel öppnas i webbläsaren och tabelldatat presenteras i ett nytt tomt dokument...43 Figur 7.4 Excel öppnat med mallen och tabellen importerad. 1) Tryck på knappen för att starta makrot. Färgningen av rutan startas...44 Figur 7.5 1) Färgningen av rutan gjord. Rött visar kollisioner (där det är fler än en signal på en bit) och grönt visar lediga positioner. I det här fallet är bit 0 och 1 gröna (lediga pos.) och inga bitar är röda (inga kollisioner finns). 2) Färgkodning som gör det lättare att urskilja vilken signal som ligger var i rutan. Färgkodningen är samma som i count-bladet (se Figur 7.7)...44 Figur 7.6 Test av kollision. 1) En tvåa ändras till en åtta vilket ger en kollision på 6 bitar. 2) Kollisionen syns i rutan....45 Figur 7.7 Indikering av vilka bitar som kolliderar syns i bladet count...45 Figur 7.8 Sidan Karta över signaler. 1) Välj en signal att titta på...46 Figur 7.9 1) En signal är vald. 2) Signalen visas med namn, ID och beskrivning. 3) Den nod som skapar signalen. 4) Det datapaket signalen skickas i. 5) Den/de noder som tar emot signalen. 6) Gå direkt till sidan Signaler i frame och skicka med denna frame-id (se Figur 7.10 nedan) 7) Gå direkt till instans av nod, signal eller frame (datapaket) i SCDR-applikationen....47 Figur 7.10 Sidan visar Signaler i frame där datapaketets ID skickats med från föregående sida (sidan Karta över signaler ). 1) Endast det aktuella datapaketet visas...48 Figur 7.11 Sidan Karta över noder. 1) Välj en nod genom att klicka vidare på siffrorna i nederkant. 2) Välj en IP-bus om en sådan existerar. 3) Välj en CAN-bus om en sådan existerar. Klicka på siffrorna i nederkant. 4) Välj en SIL-signal genom att klicka på siffrorna i nederkant. 5) SIL-framen visas till den SIL-signal som för tillfället är vald....49 Figur 7.12 Sidan Generera XML. 1) En text visar hur gammal den aktuella XML-filen är så det enkelt går att bestämma om den behöver förnyas. 2) En tabell visar vilken produkt, variant, release och språk XML-filen har. 3) Välj produkt, variant, release och språk för att generera en ny XML-fil att använda....50 Figur 8.1 Önskad utökning av Excel-mallen. Nummer syns för varje bit i rutan...53

Tabellförteckning Tabell 3:1 Några struktureringsverktygs för- och nackdelar... 9 Tabell 5:1 Ett 64-bitars datapaket (frame)...21 Tabell 6:1 Beräkning av offset. 3 exempel presenteras...26 Tabell 6:2 Uppskalad tabell av Figur 6.3 där bladet count syns med tio signaler (rad 3-12). Siffrorna i tabellen refererar till tabellen av datapaketet i Figur 6.2. Radnumrering med siffror längst till vänster och kolumnnumrering med bokstäver högst upp....29 Tabell 6:3 Tabellen visar signaler på Intel-formatet...30 Tabell 6:4 Början och slutet av den XSL-fil som används för att informera om vilken XML-fil som för tillfället finns i webbapplikationen. Längst till vänster står det radnummer som endast används som referens i texten och inte ska vara med i filen. I denna tabell visas rad 1-13 samt 36...33 Tabell 6:5 Resten av XML-filen. Radnummer, som inte ska vara med i XSLfilen, syns till vänster. Här raderna 14-35...34 Tabell 6:6 Ett kort XML-dokument för att förklara XSL. Innan XSLmatchningen....35 Tabell 6:7 Det virtuella resultatet av en körning med dokumentet i Tabell 6:6 som befintlig XML-fil. Efter XSL-matchningen...35 xiii

1 Inledning Denna rapport är en del av ett examensarbete som är utfört vid institutionen för datavetenskap, Umeå universitet. Uppdragsgivare för detta arbete är BAE Systems Hägglunds AB avdelning Inbyggda system och det utfördes mellan september 2007 och februari 2008. BAE Systems Hägglunds AB 2 i Örnsköldsvik är en del av en koncern som har sitt huvudkontor i Storbritannien. Företaget är en av världens ledande tillverkare av militära fordonssystem. Hägglunds har som huvuduppgift att bygga strids- och terrängfordon, detta från ritbordet till produktion och leverans. Till de kända hör CV90, som tillverkats i olika utföranden under 20 års tid, och den nyutvecklade högteknologiska SEP, som bl.a. använder elmotorer för tyst drift. Hägglunds är också känd för de bandvagnar som byggs och säljs i ett flertal varianter, där de oftast anpassas efter beställarnas önskemål. Fordonen levereras till fem kontinenter, över 40 länder i världen, bl.a. Holland, Tyskland, Danmark och Storbritannien. I Örnsköldsvik sysselsätts ca 1200 personer med allt från utveckling till produktion och företaget omsatte ungefär 3 miljarder kronor 2007. [BSH] [BAE] 1.1 Bakgrund Kommunikationen mellan olika enheter i fordonen var från början elektrisk, något som med tiden har blivit digitaliserat och styrs med hjälp av ett antal datorer. Denna kommunikation är väldigt viktig att den fungerar och är korrekt då den styr allt från vindrutetorkare och framdrivning till avfyrningsmekaniken i stridsfordonen. För att hålla reda på hur denna datakommunikation går mellan olika enheter används en databas i utvecklingen, där alla kopplingar mellan signaler och enheter finns lagrade. Denna databas har med tiden blivit mycket komplex. Hur kan denna information presenteras tydligare? 2 BAE Systems Hägglunds AB kommer i fortsättningen att refereras till som Hägglunds. 1

2 KAPITEL 1. INLEDNING 1.2 Rapportens disposition Kapitel två innehåller en problembeskrivning där bakgrund, syfte och mål tas upp. I kapitel tre återfinns den djupstudie som gjorts om hur data från en databas presenteras på ett lättöverskådligt sätt med olika tillämpbara verktyg. Kapitel fyra innehåller en översikt av använda teknologier och kan användas som ett uppslagsverk. I kapitel fem återfinns metoder och möjligheter samt förklaring av genomförandet med uppstart, förstudie och projektets fortskridande. Implementationen återfinns i kapitel sex, där alla sammanlänkade delar förklaras. Projektets resultat redovisas med bilder i kapitel sju och en slutsats med bl.a. problem under arbetet och framtida arbete återfinns i kapitel åtta. Slutligen kapitel nio där erkännanden har gjorts till alla som bidragit till ett bra examensarbete. Bilagan innehåller en tabell över använda förkortningar.

2 Problembeskrivning Här kommer problemet att beskrivas i detaljerade termer där först bakgrunden till projektet tas upp, sedan syftet och målet. 2.1 Bakgrund All datakommunikation inom Hägglundsfordon dokumenteras i en omfattande databas. Kopplad till denna databas finns en applikation som enbart har textbaserad presentation av informationen (se figur 2.1), där länkningar endast står med text (ID och namn) och man måste klicka sig vidare för att se mer av vad det är (se figur 2.2). Det betyder att det kommer upp ännu ett fönster och det blir till slut svårt att överblicka. De användare som utvecklar programvara till fordonen använder sig ofta av applikationen för att få fram de uppgifter som behövs. De har ibland svårt att förstå hur dessa länkningar hänger ihop i det stora hela och behöver ofta rita upp det på ett papper. Därför önskar de sig en sorts karta där man kan välja att titta på en nod och se vilka noder som ansluter till den. Länk: ID - Namn Figur 2.1 Befintlig applikation, endast textbaserad presentation. Vid klick öppnas länken i en ny ruta (se figur 2.2). 3

4 KAPITEL 2. PROBLEMBESKRIVNING ID Namn Figur 2.2 Länken öppnas i ett nytt fönster med rätt ID och namn. 2.2 Syfte Ex-jobbet går ut på att grafiskt presentera informationen i en befintlig och rätt omfattande databas, som här kallas SCDR 3, innehållandes all dokumenterad datakommunikation inom Hägglundsfordon. Detta för att göra informationen lättare att förstå för alla användare, även de som inte är så insatta i hur informationen i databasen hänger ihop. 2.3 Mål I ett första steg är arbetsuppgifterna att på ett enkelt och strukturerat sätt presentera den efterfrågade informationen; man ska kunna filtrera på funktion, elektronikenhet etc. Denna presentation ska vara grafisk för att ge en bättre överblick hur exempelvis signaler är kopplade till varandra, vilka signaler som beror av vem etc. Signalerna kan vara sammankopplade i långa kedjor från en länk till ett flertal länkar, vilket medför att lösningen måste klara denna dynamik. Lösningen ska vara en hjälp för användare som inte är så insatta i hur informationen är länkad till varandra. För att tydligare se vilken signal som är kopplad till vilken, vilka beroenden en signal har och var den lagras. Presentationen av dessa data ska göras med hjälp av anpassning av befintligt verktyg eller med ett nyutvecklat verktyg. 3 System Configuration Data Repository

3 Presentation av SCDR 4 -data Här presenteras djupstudien om struktureringsverktyg närmare. Det kommer också diskuteras kring de verktyg som valts ut till studien. 3.1 Introduktion Kapitlet kommer att ta upp några av de olika struktureringsverktyg som finns för att grafiskt presentera information ifrån en databas på bästa tänkbara sätt för att det ska vara lättöverskådligt men ändå detaljerat. Informationen ska presenteras på en webbsida. Det ska gå att använda informationen för både vana avancerade användare som för nybörjare. Diskussioner kommer att göras för att bedöma struktureringsverktygens för- och nackdelar samt det kommer att ges några exempel på hur det kan se ut när de olika verktygen används. 3.2 Frågeställningar Det finns förstås en hel del frågor att besvara där de mest grundläggande är: Vad finns det för struktureringsverktyg? Vad används de till? Vad är dess för- och nackdelar? Hur ser de ut? I de följande avsnitten kommer ovanstående frågor att besvaras. 3.3 Struktureringsverktyg Börjar man söka efter struktureringsverktyg på Internet så finns det en hel del att välja på, både kända och mer okända. Väljer man ut de som känns mest relevanta (för detta projekt) för att vidare studera dess för- och nackdelar så finns följande kvar: UML SysML WebML Vid efterforskningarna på befintliga verktyg hos Hägglunds dök en delvis egenutvecklad variant upp. Den presenteras här som 4 System Configuration Data Repository 5

6 KAPITEL 3. PRESENTATION AV SCDRF F-DATA Hägglunds-varianten. För att förstå vad dessa struktureringsverktyg är för något så följer här en kort presentation till var och en av dessa. Det finns ett verktyg med öppen källkod för att rita upp diagrammen automatiskt som heter GraphViz, vilket också förklaras nedan. 3.3.1 UML Unified Modeling Language UML är ett objektorienterat modellspråk för att specificera och visualisera system. Språket ägs och utvecklas av OMG (Object Management Group) som är en ickevinstdrivande organisation. Version 2.0 släptes i två delar: Superstrukturen i oktober 2004 och infrastrukturen i november 2005. Version 2.1 är den senaste versionen av UML och blev klar i oktober 2007. [UMLWE] UML är applicerbar på alla domäner och är språk- och plattformsoberoende, vilket gör språket mycket gångbart inom systemarkitekturen. Verktyg som Rational Rose är populära för att rita UML-diagram. [ELMA] Modellspråket togs fram gemensamt av Grady Booch, Jim Rumbaugh och Ivar Jacobson. De sammanförde sina tre likartade språk och skapade på så sätt en världsstandard som är fri att använda. UML 2.0 består av 13 olika diagramtyper där de grovt sett kan delas in i tre kategorier: beteende, interaktion och struktur. Till kategorin struktur hör t.ex. klassdiagram, objektdiagram och strukturdiagram. [UMLWE] Användningsområde och exempel Används för att specificera och visualisera de flesta system. Figurkälla: http://www.conceptdraw.com/products/img/ ScreenShots/cd5/uml/UML_Class-diagram.gif Figur 3.1 Exempel UML Klassdiagram.

KAPITEL 3. PRESENTATION AV SCDRF F-DATA 7 3.3.2 SysML Systems Modeling Language SysML är ett domänspecifikt modellspråk för systemutveckling och är en profil av UML. Språket använder sig av sju av de tretton diagramtyper som UML 2.0 har samt adderar två nya. SysML är mer flexibelt och uttryckbart än UML samt minskar UML s mjukvaru-centriska begränsningar. Från och med april 2006 finns SysML med bland OMG s modellspråk. [SYSWE] Användningsområde och exempel Som UML men inte lika tungt att förstå och mera domänspecifikt för systemutveckling. Figurkälla: http://www.dotnetguru2.org /media/req.jpg Figur 3.2 Exempel SysML Kravdiagram (Requirement diagram). 3.3.3 WebML Web Modeling Language WebML tillhandahåller grafiska, än så länge formella, specifikationer inneslutna i en komplett designprocess, vilken kan bli stödd av ett visuellt designverktyg. Huvuddragen av designprocessen i WebML är: Uttryckning av webbapplikationens struktur med en högnivå-beskrivning. Tillhandahållning av mångfaldiga vyer för samma innehåll. WebML använder fyra modeller för att specificera en webbsida: strukturell modell hypertext modell presentationsmodell personifieringsmodell [WEBML] Användningsområde och exempel Används till designprocesser för webbapplikationer.

8 KAPITEL 3. PRESENTATION AV SCDRF F-DATA Figurkälla: http://tfs.cs.tuberlin.de/agg/examples/xmltranshtmlpage/figures/webml-graph.png Figur 3.3 Exempel WebML Graf. 3.3.4 Hägglunds-varianten Hägglunds-varianten är en blandning mellan SysML och en egenutveckling för att passa ändamålet som är beskrivande funktionsspecifikationer för bl.a. elsystem. Dock finns det ingen dokumentation om hur man använder den så det är lite svårt för den som inte är insatt att förstå. En insatt person har kort berättat vad verktyget är och hur det används inom Hägglunds. Användningsområde och exempel Används till att bygga funktionsspecifikationer över flöden i t.ex. datakommunikationen mellan databussar. CCAN CRCAN MRF GN PM VCAN VI Figur 3.4 Exempel Hägglunds-varianten. 3.3.5 GraphViz GraphViz 5 är ett paket med verktyg baserat på öppen källkod som används till att bl.a. automatisera utritningsprocesser. Initialt skapat av AT&T Research Labs för 5 Graph Visualization Software, hemsida: http://www.graphviz.org/

KAPITEL 3. PRESENTATION AV SCDRF F-DATA 9 att rita grafer i t.ex..net språk. Det tillhandahåller också bibliotek med mjukvaruapplikationer för att använda verktygen. [GRVIW] Figur 3.5 Exempel GraphViz processdiagram. Figurkälla: http://www.graphviz.org/ Gallery/undirected/process.png Verktyg för.net webbapplikationer QuickGraph 6 är ett bibliotek som innehåller allmän grafisk datastruktur och algoritmer för.net. QuickGraph kan användas till webbapplikationer med.net 2.0 framework 7. 3.4 För- och nackdelar Verktyg Fördel Nackdel UML SysML + Öppen för alla + Organisation som förvaltar + Fungerar på allt (språk- & plattformsoberoende) + Mindre än UML och därför lättare applicera + Mer flexibelt och uttryckbart än UML + Öppen för alla Omfattande och därför tungrodd metod Väldigt dokumentationstung Trögföränderlig WebML + Grafiska specifikationer Svår att realisera Hägglundsvarianteka + Använder sig av SysML:s styr- Ingen dokumentation och egna förbättringar Tabell 3:1 Några struktureringsverktygs för- och nackdelar. 6 QuickGraph finns att ladda hem gratis från Codeplex: http://www.codeplex.com/quickgraph 7 Läs mer om.net 2.0 Framework i avsnitt 4.3 på sidan 15.

10 KAPITEL 3. PRESENTATION AV SCDRF F-DATA 3.5 Diskussion Det finns fördelar med alla verktyg och Hägglunds-varianten är den bästa ur synvinkeln den tar SysML:s styrka och dessutom använder sig av det som behövts för att passa in i Hägglunds system. Dock finns inget program som kan använda verktyget för att automatisera en utritningsprocess. Detta sagt trots det inte finns någon dokumentation att tillgå för att förstå verktyget. Därför är GraphViz ett bra verktyg, det går att automatisera utritningsprocessen med det och det går att koppla ihop med.net genom t.ex. gratisverktyget QuickGraph. 3.5.1 Slutsats Använd GraphViz om tanken är att utritningsprocessen ska automatiseras eller använd Hägglunds-varianten för att använda ett bra verktyg som är bekant inom företaget.

4 Översikt av använda teknologier I detta kapitel beskrivs olika teknologier och verktyg, som användes under implementationen av systemet. Det tjänar endast som en snabb översikt över begreppen. De tekniker som beskrivs har varit nödvändiga i utvecklandet av den applikation som detta examensarbete utmynnat i. Dock behöver teknikerna inte förstås av användarna av applikationen. 4.1 XML XML, som står för extensible Markup Language, är ett universellt och utbyggbart märkspråk. XML är klassificerad som utbyggbart språk eftersom det är tillåtet för användaren att definiera sina egna taggar. XML blev en W3C 8 -rekommendation 9 i februari 1998 och specifikationen har sedan dess släppts i version 1.1 upplaga 2 [XW3], som är den senaste versionen. Språket är en förenklad efterträdare till SGML 10. På grund av SGML s komplexitet utvecklades XML som snabbt har etablerats som det nya konceptet av märkspråk för Internet. [XWEN] XML [X10]: används för att strukturera data t.ex. kalkylblad, adresslistor och tekniska ritningar. är en uppsättning regler för hur text ska representeras och det ger möjlighet att utrycka sig såväl oberoende som specifikt för plats, kultur och språk. använder liksom HTML taggar och attribut (se utförligare förklaring i kommande avsnitt). är utan licens, är plattformsoberoende och har brett stöd, vilket är till fördel för utvecklare. 4.1.1 Syntax [XWEN] [XWSV] Den syntax som används i XML ser ut så här: <namn attribut="värde">innehåll</namn> XML är dessutom skiftlägeskänsligt, så således är namn, Namn och NAMN tre olika element. 8 World Wide Web Consortium, http://www.w3c.org 9 W3C-rekommendationen av XML, http://www.w3.org/xml/ 10 Standard Generalized Markup Language 11

12 KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER Genom att kombinera flera element och bygga upp en hierarki kan olika information representeras. En boksamling beskriven med XML ges som exempel: <?xml version="1.0" encoding="iso-8859-1"?> <boksamling> <bok språk="engelska"> <titel>xsl Dictionary</titel> <författare>sally Manello</författare> </bok> <bok språk="svenska"> <titel>xml genom exempel</titel> <författare>benoit Marchal</författare> </bok> </boksamling> I de följande avsnitten kommer det att refereras tillbaka till ovan exempel. Deklaration Den första raden i exemplet ovan är en XML-deklaration. Det är en rad som talar om vilken version av XML som används men kan också innehålla information om vilken kodning på tecken som används och externa filer. Raden är valfri. Element Fjärde raden i exemplet ovan anger att elementet som heter titel finns och att innehållet i det elementet är XSL Dictionary. Elementet är själva grunden för XML-dokument och inleds med namnet inom vinkelparanteser, <titel>, och avslutas på samma sätt men med ledande snedstreck, </titel>. Ett element kan innehålla andra element. Ett exempel är elementet boksamling i exemplet ovan, som innehåller två element som heter bok. Bok innehåller i sin tur elementen titel och författare. Förutom andra element kan det innehålla text. Attribut Även attribut kan ingå i ett element. Ett attribut läggs till i starttaggen för ett element och har ett namn samt ett värde. I exemplet ovan har elementet bok ett attribut med namnet språk och som är satt till svenska eller engelska. Ett element kan inte ha flera attribut med samma namn och värdet på ett attribut måste anges inom enkla eller dubbla citationstecken. Rotelement Alla XML-dokument måste ha exakt ett rotelement. Alla andra element måste finnas inuti detta element. I exemplet ovan är elementet med namnet boksamling ett rotelement.

KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 13 Nästlade element Eftersom ett dokument endast får innehålla ett rotelement och alla andra element måste finnas inuti detta så måste det gå att nästla elementen. I exemplet ovan innehåller elementet bok de två elementen titel och författare. Element får aldrig överlappa varandra. Följande är ett exempel på felaktig kod eftersom h1, em och p överlappar varandra: <h1>här är en <em>rubrik</h1> <p>med</em> en paragraf</p> Korrekt skrivet skulle det se ut så här: <h1>här är en <em>rubrik</em></h1> <p><em>med</em> en paragraf</p> Tomma element Om ett element inte har något innehåll förutom attribut kan elementet stängas i starttaggen. Detta skulle innebära att <bok></bok> kan skrivas som <bok/> eller <bok /> vilket innebär det finns tre ekvivalenta skrivsätt. Entiteter Entiteter används i XML för att representera en bit data med ett annat namn och det finns fem fördefinierade entiteter. Dessa är: & = ampersand, & < = mindre än, < > = större än, > &apos; = apostrof, " = citationstecken, Andra entitetsreferenser ska deklareras och detta görs då i mallen för dokumentet.

14 KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 4.1.2 Användningsområden XML används för att strukturera och organisera information/data, till skillnad från HTML som används till att åskådliggöra och visa data. De olika datasystemen som ska skicka data mellan varandra kanske körs på olika plattformar och är implementerade i olika språk. Då behövs ett gemensamt format som är lätt att tolka. Genom att strukturera data på ett visst sätt och genom att definiera en mall för hur denna struktur ska se ut kan de olika systemen läsa in data på sitt eget sätt och behöver inte bry sig om hur de andra systemen läser eller skriver den data som ska utbytas. [XWSV] Några exempel på strukturerad data som kan utbytas i form av XML är kalkylblad, adresslistor, databasinformation, konfigurationsparametrar och tekniska ritningar. [X10] 4.2 Stilmallar 4.2.1 XSL XSL, extensible Stylesheet Language, är en standard inom XML-konceptet för presentation, filtrering och transformering av XML-dokument. Språket är en stilmall med W3C 8 -rekommendation, vilket är en internationell standard. XSL använder en XML-notation och beskriver hur filer kodade i XML ska presenteras eller transformeras (se XSLT). [XSLWE] Med en XSL-fil går det att välja vad som ska presenteras från en XML-fil, och dessutom i vilken ordning det ska presenteras. Det finns många olika regler att använda och den intresserade läsaren hänvisas till referenslitteratur som [ASP] och [XML]. XSL Transformations (XSLT) XSLT är en teknik som används när man omvandlar ett dokument till ett annat genom transformering. Till exempel ändrar ordningen på innehållet, lägger till information eller för att välja ut valda delar av grundelementet. Det skapas ett nytt XML-dokument av processen, som inte behöver följa samma stilmall som grundelementet. XSLT är en applikation av XML och man använder XPath för att identifiera de objekt som ska transformeras. [XSLT] XML Path Language (XPath) XML Path Language är en syntax för att identifiera det objekt som man vill göra något med, t.ex. hitta, hämta eller bearbeta. Objektet kan exempelvis vara ett elementinnehåll eller attributvärde. Syntaxen används inom dokumentet och XPath används som en del i syntaxen för XSLT. [XPATH]

KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 15 4.2.2 Cascading Style Sheets (CSS) Cascading Style Sheets, som översatt till svenska blir stilmall, är ett språk som beskriver presentationsstilen för ett strukturerat dokument såsom HTML och XML. Till exempel kan typsnitt, textstorlek och färg ändras genom stilmallen och tekniken är ett sätt att göra många sidor enhetliga genom att applicera samma stilmall på alla. CSS är den vanligaste stilmallen att använda tillsammans med webbsidor (HTML). Eftersom stilmallen oftast lagras i en separat fil så går det lätt att uppdatera utseendet på alla sidor samtidigt. Det är vanligt att man skriver CSS när man menar CSS2, som är version 2.0 av CSS och som för övrigt är den senast utkomna versionen. CSS är en W3C-rekommendation. [CSS] 4.3 Microsoft.NET 2.0 Framework.NET uttalas dotnet och är en uppsättning av datorprogram för sammankoppling av information, system och enheter som Microsoft utvecklat. I många fall baseras.net på webbtjänster..net Framework är en standardiserad plattform för att köra.net-program och är ur utvecklingssynpunkt språkoberoende. Allt som krävs är att programmeraren kan översätta koden till MSIL 11. MSIL är bytekod och JIT 12 -kompileras när programmet körs av.net Framework. Detta förutsätter alltså att användaren av.net-program har detta ramverk installerat på sin dator. För att göra språket plattformsoberoende finns flera standarder att utnyttja. Standarderna beskriver bland annat hur program ska kunna köras i flera miljöer utan att behöva skrivas om, vilka språk som kan användas för att skriva programmen och hur de görs språkoberoende. Det finns flera programmeringsspråk som stöds av.net Framework, bl.a. C# och Visual Basic.NET. I basbiblioteket som följer med i.net Framework finns t.ex. användarinterface, anslutning till databas, kryptering, webbapplikationsutveckling och nätverkskommunikation. Det som kom i version 2.0 var bl.a. Masterssida, som gör att alla sidor ser likadana ut, och nya webbkontroller. [NET] 4.4 Microsoft Excel Excel är att kalkylbladsprogram skrivet och distribuerat av Microsoft. Till programmets egenskaperna hör beräkning, diagramverktyg, pivåtabeller och makroprogrammering i VBA (Visual Basic for Applications). Excel tillåter användaren att ändra utseendet på kalkylbladet som t.ex. typsnitt, teckenattribut och cellutseende. Tillsammans med makroprogrammering är Excel ett oslagbart verktyg att använda vid bl.a. beräkningar och diagramritning. I den senaste versionen av Ex- 11 Microsoft Intermediate Language 12 Just In Time

16 KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER cel, version 2007, används Office Open XML. Detta är en sorts XML-format som Microsoft har utarbetat där hela dokumentet inklusive makrot går att spara ner som XML. I Excel version XP, som introducerade funktionen att kunna spara ner dokumentet till en XML-fil, finns inte möjligheten att spara ner makrot i samma fil. [EXL] 4.5 Webbtjänster Definitionen fritt översatt: En webbtjänst är ett mjukvarusystem som är designat att ge stöd för maskintill-maskin interaktion över ett nätverk. Det har ett gränssnitt som är beskrivet i ett maskinprocessor format (särskilt WSDL 13 ). Andra system interagerar med webbtjänsten genom föreskrivna beskrivningar genom användande av SOAP 14 -meddelanden, normalt skickat via HTTP 15 med en XMLomvandling i kombination med andra webbrelaterade standarder. [WSG] Funktionaliteten i en webbtjänst [WSW]: Webbtjänstens funktionalitet är publikt beskriven i en WSDL-fil. Webbtjänster kommunicerar med andra applikationer genom XMLmeddelanden, särskilt i SOAP-format. Webbtjänster använder generellt ett standardiserat nätverksprotokoll, såsom HTTP. De flesta webbtjänster använder en serviceorienterad arkitektur (SOA 16 ). HyperText Transfer Protocol (HTTP) HTTP är det kommunikationsprotokoll som används för att överföra webbsidor på Internet. Senaste versionen av HTTP är 1.2. [HTTP] Simple Object Access Protocol (SOAP) SOAP är ett protokoll för att utbyta XML-baserade meddelanden över datornätverk, primärt med de underliggande protokollen HTTP och HTTPS 17. [WSW] 13 Web Service Description Language 14 Simple Object Access Protocol 15 HyperText Transfer Protocol 16 Service-Oriented Architecture 17 HyperText Transfer Protocol over Secure socket layer

KAPITEL 4. ÖVERSIKT AV ANVÄNDA TEKNOLOGIER 17 Web Service Description Language (WSDL) WSDL är ett XML-format som tillåter servicegränssnitt att bli beskrivna tillsammans med detaljer om deras bindningar till specifika protokoll. Används i normala fall för att generera server- och klientkod samt för konfiguration. WSDL används oftast i kombination med SOAP och XML schema för att leverera webbtjänster över Internet. [WSW] 4.6 Integrerad Windows autenticering Integrerad Windows autenticering används för att reducera antalet inloggningar som krävs för att komma åt en webbsida i t.ex. ett Windows nätverk. Det kallas för single sign on (egen översättning: engångsinloggning) och är en funktion som stöds av Microsoft Internet Information Server. Det gör det möjligt för webbläsaren att automatiskt logga in på en webbsida med hjälp av informationen om den användare som är inloggad på den aktuella datorn. [IWA]

5 Genomförande Eftersom specifikationen från början var väldigt vag, så gjordes en förstudie. En förstudie görs för att ta reda på vad som efterfrågas, om det finns några särskilda önskemål, hur det ska göras etc. 5.1 Metoder och möjligheter Den koppling/relation mellan signaler och enheter som efterfrågas finns för närvarande inte integrerad i databasen utan är något som kanske behöver läggas till för att man ska kunna filtrera på denna egenskap. Dock är det sagt att ändringar på strukturen i databasen inte är populära varför andra möjligheter bör vägas in först. Det finns möjligheter att spara hela databasen som en XML-fil för att på så vis kunna filtrera fram informationen. I en snar framtid kommer det vara möjligt att exportera den framsökta informationen i SCDR till en Excel-fil 18 för vidare behandling med t.ex. makron och Visual Basic skript. 5.1.1 Förstudie En förstudie behöver göras för att få fram vad som efterfrågas. Den kan delas in i två delar, där den ena delen svarar på vad som ska visas grafiskt ifrån databasinformationen och vilka filtermöjligheter som ska finnas. Den delen besvaras genom att intervjua användare av SCDR-applikationen. Den andra delen svarar på vilka möjliga sätt det går att plocka sökt information från databasen och vilket av sätten som är det lämpligaste i det här fallet. Exempelvis direkt från databasen, via XML-fil eller utkopierat till Excel-format. Svaret på den delen kommer genom diskussion med IT-avdelningen. 5.2 Uppstart När projektet börjat komma igång bestämdes det snabbt att det skulle göras en webbapplikation och att den skulle göras i.net 2.0. Beslutet gjordes för att det enkelt skulle gå att bygga på den befintliga SCDR-applikationen. Dock ändrades tillägget ganska snabbt från att vara en påbyggnad till att vara en helt fristående webbapplikation. Ändringen gjordes för att utvecklandet av den nya webbapplikationen inte skulle störa användandet av den befintliga SCDR-applikationen. 18 Funktionen är under utveckling av BAE Systems Hägglunds IT-avdelning och testas under rapportens skrivande på en testserver. 19

20 KAPITEL 5. GENOMFÖRANDE Det var inte heller klart om allt det nya skulle implementeras för användande innan en riktig utvärdering gjorts. Men för att senare enkelt kunna migrera de två applikationerna byggdes den nya kring en Mastersida 19. Webbapplikationen medför: enkelhet Inget behöver installeras lokalt på datorerna och inget hämtas lokalt (allt hämtas från en central server). portabel/integrerbar Går att lägga in i befintlig SCDR-applikation. tillgänglig Alla som kommer åt SCDR kommer åt applikationen. Det behövs endast intranet för att köra. uppgraderbar Endast en kopia behöver uppdateras, den på servern. snabb access Eftersom applikationen görs för att spara tid så är det viktigt att den är optimerad med korta åtkomsttider. 5.2.1 Begränsningar Delen med filtrering på funktion, elektronikenhet etc. som uttrycks i ursprungliga målet utföres ej. Begränsningen för att den kräver ändring/tillägg i databasen och tiden inte kommer att räcka till för en undersökning av hur det påverkar befintliga applikationer m.m. kopplade till denna databas samt implementationen av detta i och mot databasen. 5.3 Förstudie I det här fallet gjordes en förstudie för att få fram vilka önskemål användarna av systemet har. Det som också undersöktes i förstudien var vilken anslutningsform till databasen som var den bästa. De följande två avsnitten svarar på vad som önskades respektive hur anslutningen skulle göras. 5.3.1 Vad som önskades För att få fram vad som önskades ställdes en fråga till användare av SCDR. Frågan var vad som önskades och skickades via mail till tio anställda där sju svarade med önskemål. Frågan som ställdes var: Vad skulle du önska att se som just nu är svårt att få överblick över? (T.ex. hur signaler sammanlänkas, se bild) 19 Se förklaring till Mastersida i avsnitt 6.7 på sidan 37.

KAPITEL 5. GENOMFÖRANDE 21 Figur 5.1 Bild till förstudiefråga. Det framkom många svar och det som var gemensamt för många av svaren är de som följer. Signaler i datapaket En svårighet är att få en uppfattning av hur ett datapaket (frame) är sammansatt av signaler. I ett datapaket om 64 bitar skickas ett flertal signaler i olika storlekar. Ett datapaket ska packas optimalt utan att några signaler skriver över varandra eller bitar lämnas tomma. Tabellen som används kan ses i tabell 5:1 nedan. Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 63 62 61 60 59 58 57 56 1 55 54 53 52 51 50 49 48 2 47 46 45 44 43 42 41 40 3 39 38 37 36 35 34 33 32 4 31 30 29 28 27 26 25 24 5 23 22 21 20 19 18 17 16 6 15 14 13 12 11 10 9 8 7 7 6 5 4 3 2 1 0 Tabell 5:1 Ett 64-bitars datapaket (frame). Karta över kopplingar Något som också önskades var att få upp en karta över alla kopplingar i databasen. De trivialaste kopplingarna var mellan noder, bussar, signaler och datapaket. Ett exempel ses i Figur 5.2. Det som skulle vara bra att få presenterat på samma sida är vilket datapaket en signal ingår i, signalen själv och vilken nod som skapat signalen. Just nu måste man klicka sig fram i flera steg för att få fram denna information.

22 KAPITEL 5. GENOMFÖRANDE Nod Datapaket med signaler Nod Datapaket med signaler Nod Figur 5.2 Karta över önskade kopplingar, en tänkt karta. 5.3.2 Hur det skulle göras Valet föll för att använda XML som databas då det inte går att få ut den efterfrågade informationen på ett lätt sätt annars. I SCDR-applikationen är det komplexa SQL-frågor 20 som genererar fram informationen till de sidor som visas. Dessutom blir applikationen oberoende av om SCDR byter plattform för databasen då XML är ett standardiserat format som alltid går att generera fram och använda. Det går enkelt att generera en färsk XML av den databas man är intresserad av genom en länk på SCDR-applikationens webbsida. För projektet finns det färdiga webbtjänster att använda för att enkelt generera denna XML-fil. 5.4 Projektet Applikationen använder en XML-fil av databasen för att presentera den information som efterfrågats. En del av informationen exporteras till en Excel-mall med makron för att visa hur signalerna i ett datapaket är placerade. Användandet av en XML-fil gör applikationen fristående från databasstrukturen, dvs. det spelar ingen roll vilken typ av databasplattform som används (t.ex. MySQL, MS-SQL), de allra flesta kan göras om till en XML-fil. Databasen kan med andra ord byta plattform utan att applikationen påverkas eftersom en XML-fil, som följer en världsstandard, används. Den senaste informationen i databasen kan, genom genererande av en ny XMLfil, sparas ned i applikationen som en XML-fil på ett enkelt sätt. På en webbsida kan man välja en av de produkter som användaren har behörighet att se och generera en XML-fil av denna. De behörigheter som används i applikationen är desamma som de som används i SCDR-applikationen. 20 Frågor som ställs till databasen, skrivna i SQL så att databasen förstår dem.

KAPITEL 5. GENOMFÖRANDE 23 Excel-mallen innehåller makron som gör det möjligt att visa hur ett datapaket (frame) är uppbyggt (visar upptagna och lediga positioner) genom att importera värden på signaler från databasen.

6 Implementation Här kommer en beskrivning av hur webbapplikationen och det som byggts i projektet att presenteras utförligt. Kapitlet börjar med att presentera de använda verktygen för att fortsätta med de delar som implementerats. Det är många delar som måste samverka för att webbapplikationen ska fungera fullt ut. I slutet av kapitlet beskrivs hur Excel kopplades ihop med webbapplikationen. 6.1 Verktyg Vid byggandet av webbapplikationen användes en hel del olika tekniker och verktyg. De främst använda är XML/XSL, Microsoft Visual Studio.NET 2005 och Microsoft Excel XP. Till fillagring användes versionshanteringsprogrammet Star- Team och till rapportskrivandet Microsoft Word XP. Valet av Visual Basic som programmeringsspråk var tvåfaldigt. Dels var det för att makron i Excel skrivs i det språket, dels för att det var ett annat språk att använda än de som använts i universitetsvärlden och därför skulle fungera som utvecklande inom ett nytt programspråk. 6.2 Signaler i datapaket Alla signaler packas i ett datapaket där datapaketet 21 är 64 bitar stort. En signal kan vara i storlekar från en bit och uppåt. Det gör att man måste försöka packa datapaketet optimalt oavsett signalens storlek, men utan att signalerna överlappar varandra. Tidigare gjordes denna granskning manuellt 22 genom uppritande på ett papper men från och med denna applikations införande kommer det bli enklare och säkrare att kontrollera datapaketens innehåll. Excel-mall med makro Det insågs snabbt att för att göra en tabell som visar upptagna respektive lediga positioner (se Tabell 5:1 i avsnitt 5.3.1), så behövdes något kraftfullare än det som finns i.net som standard. Excel med makron uppfyller just de krav som behövs för att bestämma de olika positionerna i ett datapaket där givna data på signaler är storlek, offset och typ av format 23. För att förstå komplexiteten bakom beräkningarna och varför Excel behövde användas kommer här de två format på signaler som finns, Intel och Motorola, att presenteras närmare. 21 I applikationen benämnd som frame. 22 Se tabellen som används; Tabell 5:1 i avsnitt 5.3.1. 23 Intel- eller Motorola-format, se förklaring i avsnitt 6.2.1. 25

26 KAPITEL 6. IMPLEMENTATION 6.2.1 Intel- eller Motorola-format [SCDR] Hur signalen placeras i datapaketet beror på om den är på Intel-format eller på Motorola-format. De signaler som används i detta projekt är SIL, PDO och J1939. De två första kan hantera båda formaten medan J1939 endast hanterar Intel-formatet. En byte är åtta bitar stor. Som ses i Tabell 6:1 nedan så är det åtta rader, dvs. åtta byte (byte 0-7). En bit är en cell i tabellen, dvs. det finns 64 bitar i datapaketet (bit 0-63). Motorola-format På Motorola-format skickas signalens mest signifikanta byte (MSB 24 ) först, så kallad rak byteordning (eng. big endian). Dvs. en signal som består av 24 bitar kommer att skickas med byten rymmande d 23 -d 16 först, sedan d 15 -d 8 och slutligen d 7 -d 0. Intel-format På Intel-format skickas signalens minst signifikanta byte (LSB 25 ) först, så kallad omvänd byteordning (eng. little endian). Dvs. om en signal består av fler än en byte, t.ex. tre, så kommer byten med databitar d 7 -d 0 skickas först, sedan d 15 -d 8 och slutligen d 23 -d 16. För de signaler med storlek åtta bitar och uppåt måste lägsta biten placeras i bit 0. Beräkning av offset Signalens storlek kommer inte att påverkas oavsett om den skickas på Intel- eller Motorola-format. En signal som är 1-8 bitar stor får inte spänna över två byte liksom en signal som är 9-16 bitar inte får spänna över tre byte. Några förtydligande exempel följer. Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 63 62 61 60 59 58 57 56 1 55 54 53 52 51 50 49 48 2 47 46 45 44 43 42 41 40 3 39 38 37 36 35 34 33 32 4 31 30 29 28 27 26 25 24 5 23 22 21 20 19 18 17 16 6 15 14 13 12 11 10 9 8 7 7 6 5 4 3 2 1 0 Ex. 1 Ex. 2 Ex. 3 Tabell 6:1 Beräkning av offset. 3 exempel presenteras. 24 Most Significant Byte 25 Least Significant Byte

KAPITEL 6. IMPLEMENTATION 27 Exempel 1: En signal om 12 bitar på Motorola-format. Om man väljer att lägga signalen på de två första byten (byte 0 och 1) i datapaketet så kommer d 63 -d 52 i datapaketet att ockuperas av signalen (markerad i Tabell 6:1). I SCDR blir signalens offset 63 och storleken 12. Exempel 2: En signal på Intel-format som består av 16 databitar har storleken 16 i SCDR. Väljer man att placera signalen i byte 2 och 3, så kommer d 47 -d 32 i datapaketet att ockuperas av signalen (markerad i Tabell 6:1). Korrekt offset i SCDR är 47. Exempel 3: En signal på Intel-format bestående av 12 databitar. Väljer man att placera signalen i byte 4 och 5, så kommer de ockuperade bitarna i datapaketet att vara d 31 -d 24 och d 19 -d 16 (markerad i Tabell 6:1). I SCDR blir offset 31 och storleken 12. 6.2.2 Tekniken bakom Excel-mallen Varför mall? Idén till användande av mall föddes när det stod klart att det skulle kopieras värden från SCDR-applikationen till ett Excel-dokument. För att slippa riskera att ett dokument sparas över användes en förpreparerad mall. Den kan inte sparas över eftersom det är just en mall. Dvs. det öppnas ett nytt osparat dokument med mallen, och därmed funktionaliteten, som grund. Bladen i mallen I den mall som gjorts så finns det två blad som används: test och count (se Figur 6.1). I bladet test importeras det värden på de signaler som hör till det datapaket som ska granskas (se Figur 6.2). I bladet finns även den tabell av test count datapaketet som används för att visa vilka positioner Figur 6.1 Bladen i Excel-mallen. som är lediga, upptagna samt har kollisioner. Bladet count används som en hjälp i den beräkning som görs för att fylla tabellen av datapaketet på bladet test (se Figur 6.3). Count-bladet används också till att visa för användaren vilka positioner som det finns kollisioner på (se mer om det i nästa kapitel i avsnittet 7.1.2).

28 KAPITEL 6. IMPLEMENTATION Automatisk beräkning I Excel går det att göra komplexa formler som automatiskt beräknas om så fort ett värde den beror av ändras. Det gör det kraftfullt, men ändå enkelt att använda. Här har många formler använts och dessa beräknas om automatiskt. De funktioner som används finns definierade som egna funktioner, se nästa avsnitt. T.ex. används formler för att beräkna antalet av samma nummer som existerar i count-bladet och sätts in i tabellen av datapaketet (se Figur 6.2). Den beräkning som används där är dold för användaren och utför operationen antalet av den siffra som efterfrågas med genomsökning av bladet count efter denna. Exempelvis söks bit 21 för att se om den biten finns i en signal, om den är ledig eller om det existerar en kollision på den. Beräkningen används för att färglägga tabellen med rött respektive grönt, se villkorsstyrd formatering av celler. test inkopierade värden knappar för att köra makron Tabell av datapaketet innehållande bitar 63-0. Figur 6.2 Excel-mallen med bladet test synligt. Definiera namn på funktioner I Excel går det att definiera namn på egna funktioner, så att man kan återanvända dem samt för att göra det enklare att skriva långa funktioner utan att det blir onödiga skrivfel. Här har ett flertal funktioner definierats och återanvänts. Dessa presenteras nedan. I varje cell görs en kontroll om signalen är på Intel-format eller om den är på Motorola-format. Om den är på Intel-format används Intel-format-formeln, om inte används Motorola. För att klara av hanteringen av signaler som sträcker sig över flera byte (rader), så används ett kontrollvärde som återfinns på första raden i Tabell 6:2. För varje byte ökar värdet med åtta, där första byten är noll. Fylls alla åtta byten av en signal är det högsta kontrollvärdet 56. Antalet bitar i signalen speglas mot rad två i Tabell