Magnus Skoog

Relevanta dokument
Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Metoder och verktyg för funktionssäkerhet

Regressionstestning teori och praktik

icore Solutions. All Rights Reserved.

Programvara i säkerhetskritiska tillämpningar

Föreläsning 4 IS1300 Inbyggda system

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Semantic and Physical Modeling and Simulation of Multi-Domain Energy Systems: Gas Turbines and Electrical Power Networks

En digital förändringsresa Jan Longnell, CIO

Kvalitetssäkra ditt projekt med kontinuerlig integration

ALM Live. April 2008 Effektivare projektarbete med Visual Studio 2008

SAST Q1. Som att börja arbeta på ett nytt jobb. Testautomatisera med Modell-baserad testning

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Symptom på problemen vid programvaruutveckling

Creo Customization. Lars Björs

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt,

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Copyright Syntell AB 1

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

HP BSM - Erfarenheter från FMS projektet ComHem Jan Östgren MangE Nordic AB (Med hjälp från Thomas Englund ComHem)

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

RUP - Rational Unified Process

HANTERING AV UPS CX

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Grundläggande Datalogi

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Isolda Purchase - EDI

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Fujitsu Day Göteborg 8 oktober

Den Röda Tråden. Vi kan ta fram arkitekturkrav. Vi kan ta fram arkitektur och design. Vi kan skriva Clean Code KRAV DESIGN IMPLEMENT VISION TEST

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Implementationsstrategier för PLCS

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Tentamen Programmering fortsättningskurs DIT950

Robust och energieffektiv styrning av tågtrafik

Datavetenskap. Beteendevetenskap MDI. Design

ÄNDRING CHANGE T = TILLKOMMER / ADDED V = VAR / WAS U = UTGÅR / DELETED

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Welcome. to the world of Jeeves. Copyright 2011 Jeeves Information Systems AB

Main headline. Affärsvärde till Perstorp AB Headline. mha appar SAPSA IMPULS

Kristina Säfsten. Kristina Säfsten JTH

OFTP2: Secure transfer over the Internet

Vad är speciellt med IT-säkerhet?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

RUP Rational Unified Process. 17 november 2004

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

REGELVERK & HANDBÖCKER

Agil programutveckling

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

G5951 DCS880 Grundläggande handhavande och underhåll

Software Engineering. Agneta Nilsson, PhD MPA Software Engineering Master s Programme

Tillgång till alla globala delar i systemet styrs av denna profil, som i sin tur kopplas till respektive användare.

Application Note SW

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Testramverk och Model based testing med java i praktiken


PFC and EMI filtering

Spekulativ exekvering i CPU pipelining

Tentamen i Objektorienterad modellering och diskreta strukturer

Linköpings universitet 1

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Produktens väg från idé till grav

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

STANDARD. UTM Ingegerd Annergren UTMS Lina Orbéus. UTMD Anders Johansson UTMS Jan Sandberg

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

BIM konceptuell överblick och utblick

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Arkitektur. Den Röda Tråden

Curriculum Vitae - Anders Persson. Anders Persson

Barn och läkemedelssäkerhet

Användargränssnitt för proaktiv störningshantering för utilities

Implementering av Model- Based Testing i LoadRunner

Introduktion ICAO-EASA.

GADD Software en introduktion

The present situation on the application of ICT in precision agriculture in Sweden

Bridging the gap - state-of-the-art testing research, Explanea, and why you should care

Taking Flight! Migrating to SAS 9.2!

ASP.NET Thomas Mejtoft

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Datasäkerhet och integritet

Annonsformat desktop. Startsida / områdesstartsidor. Artikel/nyhets-sidor. 1. Toppbanner, format 1050x180 pxl. Format 1060x180 px + 250x240 pxl.

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Train simulation at VTI. Mats Lidström Björn Blissing

ISO STATUS. Prof. dr Vidosav D. MAJSTOROVIĆ 1/14. Mašinski fakultet u Beogradu - PM. Tuesday, December 09,

Att fastställa krav. Annakarin Nyberg

Generiska konstruktioner. Kursbokens kapitel 13

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

Java Programmer for JDK Developer for Java 2 Platform 2002

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Vad betyder TDD? Test Driven Design?

Roller i mjukvaruprojekt. Åke Liljenberg ake.liljenberg@volvo.com

Configuration Management

Generic type declarations. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Transkript:

Innehåll Introduktion till MBSE SKELDAR NEURON

