Introduktion til SundhedsIT – koncepter og systemer

Slides:



Advertisements
Lignende præsentationer
Anskaffelse af ny teknologi
Advertisements

Notation Oversigt Kapitel 18.
Velkommen til Softwarekonstruktion
Programmeringsparadigmer.
Krav og usecases Larman kap. 5 og 6 (del1) Larman kap del1
Beskrivelsesværktøjer
07 – Kort om OO Introduktion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
NetBeans Installation og brug.
Informationsteknologi B-A, HHX, 2005,
Hvordan man skriver koden.
Tietgen Skolen Kvalitet og kvalitetssikring Review Test.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
03.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Klasser Oversigt, principper og teknikker Kapitel 3.
FEN Diskret matematik/Seminar 3 - proofs 1 Beviser Et bevis er en argumentation, som overbeviser om, at en påstand er sand, påstanden kaldes.
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
07.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Funktioner Oversigt, principper og teknikker Kapitel 7.
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
Objektorienteret programmering
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
13.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Funktionskomponent Oversigt, principper og teknikker Kapitel 13.
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
OOA&D Et Crash-kursus.
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
August 2009 / gtjSAD - analyse I1 Systemanalyse og design Analyse af problemområdet.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Objekter og klasser Rasmus D. Lehrmann DM
Use Case Modellering. En form for requirements engeneering – dvs. fastlæggelse af systemkrav.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
Procestræ under afvikling af cp init login shell cp cp src dest.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Intro Siden sidst: evaluering på opgaver og virtuel kursus Kursussammensætning: forelæsning – læse – arbejde selvstændigt – newsgroup – øvelsestime – aflevering.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
Database.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
 Astrid Lumbye 2002Objektorienteret systemudvikling Begreber i systemudviklingsprocessen Udviklingsmodel Metode Beskrivelsesteknik Værktøj.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Forretningsmodellering 2. Modul Foråret 2008 Nord LBP.
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Abstraktioner.
Simpel test-client (javascript) Session og Application data
Dokumentation.
Dokumentation.
Dokumentation.
Programmering.
Præsentationens transcript:

Introduktion til SundhedsIT – koncepter og systemer Uddybning af enkelte emner fra 1. semester

Dagens gang Præsentation af det kommende semester Objekters adfærd samt opgave Generalisering og mapning samt opgave Aktivitetsdiagram og opgave Beskrivelsesteknikker til operationer og funktioner samt opgave

Præsentation af semesteret ..\index.html

Klasse struktur Flyvende ting Fly Helikopter Landingsbane Start Flyveleder Landing 1 0..*

Adfærd Et objekt kommer ud for lidt af hvert i sit liv: Et SK45:fly bliver lavet, letter, lander, letter, lander, letter og falder ned – Dette er hændelsesforløbet for SK45 Et SK46:fly bliver lavet, letter, lander, letter, lander… 50673 gange … letter og lander og bliver skrottet – Dette er hændelsesforløbet for SK46 Begge objekter tilhører klassen Fly. Reglerne for ”korrekt” / ”mulig” fly opførsel beskrives i et ADFÆRDSMØNSTER for klassen Fly

Adfærdsmønster Adfærdsmønsteret for fly definerer lovlig adfærd for objekter af klassen Fly (alt det som ikke er lovligt er ulovligt ) Adfærdsmønstre beskrives med lovlige tilstande for objekter og med de hændelser som ændrer tilstanden for objekterne til en anden lovlig tilstand lette Fly I luften På jorden lande

Tilstandsdiagrammer I Adfærdsmønstre kan beskrives i tilstandsdiagrammer: Tilstande: Transformationer (her hændelser) I luften lande

Tilstandsdiagrammer II Typiske strukturer i tilstandsdiagrammer: Selektion: I luften På jorden lande Falde ned Skrottet En af flere mulige hændelser

Tilstandsdiagrammer II Typiske strukturer i tilstandsdiagrammer: sekvens: I luften På jorden lande + skrotte Skrottet Hændelser i fastlagt rækkefølge

Tilstandsdiagrammer III Typiske strukturer i tilstandsdiagrammer: iteration: På jorden reparere Hændelser gentages uden Tilstandsskift Eller lette I luften På jorden lande

Tilstandsdiagrammer IV Fødsel Betingelser Død Attributter

Opgave Tegn tilstandsdiagrammer for samtlige klasser Hændelserne er lande melde klar få starttilladelse flyve ind reparere skrotte falde ned Opstil en hændelsestabel

