SuperBooky. - modernt webbaserat bokföringsprogram för småföretag

Storlek: px
Starta visningen från sidan:

Download "SuperBooky. - modernt webbaserat bokföringsprogram för småföretag"

Transkript

1 SuperBooky - modernt webbaserat bokföringsprogram för småföretag Kandidatarbete inom Data- och Informationsteknik DŽENAN BAŽDAREVIĆ DANIEL CHINIQUY ENGSTRÖM ISABELLE FRÖLICH JAKOB CSÖRGEI GUSTAVSSON ALEXANDRA LAZIĆ VICTOR WIBECK Institutionen för Data- och Informationsteknik CHALMERS TEKNISKA HÖGSKOLA GÖTEBORGS UNIVERSITET Göteborg, Sverige, Juni 2015

2 Kandidatrapport 2015:02 SuperBooky Modernt webbaserat bokföringsprogram för småföretag Kandidatarbete inom Data- och Informationsteknik DŽENAN BAŽDAREVIĆ DANIEL CHINIQUY ENGSTRÖM ISABELLE FRÖLICH JAKOB CSÖRGEI GUSTAVSSON ALEXANDRA LAZIĆ VICTOR WIBECK Institutionen för Data- och Informationsteknik Chalmers tekniska Högskola Göteborg, Sverige, Juni 2015

3 SuperBooky - Modernt webbaserat bokföringsprogram för småföretag Kandidatarbete inom Data- och Informationsteknik DŽENAN BAŽDAREVIĆ DANIEL CHINIQUY ENGSTRÖM ISABELLE FRÖLICH JAKOB CSÖRGEI GUSTAVSSON ALEXANDRA LAZIĆ VICTOR WIBECK c DŽENAN BAŽDAREVIĆ, DANIEL CHINIQUY ENGSTRÖM, ISABELLE FRÖ- LICH, JAKOB CSÖRGEI GUSTAVSSON, ALEXANDRA LAZIC, VICTOR WI- BECK, 2015 Handledare: Alexander Sjösten, Göteborgs Universitet Examinatorer: Arne Linde, Institutionen för Data- och Informationsteknik Jan Skansholm, Institutionen för Data- och Informationsteknik Kandidatrapport 2015:02 Institutionen för Data- och Informationsteknik Chalmers tekniska högskola SE Göteborg Sweden Telephone Göteborg, Sverige 2015

4 Abstract The aim of this report is to give the reader insight into the development of the web-based accounting application SuperBooky. Accounting is a complex task that many beginner entrepreneurs struggle with. The development of this application was therefore focused on making accounting as convenient and as easy as possible. The end product targets small enterprises and its functionality was designed with this in mind. To make sure that the application was designed in a user-friendly way, polls were carried out among individuals with basic accounting knowledge. These polls were then used as a basis when the application was under development, to ensure that it was well-suited to the target audience. This project was carried out as a bachelor s thesis for Chalmers University of Technology and University of Gothenburg during Spring This report is written in Swedish. i

5 Sammanfattning Den här rapporten syftar till att ge läsaren en bild av utvecklingen av det webbaserade bokföringsprogrammet SuperBooky. Eftersom bokföring är ett komplext förehavande som många nyblivna företagare har svårigheter med utvecklandes den här applikationen med fokus på att göra bokföring så lätthanterligt som möjligt. Slutprodukten riktar sig mot småföretag och dess funktionalitet är anpassad därefter. För att säkerställa att programmet blev så användarvänligt som möjligt utfördes flera enkätundersökningar bland individer med grundläggande bokföringskunskap. Dessa enkäter användes sedan som underlag när programmet utformades för att säkerställa att det riktade sig mot den tänkta målgruppen. Senare utfördes även ytterligare användartester som verifierade att den färdiga produkten fungerade som den skulle. ii

6 Förord Detta projekt utfördes som ett kandidatarbete för Chalmers tekniska högskola och Göteborgs Universitet under våren Omfattningen för denna kurs är 15 högskolepoäng vilket innefattar cirka 400h per student. Kandidatarbetet har utförts vid institutionen för Data- och Informationsteknik på Chalmers tekniska högskola, av studerande på Datateknik 300 hp, Informationsteknik 300 hp och Industriell Ekonomi 300 hp på Chalmers tekniska högskola samt Datavetenskapligt program 180 hp på Göteborgs Universitet. Projektgruppen vill även passa på att tacka Alexander Sjösten som genom hela projektet har varit tillgänglig för att vägleda gruppen. Tack går även ut till enheten Fackspråk och kommunikation på Chalmers tekniska högskola för handledning samt hjälpsamma föreläsningar om såväl språk- som kommunkationsrelaterade punkter. iii

7 Innehåll 1 Inledning Bakgrund Syfte Problemformulering Avgränsningar Teori Designmönster Object-relational mapping Hypertext Transfer Protocol Plattformar och ramverk Java Platform, Enterprise Edition Spring Framework Document Object Model JavaScript RequireJS AngularJS Flying Saucer och Jsoup Användarvänlighet Säkerhet Autentisering Säkerhetsproblem Bokföring Verifikation Bokföringsrapporter Fakturor Metod Arbetsmetod Front-end Back-end Spring Framework GlassFish Export av dokument Testning Säkerhet Verktyg Git NetBeans Design Processen Enkätundersökning Användartester Implementation 20 iv

8 4.1 Systembeskrivning Back-end Presentationslagret Logiklagret Persistenslagret Front-end Kommunikation mellan front- och back-end Spring Framework Säkerhet Autentisering Kryptering av data Resultat Enkätundersökning Användartester Testning av kod Användargränssnitt Diskussion Förarbete Implementation Användargränssnitt Användartester Omvärldsanalys Framtida arbete Slutsats 35 A Projektbeskrivning B Intervjumall C Design D Intervjusvar E Användartester i ii iii iv ix F Resultatrapport x G Balansrapport xi v

