|
You and many of your fellow
hardware engineers are probably more knowledgeable of Finite State
Machines than engineers of other disciplines. You likely had
courseware in sequential circuit design and are adept at using the
concepts of Mealy and Moore. You know how to use combinatorial logic
with J-K flip-flops and that Karnaugh maps are indispensible to
organizing logic. Congratulations...but you should no longer hide the
secret of your specialty. The power of Finite State Machines can benefit
your software engineering compatriots as well. Or, like the hardware
engineers that pioneered much of the embedded systems industry, you can
now easily design an entire software system yourself, using your
inherent expertise and the
Staccato™ Software Design Method and Architecture for Embedded Systems.
You might know a few 'old
salt' EE's that programmed one of the early 8-bit micros using assembly
language. Yes, there was a time when EE's did it all because they could.
Some enjoyed programming, many preferred their gates, flip-flops and
Karnaugh maps. Somehow, though, FSMs remained in the domain of hardware
engineering until only recently, relatively speaking, that
UML Statecharts made FSM concepts
available to the entire software community, be it primarily for modeling
systems. As to be expected though, Mealy and Moore machines were
considered by 'the software gurus' as insufficient, and attempted to
solve their primitiveness by mixing in their own object-oriented
concepts and voila! ... Finite State Machines for everyone! ...
just add OOP and an RTOS and a 60 terahertz processor and basically,
problem solved. Well, that never really happened. Maybe because what
hardware engineers have been using to design sequential circuits for
years, really is applicable in its near original form to embedded
software engineering.
So hardware engineers,
don't think for a minute that today's embedded systems software
absolutely needs an RTOS and that if you want to use Finite State
Machine concepts, you must use one of the few Statechart-based products.
All that is really needed is Staccato™ and an ANSI-C Compiler (and a
much, much slower processor). Whether it's a work project or a
C-language programming hobby,
structured software design methods and the use of Finite State Machine
logic is available to you (and with IEEE-CEU Certified Training). So,
encourage your embedded systems team to rethink current methods and
consider learning and using FSM-based software for your next project.
Oh, and thanks for the
amazing chips you have provided us with over the past few decades. That
alone speaks volumes about what software engineers could be learning
from hardware folks.
|