Visjon. Plattformer, utviklingsmiljøer og systemarkitektur. Plattformen, utviklingsverktøyet og systemet. Noen definisjoner

Like dokumenter
Læringsmål. INF1050 dagsorden 14. jan Formålet med prosjektet. Den obligatoriske prosjektoppgaven

Velkommen til. INF Systemutvikling. INF1050 dagsorden 16. jan Læringsmål. Læringskomponenter. Om kurset. o Læringsmål.

Distributed object architecture

Generelt om operativsystemer

Distributed object architecture

AlgDat 10. Forelesning 2. Gunnar Misund

CORBA Component Model (CCM)

Operativsystemer og grensesnitt

Uke 5. Magnus Li INF /

Model Driven Architecture (MDA) Interpretasjon og kritikk

AlgDat 12. Forelesning 2. Gunnar Misund

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen?

Arkitektur. Kirsten Ribu Høgskolen i Oslo

Generelt om operativsystemer

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Arkitektur. Kirsten Ribu Høgskolen i Oslo

Programmering. Carsten Wulff

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Programmeringsrammeverk som kan installeres på Windows Mobiloperativsystem

Eksamen INF

Utvikling fra kjernen og ut

Digital representasjon

Utvikling fra kjernen og ut

Arkitektur. 4 april Mål for forelesningen: Se på kriterier for design, arkitektur av komponent og prosess. Kriterier. Komponenter.

Innholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen.

Distribuert ObjektArkitektur. Faglærer : Tom Røise. IMT3102 Objektorientert systemutvikling 1. OOSU 11.nov 2010

1. Å lage programmer i C++

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Programvare arkitekturer

Utvikling fra kjernen og ut

Hva betyr tjenesteorientert arkitektur for sikkerhet?

Konfigurasjonsstyring

Minnehåndtering i operativsystemer

Tom Røise IMT 2243 : Systemutvikling 1. Forelesning IMT Mars Designfasen i SU-prosjekter : Generelle steg i Designprosessen

"How I hate this damned machine, I wish that I could sell it, It never does what I want it to, But only what I tell it".

Utvikling fra kjernen og ut

Systemarkitektur. INF1050: Gjennomgang, uke 07

INF1050 Systemutvikling

PR november 2009 Programvare, pc-basert kontroll Side 1 av 5

Evaluering av It-systemer i et forvaltningsperspektiv. Drift, vedlikehold og videreutvikling av IT-systemet

Forslag til ny læreplan for informatikk studieretningsfag

Minnehåndtering i operativsystemer

Tom Røise 24.Mars 2009

Altinns nye tjenesteverksted. Lars Vegard Bachmann, produkteier portal og tjenester, Altinn

Strategiske føringer mot 2020 Metodikk. [Finanstilsynet 2.0] Verktøy. Helge Skrivervik mymayday.com as Strategi-workshop 24/9/2015

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner

Introduksjon til fagfeltet

8. FILOVERFØRING. 8. Filoverføring

1. SQL server. Beskrivelse og forberedelse til installasjon

2. HVA ER EN KOMPONENT?

Konfigurasjonsstyring. INF1050: Gjennomgang, uke 11

Anbefaling om bruk av HL7 FHIR for datadeling

Hovedprosjekt. Høgskolen i Oslo data/informasjonsteknologi våren 2011 Forprosjektrapport. K-skjema og ferie kalender

Fri programvare i helsesektoren en realitet! Presentasjon av Enkeltoppgjør

1. Å lage programmer i C++

INF1050 Systemutvikling

Utvikling fra kjernen og ut

Design og dokumentasjon

INF1050 dagsorden 18. april 2007

FDVU-systemer muligheter og begrensninger

K-Nett. Krisehåndteringssystem for Norges vassdrags- og energidirektorat i en beredskaps- og krisesituasjon. av Erik Mathiessen

DRI 2001 Systemutviklingsarbeidet og nettsteder Forelesning