9 Ordlista Java Platform, Enterprise Edition (Java EE) - Den officiella Javaplattformen för att bygga större system som kräver kopplingar till databas, stöd för webb, med mera. Model-View-Controller (MVC) - Ett beprövat arkitekturmönster inom programutveckling som beskriver ett effektivt tillvägagångssätt för att strukturera större applikationer (Krasner och Pope 1988). Hypertext Transfer Protocol (HTTP) - Ett protokoll som används för att överföra HTML sidor över nätverk. Hypertext Transfer Protocol Secure (HTTPS) - En variant av HTTP med tillägg som till exempel kryptering av data vilket gör det till ett säkrare protokoll. Object-relational mapping (ORM) - Ett sätt att spara objekt från ett objektorienterat programmeringsspråk till en relationsdatabas och sedan hämta den med databasförfrågningar. Verifikation - Sammanställning av den information som krävs för att redovisa en ekonomisk händelse i ett företag. Debet - Namnet på en av de två kolumner som redovisar summor i en verifikation i dubbel bokföring. Summan av alla rader i debetkolumnen ska alltid vara den samma som summan av raderna i kreditkolumnen. Kredit - Namnet på en av de två kolumner som redovisar summor i en verifikation i dubbel bokföring. Summan av alla rader i kreditkolumnen ska alltid vara den samma som summan av raderna i debetkolumnen. Årsbokslut - Sammanställning av ett företags bokföring som görs vid varje årsskifte. Innehåller bland annat en balansrapport och en resultatrapport. Balansrapport - Redovisar ett företags sammanställda tillgångar och skulder vid en given tidpunkt. Resultatrapporter - Redovisar ett företags omsättning (intäkter och kostnader) under en given period. vi

10 1 Inledning I följande avsnitt ges en bakgrund till projektet, följt av dess syfte och problemformulering, som redogör för varför applikationen som projektet ämnar skapa behövs. Därefter sätts ett antal avgränsningar för att projektet inte skall bli alltför komplext inom den tidsram och med de resurser som finns tillgängliga. 1.1 Bakgrund I Sverige har alla företag bokföringsplikt vilket innebär att företag måste anteckna och redovisa samtliga ekonomiska händelser i företaget (Riksdag 1999). Detta kan göras för hand, och har gjorts så under lång tid, men kan också med fördel göras i ett bokföringsprogram. Att starta upp ett nytt företag kan kännas överväldigande om personen ifråga inte har tidigare bokföringserfarenhet. Momsregistrering, skattesatser och bokföringsregler är bara några av de utmaningar som nybörjare inom bokföring ställs inför. Det är därför viktigt att ha tillgång till ett enkelt och användarvänligt bokföringsprogram som kan hjälpa användaren att komma igång så fort som möjligt. Ett antal olika bokföringsprogram finns tillgängliga både för användning i webbläsaren och för att köpa och ladda ner, exempelvis Zervant (Zervant u.å.), alla dessa program har olika funktioner och användargränssnitt. Många av dessa program riktar sig till stora och medelstora företag och har funktioner som småföretag inte behöver, såsom import och export av varor. Det kan därför vara gynnsamt för nya och oerfarna företagare att det introduceras ett enklare bokföringsprogram. 1.2 Syfte Syftet med projektet är att skapa ett användarvänligt webbaserat bokföringsprogram för småföretagare som tillgodoser alla de grundläggande bokförings- och faktureringsbehov som en sådan användare kan tänkas ha. Utöver detta avser projektet även att förenkla bokföringsprocessen genom att automatisera den så mycket som möjligt. 1.3 Problemformulering Projektets fokus ligger på att skapa ett användarvänligt program. Målet är att göra programmet lätt att förstå och använda, samtidigt som det ska tillgodose alla de bokförings- och faktureringsbehov som en småföretagare kan tänkas ha. För att uppnå detta krävs vid framtagning av applikationen en medvetenhet om vilka funktioner en småföretagare använder mest i vardagen och hur dessa funktioner kan formges för att de skall kännas så intuitiva som möjligt. Problemet ligger därför i att ta reda på vilka funktioner som användaren helst vill använda och hur dessa kan presenteras på ett användarvänligt vis. För att applikationen skall särskilja sig från 1

11 andra bokföringsapplikationer och fylla de behov som finns på marknaden skall bokföringsprocessen automatiseras i största möjliga mån. Automatiseringen syftar till att få nybörjare att uppleva applikationen som särskilt användarvänlig. Problemet ligger i att göra detta på ett korrekt sätt utan att viktiga funktioner faller bort. Bortsett från användarvänlighet finns även ett behov av en robust back-end som håller reda på de regler som finns inom bokföring. Problemet här ligger i att säkerställa att inga komplikationer uppstår i form av fel i bokföringen som kan kompromettera användaren, då detta, i värsta fall, kan resultera i böter eller fängelse om användaren döms för skattefusk (Riksdag 1962). Utöver detta är det även viktigt att programmet är säkert och inte kan exploateras av olika typer av hacker-attacker eftersom kritisk information om användarnas företag sparas i applikationens databas. 1.4 Avgränsningar Programmet riktar sig mot småföretag och oerfarna bokförare. Följaktligen krävs det att programmet avgränsas på ett sådant sätt att funktionerna inte blir överväldigande och komplexa för användaren. Eftersom applikationen riktar sig mot småföretagare stödjer den enbart kontantmetoden, vilken enligt lag endast får användas om företaget årligen omsätter mindre än 3 miljoner kronor (Riksdag 1999). Kontantmetoden innebär att bokföringen görs samtidigt som företaget tar emot pengarna, medan alternativet, fakturametoden, kräver att bokföring sker när fakturor skrivs eller tas emot (BFN 2011). Kontantmetoden används istället för fakturametoden eftersom det är den enklare metoden att jobba med för småföretag, då företagaren endast behöver bokföra när pengarna sätts in på kontot och inte också när fakturan skickas ut. På grund av ovanstående anledningar kommer endast kontantmetoden att stödjas. Applikationen tillhandahåller inte heller bokföringsregler för handel utanför Sveriges gränser, då import och export har speciella skatteregler beroende på land. En sådan implementation ligger utanför tidsramen för projektet och bortprioriteras därför. Det bedöms också att om användaren mot förmodan vill importera eller exportera har denne förmodligen redan en bra förståelse för bokföring och kan då istället använda ett program som är speciellt avsett för sådana behov. Slutligen tillhandahåller inte applikationen de mer avancerade rapporterna som ett större, men inte mindre, företag behöver för ett årsbokslut (Riksdag 1995). 2

