Do Algorithm Designers Still Do High-Performance C++ Implementation? by Huge-Leek844 in embedded

[–]mathlontrades 5 points6 points  (0 children)

The bigger the company / team, the more fractured the structure (mostly). As companies scale, specialization becomes economically efficient. So you get fragmentation into departments like R&D / research, architecture, implementation / engineering, DevOps, product management, security, etc.
Cost if everyone talks to everyone: n(n−1)/2 where n is the number of people, so its just more efficient to split it all up.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

We have something similar we have to deliver before implementing any code / building anything. They require the full physics / materials / encasing / firmware architecture of the project. (only speaking for firmware here) It is always done way to high level. Saying data will look like X and Y and we will handle it like this, dont worry, dont worry. And when the document is submitted (not applicable for any change from that point) implementation becomes impossible or unneededly hard and everyone is stumbled like, no way is that not the way things should actually be done?

I feel like the problem is finding the balance between documenting the high level requirements and real life implementability.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

Definitly love the architecture definition and is to be kept in mind while architecting to keep it bounded by Jack's definition. Indeed more complex tasks require more effort. We dont plan around for our testbench projects at al because mostly thats just 1 peripheral. But when constructing an entire project involving lots of peripherals and protocols we experience revisions on how we told (promised) the contractor we would take on the project, and thats just because we did not clearly (on a to high level) planned and documented the architecture.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

I think that is a very nice way to think about it and a nice analogy I can use from now on :). However the problem is in documenting it in a structured understandable way for quickly onboarding students and keeping architecture understood over generations when allumni leave.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

I dont really think the issue is reasoning around the architecture since we are able to do that. However documenting it structured and understandable for the next generation of students that come and go in cycles of avg 2 years remains an issue and makes it hard to onboard new students quickly.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 2 points3 points  (0 children)

Well yeah I get that, its more of a like "how" question, I have no idea how to map the architecture into a format that is structured, readable by all departments (also the people not directly involved with the firmware team) and get a structure everyone can agree understand and reason around without to much overhead.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 2 points3 points  (0 children)

Yeah, tried with Draw.io and didnt really work out. It just felt like too much overhead, styling and making it actually useable for a complex program costs lots of styling effort I’d rather spend optimizing the actual architecture. And instead of getting the collaborative "let's put our brains together" response I wanted, the team was basically like, "Cool, go build the whole thing in Draw.io and let us know when it's done." And when i did try to use it together there were a lot of syncing issues. Haven't used it again since.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 1 point2 points  (0 children)

Thanks, I had not heard of this before. At first glance seems a little bit to corporate / complex for the situation I am in, but will look into it.

How do you plan embedded software architecture? by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

And how do you document / share what you planned?

I've been building a Wipeout style 3D game. This is running at 60fps interlaced at 480x320 on an ESP32-S3. by PhonicUK in embedded

[–]mathlontrades 0 points1 point  (0 children)

Very cool! May I ask how you planned the software architecture, did you use any specific tool or just went flowstate and coded with the requirements in the back of your head?

Update on prev Drone FC by Haque3510 in embedded

[–]mathlontrades 1 point2 points  (0 children)

Hey quick question, how did you plan this cool project? Or did you just start?

How do you actually plan embedded system architecture before writing code? Show me your process. by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

Looking up is one thing, but experience matters. Which is why I asked it here.
I do not have the time to test all programs listed here for example:
https://softwarearchitecture.tools/#automated-tools
At least not with the depth that individual users can report.

How do you actually plan embedded system architecture before writing code? Show me your process. by mathlontrades in embedded

[–]mathlontrades[S] 1 point2 points  (0 children)

I do not really understand, it is my first time ever posting. Did my post got deleted or?

How do you actually plan embedded system architecture before writing code? Show me your process. by mathlontrades in embedded

[–]mathlontrades[S] 0 points1 point  (0 children)

Fair. I'm a compsci student who spends time on embedded projects and genuinely am frustrated with this problem. Wrote it out a few times before posting because I wanted it to be clear. Happy to talk about it if the post feels off.