Förslag på svar Tentamen etjänster och webb- programmering

Relevanta dokument
Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 30/5 Tid

Förslag på svar Tentamen etjänster och webb- programmering

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 14/6 Tid

Tentamen etjänster och webbprogrammering

Innehåll. MySQL Grundkurs

Open Source-licenser

Open Source - Utmaningar och fördelar

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Introduktion till MySQL

Open Source-licenser

Nya webbservern Dvwebb.mah.se

Lektion 5 HTML, CSS, PHP och MySQL

Förslag till svar och lösningar Tentamen Information Systems och Management

Programmering B med Visual C

Tentamen etjänster och webbprogrammering

Karlstads Universitet, Datavetenskap 1

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid

Datacentertjänster PaaS

Vad är en databas? Databasutveckling Med MySQL/MariaDB

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Introduktion HTML och PHP 732G16 Databaser design och programmering

Introduktion MySQL och MariaDB

Hemsideutveckling för Anjool AB

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Repetition C-programmering

Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408.

Svenska Linuxföreningen. Fri programvara Mer än bara gratis 1(17) Copyright 2006 Marcus Rejås

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

Juridiska frågor kring fri programvara och öppen källkod

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Databaser och Datamodellering Foreläsning IV

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Webbservrar, severskript & webbproduktion

JavaRats. Kravspecifikation. Version 1.1. Gustav Skoglund Marcus Widblom Senast ändrad: 13 / 05 / 08

Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly

Introduktion till PHP

Avancerade Webbteknologier

Mjukvaruprojekt Onlinebooks

Övningsuppgift. Repeterbara citat. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

SKOLFS. beslutade den XXX 2017.

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Programvarudesign för samarbete. Mötesplats Open Access Urban Andersson, Göteborgs UB Peter Hansson, Chalmers bibliotek

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI

Skapa din egen MediaWiki

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Affärsmodeller kring fri programvara - Exempel och diskussionsunderlag

Introduktion C-programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Programvaror - Jo, tack, det vill vi ha...

Om öppenhet - format, standard och program. Mats Östling IT-strateg Sveriges Kommuner och Landsting Kommits

PHP-presentation Dataföreningens Open Source-nätverk

Statistiska centralbyrån

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

TNMK30 Elektronisk publicering HT 2014 Laboration 5: PHP och MySQL

1.Lär känna MS SQL Observera. Tips. Förberedelse

Avtal/överenskommelse för leverans till K- samsök

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås

Programbeskrivning. Chaos på Web. Version

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

SKOLFS. beslutade den -- maj 2015.

WCMS-15, Webbutvecklare CMS

E-legitimationsnämndens legitimeringstjänster för test

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

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

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

TDDD52 Databas. Databas. Databas 1/3/13

TMP Consulting - tjänster för företag

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Statistik över heltal

PHP - Fortsättning. PHP och MySQL

Grupp 3. Hannes Kalisky, Rasmus Jakobsson, Andreas Celander Guss, Christian Jansson

Webservice & ERP-Integration Rapport

Exempel på ett litet Ada-program

Kursintroduk+on etjänster och Webbprogrammering

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Open Source - Eller som vi säger, Fri programvara

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Gissa det hemliga talet

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Språket Python - Del 2 Grundkurs i programmering med Python

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Klassdeklaration. Metoddeklaration. Parameteröverföring

Föreläsning 3. Programmering, C och programmeringsmiljö

Webbprogrammering, grundkurs 725G54

Open Source - Eller som vi säger, Fri programvara

Licenser - Jo, tack, men så få som möjligt

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Introduktion till Jasmine 1.2 ODQL

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

Föreläsning 3. Programmering, C och programmeringsmiljö

Så gör Vägledningen 24-timmarswebben dig till en bättre beställare. Funda Denizhan, Statskontoret Kommits 17 november, 2005

Handbok SSCd. Peter H. Grasch

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

VAD GÖR DU / VEM ÄR DU?

Snabbguide Visma Compact API Copyright Visma Spcs AB

Transkript:

Förslag på svar Tentamen etjänster och webb- programmering 2012-05- 30 Svar 1 3 p a) Proprietary: Det är denna modell som har dominerat marknaden, programföretag anställer programmerare som sköter utvecklingen, kunderna betalar genom att köpa en licens. Företagen skyddar programvara med hjälp av copyright Open communities: Utvecklingen utförs av volontärer med ett begränsat kommersiellt intresse, utvecklingen koordineras via webb- platser på. Källkoden är synlig och skyddas inte med copyright. Corporate distribution: Trots att Open Communities levererar bra programvara har man upptäckt att många kunder får problem med bl.a. support. Vissa programvaruföretag har specialiserat sig på att sälja tjänster som gör OSS programvara mer tillgänglig Svar 2) a) 1. Free Redistribution (Fri återdistribution) Licensen skall inte förhindra någon part att sälja eller ge bort programvaran som en komponent som ingår som en del i annan programvara. Licensen skall inte kräva en royalty eller avgift i ett sådant fall. 2. Source Code (Källkod) Programmet måste innehålla källkod och tillåta distribution både i form av källkod och kompilerad kod. Källkod ska tillhandahållas så att en programmerare kan förändra koden. Att medvetet fördärva källkoden är inte tillåtet. 3. Derived Works (Programvaran kan vara vidareutvecklad) Licensen måste tillåta förändring av tidigare kod och tillåta att den vidareutvecklade programvaran kan distribueras med utgångspunkt från de villkor som gäller för den ursprungliga programvaran. b) Som etjänsteutvecklare är det bra att känna till att det finns programvara som distribueras med utgångspunkt från dessa principer. Det är t.ex. bra att känna till att det finns databashanteringssystem som t.ex. MySQL som jag kan använda och som inte är omgärdad av hinder om jag vill köra min etjänst i kommersiell drift eller vidareförmedla programkoden för den etjänst som jag utvecklat. Om jag inte känner till detta kan detta få juridiska följder och det kan skapa badwill för mig. Jag kan också använda mig av alla fördelar som Open Source ger vid programutveckling.

Svar 3) 6 p a) I en kravspecifikation ingår normalt a. En funktionslista med tillhörande användningssituationer i samband med kursen har detta illustrerats med en lista över användningsituationer. Kan även beskrivas som funktionslista (handlingsrepertoair) eller med hjälp av use- case diagram. b. Användargränssnitt dvs en beskrivning av hur användaren ska interagera med IT- systemet. Beskrivning av skärmdokument och hur interaktion sker med skärmdokument. På kursen har ni specat detta med er prototyp. c. Informationsmodell med tillhörande tabeller. d. I regel försöker man hålla en kravspecifikation teknikneutral men ibland kan även tekniska krav ingå i kravspecifikationen för IT- systemet. b) Det är viktigt att genomföra en noggrann analys av etjänsten genom att den utgörs underlaget för att förstå hur och varför IT- systemet skall användas. Dåliga kravspecifikationer som grund för utveckling av IT- system leder ofta till att IT- system inte lever upp till vad användarna förväntat sig. Svar 4) 8 p a) 4 p Kommunikationshandlingar: utförs med hjälp av språkliga symboler, resulterar i meddelanden, förändrar statusen i den sociala världen, skapar och förändrar sociala relationer b) 4 p Den fysiska nivån handlar om mediet eller kanalen som meddelandet realiseras på. Den syntaktiska nivån handlar om hur meddelandet är strukturetat t.ex. i olika sammanhängande fält. Den semantiska nivån handlar om innebörden i de termer och begrepp som används. Den pragmatiska nivån handlar om intentionen med meddelandet. Svar 5) 6 p a) 4p. Social interaktion är alla handlingar som är inriktade mot en annan social aktör. Dessa handlingar utförs och styrs av normer och regelverk. Den sociala interaktionen utförs för att uppnå resultat och utlösa effekter. Kommunikation är grundläggande för social interaktion men kan även inkludera andra typer av handlingar. Social interaktion skapar och upprätthåller sociala relationer. Observera att kommunikation är inte lika med social interaktion. Social interaktion kan även inkludera materiella handlingar och transporthandlingar. b) 2p.