12 2 Teori För att läsaren ska kunna ta del av denna rapport på ett tillfredsställande sätt presenteras nedan den teori som låg till grund för utvecklandet av applikationen. Först beskrivs de designmönster som finns integrerade i programmet för att hålla kodbasen hanterlig. Därefter redovisas de ramverk som varit speciellt viktiga under utvecklingen, bland annat Spring Framework och AngularJS. Vidare presenteras object-relational mapping (ORM), som var centralt i hantering av databasen och därefter presenteras generell teori om design och användarvänlighet för webbsidor. Efter detta följer ett kort avsnitt om säkerhet hos liknande applikationer och slutligen ges även en introduktion till ämnet bokföring, som är kärnan i applikationen. 2.1 Designmönster För att undvika att ett mjukvaruprojekts kod blir svårhanterlig kan diverse designmönster användas. Genom att använda designmönster, såsom Model-view-controller som beskrivs nedan, inkapslas koden i mer hanterbara moduler. Dessutom kan systemet förbli hanterbart för utvecklarna i takt med att storleken på projektets källkod ökar (Martin 2000). Model-View-Controller (MVC) är ett beprövat arkitekturmönster inom programutveckling som beskriver ett effektivt tillvägagångssätt för att strukturera större applikationer (Krasner och Pope 1988). I sin grund går det ut på att applikationen delas upp i tre distinkta delar: model, view och controller, eller modell, vy och kontroller. Modellen är representationen av datan i systemet, vyn presenterar modelldatan för användaren, och kontrollern hanterar inmatning från användaren för att visa den korrekta vyn. En av de största styrkorna med MVC ligger i dess tredelade uppdelning. Genom att separera modellen från vyn kan ändringar göras i den ena komponenten utan att påverka den andra; det vill säga att så länge gränssnittet mellan de båda komponenterna hålls intakt kan ändringar i implementationen göras utan att kopplingarna i systemet förstörs. Samma resonemang kan appliceras på kopplingen mellan kontrollern och vyn, samt mellan kontrollern och modellen. Hur komponenterna sammankopplas kan ses i Figur 1. Figur 1: Schema över MVC (Strannered 2010). 3

13 För applikationer som till exempel kräver att data sparas i en databas finns en variant av MVC som kallas trelagrad arkitektur. Detta arkitekturmönster har liksom MVC tre distinkta lager, dock med viss modifikation: presentation, logik och data. Datalagret tillhandahåller ett gränssnitt till en databas, som ofta används i större affärsapplikationer, och har ingen direkt motsvarighet i MVC. Presentationslagret är en kombination av vyn och kontrollern, där kontrollern hämtar data från logiklagret. Logiklagret i sin tur är analogt med modellen i MVC och kommunicerar med datalagret för att hämta och spara data i databasen. Figur 2: Schema över trelagrad arkitektur (Bartledan 2009). En av de största fördelarna med trelagrad arkitektur, liksom med all modulär arkitektur, är att implementationen av varje enskilt lager enkelt kan bytas ut mot en annan implementation (Meyer och Webb 2005). Detta åstadkoms genom att lagren endast kommunicerar med varandra genom fasta gränssnitt, vilket undangömmer implementationen från den som vill använda lagren, så kallad gränssnittsbaserad programmering (MSDN 1999). 2.2 Object-relational mapping Object-relational mapping (ORM) är en programmeringsteknik som bland annat gör att objekt i ett objekt-orienterat programmeringsspråk kan sparas ner till en databas och sedan hämtas ut med hjälp av databasförfrågningar. Detta gör att programmeraren inte behöver spendera onödig tid på att definiera databastabeller, när det är enklare att istället använda de redan skapade klasserna från domänmodellen. Till Java finns tillgängligt ramverk som tillsammans med en databaskopplare, till exempel Hibernate som är en av de mest kända, ger funktionalitet som åstadkommer just detta. Javaklasserna behöver då se ut på ett speciellt sätt: det skall finnas en konstruktor utan argument, samt att alla fält skall ha tillhörande metoder för åtkomst 4

14 och modifikation. Klasser som uppfyller dessa krav, samt taggas med kallas kort och gott entity. Fälten i en entityklass kan taggas med annotationer för att visa på en en-till-flera relation, för att visa på en en-till-en relation. Från dessa entities och relationer genererar sedan databaskopplaren automatiskt databastabeller och join-tabeller, vilket effektivt gör att programmeraren inte behöver skriva någon SQL-kod för att definiera databasens tabellstruktur. 2.3 Hypertext Transfer Protocol Hypertext Transfer Protocol (HTTP) är ett applikationsprotokoll för hypermedia informationssystem (Fielding m. fl. 1999). HTTP är implementerat för klient- och serverprogram som kan kommunicera med varandra över webben genom att utbyta HTTP-meddelanden (Kurose och Ross 2013, ss ). Protokollet definierar strukturen på dessa meddelanden och hur meddelandet transporteras. Det finns två typer av HTTP-meddelanden: HTTP-förfrågningar och HTTP-svar. En kommunikationslänk skapas oftast genom att en användare begär en webbsida, varefter användarens webbläsare skickar en HTTP-förfrågan efter objekten till webbservern. När webbservern tar emot förfrågan skickas det begärda objektet tillbaka som ett HTTP-svar. En illustration på detta finns i figur 3. Hypertext Transfer Protocol Secure (HTTPS) är en variant av HTTP. Ett tillägg som HTTPS har är kryptering av data, detta har inte HTTP. HTTPS krypterar all data som transporteras mellan klient- och serverprogramen, vilket förhindrar att något annat än sändaren och mottagaren förstår datan. Figur 3: En illustration över HTTP-förfrågan (request) och svar (response). 2.4 Plattformar och ramverk I dag finns många ramverk, plattformar och bibliotek som kan användas för att göra mjukvaruutveckling enklare och mer effektiv. Nedan följer en introduktion till några av dessa, som kan hjälpa till vid utvecklandet av en webbapplikation Java Platform, Enterprise Edition Java Platform, Enterprise Edition (Java EE) är en plattform som utgörs av en samling teknologier gjorda för att bygga så kallade enterprise-applikationer såsom web- 5