MBSE Visionen HOST Requirement and trace tool Model Editor Document Generator Documents Simulator Model (s) Code Generator Source Code CM tool Debugger Test and verification Tool Source Compiler, Linker, Loader TARGET Executing Application

MBSE i Skeldar - Vad har åstadkommits?

Bra saker som vi åstadkom (1) + Vi hade ledningens stöd. Detta har inte alltid varit fallet i tidigare projekt. + Man satsade på utbildning och aktivt mentorskap + Common Core(CC) var utgångspunkten. + En integrerad modell-testmetod infördes + En väldefinierad mjukvaruarkitektur med väldefinierade komponenter infördes + Fokus på modellstruktur och version/konfigurationshantering + Vi visade att integrerad utveckling av UML komponenter tillsammans med MATRIXx eller Simulink möjlig + Storskalig systemmodellering + Mjukvarumodellering för de flesta komponenter (ca 20 st i Rhapsody och 5 i MATRIXx) + Kodgenerering av 92% av all kod (76% i Rhapsody, 16% i MATRIXx) av totalt ca 100 000 rader kod i Mfcu. I FscVSM dessutom ca 30 000 rader kod (Rhapsody) + Modelltest direkt i Rhapsody ersatte traditionell unit-test

Mindre lyckat - Metodiken utvecklades under projektets gång - Metodiken anpassades inte till systemutvecklingsprocessen fullt ut - För litet fokus på spårning - För litet fokus på verifiering - Analysmodellen var otillräcklig

Kompositen Kapslar in komponentens klasser Bygger på statisk klassmodell Relationerna skapas automatiskt Går att nästla 1 Hlc_Handler:Au_Hlc_Handler_Type Current_Accepted_Hlc:Hlc_Type Data_To_Bb:Hlc_Handler_To_Bb_Type Execute():void Initialize():void Hlc_Handler Au_Type Msg_Dispatcher 1 Mode_Manager Msg_Dispatcher:Au_Msg_Dispatcher_Type Incoming_Hlc:Hlc_Type Data_From_Bb:Bb_To_Msg_Dispatcher_Type Execute():void Initialize():void 1 Mode_Manager:Au_Mode_Manager_Type Data_From_Bb:Bb_To_Mode_Manager_T... Data_To_Bb:Mode_Manager_To_Bb_Type Execute():void Initialize():void

Beteende modelleras mha tillståndsmaskiner Tillståndsmaskiner används, men vissa begränsningar finns: -Events/Messages/Köer används ej. Istället triggas maskinen av Tick som styrs av Executiven -Ger fullständigt förutsägbar exekvering. Detta betyder tex. att max exekveringstid kan mätas. -Nästlade tillstånd kan användas. Och de flesta andra konstruktioner. -Tillståndsmaskiner kan inte kommunicera direkt med andra tillståndsmaskiner SW Component SampleTime: float Initialize() : void Execute() : void Mode_Manager_States Startup Tick[true] Events are not used. A Tick triggers the transition. Normal A guard, always inside brackets [ ] Guards are defined to return a Bool. Executive

Neuron - Metodikkedja - Erfarenheter

Neuron

Bra saker som vi åstadkom (1) + Fokus på spårning + Fokus på verifiering + Generell informationsmodell + Verktygen hänger ihop

Mindre lyckat - Metodiken utvecklades under projektets gång - Metodiken anpassades inte till systemutvecklingsprocessen fullt ut - Systemmodellen är otillräcklig

Användning av Modeller System/Sub-System Model SSDD Interface Model XML definitions Code interfaces Code (type declarations) ICD Software Requirement Model (CSCI) SRS SW Common Model (CSU) SDD STD STR Target Code Code (for test cases) Component Models (CSC)

Exempel Komponenttest i Rhapsody INIT_TESTS( Checking PAM function ); // set local variables itsabstraction_layer->getreadport(name, inhandle); itsabstraction_layer->getwriteport(name, outhandle); Linking of test cases The test cases are linked to the requirements that it verifies. This is done by drawing a dependincy with the stereotype verify from the test case to the requirement. Linking of test casesevaluation of test suite The last thing that shall be done is: EVALUATE_TEST; This is done to get the test summary.

