Archive for C Programming

Importance of ADT and API Design in Embedded Systems Development (For Beginners)

Design of ADTs and APIs are an instinct to the seasoned embedded systems developer. This is not stressed enough in the academe, though, so I would like to share my insights on the importance of ADTs and APIs so you, as the student or beginner embedded systems developer, can appreciate their importance. :D

ADTs stand for Abstract Data Types. APIs stand for Application Programming Interfaces. ADTs are software things composed of data structures and operations. APIs, on the other hand, are function calls that simplify the use of a particular functionality in your system. You might have used APIs in your hobby projects, for example, accessing an ADC peripheral using simple function calls, or sending data through the UART without having the need to directly access the UART registers.

Designing applications with the right ADTs and APIs in mind have lots of benefits:

- ADTs and APIs make software more cohesive. More cohesion means that the functionalities of your components are more focused and specialized to a particular application.

- ADTs and APIs make software less coupled. Coupling refers to the dependency of software components to one another. The less dependent they are, the better, as you can change one software component without affecting other components that much.

- ADTs and APIs make software reusable. This is an after-effect of high-cohesion and low-coupling. You can reuse software components if they are focused on their job and are not dependent too much on other software to function.

- ADTS and APIs make software easy to maintain. Well-written ADTs and APIs abstract the implementation of your operations from higher, system-level applications, thus allowing you to modify the implementation with very little change to the dependent application.

With all these benefits, ADTs and APIs are important to embedded systems development because they provide a sound embedded systems software design. Embedded systems are driven by software, and just like any other software, embedded systems benefit from a good architectural-level and system-level design.

Up next: Case Study: ADTs and APIs in Mobot Design.

Cheers!

Leave a Comment

Follow

Get every new post delivered to your Inbox.