15 bapplikationer. Applikationer som byggs med hjälp av Java EE karaktäriseras av att vara flerlagrade (presentation, affärslogik och persistens), skalbara och tillförlitliga (Jendrock m. fl. 2014). Java EE utökar funktionaliteten hos Javas standardversion genom att lägga till stöd för ORM, flerlagrade applikationer, databastransaktioner och webbapplikationer Spring Framework Spring Framework, hädanefter refererat till som Spring, är i sin kärna ett ramverk som bygger på Inversion of Control (IoC) (Spring u.å.[a]). Detta innebär att programmeraren förser ramverket med moduler som ramverket kan utnyttja istället för att programmeraren själv anropar ramverket. I viss mån följer Spring alltså Hollywood-principen: Don t call us, we ll call you. En annan viktig funktion Spring tillhandahåller är dess stöd för Dependency Injection. Dependency Injection innebär att programmeraren själv inte skapar objekt utan istället låter ett ramverk, såsom Spring, ta hand om varje objekts livscykel. På så sätt kan objekt enkelt injiceras i databasen utan att programmeraren själv instansierar objekten med Javas nyckelord new. Istället lagrar ramverket information om standardimplementationer av objekten, som sedan kan användas när de behövs. Detta ökar bland annat programmets testbarhet och gör att det enklare kan delas upp i lager (Fowler 2004). Till skillnad från Java EE, som är en officiell basspecifikation för webbaserade applikationer, är Spring ett ramverk som är utvecklat av en tredjepartsutvecklare. Spring använder sig av Java EE-specifikationen men gör även vissa saker på sitt eget sätt, såsom den stora fokuseringen på IoC. Spring Web MVC Spring Web MVC är en komponent i Spring som gör det enkelt att skapa och kommunicera med en webbserver genom att tillhandahålla ett gränssnitt för att skicka och ta emot HTTP-förfrågningar. För att Spring ska veta vart det ska delegera inkommande förfrågningar taggas klasser i applikationen med Därefter kan enskilda klassmetoder taggas med och dess attribut value sättas till exempelvis /start. Detta kan se ut på följande = /start ). Detta gör att alla förfrågningar som skickas till URL:en /start kommer att delegeras till just den klassens metod. Spring har en inbyggd klass (HttpMessageConverter) som kan konvertera HTTPmeddelanden till Java-objekt och vice versa (Spring u.å.[c]). Genom att tagga en parameter i metoden med binds värdet i HTTP-förfrågan till metodens parameter. En liknande annotation (@ResponseBody) finns även för metodens returtyp, där typen översätts direkt till ett HTTP-svar. Spring Data JPA För att förenkla kommunikation mellan en applikation och dess databas tillhandahåller Spring komponenten Spring Data JPA. Genom att låta ett interface taggat 6

16 med ärva från CrudRepository<T, ID> kan programmeraren specificera egna databasförfrågningar utan att behöva skriva någon faktisk logik för dessa förfrågningar; logiken genereras automatiskt av Spring vid runtime. Exempelvis kan i ett interface CustomerRepository som ärver från CrudRepository <Customer, Long> deklareras följande metod i Listing 1, där Customer är en entityklass. Listing 1: Spring Data JPA-förfrågan för att söka efter ett Customer-objekt med vissa kriterier. Customer findbynumberandregistrationdatebetween ( int number, startdate, Date enddate ) ; Date Motsvarande pseudo-sql-förfrågan kan ses i Listing 2. Detta förutsätter naturligtvis att klassen Customer innehåller fälten number och registrationdate av typerna int och Date. Listing 2: Psuedo-SQL-förfrågan för findbynumberandregistrationdate- Between(int number, Date startdate, Date enddate). SELECT FROM Customers c WHERE number = c. number AND c. r e g i s t r a t i o n D a t e >= startdate AND c. r e g i s t r a t i o n D a t e <= enddate ; I större system kan det finnas flera hundra databasförfrågningar av olika slag. Istället för att skriva alla dessa för hand kan programmeraren med fördel definiera metoder i ett interface, enligt exemplet ovan, vilket tar avsevärt kortare tid. En ytterligare fördel är att programmeraren som konstruerar databasförfrågningsmetoderna inte behöver bry sig om den underliggande databasens syntax, då Spring sköter detta automatiskt. Detta medför att databasimplementationen kan bytas ut när som helst utan att en enda databasförfrågan behöver skrivas om Document Object Model Document Object Model (DOM) är ett programmerings-api för dokument såsom HTML och XML (W3C 2010). API:ets struktur liknar ett träd, vars noder kallas objekt. DOM erbjuder programmerare möjlighet att bygga och ändra dokument. Varje webbsida skrivet i HTML representeras som en DOM, och som en följd av detta kan statiska sidor modifieras med hjälp av ett skriptspråk, som till exempel JavaScript JavaScript JavaScript är ett lättolkat dynamiskt programmeringsspråk som främst används för webbprogrammering (Flanagan 2002, s. 1). De flesta moderna webbläsarna kan exekvera JavaScript genom en inbyggd JavaScript-motor. 7

17 När JavaScript används på klientsidan kan den ändra webbläsarens representation av statiska webbsidor. Detta leder till en bättre användarupplevelse eftersom webbsidan kan interagera med användaren på ett mer engagerande och interaktivt sätt (Goodman, Morrison och Eich 2007, s. 3) RequireJS RequireJS är ett verktyg skrivet i JavaScript och används mest för webbapplikationer. Dess huvudsakliga funktion är att läsa in JavaScript-filer och moduler (RequireJS u.å.[a]). Varje JavaScript-fil som är definierad i en HTML-fil läses in synkront, det vill säga stegvis. Vissa JavaScript-filer kan vara beroende av andra, varför hänsyn måste tas till ordningen av den synkrona inläsningen. Vid användning av många JavaScript-filer kan det vara svårt att hantera ordningen samt att få den väl strukturerad (RequireJS u.å.[b]). RequireJS löser dessa problem, och kan dessutom göra applikationen snabbare då den även erbjuder asynkron inläsning av JavaScript-filer AngularJS AngularJS, eller bara Angular, är ett open-source JavaScript-ramverk vars arkitektur är baserad på MVC. Angular är skapad i tron att deklarativ programmering är bättre för att konstruera användargränsnitt, medan imperativ programmering är bättre för att implementera affärslogik (AngularJS u.å.[c]). En Angular-applikation initialiseras genom att kompilera en HTML-fil som kallas template eller en mall. En mall har en referens till en modul som startar Angular-applikationen. När mallen har kompilerats och byggt upp DOM:en visas för användaren en vy. Moduler Angular-komponenter definieras i en modul (AngularJS u.å.[d]), och kan till exempel innehålla konfigurationsinformation eller Angular-komponenter såsom Services eller Controllers. En modul kan även läsa in andra moduler. Eftersom en Angularapplikation inte har någon huvudmetod används moduler för att definiera hur applikationen ska initialiseras och struktureras. Controllers och Services Både Controllers och Services är objekt skrivna i JavaScript som består av affärslogik, men har olika uppgifter. En Controller riktar sig till vyn och innehåller affärslogik som vyn behöver, medan en Service riktar sig åt andra komponenter (AngularJS u.å.[c]). Scope Applikationens modell kallas Scope. Vyn och Controllern har ingen direkt koppling mellan varandra utan tar istället hjälp av ett Scope (ibid.). Ett Scope lagrar alla variabler som delas mellan Vyn och Controllern, och så fort en variabel ändras 8