Aktörerna d.v.s. de människor som interagerar behöver inte mötas rent fysiskt vilken innebär att den sociala interaktionen inte blir plats och tidsberoende. Man kan mötas via IT systemet utan att man befinner sig på samma plats eller kommunicerar vid samma tidpunkt. Svar 6 a) O Reilly nämner tre strategier: (1) att man kan skapa sig kontroll över vissa typer av strategiskt viktiga data. Detta gäller t.ex. lägesbaserad information, produktidentifierare, information om events etc; (2) att man kontrollerar data som det kostar mycket att skapa t.ex. kartinformation; (3) att man låter användarna i själva etjänsten generera informationen. b) Databashantering innebär hur man lyckas att generera, organisera, förändra och göra information sökbar. Detta handlar både om hur man lyckas att hantera informationen på ett begripligt sätt när det presenteras och kommuniceras men också hur den hanteras rent tekniskt i form av svarstider, säkerhet, etc. Enligt O Reilly bygger varje lyckad etjänst på Internet på en specialiserad databas med avancerade sökalgoritmer. Det är också viktigt att skapa kontroll över informationen genom att äga databasen. Svar 7 Kod som löser A, B och C ser ut på följande sätt: Kod som löser A, B och C ser ut på följande sätt: <?php function display_data($modell){ $conn = mysql_connect('localhost', 'mattias', '123456'); if (!$conn) exit; if (!mysql_select_db('mydb')) exit; $query = " SELECT Bil.Regnr as reg, Bil.pris as pris, Bil.mil as mil FROM Bil, Annons WHERE bil.modell = $modell AND Annons.regnr = Bil.regnr"; // <A>SQL $result = mysql_query($query); if(!$result){ echo ' Ingen annons med denna modell finns! ; return; // <B> echo '<div class="cheader">'. $modell. '</div>'; echo <table><tr> ; echo <th>registreringsnummer</th><th>pris</th><th>mil</th></tr> ; while($r = mysql_fetch_assoc($result)){ echo '<tr><td>'. $r['reg']. '</td><td>'. $r['pris']. '</td><td> ; // <C> echo $r['mil']. </td></tr> ; echo </table> ; if(array_key_exists($_get, 'modell')) display_data(mysql_real_escape_string($_get['modell']));?>

Kod som löser D ser ut på följande sätt: <?php function display_data($modell, $maxmil){ $conn = mysql_connect('localhost', 'mattias', '123456'); if (!$conn) exit; if (!mysql_select_db('mydb')) exit; $query = " SELECT Bil.Regnr as reg, Bil.pris as pris, Bil.mil as mil FROM Bil, Annons WHERE bil.modell = $modell AND Annons.regnr = Bil.regnr"; // <A>SQL if ($maxmil) $query.= " AND Bil.mil < $maxmil"; // Ny SQL $result = mysql_query($query); if(!$result){ echo ' Ingen annons med denna modell finns! ; return; echo '<div class="cheader">'. $modell. '</div>'; echo <table><tr> ; echo <th>registreringsnummer</th><th>pris</th><th>mil</th></tr> ; while($r = mysql_fetch_assoc($result)){ echo '<tr><td>'. $r['reg']. '</td><td>'. $r['pris']. '</td><td> ; echo $r['mil']. </td></tr> ; echo </table> ; if(array_key_exists($_get, 'modell')) if(array_key_exists($_get, maxmil )) //ändrad kod display_data(mysql_real_escape_string($_get['modell']), mysql_real_escape_string($_get['maxmil'])); else display_data(mysql_real_escape_string($_get['modell']), null);?> Svar 8 Observera att Bil med registreringsnummer DCA001 finns två ganger i annonstabellen vilket visar att det finns en 1:M relation mellan Bil och Annons.

Svar 9 a) GET förmedlas genom URL:en, POST förmedlas genom ett meddelande i requesten. GET har därför begränsad storlek, POST har inga dylika begränsningar. GET kan delas med andra genom att kopiera adressraden, POST är "osynlig" för användaren. 1 p b) Exempelvis: Det är bättre att använda GET då användaren ska kunna dela med sig av länkar till andra. Jämför minsida.com/index.php?nav=18&show=blabla med POST (som alltså enkom ger minsida.com/index.php). Svar 10 4 p Mailet innehåller Anders lösenord i klartext. Detta betyder att alla användares lösenord i databasen sparas i klartext eller i en form som enkelt kan avkrypteras. Det är inte så lyckat i det fall att någon får tillgång till databasen. Speciellt då kopplingen mellan lösenord och email lagras och användare tenderar att återanvända sina lösenord. Den som är ansvarig för innehållet i databasen kan ju också se detta och utnyttja detta på ett otillbörligt sätt! Svar 11 exempelvis.newscls{ color: #000; #newsheader{ font- face: Verdana; Svar 12 Variabler i PHP har en typ, den anges implicit genom tilldelningen. Att så är fallet noteras ex vis genom möjligheten att se huruvida en variabel är en integer (is_integer()). Vidare styrks detta av det faktum att operatorn === existerar. Faktum är att det är omöjligt att lagra data utan att ange en typ. Ty att ange en typ är ekvivalent med att explicit ange hur en mängd binär data skall tolkas. Om vi inte vet hur en mängd data skall tolkas kan vi inte särskilja den från "icke- data" i form av en slumpvis binär teckensträng (som alltså saknar mening).