Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Slides:



Advertisements
Liknande presentationer
Objektorienterad Analys och UML En animation i Powerpoint © Kenneth Norrgård Ingår i studieperioden ”Planering av datasystem” vid Vasa Yrkeshögskola.
Advertisements

OOMPA 2000 Föreläsning 4 Utvecklingsprocessen en översikt. Lite om kravspecifikationer. CRC-kort. XP som exempel på lättviktigare process.
Relationsdatabasdesign
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
1 Medarbetarenkät 2011 • 573 svar. 2 Kön 3 Jag är knuten till en klass, undervisningsgrupp eller barngrupp.
Objektorienterad Modellering Programmering och Analys
1 Välkommen till dagens e-möte –Säkerställ ljud via Meeting > Audio Setup Wizard –Slå av din mikrofon –Stäng av din kamera –Använd funktionen ”Raise hand”
Klasser och objekt.
Next previous XP: varför fungerar det? Något om tentan. Innehåll Introduktion till eXtreme Programming (XP) Varför fungerar XP? Något om tentan Vad ska.
Leif Håkansson’s Square Dancer Rotation
Objektorienterad Realtidsprogrammering
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Systemutvecklingsprocess, hitta objekt och lite Javakodning
Tjänster.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
V E R S I O N N R 1. 2 T A V E L I D É E R I M I L J Ö.
Next previous Refactoring och lite mönster kodade i Java Innehåll Vad är refactoring? Ett större refactoringexempel Några mönster kodade i Java OOMPA 2000.
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
Metoder i java Det finns två typer av metoder i java
Objektorienterad tänkande
MEDELVÄRDE, MEDIAN & TYPVÄRDE
Next previous OCTOPUS en kort repetition Farthållare Objektorienterad Realtidsprogrammering 2000 Objektorienterad Realtidsprogrammering 2000 Föreläsning.
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
Nationell strategi för eHälsa och Socialstyrelsens roll
1 Medarbetarenkät svar. 2 Kön 3 Jag är knuten till en klass, undervisningsgrupp eller barngrupp.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
Modellering med UML
1 Föreläsning 8 Grafik AWT. 2 Grafik Frame använder man för att skapa ett fönster Button använder man om man vill ha en knapp att trycka på Canvas är.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Produktionsplanering
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT Lite OOA/OOD.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Introduktion till DITA
Arv.
TÄNK PÅ ETT HELTAL MELLAN 1-50
Vår metodik för att energieffektivisera Flerfamiljsbostäder
1 onTarget project management TM VÄLKOMNA EFFEKTIV KOMMUNAL E-FÖRVALTNING INKLUSIVE SKOLPORTAL Microsoft och Sigma.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Next previous Mjukvaruprocessen: översikt och repetition. XP: problemformulering. JUnit. Innehåll Allmännt om utvecklingsprocesser från Bruegge kapitel.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
SEO Manager för EPiServer LÅT REDAKTÖRERNA VARA REDAKTÖRER.
1(31) Ett omdiskuterat ämne. Vad är det som händer? 2.
Vaasa Polytechnic1999 / kno / OOA Definiera systemet OOA-Analysdokument - metodöversikt Sid: / Definiera uppgiften A.1.1 Syfte A.1.2Systemdefinition A.1.3Omgivning.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Styrteknik 7.5 hp distans: SFC Introduktion SFC_A:1
Styrteknik 7.5 hp distans: SFC Introduction PLC5A:1 Bilder SFC = Sequential Function Chart Language SFC är ett grafiskt programspråk som används.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
OOMPA 2D1359 & 2D1360 Innehåll UML Olika typer av diagram Att läsa
Riktlinjer Dokumentation Kompetens- utveckling Stödmaterial.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
INFORMATIONSSYSTEM Informationssystem: datoriserat system som stödjer en organisations informationsförsörjning VERKSAMHET avbildar Definitionen alltför.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
BVForum - en genomgång för revisorer Sören Thuresson.
Design av autonoma mobila robotar TNE076 Kursen startar i januari 2004, 5p Finns nu som valbar för ED men andra kan också välja Går över två perioder Institutionen.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Lite OOA/OOD.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
Föreläsning 1 Introduktion till kursen. Algoritmer
PROJEKT Projektkurs - DA7075 VT04.
Föreläsning om RUP RUP – Rational Unified Process
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Ensamutveckling. Systemutvecklingsmetoder Kom ursprungligen från de traditionella ingenjörskonsterna.
Regeringsuppdraget Nationell informationsstruktur för vård och omsorg Monica Winge Socialstyrelsen.
Presentationens avskrift:

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion Objektorienterad Realtidsprogrammering 2000 Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Utvecklingsmetoder ... Problem 70-talet Svårt att utveckla system 80% underhåll Vi vill ha formalism fast enkel och användbar Kommunikation mellan inblandade Många anser att kostnaden för förändring av ett system ökar exponentiellt över tiden. Fast inte säkert sant med dagens metoder. 70-talet Flödesdiagram Strukturerad programmering Top-down, bottom-up och middle-out Flera objektorienterade metoder blev populära på 80-talet och dominerar idag OMT, ObjectOry, Booch, Shlaer-Mellor, Coad-Yourdon ... kostnad Svårt att utveckla system krav design test analys implem- entation produktion Strukturerad programmering Flera metoder