18 kommer variabeln att uppdateras både i Controllern och i Vyn (AngularJS u.å.[a]). Sammankopplingen mellan vyn och Controllern illustreras i figur 4. Figur 4: En illustration på hur en vy (view) och en Controller är sammankopplade via ett Scope (AngularJS u.å.[a]). Mallar Mallar i Angular är skrivna i HTML med en utökad vokabulär. Den utökade vokabulären består av speciella element och attribut, med hjälp av vilka mallen kan visa information från till exempel en Controller (AngularJS u.å.[e]). De vanligaste typerna av element och attribut som används kallas Directive och Markup. Directive är en markör som kan läggas till i ett DOM-element (AngularJS u.å.[b]). Dessa markörer finns inbyggda i Angular, men fler kan implementeras om de inbyggda inte räcker till för ändamålet. Ett exempel på Directive finns i Listing 3. Markup börjar och slutar med två klammerparenteser och innehåller främst uttryck eller variabler från ett Scope. Listing 3: Ett exempel på en Directive ng-show som används i en div. <div ng show=" i n t e g e r == 1"> God dag! </div> En Angular-applikation innehåller oftast bara en mall. Genom att använda Directive ngview kan innehållet i HTML-elementet, kallat partial, ändras beroende på sökvägen Flying Saucer och Jsoup Flying Saucer och Jsoup är två tredjeparts Javabibliotek som gör att PDF-filer enkelt kan genereras och exporteras från ett Javaprogram genom att ladda in XHTML-filer som sedan modifieras för att stämma överens med bibliotekens respektive syntax. Flying Saucer Flying Saucer erbjuder automatisk generering av PDF-filer från XML- och XHTMLfiler. I genereringen används CSS som bestämmer utseendet på XHTML-sidorna. 9

19 Flying Saucer har stöd för stora delar av CSS 2.1-standard samt delar av 3.0- standarden (Flying Saucer 2013). Det innebär att de flesta moderna webbläsare visar XTHML-sidorna på samma sätt som de kommer ut som PDF-filer. Jsoup Jsoup gör att Java kan öppna HTML-filer och modifiera dem genom att till exempel ändra HTML-taggar eller injicera data på specifika platser. Jsoup klarar dock av många fler uppgifter än att bara ändra text i HTML-sidor, såsom att städa upp HTML-kod genom att ta bort både onödig syntax och skadlig kod som kan ha infekterat sidan. Dessutom kan Jsoup förhindra att skadlig kod, som skrivits in i inmatningsformulär, körs genom att hantera den som vanlig text. 2.5 Användarvänlighet Att ha en bra design är ett sätt för utvecklare att sticka ut från konkurrenterna (Cooper m. fl. 2014). Genom att tänka på de potentiella användarna när produkten designas är det större chans att produkten når framgång. Det viktigaste för att användare ska uppfatta upplevelsen med webbsidan som positiv är att innehåll och tjänster uppför sig som förväntat, samt att sidan inte täcks av överflödig information (Gehrke och Turban 1999). För att en webbsida ska anses vara användbar krävs att den har ett grafiskt gränssnitt som tilltalar många användare (Cooper m. fl. 2014). Ordet användarvänlighet byts ofta ut mot ordet användbarhet vilket härstammar från det engelska ordet usability, definierat som The extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in a specified context of use. (ISO 2010). Denna definition lägger vikten på att användaren kan utföra funktionen som efterfrågas på ett effektivt och tillfredsställande sätt. Föregående definition används dock inte av alla. Nngroup beskriver usability på följande vis: Usability is a quality attribute that assesses how easy user interfaces are to use. (NNGroup 2012). Gemensamt för dessa två definitioner är fokuset på hur effektivt produkten kan användas för att ge användaren det den vill ha. 2.6 Säkerhet Det kan vara svårt att avgöra om ett system är säkert eller inte. Säkerhet definieras ofta av tre aspekter: sekretess, integritet och tillgänglighet (Stallings och Brown 2015, s. 33). Dessa koncept är på engelska kända som the CIA (Confidentiality, Integrity, Availability) triad. Utförligare beskrivning av de tre aspekterna av säkerhet finns i tabell 1. 10

20 Tabell 1: En beskrivning av Sekretess, Integritet och Tillgänglighet (Stallings och Brown 2015, s. 33). Koncept Beskrivning Illustration Sekretess Integritet Säkerställer att information inte avslöjas för obehöriga individer. Säkerstället att obehöriga individer inte kan modifiera information. Tillgänglighet Säkerställer att information är tillgänglig för behöriga individer Autentisering Vissa delar av den information som finns i ett system skall endast kunna visas och modifieras av behöriga användare. Ett system måste därför kunna avgöra om en användare är behörig, vilket kan göras med hjälp av en autentiseringsprocess som består av två steg: identifikation och verifiering (Stallings och Brown 2015, s. 93). I identifikationssteget begär systemet att användaren identifierar sig genom att denne tillhandahåller autentiseringsinformation. Detta kan vara information som användaren vet (till exempel ett lösenord), något användaren äger (till exempel någon typ av säkerhetstoken, alltså en fysisk enhet) eller något användaren är (biometrisk autentisering) (ibid., s. 95). När användaren har angett autentiseringsinformationen överförs denna till verifikationssteget. I verifikationssteget jämför systemet den information som användaren angett med den information som systemet lagrat om användaren. Baserat på jämförelsen kan systemet antingen bevilja eller neka användaren tillträde (ibid., ss. 93, 95) Säkerhetsproblem I varje autentiseringssteg finns problem och risker. Om ett lösenord används som identifiering är idealet att lösenordet är hemligt, det vill säga att endast användaren känner till det. Trots detta finns det inkräktare som kan lyckas knäcka lösenord genom att utföra olika attacker. Det vanligaste scenariot är att inkräktarens dator lyckas gissa lösenordet på grund av att användaren har valt ett lösenord som inte är tillräckligt starkt (ibid., s. 95). Ett annat problem är överföring av autentiseringsinformation. Internet är ett osäkert medium och det kan finnas individer som lyssnar på trafiken mellan klienten och servern (Kurose och Ross 2013, s. 698). Till följd av detta bör endast klienten och servern förstå informationen som skickas mellan dem. Dessutom måste kommunikationen ske med rätt klient eller rätt server. Om dessa egenskaper uppfylls har en säker kommunikation skapats. För att förhindra avlyssning kan meddelanden krypteras. 11

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande: WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska

Läs mer

Webbserverprogrammering

Webbserverprogrammering Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets

Läs mer

WEBBSERVERPROGRAMMERING