Opgave mapning af generaliseringer Brug mapningsreglerne til at mappe ovenstående strukturer og vurder hvilken der er bedst egnet.

Aktivitetsdiagrammet Formål og notation Bennet kap.5

Aktivitetsdiagrammet (Activity diagram) Formål: Beskrivelse af arbejdsopgaver og forretningsgange Beskrivelse af en funktion eller operation i systemet Aktivitetsdiagrammer er velegnede til at beskrive arbejdsopgaver i de tidlige faser i systemudviklingsforløbet. Forretningsaktivitetsdiagrammer kan være et godt udgangspunkt for definition af use cases. Til beskrivelse af operationer findes der bedre diagrammer! (fx sekvensdiagrammer) Activity diagrams can be used to illustrate different aspects of a system……. Activity diagram are particularly suitable for describing tasks in the early phases of systems development. Business activity diagrams can serve as a starting point for defining use cases. You can use activity diagrams to describe operations, but as you will find out later there are other diagrams which are much more suited for that. For instance sequence diagrams.

Notation Start tilstand Aktiviteter Transitioner Beslutningspunkt Rektangler med runde hjørner Meningsfuldt navn Transitioner Pile med åbne pilehoveder Beslutningspunkt Betingelser Slut tilstand [campaign to add] [no campaign to add] Add a New Client Assign Staff Contact Add New Campaign The diagram uses the Agate case as an example. Agate is an advertising agency.

Notation Svømmebaner Lodrette kolloner Angiver hvilken person, organisation eller afdeling, der er ansvarlig for aktiviteterne i kollonen Record Completion of a campaign Issue invoice Campaign Manager Client Accountant Pay invoice Record client payment

Notation Svømmebaner Lodrette kolloner Angiver hvilken person, organisation eller afdeling, der er ansvarlig for aktiviteterne i kollonen Record Completion of a campaign Issue invoice Campaign Manager Client Accountant Pay invoice Record client payment

Write Chapter Review Chapter Author Printer Typesetter Reviewer Typeset Book Correct Proofs Reset Book Print Book [book complete] [book not complete] Revise Chapter AKTIVITETSDIAGRAMMET Et godt diagram indeholder en enkel notation, der er intuitivt let at forstå. Kompleksiteten i systemudvikling kræver brug af mange forskellige diagrammer, med hvert deres formål

Write Chapter Review Chapter Author Printer Typesetter Reviewer Typeset Book Correct Proofs Reset Book Print Book [book complete] [book not complete] Revise Chapter Plan Chapter Produce First Draft Revise Draft [satisfied] [not satisfied] Add Exercises Add References to Bibliography Write Chapter Detaljeskjul En udbredt metode til at skule mængden af detaljer er nedbrydning af diagrammer, hvor hver nedbrydning har fokus på et delelement, der så beskrives i yderligere detaljer

Øvelse Tegn et aktivitetsdiagram over en patient-indlæggelse og behandling på et sygehus.

Operationsspecifikationer Bennett kap. 10

Operationsspecifikationer Specifikation af operationer er en detaljeret beskrivelse af de enkelte operationer, enten i form af struktureret sprog, formaliserede tabeller eller aktivitetsdiagrammer. Formålet med specifikation af operationer: Fra et analyseperspektiv: Sikring at brugernes behov er forstået. Fra et designperspektiv: Et grundlag for korrekt programmering. Fra et testperspektiv: Test at metoderne gør, hvad de skal.

Operationsspecifikationer Hvornår skal specifikationerne laves ? ”det er vigtigt, at lave alle operationer inden designfasen.” ”ikke før end der foreligger et stabilt klassediagram.” Skal alle specifikationer specificeres? Rumbaugh: ”trivielle” operationer skal ikke specificeres, da de er selvforklarende. Bennett: Alle operationer skal specificeres, af hensyn til fremtidig vedligeholdelse.

Trivielle og ikke-trivielle operationer Ikke trivielle operationer er med mange sideeffekter: Opretter eller sletter objektinstanser Opdaterer attributværdier Opretter eller sletter relationer mellem objekter Foretager beregninger Kalder metoder I andre objektet Trivielle operationer er uden sideeffekter: Forespørger på data uden at ændre noget.

