Jerry Yoakum's thoughts on software engineering and architecture from experience working with code, computer science, python, java, APIs, NASA, data mining, math, etc.
Saturday, December 22, 2018
Provide All The Information The User Needs And Nothing More
A key part of the design process is the precise definition of each and every software component in the system. This specification will become the "public" part of the component. It must include everything a user needs, such as its purpose, its name, its method of invocation, and details of how it communicates with its environment. Anything that the user does not need should be specifically excluded. In most cases, the algorithms and internal data structures used should be excluded. For if these were "visible," users might utilize this information. Subsequent enhancement or modification then becomes profoundly more difficult because any change to the component has a cascading effect on all components that use it (related to encapsulation).
Reference:
Parnas, D., "A Technique for Software Module Specification with Examples," CACM (May 1972).
Labels:
architecture,
Chicago,
coder,
design,
requirements,
software-engineering
Location:
Springfield, MO, USA