|
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.
|