Hur vet du vilken kvalitet koden dina konsulter skriver håller?

Hur vet du vilken kvalitet koden dina konsulter skriver håller?

Ja, hur kvalitetssäkrar du dina miljoninvesteringar i programkod? Väldigt många produktutvecklingsprojekt drivs helt eller delvis av inhyrda konsulter. Kostnaderna för dessa är tydliga.
De är inne i projekten en begränsad tid, och sedan kanske inte tillgängliga mer för dig. Vad händer sen? När de lämnat över projekt, kod och dokumentation (och faktura), står du då med de körda systemtesterna som enda bevis på att koden fungerar och därmed klarar acceptanskriteriet?

Eller, har du också säkerställt att koden du betalt dyra pengar för är:

  • möjlig för andra programmerare att underhålla och vidareutveckla, dvs bl.a. väl dokumenterad och skriven i enligt en vettig kodningsstandard?
  • fri från dolda fel?
  • robust och tål återanvändning?
  • cybersäker?
  • har en ren och tydlig arkitektur?
  • enkel att testa?

Drar din nya bil 1 liter eller 10 liter per mil?

Såvida ditt projekt inte är av typen engångsleverans, så är det sannolikt så att ditt företag kommer att göra många uppdateringar och tillägg under lång tid framöver. Det betyder att investeringen i produkten till största delen görs efter första release, och under lång tid av flera olika personer. Olika undersökningar visar att kostnaden för det fortsatta underhållet kan variera stort (1-10ggr) beroende på den interna kodkvaliteten, dvs de ovan listade egenskaper i koden som du inte kan testa utifrån i ett systemtest. Sådana egenskaper brukar ha otympliga namn som underhållbarhet eller ”maintainability”. Kostnaden för dålig maintainability är att en programändring tar flera gånger längre tid att göra än i en kodbas med god maintainability.

Summerar vi då dessa två faktorer
a) största investeringen i en produkts mjukvara görs under dess livstid efter första release
b) kostnaden för underhållet beror väldigt mycket på ”maintainability” kvaliteten.

så förstår man snabbt att det är riktigt dålig ekonomi att inte göra allt för att kräva bevis på att den kod som du betalt för, har just god ”maintainability”. Eller, för att använda en simpel metafor, har du just köpt dig en bil som drar 1 liter eller 10 liter per mil?

Vilka bevis kan jag kräva?

Som tur är finns hjälpmedel och mätetal för att kontrollera olika aspekter på ”maintainability” och kodkvalitet. Några saker du relativt enkelt kan kontrollera är t.ex

  • frihet från defekter och en bra kodningsstandard, dvs det som kan kontrolleras med statisk kodanalys
  • kodens komplexitet, dvs hur testbar den är
  • coupling och cyclicality, dvs hur väl arkitekturen gjorts modulär och därmed återanvändningsbar.

Om du konsekvent använder dessa teknologier, så lägger du en kvalitetsribba för dina projekt som du kan kräva ska klaras av både interna och externa resurser. Det kommer att i framtiden spara dig mycket pengar i att slippa re-factoring eller att helt skriva om gammal kod.

Vidare läsning:
“The Economics of Software Quality” av C. Jones/O. Bonsignour, Addison-Wesley.
“Building Maintainable Software” by Joost Visser, O’Reilly Media Inc., 2016.
“Faster issue resolution with higher technical quality of software”, Software Quality Journal, 2011.

Teknologier som kan hjälpa dig:
– Statisk kodanalys, t.ex CodeSonar
– Arkitekturanalys med beroendematriser, t.ex Lattix
– IP säkerhet t.ex Achilles test

Enhetstest nu certifierad för säkerhetskritiska projekt

Enhetstest nu certifierad för säkerhetskritiska projekt

Cantata 8.0 automatiserar enhets- och integrationstest och gör det enklare att testa C/C++ i inbyggda miljöer. Cantata har certifierats av SGS-TÜV Saar som “användbar för utveckling av säkerhetsrelaterad programvara” upp till högsta säkerhetsintegritetsnivåer för alla huvudsäkerhetsrelaterade standarder:

  • IEC 61508: 2010 (allmän industriell)
  • ISO 26262: 2011 (fordonsindustrin)
  • EN 50128: 2011 (järnvägar)
  • IEC 60880: 2006 (kärnkraft)
  • IEC 62304: 2006 (medicinsk utrustning)

Bättre kravhantering för säkerhetskritiska projekt

Bättre kravhantering för säkerhetskritiska projekt

VisureKravverktyget Visure Requirements är kraftfullare och snabbare än någonsin.

Verktyget innehåller inbyggda projektmallar baserade på årtionden av användning i reglerade miljöer. Dessa mallar ger en initial konfiguration av Visure Requirements, plugins och rapporter för följande processer och standarder:

  • Flyg och försvar: DO-178B / C och DO-254
  • Fordon: ISO 26262 och Automotive SPICE
  • Medicinska apparater: IEC 62304 och FMEA
  • Järnväg: CENELEC EN 50128 och FMEA
  • Agile: SCRUM
  • System Engineering

