arkitektur og brukergrensesnitt - forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) •...

40
Arkitektur og Brukergrensesnitt Brukergrensesnitt Forelesning 11 - INF1050 Systemutvikling 25.3.2009

Upload: others

Post on 28-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Arkitektur ogBrukergrensesnittBrukergrensesnitt

Forelesning 11 - INF1050 Systemutvikling 25.3.2009

Page 2: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

En historie om Visma Reportingp g

• Vil gi forståelse for hva er arkitektur• Hva driver arkitekturutvikling• Kjenne til noen arkitekturer som klient-tjener, trelags-, fysisk

vs logisk arkitektur etcvs logisk arkitektur etc.• Brukergrensenitt• Ha sett et eksempel på en web-applikasjon og dens arkitekturp p pp j g• (Ha svarene klare til å komme i gjennom et intervju på Visma) • Dekker kap. 9.9 (flerlagssystem) og kap 10

(b k itt) i H l (S t t ikli A lik j(brukergrensesnitt) i Hasle (Systemutvikling – Applikasjoner og Databaser) Støttelitteratur: Maciaszek 4.1, 6.1, 7.1, 7.3

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 2

Page 3: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Vi har et problema et p ob e

• Ingen god rapporteringspakke til vår viktigste ERP product Visma Business

• SAP kjøper opp de som lager rapporteringsverktøyAldrende Web rapporteringsvektøy WebLis skrevet i• Aldrende Web rapporteringsvektøy WebLis skrevet i ASP/VB scripts, ingen dokumentasjon, kommentarer, eller oversiktlig arkitektur. Vanskelig å vedlikeholde.

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 3

Page 4: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 4

Page 5: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 5

Page 6: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 6

Page 7: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Hva er arkitektur?

• “System structural components together with external y gvisual properties and relationship.” (SEI)

• “The fundamental organization of a system, embodied in its components their relationships to each other and theits components, their relationships to each other and the environment, and the principles governing its design and evolution”. (IEEE 1471)

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 7

Page 8: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Hvorfor arkitekturHvorfor arkitektur

• Håndtere kompleksitet• Støtte utviklere i implementasjonen og daglige

beslutningerTa vare på ikke funksjonelle krav• Ta vare på ikke-funksjonelle krav

• Sikre enhetlige systemer• Sikre gode design prinsipper som sterk koherens og løseSikre gode design prinsipper som sterk koherens og løse

koblinger, seperation of concern• Må foregå i en tidlig fase i systemutviklingen • Egner seg ikke så godt til Extreme programming men kan

lage prototyper

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 8

Page 9: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Dokumentasjon av arkitekturDokumentasjon av arkitektur

• Design av arkitektur– Identifisere hovedkomponenter i systemet– Hvilket ansvar hver komponent har– Relasjonen mellom komponenteneRelasjonen mellom komponentene

• Design gjøres på flere nivåer, overordnet og detaljert• Resultat beskrives gjerne i skisser med bokser og piler,

UML d ll t k tli t ifik j id liUML modeller, tekstlig systemspesifikasjon og guidelines• UML diagrammer av typen component, deployment og

konseptuelle klasserp

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 9

Page 10: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Funksjonelle vs. ikke-funksjonelle kravFunksjonelle vs. ikke funksjonelle krav

• Funksjonelle krav (hva skal systemet gjøre for brukeren) • Begrensinger slik som standard valg av teknologi innen

firmaet• Tekniske krav som f eks svartider• Tekniske krav som f. eks. svartider• Begrensinger og tekniske krav er ikke-funksjonelle krav

feks, security, performance, usability, maintainability, (ISO 9126 quality standard)

• Ikke-funksjonelle krav legger føringer for arkitekturen• Må velge ut noen som er viktigere enn andre

Merk at arkitekturutvikling er å gjøre avveininger, alle kan ikke få alt.

• Må velge ut noen som er viktigere enn andre.

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 10

Page 11: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

VedlikeholdVedlikehold

• 70% av all systemutvikling er vedlikehold• Betyr å gjøre endringer i systemet for å holde tritt med

tekniske, organisatoriske og andre samfunnsforhold (lover skatter etc)(lover, skatter etc)

• Eksempel er umoderne grensnitt i Weblis, funksjonalitet i ERP som ikke kan vises i WebLis

• Prevantivt vedlikehold for å forbygge spagetti kode

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 11

Page 12: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Endre prismodul, okEndre prismodul, ok

Registrer salgLegg på salgshistorikk med

Faktura Salg

Legg på salgshistorikk med pris, uten kundeadresseFaktura, hent varer og pris i

f l hi t ikk

Salgshistorikk

fra salgshistorikkHent adresse i fra

adresseregister

Pris/RabattAdresseregister

adresseregisterPrint faktura

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 12

Page 13: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Endre prismodul, ikke okEndre prismodul, ikke ok

• Registrer salg• Registrer salg• Legg på salgshistorikk uten pris, men kundeadresse

Faktura Salg

p• Faktura hent varer og adresse i fra salgshistorikk

H t i i f i / b tt

Salgshistorikk Adresseregister

• Hent pris i fra pris/rabatt• Print faktura

Pris/Rabatt

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 13

Page 14: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 14

Page 15: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 15

Page 16: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Krav i fra Product Managmenta a oduct a ag e t

Report generering i fra mere enn et kildesystemMå kunne brukes via Internet Dynamikk i hva brukeren kan velge å rapportere påSikkerhetsbegrensninger på rapporterSikkerhetsbegrensninger på firma/avdeling i kombinasjon

med rapportermed rapporterDekke funksjonalitet for profesjonelle regnskapsførere som

er WindowsbrukereDekke funksjonalitet for brukere som avdelingsledere og

ikke-profesjonelle regnskapsførere

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 16

Page 17: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Ikke-funksjonelle kravIkke funksjonelle krav

• Installability, enkelt å installerer• Understandability, enkelt å forstå• Maintainability, vedlikehold for oss• Security• Testability, design for å enkelt kunne test

M f k å t k lt t I t t k• Mao. fokuser på et enkelt system, Internet aksess, sikkerhet og denne gangen må det være vedlikeholbart

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 17

Page 18: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Fysisk vs logisk arkitekturFysisk vs logisk arkitektur

• Må alltid skille mellom forskjellige views i arkitekturbeskrivelse

• Fysisk arkitektur er maskiner og hva som kjører på demLogisk er programvarekomponenter sett i fra utvikler/drift• Logisk er programvarekomponenter sett i fra utvikler/drift

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 18

Page 19: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Trelags logisk arkitekturTrelags logisk arkitektur

Presentasjonslag

Business logikk lag

Data Lag

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 19

Page 20: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

To lags fysisk arkitekturo ags ys s a te tu

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 20

Page 21: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Trelags fysisk arkitekture ags ys s a te tu

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 21

Page 22: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Tykke vs. tynne klientery e s ty e e te

Tykke klienter er programmer som inneholder egen presentasjonslogikk og/eller foretningslogikk, typisk windows program, rik funksjonalitet, god kontroll•Tynne klienter er programmer som viser frem serverTynne klienter er programmer som viser frem server generert innhold, typisk en web browser•Tykkelse går altså på hvor mye kode som kjøres og hvor mye ressurser som krevesmye ressurser som kreves.•Skillet mellom tykke og tynne er blitt utvisket med dynamisk skripting i browser og nedlastbare tykke klinenter. Mer et spørsmål om hvor tykk eller tynn.•Vi valgte en browser basert klient i Visma Reporting

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 22

Page 23: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Fysiske lag i web-applikasjon

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 23

Page 24: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Web teknologiWeb teknologi

Karakterisert ved at klienten er HTML sider som vises i en browserBrowser kan inneholde skripting som gir mere dynamiske sider

• Web Server som genererer sider• Web Server som genererer sider• Tilstandsløs kommunikasjon mellom browser og web

server (http/s). Tenk på en telefonsamtale hvor vi legger å tt h t ål/på etter hvert spørsmål/svar

• Cookie er en informasjonskapsel som sendes frem og tilbake for å holde kontakten

• Vanskeligere å kontrollere presentasjonen enn på tykk klient

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 24

Page 25: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Web-applikasjonereb app asjo e

• En applikasjon som tillater brukeren å utføre forretningslogikk via en browser

• Eksempel netthandel er en applikasjonVG er i hovedsak publisering• VG er i hovedsak publisering

• Ofte en applikasjonserver som kjører foretningslogikk • Visma Reporting er en applikasjon, ikke statiske sider p g pp j ,

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 25

Page 26: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Arkitekturutviklingte tu ut g

• Første iterasjon fokuserer vi på arkitektur• Leke CRC kort med komponenter akkurat som med

klasserVi lager arkitekturdiagrammer med hovedkomponenter• Vi lager arkitekturdiagrammer med hovedkomponenter

• Simulerer på en tavle mest sentrale use cases med arkitekturen (eventuelt med sekvensdiagrammer)( g )

• Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle kravIt til i h d kk t t i h d kk t• Iterere til vi har dekket use cases og tror vi har dekket ikke-funksjonelle krav

• Implementere alle komponenter med lite funksjonalitet i

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 26

Implementere alle komponenter med lite funksjonalitet i første iterasjon

Page 27: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

En Use Case/User Story

Goals: See his own data in an HTML report

Use Case/Use Sto y

Actors: Basic user, SystemPrerequisite: User logged inNormal flow:1 User choose company1 User choose company2 User choose a report3 System displays parameters defined in the report 4 User fills in all relevant parameters5 User runs report6 System displays the report in the web interface in a new window6 System displays the report in the web interface in a new window7 User may choose to change parameters without changing the report8 User may choose to change report, but will not loose the parameters 9 User can save his own reports and obtaining it later.

Alt ti fl H f ll lti l i b h dl d b iAlternative flows: Hopefully, multiple companies can be handled by company groups in VUD and parameters as organizational unit, account in the reports. 1 User prints report2 User export report to file or ExcelExceptions:

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 27

Exceptions:1 System must handle that the report rendering or data access times out2 When the user has access to one company, it should not be necessary to choose a company at all.

Page 28: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Første forsøkø ste o sø

• Bruk Microsoft Reporting Server• Gir nesten all funksjonalitet, men noe svak på sikkerhet• Gir rask time-to-marked, sparer arbeid• Flere komponenter og ansvarsområde er da valgt for oss• Følgende er en skisse med prosesser og komponenter er

med i løsningenmed i løsningen

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 28

Page 29: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Browser client

Web partsWeb parts Web

ServerWeb parts

Web serviceMS

Web server

data provider

RDLprovider

Image provider

Securityprovider

data provider

Image provider

Securityprovider

MS

p p pp p providerp

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 29

MS Rapport database

Rapport definisjoner

Fakturaimages

Kilde database

Fakturaimages

Page 30: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Browser client

Web server CacheWeb parts

Applikasjonserver

data provider

RDLprovider

Image provider

Securityprovider p p pp

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 30Kilde

databaseRapport

definisjonerRapport

definisjonerFakturaimages

Page 31: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Brukergrensesnitt u e g e ses tt

• For brukerene er grensesnittet selve løsningen. “er” produktet

• GUI selgerDesign hva du ser ikoner farger fonter etc• Design, hva du ser, ikoner, farger, fonter etc.

• Usability, hvordan det er å bruke• Implementert i presentasjonlagetImplementert i presentasjonlaget

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 31

Page 32: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 32

Page 33: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 33

Page 34: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Guidelines for good GUI design

• Brukeren i førersetet

• Konsistent

• Kan personifiseres og konfigureres

• Er tilgivende og gir deg mulighet til å rette opp• Er tilgivende og gir deg mulighet til å rette opp

• Gir deg tilbakemeldinger, gjerne forståelige

• Tilpasset oppgavene og brukergruppen (usability)

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 34

• Designmessig tiltalende, uten forstyrrende elementer

Page 35: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Utvikle GUIUt e GU

• Veldig godt egnet til prototyping og iterative utvikling• Basert på skisser og mock-ups• Liten grad designet ved hjelp av UML i praksis• Mye av klassedesign styrt av hvilket rammeverk du velger

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 35

Page 36: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

Menu

Param 1|

Param 2

Param 3

Rapporttrepp

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 36

Run report knapp

Page 37: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 37

Page 38: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 38

Page 39: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 39

Page 40: Arkitektur og Brukergrensesnitt - Forsiden...arkitekturen ((g)eventuelt med sekvensdiagrammer) • Simulerer/Diskuterer i gjennom arkitekturen sett forhold til ikke-funksjonelle krav

INF1050 Systemutvikling Vår 2009 - Copyright Dag Lorås 2009 40