… UML ... Unified Modeling Language UML 90-talet Förening av tre dominerande metoder Booch OMT Objectory ”Standard”, OMG (Object Management Group) med fler än 600 intressenter Mer notation än metod (än så länge) Ej (för) stringent = användbart Det finns möjligheter till vissa egna utvidgningar, bla via så kallade stereotyper UML är de facto standard

Design och utveckling Vilken typ av projekt kan vara avgörande för hur man går tillväga Programmera i det lilla kod skapas av en eller få programmerare. En enskild person kan ha överblick och vara insatt i alla delar av projektet. huvudproblem (mjukvara): designa och utveckla algoritmer Programmera i det stora mjukvaran tas fram av ett stort team. Vissa personer kan specificera eller designa andra kan koda vissa komponenter, slutintegration/applikationen görs kanske av en tredje grupp, osv. Ingen person har möjlighet att sätta sig in alla delar av projektet. Få utvecklare Många utvecklare

Utvecklingsprocess typiskt tillvägangångsätt Kravanalys - beskriv och validera vad systemet skall göra Analys - identifiera systemets struktur så att systemet är enkelt att modifiera om kraven förändras Design - beskriv hur systemet skall realiseras Implementation - implementera systemet och utför enhetstester Testning - verifiera systemet Krav Analys Design Implemen- tation Test

Hitta potentiella aktörer Proceduren Hitta potentiella aktörer Namnge och gör kortfattad beskrivning av varje aktör Begränsa systemet Sammanställ gloslista (så att vi kan enas om vokabulär) För varje aktör: Hitta nödvändiga användningsfall Namnge och gör kortfattad beskrivning av varje användningsfall Granska aktörer och användningsfall och iterera Missade aktörer eller användningsfall? Duplikat? Identifiera gemensamma delar, strukturera modellen, iterera Beskriv varje användningsfall Granska beskrivningarna och iterera Missad eller felaktig funktionalitet? Granska, validera och godkänn modellen

Vad är (objektorienterad) analys? Den tidiga fasen i systemutvecklingen då en abstrakt modell av systemet skapas, utan att gå in på detaljer i den tekniska implementationen En modell av centrala objekt och relationer mellan objekten Analysen utförs utan hänsyn till tekniska lösningar eller begränsningar Syftet är att skapa en förståelse för den verksamhet systemet skall hantera Används som grund för att i en designfas konstruera systemet i detalj och välja teknisk lösning

Analys: vanliga aktiviteter Insamla underlag kravspecifikationer, önskemål, beskrivningar av verksamheten eller befintligt system, intervjuver. Problemdomän definieras Definiera användningsfall dvs hur systemet kommer användas Sök objektkandidater tex mha CRC-kort eller annan brainstormingliknande teknik Klassificera objekt klassnamn, ansvarsområde och eventuellt karaktäristiska attribut och metoder Relationer mellan objekt mha klass- och objektdiagram Slutdokumentation av analysfasen skrivbordstest där olika användningsfall gås igenom, relationer mellan klasser och objekt testas. Valda namn på klasser värderas. Dokumenteras mha grafiska diagram med kompletterande text.

Perspektiv Konceptuellt Specifikations Implementations I detta perspektiv ritar man diagram över koncept i domänen. Dessa koncept avbildas ofta på klasser som implementerar dem, men ofta är så inte fallet. En konceptuell modell ritas med liten eller ingen hänsyn till den mjukvara som skall användas vid implementationen Specifikations I detta perspektiv tittar vi i första hand på gränssnitten för mjukvaran, inte implementationen. Vi tittar snarare på typer än klasser Implementations I detta perspektiv har vi verkligen klasser och implementationen görs tydlig