Praktisk bevaringsmetodikk - prosesser, rutiner, metoder, verktøy. v/sigve Espeland

Hovedprosjekt i data ved Høgskolen i Oslo våren 2007

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx av 8

SRD. Software Requirements and Design GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

Forprosjekt gruppe 13

INF1300 Introduksjon til databaser

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

INF5120 Eksamen Løsningsforslag Oppgave 1a,b COMET

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Personec Lønn Personec Lønn Pr

Prototyping. TDT4180, vår Yngve Dahl IDI, NTNU NTNU

Team2 Requirements & Design Document Værsystem

Automatisering av datasenteret

Delt opp i tre strategier: forretningststrategi, organisasjonsstrategi og informasjonstrategi.

Forelesning IMT Mars 2011

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

UiO - Universitetet i Oslo

Moderne integrasjonsarkitektur for B2C og B2E. Steinar Kolnes, Senior utvikler

Utvikling av offentlige tjenester på Internett

Litt administrativt. Informatikk studiet og INF1000. Etter denne forelesningen skal du. INF1000: Grunnkurs i objektorientert programmering

Introduksjon til Eclipse

Litt om Javas class-filer og byte-kode

Grunnleggende testteori. Etter Hans Schaefer

Kap. 10 Systemutvikling System Engineering

IBM InfoSphere MDM Web Reports

Archivematica og AtoM: «State of the art» programvare for digital bevaring og tilgjengeliggjøring

Fri programvare og 3.parts hosting

Utvikling fra skallet og inn

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

ephorte Integration Services (eis) produktbeskrivelse

Datastrukturer og Algoritmer

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Forprosjektrapport gruppe 3

SAP og SOA. av Bjørn Arthur Kvalsvik Løsningsrådgiver SAP Nordic

Brukergrensesnitt og kognisjon - disposisjon

API: Application programming interface, eller programmeringsgrensesnitt

Geomatikkdagene 2018 Stavanger

Prosjektoppgave våren 2007

Transkript:

Plattformer, utviklingsmiljøer og systemarkitektur jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 3 Visjon På en enkel og effektiv måte kunne lage informasjonssystemer som er korrekte og pålitelige er lette å tilpasse nye behov I really hate this darn machine; I wish that they would sell it. It won't do what I want it to, but only what I tell it. - Programmer's Lament oppfattes som brukervennlige ivaretar behovene for sikkerhet og vern av data utnytter maskinvaren ikke har flaskehalser skalerer godt INF102-utvmiljø-1 INF102-utvmiljø-2 Noen definisjoner Plattform Den maskinvare (inklusive datanett) og programvare (utenom det aktuelle systemet) som må være tilstede for å kunne kjøre systemet Plattformen, utviklingset og systemet! inn ut Utviklingsmiljø Programvare som brukes under utvikling og vedlikehold av systemet Utviklings Informasjonssystem Bruker Arkitektur Oppdelingen av systemet i komponenter, samspill mellom komponenter, lokalisering av komponenter i et distribuert miljø. Plattform (programvare) Plattform (maskinvare) INF102-utvmiljø-3 INF102-utvmiljø-4

Hvordan håndtere kompleksitet Divide and conquer (splitt og behersk) Oppdelingsprinsipper o Ulike abstraksjonsnivåer o Ulike perspektiver o Modularisering horisontalt vertikalt (lagdeling) I praksis er disse tre aksene ikke uavhengig av Abstraksjon hverandre. Perspektiv Vi har nemlig arkitekturer, metoder og... Abstraksjon Abstrahere: Legge vekt på det vesentlige og se bort fra det uvesentlige Abstraksjoner må av og til konkretiseres, og da blir det før uvesentlige vesentlig Konkretiseringer kan være manuelle eller automatiske Et høynivå programmeringsspråk arbeider med abstraksjoner! Modularisering INF102-utvmiljø-5 INF102-utvmiljø-6 Perspektiv Modularisering Ta ett problem ad gangen, for eksempel Modell av interesseområdet Modularisering: Å dele opp totalsystemet i et antall samarbeidende programkomponenter (moduler) Utforming av brukergrensesnittet Hvordan gjøre dataene permanente Fordeling av programmene på flere maskiner i et nett Ansvarsforhold i organisasjonen Samarbeidet kan være o mellom likeverdige moduler (horisontal modularisering) o mellom over/underordnede moduler (vertikal modularisering, lagdeling se neste lysark) Samarbeidet bør skje gjennom veldefinerte grensesnitt (OBS: Standarder!) En modul bør ha o sterk kohesjon o svak kobling med andre moduler INF102-utvmiljø-7 INF102-utvmiljø-8

