Objektorienterad Realtidsprogrammering 2000 Föreläsning 6 OCTOPUS utvecklingsmetod en översikt. Något om kravspecifikationer och systemarkitektur. Några RMI-exempel till
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
Diagram som används i dom olika faserna Tabell 2-1 visar vilka diagram som används i dom olika faserna och abstraktionsnivåerna
Utvecklingsprocessen: delsystem Analys Objektmodell Funktionell modell Dynamisk modell Händelser Klassdiagram Operationslakan Tillståndsdiagram Scenarier Delsystem Design Händelsetrådar Interaktionsmekanismer Objektgrupper Klasskisser Processkisser Meddelandeskisser Delsystem Implementation Klassbeskrivningar Processbeskrivningar Metodbeskrivningar Delsystemprogram
Kravspecifikationsfas I denna fas definieras vad systemet skall göra typiskt infaller mjukvaruspecifikationsfasen efter andra "faser" som tex att bestämma vilken hårdvara som skall användas I OCTOPUS, och i många andra metoder, börjar man med att specificera användningsfall som beskriver hur systemet skall användas man beskriver både externa aktiviteter, tex hur användare använder systemet, och interna, autonoma, aktiviteter I OCTOPUS strukturerar man användningsfallen i ett användningsfallsdiagram (se Awad fig 2-4, s 21)
... I OCTOPUS beskriver man användningsfall på följande tabellform: Se Awad fig 2-5 s 22 för exempel Användningsfall Användningsfallets namn Aktörer Dom som använder detta användningsfall Previllkor Villkor som måste vara uppfyllda innan användningsfallet används Beskrivning Kort beskrivning av användningsfallet, tidsvillkor och möjliga undantag (eng. exceptions) Delanvändingsfall Referenser till ingående användningsfall Undantagshantering Hur reagerar användningsfallet på undantag Aktiviteter Referenser till användningsfall som beskriver aktiviteter som inträffar vid det aktuella användnings- fallets genomförande Postvillkor Villkor som gäller efter användningsfallets genomförande eller vid undantag
... Man kan komplettera tabellen med andra illustrationer, tex UMLs (se föreläsning 2, s 16) I OCTOPUS gör man också ett systemkontextdiagram som visar relationerna mellan systemet och dess omgivning, se Awad fig 2-6 s 23
Systemarkitekturfas Systemet bryts ned på delsystem för att hantera komplexitet och få mer hanterbara enheter utgå från användningsfall och systemkontextdiagram Följ god oo-tradition och gör delsystemen så oberoende av varandra som möjligt Analysera alla delsystem innan design och implementation påbörjas bla för att identifiera gränssnitt och verifiera arkitekturen Undvik att hårdvaran påverkar mjukvarudesignen I OCTOPUS används bla hårdvaurwrappers för att dölja detaljer i hårdvaran, se Awad fig 2-7 s 24
Delsystem analysfas I analysfasen försöker vi göra en konceptuell beskrivnimg av systemet undvik detaljer och konstruktionslösningar Olika delar associeras med varandra, Awad figur 2-8 Vi antar att all bearbetning är momentan och problem relaterade till parallellitet beskrivs senare i designfasen I OCTOPUS (och OMT) pratar man om följande delar i analysen objektmodell-statisk struktur, objekt i domänen, relationer och relevanta attribut funktionell modell-systemets funktionella gränssnitt dynamisk modell-operationer samt reaktiva och realtidsaspekter I UML pratar man om strukturella modeller-som OMTs objektmodeller beteendemodeller-som OMTs dynamiska modeller med inslag av funktionella modeller (samt några nya diagramtyper, tex aktivitetsdiagram)
Objektmodellen OCTUPUS objektmodell beskriver statisk struktur klassdiagram som beskriver klasser och associationer, Awad fig 2-9
Funktionell modell Beskriver funktionella gränssnittet för delsystem Bland annat beskrivs systemets operationer i operationslakan Awad fig 2-10
Dynamisk modell Beskriver operationerna i ett delsystem över "applikationsgränserna", tar hänsyn realtids- och reaktiva aspekter Man analyserar händelser tillstånd undersöker signifikans för händelser och tillstånd kritisk, viktig, möjlig att ignorera, neutral validerar modellen Se fig 2-11 till fig 2-14
Design av delsystem Man analyserar hur objekten interagerar och skapar händelseträd (motsvarar ungefär UMLs samarbetsdigram) Awad fig 2-15 till 2.17 Exempel på implementation från fig 2-17 se listning 2-1 Man grupperar objekten efter om dom kommunicerar synkront eller asynkront med varandra se Awad fig 2-18 samt listning 2-2 respektive 2-3
Mer om analys och design Vi återkommer till kapitel 2 och resten av kapitlen i Awad samt fördjupningar under del 2 av kursen, dvs bla Delsystem designfas Delsystem implementationsfas Då kommer också fler jämförelser med UML och andra tekniker att göras
RMI mer beskrivningar och fler exempel Läs också tutorialen som du hittar på följande adress: http://www.javasoft.com/docs/books/tutorial/rmi/index.html Vi tittar också på dom tre exemplen på följande sida http://www.nada.kth.se/kurser/kth/2D4334/99-00/contents/exempel.html dvs följande: Transport av serialiserat objekt Calbackrutin Meddelandesystem Ingen av exemplen skyddar sina kritiska regioner. Den intresserade kan ju fundera över hur kritiska regioner skall skyddas.