WEBBSERVERPROGRAMMERING WEBBSERVERPROGRAMMERING Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets syfte Undervisningen i ämnet

Läs mer

<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

<script src= http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js></script> AngularJS Skriven av: Isak Glans. Datum: 2015-04-29. Kurs: Webbutveckling. Lärare: Per Sahlin. Utbildning: Systemutvecklare i.net, Newtons Yrkeshögskola. 1 Sammanfattning Syftet med denna uppsats är att

Läs mer

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.

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. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning 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. Dokumentet består av

Läs mer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se

Läs mer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript

Läs mer

Säkra Designmönster (Secure Design Patterns)

Säkra Designmönster (Secure Design Patterns) Säkra Designmönster (Secure Design Patterns) Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Säkra designmönster Beskrivningar eller mallar

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (12) Skolverkets föreskrifter om ämnesplan för ämnet webbutveckling i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning i form av ett fjärde tekniskt år; beslutade

Läs mer

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt Design och konstruktion av grafiska gränssnitt Armin Nezirevic Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Vad utmärker ett bra användargränssnitt? Kort kursinfo

Läs mer

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

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion Webbteknik En kort introduktion Innehåll Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender 1 Historisk återblick 89 CERN Tim Berners Lee Ett plattformsoberoende sätt att sprida

Läs mer

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp

Läs mer

Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera

Läs mer

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

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Filhanterare med AngularJS

Filhanterare med AngularJS Filhanterare med AngularJS Författare: Filip Johansson Peter Emilsson Oskar Georgsson Christian Nilsson Datum: 2014-03-26 1 Sammanfattning Filhanterare med AngularJS är en filhanterare skapad för Sigma

Läs mer

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Klient/server Översikt Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Lektion 1: Webbtekniker från Microsoft Microsoft webbtekniker. ASP.NET. Klientsidan. Internet Information Server.

Läs mer

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

Distribuerade affärssystem

Distribuerade affärssystem Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska

Läs mer

Mål med lektionen! Repetera och befästa kunskaperna.

Mål med lektionen! Repetera och befästa kunskaperna. Entity Framework Mål med lektionen! Repetera och befästa kunskaperna. Vad lektionen omfattar Repetera och gå igenom kursen lite snabbt. Vilka problem vill vi lösa? Vi arbetar med Webbapplikationer Vi kommer

Läs mer

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, 1971. Internet började med ARPANET

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, 1971. Internet började med ARPANET Olika slags datornätverk Förberedelse inför laboration 4. Historik Protokoll, / Adressering, namnservrar WWW, HTML Föreläsning 5 Internet LAN Local Area Network student.lth.se (ganska stort LAN) MAN Metropolitan

Läs mer

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling Rune Tennesmed Oskar Norling Individuellt Mjukvaruutvecklingsprojekt Webbprogrammerare H12 Oskar Norling 2012-05-30 Abstrakt Denna rapport handlar om mitt mjukvaruutecklingsprojekt som jag och en klasskompis

Läs mer

Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014

Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014 Kursplan Gränssnittsdesign och Webbutveckling 1 Vårtermin 2014 Kurswebb: www.creativerooms.se/edu, välj Gränssnittsdesign eller Webbutveckling 1 Lärare: Aino-Maria Kumpulainen, aino-maria.kumpulainen@it-gymnasiet.se

Läs mer

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

Kursplanering Utveckling av webbapplikationer

Kursplanering Utveckling av webbapplikationer Kursplanering Utveckling av webbapplikationer Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-WEB Klass Systemutvecklare.NET Syfte och koppling till yrkesrollen För att kunna arbeta som systemutvecklare

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt Design och konstruktion av grafiska gränssnitt Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Kort kursinfo Lab info Föreläsning - Vad utmärker ett bra användargränssnitt?

Läs mer

Elektronisk publicering TNMK30

Elektronisk publicering TNMK30 Elektronisk publicering TNMK30 Förra gången Usability & interaktionsdesign Projektintroduktion Bildbehandling. Byte av handledare Istället för Martin Johansson Annsofi Pettersson, annpe655@student.liu.se

Läs mer

Projektuppgift.

Projektuppgift. Projekt Projektuppgift Designa och implementera ett webbaserat gränssnitt för att söka information i en befintlig databas. Webssidan ska vara komplett med navigering, överblick, sökning och strukturerad

Läs mer

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Välkomna till DIT012 IPGO 1 Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1. Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare

Läs mer

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande: MOI Ämnet mobila applikationer behandlar olika tekniker för att utveckla programvara riktad mot mobila enheter samt processen från idé till färdigt program. Ämnet mobila applikationer får bara anordnas

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser.

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser. WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

Manual program DPR SRU tax10

Manual program DPR SRU tax10 Manual program DPR SRU tax10 Ett program som skapar korrekta SRU-koder till 2010 års taxering Bakgrund I 2008 års taxering har Skatteverket gjort en omfattande blankettöversyn. I tax 2010 är blanketterna

Läs mer

Företagets bokslut Daniel Nordström

Företagets bokslut Daniel Nordström Företagets bokslut Daniel Nordström Presentationens innehåll Begrepp Bokslut Tre typer av bokslut Vem skall göra ett bokslut? Förenklat bokslut Manuell bokföring och bokslut Justeringar vid företagets

Läs mer

Utveckling av ett grafiskt användargränssnitt

Utveckling av ett grafiskt användargränssnitt Datavetenskap Opponenter: Daniel Melani och Therese Axelsson Respondenter: Christoffer Karlsson och Jonas Östlund Utveckling av ett grafiskt användargränssnitt Oppositionsrapport, C-nivå 2010-06-08 1 Sammanfattat

Läs mer

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Decentraliserad administration av gästkonton vid Karlstads universitet

Decentraliserad administration av gästkonton vid Karlstads universitet Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå

Läs mer

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018 Objekt-orienterad Programmering och Design TDA552 Alex Gerdes, HT-2018 Kursteamet Dr. Alex Gerdes examinator och föreläsare (Dr. Niklas Broberg föreläsare) Handledare: Sólrún Halla Einarsdóttir Yazan Ghafir

Läs mer

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016 Objekt-orienterad Programmering och Design TDA551 Alex Gerdes, HT-2016 Kursteamet Dr. Alex Gerdes kursansvarig, föreläsare Dr. Niklas Broberg examinator, (föreläsare) Fredrik Sjöholm handledare Johan Andersson

Läs mer

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum: 2012-10-09

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum: 2012-10-09 Projektanvisning Webbsideprojekt Författare: Johan Leitet Version: 2 Datum: 2012-10-09 Inledning Du har nu under ett antal laborationer i webbteknik fått relativt styrda uppgifter där du ensam fått lösa

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

