formalisering
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 PresentationTRANSCRIPT
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
Hardware - maskinvare Dramatisk utvikling Moore’s lov Lavere priser Mindre maskiner Datamaskin overalt Internett, ADSL
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?
”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?
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.
Egne erfaringer Formalisering står for en vesentlig
del av arbeidet Programmering for en langt mindre
del Men, noe formalisering inngår i
programmeringsarbeidet
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
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
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
Innkjøp Valg av leverandør, kontrakter
m.m. tas av innkjøperne Avvik håndteres manuelt Resten kan gå automatisk
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
Formalisering av en oppgave
Fra under- til over-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
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”)
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)
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.
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
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.
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>
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.
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.
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)
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å
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)
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
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
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).