Operationsspecifikationer beskrevet som Kontrakter En service mellem to objekter kan defineres som en kontrakt mellem de aktive objekter. Kontrakter har fokus på input og output. Hvad der sker I metoderne betragtes som en blackbox. Kontrakter har derfor fokus på udførelsen af services, men ignorerer implementering. Black box Output Input

Operationsspecifikationer beskrevet som kontrakter I en kontrakt beskrives, hvordan klient objektet skal opnå en service. En kontrakt kan indeholde følgende punkter: Formålet med operationen. Operationens signatur, herunder returtype Beskrivelse af indre logik. Andre operationer der kaldes. Hændelser der videreføres til andre objekter Attributer, der sættes ved eksekvering af operationen Retursvar ved exceptions (f.eks. forkerte parameter) Ikke-funktionelle krav (fx svartid) Kontrakter er ikke UML-notation eller specifikt objektorienteret

Specifikation af den indre logik To hovedkategorier: Algoritmiske metoder - fokuserer på hvordan operation fungerer Ikke-algoritmiske metoder fokuserer på hvad operationen skal opnå White box Black box

Specifikation af den indre logik Ikke-algoritmiske metoder Beslutningstabeller: En beslutningstabel viser de betingelser, der medfører en bestemt handling Conditions and actions Rule 1 Rule 2 Rule 3 Conditions Is budget likely to be overspent? N Y Is overspend likely to exceed 2%? - Actions   No action X Send letter Set up meeting Beslutningstabeller er velegnede, hvor der er mange forskellige betingelser, der resulterer i forskellige handlinger

Specifikation af den indre logik Ikke-algoritmiske metoder Før- og efterbetingelser: pre-conditions: creativeStaffObject is valid gradeObject is valid gradeChangeDate is a valid date post-conditions: a new staffGradeObject exists new staffGradeObject linked to creativeStaffObject new staffGradeObject linked to previous value of previous staffGradeObject.gradeFinishDate set equal to gradeChangeDate Operationen CreativeStaff.changeGrade() Use case: Change the grade for a member of staff Idéen med før- og efter-betingelser er at specificere: Hvilke betingelser skal være til stede før en operation kan udføres? Hvilken ny tilstand befinder systemet sig i efter at operationen har kørt.

Specifikation af den indre logik Algoritmiske metoder En algoritme beskriver den interne logik i en operation Algoritmiske specifikationer gør brug af kontrolstrukturerne: Sekvens Selektion Iteration Forretningsmæssige regelsæt kan med fordel specificeres ved: Struktureret sprog Pseudokode Aktivitetsdiagrammer

Specifikation af den indre logik Algoritmiske metoder Struktureret sprog Målet er at beskrive den algoritmiske struktur og logik i et program uden, at blive programmeringssprogs specifik. Derfor er det let at skrive og læse. Struktureret sprog anvendes ofte til at præciserer forretningslogik. Eksempel: If client contact is ”Luis” Set discount rate to 5% Else Set discount rate to 2 % End if Do while there are more adverts for campaign Get next advert Get cost for this advert Add to cumulative cost for campaign End do selektion iteration

Specifikation af den indre logik Algoritmiske metoder Pseudo-kode Pseudo-kode er i sprogform tættere på det konkrete Programmeringssprogs syntaks og notation. Målet er at danne et direkte grundlag for implementeringen. Pseudo-kode er derfor typisk en designaktivitet. Eksempel: { while more adverts get advertcost; cumcost = cumcost + advertcost; next advert; }

Specifikation af den indre logik Algoritmiske metoder Aktivitetsdiagrammer Er velegnede til at specificere kompleks algoritmisk logik på grund af den letforståelige grafiske notation. Er en del af UML notationen. Eksempel: Aktivitetsdiagram for CreativeStaff.calculateBonus( )

Opgave Regler for opsigelsesvarsel fra arbejdsgiver: Inden udløb af : Varsel fra arbejdsgiver 5 måneder 1 måned 2 år og 9 måneder 3 måneder 5 år og 8 måneder 4 måneder 8 år og 7 måneder 5 måneder Herefter 6 måneder Vi har en medarbejder-klasse med bl.a. en attribut ansættelsesdato og en operation beregnOpsigelsesvarsel der returnerer et antal måneder for varsel for opsigelse fra arbejdsgiver. 1.Beskriv reglerne i et beslutningstræ 2.Beskriv reglerne i en beslutningstabel 3.Beskriv operationen i struktureret naturligt sprog 4.Beskriv operationen med et aktivitetsdiagram