Konstruksjon. Kap. 13 Konstruksjonsmodeller og prinsipper. Design Concepts and Principles
|
|
- Ingolf Didriksen
- 7 år siden
- Visninger:
Transkript
1 Kap. 13 Konstruksjonsmodeller og prinsipper. Design Concepts and Principles Konstruksjon Def av design [TAY59]: Prosess med å anvende forskjellige teknikker og prinsipper for å definere et device (enhet), en prosess eller et system tilstrekkelig detaljert til å gjennomføre en fysisk realisering. Målet for konstruktøren er å lage en modell eller representasjon av en enhet som senere skal bygges. Systemutvikling Kap 13 Konstruksjon 1 Systemutvikling Kap 13 Konstruksjon Programvare konstruksjon og utvikling Software Design and Software Engineering Konstruksjon inngår i alle utviklingsmodeller. Den er den første av tre tekniske aktiviteter: 1. Konstruksjon 2. Koding 3. Testing Fig viser infoflyten i konstruksjonsfasen. Systemutvikling Kap 13 Konstruksjon 3 Systemutvikling Kap 13 Konstruksjon Programvare konstruksjon og utvikling -2 Konstruksjonen produserer: 1. Datakonstruksjon - datamodellering, datastrukturer 2. Arkitektur konstruksjon - Definerer forholdet mellom hovedkomponentene i programmet. 3. Grensesnitt konstruksjon - mellom moduler (internt), mot andre programmer og mot brukere (info-flyt: data/kontroll) 4. Prosedyrekonstruksjon - Overfører de strukturelle komponentene til prosedyrebeskrivelser Konstruksjonsprosessen Konstruksjon er en iterativ prosessen som skal overføre kravspesifikasjonen til en representasjon av programvaren. Konstruksjon er viktig for kvaliteten og vedlikeholdbarheten av programvaren. Konstruksjonen er grunnlaget for alle senere utviklingsaktiviteter. Systemutvikling Kap 13 Konstruksjon 5 Systemutvikling Kap 13 Konstruksjon 6
2 Konstruksjon og programvarekvalitet Gjennom konstruksjonsprosessen sikres kvaliteten med formelle tekniske presentasjoner (reviews) eller konstruksjonsgjennomganger (Walkthroughs) Vi kan bruke 3 kriterier for å evaluere god konstruksjon: Konstruksjonen må implementere alle eksplisitte krav i analysemodellen, og oppfylle kundens implisitte ønsker. Konstruksjonen må være en lesbar og forståelig veiledning for de som skriver kode, utfører tester og vedlikeholder programmet. Konstruksjonen må gi et komplett bilde av programvaren innenfor data-, funksjons- og virkeområdet Konstruksjon av programvarekvalitet-2 Vi kan sette opp følgende retningslinjer (kriterier) for god design kvalitet: 1. Hierarkisk organisering. Intelligent kontroll mellom programkomponentene. 2. Modulær oppbygging. Logiske komponenter som utfører spesifikke funksjoner/subfunksjoner. 3. Data- og prosedyreabstraksjoner. 4. Moduler som har uavhengig funksjonell karakteristikk. 5. Grensesnitt som reduserer kompleksiteten av forbindelsen mellom modulene og med eksterne omgivelser. 6. Utføres med repeterbare metoder som drives frem av info fra kravanalysen. Systemutvikling Kap 13 Konstruksjon 7 Systemutvikling Kap 13 Konstruksjon Evolusjon av programkonstruksjon Historie: Modullære programmer Top-down.. Strukturert programmering Dataflyt og datastrukturer Konstruksjon def.. Objektorientert konstruksjon Metodene har følgende fellestrekk: 1. En mekanisme for overføring fra representasjon av infodomene til konstruksjonsrepresentasjon. 2. En notasjon for å representere funksjonelle komponenter og deres grensesnitt. 3. Heuristikk (regler for) forbedring og oppdeling 4. Retningslinjer for kvalitetssikring Konstruksjonsprinsipper Vi kan sett opp en liste av konstruksjonsprinsipper: Konstruksjonsprosessen må ikke lide av tunnelsyn vi må vurdere flere alternativer i forhold til problemet, tilgjengelige ressurser og konstruksjonsmodell. Konstruksjonen må kunne spores tilbake til analysemodellen. Konstruksjonen skal ikke finne opp hjulet på nytt. (Gjenbruk) Konstruksjonen bør være slik at strukturen i programmet reflekterer strukturen i problemområdet. Konstruksjonen må være enhetlig og integrerende. Alle som utfører konstruksjonen må følge de samme reglene, og det må defineres grensesnitt mellom modulene. Systemutvikling Kap 13 Konstruksjon 9 Systemutvikling Kap 13 Konstruksjon Konstruksjonsprinsipper Konstruksjonen må struktureres slik at det er lett å utføre endringer. Konstruksjonen må struktureres slik at systemet stopper kontrollert, selv med unormale data, hendelser, eller feil bruk. (Robust program). Konstruksjon er ikke koding (programmering), programmering er ikke konstruksjon. Konstruksjon er på et høyere abstraksjonsnivå. Bare små detaljer i konstruksjonen kan utsettes til kodingen. Konstruksjonen må kvalitetssikres mens den utføres, ikke etter at den er laget. Konstruksjonen må gjennomgås (reviewed) for å minimalisere logiske feil. Hvis disse prinsippene anvendes, får vi en konstruksjon som har både ekstern og intern kvalitet Konstruksjonsprinsipper Eksterne kvalitetsfaktorer er egenskaper ved programvaren som observeres av brukerne (hastighet, pålitelighet, korrekt, brukervennlig). Interne kvalitetsfaktorer er viktige for systemutviklerne, og gir høy kvalitet på konstruksjonen, sett fra et teknisk perspektiv. Systemutvikling Kap 13 Konstruksjon 11 Systemutvikling Kap 13 Konstruksjon 12
3 13.4 Konstruksjonsmodeller Vi skal her se på prinsipper og konsepter for konstruksjon. De skal hjelpe oss til å besvare følgende spørsmål: 1. Hvilke kriterier kan brukes til å dele opp programvaren i individuelle komponenter (moduler)? 2. Hvordan er funksjoner og datastruktur-detaljer adskilt fra en konseptuell representasjon av programvaren? 3. Er det ensartede kriterier som definerer teknisk kvalitet for programkonstruksjon? Abstraksjon Når vi skal lage en modulær løsning av et problem, må vi se problemet på flere abstraksjonsnivå: Høyeste nivå: Må beskrives i et brukerforståelig språk Laveste nivå: Problemorientert språk Problemorientert koples også med implementasjonsorientert, d.v.s. at vi på laveste nivå bruker en form som kan implementeres direkte. Hvert trinn (fase ) i utviklingsprosessen er en detaljering av abstraksjonsnivå. Tilsvarende når vi går mot detaljert konstruksjon reduseres abstraksjonsnivået. Det laveste nivå er koden. Systemutvikling Kap 13 Konstruksjon 13 Systemutvikling Kap 13 Konstruksjon Abstraksjon - 1 Prosedyremessig abstraksjon - navngitt prosedyre Dataabstraksjon - navngitt samling av data som beskriver et dataobjekt. Flere programmeringsspråk har mekanismer for å lage abstrakte datatyper (ADT). En ADT inneholder datastrukturer og operasjoner (prosedyrer) som opererer på data. Kontrollabstraksjon - omfatter en programkontrollmekanisme uten å spesifisere interne detaljer. Eksempel på en slik er semaforer for synkronisering som brukes i operativsystem Detaljering (Refinement) Stegvis forfining eller detaljering (stepwise refinement) er en topdown (fra høyeste til laveste nivå) kostruksjonsstategi (Nikolaus Wirth): Vi starter med en overordnet beskrivelse av funksjoner som dekomponeres til subfunksjoner osv. til vi har et detaljeringsnivå som tilsvarer setninger i programmeringsspråk. Data deles opp (detaljeres) på tilsvarende måte. Metoden innebærer også at vi starter på et abstrakt nivå og går nedover mot et mer og mer detaljert nivå og en konkret beskrivelse. Tilsvarende i programmering: Vi starter med å skrive hovedprogrammet og alle prosedyrehoder på øverste nivå (evt. med stubs som gjør at vi kan kalle prosedyrene og se at de kalles i riktig rekkefølge). Deretter skrives koden for Prosedyrene på øverste nivå og prosedyrehoder for nivået under osv... Systemutvikling Kap 13 Konstruksjon 15 Systemutvikling Kap 13 Konstruksjon Modularitet I arkitekturkonstruksjon deles systemet opp i separate, navngitte og adresserbare komponenter kalt moduler som integreres for å tilfredsstille problemkravene. Men hvor mange moduler skal vi dele systemet opp i? La C(x) - funksjon som definerer kompleksiteten til problem x E(x) - funksjon som definerer innsatsen (tidsforbruket) for å løse problem x For to problem p 1 og p 2 gjelder at (13-1 a,b) C(p 1 ) > C(p 2 ) => E (p 1 ) > E(p 2 ) Det tar altså mer tid å løse et komplisert problem! Modularitet - 2 En annen erfaring fra problemløsning er at: (13.2) C(p 1 + p 2 ) > C(p 1 ) + C(p 2 ) Kompleksiteten av et problem som inkluderer både p 1 og p 2 er større enn summen av kompleksiteten til hvert problem. Av (13.1) følger at (13.3) E (p 1 + p 2 ) > E(p 1 ) + E(p 2 ) Konklusjon: Det er lettere å løse et komplisert problem når det deles opp i mindre problem! Men: For et gitt problem vil oppdeling føre til mange små moduler som det kreves innsats for å lage grensesnitt mellom, og å integrere modulene. Systemutvikling Kap 13 Konstruksjon 17 Systemutvikling Kap 13 Konstruksjon 18
4 Modularitet Modularitet - 4 Innsatskostnad Minimum kostnad M Totale kostnader Kostnad grensesnitt Kostnad pr. modul Det er altså et tall M for antall moduler som gir minimale utviklingskostnader, men M kan ikke forutsies eksakt. Størrelsen på hver modul bestemmes av funksjonen og applikasjonen. Det kan være tilfeller der flere funksjoner må integreres i en modul av plass- og ytelseshensyn, men filosofien om modularitet må vises! Antall moduler Fig viser kurven for kostnad pr. modul, og for interfacing som til sammen gir totale kostnader. Systemutvikling Kap 13 Konstruksjon 19 Systemutvikling Kap 13 Konstruksjon Modularitet - 5 Hvordan lager vi en modul med en gitt størrelse? Dette avhenger av metoden som brukes. Vi har 5 kriterier som kan være til hjelp ved vurderingen av en konstruksjonsmetodes muligheter til å definere et effektivt modulært system: 1. Modulær nedbrytbarhet Hvis metoden har en systematisk mekanisme for dekomponering av problemet i delproblemer, vil kompleksiteten av hele problemet reduseres, og vi får en effektiv modulær løsning. 2. Modulær sammensettbarhet (oppbyggbarhet) Hvis metoden gjør det mulig å sette sammen (gjenbrukte) moduler til et nytt system, gir det en modulær løsning (ikke finn opp hulet på nytt!) Modularitet Modulær forståelighet Hvis en modul kan forstås som en selvstendig enhet (uten referanse til andre moduler), vil det være lettere å bygge og vedlikeholde modulen. 4. Modulær kontinuitet Hvis små endringer i systemkrav resulterer i endringer i individuelle moduler, og ikke spredt over hele systemet, vil virkningen av sideeffekter introdusert av endringene bli minimalisert. 5. Modulær beskyttelse Hvis en avvikende situasjon (feil) oppstår i en modul, og dens effekter er begrenset til denne modulen, vil virkningen av feilinduserte sideeffekter minimaliseres. Systemutvikling Kap 13 Konstruksjon 21 Systemutvikling Kap 13 Konstruksjon Programarkitektur Arkitekturen til et program viser den hierarkiske strukturen av programkomponentene (modulene), hvordan de kommuniserer og datastrukturene de bruker. Arkitekturen utvikles gjennom en oppdelingsprosess. Vi tar utgangspunkt i kravspesifikasjonen og ender opp med en oppdeling der hver funksjon vises. Forskjellige metoder gir forskjellige strukturer. Hvilken som er best kan ikke avgjøres, men vi skal senere se på karakteristikker for god kvalitet Programarkitektur -2 Følgende egenskaper bør spesifiseres som del av arkitekturkonstruksjonen: Strukturelle egenskaper definerer komponentene i systemet (moduler, objekter..), hvordan de er pakket (sammensatt), og hvordan de kommuniserer. For eksempel er objekter pakket slik at både data og prosedyrer som opererer på disse er innkapslet Ekstrafunksjonelle egenskaper viser hvordan arkitekturen oppfyller krav om ytelse, kapasitet, pålitelighet, sikkerhet, tilpasningsevne og andre systemkarakteristikker. Familie av relaterte (tilsvarende) systemer arkitekturkonstruksjonen skal dra nytte av konstruksjon av tilsvarende system (gjenbruk). Systemutvikling Kap 13 Konstruksjon 23 Systemutvikling Kap 13 Konstruksjon 24
5 Programarkitektur -3 Arkitekturkonstruksjonen kan representeres av en eller flere modeller: Strukturelle modeller representerer arkitekturen som en organisert samling av programkomponenter. Rammeverk modeller øker abstraksjonsnivået ved å identifisere fellestrekk i konstruksjon for tilsvarende applikasjoner. Dynamiske modeller viser hvordan programmet virker, og hvordan strukturen eller systemkonfigurering kan forandre seg som følge av eksterne hendelser (events). Prosessmodeller fokuserer på konstruksjon av forretnings eller tekniske prosesser som systemet må oppfylle. Funksjonelle modeller kan brukes til å representere det funksjonelle hierarkiet til systemet Kontrollhierarki - Control Hierarchy Fig viser trestruktur for programhierarki for programstrukturen. Vi kan også bruke såkalt Warnier-Orr eller Jackson diagram Mål og terminologi: Dybde og bredde gir en indikasjon på antall kontrollnivå og det totale kontrollspenn. Dybde - antall kontrollnivå. Bredde - totalt kontrollspenn. Fan-out (vifte ut) - er et mål på antall moduler som er direkte kontrollert av en annen modul. Fan-in (vifte inn) - indikerer hvor mange moduler som kontrollerer en gitt modul. Systemutvikling Kap 13 Konstruksjon 25 Systemutvikling Kap 13 Konstruksjon Kontrollhierarki -2 En modul som kontrollerer en annen er overordnet (superordinate) til denne. En modul som kontrolleres av en annen er underordnet (subordinate) til kontrollmodulen. Eks. fig 13.3 Modul M M Fan-out er overordnet til a, b og Dybde c, og modul h er underordnet e (og a b c M). d e k l m Systemutvikling Kap 13 Konstruksjon 27 f g i h j Bredde n Fan-in o r p q Kontrollhierarki -3 Breddeorienterte relasjoner har ingen spesiell terminologi. Synlighet (visability) indikerer mengden av programkomponenter som kan startes/kalles eller bli brukt som data av en gitt komponent (selv om dette skjer indirekte). I objektorienterte systemer er dette alle dataobjekter som en modul har arvet, men den bruker (aksesserer) nødvendigvis ikke alle. Alle objekter er synlige for modulen. Binding (connectivity) indikerer mengden av komponenter som kalles/startes direkte eller brukes som data av en gitt komponent. F.eks. En modul som direkte får en annen modul til å starte eksekvering er bundet til den. Systemutvikling Kap 13 Konstruksjon Strukturell oppdeling Programstrukturen må deles opp både horisontalt og vertikalt. Fig. 13.4a viser horisontal oppdeling, der det er ei hovedgrein for hver funksjon. Kontrollmoduler (øverst, mørkere) koordinerer kommunikasjonen mellom, og utføring av funksjonene. Den enkleste form for horisontal oppdeling definerer tre (under)moduler: Input, prosessering og output. Fordeler ved horisontal oppdeling: Lettere å teste programmene Lettere å vedlikeholde programmene. Færre og mindre spredning av sideeffekter. Lettere å utvide programmene. Systemutvikling Kap 13 Konstruksjon 29 Systemutvikling Kap 13 Konstruksjon 30
6 Strukturell oppdeling -2 En ulempe ved horisontal oppdeling er at det ofte fører til at store mengder data overføres (gjennom grensesnittene) mellom modulene, og dette kompliserer kontrollen av programflyten. Vertikal oppdeling (Fig 13.4b), også kalt faktorisering deler kontroll (beslutninger) og arbeid top-down: Topp-nivå moduler utfører kontrollfunksjoner. Moduler på lavere nivå er arbeidere som utfører all input, beregninger og outputoppgaver. Endringer i arkitekturen gjør at vertikal dekomponering er fordelaktig Datastrukturer Datastrukturer er representasjon av de logiske forhold mellom de individuelle dataelementer. Datastrukturene styrer organisering, aksessmetoder, assosiativitet (kopling) og prosesseringsalternativ for informasjonen. Data bør organiseres i et informasjonshierarki. Den enkleste datastrukturen er et skalart felt (item) som er et enkelt informasjonselement som kan adresseres gjennom en identifikator (variabelnavn) Systemutvikling Kap 13 Konstruksjon 31 Systemutvikling Kap 13 Konstruksjon Datastrukturer -2 Matriser (n-dimmensjonale rom) implementeres som flerdimmensjonale array. Lenkede lister organiserer ikke-kontinuerlige skalare felt, vektorer eller rom på en måte som tillater at de behandles som lister. Hver node har pekere som indikerer adressen i lagret til neste node. Nye noder kan legges til dynamisk (new..). Andre datastrukturer inneholder eller er konstruert ved å bruke de fundamentale datastrukturene, f.eks: Hierarkiske datastrukturer kan implementeres som multilenkede lister som inneholder skalare elementer, vektorer, og eventuelt n-dimmensjonale rom. (array) Datastrukturer -3 Hierarkiske strukturer der det er nødvendig å kategorisere og assosiere informasjon. Kategorisering er gruppering av informasjon etter generelle kategorier (sortering). Assosiativitet gir mulighet til å assosiere (kople) informasjon fra forskjellige kategorier. Datastrukturer (akkurat som program) kan ha forskjellig abstraksjonsnivå. Systemutvikling Kap 13 Konstruksjon 33 Systemutvikling Kap 13 Konstruksjon Prosedyrer Software Procedure Prosedyrer fokuserer på prosesseringsdetaljer til hver individuelle modul. Dokumentasjonen må vise presis spesifikasjon av prosessering, inkludert sekvensen av hendelser, beslutningspunkt, repeterte operasjoner og dataorganisering og -strukturer. Programbeskrivelsen for hver modul må inkludere referanser til alle underordnede moduler. Fig viser at prosedyrerepresentasjonen av programvare er lagdelt. Systemutvikling Kap 13 Konstruksjon 35 Systemutvikling Kap 13 Konstruksjon 36
7 Informasjonsskjuling Information hiding Information hiding (abstrakte datatyper, ADT innkapsling i OOP). Informasjon i en modul kan ikke aksesseres av andre moduler enn de som har behov for denne informasjonen. Innkapsling medfører at effektiv modularitet kan oppnås ved å definere et sett moduler som kommuniserer med hverandre. Bare den informasjon som er nødvendig for å utføre funksjonene utveksles. Den største fordelen med innkapsling er når en modul skal endres, og senere under vedlikehold. Feil som introduseres under endring sprer seg ikke til andre moduler Effektiv modulær konstruksjon Modularitet er anerkjent i alle ingeniørdisipliner. Fordeler med modulær konstruksjon: Reduserer kompleksiteten Lettere å gjøre endringer (viktig for vedlikehold) Lettere implementasjon ved at forskjellige systemdeler kan implementeres parallelt. Systemutvikling Kap 13 Konstruksjon 37 Systemutvikling Kap 13 Konstruksjon Funksjonell uavhengighet Funksjonell uavhengighet oppnås ved å utvikle funksjoner med enkel (en eneste) funksjon, og unngå overdreven interaksjon (kommunikasjon) med andre moduler. Hver modul utfører en spesifikk subfunksjon i kravspesifikasjonen, og har et enkelt grensesnitt når den ses fra andre deler av programstrukturen. Hvorfor er uavhengighet viktig? Svar: Lettere utvikling Enklere grensesnitt Parallell utvikling i grupper Lettere å vedlikeholde fordi sideeffekter ved endringer reduseres, feilforplantning (spredning) reduseres. Gjenbrukbare moduler Funksjonell uavhengighet -2 Til å måle uavhengighet brukes to kvalitative kriterier: 1. Sammenheng (cohesion) er et mål for relativ funksjonell styrke til en modul. 2. Kobling (coupling) er et mål for den relative uavhengighet mellom modulene. Vi skal se nærmere på de to kriteriene i de to følgende avsnitt. Systemutvikling Kap 13 Konstruksjon 39 Systemutvikling Kap 13 Konstruksjon Sammenheng (Cohesion) En sammenhengende modul utfører en enkelt oppgave. Skalaen er ikke lineær. Lav sammenheng er mye verre enn middels, mens middels er nesten like godt som høy sammenheng. Tilfeldig - Flere oppgaver som har liten sammenheng i samme modul Logisk - Oppgavene har logisk sammenheng, f.eks. all output. Temporær - Flere oppgaver som utføres i samme tidsperiode. Prosedyremessig (prosedural) - Oppgavene har forbindelse med hverandre og må utføres i en bestemt rekkefølge. Kommunikasjonsmessig - Alle prosesseringselementer behandler et område av en datastruktur. Funksjonell (høy) - Modulen utfører en oppgave. Vi trenger ikke bestemme presist hvilken sammenheng vi har, men vi må gjenkjenne lav sammenheng slik at konstruksjonen kan endres for å oppnå større funksjonell uavhengighet Kopling Kopling er et mål for forbindelsen mellom moduler i en programstruktur. Kopling avhenger av kompleksiteten til grensesnittet mellom modulene, entrypunkt (inngangspunkt) eller referanse til modulen, og hvilke data som passerer gjennom grensesnittet. Vi vil ha lavest mulig kopling! Lav kopling gjør at programmene er lettere å forstå, og mindre muligheter for at feil i en modul skal spre seg til andre. Kontrollkopling (moderat kopling) - Kontroll utveksles mellom modulene som den andre modulen (over eller under) brukes til å ta beslutninger. I enkleste tilfelle er det et flagg. Ekstern kopling (høy kopling) - En modul er koplet til eksterne enheter, f.eks. I/O-enheter, protokoller osv. Dette bør isoleres til noen få moduler. Systemutvikling Kap 13 Konstruksjon 41 Systemutvikling Kap 13 Konstruksjon 42
8 Kopling -2 Common kopling - Flere moduler bruker globale data. På fig 13.7 aksesserer modulene c, g og h felles data. Globale data må brukes med forsiktighet! Innholdsmessig (content) kopling - En modul bruker data eller kontroll informasjon som vedlikeholdes inni en annen modul, eller har forgreining inn i en annen modul (bruker kode). Dette bør unngås! Men under utvikling vil vi alltid ha ekstern kopling, f.eks. i operativsystem: Drivere, kommunikasjon, protokoller osv Konstruksjonsregler for effektiv modularisering De følgende regler brukes til å forbedre konstruksjonen når den første versjonen er laget: 1. Evaluer første versjon av programstrukturen slik at kopling reduseres og sammenheng (cohesion) økes. 2. Forsøk å minimalisere strukturer med høy ut-vifte (fan-out), og arbeid for innsnevring når dybden øker. 3. Hold virkeområde (scope of effect) innenfor kontrollområdet (scope of control) for modulen. 4. Vurder modulgrensesnittene for å redusere kompleksitet og redundans, og forbedre konsistensen. 5. Definer moduler hvis funksjon er forutsigbar (svart boks), men unngå moduler som er altfor innskrenkende. 6. Streb etter kontrollerte innganger i moduler, og unngå innhopp i moduler (mulig i assembler og enkelte språk). 7. Pakk programvaren ut fra rammebetingelsene fra konstruksjon og portabilitetskrav. Systemutvikling Kap 13 Konstruksjon 43 Systemutvikling Kap 13 Konstruksjon Konstruksjonsmodell Pyramidemodellen i fig skal symbolisere at god konstruksjon er stabil. Detaljer om konstruksjonsmodeller i kap. 14 og 21 (objektorientert konstruksjon) Konstruksjonsdokumentasjon (fra 4. utgave) I. Scope A. System objectives B. Major software requirements C. Design constraints, limitations II. Data Design A. Data objects and resultant data structures B. File and database structures 1. external file structure a. logical structure b. logical record description c. access method 2. global data 3. file and data cross reference III. Architectural Design A. Review of data and control flow B. Derived program structure Systemutvikling Kap 13 Konstruksjon 45 Systemutvikling Kap 13 Konstruksjon 46 IV.Interface Design A. Human-machine interface specification B. Human-machine interface design rules C. External interface design 1. Interfaces to external data 2. Interfaces to external systems or devices D. Internal interface design rules (' V. Procedural Design For each module: A. Processing narrative B. Interface description C. Design language (or other) description D. Modules used E. Internal data structures F. Comments/restrictions/limitations VI. Requirements Cross-Reference VII. Test Provisions 1. Test guidelines 2. Integration strategy 3. Special considerations VIII. Special Notes IX. Appendices Systemutvikling Kap 13 Konstruksjon 47
Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner
Software Engineering - definisjoner Kap. 2 Prosessen Utviklingsprosessen Modeller for utvikling Bauer: Etablering og bruk av gode ingeniørmessige prinsipper for å fremskaffe økonomisk programvare som er
DetaljerOppsummering. Thomas Lohne Aanes Thomas Amble
Oppsummering Thomas Lohne Aanes Thomas Amble 14.11.04 Kapittel 2: Data Modell Mål: Data som skal brukes av applikasjonen blir spesifisert på en formell og likevel intuitiv måte. Resultat: Vi får et konseptuelt
DetaljerCharacteristics of a good design
Characteristics of a good design (PPT. side 1) Innledning Høykvalitetsdesign bør ha visse karakteristikker for å oppnå kvalitetsprodukter, dvs.: enkelt å forstå enkelt å implementere enkelt å teste enkelt
DetaljerAlgDat 12. Forelesning 2. Gunnar Misund
AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av
DetaljerKap. 12 Analysemodellering (Analysis Modeling)
Kap. 12 Analysemodellering (Analysis Modeling) Strukturert analyse er en av de mest brukte brukte modelleringsmetoder i analysen. Den andre er objektorientert analyse. 12.1 Kort historikk Strukturert analyse
DetaljerAlgDat 10. Forelesning 2. Gunnar Misund
AlgDat 10 Forelesning 2 Oversikt Java repetisjon IDE eller teksteditor + kommandolinje? Java Collections and Generics Programvareutvikling En mengde mer eller mindre veldefinerte metoder (software engineering):
DetaljerKapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process
INF 329 Web-teknologier Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process Navn: Bjørnar Pettersen bjornarp.ii.uib.no Daniel Lundekvam daniell.ii.uib.no Presentasjonsdato:
DetaljerKap. 10 Systemutvikling System Engineering
Kap. 10 Systemutvikling System Engineering - Utvikling og integrering av både maskin- og programvare. - Hvordan oppstår behov for programvare? - Hvordan inngår programvare i en sammenheng med andre (del)systemer,
Detaljer21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA)
21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA) Når vi skal lage en OO analysemodell, bruker vi 5 hovedprinsipper: 1. Lag en modell av informasjonsdomenet. 2. Beskriv modul-funksjonene
DetaljerINF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens
DetaljerINF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer
DetaljerModel Driven Architecture (MDA) Interpretasjon og kritikk
Model Driven Architecture (MDA) Interpretasjon og kritikk Ragnhild Kobro Runde (Ifi, UiO) Veileder: Ketil Stølen (Ifi/SINTEF) Stuntlunsj SINTEF Oversikt Bakgrunn/utgangspunkt for presentasjonen MDA stuntlunsj
DetaljerINF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens
DetaljerINF2810: Funksjonell Programmering
INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer
DetaljerINF2810: Funksjonell Programmering. Lokale variabler. Og trær.
INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer
DetaljerInnholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen.
Kort innføring i design og programmeringsfasen Jarle Larsen/Tore Berg Hansen 2.11.04 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO314 Prosjektrettet systemarbeid Resymé:
DetaljerGJENNOMGANG UKESOPPGAVER 9 TESTING
GJENNOMGANG UKESOPPGAVER 9 TESTING INF1050 V16 KRISTIN BRÆNDEN 1 A) Testing viser feil som du oppdager under kjøring av testen. Forklar hvorfor testing ikke kan vise at det ikke er flere gjenstående feil.
DetaljerLivsløpstesting av IT-systemer
Livsløpstesting av IT-systemer Testing, validering og evaluering Teste Undersøke ved hjelp av tester om systemet fungerer slik det er beskrevet Validere Bekrefte hvordan systemet virkelig fungerer, om
DetaljerINF2810: Funksjonell Programmering. Lokale variabler. Og trær.
INF2810: Funksjonell Programmering Lokale variabler. Og trær. Erik Velldal Universitetet i Oslo 11. september 2019 Tema forrige uke 2 Lister som datastruktur quote Rekursjon på lister Høyereordens prosedyrer
DetaljerPresentasjon 1, Requirement engineering process
Presentasjon 1, Requirement ing process Prosessodeller Hvorfor bruke prosessmodeller? En prosessmodell er en forenklet beskrivelse av en prosess En prosessmodell er vanligvis lagd ut fra et bestemt perspektiv
DetaljerLæringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop
Læringsmål uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2018 uke 7 Siri Moe Jensen Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
DetaljerInnhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk
Innhold uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2017 uke 7 Siri Moe Jensen Lite tilbakeblikk: Prosedyrer og funksjoner Objektorientert programmering Introduksjon: Hvorfor,
DetaljerEvaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet
Evaluering av It-systemer i et forvaltningsperspektiv Drift, vedlikehold og videreutvikling av IT-systemet Bakgrunnen IT-systemer har ofte lenger levetid enn forventet er ofte forretningskritiske utvikler
DetaljerForelesningsnotat. Kapittel 9 Designing and Constructing Software Code related Issues. Design og utvikling av programvare
Forelesningsnotat Kapittel 9 Designing and Constructing Software Code related Issues 1 Design og utvikling av programvare Grunnleggende metoder (Kap 9.1) Utvikling av kode (Kap 9.2) Programmeringsspråk
DetaljerINF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Erik Velldal Universitetet i Oslo 2. februar 2017 Agenda 2 Forrige uke Substitusjonsmodellen og evalueringsstrategier. Blokkstruktur
DetaljerPlan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk
Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) Funksjonelle språk (Ghezzi&Jazayeri kap.7 frem til 7.4) Neste uke: ML Ark 1 av 16 Forelesning 16.10.2000 Parameteroverføring
DetaljerTom Røise 2/28/2007. IMT2243 : Systemutvikling 1. Forelesning IMT2243 1. mars 2007. Tema : Litteratur : Strukturert analyse. Strukturert analyse
Forelesning IMT2243 1. mars 2007 Tema : Litteratur : Art.saml. Punkt 9 : Kap. 9. SASD - modellen, E. Andersen Metoden går ut på å anvende et sett teknikker i arbeidet med å lage gode systemmodeller /beskrivelser
DetaljerHvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000
Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
DetaljerHvorfor objektorientert programmering?
Objektorientert programmering i Python: Introduksjon IN1000 Høst 2019 uke 7 Siri Moe Jensen Læringsmål uke 7 Kjenne til motivasjon og bakgrunn for objektorientert programmering Kunne definere en klasse,
DetaljerINF2810: Funksjonell Programmering. Lister og høyereordens prosedyrer
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Lister og høyereordens prosedyrer Erik Velldal Universitetet i Oslo 5. februar 2015 Agenda Forrige uke Substitusjonsmodellen og evalueringsstrategier.
DetaljerGJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG
GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG INF1050 V16 HVA ER EN SYSTEMUTVIKLINGSPROSESS? De aktivitetene som utføres for å utvikle et IT-system Eksempler på aktiviteter:
DetaljerEtter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner
Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)
DetaljerHensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen
Hensikten med denne delen av kurset Objektorientert systemutvikling Rational Unified Process (RUP) Gurholt og Hasle kap. 6 UML Distilled kap. 2 Å lære modellerings- og designprinsipper og øve opp teknikker
DetaljerSystemutviklingen er ferdig når et system er operativt. Med operativt menes når systemet blir brukt av brukerne på et faktisk arbeidssted.
Presentasjon nummer 5 The changing system and the nature of maintenance Silde 1 Gruppen introduseres Slide 2 The changing system and the nature of maintenance The Changing system Systemutviklingen er ferdig
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerSTE6221 Sanntidssystemer LØSNINGSFORSLAG TIL EKSAMEN
HØGSKOLEN I NARVIK Avdeling for teknologi MSc.-studiet EL/RT Side 1 av 3 STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL EKSAMEN Tid: Torsdag 09.03.2006, kl: 09:00-12:00 Tillatte hjelpemidler: Godkjent programmerbar
DetaljerSystemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling
Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling 21.1.2009 Rune Steinberg International Development Manager ERP INF1050 Systemutvikling Vår 2009 - Copyright Rune Steinberg 2009 1 Innledning
DetaljerSystemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling
Innledning Læringsmål Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling 21.1.2009 Forstå hvorfor systemutviklingsprosessen er viktig Forstå de viktigste prinsippene for ulike prosesser
DetaljerINF2810: Funksjonell Programmering. Tilstand og verditilordning
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Tilstand og verditilordning Erik Velldal Universitetet i Oslo 26. februar 2015 Forrige gang 2 I dag Vi blar om til kapittel 3 i SICP.
DetaljerInnlevering 2b i INF2810, vår 2017
Innlevering 2b i INF2810, vår 2017 Dette er del to av den andre obligatoriske oppgaven i INF2810. Man kan oppnå 10 poeng for oppgavene i 2b, og man må ha minst 12 poeng tilsammen for 2a + 2b for å få godkjent.
DetaljerGenerelt om operativsystemer
Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres
DetaljerINF2810: Funksjonell Programmering. Mer om verditilordning. Tabeller. Og strømmer.
INF2810: Funksjonell Programmering Mer om verditilordning. Tabeller. Og strømmer. Erik Velldal Universitetet i Oslo 29. mars 2016 De siste ukene: destruktive operasjoner 2 set! endrer verditilordningen
DetaljerINF2810: Funksjonell Programmering. Mer om verditilordning. Tabeller. Og strømmer.
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Mer om verditilordning. Tabeller. Og strømmer. Erik Velldal Universitetet i Oslo 29. mars 2016 De siste ukene: destruktive operasjoner
DetaljerINF2810: Funksjonell Programmering. Tilstand og verditilordning
INF2810: Funksjonell Programmering Tilstand og verditilordning Stephan Oepen Universitetet i Oslo 2. mars 2017 Forrige gang 2 I dag 3 Vi blar om til kapittel 3 i SICP. Tilstand og verditilordning. Destruktive
DetaljerTom Røise IMT 2243 : Systemutvikling 1. Forelesning IMT Mars Designfasen i SU-prosjekter : Generelle steg i Designprosessen
Forelesning IMT2243 12. Mars 2007 Tema : Design av programvare Hva ønsker vi å oppnå i designfasen? Generelle steg ved design av programvare Softwarearkitektur Struktur og organisering Dekomponering Kontrollmekanismer
DetaljerINF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon
INF2810: Funksjonell Programmering Dataabstraksjon og Trerekursjon Stephan Oepen & Erik Velldal Universitetet i Oslo 15. februar, 2013 Tema 2 Forrige uke Høyere-ordens prosedyrer: Prosedyrer som argumenter
Detaljer... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved
Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)
DetaljerOperativsystemer og grensesnitt
Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner
DetaljerINF3430/4431. VHDL byggeblokker og testbenker
INF3430/4431 VHDL byggeblokker og testbenker Entity/architecture Innhold Strukturelle design (nettliste) Generics Configurations Operatorer-Operator prioritet (precedence) Datatyper Bit / IEEE1164 std_ulogic
DetaljerKirsten Ribu - Høgskolen i Oslo 05.05.04
Prosessmodellering Strukturert analyse og design et overblikk Gurholt & Hasle, kapittel 10 Kirsten Ribu - Høgskolen i Oslo 05.05.04 1 Perspektiver på modellering Datamodellering var lenge den mest brukte
DetaljerADDML. Archival Data Description Markup Language. Generell del. Versjon PA 0.07 Sist oppdatert: TPD. ADDML_8_2.doc 03/03/2011 1(12)
ADDML Archival Data Description Markup Language Generell del Versjon PA 0.07 Sist oppdatert: 2010-09-16 TPD ADDML_8_2.doc 03/03/2011 1(12) Innledning... 4 Mål... 4 Historie... 4 Hvordan benytte ADDML...
DetaljerRepetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!
Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre
DetaljerPR362009 24. november 2009 Programvare, pc-basert kontroll Side 1 av 5
Programvare, pc-basert kontroll Side 1 av 5 IT-standarder: TwinCAT-programmeringsmiljø integreres i Microsoft Visual Studio TwinCAT 3 extended Automation Med TwinCAT 3 introduserer Beckhoff sin nye generasjon
DetaljerA study of different matching heuristics. Hovedfagspresentasjon Jan Kasper Martinsen
A study of different matching heuristics Hovedfagspresentasjon Jan Kasper Martinsen (janma@ifi.uio.no) Terminologi: Graf teori En graf består av et sett med noder Nodene er tilknyttet hverandre ved hjelp
DetaljerStatisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere
Statisk testing Testing uten datamaskin, men med vår egen evne til å vurdere og analysere Hva er statisk testing Analyser som utføres på skrevne dokumenter Hensikten er å finne avvik fra spesifikasjonene
DetaljerDatastrukturer og Algoritmer
TOD 063 Datastrukturer og Algoritmer Forside fra lærebokens Nord Amerikanske utgave Tar for seg praktisk problemstilling: Hvordan håndtere containere som blir lastet fra containerskip i en travel havn
DetaljerFunksjonalitet og oppbygning av et OS (og litt mer om Linux)
Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Hovedfunksjoner i et OS OS skal sørge for: Styring av maskinvaren Deling av maskinens ressurser Abstraksjon vekk fra detaljer om maskinvaren
DetaljerINF2810: Funksjonell Programmering. Tilstand og verditilordning
INF2810: Funksjonell Programmering Tilstand og verditilordning Stephan Oepen Universitetet i Oslo 8. mars 2016 Forrige gang 2 I dag 3 Vi blar om til kapittel 3 i SICP. Tilstand og verditilordning. Destruktive
DetaljerEtter uke 6 skal du. Introduksjon til objektorientert programmering. Hva skjedde ~1967? INF1001. Grunnkurs i objektorientert programmering
Etter uke 6 skal du Kjenne til motivasjonen for objektorientert programmering Introduksjon til objektorientert programmering INF1001 Høst 2016 Forstå hva en klasse er, og forskjellen på klasse og objekt
DetaljerInformasjonsorganisering. Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6
Informasjonsorganisering Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6 Bevissthet om sted, omgivelser og tingenes plassering Ting er noe vi forstår i relasjon til noe annet Informasjonsomgivelsenes
DetaljerSTE6221 Sanntidssystemer Løsningsforslag
HØGSKOLEN I NARVIK Avdeling for teknologi MSc.-studiet EL/RT Side 1 av 3 STE6221 Sanntidssystemer Løsningsforslag Tid: Fredag 02.03.2007, kl: 09:00-12:00 Tillatte hjelpemidler: Godkjent programmerbar kalkulator,
DetaljerGenerelt om operativsystemer
Generelt om operativsystemer Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og
DetaljerObjektorientert programmering i Python
Objektorientert programmering i Python IN1000 Høst 2019 uke 8 Siri Moe Jensen Læringsmål uke 8 Repetisjon fra forrige uke Definere en klasse, opprette og arbeide med objekter: How-to
DetaljerOppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise 30.04.2007. IMT2243 : Systemutvikling 1
Oppsummering : IMT2243 Systemutvikling Målformuleringen i emnebeskrivelsens : Studentene skal ha forståelse for grunnleggende administrative og teknologiske aspekter ved spesifisering, utvikling, innføring
DetaljerKap3: Klassemodellering
Kap3: Klassemodellering I dag: Litt repetisjon fra sist (innledende om klassemodellen) Deretter egentlig litt mer repetisjon, men nå fra intro- Felt-/Instansvariabler og kurset i Java: Klasser og Objekt,
DetaljerCORBA Component Model (CCM)
CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: Fredag 5. juni 2015 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider (ikke medregnet denne siden)
DetaljerIN1020. Datamaskinarkitektur
IN1020 Datamaskinarkitektur Hovedpunkter Von Neumann Arkitektur BUS Pipeline Hazarder Intel Core i7 Omid Mirmotahari 4 Von Neumann Arkitektur John von Neumann publiserte i 1945 en model for datamaskin
DetaljerJini. Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong. Definisjon
Jini Gruppe 1 Martin Skarsaune Bjørn Arne Dybvik Cuong Huu Truong Definisjon Et distribuert system bygd opp som et forbund av brukergrupper og ressurser som brukerne trenger, der ressursene tilbyr brukere
DetaljerSystemutvikling (Software Engineering) Professor Alf Inge Wang
1 Systemutvikling (Software Engineering) Professor Alf Inge Wang 2 Undervisningsmål og henvisning Målet med timen er: Få kunnskap om hva systemutvikling er Forstå hva en utviklingsprosess består av Få
DetaljerPensum: fra boken (H-03)+ forelesninger
Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerINF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme
INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme Erik Velldal Universitetet i Oslo 19. april 2016 Tema 2 Forrige uke Strømmer og utsatt evaluering Kort om makroer I dag Kap. 4 Metasirkulær
DetaljerInnhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen
Innhold uke 10 Hva bruker vi klasser til? Objektorientert programmering i Python IN1000 Høst 2018 uke 10 Siri Moe Jensen Noen sentrale datastrukturer for programmering lenkede lister trær grafer Eksempler:
DetaljerYouTube-kanal ITGK. Læringsmål og pensum
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen
DetaljerINF2810: Funksjonell Programmering. Strømmer og utsatt evaluering
INF2810: Funksjonell Programmering Strømmer og utsatt evaluering Stephan Oepen Universitetet i Oslo 30. mars 2017 Forrige forelesning 2 Mer om (prosedyre)navn, bindinger, og verditilordning Nok en ny abstrakt
DetaljerINF2810: Funksjonell Programmering. Mengder og lokal tilstand
INF2810: Funksjonell Programmering Mengder og lokal tilstand Stephan Oepen & Erik Velldal Universitetet i Oslo Kvinnedagen, 2013 Forrige gang 2 Dagens dont 3 Del 1 Litt mer om hierarkisk data. Representasjon
DetaljerPensum: fra boken (H-03)+ forelesninger
Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.
DetaljerDrosjesentralen. I-120: Obligatorisk oppgave 2, 2000
Drosjesentralen I-120: Obligatorisk oppgave 2, 2000 Frist Mandag 20. November 2000 kl.10:00, i skuff merket I120 på UA. Krav Se seksjon 4 for kravene til innlevering. Merk krav om generisk løsning for
DetaljerTDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python
TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et
DetaljerSTE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen
HØGSKOLEN I NARVIK Avdeling for teknologi MSc.-studiet EL/RT Side 1 av 3 STE6221 Sanntidssystemer Løsningsforslag kontinuasjonseksamen Tid: Mandag 06.08.2007, kl: 09:00-12:00 Tillatte hjelpemidler: Godkjent
DetaljerArkitektur. Kirsten Ribu Høgskolen i Oslo 10.02.04 10.02.2004 1
Arkitektur Kirsten Ribu Høgskolen i Oslo 10.02.04 10.02.2004 1 I dag Generelt om arkitektur N-lags arkitektur MVC Model View Controller mønsteret 10.02.2004 2 Hva er arkitektur? Oppdelingen av et system
DetaljerKapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy
Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider
DetaljerINF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.
INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell
DetaljerINF3430. VHDL byggeblokker og testbenker
INF3430 VHDL byggeblokker og Innhold Entity/architecture Strukturelle design (nettliste) Generics Configurations Operatorer-Operator prioritet (precedence) Datatyper Bit / IEEE1164 std_ulogic /std_logic
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen
DetaljerTom Røise 24.Mars 2009
Forelesning IMT2243 24. Mars 2009 Tema : Design av programvare Offshore Software Development (se foiler for sist) Hva er målet i designfasen? Generelle steg ved design av programvare Softwarearkitektur
DetaljerLæringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering
1 2 Læringsmål og pensum TDT4110 Informasjonsteknologi grunnkurs: Uke 38 Utvikling av informasjonssystemer Læringsmål Kunne seks faser for systemanalyse og design Kunne femstegs prosedyre for programmering
DetaljerDistributed object architecture
Forelesning IMT2243 6. April 2010 Tema: forts. arkitektur og design av programvare Prosjektstatus Programvarearkitektur Oppsummering fra før påske Distribuerte objektarkitektur MDA - Model Driven Architecture
DetaljerKravspesifikasjon med UML use case modellering. Erik Arisholm 25.02.2009
Kravspesifikasjon med UML use case modellering Erik Arisholm 25.02.2009 Unified Modeling Language (UML) Notasjon som støtter opp under modellbasert systemutvikling objektorientert analyse ( hva systemet
DetaljerPG 4200 Algoritmer og datastrukturer Innlevering 2
PG 4200 Algoritmer og datastrukturer Innlevering 2 Frist: Mandag 21.april 2014 kl 23.55 Utdelt materiale: Se zip-filen innlevering2.zip. Innlevering: Lever en zip-fil som inneholder følgende: PG4200_innlevering_2.pdf:
DetaljerKort om evaluering og testing av It-systemer. Hvordan vurdere, verdsette, velge og teste?
Kort om evaluering og testing av It-systemer Hvordan vurdere, verdsette, velge og teste? Evaluere - Bokmålsordboka Evaluere Vurdere, verdsette, gi karakter for. Vurdere Bedømme, verdsette. Bedømme Dømme
DetaljerKapittel 7 & 8. Kravspesifikasjoner & Data design. Thomas Tjøstheim og Thomas Edvinsen. 20 September Kapittel 7 & 8 p.1/20
Kapittel 7 & 8 p.1/20 Kapittel 7 & 8 Kravspesifikasjoner & Data design Thomas Tjøstheim og Thomas Edvinsen 20 September 2004 Kapittel 7 & 8 p.2/20 Introduksjon Kravspesifikasjoner består av to underdeler:
DetaljerSoftware installasjon og andre ettertanker
Software installasjon og andre ettertanker Stein Jørgen Ryan 25feb05 Software installasjon Alle software produsenter gjør det. Høyst varierende forståelse av hva det er. Hvordan gjøres det i dag (på Windows)?
DetaljerTom Røise 9. Februar 2010
Forelesning IMT2243 9. Februar 2010 Tema : Kravspesifisering : prosessen og produktet Viewpoint en myk tilnærming Pensum : Kap. 6 og 7 i Sommerville, Kravspesifisering Kravspesifisering = arbeidet med
DetaljerOblig 2, SLI250 Et kortfattet analyse og designdokument for skifteregister på nett
Oblig 2, SLI250 Et kortfattet analyse og designdokument for register på nett Harald Askestad haraldas@uio-pop.uio.no 2. oktober 2000 Innhold Innledning 2 2 Systemdefinisjon 2 3 Objektmodell 2 4 Funksjoner
DetaljerINF2810: Funksjonell Programmering. Tilstand og verditilordning
INF2810: Funksjonell Programmering Tilstand og verditilordning Erik Velldal Universitetet i Oslo 1. mars 2018 Forrige gang 2 Kode som trær 3 Ved evaluering oversettes kildekoden i et språk først til et
DetaljerRekursjon og lister. Stephan Oepen & Erik Velldal. 1. februar, Universitetet i Oslo
INF2810: Funksjonell programmering Rekursjon og lister Stephan Oepen & Erik Velldal Universitetet i Oslo 1. februar, 2013 Agenda 2 Forrige uke Scheme Substitusjonsmodellen Blokkstruktur Predikater Kondisjonale
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerProgramvare arkitekturer
Programvare arkitekturer 14. oktober 2001, Tore Berg Hansen, TISIP Kursleksjonene er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonene til eget personlig bruk. Kursdeltakere som ønsker
Detaljer