Lagdeling Kompleks programvare bygges gjerne opp i såkalte lag Figur 3-8. En trelags-arkitektur for et informasjonssystem Et bestemt lag benytter tjenester i laget under seg, og yter tjenester til laget over seg En modul skal ligge i kun ett lag Brukergrensesnitt! inn ut En modul skal ikke uoppfordret henvende seg til et overliggende lag Et modul i et overliggende lag o kjenner ikke til innmaten i tjenestene i det underliggende laget o vet bare hvordan tjenesten skal anropes, og hvilket resultat som kan forventes o kan stille krav til tjenestens kvalitet (hvor rask, hvor pålitelig, ) Kjør meg til Ifi! Utviklings Applikasjon Virkelighetsmodell Plattform (programvare) Plattform (maskinvare) Bruker INF102-utvmiljø-9 INF102-utvmiljø-10 Application Programming Interfaces -APIer Informasjonssystemets programmoduler Rutiner fra utviklingsmiljøets bibliotek Databasehåndteringssystem Operativsystem, datanettprogramvare Maskinvare og datanett jf. figur 3-1 API API // Et eksempel på bruk av Java APIet System.out.println( Hallo! ); API Informasjonssystem Plattform programvare Plattform maskinvare Typer av standarder de jure Vedtatt av offisielle standardiseringsorganer o ISO International Organization for Standardization o CEN Comité Européen de Normalisation de facto Allment akseptert, gjennom enighet eller markedstyngde o åpne dokumentasjon offentlig tilgjengelig o lukkede Standardiserte APIer er viktig for portabiliteten! INF102-utvmiljø-11 INF102-utvmiljø-12

Standardiseringsaktørene Internasjonale, offisielle standardiseringsorganisasjoner o ISO International Organization for Standardization www.iso.org o CEN Comité Européen de Normalisation Ideelle organisasjoner o W3C World Wide Web Consortium o Object Management Group o Object Data Management Group o Open Source o Apache Toneangivende produsenter/leverandører o Microsoft o Sun o IBM o Oracle Noen av de viktigste listen er ikke uttømmende! www.cenorm.be www.w3.org www.omg.org www.odmg.org www.opensource.org www.apache.org www.microsoft.com www.sun.com www.ibm.com www.oracle.com Utviklingsmiljø: Et programsystem som bl.a. Utviklingsmiljøer hjelper systemutvikleren med å holde orden på programtekster, kompilerte programmer og testdata forenkler innlegging av kall til rutiner i APIet forenkler kall på kompilator og kjøring av systemet kan generere deler av programkoden ut fra mer abstrakte beskrivelser av systemet INF102-utvmiljø-13 INF102-utvmiljø-14 Figur 3-6. Eksempel et enkelt utviklingsmiljø for Java Mer abstrakte beskrivelser alternativer til programtekst Eksempler: Opptegning av skjermbilde Veivisere med utfyllingsfelter Grafiske modeller (UML, ) OMG arbeider med OMG Model Driven Architecture MDA se http://www.omg.org/mda/ INF102-utvmiljø-15 INF102-utvmiljø-16