Simulering, testning, automattestning och leverans av kod Development flows: 1. Develop and test in Rhapsody 2. Postprocess and test on host including measuring of code coverage 3. Delivery of code (check in) 4. Automatic regression test, daily build/daily test on host 5. Formal tests on target 6. Build the code for target HOST Rhapsody+Cygwin (1+ 2) Animate Simulate Test Html-page Code Rhapsody+Cygwin Visual Basic (4) Build tool (6) Load-file PVCS, model PVCS, code Automatic check in Post processed Delivery Code Rhapsody (3) Code Post processed Test Code Test tool (5) TARGET

Testnivåer Test principle SW Class Test Driver Module test 1. Module test 2. Component test 3. Partition test SW Component Port1 Port2 Test Component Port3 Alla tester på host först Initialize Execute Executer Initialize Execute Alla komponenter är passiva. De kan ha beteende definierat i tillståndsmaskiner Alla gränssnitt är väldefinierade i port-modell Testkomponenter på alla nivåer. Implementerade som tillståndsmaskiner Initialize Execute SW Partition Port1 Port2 Port3 Executer Test Partition Initialize Execute

Informationsmodell HOST ICD Document Document Generator XML port definition Exporter XML definitions of ports XML Interface Definitions XML types and information Importer XML types and information Exporter Importer Port Declaration Model uses Common Types and Interfaces Model Rhapsody Models Code Generator Test and verification Tool Source Code Source Compiler, Linker, Loader TARGET Executing Application

Informationsmodellering(1) Gen av kod Import/ Export XML / Rhapsody

Informationsmodellering(2) «partition» partition2 flowport_6:data_6_if flowport_6:data_6_if «Sampling_Port» flowport_0:data_0_if 1 «component» app4:application4 flowport_2:data_2_if flowport_3:data_3_if flowport_3:data_3_if «Buffer» flowport_2:data_2_if 1 «component» app2:application2 flowport_0:data_0_if flowport_5:data_5_if flowport_5:data_5_if «Queuing_Port» flowport_7:data_7_if flowport_7:data_7_if «Sampling_Port» flowport_8:data_8_if flowport_8:data_8_if «Queuing_Port» «Blackboard» «Global» 1 «GDO» Data_0:glob_24 «Global» flowport_0:data_0_if Gen av XML till plattform Gen av port Och modelldata

System Development Using Rhapsody Metodikinnehåll: Dokument System Development Using Rhapsody (SyDRhap) Rhapsody Software Modeling Guide for Component Based Models Rhapsody Software Testing Guide for Component Based Models SysML/UML System Modeling Guide Information modeling and exchange in XML and Rhapsody Automatic Software Testing based on Rhapsody Document Generation Guideline from Rhapsody Using Rhapsody Generated Code and applying to C++ coding Standard Configuration Management using Rhapsody and Dimensions Useful Scripts developed for Rhapsody Skript/Verktyg/Mallar mm Dokumentgenereringsmallar SSDD (Gripen NG) SRS, SDD, STD, IRS (Neuron)

Sammanfattning Införande tar tid. Många är berörda. Ständig förbättring krävs hela tiden Utan visioner kommer man ingenstans! Förändringar blir ofta mer övergripande än man först tror

Nivåer på test/verifiering Metodik Testmetodik Kodtäckningsmetodik Komponent-testmetodik Automattestning Daily build/daily test Integrationstestmetodik Test på target Tillför Komponenttester Täckningsgrad synliggörs Heltäckande Komponenttester Helheten synliggörs Design och test vävs ihop. Kvaliteten ökar Integrationen av komponenter förenklas Hitta kompilatorberoende fel. Hitta realtidsrelaterade problem. Kodtäckning på objektnivå

MMM = Model Maturity Model Detta är en analogi som kan vara bra att jämföra för de som känner till CMM/CMMI. Enligt CMM finns 5 mognadsnivåer: Nivå 1: Hjältenivån. Det finns några få entusiaster som använder modeller. De är som små öar i ett väldigt hav. Nivå 2: Någon/Några börjar beskriva metodkedjor för arbetet och användningen av modellerna. Nivå 3: Metodkedjorna ensas ihop med varandra och de processer som företaget använder för systemutveckling. Nivå 4: Modellanvändningen är integrerad med projektstyrningen. Nivå 5: Optimerad användning av modeller. Kombinationer av verktyg och metodkedjor används på ett optimalt sätt. Lärdom: Försök inte gå för snabbt fram. Det tar flera projekt för att optimera modellanvändningen. Men det krävs framförallt ett långsiktigt mål.