Processen Påbörjande Utformande Konstruktion Överföring bestäm strategi och mål med projektet kalkylera kostnader konstruera systemet i en serie av iterationer Påbörjande Utformande Konstruktion Överföring samla detaljerade krav och gör analys och design på en hög nivå för att konstruera en grundarkitektur och planera konstruktionen. analysera risker (krav, teknik, skicklighet och politiska) testa, prestandaoptimera, träna användare

Vattenfallsmodellen Traditionell idealiserad modell av utvecklingsprocessen Analys Design Implementation Testning Underhåll

Spiralmodellen Boehms spiralmodell

Utvecklingsprocessen, olika konfigurationer Implementation Kravanalys Design Implementation Testning Kravanalys Analys Design Implementation Testning

Nyare (kontroversiell?) metod för systemutveckling eXtreme Programming (XP), av Kent Beck, inne och hett Tillvägagångsätt (12 grundpelare) Planeringsspel planera snabbt förutsättningarna för nästa release; prioritera, teknikkrav Små releaser släpp nya versioner ofta Metafor hitta en enkel bra metafor Enkel design gör designen så enkel som möjligt Testa testa koden kontinuerligt. Måste lyckas innan utvecklingen går vidare Omstrukturera ("refactoring") strukturera om ofta; ta bort onödig kod, förenkla osv Parprogrammering två programmerare per maskin Kollektivt ägande av koden alla äger och kan ändra i koden Kontinuerlig integration integrera och bygg systemet flera gånger per dag 40-timmarsvecka jobba som regel inte mer än 40 timmar per vecka Inkludera en "kund" i teamet inkludera en "riktig användare" på full tid Följ kodstandard vilket förenklar kommunikation

UML (en kort introducerande översikt) Unified Modeling Language UML är de facto standard används i bla utvecklingsmetoder designmönster Massor av litteratur se tex "standardverken" av Booch, Rumbaugh och Jacobson börja förslagsvis med "The Unified Modeling Language User's Guide"

Vi bryter ner systemet och ser på det på olika sätt Användningsfallsdiagram: Sätt gränser Uppdatera konto Redovisnings- system Analysera risker Chefsförhandlare «uses» Prisför- handla «uses» Värdera Handlare Slut avtal aktör «extends» Försäljare användningsfall Gränserna överskridna

Klassdiagram (Enheter och relationer)

...Klassdiagram (med arv, dvs bla specialiseringar och generaliseringar)

Sekvensdiagram (samarbete mellan delar)

Tillståndsdiagram:

Aktivitetsdiagram (beskriver parallella förlopp) Exempel: "Person::ordna dryck" [inget kaffe] Hitta dryck [ingen cola] [kaffe hittat] [cola hittad] Kaffe i filtret Häll i vatten Hämta koppar Filtret i bryggaren Hämta cola Slå på bryggaren ^kaffepanna.slåPå slå av lampan Brygg Drick Häll upp kaffe

Samarbetsdiagram

Hello world-exempel Javakod för en applet import java.awt.Graphics; class Hello extends java.applet.Applet { public void paint(Graphics g) { g.drawString(”Hallå!”, 10, 10); }

… Hello klassdiagram ... Hello g.drawString(”Hallå!”, 10, 10); paint()

… Hello ... Applet Hello paint() Graphics

… Hello ... ImageObserver Object Component Container Panel Applet

… Hello paketering ... java Hello applet awt lang

… Hello sekvensdiagram ... :Thread :Toolkit :ComponentPeer target:Hello run run callbackLoop handleExpose paint

… Hello komponenter Hello.class Hello.java Hello.html Hello.jpg -----

OCTOPUS-metoden en översikt Objektorienterad Hanterar viktiga problem i realtidssystem som parallellitet synkronisering kommunikation avbrottshantering ASICs (Application-Specific Integrated Circuit), kundanpassad hårdvara på chip hårdvarugränssnitt responstider I huvudsak för icke hårda realtidssystem Utgår från OMT och Fusion

Olika faser, en översikt systemkravfas struktur via kontextdiagram funktionalitet och dynamiskt beteende mha användingsfallsdiagram och användningsfall kan kompletteras med scenarier systemarkitekturfas systemstruktur via delsystemdiagram delsystem analysfas görs för varje delsystem delsystem designfas delsystem implementationsfas

Utvecklingsprocessen: mjukvarusystem Systemkravsfas Användningsfall och kontextdiagram Systemarkitektur Delssystem och gränssnitt Delsystem analys Delsystem analys Hårdvaru- wrapper Delsystem design Delsystem design Delsystem implementation Delsystem implementation Delsystem program Delsystem program Wrapper program Systemprogram