Professional Documents
Culture Documents
IN1030 Anteckningar
IN1030 Anteckningar
Vipps
Uppgift 1.
Beskriv i tekst en sluttbruker av systemet du har valgt. Det kan være deg selv eller
noen du kjenner. Beskriv hvor ofte vedkommende bruker systemet, fra hvilke
terminaler (smarttelefon, bærbar PC, nettbrett, annet) systemet brukes, og hvilke
motivasjoner sluttbrukeren har for å anvende systemet. Beskriv også hva som er
viktige funksjoner for brukeren. a)
Brukaren jag valde för denna uppgift är mig själv. Jag är en ny brukare av vipps tjänsten,
och jag måste säga att hittills är jag väldigt nöjd. Jag och samt dem allra flesta som brukar
denna tjänst använder den på sin mobiltelefon (Android) minst en gång om veckan oftast om
helgerna. Motivationen till att använda tjänsten är dess universalitet, då alla jag känner samt
flera andra tjänster som är (nästan) nödvändiga för mig brukar vipps som ett betalningssätt
(ruter f.ex.). Den viktigaste funktionen av vipps är nog den mest fundamentala funktionen; att
kunna snabbt och säkert föra över pengar till vänner eller tjänster.
Tegn et rikt bilde for systemet du har valgt. Det rike bildet skal inkludere
interessentene fra oppgave 1b. Det rike bildet skal illustrere de ulike interessentenes
interesser (eng. concerns) samt relasjonene mellom interessentene (og systemet).
Bruk hjerter for å illustrere positive
c)
Rike bilder kan brukes til å identifisere konflikter eller motsetninger mellom
interessentenes ulike perspektiver. Ta utgangspunkt i interessentene og deres
interesser som du beskrev i oppgave 1b, samt det rike bildet du tegnet i oppgave 1c.
Beskriv med egne ord de positive relasjonene samt de konfliktene eller
motsetningene du eventuelt har identifisert. Hvordan tror du dette kan påvirke
systemutviklingsprosessen og/eller bruken av systemet? d)
Jag har tagit en utgångspukt i slutbrukaren, alltså privatpersonen. Här ser vi två olika
perspektiv, det ena av den “vanliga” brukaren och det andra av den “äldre” brukaren. Ålder
enligt mig spelar stor roll när det gäller perspektiv, då den “vanliga” brukaren är väldigt glad i
vipps då tjänsten gör dess transaktioner mycket enklare. Medan den “äldre” brukar kan ha
svårigheter med att registrera sig på appen samt bruka den vardagligt. Därför kan även den
“äldre” brukaren hamna i konflikt med tjänsten då den brukas mer och mer vardagligt ju tiden
går. Konsekvensen av detta kan bli att utvecklingen av vipps kommer att gå åt retningen av
att göra den mer tillgänglig samt (ännu) enklare i bruk för de äldre brukarna. Andra positiva
relationer är mellan vipps och företagsägare samt den norska staten. Den norska staten vill
inte att folk håller deras pengar sparade i ett sparkonto, och vipps gör det enklare för dem att
spendera dessa pengar, som i sin tur håller pengarna i cirkulation som bidrar till mer skatt
som går till staten. Privata företagsägaren däremot, bryr sig väldigt mycket om att det ska
vara enkelt för folk att spendera pengar på dess tjänst, därför har även han en positiv
relation till vipps AS, som gör det enkelt för folk att skicka små summor av pengar snabbt
och riskfritt. Symbiosen i detta förhållande är att företagsägaren betalar en liten avgift för
vipps tjänsten förutsatt att den omsätter mer än 10 miljoner NOK per år genom vipps
tjänsten.
Uppgift 2
Les notatet Samspill (se pensum). Velg én av de ti påstandene i dette notatet, og drøft
dine tanker om samspill relatert til denne påstanden. Argumenter for og/eller imot
påstanden med minst tre eksempler, gjerne basert på egne erfaringer med bruk av
teknologi. a)
Disse interessentene deltar i (sam)spillet med ulike ressurser, de har ulike motiver og de får
ulike gevinster av å involvere seg. Detta påståendet stämmer, och det kan man se om man
ser på exemplet med vipps. Å ena sidan har vi enkel brukaren som bryr sig inte om bolaget
utan snarare om tjänsten. Medan å andra sidan har vi shareholders/ägarna alltså bankerna,
de måste nästan bry sig om allt, både brukarna och bolaget, då de vill se vinst som ett
resultat av deras investeringar. Detta exemplet visar hur olika aktörer anknyter sig olikt
mycket med tjänsten baserat på vilket perspektiv de har, eftersom ägarna riskerar att förlora
pengar om bolaget går i konkurs, må de engagera sig mycket mer än en brukare som bara
vill bruka tjänsten.
Kunnskap om hvordan teknologi har utviklet seg over tid kan være nyttig når man
skal løse eksisterende eller nye utfordringer. Nyskapning gjennom det å kunne
forestille seg hvordan noe kan være annerledes forutsetter ofte en fremtidsvisjon. De
siste årene har det blitt vanligere med netthandel (Oda, Vy) samt strømmetjenester for
både musikk og video. Dette endrer adferdsmønstrene våre og vår forståelse av det å
handle eller konsumere underholdning. Diskuter hvordan digital teknologi kan påvirke
hverdagen og dermed endre samfunnet. Diskuter gjerne problemstillingen ut fra flere
perspektiver og bruk eksempler. b)
Mänsklighetens moderna tillgång till teknologi och därmed underhållning är en sak vi kunde
förr bara drömt om. Faktumet att vi kan med ett par clicks bli underhållna i timmar är allt
förutom naturligt, som i sin tur har eller kan ha en rad negativa konsekvenser för oss. Snabb
underhållning i form av Tiktok, Youtube, Twitch etc., tjänster som fångar in dig snabbt och
förväntar dig att inte stanna på samma video längre än bara ett par minuter eller sekunder
kräver väldigt lite uppmärksamhet för att bruka. Det har redan blivit visat att ungdomar får
kortare och kortare uppmärksamhet intervaller, då de har blivit vana till de snabba
“belöningarna” av dessa tjänster. Förr i tiden var man tvungen att spendera lång tid innan
man fick se sin favoritfilm eller se på en show för att få sin artificiella dos av dopamin, en dos
som nu kan fås med hjälp av ett par clicks under sekunders tid. Detta är inte särskilt bra om
man ska faktiskt använda hjärnan på ett akademiskt sätt, jag själv känner att det kan vara
svårt ibland att fokusera på föreläsningen, och istället sitter jag hellre på mobilen. Därför är
snabbt tillträde till sociala medier eller andra tjänster väldigt farligt för en person som måste
kunna fokusera i långa perioder av tid för att lyckas. Dessvärre ger denna åtkomsten till
sådana tjänster en större exponering för reklamer. Detta är en dålig konsekvens eftersom
aldrig förr har stora korporationer haft sådan makt över unga och enkelt manipulerade
ungdomar som idag. Dessa reklamer är trots allt inte gjorda för att gynna individens
utveckling på något sätt, utan snarare få företaget att tjäna pengar. Därför påstår jag att en
ökad exponering för reklamer minskar ungdomars förmåga att tänka självt och rationellt, och
ökar mängden folk som kommer att blint tro vad andra säger istället för att tänka själv. I
slutsats, tycker inte jag att snabb åtkomst till sociala medier eller underhållning är någonting
bra för oss människor, det går direkt emot vår natur och hjärnans hormonsystem, därför
hoppas jag även på att denna åtkomst kommer att minska så att vi förebygger framtida
problem.
Det är väldigt viktigt för utvecklare och projektledare att aktivt modellera och förutse
relationerna mellan brukare och system. Man kan inte simpelt programmera någonting och
blint släppa ut det i marknaden och detta är anledningarna varför: Först och främst så måste
man veta ungefär hur folk kommer att reagera till din produkt, det handlar delvis om user-
experience men även måste man lägga lite fokus på de övriga intressenterna av din tjänst.
Dessa kan vara shareholders men även staten i lander du opererar i samt lagen. Om man
redan vet hur folk kommer att reagera till din produkt i förtid, kan du lätt göra ändringar innan
det är för sent, dvs. utan att förstöra din reputation. Med en god reputation är det lättare att
attrahera investerare, men även lojala kunder. Dessutom kan försiktig planering och
modellering av din produkt öka kvaliteen av produkten, vet du redan vissa saker som bör
ändras i förtid, kan du lättare göra ändringar som du skulle ändå införa förr eller senare, bara
billigare och snabbare. När ditt system ännu inte är implementerat, finns det inte lika mycket
stress över att ändra på saker. Sist men inte minst, är det viktigt att upptäcka potentiella
problem i ditt system före det är implementerat, det kan innebära lagliga fel eller bara
generella problem med systemet självt. Inte bara leder denna modellering till en ökad kvalite
av din produkt då den är närmare till att vara felfri, utan det sparar enn del av pengar och
resurser som kan istället ägnas till utveckling. Då som tidigare nämnt, problem som upptäcks
i förtid kostar mindre pengar och tid. I slutsats är modellering ett väldigt bra, förebyggande
verktyg som kan avgöra om en tjänst överlever eller dör i förtid.
Vipps:
- Jag förväntar mig att testa ut funktionaliteten av vipps mobilapplikation och potentiellt hitta
något/några sätt att förbättra denna funktionalitet på. Även kommer jag vela ta reda på hur
deltagaren brukar applikationen och lite om deras vanor om att betala med hjälp av vipps.
- Målgruppen till systemet tror jag omfamnar dem allra flesta människor som har hand om
sitt eget bankkonto, exempelvis 15-95, men eftersom dem som använder systemet som
mest är unga vuxna mellan 18-28, väljer jag denna åldersgruppen att representera
målgruppen i undersökelsen.
- Uppgifterna är följande;
- Logga in på appen genom att bruka personlig kod eller scannaren.
- Skicka en förfrågan på 1kr till en valfri person.
- Skapa en grupp på 3 personer.
- Hitta dina personuppgifter.
- Ändra till “dark theme”
- Deltagaren är en del av målgruppen, och har en väldigt god relation till mig (planeraren).
Detta påverkar mest troligt inte undersökelsen, då vipps är inte lagad av mig och deltagaren
har lovat att vara ärlig med mig. Men hade jag varit en utvecklare hos vipps, hade detta nog
varit relevant, då resultaterna hade varit biased.
Jag vill registrera data på ett google docs dokument, denna informationen kommer att
raderas så fort undersökelsen är färdig. Samtyckescheman är viktiga vid undersökelser då
de skyddar deltagaren från olaglig hantering av dess data, men det ger även ett lagligt sätt
för företag och skolor att utföra undersökelser på. Samtycktescheman ger deltagaren en
direkt översikt kring hur dess data kommer att användas, samt dess egna rättigheter.
Jag tyckte att pilotundersökelsen gick bra, man hade kunnat se lite mer på djupet av de olika
funktionerna, men i grunden täckte undersökningen nästan alla stora områden av vipps
appen. En modifikation av metoden hade varit att potentiellt se lite djupare på inställningarna
och se hur enkelt det är att hitta rätt inom inställningarna - se på djupet. Lärdomarna jag tar
med mig till huvud undersökningen är att jag behöver se lite mer på djupet av programmet
för att verkligen kunna hitta möjliga förbättringar
Nu när jag har istället fått analysera sekvenstabellen, hade man kunnat göra den “kortare”
dvs. komma fram till rätt ställe vid bruk av färre klicks. Istället för att ha inställningar under
“profil”, hade man kunnat ha en liten ikon bubbla som representerar inställningar, då hade
denna uppgiften kunnat skett i ett färre klick än det gjorde. Däremot är inte ändringen av
theme färg en central del av vipps applikation, samma gäller för åtkomst till inställningar,
därför kan jag även förstå den nuvarande design valet.
a) Se videoen Ein introduksjon til universell utforming som du finner nederst på siden
her:
https://www.uutilsynet.no/veiledning/hvordan-jobbe-med-universell-utforming/245
1. Använd dig utav hög kontrast mellan text och bakgrund. Det är viktigt för folk att lätt kunna
läsa din text, därför ska texten även vara lättläslig genom att ha hög kontrast mellan texten
och bakgrunden som den befinner sig på. Folk med färgblindhet kan ibland ha det svårt att
skilja åt färger som är lika varandra, därför är det viktigt att inkludera dessa människor
genom att bruka hög kontrast. Ofta är vit text på en mörkare bakgrund en bra lösning.
2. Använd tydliga bildtexter som beskriver bilder precist, det gör det enklare för tex. blinda
människor att få en översikt över vad bilden visar genom en textläsare. Till exempel om man
har en bild på en katt, så kallar man bilden för katt.jpeg och bildtexten kan vara; “En bild på
en katt”.
3. Ge brukaren kontroll över att byta textstorlek och färg på hemsidan, detta kan vara viktigt
för universell utformning då alla människor kan inte läsa text som är liten. Detta kan man
implementera genom att ha en navigation bar med olika inställningar på sidan, till exempel
en för dark theme eller för större text.
Velg ut tre av de 24 tipsene som presenteres i videoen, og forklar disse tre. Bruk
gjerne eksempler for å illustrere hvordan disse kan implementeres i praksis. b)
Forklar med egne ord de fire WCAG 2.1 prinsippene.
Velg deretter ut og beskriv én retningslinje for hver av de fire prinsippene. Bruk
eksempler for å illustrere hvordan dette kan brukes i praksis. Den norske
oversettelsen av WCAG 2.1 finner du her:
1. Perceivable - att brukaren har möjligheten att förstå all information visad i applikationen
samt, alla grensesnitt som programmet brukar. Detta kan göras till exempel vid bruk av ett
text-to-speech program implementerat i applikationen, så att blinda människor kan även ha
åtkomst till informationen i applikationen.
2. Operable - Brukaren ska kunna bruka applikationen och dess funktioner, dvs.
applikationen ska inte kräva rörelser som inte alla kan utföra för att bruka applikationen.
Detta görs genom att ha stora och lätt tillgängliga knappar på skärmen till exempel, och/eller
genom att inte ha alldeles för svåra (att utföra) “i am not a robot” checker.
4. Robust - Brukaren ska kunna lätt interpretera informationen på sidan trots att den
utvecklas teknologiskt. dvs. att innehållet av applikationen ska kunna lätt tolkas i framtiden
av alla trots att sidan uppdateras. Detta görs genom slippa göra val som antingen väljer
funktionalitet eller universell utforming, designet av applikationen ska inte vara tvunget att
välja det ena eller det andra, utan dessa beslut om design ska alltid gå parallellt med
universell utforming. Detta kan göras genom att ständigt uppdatera sitt text-to-speech
program i samband med nya design implementationer.
https://www.w3.org/Translations/WCAG21-no/
Syftet med en tillgänglighetförklaring är att låta brukaren veta vad de kan förvänta sig att
webbsidan eller applikationen gör den tillgänglig för vem/vilka. Det är en beskrivning på hur
tillgänglig sidan eller applikationen är och vad det innebär. Detta görs så att folk med
störningar eller andra problem kan lätt se om webbsidan eller applikationen dem är på
stötter deras hindring.
Universell utforming - Det är hänsyn som man tar vara på i designen av en hemsida eller
applikationen så att alla kan ha tillgång till informationen av tjänsten. Detta görs ofta i form
av programmer som kan spela upp ljud av texten som står på tjänsten.
Inkludering - Inkludering betyder att få med alla typer av människor, i detta fallet- att få med
alla typer av människor med i tjänstens funktionalitet. Dvs. att alla möjliga människor med
alla möjliga funktionsnedsättningar, ska vara inkluderade i möjligheten av att bruka tjänsten.
Tillgänglighet - innebär att någonting ska vara tillgängligt, att till exempel att kunna ha
tillgång till dina personuppgifter på en hemsida sådan som tex. Helsenorge.no.
I denne oppgaven blir du invitert til å reflekterer over hva tilbakemelding (engelsk:
feedback) betyr for deg med tanke på inkludering og universell utforming i en
studiesituasjon.
Feedback ansikte mot ansikte kan medföra problem för vissa människor med vissa speciella
funktionshinder, speciellt om den som ger feedback inte har blivit utbildad i teckenspråk osv.
Vid tillfället då det inte finns en person som kan teckenspråk, kan personen som får
feedback bli excluderad från att få feedback över huvud taget. Därför vis man ska ge mer
seriös feedback, kan det vara lurt att ha någon som kan teckenspråk på tex. arbetsplatsen
eller skolan, alltså finns det lösningar på denna excluderingen, men en som inte gäller för
alla fall.
Feedback via digitala medel som zoom, teams eller mail är mer inkluderande, då man kan
bruka en textläsare för att läsa texten på skärmen, samt bruka chattfältet vis man inte kan
höra bra. De programmerna är säkert inte helt perfekt universellt utformade, men de
möjliggör enkel åtkomst till information, då zoom tex. är väldigt enkelt designat
Därför hade jag sagt att dataprogram sådana som zoom tex. gör det enklare för
funktionshindrade människor att få lätt åtkomst till information eller feedback genom, då man
inte behöver en tolk som kan tolka till teckenspråk, utan ett program gör det åt en.
Oppgave 2 - Personopplysninger
Se for deg at du tar opp lyd eller tar bilde i en av gruppetimene dine. Er det nødvendig
å informere de som er tilstede om opptaket? Og i så fall hvordan ville du gått fram?
Om man ska filma folk måste dem först godkänna att denna filmningen råder plats om deras
ansikten är synliga på videon. Därför är det nödvändigt att dem samtycker till denna filmning
då en bild på en person är en personuppgift. Istället kan man få muntligt samtycke till att
filmningen ska kunna råda plats, eller “radera” ansiktena genom att bruka ett mosaic filter på
de berördas ansikten.
1. Det är inte lagligt för en databehandlare att plötsligt engagera en annan databehandlare
till att lagra och bearbeta dess data utan ett tidigare skriftligt avtal angående detta. Enligt
personopplysningsloven, kapitel 4, artikel 28, paragraf 2.
2. Företaget måste ingå i ett databehandingsavtal med det externa cloud-företaget. Det
gäller säkerhet av datan samt hur de blir behandlade och använda. Då datan inte längre
ligger i IT-företaget utan i en cloud-service, så är det cloud servicen som är ansvarig för att
personupplysningarna blir behandlade på rätt sätt, därför har man detta avtalet.
Finn frem til personvernerklæringen til det systemet du jobbet med i Oblig 1 og Oblig
2 (Vipps, Vy, Oda, eller Yr). Hvem kan brukerens personopplysninger utleveres til?
Det holder å nevne to interessenter/aktører i denne oppgaven. Hvis det er vanskelig å
finne konkrete interessenter/aktører reflekterer du rundt hva dette har å si for
brukeren.
https://www.youtube.com/watch?v=ixIoDYVfKA0.
Filmen om av Patrick Lin visar ett viktigt etiskt dilemma där en självkörande bil ska göra ett
beslut, låta föraren av bilen hamna i fara, eller välja mellan två andra bilister att hamna i fara.
Detta är ett svårt dilemma då man inte längre kan skylla på att handlingen var en mänsklig
reaktion, då bilen är styrd av en AI. Vem är ansvarig vis en AI dödar någon? Eller vem
bestämmer vilka beslut en AI ska utföra? Hur löser man då detta dilemmat? Jo, man
behöver tydligt avgöra vem som juridiskt står till felet vis en sådan situation sker. Jag tycker
personligen att det borde inte straffa en AI på samma sätt som en människa, alltså behöver
man ha ett helt separat lagverk för sådant. Men när det gäller att maskinen ska aktivt begå
“goda” etiska beslut, borde man programmera den på liknande sätt som en människa hade
tänkt, att den ska först och främst skydda passagerarna i bilen och sedan tänka på vem som
kommer bli skadad som minst vis en olycka sker. Detta minimaliserar både skador på
mänskligheten i det hela samt som skyddar “sig själv” genom att skydda passagerarna i
bilen.
Etisk reflexivitet är det jag gjorde nu, just att reflektera kring etiska frågor. Det var även syftet
av videon, att stress-testa sina egna etiska värden och kanske till och med lära sig hur man
skulle reagerat angående andra etiska frågor
Oppgave 1 a)
Nevn minst 3 fordeler og minst 3 ulemper ved å utvikle et nytt system i forhold til å
benytte seg av det allerede eksisterende systemet.
Fordeler: 1. Den største fordelen jeg vil ta opp er at man får skreddersydd opplevelsen så
mye man ønsker for brukerne.
2. Man kan også tilby en helt unik opplevelse til kunder og markedsføre tjenesten som dette
og dermed oppleve større interesse.
3. Ved å bruke et egetutviklet system kan man også fritt oppdatere det og komme med nye
løsninger for å gjøre det mer lettvint og raskere å bruke uten å være avhengig av at en
ekstern part gjør dette.
Ulemper: 1. En ulempe er at kunder som er vant til det eksisterende systemet kan ha
vanskeligheter med å bruke det nye systemet.
2. En annen ulempe er at de ansatte må lære et helt nytt system, og det kan føre til
forsinkelser for kundene.
3. Systemet de bruker nå blir også brukt av andre kinoer, ved å ha et nytt system kan det
være vanskeligere for kunder fra de andre kinoene å prøve noe nytt.
b) Basert på fordelene og ulempene dere fant i oppgave b, ta stilling til om dere ville
valgt å benytte dere av det eksisterende systemet eller utviklet et nytt system.
Begrunn svaret.
Ettersom Virtuoso Kino skal tilby en opplevelse som ingen andre kinosaler tilbyr, tenker vi at
det hadde vært best med et nytt system som er tilrettelagt de nye tjenestene. De burde
fremdeles ta hensyn til at de eksisterende kundene deres er vant til det gamle systemet og
kanskje ikke er interessert i de nye tjenestene og derfor gjøre det like enkelt som før å kjøpe
en standard billett.
b) Kartlegg minst seks interessenter i systemet til Virtuoso Kino. Få med navn
(eksempelvis “Utvikler”, ikke fornavn), interesse til hver interessent og eventuelt
ansvar interessenten har knyttet til utvikling og/eller drift av systemet. Sett dette opp i
en oversiktlig tabell som inneholder kolonnene: navn, interesse og eventuelt
ansvarsområde.
Alle interessentene er aktører utenom konkurrentene. Det er fordi eiere og andre ansatte,
kunder, utviklere og samarbeidspartnere anvender seg av systemene til Virtuoso. De som
ikke gjør dette og som heller ikke har noen mål ved systemet til Virtuoso er konkurrentene,
ettersom deres fokus er på deres egne systemer.
Oppgave 3
Scrum er en utviklingsprosess som baserer seg på tidsbokser. Med tidsbokser menes det at
oppgaver settes opp til en sprint på et visst antall uker. Kanban er mer orientert mot at
oppgavene jobbes med til de er ferdige. Det er altså et mindre fokus på estimering hvis man
benytter Kanban istedenfor Scrum. Flyten i Kanban fungerer vet at man definerer noen
oppgaver som skal gjøres og leveres så snart de er ferdigstilt. Flyten i Scrum er basert på at
man utformer de viktigste oppgavene og jobber med de i bestemte tidsrammer.
c) I hvilken grad bør man ta høyde for at kravspesifikasjonen til systemet til Virtuoso.
Kino må endres underveis i utviklingen? Begrunn svaret.
Man burde forvente dette ettersom brukernes behov kan endres underveis i utviklingen. Det
kan også være at det er mangler i kravspesifikasjonen, som må endres på, som for
eksempel ting man glemte å ta med eller at det kommer nye krav i WCAG. Det kan også
være at man hadde krav som viste seg å ikke fungere i praksis.
Jeg ville argumentert for bruk av Kanban i utviklingen av systemet. Billettsystemet er veldig
viktig og åpenbart kanalen hovedinntekten til kinoen flyter gjennom. Derfor er en grundig
utviklingsprosess hvor man er sikker på at alt får oppmerksomheten og sikkerheten det
trengs viktig.
1. Kunde: Ønsker å ha tilgang til billetten sin helt til filmen har blitt vist, dette for å kunne
dobbeltsjekke seteplassering og hva slags billettype de har valgt. Ønsker at billettsystemet
er enkelt å bruke, dette fordi noen kan ha vansker med teknologi, eller trenger et system
som er tilrettelagt for andre type utfordringer.
2. Eier: Ønsker statistikk på hvilke filmer som selger mest, da kan de legge til flere billetter av
den filmen og fjerne billetter for filmer som selger dårlig og eventuelt utvide eller innskrenke
hvor lenge en film vises. De kan også ønske statistikk på hvor mye billetter selger i forhold til
pris og dermed få en peker på hvordan de skal justere prisene.
3. Kundebehandler: Ønsker å kunne hente opp kunders billetter, dette i tilfelle de trenger
hjelp til å hente opp billetten sin. Ønsker en egen oversikt over hvilke seter/type billetter som
er solgt til en film, dette for å være forberedt hvis noen kjøper en billett i kassen.
b) Sett opp en liste over minst fire ikke-funksjonelle krav som dere ønsker å stille til
billettsystemet. Del opp kravene i produktkrav, organisatoriske krav og eksterne krav,
og få med minst ett krav av hver type.
2.,3. Produktkrav: Tjenesten skal kunne håndtere 1000 brukere samtidig. Man skal kunne
finne, betale for og motta ønsket billett på under 2 minutter.
4.Eksternt krav: Billetter beregnet for brukere med nedsatt funksjonsevne skal holdes av til
de som kan bevise at de har disse behovene. Dette skal også kunne gjøres like raskt som i
krav 3.
Krav 1: Dette kravet “testes” ved å simpelthen anvende Kanban når systemet utvikles.
Krav 2: Kravet kan testes ved å simulere at 1000 eller flere bruker systemet.
Krav 3: Kravet kan testes med en brukerundersøkelse, hvor man ber en bruker finne billetten
de ønsker og observere resultatene.
Krav 4: Utvikle en løsning for å bevise behov og utføre en brukerundersøkelse som i krav 3.
Oppgave 5 a) Tegn et use case-diagram som inkluderer alle nødvendige use case som
trengs for å oppfylle de funksjonelle kravene du spesifiserte som brukerhistorier i
oppgave 4a. Ta med alle involverte aktører (både primære og sekundære).
b) Lag en tekstlig beskrivelse av et av use casene du/dere foreslo i oppgave 5a. Ha
med navn på use caset, aktør(er), pre- og post-betingelser og minst to alternative
flyter.
Oppgave 2
a) Lag en tekstlig bekrivelse for brukstilfellet “Kjøp billett som eksisterende kunde”
ved bruk av deres tenkte system. Ha med aktører, hovedflyt og alternativ flyt der
kunden har glemt passordet, og eventuelle pre- og postbetingelser.
b) Lag et sekvensdiagram for brukstilfellet “Kjøp billett som eksisterende kunde” etter
den tekstlige beskrivelsen i oppgave 2a. Bruk de nødvendige klassene og metodene
fra oppgave 1. Ta med alternativ flyt der kunden har glemt passordet. Objekter og
metoder i sekvensdiagrammet skal reflektere klassediagrammet i oppgave 1.
Oppgave 3 a) Hva er karakteristisk for et aktivitetsdiagram, og hvorfor kan det være
nyttig å benytte et slikt diagram?
b) Modeller et aktivitetsdiagram for kjøp av billett enten via nettside eller app. Presiser
i besvarelsen hvilken plattform dere modellerer for.
Oppgave 4
a) Hvordan kan bedriften korte ned tiden fra ide til produkt-slipp og samtidig være
sikker på systemets kvalitet? Begrunn.
Genom att bruka DevOps arbetssättet, den handlar främst om flyt där utvecklare jobbar
ständigt med testare och projektledare. Eftersom utvecklare jobbar samtidigt som
projektledare och testare på samma projekt, betyder det att testarna kan tidigare börja testa
projektet och på så sätt tidigare få tillbaka meddelanden och upptäcka fel i koden. När man
fixar fel tidigt, slutar man gå längst en väg som leder en vilse, därför spenderar man senare
mindre tid för bug fixing och tweaking för att få projektet att nå kraven. Alltså når även
projektet marknaden/kunden fortare
Man kan alltså se olikheterna mellan de olika begreppen, däremot ingår alla de i samma
arbetsprocess och därför är starkt sammankopplade med varandra.
En interessent er en person, gruppe eller organisasjon som kan påvirke eller bli påvirket
av en sak eller et anliggende, for eksempel en digital teknologi.
Interesse (eng. Concern), visse faktiske eller bare forestilte behov som søkes tilfredsstilt
av en interessent.
• En aktør for et system representerer en rolle som et menneske eller et annet system som
har et mål med systemet.
• Det er ofte flere interessenter enn aktører, og en aktør er som oftest også en interessent.
Rike bilder Kan brukes brukes individuelt og i grupper/teams. Kan brukes for å få oversikt.
Kan brukes for å utvikle eller endre systemer og tjenester, for å analysere eksisterende
systemer, for å evaluere systemer.
Hvem har interesser? Hvem er brukerne? Hvilke verdier råder? Hvem bestemmer/har makt?
Hvem bestemmer hvem som bestemmer? Hvem sitter på informasjonen? Hvem betaler?
Hvem er kunden? Er det noen konflikter? Er det noe vi trenger å undersøke mer?
Brukerundersökelse
Hvorfor undersøke bruk?
- Kritiske systemer
- “failure is not an option”
- Fly, romskip, biler, våpen….
- Hverdagslivet
- telefonen må fungere!
-Universell utforming
- tilgjengelighet
- inkludering
- Alle skal være med.
- Kostnader/resurser ved utvikling
- Historien viser seg at det kan være dyrt å ikke ha med brukere.
Det er en rekke andre måter å beskrive brukskvalitet. Jakob Nielsen har en mye brukt
liste av karakteristikker; at systemet skal være...
● Lett å lære.
● Effektivt.
● Lett å huske.
● Relativt feilfritt og feiltolerant.
● Behagelig å bruke.
Skjult observasjon I hverdagen benytter vi oss ofte av skjult observasjon ved å iaktta folk i
omgivelsene, legge merke til bestemte hendelser osv. Dette er uproblematisk så lenge det
ikke er snakk om forskning og systematisk datainnsamling for en bestemt bruk.
Åpen, passiv observasjon Basert på de observertes samtykke gjør man en systematisk
observasjon av hvordan en eller flere personer opptrer i en situasjon
Deltagende observasjon En engasjerer seg i en aktivitet og får et blikk på situasjonen som
både er basert på at en er deltaker og tilskuer, eventuelt veksler mellom det ene og det
andre.
Lover
1. Personopplysningsloven - skyddar personens data som kan brukas för att
identificera en individ.
2. Likstillings- och Diskrimineringsloven
3. GDPR - implementerad i Personopplysningsloven.
4. Åndsverksloven
5. Arbeidsmiljøloven
1. Personopplysningsloven
- Personopplysning er enhver opplysning om en identifisert eller identifiserbar
fysisk person eller en person som direkte eller indirekte kan identifiseres
- Definition 11 i personopplysningsloven handler om samtykk; det er hvordan vi
får lov å behandle personopplysninger
- Samtykk er enhver frivillig, spesifikk, informert og utvetydig viljesytring fra den
registrerte der vedkommende ved en erklæring eller en tydelig bekreftelse gir
sitt samtykk til behandling av personopplysninger som gjelder vedkommende
- Frivillig samtykket må ikke være et resultat av press
- Spesifikt må være knyttet opp til de formål som personopplysninger
behandles for
- Informert person har krav på å vite hvilke personopplysninger som blir
samlet inn, hvordan de blir lagret, hva de skal brukes til, hvor lenge de vil bli
lagret, hvordan man kan få innsyn i egne personopplysninger, og annet som
er relevant
- Utvetydig må bekreftes ved en aktiv handling (ikke stille-samtykke) «klikk-
lisenser» er sannsynligvis tilstrekkelig
2. GDPR
General Data Protection Regulation (GDPR) på norsk: Personvernforordningen
(PVF)
• Trådte i kraft som lov i EU 25.05.2018, i Norge 20.07.2018, kalles som regel GDPR.
• Brudd på GDPR kan medføre bøter opp til €20 mill. eller 4% av omsetning.
• Håndheves av hvert lands tilsynsmyndighet, som er Datatilsynet i Norge.
• EUs lovtekst (GDPR) oversatt til norsk uten endring, 99 artikler .
• Følgende artikler presenteres her:
– Art. 5: Prinsipper for behandling av personopplysninger
– Art. 6: Behandlingens lovlighet (behandlingsgrunnlag)
– Art. 25: Innebygd personvern
– Art. 32: Sikkerhet ved behandlingen (innebygd informasjonssikkerhet)
– Art. 35: Vurdering av personvernkonsekvens (DPIA)
– Art. 45: Overføringer på grunnlag av en beslutning om tilstrekkelig beskyttelsesnivå
– Art. 46: Overføringer som omfattes av nødvendige garantier
– Art. 83: Generelle vilkår for ilegging av overtredelsesgebyr
4. Åndsverksloven:
Rettigheter omkring åndsverk - selve verket man har opphavsrett til. Gir både ideelle
og økonomiske rettigheter.
Et datamaskinprogram er åndsverk. Åndsverkloven har en særregel: opphavsrett
til «datamaskinprogram som er skapt av en arbeidstaker under utførelsen av
oppgaver som omfattes av arbeidsforholdet» overføres automatisk (med mindre
annet er avtalt) til arbeidsgiveren
5. Arbeidsmiljøloven:
Hvilke rettigheter og plikter arbeidstakere og arbeidsgivere har. § 4.2: Krav til
tilrettelegging, medvirkning og utvikling som er viktig for informatikere å kjenne til.
Her står det at arbeidstakerne (og deres tillitsvalgte) skal informeres om endringer i
systemer de bruker i arbeidet, og de “skal medvirke ved utformingen av dem”. Det
legges stor vekt på et godt psyko-sosialt arbeidsmiljø (se detaljert beskrivelse i § 4.3)
Sekvensdiagram
Etik
Universell utforming
Brukbarhetspyramiden
Medisinsk modell
Sosial modell
Implikasjoner av å bruke et sosial modell-perspektiv
• Funksjonshemning er ikke noe som er, det er noe vi gjør. Funksjonshemning kan skapes,
forverres, eller minimeres.
• Det er ikke mulig å forstå funksjonshemming bare ved å fokusere på ”funksjonshemmedes
behov og forutsetninger” – man må se på den sosiale rammen
Universell Utforming handlet opprinnelig om fysiske, bygde miljøer. Stammer fra North
Carolina State University - 7 prinsipper
1. Enkel og intuitiv i bruk – Utformingen skal være lett å forstå uten hensyn til brukerens
erfaring, kunnskap, språkferdigheter eller konsentrasjonsnivå.
2. Forståelig informasjon – Utformingen skal kommunisere nødvendig informasjon til
brukeren på en effektiv måte.
3. Toleranse for feil – Utformingen skal minimalisere farer og skader som kan gi ugunstige
konsekvenser, eller minimalisere utilsiktede handlinger.
4. Like muligheter for alle – Utformingen skal være brukbar og tilgjengelig for personer med
ulike ferdigheter.
5. Fleksibel i bruk – Uansett individuelle preferanser og ferdigheter. Den synshemmede skal
kunne høre, den hørselshemmede se og så videre.
6. Lav fysisk anstrengelse – Utformingen skal kunne brukes effektivt og bekvemt med
minimum besvær.
7. Størrelse og plass for tilgang og bruk – Hensiktsmessig størrelse og plass skal muliggjøre
tilgang, rekkevidde, betjening og bruk, uavhengig av brukerens kroppsstørrelse,
kroppsstilling og mobilitet.
Web Content Accessibility Guidelines (WCAG) brukes for å gjøre digitale innhold
tilgjengelig: delt i 4 prinsipper
1. Mulig å oppfatte
2. Mulig å betjene
3. Forståelig
4. Robust
Vedlikehold (forvaltning)
• Vedlikehold av IT-systemer betyr ikke å bevare originalversjonen mest mulig slik som for
bil, hus etc.
• Vedlikehold er alle endringer utført på et system etter at det er satt i drift
• Utgjør 50%–90% av kostnadene i levetiden til et system
• Stor andel av nedarvede (“legacy”) systemer: bank, forsikring, offentlige etater
Code management
-git hub
-inga crasher
Olikheter i kostnad/tid
• Ulike måter å jobbe på, dvs. ulike systemutviklingsprosesser, gir ulike resultater
Prosessen påvirker resultatet
• Systemutviklingsprosessen vil påvirke kvaliteten både på prosjektet selv og
systemet som utvikles
• Måten man jobber på påvirker også arbeidsmiljøet (trivsel, motivasjon,
kompetanseutvikling etc.) som igjen påvirker prosjekt- og produktkvalitet
• Din kompetanse og måten du og ditt team jobber på avgjør hvordan prosjektet og
sluttproduktet blir!
Systemutviklingsprosess
• – er de aktivitetene som utføres for å utvikle et IT-system
• Aktivitetene varierer, men vil alltid ha elementer av
– spesifisering av kravene, dvs. hva systemet skal gjøre
– design av systemet (for eksempel lage en datamodell)
– implementering av koden (programmering)
– validering av at systemet gjør det kunden ønsker
– endringer av systemet i forhold til nye og endrede krav hos kunden
Hvordan tilpasse prosesser?
• Prosesser må tilpasses
– ingen prosjekter er like
– Mange faktorer påvirker prosessen
• Hva kan tilpasses?
– Faser/aktiviteter, roller, ansvarsforhold, utforming/frekvens på rapporter og gjennomganger
• Hvordan tilpasse?
– Identifiser prosjektomgivelser
– utviklingsstrategi, risiko, krav, applikasjonsområde, type kunde etc.
– Innhent synspunkter fra utviklere, brukere, kunder
– Definer prosesser, aktiviteter og roller
– Begrunn og dokumenter tilpasningene
Fossefallsmodellen – klassisk ingeniørtilnærming
• Sivilingeniørprosjekter (bygg & anlegg) er plandrevet, dvs. relativt mye tid på planlegging
og utviklingen dokumenter som styrer prosjektet
• Separate faser
• Vanskelig å tilpasse endringer i krav underveis
Kanban
• Fokus på å få oppgaver (arbeidspakker) raskt utført = antall brukerhistorier (features)
implementert per tidsenhet
• Begrense antall arbeidspakker som det jobbes med i parallell (WIP = Work In Progress) for
å hindre flaskehalser
• Antakelse: Jo høyere WIP, jo saktere flyter arbeidspakken gjennom arbeidsprosessene
• Når en pakke er ferdig, kan man etterspørre en ny som man begynner å jobbe med (pull)
• Mindre fokus på estimering av tid og kostnader
Krav
Typer krav
• Brukerkrav (funktionellt krav)
– Krav uttrykt i naturlig språk eller diagrammer som viser ønskede tjenester (funksjoner) til
systemet og føringer som gjelder (andre kvalitetsegenskaper)
– Skal forstås greit av kunden
• Systemkrav (funktionellt krav)
– Strukturert, detaljert beskrivelse av systemets funksjoner og kvalitetsegenskaper
– Definerer mer detaljert hva som skal designes og implementeres
– Utgangspunkt for kontrakt mellom kunde (oppdragsgiver) og utviklerorganisasjon
Funksjonelle krav
EXEMPEL:
Avstand mellom tog:
– Overordnet
1. Stor nok til å unngå kollisjoner
2. Liten nok til å tillate tett trafikk
– Detaljert
1. Minimum bremselengde + 1 min * togets hastighet
2. Max hastighet for at 20 tog per time kan passere
Ikke-funksjonelle krav
• Hvordan systemet skal implementere de funksjonelle kravene
Kravspesifikasjonen (dokument)
• Spesifiserer bruker- og systemkrav.
• Ofte del av kontrakt for systemutviklingsprosjektet
– Derfor bør være så komplett og presis som mulig
• Informasjonen i ”kravspec’en” vil avhenge av type system og utviklingsprosjekt
• Ulike standarder – F.eks. utgitt av IEEE og ISO
Utfordringer
• Forståelighet
– Kravene er ofte uttrykt i ved bruk av spesiell fagterminologi
– Ofte uforståelige for systemutviklere
• Implisitt
– Domenespesialister kan kjenne fagområdet så godt at de ikke tenker på å
formulere krav eksplisitt som de tar for gitt
• En god systemutvikler har ofte god domene-kunnskap. Industri og næringsliv etterspør ofte
begge deler
Krav og design
• I teorien: krav uttrykker hva systemet skal gjøre, designet angir hvordan man skal lage det
• I praksis: vanskelig å skjelne mellom krav og design
– En systemarkitektur må designes for å strukturere kravene
– Systemet vil kunne måtte samspille med andre systemer som igjen gir opphav til nye
designkrav
– En spesifikk arkitektur for å imøtekomme ikke-funksjonelle krav vil kunne være et viktig
krav, for eksempel for å tilfredsstille lovgivning.
Eksempel: skatte-opplysninger som utveksles elektronisk over landegrenser stiller krav til
arkitekturen
Kravhåndteringsprosessen
Aktivitet 1: Forstudie/målanalyse
• Analyser nå-situasjonen, ønsket situasjon og mulige tiltak for å oppnå ønsket situasjon
• Hvilke (del)mål kan oppnås ved å lage et nytt eller endre et IT-system?
• Hva er kost/nytte for forskjellige delmål? Risikomomenter?
• Prosjektmandat: “Ja, vi skal lage et system for å oppnå følgende mål:”
Kravinnsamling – utfordringer
• Ulike forretningsområder har egen terminologi
• Ulike organisasjoner har egen terminologi, struktur og forretningsprosesser som en utvikler
kanskje ikke kjenner til
• Interessenter vet ikke nøyaktig hva de vil ha eller kjenner ikke til tekniske muligheter og
begrensninger
• Motstridende krav fra forskjellige interessenter, forskjellige meninger om hva som er viktig,
organisasjonsstruktur og politikk, skjulte agendaer etc. Ofte ikke mulig å nå konsensus. Da
må det skjæres igjennom …
• Kravene vil ofte endres underveis, nye interessenter dukker opp, forretningsområdet
endrer seg, organisasjonen endrer seg (reorganisering, oppkjøp) etc.
• Må skille mellom ’need to have’ og ’nice to have’
Oppdragsgivere (kunder): prioriterer de eller vil de ”ha alt, og det feilfritt og med en gang”?
– Brukergrupper: brukervennlighet
– Ledere: planer, mål, ikke overraskelser
– Utviklere: god teknisk løsning, stilig
– Vedlikeholdere: feilfritt, forståelig og veldokumentert
– Systemeiere og forvaltere: økonomi – Andre interessenter (fagforeninger, lovgivere, andre
systemer)
Brukere av kravspesifikasjonen
Risikohåndtering
• En risiko er en sannsynlighet for at uønskede omstendigheter skjer
• Tre hovedtyper av risiko:
– Prosjekt-risikoer vil ha effekt på tidsplanen og/eller ressurser
– Produkt-risikoer vil ha effekt på kvaliteten eller av programvaren som utvikles
– Forretnings (Business)-risikoer vil ha effekt på organisasjonen som utvikler eller
eier programvaren
Risikoanalyse
• Vurder sannsynlighet og mulig konsekvens for hver risiko
• Sannsynlighet kan være svært lav, lav, moderat, høy eller svært høy
• Konsekvensen kan være katastrofal, alvorlig, mindre alvorlig eller ubetydelig
Motivasjon
• Er ikke folk motiverte, er de lite interesserte i hva de gjør
• Motivasjon er komplekst, men ulike typer motivasjon er basert på
– Basis behov (mat, søvn, etc.)
– Sosiale behov (å bli akseptert i en gruppe, etc.)
– Personlige behov (respekt, selvtillit , etc.)
Personlighetstyper
– Oppgaveorientert (Task-oriented)
• Motivasjonen for å gjøre arbeidet er oppgavene i seg selv
– Selvorientert (Self-oriented)
• Arbeidet er et middel for å oppnå individuelle mål
– bli rik, få posisjon, reise, etc.
– Samspillorientert (Interaction-oriented)
• Motivasjonen er først og fremst å samarbeide og ha det bra med medarbeiderne. Man går
på jobb fordi man liker å gå på jobb
• I workshop
– Brainstorming
• Fra tekstlige krav
• Blant prosjektets interessenter
• Spørsmål
– Hvem skal bruke systemet? (primär aktör)
– Hvem skal administrere systemet? (sekundär)
– Hvem (sekundär)
• tilbyr informasjon til
• bruker informasjon fra, eller
• fjerner informasjon fra systemet?
– Hvilke eksterne ressurser skal systemet bruke?
– Hvilke andre systemer skal kommunisere med dette systemet?
Et use case beskriver hvordan systemet oppnår et mål av verdi for en aktør
- En historie
- Et komplett use case består av flere ulike hendelsesforløp (flyt)
• Et use case beskriver en komplett funksjonell enhet Ø
One person – one place – one time
• Et use case er testbart
Alternativ flyt
• Use casene kan oppnå sitt mål på flere måter, og kan feile på flere måter, så detaljerte use
case har også alternative flyt.
• Alternative flyt (blant annet feilsituasjoner) er viktige da det ofte er mer ”uenighet” blant
prosjektets interessenter om hva som skjer i de tilfellene enn for hovedløpet.
• Ethvert steg i hovedløpet kan være utgangspunkt for et alternativ flyt.
• Include-relasjonen: Et use case kan være en del av ett flere andre use case.
• Extend-relasjonen: Et use case som beskriver tilleggsoppførsel som utføres under gitte
omstendigheter
Include-relasjonen
• To eller flere use cases kan ha en felles del (noen like steg). Denne delen kan da legges ut
i et eget use case som disse use casene kan inkludere.
• Basis use caset vet hvilke use case det inkluderer
Extend-relasjonen
• Alternativ oppførsel som utføres i noen tilfeller kan skrives som eget use case som utvider
(extends) et annet
• Extend use case beskriver hvordan oppnå et tilleggsresultat
– utvider funksjonaliteten
• Basis use caset kjenner sine extend use cases
• Bruk av alternativ flyt vs. bruk av extend use case:
- Alternativ flyt beskriver hva som skjer ved avvik i normal flyt, mens
- Extend use case beskriver hvordan oppnå tilleggsresultat.
Domenemodell
• UML klassediagrammer uten metoder
• Domenemodellen viser objekter i problemdomenet.
• Hensikten med domenemodellen er å forstå objektene og få en oversikt over terminologi.
• Domenemodellen er nyttig i forbindelse med use case modellering fordi:
– Domenemodellen viser informasjonen om objekter i use casene.
– Den er et viktig verktøy for å sjekke at use casene er beskrevet med riktig
detaljeringsnivå.
Sekvensdiagrammer
• Et flyt i et use case kan modelleres med sekvensdiagrammer.
• For hvert use case lages typisk sekvensdiagram for hovedflyt og for hyppig forekommende
alternative flyt.
• Stegene (sekvensene – se tekstlig beskrivelse) i et use case vises som meldinger som
sendes mellom objektene ved kall på objektenes metoder.
Aktivitetsdiagrammer
• Et aktivitetsdiagram kan grafisk representere hendelsesflyten i et use case.
• Stegene i use casene vises som aktiviteter (rektangel)
• Beslutninger underveis vises som (diamant)
• Aktivitetsdiagrammer og sekvensdiagrammer brukes noe overlappende, men
sekvensdiagrammer er typisk mer kodenært mens aktivitetsdiagrammer er mer
forretningsnært.
Klassediagram
Identifisere klasser
- Det finnes ingen “magisk formel” for å identifisere
klasser.
- Avhenger av kompetanse, erfaring og
domenekunnskap (kunnskap om systemet og
omgivelser) til utvikleren eller systemdesigneren
- Iterativ prosess. Umulig å få det riktig første gang
- Bruk en grammatisk tilnærming – objekter og attributter
er subjekter, operasjoner (metoder) er verb
- Bruk gjenkjennelige ting (entiteter) – som Emne og
Kurs, roller som Student og Foreleser
- Bruk en scenario-basert analyse og identifiser
objektene, attributtene og metodene i hver scenario
Spesifikasjon av grensesnitt/interface
- Grensesnitt/Interface bør spesifiseres slik at objektene
og andre komponenter kan designes i parallell.
- Ikke design representasjonen av data – kun “navn” og
metoder (uten innhold). Innholdet defineres i objektene
som “implementerer “grensesnittet.
- Objekter kan ha flere grensesnitt med ulike
perspektiver av metodene som er spesifisert.
- Klassediagrammer blir brukt i UML for spesifikasjon av
grensesnitt.
Kategorier av ansvar:
-Sette og hente verdier av attributter
- Opprette nye instanser (objekter)
- Hente fra og lagre til persistent minne (database…)
- Slette instanser
- Legge til og slette linker for assosiasjoner
- Kopiere, konvertere og endre
- Beregne numeriske resultater
- Navigere og søke
Modularisering
Høy kohesjon
- Et objekt skal bare ha ansvar for relaterte ting
Lav kobling
- Et objekt skal samarbeide med et begrenset
antall andre objekter
Høy kohesjon
- Kohesjon er et mål på hva slags ansvar et
objekt har og hvor fokusert ansvaret er
- Et objekt som har moderat ansvar og utfører et
begrenset antall oppgaver innenfor ett
funksjonelt område har høy kohesjon
- Objekter med lav kohesjon har ansvar for
mange oppgaver innen ulike funksjonelle
områder
Lav kobling
- Kobling er et mål på hvor sterkt et objekt er
knyttet til andre objekter
- Et objekt med sterk kobling er avhengig av
mange andre objekter, noe som kan gjøre
endring vanskelig
Ekspertprinsippet:
(Information Expert)
Problem: Hva er det generelle prinsipp for å tilordne ansvar til objekter?
Løsning: La det objektet som har kunnskapen (dataene) også ta ansvaret
Hvordan:
- Begynn med å formulere ansvarsområdet:
- Eks: Student-Kurs:
Hvilket objekt har ansvar for å vite om hvilke emner som kreves for å ta et gitt emne?
Hvilket objekt har ansvar for å gi en liste over alle studentene på et kurs?
Skaperprinsippet (Creator)
Problem: Hvem er ansvarlig for å opprette nye objekter?
Løsning: La det objektet som må vite om de nye objektene,
lage dem
Hvordan: Gi klasse B ansvaret for å opprette et objekt av
klasse A dersom ett av følgende er sant:
- B inneholder A-objekter
- B registrerer A-objekter
- B bruker A-objekter
- B har data som sendes til A-objektet når det opprettes
Kontrollobjektprinsippet (Controller)
Hvilken klasse skal behandle en hendelse/melding?
- Kontrolleren ligger gjerne på klienten
- Kontrolleren har bare metoder, få eller ingen attributter
- Kontrolleren gjør ikke jobben selv, men mottar og fordeler oppgaver – er en slags
administrator
- Delegerer oppgaver og styrer use case
- Er et bindeledd mellom brukergrensesnittet og applikasjonslaget
(modellen)
Informationssäkerhet
Definisjon av informasjonssikkerhet:
– Beskyttelse av informasjonens Konfidensialitet, Integritet og Tilgjengelighet. I
tillegg kan andre egenskaper, f.eks. autentisitet, sporbarhet, uavviselighet og
pålitelighet omfattes. (ISO 27000:2018)
Krav
• Juridiske, lovbestemte, regulatoriske og kontraktsmessige krav til informasjonssikkerhet,
f.eks,:
– Sikkerhetsloven setter en rekke krav om sikkerhetstiltak for de som er underlagt loven.
– GDPR setter krav om beskyttelse av persondata.
• Krav om adekvat sikkerhet i forretningsprosesser i henhold til vanlig praksis og god
forvaltning.
– Vanlig praksis setter f.eks. krav om brukerautentisering og tilgangskontroll.
• Krav om å begrense sikkerhetsrisiko i til et akseptabelt nivå. Tiltak for dette formål
identifiseres gjennom sikkerhetsrisikovurdering og risikobehandling.
– Risikovurdering kan f.eks. sette krav om 2-faktorautentisering
alla säkerhetsfaror kan inte lösas
KIT
- konfidensialitet
- Integritet
- Tillgänglighet
-
Konfidensialitet
• Egenskapen av at informasjon ikke blir gjort tilgjengelig eller vist til uautoriserte individer,
entiteter eller prosesser. (ISO/IEC 27000)
• Trusler:
– Datatyveri (ekstern trussel)
– Datalekkasje (intern trussel).
• Sikkerhetstiltak eksempler:
– Kryptering,
– Kryptografiske kommunikasjonsprotokoller, f.eks.
TLS – Autentisering og tilgangskontroll,
– Anonymisering, f.eks. gjennom pseudonym eller VPN
– Skallsikring
– Sikkerhetskultur, bevissthet
Integritet
• Dataintegritet: Egenskapen av at data ikke har blitt endret eller slettet på en uautorisert
måte. (X.800)
• Systemintegritet: Egenskapen av å opprettholde korrekthet og kompletthet av
dataressurser (ISO/IEC 27000)
• Trusler: Ødelagte data og miskonfigurerte systemer
• Sikkerhetstiltak eksempler:
– Hashing, MAC, kryptering
– Konfigurasjonsstyring
– Endringsledelse
– Autentisering
– Tilgangskontroll
– Sertifisert programvare
– Sikkerhetskultur, bevissthet
Tilgjengelighet
• Egenskapen av at data og tjenester er tilgjengelige og anvendbare ved forespørsel fra en
autorisert entitet. (ISO/IEC 27000)
• Trusler:
– Tjenestenekt (DoS / DDoS)
– Løsepengevirus
– Forsinkelse av tidskritiske funksjoner.
• Sikkerhetstiltak eksempler:
– Redundans av ressurser,
– Failover-konfigurasjon
– Brannmur
– Sikkerhetskopiering (backup)
– Hendelsesrespons og beredskap,
Personopplysninger er alle opplysninger og vurderinger som kan knyttes til deg som
enkeltperson.
Begrepet «personopplysning» er ekvivalent med persondata eller personinformasjon.
Person(opplysnings)vern er å beskytte spesifikke aspekter ved personopplysninger:
• Forhindre urettmessig innsamling og oppbevaring av personinformasjon
• Forhindre urettmessig bruk av innsamlet personinformasjon
• Sørge for at personinformasjon er korrekt
• Sørge for åpenhet og innsyn
• Sørge for adekvat informasjonssikkerhet (KIT) rundt personinformasjon
• Definere klar ansvarsfordeling
Kontrakt
Kontraktens innhold
• Partene •
Leveransen
– Bistandsforpliktelse
– Spesifisert resultat
– Definert tjenestenivå eller kvalitet
• Fremdriftsplan
• Prismodell
– Variabel pris
– Fastpris
– Målpris
– Ytelsesbasert pris
"Ressurskjøp"; når det skal utvikles etter smidig metode eller resultatet av andre grunner
ikke er klart definert
Eller kanskje en smidig kontraktmodell hvor leverandøren aldri overtar det kontraktsansvaret
for funksjonaliteten, men likevel er ansvarlig for ressurser, å følge avtalt
gjennomføringsmodell og definerte ikke-funksjonelle krav
Till examen:
v20
v21 https://www.uio.no/studier/emner/matnat/ifi/IN1030/v22/tidligere-eksamensoppgaver/
losningsforslag-2020-2.pdf
Bra källor:
WCAG2.0
https://www.w3.org/TR/WCAG20/ (W3C, 2008)
Personvernsloven
https://lovdata.no/dokument/NL/lov/2018-06-15-38 (Lovdata, 2018)
diskrimineringsloven
https://lovdata.no/dokument/NL/lov/2017-06-16-51?q=Diskrimineringloven (Lovdata, 2017)
inom universiell utforming:
https://lovdata.no/dokument/NL/lov/2017-06-16-51?q=Diskrimineringloven#KAPITTEL_3
Krav https://www.uutilsynet.no/regelverk/regelverk/266
(Lovdata, 2017)
Åndsverksloven
https://lovdata.no/dokument/NL/lov/2018-06-15-40 (Lovdata, 2018)
arbetsmiljöloven
https://lovdata.no/dokument/NL/lov/2005-06-17-62 (Lovdata, 2005)
Smdiig:
101 https://www.agilealliance.org/agile101/ (Agile Allience, 2022)
12 priciples of manifesto https://www.agilealliance.org/agile101/12-principles-behind-the-
agile-manifesto/ (Agile Allience, 2022)
Mainfesto: https://www.agilealliance.org/agile101/the-agile-manifesto/ (Agile Allience, 2022)