Coupling er et mal pa grad av sammenkobling av moduler i en programvarestruktur. 5. Felles (common) coupling - subprogrammer deler globale variable.

Like dokumenter
Characteristics of a good design

23. mai A) I boka er det nevnt re forskjellige dialog-modelleringsteknikker som ogsa er de mest

Det utsagnslogiske spraket: konnektiver og formler. Semantikk: Denisjon av sannhet og gyldighet

INF4170 { Logikk. Forelesning 1: Utsagnslogikk. Arild Waaler. 20. august Institutt for informatikk, Universitetet i Oslo

Kundereg. Passeringsdata. Ulovlige pass. Fotografi. P4 Manuell. Betaling. Kjoretoy. trafikkover. Persondata

Eksamen i emnet Stat111 - Statistiske metoder 28. mai 2014, kl

Forelesning 9: Frsteordens logikk { kompletthet Roger Antonsen mars 2006

UNIVERSITETET I TRONDHEIM Side 1 av 4

UNIVERSITETET I TRONDHEIM Side 1 av 4. Hsten Det er av avgjrende betydning om informasjonssystemer er skreddersydde (customtailored),

STE6221 Sanntidssystemer Løsningsforslag

Person. status Kunde nummer. Selger. Ordre. Rabatt

Forord Dette er en samling lsningsforslag som jeg opprinnelig utarbeidet til gruppeundervisningen i kurset MAT00A ved Universitetet i Oslo hsten 2000.

Forelesning januar 2006 Introduksjon, mengdelre og utsagnslogikk. 1 Praktisk informasjon. 1.1 Forelesere og tid/sted. 1.2 Obliger og eksamen

Forelesning 6: Frste-ordens logikk: syntaks og semantikk Roger Antonsen februar 2006

Metode for a avgjre gyldighet av formler. En av verdens raskeste teorembevisere, Vampire, bruker resolusjon.

Oppgave 4.4 Skriv ned setninger som svarer til den konverse og den kontrapositive av følgende utsagn.

MAT1030 Diskret matematikk


UNIVERSITETET I OSLO

Bytte om to rader La Matlab generere en tilfeldig (4 4)-matrise med heltallige komponenter mellom 10 og 10 ved kommandoen Vi skal underske hva som skj

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

INF2270. Input / Output (I/O)

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.

KONTINUASJONSEKSAMEN I EMNE. TDT4136 Logikk og resonnerande system. Onsdag 10. august 2011, kl

KONTINUASJONSEKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Onsdag 6. august 2008 Tid: kl

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

INF3170 / INF4171. Predikatlogikk: Skolemfunksjoner; Andreordens logikk. Andreas Nakkerud. 10. september 2015

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

INF2270. Input / Output (I/O)

EKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Fredag 19. desember 2008 Tid: kl

UNIVERSITETET I OSLO

MAT1030 Diskret matematikk

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Kvantorer. MAT1030 Diskret matematikk. Kvantorer. Kvantorer. Eksempel. Eksempel (Fortsatt) Forelesning 8: Predikatlogikk, bevisføring

Input α. Desired output. Linear prediction. Prediction error. Input α. Desired output. Linear prediction. Prediction error

MAT1030 Forelesning 8

Brukergrensesnittdesign

Løsningsforslag eksamen 1T våren 2010 DEL 1. Oppgave 1. a) Funksjonen f er gitt ved f x 2x 3. Tegn grafen og finn nullpunktene for f f x 2x 3 Grafen

Eksamen 1T, Våren 2010

Lsningsforslag ved Klara Hveberg Lsningsforslag til utvalgte oppgaver i kapittel 6 I kapittel 6 minner oppgavene mer om de du er vant til fra skolemat

Kapittel 4: Mer predikatlogikk

SIE 4005, 8/10 (3. Forelesn.)

INF3430/4431. VHDL byggeblokker og testbenker

Kapittel 4: Mer predikatlogikk

Repetisjon digital-teknikk. teknikk,, INF2270

Eksamen 2013 Løsningsforslag

Relasjonsdatabasedesign

Forside. ForBedring 2018 UNIVERSITETSSYKEHUSET NORD-NORGE(TOP)

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme

d) Vi skal nne alle lsningene til dierensialligningen y 0 + y x = arctan x x pa intervallet (0; ). Den integrerende faktoren blir R x e dx = e ln x =

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Oppgave 1. Modelleringsperspektiver og modelleringsspråk (40%) Alle underoppgavene teller likt

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

