Hintergrund :
Junior R & D Electronics Engineer ( der einzige EE im Unternehmen ) - die Hardware und die Codierung sind nicht das Problem. Mein größtes Problem ist es, einen richtigen Überblick über das Projekt zu bekommen und wo ich anfangen soll.
Bisher habe ich nur kleinere Softwareprojekte erstellt (weniger als 500 Codezeilen), aber ich kann mir nicht vorstellen, größere Projekte durchzuführen, ohne den Überblick über die Funktionalität oder den Mangel an Funktionalität zu verlieren.
Wie strukturieren Sie am besten bzw. mit welchen Tools strukturieren Sie große eingebettete Softwaresysteme?
Was ich gerade mache :
Normalerweise beginne ich damit, die Funktionalität des Projekts zu skizzieren. Es kann sich um ein oder mehrere geschichtete Flussdiagramme oder verwandte Diagramme (Blockdiagramme usw.) handeln, bei denen die Komponenten / Chips untersucht werden. Dann springe ich direkt in die Codierung (ich vermute, scheitere schnell), während ich auf die Datenblätter / das Internet verweise, eine Funktionalität nach der anderen codiere und sie mit Dummy-Daten oder einem ähnlichen Test teste. Es könnte sich um das Schreiben von Daten auf einen MEM-Chip handeln, und wenn dies funktioniert, könnte es sich um einen SPI-Treiber zwischen dem Hauptchip und dem MEM-Chip handeln.
Welche Antwort suche ich? :
Wirklich alles. Ich werde klären, was ich für sinnvoll halte. Es kann sich um ein Buch, einen Artikel, eine persönliche Erfahrung, Empfehlungen usw. handeln.
Ich bin sehr daran interessiert zu wissen, wie Senioren das angehen.
Bearbeiten
Zunächst einmal vielen Dank, dass Sie Ihre jahrelange Erfahrung teilen! Alle Antworten werden sehr geschätzt. Daraus nehme ich:
- Erstellen Sie ein klares und präzises Spezifikationsdokument.
- Erstellen Sie ein Software-Designdokument. (Etwas, das ich jetzt hinzufügen werde) Entwerfen Sie Dokumentvorlagen
- Denken Sie in Modulen, wie redundant es erscheinen mag. (Etwas worauf ich mich mehr konzentrieren muss)
- Befolgen Sie einen Kodierungsstandard für die Strukturierung von Header- / Quelldateien. (Nie zuvor) Barr Group C Standard
- Konzentrieren Sie sich zunächst auf die Erstellung der Implementierungen auf niedriger Ebene. (Mitteilung usw.)
- Implementieren Sie Entwurfsmuster, wo immer dies möglich / sinnvoll ist. Designmuster
- Richten Sie etwas für die Versionskontrolle ein (Github usw. - nie so oft verwendet)
- Forschung kontinuierliche Integration / kontinuierliche Bereitstellung (etwas Neues, auf das ich gestoßen bin) CI- und CD-Grundlagen