inf-2120 våren 2006 Øystein haugen med hjelp fra marius … · 16-jan-07 inf2120 prosjekt i...
TRANSCRIPT
16-Jan-07 INF2120 Prosjekt i modellering 1
INF 2120
INF-2120 Våren 2006Øystein Haugen med hjelp fraMarius Furulund og Mansur Ali Abbasi
Version 070117
16-Jan-07 INF2120 Prosjekt i modellering 2
INF 2120
Oversikt over denne forelesninga
Hva er INF-2120?Personene bak INF-2120Oversikt over INF-2120 våren 2006– Eclipse– Modellering versus programmering– UML verktøy– Implementasjon og testing– Prosjektoppgaven
Bruk av webEr dette kurset lett?UML 2.0 – og det gjennomgående eksempel
16-Jan-07 INF2120 Prosjekt i modellering 3
INF 2120
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 muligEt kurs der produktet er større enn det dere har vært borti tidligere– sannsynligvis– Size matters!
Et modellerings-kurs– med implementasjon og testing
16-Jan-07 INF2120 Prosjekt i modellering 4
INF 2120
Hva lærer du i INF2120?
Eksekverbare modeller– automatisk kodegenerering – ikke bare skisser
Test/Validering-orientering (konsistens!)– systematikk – ikke ”monkey testing”
Samtidighet (brukere / tjenester / sesjoner)– verden er ikke sekventiell
Robusthet / Pålitelighet– oppe hele tida – ikke stadig starte på nytt
Vedlikeholdbarhet– ny funksjonalitet uten store uoversiktlig endringer i det bestående
16-Jan-07 INF2120 Prosjekt i modellering 5
INF 2120
Øystein Haugen <[email protected]>80-81: UiO, Research assistant for Kristen Nygård
– 81 : IN 105 together with Bjørn Kirkerud81-84: Norwegian Computing Center, Simula-machine84-88: SimTech, typographical applications88-90: ABB Technology, SDL, prototype SDL tool, ATC89-97: SISU project, methodology, V&V, ITU
– 93: Engineering Real Time Systems– 96: Integrated Methodology -> TIMe
96-00: Rapporteur ITU for MSC97: Practitioners’ verification of SDL systems (dr. scient.)97-03: Ericsson, NorARC98-03: Ifi, UiO as Part time Associate Professor
– IN-TIME (1998) IN-RTIMe (1999) IN-RTIMe (2000) INFUIT (2001, 2002)99- : Participates in OMG wrt. UML 2.0
– Responsible for UML 2.x chapter on Interactions04 - : Associate Professor at Ifi (INF2120 and INF5150)
16-Jan-07 INF2120 Prosjekt i modellering 6
INF 2120
Hjelpelærere INF2120 Våren 2007
Marius Furulund <kristf at ifi.uio.no>– Masteroppgave på Simula Research Laboratory: estimering.– gruppelærer i INF1000, INF1010, INF3120, INF5150 og INF2120– Jobber deltid som journalist i Dagbladets sportsredaksjon– Er en ivrig golfspiller i sommerhalvåret.
Mansur Ali Abbasi <mansuraa at ifi.uio.no>– Masteroppgave hos SINTEF : Aspekt-Orientert Modellering– Hjelpelærer i 5 emner ved HIO og INF4120 (Software
Engineering)– Arbeidserfaring innen systemutvikling.
16-Jan-07 INF2120 Prosjekt i modellering 7
INF 2120
INF2120 – en bit av IT-virkeligheten
Den ferdige programvaren vil ha mer enn noen få linjer java-kodeOppdragsgiverne 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 ukjentDe 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 testingMan skal evalueres av likemenn
16-Jan-07 INF2120 Prosjekt i modellering 8
INF 2120
Verktøy-suiten i INF2120
JavaFrame
UML compiler
UML2
pluginSeDi
PATS Oracle
3.0Windows+
Linux
Commercial big, imperfect
open source –our ownexecutable
modeling
UML 2 runtime system
hybrid systems
third party sw: simple interfaces
16-Jan-07 INF2120 Prosjekt i modellering 9
INF 2120
CardAccount
User ATM Bank
1
*
1
*
* 1* *
myAccounts
11
ATM
«include»
«include»
UserBank
Withdrawal
CashRepository
Currency
Authentication
:Bank:User
sd Authenticate
EnterPINref
loop(0,2 )
EnterPINref
Id le
Cardid(cid)
m sg("Try again!")
:ATM
PIN NO K
BankContext
:User [1..10.000] :ATM [1..100] :Bank
sm ATM
:Withdrawal
entry: send(card)
CardOut
:EnterPIN/authN=0
Idle
CardId(cid)
[authN<3]/authN++;send(msg(”Try again”))
/authN=0
[authN==3]/authN=0
send(msg( ”illegal entry”));
nok
ok
cancelledok
:Status
:Service
statusWithdrawal
cardTaken A Use Case Model
Hva vil modellen inneholde?
A Class Model
An Interaction ModelA Composite Structure Model
A State Machine Model
16-Jan-07 INF2120 Prosjekt i modellering 10
INF 2120
Konsistens!
CardAccount
User ATM Bank
1
*
1
*
* 1* *
myAccounts
11
:Bank:User
sd Authenticate
EnterPINref
loop(0,2 )
EnterPINref
Id le
Cardid(cid)
m sg("Try again!")
:ATM
PIN NO K
BankContext
:User [1..10.000] :ATM [1..100] :Bank
sm ATM
:Withdrawal
entry: send(card)
CardOut
:EnterPIN/authN=0
Idle
CardId(cid)
[authN<3]/authN++;send(msg(”Try again”))
/authN=0
[authN==3]/authN=0
send(msg( ”illegal entry”));
nok
ok
cancelledok
:Status
:Service
statusWithdrawal
cardTaken
ATM
«include»
«include»
UserBank
Withdrawal
CashRepository
Currency
Authentication
16-Jan-07 INF2120 Prosjekt i modellering 11
INF 2120
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 detaljerModellering 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
16-Jan-07 INF2120 Prosjekt i modellering 12
INF 2120
FORTRANAlgol Pascal
CNorwegian Computing Center
SIMULA(Nygaard, Dahl)
Xerox PARCSmallTalk (Kay)
AppleMacIntosh
OOA(Yourdon)
Objectory(Jacobsson) Booch
OMT (Rumbaugh)
UML 1.x (Rational/OMG)
SDL-88
MicrosoftWindows
Hoare-logic
CSPHoare Jones
VDMMilnerCCS
LOTOS (ISO)
COBOL
SQL
ER-model
SDL-92 (ITU)
Bell LabsC++
Sun
OODB
JAVA
Broy/StølenFocus
Slik ser vi språkverdenen!
Corba
UML 2.0 (OMG)
SDL-2000 (ITU)
MSC-2000 (ITU) EJB Web services
MSC-92 (ITU)ROOM
(Objectime)
16-Jan-07 INF2120 Prosjekt i modellering 13
INF 2120
The founding fathers
FORTRANAlgol Pascal
CNorwegian Computing Center
SIMULA(Nygaard, Dahl)
Xerox PARCSmallTalk (Kay)
AppleMacIntosh
OOA(Yourdon)
Objectory(Jacobsson) Booch
OMT (Rumbaugh)
UML 1.x (Rational/OMG)
SDL-88
MicrosoftWindows
Hoare-logic
CSPHoare Jones
VDMMilnerCCS
LOTOS (ISO)
COBOL
SQL
ER-model
SDL-92 (ITU)
Bell LabsC++
Sun
OODB
JAVA
Broy/StølenFocus
Corba
UML 2.0 (OMG)
SDL-2000 (ITU)
MSC-2000 (ITU) EJB Web services
MSC-92 (ITU)ROOM
(Objectime)
Conceptual base of OO:Classes with Inheritance,Polymorphism (virtual),Co-routinesGarbage Collection
16-Jan-07 INF2120 Prosjekt i modellering 14
INF 2120
Making OO Popular and Commercial
FORTRANAlgol Pascal
CNorwegian Computing Center
SIMULA(Nygaard, Dahl)
Xerox PARCSmallTalk (Kay)
AppleMacIntosh
OOA(Yourdon)
Objectory(Jacobsson) Booch
OMT (Rumbaugh)
UML 1.x (Rational/OMG)
SDL-88
MicrosoftWindows
Hoare-logic
CSPHoare Jones
VDMMilnerCCS
LOTOS (ISO)
COBOL
SQL
ER-model
SDL-92 (ITU)
Bell LabsC++
Sun
OODB
JAVA
Broy/StølenFocus
Corba
UML 2.0 (OMG)
SDL-2000 (ITU)
MSC-2000 (ITU) EJB Web services
MSC-92 (ITU)ROOM
(Objectime)
Experimental programming:Runtime checksGraphical in/out
Effective programming andEfficient programs:Explicit memory control
16-Jan-07 INF2120 Prosjekt i modellering 15
INF 2120
The Three Amigos
FORTRANAlgol Pascal
CNorwegian Computing Center
SIMULA(Nygaard, Dahl)
Xerox PARCSmallTalk (Kay)
AppleMacIntosh
OOA(Yourdon)
Objectory(Jacobsson) Booch
OMT (Rumbaugh)
UML 1.x (Rational/OMG)
SDL-88
MicrosoftWindows
Hoare-logic
CSPHoare Jones
VDMMilnerCCS
LOTOS (ISO)
COBOL
SQL
ER-model
SDL-92 (ITU)
Bell LabsC++
Sun
OODB
JAVA
Broy/StølenFocus
Corba
UML 2.0 (OMG)
SDL-2000 (ITU)
MSC-2000 (ITU) EJB Web services
MSC-92 (ITU)ROOM
(Objectime)
Visual LanguageAnalysis phaseStandardization
16-Jan-07 INF2120 Prosjekt i modellering 16
INF 2120
Influences on UML 2.0
FORTRANAlgol Pascal
CNorwegian Computing Center
SIMULA(Nygaard, Dahl)
Xerox PARCSmallTalk (Kay)
AppleMacIntosh
OOA(Yourdon)
Objectory(Jacobsson) Booch
OMT (Rumbaugh)
UML 1.x (Rational/OMG)
SDL-88
MicrosoftWindows
Hoare-logic
CSPHoare Jones
VDMMilnerCCS
LOTOS (ISO)
COBOL
SQL
ER-model
SDL-92 (ITU)
Bell LabsC++
Sun
OODB
JAVA
Broy/StølenFocus
Corba
UML 2.0 (OMG)
SDL-2000 (ITU)
MSC-2000 (ITU) EJB Web services
MSC-92 (ITU)ROOM
(Objectime)
Class diagrams,Use Cases
Internal structure(Parts and Ports)Improved State Machines
Structured Sequence Diagrams Improved Components
16-Jan-07 INF2120 Prosjekt i modellering 17
INF 2120
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?
16-Jan-07 INF2120 Prosjekt i modellering 18
INF 2120
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 overviewdiagrams
– constraintssom en del av språket
16-Jan-07 INF2120 Prosjekt i modellering 19
INF 2120
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å EclipseIBM Rational har alltid vært markedsleder på UMLIBM Rational Software Modeler er ikke så godt som det burde være
16-Jan-07 INF2120 Prosjekt i modellering 20
INF 2120
2007: Mer ”agile modeling”
”agile” = kvikk eller tilpasningsdyktig eller grasiøseksekverbare modeller– omtrent fra dag 1
svært stegvis tilnærming– hvert steg vil ha spesifikasjon og eksekverbar modell– hvert steg skal testes
vi bruker ett gjennomgående eksempel– i mange steg– som bør være svært parallelt med prosjektoppgaven– dere kan eksperimentere og eksekvere eksempel-modellene
Hver uke et virkende program!
16-Jan-07 INF2120 Prosjekt i modellering 21
INF 2120
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value: – Individuals and interactions over processes and tools – Working software over comprehensive documentation – Customer collaboration over contract negotiation – Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
16-Jan-07 INF2120 Prosjekt i modellering 22
INF 2120
Prosjektoppgaven 1
Alle prosjektgruppene får samme oppgave– Det lages ny oppgave hvert år.
Det er 3 delleveranser– Drop 0: individuell innlevering: demonstrerbar minstemodell– Drop 1: prosjekt: modell med 2 tjenester for 1 bruker– Drop 2: prosjekt: modell med flere tjenester for mange brukere
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
16-Jan-07 INF2120 Prosjekt i modellering 23
INF 2120
Prosjektoppgaven 2
Prosjektgruppesammensetning:– Studentene plasseres i øvelsesgruppe (av 2 mulige)– Prosjektgruppene trekkes tilfeldig innen hver øvelsesgruppe
Krav til delleveransene– Leveransen er
ett pdf-dokument (Adobe Acrobat)– som skal inneholde beskrivelser med diagrammer og tekst– det skal være mulig å evaluere arbeidet fra dette dokumentet!
én emx-fil (RSM format) av UML2 modellen– Leveransen presenteres ved en presentasjon med videokanon
enten fra pdf-fil eller fra Powerpoint– Kritikken leveres muntlig, men leveres deretter skriftlig på mail
16-Jan-07 INF2120 Prosjekt i modellering 24
INF 2120
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 1Gruppe 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 vurderingerForeleser 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 1Ved dellev. 1 gjøres gjennomgangen i øvelsesgruppeneVed delleveranse 2 gjøres demo etc. i plenumDeltakelse på gjennomgangene er obligatorisk!
16-Jan-07 INF2120 Prosjekt i modellering 25
INF 2120
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.
16-Jan-07 INF2120 Prosjekt i modellering 26
INF 2120
Prosjektoppgaven 5
Hva er juks?– Det er juks hvis deler av en prosjektoppgave er tilnærmet identisk
med en annen gruppesuten at det redegjøres for evt. samarbeid mellom grupper på enkeltproblemerDet 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 opprinnelsenDet er lov å finne løsninger på Internett, men ikke å la være å referereProsjektgruppa skal i alle høve forstå alt hva de har levert!
– Det er juks å være gratispassasjerStudenter som ikke gjør sin del av prosjektoppgaven kan strykes individuelt
16-Jan-07 INF2120 Prosjekt i modellering 27
INF 2120
Prosjektoppgaven 6
Programvare for Rebusløp– Hva er et rebusløp:
Det er flere deltakere, gjerne lag, som disponerer bil/sykkel og mobilStarten går på ett bestemt stedEn deltaker registrerer seg fra mobilen på SMS og får vite hvor starten er.På startstedet sender deltakeren en ny SMS ”first”
– systemet ser etter at mobilen er på riktig startsted– og sender første rebus tilbake på SMS
Deltakeren løser rebusen (som har et sted som svar)– kjører så til stedet og sender en SMS med svaret– om svaret er riktig og mobilen er på riktig sted, returneres neste rebus
Helt til deltakeren er i mål– Programvaren skal også:
gi oppdaterte oversikter over hvor deltakerne er på GoogleEarth der også stillingen står
– Vinneren er den som har kjørt kortest (luftlinje mellom SMS-ene)
16-Jan-07 INF2120 Prosjekt i modellering 28
INF 2120
Prosjektoppgaven 7
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 fra våren 2005
– PATS – Program for Advanced Telecom Serviceswww.pats.no
– Vi kommer til å benyttemotta SMS i et programsende SMS til mobiltelefonposisjonere mobiltelefoner (veldig grovt)virker bare mot mobiltelefoner med Telenor abonnement
– Vi har også en simulator: FakePats
16-Jan-07 INF2120 Prosjekt i modellering 29
INF 2120
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
slik som alle de eksekverbare modellene fra forelesningene dvs. fra utviklingen av det gjennomgående eksempelet
Viktige meldinger sendes ut på kursets e-mail liste
16-Jan-07 INF2120 Prosjekt i modellering 30
INF 2120
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 lettVi 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!
16-Jan-07 INF2120 Prosjekt i modellering 31
INF 2120
Litteratur – Pensum
Det er intet pensum – det er ingen krav til å kunne annet enn det som skal til for å gjøre prosjektet vellykketStø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.
16-Jan-07 INF2120 Prosjekt i modellering 32
INF 2120
ICU – Det gjennomgående eksempelet
beskrevet i UML 2.1og
eksekvert
16-Jan-07 INF2120 Prosjekt i modellering 33
INF 2120
Class Diagramstereotyped class generalizationsignal class
class
16-Jan-07 INF2120 Prosjekt i modellering 34
INF 2120
Composite structure of Collaborationproperty (part)
connector port type of the part (class)
16-Jan-07 INF2120 Prosjekt i modellering 35
INF 2120
Composite Structure of Class class
Property
ConnectorPort
Multiplicity
16-Jan-07 INF2120 Prosjekt i modellering 36
INF 2120
Interaction Diagram – Sequence Diagram
Lifeline
message
Interaction
16-Jan-07 INF2120 Prosjekt i modellering 37
INF 2120
Sequence Diagram – with structure
Combined Fragment
Combined Fragment
Decomposition
16-Jan-07 INF2120 Prosjekt i modellering 38
INF 2120
State Machines
submachinestate
exit point
initial state
final state
decision
transition
state
16-Jan-07 INF2120 Prosjekt i modellering 39
INF 2120
Activity Diagrams
initial node
action node
final node
java code
comment
16-Jan-07 INF2120 Prosjekt i modellering 40
INF 2120
Compile the UML package ICU
16-Jan-07 INF2120 Prosjekt i modellering 41
INF 2120
Execute the trace tool (JFTrace) and ICU appl.
to 2034(Telenor!!!)
16-Jan-07 INF2120 Prosjekt i modellering 42
INF 2120
Hotpos: finding out where you are
to 2034(Telenor!!!)
16-Jan-07 INF2120 Prosjekt i modellering 43
INF 2120
KML: using GoogleEarth to place mobiles