Klara Hveberg, 26 sylen under pivot-elementet, ma vi na bare trekke (3; 2)=(2; 2) = 8=2 = 4 ganger andre rad fra tredje rad >> k=(3,2)/(2,2); >> (3,:)

EKSAMEN I FAG TMA4255 FORSØKSPLANLEGGING OG ANVENDTE STATISTISKE METODER

EKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Tirsdag 4. desember 2007 Tid: kl

Relasjonsdatabasedesign

KONTINUASJONSEKSAMEN I FAG SYSTEMERING 2 Torsdag 24. august 2000 Tid: kl

Velkommen til webseminar. - Store modeller. Novapoint DCM. VIANOVA/Statens vegvesen. Solveig Fiskaa,

h) Delvis integrasjon gir ln = Ogave 9.. = ln u = ln ; v = = u = ; v = = = = ln = = = ln 4 9 = + C a) Delvis integrasjon to ganger gir e cos = e cos e

I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser

2. en tolkning av alle ikke-logiske symboler i spraket. n i 2 RM. 1 ; : : : ; t M. 1.2 Sprak og modeller - et komplekst forhold

KONTINUASJONSEKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Lørdag 8. august 2009, kl

Relasjonsdatabasedesign

Wavelet P Sample number. Roots of the z transform. Wavelet P Amplitude Spectrum.

STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen

f(t) F( ) f(t) F( ) f(t) F( )

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

Kirsten Ribu - Høgskolen i Oslo

UKE 11 UML modellering og use case. Gruppetime INF1055

Logisk Programmering. Relasjoner vz. funksjoner. Funksjon: inn og ut, en verdi. Relasjon: ingen retning, null eller flere verdier

MAT1030 Forelesning 4

INF3170 Forelesning 11

MAT1030 Diskret Matematikk

UNIVERSITETET I BERGEN. STAT111 Statistiske metoder

KONTINUASJONSEKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Onsdag 10. august 2011, kl

Kapittel 4: Logikk (fortsettelse)

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk

Oppsummering av Kapittel 3. MAT1030 Diskret matematikk LOGIKK. Logikk. Forelesning 5: Logikk

MA0002 Brukerkurs i matematikk B Vår 2014

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Bevis for sunnhet (og kompletthet) av bevissystemet med hensyn på semantikken

At z + w og zw er reelle betyr at deres imaginrdeler er lik null, det vil si at b + d 0 ad + bc 0 Den frste ligningen gir b d. Setter vi dette inn i d

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering

INF3430. VHDL byggeblokker og testbenker

MAT1030 Plenumsregning 5

UNIVERSITETET I OSLO

Oppsummering av digitalteknikkdelen

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 Distribuerte systemer 19. august 2006,

TMA4100 Matematikk 1, høst 2013

Relasjonsdatabasedesign

Kontekst. DRI3010 Emnekode 644 Kandidatnummer Dato SIDE 1 AV 6

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

Fra skolematematikken husker vi at kvadratroten til et tall a er det ositive tallet som har kvadrat lik a. Men det betyr at x2 = n x for x 0 x for x <

Normalformer utover 4NF (ikke pensum)

INF2270 I/O. Omid Mirmotahari Omid Mirmotahari 1

Transkript:

UIVERSITETET I TRODHEIM ORGES TEKISKE HGSKOLE ISTITUTT FOR DATATEKIKK OG TELEMATIKK Lsningsforslag til Kontinuasjonseksamen i fag 4560 Systemering Lrdag 7. august 996 Oppgave { Programvaredesign (5%) a) Hva ligger i begrepene coupling og cohesion? (Lreboka s. 90-95) Coupling er et mal pa grad av sammenkobling av moduler i en programvarestruktur. Det nnes seks grader av coupling fra lavest til hyest:. Data coupling - to subprogrammer kommuniserer gjennom grensesnittet via parametre. 2. Frimerke (stamp) coupling - to ellers uavhengige subprogrammer refererer til samme datastruktur, men bruker forskjellige deler av den. 3. Kontroll coupling - tilstandsvariabler kommuniseres mellom subprogrammer (f.eks. agg). 4. Ekstern coupling - subprogrammer er bundet til eksterne enheter (f.eks. I/O enheter, spesielle formater og protokoller.) 5. Felles (common) coupling - subprogrammer deler globale variable. 6. Innholds (content) coupling - programmoduler refererer til hverandres implementasjon (f.eks. ved bruk av GOTO-setninger.) Cohesion er et mal pa funksjonell assosiasjon til programkomponentene i et subprogram, dvs. "limet" som holder subprogrammet sammen. Det nnes sju grader av cohesion fra hyest til lavest:. Funksjonell cohesion - hvert subprogram bidrar til a utfre en enkelt funksjon komplett uten a pavirke andre subprogram.

2. Sekvensiell cohesion - output fra et subprogram sendes som input til et annet. Subprogrammene utfrer ikke komplette funksjoner (ellers ville vi hatt functional cohesion). 3. Kommunikativ cohesion - funksjoner som jobber mot felles data grupperes sammen. 4. Prosedural cohesion - funksjoner som ma utfres i en spesiell sekvens grupperes sammen. 5. Temporal cohesion - funksjoner som er tidsrelaterte grupperes sammen (f.eks. gruppere all initialisering i et subprogram). 6. Logisk cohesion - funksjoner som er nesten like, grupperes sammen (f.eks. samle ti forskjellige utskriftsrutiner i en programmodul). 7. Tilfeldig cohesion - tilfeldig gruppering av funksjoner. b) Hvilke retningslinjer nnes for a oppna god strukturell kvalitet pa programvare? Forklar ogsa kort hvordan disse retningslinjene bidrar til forbedret strukturell kvalitet. (Lreboka s. 96-02) Reduser coupling og forbedre cohesion. Gir bedre strukturell oppbygging av systemet og gjr vedlikeholdsarbeid mye enklere. Minimaliser fan-out. Strev for a oppna hy fan-in (dvs. lag gjenbrukbare subprogram). Gjenbruk reduserer systemstrrelse og kompleksitet. Begrens scope-of-eect til scope-of-control, dvs. vi nsker ikke sideeekter som er vanskelig a holde orden pa og gir darlig struktur. Dette reduserer ogsa kontroll coupling. Reduser kompleksitet i grensesnittene. Tilsynelatende urelaterte data som passerer gjennom grensesnitt indikerer lav cohesion. Sk a oppna single-entry, single-exit subprogrammer og unnga content coupling. Unnga subrutiner med "internt" minne slik at oppfrselen er avhengig av tidligere subrutinekall. Prv a moderere bruken av retningslinjene for systemutvikling. Disse retningslinjene gir som oftest ikke optimal lsning m.h.p. ytelse. Oppgave 2 { Informasjon og kunnskap (20%) a) Kunnskap kan klassiseres pa forskjellige mater. Diskuter ulike mater a gjre dette pa. (Lreboka s. 368-369) Det er mange mater a klassisere kunnskap. Lreboka nevner flgende mater:

