Summary: | In this thesis, we present development and evaluation of a new test driven design method for embedded systems software development. The problem of development speed is one of major obstacles for transferring Test Driven Development (TDD) methodologies into the domain of embedded software development. More specically, the TDD cycle is disrupted by time delays due to code uploads and transfer of data between the development "host" system and the "target" embedded platform. Furthermore, the use of "mock objects" (that abstract away hardware dependencies and enable host system testing techniques) is problematic since it creates overhead in terms of development time. The proposed model, Model-Pipe-Hardware (MPH), addresses this problem by introducinga strict set of design rules that enable testing on the "host" without the need of the "mock objects". MPH is based on a layer principle, "trigger-event-loop" and supporting "target" architecture. The layer principle provides isolation between hardware dependent/independent code. The trigger-event-loop is simply a proxy between the layers. Finally, the developed testing fixture enables testing of hardware dependent functions and is independent of the target architecture. The MPH model is presented and qualitatively evaluated through an interview study and an industry seminar at the consulting company Sigma Technology in Stockholm. Furthermore, we implement tools required for MPH and apply the model in a small scale industry development project. We construct a system capable of monitoring and visualisation of status in software development projects. The combined results (from interviews and implementation) suggest that the MPH method has a great potential to decrease development time overheads for TDD in embedded software development. We also identify and present obstacles to adaptation of MPH. In particular, MPH could be problematic to implement in software development involving real-time dependencies, legacy code and a high degree of system complexity. We present mitigations for each one of these issues and suggest directions for further investigations of the obstacles as part of future work. === I denna avhandling presenteras utveckling och utvärdering av en ny utvecklingsmetod för mjukvaruutveckling i inbyggda system. Långsam utvecklingshastighet ar ett stort hinder för applicerandet av Test Driven Utveckling (eng. Test-Driven-Development,TDD) inom inbyggda system. Mer specifikt, uppstår flaskhalsar i TDD cykeln på grund av koduppladdningar och dataöverföringar mellan utvecklingsmiljö (host) och plattformen för det inbyggda systemet (target). Vidare är användningen av "mock"-objekt (abstraherar bort hårdvaruberoenden for att möjliggöra tester i hostmiljö) kostsamt då implementatering och design av "mock"-objekten förlänger utvecklingstiden. Den förslagna modellen, Model-Pipe-Hardware (MPH), adresserar detta problem genom att introducera strikta designregler vilket möjliggör tester i hostmiljö utan användning av mocks. MPH bygger på en lagerprincip, en så kallad "trigger-event-loop" och en tillhörande hårdvaruarkitektur. Lagerprincipen möjliggör isolering mellan hårdvaru- beroende/oberoendekod medan trigger-event-loopen fungerar som en proxy mellan lagren. MPH presenteras och utvärderas genom en intervjustudie och ett industriseminarium på konsultbolaget Sigma Technology i Stockholm. Vidare implementeras nödvändig infrastruktur och MPH metoden har applicerarts på ett mindre industriellt utvecklingsprojekt. De kombinerade resultaten från intervjuer, seminarium implementering antyder att MPH har stor potential att öka utvecklingshastighet for TDD i inbyggda system. Vi identierar även möjliga hinder föor applicering av MPH i utveckling av inbyggda system. Mer specifikt kan MPH vara problematisk för inbyggda system som innefattar realtidskrav, så kallad "legacy kod" och för system med hög komplexitet. Vi föreslår möjliga lösningar för dessa problem och hur de bör utredas vidare som en del av framtida arbete.
|