Sean Prestridge - Senior Applications Engineer (FAE), Teamleiter der FAE US-Abteilung für IAR-Systeme - in seinem Artikel Schnell handeln und Dinge kaputt machen? Nicht so schnell in Embedded “, spricht über die Besonderheiten der Softwareentwicklung für Embedded-Systeme und konzentriert sich auf die Themen Codequalität und Testen.
„ Bewegen Sie sich schneller und überwinden Sie die Barrieren “, so Mark Zuckerberg, den er in die Facebook-Entwicklungskultur einführt. Es klingt zwar großartig, wenn wir über das schnelle Erstellen und Starten neuer Funktionen sprechen (auch wenn diese nicht perfekt sind), verliert aber dennoch seine Schönheit, wenn Sie versuchen, sie auf die Softwareentwicklung für eingebettete Systeme anzuwenden.
Der Grund ist, dass die Themenbereiche völlig unterschiedlich sind. Das Herzstück von Facebook ist die Web- und Datenbankentwicklung mit mehreren Funktionspunkten, die wahrscheinlich nicht zu stark beeinträchtigt werden, wenn eine wichtige neue Funktion nicht richtig funktioniert. Eingebettete Systeme sind von Natur aus Systeme mit begrenzten Ressourcen, die hauptsächlich nur eine Funktion oder möglicherweise mehrere Funktionen ausführen. Daher kann die Philosophie "Schneller bewegen und Barrieren überwinden", die auf ein eingebettetes System angewendet wird, möglicherweise das gesamte System unbrauchbar machen. Je nachdem, welche Funktion das eingebettete System implementiert, können die Ergebnisse bestenfalls unangenehm und im schlimmsten Fall katastrophal sein.
(RAD – Rapid Application Development) ? , , , .
« , »
, . WISCY ( «»): ? . , , , .
( ) , , , . , . : « , . . , » [1]. .
, , , « ». , , . .
RAD , « » , , , « ». , . , - . , , , ( ) .
, , « ». , « ». , [2]. : « » [1].
. .:
— , , , , , , .
–
, , - , ? MISRA, CWE, CERT, . . , , , «» ++.
, , , . , , . , 50 , [3]. , , , « » . , , , . , , . , , .
« », :
— , . . , , , , , , . , — . , , .» [4]
, , , . , , , : ( «»), ( ), ( ) . - : , , [5].
( , ) . , . , , , . , , , . – . ( )? , , , ? , , , .
, « , » , , . , . IBM, 100$ , -- 1500$, – 10000$ [6]. , . « » (Test-Driven Development – TDD), . , , . , : , , ; . . , , .
,
, . , , , , . , , , , . , , – . , .
- https://www.infoq.com/articles/slow-down-go-faster/
- https://www.targetprocess.com/articles/speed-in-software-development/
- https://cacm.acm.org/magazines/2018/4/226371-lessons-from-building-static-analysis-tools-at-google/fulltext
- Steve McConnell, Code Complete, Second Edition (Microsoft Press, 2009), 501.
- https://www.afit.edu/stat/statcoe_files/0214simp%202%20AST%20IG%20for%20Managers%20and%20Practitioners.pdf
- https://crossbrowsertesting.com/blog/development/software-bug-cost/