INF-2120 Våren 2006 Øystein Haugen med hjelp fra Gerhard Skagestein og Ragnar Normann

Like dokumenter
INF-2120 Våren 2005 by Øystein Haugen, Gerhard Skagestein, Ragnar Normann pluss assistentene Knut Johannes Dahle og Gøran Olsen

INF-2120 Våren 2006 Øystein Haugen med hjelp fra Marius Furulund og Mansur Ali Abbasi

INF2120 Prosjektoppgaven Våren 2006

Prosjektoppgave INF2120 Våren 2007: Rebusløp

INF2120 Tools at your fingertips

Øystein Haugen, Professor, Computer Science MASTER THESES Professor Øystein Haugen, room D

DELLEVERANSE 1 INF2120 V06

INF2120 Prosjektoppgaven Våren Et Trafikkoppfølgingssystem. Tjenester. Konkret gjennomføring. (Versjon )

Eclipse og RSM en god IDE?

INF2120. Gruppe 14. Innlevering 1. Våren Joakim Bjørnstad

Introduksjon til Eclipse

DROP 2.

A Study of Industrial, Component-Based Development, Ericsson

INF2120 Prosjektoppgave i modellering. Del 1

Den europeiske byggenæringen blir digital. hva skjer i Europa? Steen Sunesen Oslo,

Software Requirements and Design (SRD) 1 Generelt om dokumenter

buildingsmart Norge seminar Gardermoen 2. september 2010 IFD sett i sammenheng med BIM og varedata

Information search for the research protocol in IIC/IID

Informasjonsarkitektens rolle i smidige prosjekter

INF5120 Modellbasert systemutvikling

DELLEVERANSE 1 INF2120 GRUPPE 12. Jon G. Berentsen Geir A Nilsen Lailuma Arezo

DELLEVERANSE 3 INF2120 GRUPPE 12. Jon G. Berentsen Geir A. Nilsen Lailuma Arezo

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

DELLEVERANSE 2 INF2120 GRUPPE 12. Jon G. Berentsen Geir A. Nilsen Lailuma Arezo

SLUTTRAPPORT. gruppe 42 Nils-Kristian Liborg, Bente Brevig, Tom Olav Bruaas, Eirik Lied og Hege Lid Pedersen. 25. november 2002

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

Hvordan er arbeidsmengden i forhold til omfanget i studiepoeng?

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Syntax/semantics - I INF 3110/ /29/2005 1

INF2270 Datamaskinarkitektur

Velkommen til INF Kompilatorteknikk

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

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

HONSEL process monitoring

Brukerkrav og use case diagrammer og -tekst 19. januar Agenda. Brukerkrav og use case. Diagrammer Tekst.

E-Learning Design. Speaker Duy Hai Nguyen, HUE Online Lecture

GEOV219. Hvilket semester er du på? Hva er ditt kjønn? Er du...? Er du...? - Annet postbachelor phd

INF2270 Datamaskinarkitektur

Elektronisk fakturering mellom bedrifter

verktøyskrin Grafisk profil ved Norges teknisk-naturvitenskapelige universitet

Grunnlag: 11 år med erfaring og tilbakemeldinger

verktøyskrin Grafisk profil ved Norges teknisk-naturvitenskapelige universitet