emopluppen Användning av Ant Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC) emopluppen Användning av "Ant" Version: 1.4 ( 2002/04/26 07:27:52 UTC) Niklas Backlund Sammanfattning Det här dokumentet handlar om programmet Ant, som är en byggmiljö för programutvecklingsprojekt. Dess

Läs mer

Webbtjänster med API er

Webbtjänster med API er Webbtjänster med API er Mål med lektionen! Veta kursmålen. Lite grunder om WCF Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

Slutrapport - Intranät

Slutrapport - Intranät Slutrapport - Intranät Grupp 2. DesignOnline 1DV411 - Webbprojekt I Martin Fohlin, Tobias Holst, Andreas Fridlund, Måns Schütz, Anton Ledström & Sherief Badran 1 Sammanfattning I denna rapport beskriver

Läs mer

E12 "Evil is going on"

E12 Evil is going on E12 "Evil is going on" Föreläsning 12, HT2014 AJAX Kurs: 1dv403 Webbteknik I Johan Leitet E12 Evil is going on Dagens agenda AJAX XMLHttpRequest-objektet JSON Vad är AJAX? Asynchronous JavaScript and XML

Läs mer

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu. Mina listor En Android-applikation Rickard Karlsson 2013-06-09 Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.se Innehållsförteckning 2. Innehållsförteckning 3. Abstrakt 4. Inledning/bakgrund

Läs mer

TDP003 Projekt: Egna datormiljön

TDP003 Projekt: Egna datormiljön . TDP003 Projekt: Egna datormiljön Egen utvecklingsmiljö Kursmaterial till kursen TDP003 Höstterminen 2017 Version 2.2 2017-06-30 2017-06-30 Egen utvecklingsmiljö INNEHÅLL Innehåll 1 Revisionshistorik

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

Elektronisk tullräkning Sid 1(9) Samverkansspecifikation. Version: 1.0 SAMVERKANSSPECIFIKATION. för. e-tullräkning

Elektronisk tullräkning Sid 1(9) Samverkansspecifikation. Version: 1.0 SAMVERKANSSPECIFIKATION. för. e-tullräkning Elektronisk tullräkning Sid 1(9) SAMVERKANSSPECIFIKATION för e-tullräkning Elektronisk tullräkning Sid 2(9) Innehållsförteckning 1 Inledning...3 1.1 Introduktion...3 2 Identifikation av parterna...4 2.1

Läs mer

Bokföring Nytt konto Ctrl-N Ta bort konto Ctrl-R Obs!

Bokföring Nytt konto Ctrl-N Ta bort konto Ctrl-R Obs! Nytt konto Gör så här: Välj Ny eller tryck på Ctrl-N. Skriv in kontonummer, benämning och övrig information. Glöm inte att ange momsrapportkod om kontot ska redovisas i momsrapporten. Uppgifter om SRU-koder

Läs mer

Tentamen på kursen Webbdesign, 7,5 hp

Tentamen på kursen Webbdesign, 7,5 hp Högskolan i Borås Institutionen för data- och affärsvetenskap Malin Nilsson Tentamen Tentamen på kursen Webbdesign, 7,5 hp Tentamenstid: 2012-05-28, kl. 9-13 Hjälpmedel: Inga hjälpmedel tillåtna Betyg:

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

SLUTRAPPORT WEBBPROJEKT 1

SLUTRAPPORT WEBBPROJEKT 1 SLUTRAPPORT WEBBPROJEKT 1 Kostregistrering 30 mars 2012 Webbprojekt 1 1DV411 Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Ella Källman - ella@kallman.se Martin Kuoppa - martin@duofy.com

Läs mer

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till?

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? 1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? Att lära sig via metaforer innebär att man drar nytta av kunskap som användaren redan har,

Läs mer

Datakommunika,on på Internet

Datakommunika,on på Internet Webbteknik Datakommunika,on på Internet Rune Körnefors Medieteknik 1 2015 Rune Körnefors rune.kornefors@lnu.se Internet Inter- = [prefix] mellan, sinsemellan, ömsesidig Interconnect = sammanlänka Net =

Läs mer

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

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal

Läs mer

Programvaruteknik, hp

Programvaruteknik, hp 1 (6) Utbildningsplan för: Programvaruteknik, 120-180 hp Software Engineering, 120-180 Credits Allmänna data om programmet Programkod Tillträdesnivå Diarienummer TPVAG Grundnivå MIUN 2010/1734 Högskolepoäng

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.

Läs mer

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

Introduktion till integrering av Schenkers e-tjänster. Version 2.0 Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen

Läs mer

Välkomna till DIT012 IPGO

Välkomna till DIT012 IPGO Välkomna till DIT012 IPGO 1 Lärare och Handledare Kursansvariga, examinatorer, föreläsare och handledare Joachim von Hacht, hajo@chalmers.se, 772 1003 Handledare (se även kurssida) Alexander Sjösten, sjosten@chalmers.se

Läs mer

Kursplan Webbutveckling 2, 100p Läsår 2013-2014

Kursplan Webbutveckling 2, 100p Läsår 2013-2014 Kursplan Webbutveckling 2, 100p Läsår 2013-2014 Kurswebb: www.creativerooms.se/edu, välj Webbutveckling 2 Lärare: Aino-Maria Kumpulainen, aino-maria.kumpulainen@it-gymnasiet.se Hösttermin 2013 Vecka Tema

Läs mer

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Entity Framework Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Prototyper och användartest

Prototyper och användartest Föreläsning i webbdesign Prototyper och användartest Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Prototyp för en webbplats! Utkast eller enkel variant av webbplatsen" Syfte"

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

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

Inlämningsuppgift 2. DA156A - Introduktion till webbutveckling Teknik och samhälle, Malmö högskola Oktober 2012 Oktober 2012 Uppgiften går ut på att redovisa dina kunskaper kring JavaScript, liksom din förmåga att skapa en CSS-baserad layout. Detta gör du genom att lämna in ett resultat som följer specifikationerna

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning

Läs mer

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/

Läs mer

WHITE PAPER. Open End TM Funktionell översikt

WHITE PAPER. Open End TM Funktionell översikt Open End TM Funktionell översikt Open End tillför verksamhetsprocesser nya möjligheter genom att kombinera avancerad teknik för automatiserad informationshantering i realtid med intuition och hög användbarhet.

Läs mer

Vad säger lagen om cookies och andra frågor och svar

