formalisering

28
Formalisering Pensum: Olsen, kap. 1 ”Formalisering”

Upload: kaya

Post on 04-Jan-2016

24 views

Category:

Documents


2 download

DESCRIPTION

Formalisering. Pensum: Olsen, kap. 1 ”Formalisering”. Datamaskinen. Mange spådommer om hva som skulle være mulig har ikke slått til Til tross for at vi har fått betydelig kraftigere maskiner til betydelig lavere priser ”Sort boks”, gjør det vanskelig for lekfolk å forstå hvordan den arbeider. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Formalisering

Formalisering

Pensum:Olsen, kap. 1 ”Formalisering”

Page 2: Formalisering

Datamaskinen Mange spådommer om hva som

skulle være mulig har ikke slått til Til tross for at vi har fått betydelig

kraftigere maskiner til betydelig lavere priser

”Sort boks”, gjør det vanskelig for lekfolk å forstå hvordan den arbeider

Page 3: Formalisering

Hardware - maskinvare Dramatisk utvikling Moore’s lov Lavere priser Mindre maskiner Datamaskin overalt Internett, ADSL

Page 4: Formalisering

Software - programvare Mange prosjekter feiler (ERP,

egenutvikling, ferdige systemer) Vanskelig å holde budsjetter i kr. og i tid Ideer om nye applikasjoner (som

språkoversetting) har ikke slått til Hvorfor denne forskjellen, er

programutviklere dummere enn de som utvikler maskinvaren?

Page 5: Formalisering

”Duk og dekket bord” I noen tilfeller har programvare-

utviklerne en enkel jobb, forarbeidet kan allerede være gjort

Eksempel: Innføring av datamaskiner i banker og i

industrien Oppgavene var allerede formaliserte

Er det like lett å innføre databehandling i sykehus?

Page 6: Formalisering

Formalisering som en del av systemutvikling

I andre tilfeller vil formaliserings-arbeidet være en viktig del av systemutviklingen

Skal vi opprette en Internett-butikk må vi formalisere produktspekteret (entydige navn eller koder), betalingsrutiner (kort), kunderegister m.m.

Page 7: Formalisering

Egne erfaringer Formalisering står for en vesentlig

del av arbeidet Programmering for en langt mindre

del Men, noe formalisering inngår i

programmeringsarbeidet

Page 8: Formalisering

Infrastrukturendringer Akkurat som vi ”formaliserer”

terrenget for å bygge veier kan må vi formalisere omgivelsene for å etablere nye datatjenester

Eksempel: Salg på Internett/Web vil vanligvis

krever betaling over kort Bruk av automatiske verktøymaskiner vil

kreve standardiserte ”emner” og oppsett

Page 9: Formalisering

Unngå 100% I mange tilfeller løses problemer med

å utelate oppgaver fra automatiseringen

Eksempel: Bank Datamaskinen først brukt til å

automatisere kontoer (innskudd, uttak, beregning av renter)

I dag også til automatisering av enkel lånebehandling

Page 10: Formalisering

Eller vi kan endre prosesser Tidligere krevde innskudd og uttak

fra bankkonto underskrifter I dag aksepterer vi en PIN kode Tilsvarende for mange andre

anvendelser

Page 11: Formalisering

Innkjøp Valg av leverandør, kontrakter

m.m. tas av innkjøperne Avvik håndteres manuelt Resten kan gå automatisk

Page 12: Formalisering

Ekspertsystemer Gi datamaskinen samme vurderingsevne som

fagfolk Regelbaserte systemer Pilotimplementasjoner i blant annet medisin i

1980 årene Gode resultater, programmene gjorde det bedre

enn mange leger Likevel, disse programmene benyttes lite i dag Testen ble gjort på formaliserte data

(undersøkelser). Når legen får se pasienten kan hun ofte stille

diagnose raskt basert på erfaring, intuisjon og med få prøveresultater

Page 13: Formalisering

Formalisering av en oppgave

Fra under- til over-formalisering.

Page 14: Formalisering

Tegninger lagret som pixels Kan lagre dette som pixel (punkt), f.eks.

med tre byte pr punkt En linje kan da representeres gjennom

de pixler som utgjør linjen Gir stor fleksibilitet (bilder og tegninger),

men krever mye plass (lite problem i dag)

Redigering må skje på pixelnivå Eksempel: Paint-programmer

Page 15: Formalisering

Tegninger lagret som objekter Hvert objekt kan representere en type

geometrisk figur Et sett attributter gir data for objektet En linje kan da representeres ved

koordinatene til endepunktet Effektiv lagring Enkel redigering (vi kan f.eks. peke på

linjen og flytte denne) Linjen må gjengis på skjermen

(”rendering”)

Page 16: Formalisering

Nivå Objekt-metoden har høyere

formaliseringsnivå enn pixel-metoden

Her kan vi operere på hvert objekt som utgjør tegningen (flytte, endre, fjerne, kopiere)

Page 17: Formalisering

Tekstbehandling (tegnkoding) Vi kan representere teksten kun på