Datamaskinperspektiv: Deklarativ og prosedural kunnskap. Deklarativ kunnskap er her klassedenisjoner og databaseskjemaer, mens prosedural kunnskap handler om hvordan disse brukes og eksekveres. Fra psykologien: Eksplisitt og implisitt kunnskap. Eksplisitt kunnskap kan beskrives verbalt, implisitt kunnskap er ferdigheter. Overatekunnskap vs. innsikt (deep knowledge). Overatekunnskap er gjerne et knippe tommelngerregler, men innsikt er kjennskap til prinsippene bak. Kunnskap og meta-kunnskap. Meta-kunnskap er kunnskap om kunnskap og hvordan den er strukturert. Rittel klassiserer i fem forskjellige typer: { Factual knowledge: x er eller vil bli et faktum. { Deontic knowlegde: x br vre eller br bli et faktum. Uttrykker menneskelig overbevisning eller malsetting. { Explanatory knowledge: x er et faktum fordi y... { Instrumental knowledge: nar x er gjort, blir y konsekvensen. Hvordan-kunnskap. { Conceptual knowledge: meta-kunnskap eller kunnskap om kunnskap. b) Kunnskap og informasjon kan ikke alltid beskrives i presise termer. Spesielt i systemutviklingssammenheng forstar vi ofte ikke problemet nok til a kunne denere konsepter presist. Diskuter hvordan vi i slike sammenhenger kan klassisere informasjon. Hvilke egenskaper (eller attributter) har informasjon generelt? (Lreboka s. 370-372) Lreboka foreslar a klassisere informasjon som presis, vag, usikker eller ufullstendig. I tillegg kan vi ha ukorrekt informasjon som en femte kategori. Presis informasjon er mest vanlig i data-verdenen og bestar av svart-pa-hvitt fakta. Frste ordens logikk brukes ofte for a beskrive slik informasjon. Vag informasjon nner vi i dagliglivet. Vi sier f.eks. at "vret er bra" og gir en kvalitativ bedmmelse uten a presisere hva vi mener med "bra". Betdyningen av termene er bl.a. gitt av konteksten de er brukt i og hvem som bruker dem. Usikker informasjon er vag fordi man ikke kan gi presis informasjon. Ufullstendig informasjon reekterer av observatren ikke har komplett kunnskap. Forskjellen fra usikker informasjon er at ufullstendig informasjon kan vre presis. Man kan f.eks. vite at Oslo er orges hovedstad, men ikke at Oslo ligger sr i landet. Informasjon vil ha flgende attributter:

Relevans - sier noe om viktigheten av informasjonen. Korrekthet - sier noe om hvor virkelighetsnr informasjonen er. Presisjon (accuracy) - sier noe om hvor vag informasjonen er. Innhold - sier noe om hvilken og hvor mye kunnskap informasjonen formidler. Originalitet - sier noe om hvor forskjellig informasjonen er fra allerede eksisterende kunnskap. Foreldethet (obsoleteness) - sier noe om hvor aktuell informasjonen er tidsmessig. Oppgave 3 { Logikk (5%) a) edenfor er det gitt en liten fotballhistorie. Per og Pal spiller fotball pa hvert sitt lag. Hvis Per er uforsiktig og takler Pal, blir Pal skadet. Men hvis Per viser seg uforsiktig og Pal i tillegg blir skadet, blir dommeren sur. Sa lenge Per ikke er uforsiktig, vil han heller ikke bryte reglene. Hvis Per ikke bryter reglene eller dommeren ikke blir sur, vil Per unnga afa gult kort. Men Per ser sitt snitt nar dommeren ikke er sur til a spille uforsiktig. a skjedde det faktisk at Per taklet Pal og kk gult kort. Avgjr ved resolusjon ut i fra denne fotballhistorien om dommeren var sur eller ikke. (Lreboka s. 243-246) Vi formulerer frst atomiske pastander: A. Per er uforsiktig. B. Per takler Pal. C. Pal blir skadet. D. Dommeren blir sur. E. Per bryter reglene. F. Per far gult kort. Vi omskriver historien vha. disse atomiske pastandene og frste ordens logikk:

Setning Hvis Per er uforsiktig og takler Pal, blir Pal skadet. Men hvis Per viser seg uforsiktig og Pal i tillegg blir skadet, blir dommeren sur. Sa lenge Per ikke er uforsiktig, vil han heller ikke bryte reglene. Hvis Per ikke bryter reglene eller dommeren ikke blir sur, vil Per unngaafa gult kort. Men Per ser sitt snitt nar dommeren ikke er sur til a spille uforsiktig. a skjedde det faktisk at Per taklet Pal og kk gult kort. Uttrykk A ^ B! C A ^ C! D :A!:E :E _:D!:F :D! A B ^ F Vi skriver om formlene til klausal form: A ^ B! C,:(A^B)_C,:A_:B_C A^C!D,:(A^C)_D,:A_:C_D :A!:E,A_:E :E_:D!:F,:(:E_:D)_:F,(E^D)_:F,(E_:F)^(D_:F) :D!A,D_A B^F og far flgende formel som beskriver fotballhistorien: (:A _:B_C)^(:A_:C_D)^(A_:E)^(E_:F)^(D_:F)^(D_A)^B^F Bruker resolusjon og grupperer termene slik at vi far eliminert sa mange atomiske pastander som mulig. :A _:B_C D_A A_:E :A_:C_D E_:F F B :B_C_D :C_D_:E E :B_D_:E :B_D D Termen (D_:F) erikke brukt over. Veda bruke F -termen panytt vil vi ha (D_:F)^F, D ved resolusjon, dvs. konklusjonen er fortsatt D eller at dommeren ble sur. Vi kan alltid bruke termer ere ganger fordi X, X ^ X

Vi kunne ogsa vise dette ved a anta at dommeren ikke ble sur :D og vise inkonsistensen som da oppstar. b) I pensumboka pastas det at det er umulig a bevise konsistens i predikatlogikk, men at inkonsistens kan detekteres. Hvorfor er dette tilfelle, og hva kaller vi denne egenskapen til predikatlogikk? (Lreboka s. 246) Man kan ikke bevise konsistens i et sett av logiske formler som allerede er konsistent fordi bevisfrselen vil ikke terminere. Man kan eventuelt bevise inkonsistens ved a detektere selvmotsigelser. Egenskapen kalles semi-decidability. c) Hvis vi nsker a legge til et nytt predikat til et eksisterende sett av predikater som vi vet er konsistent, hvordan kan vi avgjre om det nye predikatet er konsistent med resten av regelsettet? (Lreboka s. 247) Det nytter ikke a bevise konsistens direkte, sa vi legger heller til negasjonen av det nye predikatet og ser om vi far inkonsistens. Far vi det, var det opprinnelige predikatet konsistent med resten av regelsettet. Oppgave 4 { Modellering (50%) Flykontrollsystem Et ykontrollsystem bestar av 2 lufttrakk-kontrollsentra som alle er delt opp i trakksektorer. Flykontrollen utfres av mennesker som hver har ansvar for en trakksektor og som blir betjent av en datamaskin i vedkommende kontrollsenter. Flyene registreres i systemet ved meldinger som beskriver ykapteinens planer og som bl.a. inneholder: destinasjoner, rute, hastighet, anmodning om yhyde og avgangstid, estimert ytid og forventet ankomsttid. Denne ruteplanen legges inn i datasystemet to timer fr yavgang og oppbevares i startstedets lufttrakkkontrollsenter. Fem minutter fr planlagt yavgang oversendes en forkortet versjon av ruteplanen til kontrollrene i den frste trakksektoren som yet skal gjennom. Den forkortede yplanen blir overfrt til kontrollrene i de etterflgende sektorer som berres av yet fem minutter fr yet kommer inn i vedkommende sektor. ar yet gar over fra ett kontrollsenter til et annet, blir den komplette yplanen overfrt til vedkommende kontrollsenter fem minutter fr yet kommer inn i kontrollomradet. a) Beskriv systemet nedenfor ved hjelp av dataytdiagram. Dekomponer systemet ett niva ned. Dataytdiagram er forelbig ikke tilgjengelig. Fokus ligger pa riktig syntaks, kompletthet, oversiktlighet, konsistens og riktighet i forhold til domenenet.

b) Beskriv de statiske aspektene vha. ER-diagram. I dette tilfellet modellerer vi domenet - ikke et tenkt databasesystem! Men ikke alt er like viktig. F.eks. det at kontrollsenteret inneholder en datamaskin som lagrer yplaner anses som implisitt i diagrammet nedenfor. sammendrag_av Forkortet flyplan M oversendt hastighet rute gjelder Fly befinner_seg_i flytid tidsintervall ankomsttid flyhøyde Flyplan Kontrollsenter delt_opp_i Trafikksektor avgangstid destinasjoner sendt_til M ansvar_for Kontrollør