Abstract
SysML is een visuele modelleertaal die is afgeleid van UML en vooral bedoeld is voor modelgebaseerde ontwikkeling van software-intensieve systemen. De modelleertaal maakt met name de systematische toepassing en documentatie van ontwerplogica mogelijk. Er zijn vier belangrijke drijfveren voor SysML.
Ten eerste probeert het een integrale aanpak te bieden voor alle engineeringdisciplines door een modelleertaal aan te bieden die verschillende engineeringaspecten op een coherente en consistente manier kan visualiseren.
Ten tweede biedt het modellering van eisen en helpt het om deze eisen systematisch te herleiden naar de verschillende systeemontwerpkeuzes.
Ten derde biedt het modelgebaseerde in plaats van documentgebaseerde ontwikkeling (MBSE: model based system engineering).
En last but not least ondersteunt het het co-ontwerpen van software versus mechanische en elektrotechnische aspecten van een systeem. SysML trekt momenteel veel aandacht in domeinen als de auto-industrie, infrastructuurontwikkeling en commando- en besturingssystemen.
Relevantie
Er is een groot aantal toepassingsgebieden waar de functionaliteit en complexiteit van systemen snel toeneemt. Voorbeelden hiervan zijn auto- en luchtvaartsystemen met veel elektronische besturingseenheden die op allerlei manieren met elkaar verbonden zijn. Maar zelfs schijnbaar alledaagse systemen zoals tunnels bestaan tegenwoordig uit veel onderling verbonden technische componenten die integraal moeten worden bestuurd volgens complexe protocollen.
Om met deze toenemende complexiteit om te gaan worden een aantal maatregelen genomen, variërend van standaarden (bijv. AUTOSAR) en componentspecificaties (zoals de Nederlandse “tunnelstandaard”) tot het veranderen van het ontwikkelproces en het gebruik van geavanceerde gereedschapsketens. Al deze inspanningen gaan uit van het idee dat het systeemontwerp is onderverdeeld in abstractielagen. Integratie van al deze functionele bouwstenen is een belangrijke kwestie die vaak een (timing- en prestatie-)analyse vereist van het gebruik van middelen op laag niveau (d.w.z. processors en bussen).
De cursus“Ontwerp van Real-time Software/workshop” richt zich op dergelijke analysetechnieken en hoe ze kunnen worden toegepast in een ontwerpflow. Deze cursus benadert het probleem vanuit een hoog niveau perspectief: systeemontwerp en modellering op basis van requirements. De OMG, de organisatie achter de UML-standaard, heeft profielen ontwikkeld voor deze beide perspectieven; het eerste is Marte (modellering en analyse van real-time en ingebedde systemen), het tweede is SysML (systeemmodelleertaal).
Het is interessant om te zien dat de modelleernotaties van beide standaarden gebaseerd zijn op dezelfde subset van UML (zogenaamde composite structure diagrams). Het voordeel van het gebruik van standaarden, zoals deze van de OMG, is dat het kan helpen om vendor lock-in van methoden en tools te voorkomen. Dit kan worden beschouwd als een nadeel voor organisaties die al vastzitten.
Doelstellingen
De cursus wil een degelijke inleiding geven in de verschillende modelleringstechnieken waaruit SysML bestaat, aan de hand van voorbeelden uit de auto- en infrastructuursector. Bijzondere aandacht wordt besteed aan modelleringssoftware in combinatie met mechanische en elektrotechnische aspecten. De cursus bevat veel klassikale oefeningen die helpen om de theorie te consolideren en de toepassing van de technieken in het dagelijks gebruik te vergemakkelijken. Daarnaast laat de cursus zien hoe tooling kan helpen bij het creëren van een modelgebaseerde workflow, het valideren van het model, het traceren van vereisten en het inspecteren op volledigheid, en het traceren van ontwerpkenmerken en -keuzes naar vereisten. Dit laatste kan van bijzonder belang zijn om de impact van wijzigingen of uitbreidingen van een systeem te analyseren.
Vereisten
De cursus is bedoeld voor software- en systeemingenieurs die betrokken zijn bij de ontwikkeling van software-intensieve systemen. Het wordt sterk aanbevolen dat deelnemers enige kennis hebben van objectgeoriënteerde software-ontwikkelingstechnieken en de bijbehorende notaties (UML), bijvoorbeeld door het volgen van de cursus “Objectgeoriënteerde analyse en ontwerp“.
Casestudies
Indien gewenst kan een van de eigen projecten van het bedrijf worden ingediend als casestudy om te gebruiken als alternatieve/aanvullende oefening tijdens de cursus.
Cursusmodules
Inleiding tot SysML
De belangrijkste drijfveren voor de ontwikkeling van SysML worden uitgelegd en besproken. Er wordt enige informatie over de geschiedenis en achtergrond gegeven.
Eisen vastleggen in SysML
Een belangrijke toevoeging aan de oorspronkelijke UML-taal die in SysML aanwezig is, is het modelleren van requirements. In deze module wordt getoond hoe tekstuele requirements worden gemodelleerd. Belangrijke relaties tussen requirements en tussen requirements en andere modelelementen worden besproken. Een belangrijk aspect van system engineering is de mogelijkheid om requirements te herleiden naar downstream systeemelementen en vice versa. Er wordt besproken en gedemonstreerd hoe deze traceerbaarheid in de praktijk werkt en hoe het kan helpen bij de analyse van de impact van voorgestelde systeemwijzigingen en -uitbreidingen.
Use cases beschrijven en modelleren
Er wordt besproken en aangetoond hoe use cases, en daarin geïmpliceerde scenario’s voor systeemgebruik, kunnen helpen om vereisten op een gestructureerde en begrijpelijke manier te verfijnen. Bij het ontwerpen van een systeem is het belangrijk om vooral aandacht te besteden aan eisen die betrekking hebben op veiligheid en beveiliging. Het eerder genoemde traceren van eisen kan helpen om dergelijke scenario’s te identificeren. Er wordt aandacht besteed aan de relatie tussen use cases en testgevallen.
Systeemstructuur modelleren
In SysML wordt de systeemstructuur gemodelleerd met behulp van blokken met poorten. Poorten kunnen de logische en/of fysieke interfaceaspecten van een systeemblok weergeven. Het op de juiste manier structureren van deze interfaces is een van de belangrijkste kwesties in het systeemontwerp. SysML maakt het mogelijk om interfaces te modelleren die ofwel logisch van aard zijn (software-interfaces die commando’s of gegevens overbrengen) en interfaces die de stroom van fysieke entiteiten ondersteunen (zoals koppel). In de cursus wordt besproken hoe modellering kan worden uitgevoerd op verschillende abstractieniveaus, d.w.z. abstraheren van details van de onderliggende software en hardwareplatforms en op verschillende decompositieniveaus.
Systeemgedrag modelleren
Een goede gedragsmodellering is een essentieel aspect van modelgebaseerde systeemengineering (MBSE). Niet alleen is een gedragsmodel een manier om veel systeemeisen te representeren en te valideren, het is ook belangrijk bij het genereren of bouwen van software-implementaties van systeembeheer. Het is daarom een essentiële link tussen eisen en de realisatie van het systeem. Drie soorten SysML gedragsdiagrammen zullen worden behandeld.
- State Machine Diagrams (eindige toestandsautomaten) vertegenwoordigen gedrag gebaseerd op discrete gebeurtenissen. State machines kunnen ook gebruikt worden om de modellering van zowel discreet als continu gedrag te integreren (bijv. specificatie van continue besturing).
- Sequentiediagrammen helpen om de gedragsspecificaties te herleiden naar use cases.
- Activiteitendiagrammen helpen om flow-achtig gedrag te modelleren.
Modellering voor afruilanalyse
Tot slot biedt SysML modellering van fysieke en logische beperkingen die kunnen helpen bij het afstemmen van systeemparameters om optimaal aan de eisen te voldoen. Het kan helpen om ontwerpalternatieven te vergelijken. De zogenaamde parametrische diagrammen worden behandeld en er worden enkele kleine voorbeelden gegeven.
De SysML systeemmodelleertaal is gespecificeerd en ontwikkeld door de OMG (Object Management Group) en wordt ondersteund door INCOSE (International council for System Engineering).