tegn-nivå (som ASCII koder) Da kan vi kun gjøre operasjoner på

dette nivået Det blir ikke mulig å unngå ord-deling

på slutten av linjen, å foreta stavekontroll, å markere et ord, m.m.

Programmet forstår ikke begreper som ord, setninger, avsnitt m.m.

Page 18: Formalisering

Høyere formaliseringsnivå Vi kan definere regler for hva som er:

ord (samling bokstaver omsluttet av skilletegn)

setning (samling av ord avsluttet med punktum)

avsnitt (samling av setninger avsluttet av et avsnitt-tegn).

Dette kan da brukes for høyere nivås operasjoner

Page 19: Formalisering

Datalagring (tegnkoding) Vi kan lagre data, f.eks.

bibliografiske data, som tekst Da kan vi foreta ren tekstsøk, om

vi f.eks. søker etter forlaget ”Scarecrow” eller produsenten ”Apple” vil vi få treff for alle poster der disse bokstavene inngår, uansett sammenheng.

Page 20: Formalisering

Høyere formaliseringsnivå Om vi i stedet koder dataene på

høyere nivå kan vi foreta mer avanserte søk

For eksempel kan vi tagge: <forlag>Scarecrow</forlag> <datamaskin>Apple</datamaskin> <skolefrokost>Apple, Bread,

Cheese</skolefrokost> <boktittel>Scarecrow in the field</boktittel>

Page 21: Formalisering

Tekstbehandling (nivåer)Level Formalization Coding (example) Functionality (examples)

1 CharacterASCII or similar character-to-number coding.

String editing, inserting and deleting characters.

2

Character sequence, sentence, and paragraph.

Rules to identify words (enclosed by spaces or punctuation) and paragraphs.

Insert and delete a word, avoiding breaking a word at line ends, inserting space between paragraphs.

3 Lexical Dictionary Spell checking.

4 SyntacticalWord classification, grammatical rules.

Grammar checker.

5 SemanticRepresenting the meaning of words and expressions.

Logical searches, translation, computation.

6 PragmaticRepresenting the “meaning of meaning” or meaning in context.

Full text analysis.

Page 22: Formalisering

Formaliseringsproblemet for B2B Med B2B (Business-to-Business) systemer skal maskiner

kommunisere med maskiner Data skal overføres på høyt nivå, altså som strukturerte

data Med XML har vi et kodespråk for å beskrive dataene Men vi må bli enige om hvordan vi skal representere:

Telefonnummer Adresser Datoer Kundenummer Kontonummer Henvisninger til regelverk m.m.

Page 23: Formalisering

Kravet om data Mens vi mennesker kan operere

med implisitte data, data hentet fra omgivelsene (”vi sees til lunch”) må maskinen ha eksakte data

Dette begrenser mange automatiske applikasjoner (eks. temperatur-regulering, Internet tilkoplet kjøleskap)

Page 24: Formalisering

Store organisasjoner mer egnet I store organisasjoner er ofte prosesser

formaliserte. Antall operasjoner, datamengder m.m. krever dette.

I små organisasjoner er dette ikke så nødvendig. Med mindre volum kan en håndtere hver enkelt sak for seg

Dvs. formaliseringskostnadene med å innføre automatiske dataprosesser er ofte mindre i store organisasjoner enn små

Page 25: Formalisering

Eksempel Fryselageret til en stor grossist:

Mange varer på lager Alle varer har en id Standard pakkestørrelser Nøye oversikt over alt som er på lageret Faste rutiner for ”innskudd” og ”uttak” Bruker strekkoder m.m. for å forenkle prosesser

Fryseboksen hjemme: Oversiktlig mengde Ingen formell id Varierende pakkestørrelser Ingen rutiner for innlegging Fleksibelt uttak (kan ta ut deler av en pakke) Ingen tekniske hjelpemidler (som strekkodeleser)

Page 26: Formalisering

Kostnad-nytte for formalisering Dersom vi kan formalisere kan vi ofte

også automatisere Da kan vi gjøre jobben fort, effektivt,

døgnet rundt, etter faste regler, m.m. – uten å betale lønninger

Men 100% formalisering er ofte vanskelig å få til

Løsningen ligger ofte i interaktive system, der mennesker og maskiner samhandler

Page 27: Formalisering

Interaktivt system Her kan maskinen ta de lukkede deler,

mennesket det åpne Tekstbehandling er et godt eksempel Men vi kan også bruke ideen i andre

sammenhenger: Vi kan ha innsjekkingsautomater for å

effektivisere denne prosessen, men kan også ha manuell betjening for unntakene

Vi kan la kundene taste inn ordren i et Web-skjema, men kan ha telefon og epost for unntak

Page 28: Formalisering

Fleksibilitet vs. effektivitet

Effectiveness and efficiency

Application area

CustomapplicationCustomapplication

Spreadsheet systemSpreadsheet system

Applicationgenerator

Applicationgenerator

Programming languageProgramming language

Med større fleksibilitet (f.eks. regneark) får vi mindre effektivitet (enn en applikasjon spesiallaget for jobben).