Version 4.9 har över 35 nya funktioner och förbättringar, bland annat en helt ny Word-export! Tilläggsmoduler för kvalitetskontroll av kravtext och synkronisering med Atlassian Jira är andra saker som förbättrar kravkvalité och spårbarhet.

Vill du veta mer eller utvärdera, kontakta Joakim Nilsson på tel: 040-59 22 08 eller joakim.nilsson@nohau.se

Penetrationstest visar på svagheter i dina inbyggda system

Penetrationstest visar på svagheter i dina inbyggda system

Hur säker är din produkt mot manipulation av olika slag? Vår tjänst hjälper dig analysera olika attackvektorer t.ex portar, kryptering, firmware resistance, mekanisk påverkan, JTAG, HMI, SW security.

Följ länken för att läsa hur vi analyserade en smart elmätare. Kanske kan vi göra något liknande för er?
Kontakta Mikael Johnsson på tel: 040-59 22 01 eller mj@nohau.se

Få aktörer och höga krav på flygsidan

Få aktörer och höga krav på flygsidan

“Svårigheten ligger istället i extremt hårda krav på hur systemen utvecklas och hur man säkerställer att processer efterföljs – allt från kravställning, implementation och verifiering måste hänga ihop. I slutänden måste man bevisa för luftfartsmyndigheterna att det också gör det!” Berättare Markus Ekdahl från Syncore Technologies AB.

Syncore är även en av få på den Svenska marknaden som arbetar och utvecklar mjukvara enligt DO-178 för luftburna system.

Läs om Markus syn på olika standarder och verktyg…

Segger släpper ett toolkit som ger möjlighet för IoT-enheter att interagera med molnbaserade tjänster, som AWS, Azure, Dropbox, Twitter, Xively m.fl.

Segger släpper ett toolkit som ger möjlighet för IoT-enheter att interagera med molnbaserade tjänster, som AWS, Azure, Dropbox, Twitter, Xively m.fl.

Segger tillhandahåller allt för att bygga smarta inbäddade lösningar för IoT via ett REST API. IoT omfattar idag ett brett utbud av smarta anslutna enheter och funktioner. Det innebär att ett brett spektrum av inbyggda programkrav måste uppfyllas när utvecklare väljer sin IoT-lösningspartner.

IoT Toolkit innehåller en http-klient och en JSON-parser och har designats från grunden för resursbegränsade inbyggda system. Det fungerar ovanpå en IP-stack och kan tillämpa TLS, om så krävs.

Penetrationstest visar på svagheter i dina inbyggda system

Penetrationstest visar på svagheter i dina inbyggda system

Hur säker är er produkt mot hackerattacker? Vi kan nu hjälpa er säkra era uppkopplade system genom utförliga tester och förslag på förbättringar. Genom ett samarbete med NCC Group, som har genomfört hundratals produktsäkringar, erbjuder vi nu en tjänst för penetrationstest. I denna gör vi först en analys av ert system, och genomför sedan tusentals olika tester med attack-vektorer, där vi använder data från tidigare bevisade problem.

Alltfler säkerhetsvarningar rörande medicinsk utrustning – en orsak till oro, men vad kan man göra?

Alltfler säkerhetsvarningar rörande medicinsk utrustning – en orsak till oro, men vad kan man göra?

ICS-CERT har nyligen utfärdat fler varningar om säkerhetsproblem de senaste månaderna. I de flesta fall hittas dessa sårbarheter av forskare eller tillverkarna själva. Med tanke på ökad granskning av medicinsk utrustning och risken för patientskador, vilka är alternativen för tillverkarna av medicinsk utrustning?

SEGGER introduces IoT Toolkit to access cloud based services

SEGGER introduces IoT Toolkit to access cloud based services

SEGGER’s IoT Toolkit is a complete set of tools empowering IoT devices to interact with cloud based services, such as AWS, Azure, Dropbox, Twitter, Xively, and others. The set includes an http client and a JSON-parser and has been designed from the ground up for resource-constrained embedded systems. The IoT Toolkit works on top of the IP-Stack embOS/IP and can apply transport layer security via emSSL, if required.

The toolkit support ranges from simple jobs such as retrieving a web page via the http protocol to complex tasks such as communicating with a REST based API using the JSON description language.

A real world application sample is SEGGER’s Dropbox client, which uses the IoT toolkit to connect with the latest Dropbox API. For evaluation all IoT tools are available as free to use Windows executables.

“The embedded industry is strongly moving towards cloud-based solutions. The demand for simple ways to connect to cloud servers is growing with IoT and Industry 4.0 applications. Whether the device shall be capable of broadcasting messages, or sending warnings on multiple channels using MQTT for instance or simply log events or store data at a cloud service via CoAP, with our IoT Toolkit, customers can easily set up their device for communication with a cloud based service with the least effort”, says Dirk Akemann, Marketing Manager at SEGGER.

Önskar du mer information?

Behöver du en offert, information eller råd. Kontakta oss!