Opptegning av skjermbilde Visual J++ Veiviser med utfyllingsfelter MS Access INF102-utvmiljø-17 INF102-utvmiljø-18 Grafiske modeller Figur 3-7. Generell arkitektur for et utviklingsmiljø TAU UML Modelator Upper-CASE Repository, Utviklingsdatabase Lower-CASE Reverseengineering Dokumentasjon Brukersystem INF102-utvmiljø-19 INF102-utvmiljø-20

Hva er CASE? Computer-aided software/system engineering: Systemutvikling med støtte av data som er spesielt tilpasset utvikling og vedlikehold av informasjonssystemer Eller kort og godt: Datastøttet systemutvikling CASE-et har bl.a. følgende funksjonalitet: Fem krav til CASE- 1. Verktøyet må kunne generere mest mulig av systemet fullautomatisk 2. Verktøyet må passe til den oppgaven som skal løses 3. Verktøyet må være en behagelig samarbeidspartner 4. Verktøyet må være basert på aksepterte standarder 5. Bruken må lønne seg! Tar i mot beskrivelser av systemet i form av modeller og tekster Kontrollerer modellenes innbyrdes konsistens Genererer programtekster ut fra modellene INF102-utvmiljø-21 INF102-utvmiljø-22 1. Verktøyet må kunne generere mest mulig av systemet fullautomatisk Verktøy må dekke både nyutvikling og vedlikehold billig produksjon av feilfrie systemer enkel tilpasning av systemet til nye/endrede krav fra omgivelsene større muligheter for prøving og feiling muligheter for prototyping ingen vil fôre et system med opplysninger bare for dokumentasjonens skyld systemet stemmer med dokumentasjonen Nyutvikling Vedlikehold: Tilpassing til til nye nyebehov Tilpassing til til nye nyerammer Retting av av feil feil Mesteparten av ressursene brukes til vedlikehold og tilpassing av eksisterende systemer. Gjenbruk vil bidra til å forsterke denne situasjonen. Kostnadseffektive må derfor dekke både nyutvikling og vedlikehold! INF102-utvmiljø-23 INF102-utvmiljø-24

Systemgenerering Manuelle endringer Lower-CASE Programtekst kompilatorer o.l. Effektivt vedlikehold krever oppdaterte beskrivelser Den eneste realistiske måten å sikre at beskrivelsene stemmer med systemet, er å generere systemet fra beskrivelsene! Men Reverse engineering er en nødhjelp... databasehåndteringssystem operativsystem INF102-utvmiljø-25 INF102-utvmiljø-26 «Reverse Engineering» 2. Verktøyet må passe til oppgaven Her har vi et CASE- har vi noe å bruke det til? Repository, Utviklingsdatabase Brukersystem Reverseengineering Repository, Utviklingsdatabase Brukersystem Gjenvinning av utviklingsdatabasen fra brukersystemet Ambisiøst foretagende! Fullautomatisering i praksis umulig INF102-utvmiljø-27 INF102-utvmiljø-28

Bredde, metodestyrke eller begge deler? Geni Metodestyrke Teknikkorienterte Sterkt metodeorienterte 3. Verktøyet må være en behagelig samarbeidspartner en ved spaken Riktig arbeidsfordeling Verktøyets kontrollfunksjoner må kunne styres Godt brukergrensesnitt Generelle med liten "intelligens" Metoden Hvem skal kunne Metoden? Treskalle Fagidiot Tegne Generalist Faglig bredde CASE-Verktøy INF102-utvmiljø-29 INF102-utvmiljø-30 Standard modellbeskrivelser 4. Verktøyet må være basert på aksepterte standarder Upper-CASE Standard modellrepresentasjoner Repository, Utviklingsdatabase Lower-CASE Nytte Billigere systemproduksjon Billigere vedlikehold Mer tilpasningsdyktige systemer Muligheter for gjenbruk 5. Det må lønne seg! Kostnader Verktøyet Maskinen Databaser osv. Opplæring, tilvenning Reverseengineering Dokumentasjon Brukersystem Designware standard APIer, standard GUI INF102-utvmiljø-31 INF102-utvmiljø-32