Paper: Use of Abstract Interfaces in the Development of Software for Embedded Computer Systems

26 August 2021 by Phillip Johnston Last updated 8 December 2021“Use of Abstract Interfaces in the Development of Software for Embedded Computer Systems”, by David Parnas, was published in 1977 and is a precursor to the excellent “A Procedure for Designing Abstract Interfaces for Device Interface Modules” (one of my all-time favorite embedded software papers). I’m working on patterns for managing hardware dependencies in embedded systems software, and I wanted to make sure I included all of the relevantly named papers I can find in my research. Abstract This report describes a procedure for designing computer systems that are developed …

To access this content, you must purchase a Membership - check out the different options here. If you're a member, log in.

Differentiating Encapsulation and Information Hiding

13 July 2021 by Phillip Johnston • Last updated 6 March 2024Information Hiding and Encapsulation are two software design principles that are closely related. Encapsulation often requires some information hiding, so the two certainly techniques go hand-in-hand. However, in many sources they are considered to be synonymous terms. The confusion between the two concepts is not helped by the fact that there is no singular, precise definition used – instead, you’ll find variance across sources. We can dispel the idea that they are synonymous with a single observation: if encapsulation and information hiding are equivalent terms, then we can argue …

To access this content, you must purchase a Membership - check out the different options here. If you're a member, log in.

A Process for Defining Your Device’s Security Requirements

11 December 2020 by Phillip Johnston • Last updated 26 October 2023Security is an essential design quality to consider when designing a new system, especially one that is “connected.” However, we cannot rely on a blanket set of security requirements, since each system is unique in terms of customers, their expectations, environments, and intended use cases. We must explore the design space in order to determine the specific capabilities that need to be provided by our device, ecosystem, or related services. The guidance provided below can be used as an input to creating your product’s (or ecosystem’s) Security Plan. ““ Note …

To access this content, you must purchase a Membership - check out the different options here. If you're a member, log in.