Conclusion
253
S e c u r it y
The superpowers of the testing API could be dangerous if they were deployed
in production systems. If this is a concern, then the testing API, and the
dangerous parts of its implementation, should be kept in a separate,
independently deployable component.
C o n c lu s i o n
Tests are not outside the system; rather, they are parts of the system that
must be well designed if they are to provide the desired benefits of stability
and regression. Tests that are not designed as part of the system tend to be
fragile and difficult to maintain. Such tests often wind up on the maintenance
room floor—discarded because they are too difficult to maintain.
www.EBooksWorld.ir
This page intentionally left blank
www.EBooksWorld.ir
255
29
C le a n E m be dde d
A rc h itectu r e
By James Grenning
www.EBooksWorld.ir
Chapter 29 Clean Embedded Architecture
256
A while ago I read an article entitled “The Growing Importance of Sustaining
Software for the DoD”
1
on Doug Schmidt’s blog. Doug made the following claim:
“Although software does not wear out, firmware and hardware become obsolete,
thereby requiring software modifications.”
It was a clarifying moment for me. Doug mentioned two terms that I would
have thought to be obvious—but maybe not.
Software
is this thing that can
have a long useful life, but
firmware
will become obsolete as hardware
evolves. If you have spent any time in embedded systems development, you
know the hardware is continually evolving and being improved. At the same
time, features are added to the new “software,” and it continually grows in
complexity.
I’d like to add to Doug’s statement:
Although software does not wear out, it can be destroyed from within by unman-
aged dependencies on firmware and hardware.
It is not uncommon for embedded software to be denied a potentially long
life due to being infected with dependencies on hardware.
I like Doug’s definition of firmware, but let’s see which other definitions are
out there. I found these alternatives:
•
“Firmware is held in non-volatile memory devices such as ROM, EPROM,
or flash memory.” (https://en.wikipedia.org/wiki/Firmware)
•
“Firmware is a software program or set of instructions programmed on a
hardware device.” (https://techterms.com/definition/firmware)
•
“Firmware is software that is embedded in a piece of hardware.” (https://
www.lifewire.com/what-is-firmware-2625881)
•
Firmware is “Software (programs or data) that has been written onto read-
only memory (ROM).” (http://www.webopedia.com/TERM/F/firmware.html)
1. https://insights.sei.cmu.edu/sei_blog/2011/08/the-growing-importance-of-sustaining-software-for-the-
dod.html
www.EBooksWorld.ir
Do'stlaringiz bilan baham: |