What is is expertise expertise? Individual Individual differ diff ences ences (three (thr ee cent cen r t a r l a lones): easy eas to to test

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

GeWare: A data warehouse for gene expression analysis

Conference Centre Portal (CCP)

Velkommen til. INF våren 2017

Modellering av brukstilfeller og forretningsprosesser. Kurs i standarder, Oslo, 12. juni 2018

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

Velkommen til BIOS1100

VEIEN TIL ROM: HVORDAN JEG BLE KATOLIKK (NORWEGIAN EDITION)

Kurskategori 2: Læring og undervisning i et IKT-miljø. vår

Fagevalueringsrapport FYS Diffraksjonsmetoder og elektronmikroskopi

The Unified Modeling Language - UML

Public roadmap for information management, governance and exchange SINTEF

Fellesprosjekt: gruppe 214

det offentlige kartgrunnlaget (DOK)

Velkommen til INF Kompilatorteknikk

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Slope-Intercept Formula

INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

Prosjektet Digital kontaktinformasjon og fullmakter for virksomheter Digital contact information and mandates for entities

INF 1050 BRUK AV MODELLERINGSVERKTØYET RATIONAL ROSE

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

Forelesning IMT Mars 2011

Del - leveranse Del 2. Inf 2120 fredag Gruppe 1 Knut Johannes Dahle

FIRST LEGO League. Härnösand 2012

1 User guide for the uioletter package

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

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Distributed object architecture

Emneevaluering GEOV272 V17

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Fra sekvensielt til parallelt

Programmering. Carsten Wulff

Analyse av tillit i elektronisk samvirke

INF5120 Oblig gjennomgang

Datamodellering med UML

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Dynamic Programming Longest Common Subsequence. Class 27

AlgDat 10. Forelesning 2. Gunnar Misund

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

UNIVERSITETET I OSLO

Fra sekvensielt til parallelt

Beskjed fra Skagestein

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

VISUAL HVORDAN DESIGNE KUNDEREISER PÅ TVERS AV ORGANISASJONEN

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

Risikofokus - også på de områdene du er ekspert

BIBLIOTEKARENS TIME. Bakteppe

Fremtiden er (enda mer) mobil

Slides made by Sommerville adapted by Letizia Jaccheri This lecture will be filmed

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

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Transkript:

INF-2120 Våren 2006 Øystein Haugen med hjelp fra Gerhard Skagestein og Ragnar Normann Version 060118 25-Jan-06 INF2120 Prosjekt i modellering 1

Oversikt over denne forelesninga Hva er INF-2120? Personene bak INF-2120 Oversikt over INF-2120 våren 2006 Eclipse Modellering versus programmering UML verktøy Implementasjon og testing Prosjektoppgaven Bruk av web Er dette kurset lett? UML 2.0 fra en insider 25-Jan-06 INF2120 Prosjekt i modellering 2

Hva er INF2120? Et prosjekt-kurs dvs. det er prosjektarbeidet som er i sentrum det er bestått / ikke bestått basert på obligatoriske oppgaver og tilhørende oppfølging Et kurs der prosessen og produktet begge er viktige og hvor læringen skal følge av ønsket om å gjøre prosessen og produktet best mulig Et kurs der produktet er større enn det dere har vært borti tidligere sannsynligvis Size matters! Et modellerings-kurs med implementasjon og testing 25-Jan-06 INF2120 Prosjekt i modellering 3

Personene bak INF2120 Våren 2005 Øystein Haugen (førsteamanuensis) ansvarlig for kurset spesialist på modelleringsspråk og utviklingsmetodikk særlig mhp. sanntidssystemer Gerhard Skagestein (førsteamanuensis) foreleser i og forfatteren av læreboka til INF1050 spesialist på metode (og datamodellering) Ragnar Normann (amanuensis) foreleser i INF3100 spesialist på datamodellering 25-Jan-06 INF2120 Prosjekt i modellering 4

INF2120 en bit av IT-virkeligheten Den ferdige programvaren vil ha mer enn noen få linjer java-kode Oppdragsgiverne har ikke fasiten på det som skal lages! De verktøyene man skal bruke er ikke helt perfekte men det blir jo aldri programvare uansett Den plattformen man skal anvende, er litt ny og ukjent De folkene man skal jobbe sammen med, er ikke bare ens nærmeste venner uenighet er like vanlig som enighet Det ferdige produktet skal faktisk valideres ved testing Man skal evalueres av likemenn 25-Jan-06 INF2120 Prosjekt i modellering 5

Oversikt over INF2120 Våren 2006 Plattform: Eclipse et rammeverk for utvikling av verktøy og andre produkter som går på Windows og på Unix/Linux Modellering versus programmering Vi ønsker å vise litt om likheter og forskjeller UML verktøy IBM Rational Software Modeler som du også kan få tilgang til for å kjøre på egen PC Implementasjon Å få noe til å rulle rundt er gøy Prosjektoppgaven Et overvåkningssystem basert på posisjonering av mobiltelefon 25-Jan-06 INF2120 Prosjekt i modellering 6

Eclipse Se mer på eclipse.org Et rammeverk for programmering Open source av basis Verktøyer som er til salgs bygges på basisen Støttes kraftig av IBM teknisk ved å sette mye folk på utvalgte prosjekter innen Eclipse Brukes av mange pga. den åpne basisen universiteter små firmaer Her på Ifi har Eclipse vært brukt på INF2120, INF5120 og INF5150 i alle fall 25-Jan-06 INF2120 Prosjekt i modellering 7

Modellering og programmering forskjellig? Modellering og programmering har store likhetspunkter og likere og likere blir disse begrepene Tradisjonelt har modellering ofte resultert i beskrivelser som ikke er eksekverbare men det er ikke lenger alltid tilfelle Modellering er oftest forbundet med høyere abstraksjonsnivå kraftigere primitiver mer oversikt enn detaljer Modellering er ofte beskrevet gjennom grafiske språk men det er mer sedvane enn nødvendighet Verktøy for modellering er gjerne ganske dyre men det kan også programmeringsomgivelser være 25-Jan-06 INF2120 Prosjekt i modellering 8

Slik ser vi språkverdenen! Hoare CSP Hoare-logic Milner CCS Jones VDM Norwegian Computing Center SIMULA (Nygaard, Dahl) FORTRAN COBOL Algol Pascal ER-model C Broy/Stølen Focus LOTOS (ISO) SDL-88 SDL-92 (ITU) Microsoft Windows Xerox PARC SmallTalk (Kay) OOA(Yourdon) Objectory (Jacobsson) Booch Apple MacIntosh OMT (Rumbaugh) Bell Labs C++ OODB SQL Corba SDL-2000 (ITU) ROOM MSC-92 (ITU) (Objectime) UML 1.x (Rational/OMG) Sun JAVA MSC-2000 (ITU) EJB Web services UML 2.0 (OMG) 25-Jan-06 INF2120 Prosjekt i modellering 9

The founding fathers Hoare CSP Hoare-logic Milner CCS Jones VDM Norwegian Computing Center SIMULA (Nygaard, Dahl) FORTRAN COBOL Algol Pascal ER-model C SDL-88 Conceptual base of OO: Classes LOTOS with (ISO) Inheritance, Polymorphism (virtual), Co-routines Garbage Collection Broy/Stølen Focus SDL-92 (ITU) Microsoft Windows Xerox PARC SmallTalk (Kay) OOA(Yourdon) Objectory (Jacobsson) Booch Apple MacIntosh OMT (Rumbaugh) Bell Labs C++ OODB SQL Corba SDL-2000 (ITU) ROOM MSC-92 (ITU) (Objectime) UML 1.x (Rational/OMG) Sun JAVA MSC-2000 (ITU) UML 2.0 (OMG) EJB Web services 25-Jan-06 INF2120 Prosjekt i modellering 10

Making OO Popular and Commercial Hoare CSP Hoare-logic Milner CCS Jones VDM Norwegian Computing Center SIMULA (Nygaard, Dahl) FORTRAN COBOL Effective Algol programming Pascal and ER-model Efficient programs: C Explicit memory control Experimental programming: Runtime checks SDL-88 Graphical in/out Broy/Stølen Focus LOTOS (ISO) SDL-92 (ITU) Microsoft Windows Xerox PARC SmallTalk (Kay) OOA(Yourdon) Objectory (Jacobsson) Booch Apple MacIntosh OMT (Rumbaugh) Bell Labs C++ OODB SQL Corba SDL-2000 (ITU) ROOM MSC-92 (ITU) (Objectime) UML 1.x (Rational/OMG) Sun JAVA MSC-2000 (ITU) EJB Web services UML 2.0 (OMG) 25-Jan-06 INF2120 Prosjekt i modellering 11

The Three Amigos Hoare CSP Hoare-logic Milner CCS Jones VDM Visual Language Analysis phase Standardization Norwegian Computing Center SIMULA (Nygaard, Dahl) FORTRAN COBOL Algol Pascal ER-model C Broy/Stølen Focus LOTOS (ISO) SDL-88 SDL-92 (ITU) Microsoft Windows Xerox PARC SmallTalk (Kay) OOA(Yourdon) Objectory (Jacobsson) Booch Apple MacIntosh OMT (Rumbaugh) Bell Labs C++ OODB SQL Corba SDL-2000 (ITU) ROOM MSC-92 (ITU) (Objectime) UML 1.x (Rational/OMG) Sun JAVA MSC-2000 (ITU) UML 2.0 (OMG) EJB Web services 25-Jan-06 INF2120 Prosjekt i modellering 12

Influences on UML 2.0 Hoare CSP Hoare-logic Milner CCS Jones VDM Class diagrams, Use Cases Norwegian Computing Center SIMULA (Nygaard, Dahl) FORTRAN COBOL Algol Pascal ER-model C SDL-88 Internal LOTOS structure (ISO) (Parts and Ports) Improved State Machines Broy/Stølen Focus SDL-92 (ITU) Microsoft Windows Xerox PARC SmallTalk (Kay) OOA(Yourdon) Objectory (Jacobsson) Booch Apple MacIntosh OMT (Rumbaugh) Bell Labs C++ OODB SQL Corba SDL-2000 (ITU) ROOM MSC-92 (ITU) (Objectime) UML 1.x (Rational/OMG) Sun JAVA MSC-2000 (ITU) Structured Sequence Diagrams UML 2.0 (OMG) 25-Jan-06 INF2120 Prosjekt i modellering 13 EJB Web services Improved Components

I INF2120 skal vi benytte UML 2.0 Hvorfor UML 2.0? fordi det inneholder begreper som er hensiktsmessige hvilke det er, kommer på neste slide fordi det er det nyeste modelleringsspråket på markedet og dere studenter blir helt oppdaterte fordi IFI-folk har førstehånds kunnskap om språket og har vært med å utvikle det Hvorfor holder ikke UML 1.x fordi viktige begreper manglet fordi noen av begrepene som var der, var dårlig definert fordi UML 1.x er historie om kort tid Er UML 2.0 det eneste fornuftige valg? Hva gjør Microsoft? 25-Jan-06 INF2120 Prosjekt i modellering 14

Modelleringsbegreper... som du finner i UML 2.0, men ikke i Java use cases associations connectors state machines with triggers and signals, as well as states of various kinds sequence diagrams as well as communication diagrams, and interaction overview diagrams constraints som en del av språket 25-Jan-06 INF2120 Prosjekt i modellering 15

UML verktøy Det finnes mange UML verktøysleverandører IBM Rational, Telelogic, i-logix, Poseidon, Softeam, NoMagic, KennedyCarter,... Det finnes ikke mange komplette UML 2.0 verktøy Se liste på http://www.uml.org/ Vi har vært beta-user av IBM Rational Software Architect og meldt inn 35 feil/mangler bare på sekvensdiagramdelen IBM Rational Software Architect/Modeler går på Eclipse IBM Rational har alltid vært markedsleder på UML IBM Rational Software Modeler er ikke så godt som det burde være 25-Jan-06 INF2120 Prosjekt i modellering 16

Verktøykassa i INF2120 Eclipse med plugin SeDi som er en editor for sekvensdiagrammer IBM Rational Software Modeler et relativt komplett verktøy for redigering har model repository RSM plugin for UML to JavaFrame Transformation oversetter fra et system av tilstandsmaskiner JavaFrame et Java rammeverk - et kjøretidssystem for tilstandsmaskiner SMSPorts et bibliotek med UML og Java for SMS sending og mottak og posisjonering Oracle database 25-Jan-06 INF2120 Prosjekt i modellering 17

Implementasjon og testing Gangen i modelleringen er i INF2120 Spesifikasjon av produktets oppførsel gjennom UML sekvensdiagrammer Design av systemet ved tilstandsmaskiner og datamodeller Implementasjon via direkte kodegenerering til JavaFrame Validering av designen gjennom manuell modelsjekking testing mot implementasjonen 25-Jan-06 INF2120 Prosjekt i modellering 18

Prosjektoppgaven 1 Alle prosjektgruppene får samme oppgave Det lages ny oppgave hvert år. Det er 3 delleveranser Spesifikasjon Design Implementasjon/Validering/Test Gruppene skal evaluere hverandre kursledelsen vil også evaluere prosjektene Alle delleveranser skal presenteres og kritiseres offentlig Prosjektgruppestørrelse gruppene settes opp med 4-5 personer om en gruppe blir på 2 personer pga. frafall, fusjoneres den 25-Jan-06 INF2120 Prosjekt i modellering 19

Prosjektoppgaven 2 Prosjektgruppesammensetning: Studentene velger selv øvelsesgruppe (av 2 mulige) Prosjektgruppene trekkes tilfeldig Krav til delleveransene Leveransen er ett pdf-dokument (Adobe Acrobat) som skal inneholde beskrivelser med diagrammer og tekst én zip-fil med modellene Leveransen presenteres ved en presentasjon med videokanon enten fra pdf-fil eller fra Powerpoint Kritikken leveres muntlig, men leveres deretter skriftlig på mail 25-Jan-06 INF2120 Prosjekt i modellering 20

Prosjektoppgaven 3 Ved delleveranse 1 skal gruppe 2 evaluere gruppe 1 osv. Direkte etter gruppe 1 sin presentasjon, vil gruppe 2 stille kritiske spørsmål som skaper en diskusjon med gruppe 1 Gruppe 2 sender sine kommentarer til Gruppe 1 på mail i etterkant (med Cc til hjelpelærer og foreleser) Så gir hjelpelærer og foreleser sine vurderinger Foreleser gir så en tentativ karakter som altså er uformell og ikke teller såsant den er en ståkarakter Noen enkeltstudenter blir plukket ut til å presentere for foreleser Dette er en sikkerhetsventil for å unngå gratispassasjerer Ved dellev. 2 snur vi evalueringen slik at gruppe 1 evaluerer gruppe 1 Ved dellev. 1 og 2 gjøres gjennomgangen i øvelsesgruppene Ved delleveranse 3 gjøres demo etc. i plenum Deltakelse på gjennomgangene er obligatorisk! 25-Jan-06 INF2120 Prosjekt i modellering 21

Prosjektoppgaven 4 Krav til den enkelte student Han/hun skal delta i prosjektgruppe Han/hun skal delta på lik linje med de andre i gruppa uansett om vedkommende er deltidsstudent Han/hun skal kunne alle detaljer i den felles besvarelse slik at vedkommende skal kunne eksamineres i dette av kursledelsen Han/hun skal trekke seg om han/hun ikke kan fylle disse kravene Krav til den enkelte prosjektgruppe Prosjektgruppene skal sette opp sin egen organisering Prosjektgruppene velger 1 kontaktperson som er ansvarlig for all kommunikasjon med kursledelsen Prosjektgruppene skal motta veiledning av gruppelærer Delleveransen skal leveres på tid! Utsettelser gis IKKE. 25-Jan-06 INF2120 Prosjekt i modellering 22

Prosjektoppgaven 5 Hva er juks? Det er juks hvis deler av en prosjektoppgave er tilnærmet identisk med en annen gruppes uten at det redegjøres for evt. samarbeid mellom grupper på enkeltproblemer Det er lov å samtale mellom gruppene, men jobb selvstendig! Det er juks hvis deler av en besvarelse er tilnærmet identisk med resultater funnet på Internett uten at det er referert til opprinnelsen Det er lov å finne løsninger på Internett, men ikke å la være å referere Prosjektgruppa skal i alle høve forstå alt hva de har levert! Det er juks å være gratispassasjer Studenter som ikke gjør sin del av prosjektoppgaven kan strykes individuelt 25-Jan-06 INF2120 Prosjekt i modellering 23

Prosjektoppgaven 6 JegSerDeg et privat overvåkningssystem Basaltjeneste: Man registrerer seg ved en dertil egnet SMS til PATS-laben Systemet posisjonerer personene jevnlig Man kan se hvor personene er på GoogleEarth Denne basale tjenesten har jeg modellert allerede den fungerer som eksempel og gis ut slik at dere kan eksperimentere med den om dere vil det 25-Jan-06 INF2120 Prosjekt i modellering 24

Den basale tjenesten 25-Jan-06 INF2120 Prosjekt i modellering 25

Prosjektoppgaven 7 Tjenester: Forbedret basaltjeneste Man kan også melde seg av (:-) Man kan melde seg temporært av og på posisjoneringstjenesten Buddy lists I stedet for at det er 1 haug med registrerte personer, defineres buddylister Hot-spots Legger til en tjeneste som heter hotspot. Ved hotspot-tjenesten legger man til navn på steder, slik at kjente punkter blir identifisert. Varsling hotspots En spesiell samling hotspots kan være de man vil bli varslet om man er i nærheten av. Et naturlig tilfelle av slike hotspots, er fartsbokser. 25-Jan-06 INF2120 Prosjekt i modellering 26

Prosjektoppgaven 8 Kan vi få dette til å virke på ordentlig? Vi har tilgang på et eksperimentelt tele-opplegg som gjør det mulig å få utført flere vanlige og uvanlige teletjenester fra våre datamaskiner Vi benyttet dette opplegget i INF5150 fra høsten 2004 og INF2120 våren 2005 Det dreier seg om PATS Program for Advanced Telecom Services www.pats.no Vi kommer til å benytte motta SMS i et program sende SMS til mobiltelefon posisjonere mobiltelefoner (veldig grovt) virker bare mot mobiltelefoner med Telenor abonnement 25-Jan-06 INF2120 Prosjekt i modellering 27

Bruk av Web og e-mail i INF2120 Vi kommer til å bruke Web i dette kurset på standard måte Forelesningsplanen er sentral den kan bli endret underveis pga. uforutsette hendelser Forelesningenes foiler legges ut i pdf-format forhåpentligvis i forkant Viktig informasjon skal forefinnes på Web Viktige meldinger sendes ut på kursets e-mail liste 25-Jan-06 INF2120 Prosjekt i modellering 28

Er dette kurset lett? Vi håper dette kurset først og fremst er inspirerende morsomt lærerikt nyttig... og da kan man ikke regne med det er lett Vi tror det blir mye arbeid en del tukkel og heft med verktøy etc. som ikke virker helt ikke helt glattslikka (bl.a. fordi det alltid er et nytt prosjekt) Vi ønsker kontinuerlig tilbakeføring på alle plan! 25-Jan-06 INF2120 Prosjekt i modellering 29

Litteratur Pensum Det er intet pensum det er ingen krav til å kunne annet enn det som skal til for å gjøre prosjektet vellykket Støttelitteratur: Skagestein, G., Systemutvikling - fra kjernen og ut, fra skallet og inn. 2005, Kristiansand: Høyskoleforlaget AS. 486 sider (ISBN 8276346715) Rumbaugh, J., I. Jacobson, and G. Booch, Unified Modeling Language Reference Manual, The (2nd Edition). ADDISON- WESLEY OBJECT TECHNOLOGY SERIES. 2004: Pearson Education. 736 sider (ISBN 0321245628) Haugen, Ø., B. Møller-Pedersen, and T. Weigert, Structural Modeling with UML 2.0, in UML for Real, L. Lavagno, G. Martin, and B. Selic, Editors. 2003, Kluwer Academic Publishers: Boston. p. 53-76. 25-Jan-06 INF2120 Prosjekt i modellering 30

UML 2.0 et superkort innblikk litt om hva UML 2.0 er til forskjell fra UML 1.x 25-Jan-06 INF2120 Prosjekt i modellering 31

Class Diagram ACSystem Console class aggregation Authorizer 1 1 AccessPoint * controls 1 1 1..2 1 controls governsaccess * Panel Door * 1 access AccessZone * * User * * multiplicity role association navigability 25-Jan-06 INF2120 Prosjekt i modellering 32

Class Diagrams generalization generalization User Supervisor NewUser 25-Jan-06 INF2120 Prosjekt i modellering 33

Composite structure of Collaboration property (part) ACContext 0..* :User 1..* :Supervisor :ACSystem 0..* :NewUser connector 25-Jan-06 INF2120 Prosjekt i modellering 34

Composite Structure of Class class ACSystem outp inp e 0..100 ap: AccessPoint 1..5 c: Console e inp outp d v v unlock, lock isopen, isclosed :Authorizer Information flow Port Connector Property 25-Jan-06 INF2120 Prosjekt i modellering 35

Interaction Diagram Sequence Diagram sd GivePIN Lifeline Interaction :User :ACSystem msg("give your PIN!") Digit Digit Digit message Digit 25-Jan-06 INF2120 Prosjekt i modellering 36

Sequence Diagram with structure sd EstablishAccess(String txt) Interaction Use :User :ACSystem ref AC_EstablishAccess(txt) Idle Decomposition Cardid Combined Fragment ref loop(0,3) GivePIN msg("try again!") Continuation Combined Fragment alt ref GivePIN msg(txt) PIN NOK PIN OK 25-Jan-06 INF2120 Prosjekt i modellering 37

Interaction Overview Diagram sd OverviewDiagram lifelines User, ACSystem ref EstablishAccess("IllegalPIN") Interaction Use sd User AC System CardOut Interaction [PINok] sd User Mesg("Please Enter)" AC System ref OpenDoor 25-Jan-06 INF2120 Prosjekt i modellering 38

State Machines goldenentry entry point sm GivePIN send(code(cid,pin)) send(msg("give your PIN!")); n=0 enterdigit [n==4] digit/ send(code(cid,pin)) waitcommand [n<4]digit/ n++ givepin/send(msg("pin:")) Cardout exit sm Panel NoCard Cardid(cid) exit point goldcard(cid,pin) substatemachine H goldenentry OneCard: GivePIN exit msg(t)/send(msg(t)) 25-Jan-06 INF2120 Prosjekt i modellering 39

Activity Diagrams Provide Required Part Standards Engineer Design Engineer [part found] [async] [async] Clarify Requirements Expert part search [part not found] Assign standards engineer Review Requirements Specify part mod workflow Schedule part mod workflow [reschedule] [OK] Review Schedule [cancel] [async] [async] Execute part mod workflow [accept] Research production possibility [reject] Provide addt l part mod info 25-Jan-06 INF2120 Prosjekt i modellering 40

What are the improvements? More unified conceptual base Composite structures of properties used in Classes, Collaborations and (indirectly) Interactions More unified semantics higher precision (?) Improved expressiveness Executable UML is not far away code generation (complete) simulation validation test generation 25-Jan-06 INF2120 Prosjekt i modellering 41

What are the shortcomings? There is no concrete syntax for the actions this means that it is awkward to make standard examples one needs to apply either a subset of programming language or a proprietory action language Metamodeling is not the best way to describe languages experience shows that not even experts can do it right There is no common formal semantics for the behavior there is, however, a common execution model There are too many semantic variation points such that nobody really knows what the meaning is Use Cases should be better integrated with the rest it is very much a standalone part of the language The Instance Model could be improved in fact it should be harmonized with the rest The language is too big to have effective competition and the tools may not be good enough 25-Jan-06 INF2120 Prosjekt i modellering 42