Systemmodellering med SysML SESAM seminarium 2006-05-31 Erik Herzog Ansats Presentation av SysML från två perspektiv Akademiskt Industriellt Bakgrund Översikt Utvärdering Copyright Syntell AB 1
SysML SysML är ett språk speciellt framtaget för systemingenjörens behov Modeller på hög abstraktionsnivå Teknikoberoende Inom OMG Som har begränsad erfarenhet av Systems Engineering Därför har OMG anlitat INCOSE som referensgrupp Tyvärr har man inom INCOSE inte definierat vilka Systems Engineering roller som ska tillfredställas med SysML Sant, det finns en kravspec, men den är ytterst tvetydig Ansats för att skapa SysML Ömsesidiga behov Systemingenjörerna saknar modelleringsverktyg UML verktygsleverantörer söker nya kundgrupper Alltså utökar vi UML med speciella konstruktioner för att stödja Systems Engineering Och köper alla begränsningar som följer med valet av UML Copyright Syntell AB 2
Men Varför kan vi inte modellera system i standard UML? Bra, fråga, hmmm... Vi saknar stöd för representation av textuella krav Det är för komplext, många olika vyer Dåligt stöd för representation av hierarkiska strukturer Löses i och för sig i UML 2... Dåligt stöd för modellering av tidskontinuerliga system Dåligt stöd för fysiska strukturer Dåligt stöd för spårbarhet En blick på UML Uppbyggt av en mängd olika diagramtyper Usecasediagram Activity diagram Class diagram Packages (kataloger) används för administration av specifikationselement Byggs upp av användaren Lös koppling mellan specifikationselement och diagramtyper I princip inga begränsningar hur element kan kombineras på diagram Mål: kod Copyright Syntell AB 3
Vad behöver vi? What views are required for system modelling? (Brian Mar, 1994) Functions Requirements Architecture Test InterTraceability Views Stöd för konfigurationshantering Version och varianthantering SysML omfattning Derived from UML 2 Composite Structure Copyright Syntell AB 4
Requirements Vad tycks om detta? Alla element för kravhantering finns på plats Lika välstädat som mitt skrivbord Ett krav representeras som en unik UML-klass Attributuppsättning definieras per krav Tar mycket stor plats på skärmen Svårt att effektivt hantera stora system Copyright Syntell AB 5
Alternativ för att modellera beteende Context identification Usecasediagram Function oriented Activity diagram Sequence diagram Output oriented Timing diagram Internal states of a Block Statechart diagram Funktionsorienterade alternativ Receive Order Fill Order [order accepted] Ship Order Close Order Object A: Class A Object B: Class B Message Lifeline T <.1 sec Message Send Invoice Invoice Make Payment Accept Payment Self Message Activity diagram Funktioner samt inbördes relationer Interaktion Kausalitet Allokering kan uttryckas med Swimlanes Tidsaxel saknas Kan hantera komplexa beteenden Sequence diagram Funktionalitet och interaktion per fysiskt objekt Implicit allokering av funktionalitet till komponenter Explicit tidsaxel Ej anpassat för komplexa beteenden Copyright Syntell AB 6
Timing Diagram Example Systemstruktur Block används för att definiera systemstrukturer Hardware Software Data Procedure Facility Person Block kan specialiseras för att representera domänspecifika komponenter Copyright Syntell AB 7
Assemblies, Parts, Ports, Connectors & Flows Block Item Flow Port Connector Block diagram example Copyright Syntell AB 8
Parametric Diagram För definition av samband mellan properties för olika systemelement Verification & Validation req burnish sm Burnish test «testcase» «requirement» NHTSASafetyRequirements Text =.. ID = 157.135 <<verify>> Accelerate [count < 200] [Speed=80] Maintain [IBT=100 or d >= 2 km] «requirement» Burnish Initial condition Brake Text = (a) IBT " ID = S7.1 [count=200] Adjust brake Vad saknar här? Copyright Syntell AB 9
Spårbarhet Relationer för att dokumentera Deriverade krav Allokering Verifiering Generell spårbarhet Problem Användaren måste hantera alla vyer manuellt Stark koppling mellan metamodellelement och syntax (visuell presentation) Allokering kan uttryckas med Dependency (pil) Partition in klass-symbol Swimlane Men varje alternativ använder olika metamodellelement Trots att semantiken är ekvivalent SysML utvärdering Har alla nödvändiga element för att modellera ett system Knölig konstruktion arv från UML Kräver en användare med disciplin Dåligt användarstöd för att hålla ordning på diagram och element Framförallt allokeringsinformationen som måste hanteras manuellt Copyright Syntell AB 10
SysML utvärdering Bättre modelleringsstöd än vad som finns i Microsofts standardprodukter God koppling till mjukvaruutvecklingsprocessen Inför för mjukvaruintensiva system! Användning Ersättering inte ett normalt kravhanteringssystem God kapabilitet för modellering Spårbarhet är en svaghet Använd modellelement i designdokumentationen Öppna frågor Är tanken att SysML ska klara kravhantering av komplexa produkter? Kan spårbarhet upprätthållas för en komplex specifikation Vad är ett Block egentligen? En produkt som ska realiseras (BoM) En abstraktion av en produkt (Krav till den organisation som ska realisera produkten) Med UML 2 har OMG fokuserat mycket på semantik Stöd för konfigurationshantering saknas totalt! Copyright Syntell AB 11
Prova på SysML Följande verktyg implementerar i någon mån SysML Artisan Studio Telelogic Tau G2 I-logix Rhapsody Alternativ Ett vanligt UML verktyg + kravhanteringsverktyg CORE från Vitech corporation Kravhanteringsverktyg Copyright Syntell AB 12