Vi har gjort vårt examensarbete på Saab Automobile AB i trollhättan och där varit involverade i ett projekt som heter 3FD (Fast Formal Function Development). Idag är arbetssättet på avdelningen karosselektronik dokumentbaserat d.v.s. Saab skickar sin funktionsbeskrivning till en leverantör som skickar tillbaka en färdig produkt för integrationstest, sedan kan ändringar och produkter skickas fram och tillbaka tills ett produktgodkännande kommer till stånd. I framtiden är det tänkt att Saabs ingenjörer ska hanterar detta själva d.v.s. hela vägen från högnivå modellering till ren nedladdning av kod till mikroprocessorer. Det är också viktigt för Saab att se alla systeminteraktioner i bilen för att lättare kunna byta/ändra funktioner och meddela andra systemhandhavare om så är nödvändigt. Vi har fungerat som en sorts testpiloter och har varit de första att gå igenom hela kedjan med en stor komplex modell. Vi har också givit vår åsikt om processen d.v.s. svårigheter, problem och flaskhalsar mm. Vi har modellerat det Externa ljuset i UML (Unified Modelling Language), där vi tog beskrivningen för varje subfunktion och översatte den till ”use case” diagram. Dessa länkade vi sedan ihop till större paket- eller klassdiagram där vi har försökt att visa alla systeminteraktioner som Externa ljuset påverkar eller blir påverkad av. Från detta klassdiagram har vi modellerat aktivitets och tillståndsscheman i ett program kallat Statemate MAGNUM. I detta program använder man Boolesk algebra för att beskriva funktionen och programmet stödjer både Mealy och Moore notation. Det är också möjligt att programmera subrutiner i C och andra programmeringsspråk. Här blev också modellen grundligt testad och simulerad för att se att funktionaliteten var den önskvärda. Från Statemate MAGNUM blev modellen importerad in i Rhapsody MicroC, vilket är ett program för att generera kod. Här generade vi två körbara filer, en för NT och en för OSEK. Den körbara filen för OSEK har använts på en mikroprocessor tillsammans med annan speciell kod, kod som behövs för att kunna lägga vår modell på en/flera mikroprocessorer och för att skicka/ta emot signaler på CAN bussen. Modellen blev testad virtuellt på flera noder med en CAN buss, detta för att försäkra att den fungerar i en riktig bil. På grund av tidsbrist har det varit svårt att sätta sig in i varje steg i processen tillräckligt. De största problemen har varit att förstå UML med klasser och objekt, detta tror vi beror på vår ovana med ett objektorienterat tankesätt. Vår åsikt är att om Saab ska implementera denna process måste ingenjörerna undervisas i detta. En stor flaskhals som måste lösas är kodgenereringsfasen. Verktygen är inte optimerade för stora komplexa modeller t.ex. mjukvaran för att extrahera XML filer ur Statemate MAGNUM fungerade dåligt och det slutade med att vi fick sitta och skriva dessa för hand vilket är oerhört tidskrävande med stora projekt. Det har också varit svårt att leta efter fel i koden pga. dåliga debugverktyg. Vi tror denna process har potential men det behövs arbete för att putsa till de olika faserna t.ex. möjligheten att flytta en modell automatiskt mellan UMLverktyget och Statemate MAGNUM och därmed slippa mycket av det tidskrävande grundarbetet med signaler och aktiviteter. Finputsning av konfigurationsinställningar och hela kodgenereringsfasen är också ett måste för att spara tid och pengar. Vår åsikt är att utveckling av bilens elsystem med denna metod kommer att bli väldigt kostnads- och tidsbesparande för Saab Automobile AB i framtiden, kanske inte för nästa bilmodell men för de efterföljande.
We have gone through a project called 3FD, which stands for Fast Formal Function Development. It’s a new development process for Saab Automobile AB, where the standards for development of the cars functions are going to change. Instead of a document based development where Saab Automobile AB sends the requested function behaviour to suppliers and then gets the result back for testing, they are going to test and develop the functions themselves. This means that the procedure for it contains the whole chain from high-level construction down to the essential code. It’s also essential for Saab Automobile AB to see all the interactions between the systems in the car. We have been a sort of test pilots and are the first ones to go through the whole chain. We have done a model from high level down to the actual code and then gave our opinions about the procedure. We have developed a model for the Exterior Light in UML, where we have taken each function-behaviour and translated it to use case diagrams. We have then linked those together in a package diagram with classes, where we have tried to display all the system interactions between other systems and the Exterior Light. From this package diagram we have produced the function behaviour model in a program called Statemate MAGNUM, where the activities and states are developed. In this software one can use Boolean language with both Moore and Mealy machines in the activities. It’s also possible to program sub-routines in C or other languages. The model has been simulated to insure that the functions behave as requested. From Statemate MAGNUM the model has been imported to Rhapsody MicroC, which is a code generation program. In this software two executable models have been generated, one with NT as an operation system and one with OSEK as an operating system. The OSEK executable has been used on a micro controller along with other generated code based from the model. This has been done using different tools to translate the model to XML files, which are used to generate code for different nodes in a car. The model has been tested virtually on different nodes with a can bus. This has been done to ensure that it can work on a real car. Because of the short amount of time it has been difficult to understand each step in the process completely. The biggest problems have been to understand the unified modelling language with classes and objects, because we are used to more “function thinking”. If Saab is going to apply this way of process it’s going to be necessary to educate the engineers in UML. Other problems that have to be solved are in the code generation process. The software tools for translating XML files have to be a little bit more optimised for Rhapsody MicroC. We have written many of the XML files by hand and that takes time when the models are big and complex. It has also been hard to search for errors in order to debug the model. We think this process has potential to fulfil its goals but it needs more work tuning the different phases, such as the ability to move the model on to the next stage i.e. move the high level model from UML directly to the Statemate MAGNUM will avoid time consuming basic work. Fine-tuning the configuration and code generation phase could also be a great way to save time and money. We think development of the cars electrical system with this method is going to be very time and cost saving for Saab Automobile AB in the future, perhaps not on the next car model but definitely on forthcoming models.