Vad säger lagen om cookies och andra frågor och svar Vad säger lagen om cookies och andra frågor och svar Vad är en cookie? En cookie är en liten textfil som webbplatsen du besöker begär att spara på din dator. Cookies används på många webbplatser för att

Läs mer

Systembeskrivning.

Systembeskrivning. KTH Institutionen för Numerisk Analys och Datalogi Systembeskrivning RedInc www.nada.kth.se/projects/prom03/redinc Uppdragsgivare: Projektmedlemmar: Harald Kjellin Daniel Oscarsson Rikard Laxhammar Tommy

Läs mer

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5 Introduktion till programmering Föreläsning 5 Programmering av webbsidor. Webbens grundbegrepp HTML HTML (HyperText Markup Language) är det språk som används för att skriva webbsidor. HyperText: text med

Läs mer

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

Vad gör programmet Datafångst från Plusgirot och Visa?

Vad gör programmet Datafångst från Plusgirot och Visa? Vad gör programmet Datafångst från Plusgirot och Visa? Programmet överför kontoutdragsinformation från Plusgirot och från Visa Business Card till en SIE-4 fil med komplett konterade verifikationer. Detta

Läs mer

Kravspecifikation Fredrik Berntsson Version 1.1

Kravspecifikation Fredrik Berntsson Version 1.1 Kravspecifikation Fredrik Berntsson Version 1.1 Status Granskad FB 2016-02-01 Godkänd FB 2015-02-01 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2015-02-01 Första versionen

Läs mer

Räkna med ASP.NET MVC 3

Räkna med ASP.NET MVC 3 Instruktion Räkna med ASP.NET MVC 3 Introduktionsuppgift Författare: Mats Loock Kurs: ASP.NET MVC Kurskod:1DV409 Innehåll Du ska följa steg-för-steg -instruktionen i denna introduktionsuppgift och skapa

Läs mer

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

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 Webben som verktyg Idag: Hur hänger det ihop? Viktiga tekniker Stegen i ett webbprojekt Verktyg Dreamweaver Photoshop Joomla CMS Storyboard och flödesschema Fixa webbhotell Hur hänger det ihop? För att

Läs mer

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning

Idrottsapen. 1. Inledning. 2. Mål och syfte. 3. Projektbeskrivning Idrottsapen Slutrapport för projektet Idrottsappen. Projekttitel: Idrottsappen Uppdragstagaren: Sandklef GNU Labs, 710413-5137 1. Inledning Under samtal med olika aktiva personer inom olika idrotter framkom

Läs mer

Objektorienterad Systemutveckling Period 3

Objektorienterad Systemutveckling Period 3 Objektorienterad Systemutveckling 2 2018 Period 3 kurskod C1OB2B Innehåll Kursintroduktion Kursmaterialet finns temporärt även på http://www.gidenstam.org/hb/oosu2 KURSINTRODUKTION Kursintroduktion Inblandade

Läs mer

Projektet. TNMK30 - Elektronisk publicering

Projektet. TNMK30 - Elektronisk publicering Projektet TNMK30 - Elektronisk publicering Gruppindelning projekt Valfria grupper ~4 per grupp TNM088 - Digitala media-grupperna är ok Projektgrupper 4 personer Jämna par Lika arbete för små grupper Anmäl

Läs mer

Introduk+on +ll programmering i JavaScript

Introduk+on +ll programmering i JavaScript Föreläsning i webbdesign Introduk+on +ll programmering i JavaScript Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Språk Naturliga språk Mänsklig kommunika+on T.ex. Svenska, engelska,

Läs mer

Creo Customization. Lars Björs 2014-10-16

Creo Customization. Lars Björs 2014-10-16 Creo Customization Lars Björs 2014-10-16 Norra Europas största partner och återförsäljare av PTC relaterad programvara (Windchill, Creo, Arbortext, MathCad, Relex) 70 anställda Egen utvecklingsavdelning

Läs mer

SKOLFS. På Skolverkets vägnar. GENERALDIREKTÖREN Enhetschef

SKOLFS. På Skolverkets vägnar. GENERALDIREKTÖREN Enhetschef Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:248) om ämnesplan för ämnet webbteknik i gymnasieskolan och inom kommunal vuxenutbildning på gymnasial nivå; beslutade den -- maj 2015. Med

Läs mer

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1. XML-produkter -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: 2018-09-18 Version: 1.0 Innehållsförteckning 1. Inledning... 3 1.1. Syfte 3 1.2. Målgrupp

Läs mer

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson Rapport grupp 4 Software Engineering Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson 2009-10-29 Processer Sprinter Scrum har varit till stor hjälp för oss för att nå våra mål,

Läs mer

Webbprogrammering TDDD52

Webbprogrammering TDDD52 Webbprogrammering TDDD52 ERD MySQL+PHP. Förra gången Idag Javascript jquery Progressive enhancement XML & AJAX Lab 4 och 5 Sammanfattning av kursen. Om databastabeller varje tabell ska beskriva en typ

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

2014-2015 Alla rättigheter till materialet reserverade Easec 1 2 Innehåll Introduktion... 3 Azure Client SDK Libraries... 4 Översikt: Azure Client Libraries... 5 Azure SDK... 6 Azure SDK (forts.)... 7 Azure SDK (forts.)... 8 Cloud Services... 10 Cloud Services...

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Innehåll. Dokumentet gäller från och med version 2014.3 1

Innehåll. Dokumentet gäller från och med version 2014.3 1 Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen

Läs mer

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

SLUTRAPPORT RUNE TENNESMED WEBBSHOP SLUTRAPPORT RUNE TENNESMED WEBBSHOP -05-30 Abstrakt Under 10 veckor har jag och Oskar Norling arbetat med att ta fram en webbshop-applikation till företaget Rune Tennesmed i Kalmar. I denna rapport tänker

Läs mer

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query). Arbeta med databas Översikt Arbeta med Entity Data Models. LINQ (Language Integrated Query). Lektion 1: Arbeta med Entity Data Models Introduktion till ADO.NET Entity Framework. Stöd i ADO.NET Entity Framework.

Läs mer

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Datavetenskap Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Oppositionsrapport, C-nivå 2006:12 1 Sammanfattat omdöme av examensarbetet Examensarbetet är intressant eftersom

Läs mer

Systemkrav och tekniska förutsättningar

Systemkrav och tekniska förutsättningar Systemkrav och tekniska förutsättningar Hogia Webbrapporter Det här dokumentet går igenom systemkrav, frågor och hanterar teknik och säkerhet kring Hogia Webbrapporter, vilket bl a innefattar allt ifrån

Läs mer