Page 159 - Embedded Microprocessor Systems Real World Design
P. 159

occurred. If  a problem with the mechanical components or the condition  of the
                   items processed caused a lot of  corrections,  throughput went  down until  things
                   stabilized again. The processes no longer were independent, but that was necessary
                    to prevent positive feedback.
                      By  now, some readers are pointing out that these two software processes were
                   not truly independent, and that is true. They were coupled, but only through the
                   mechanical  characteristics of  the  system, and  that  kind  of  problem can  be very
                   difficult to isolate.




                    Software Specifications


                   The software specifications tend  to be the one document that is never produced
                   or is produced at the end of the project and in a hurry. This is for several reasons:
                    1.  There is  no “customer” for  the  software specs like  there  is  for  the  hardware
                      specifications. The hardware specs are needed in some form so the software can
                      be written, but  there often  is  no corresponding  user  for  equivalent software
                      information.
                    2.  The software often is the last part of the project started, and it often starts late.
                      The software engineers may be late because a previous project ran late, and the
                      rest of the project may have had changes right up to the very end. Since func-
                      tional changes often are implemented in software, it is difficult to finish the code
                      while the project is still in a state of flux.
                    3.  Tools are  available that  document a  software design from flowchart through
                      release. If you can describe the actual software as you go, why not just use that
                      for documentation?
                      Since there often is no downstream “user” for the software specification, what
                   are the reasons to create one?  Who will read it? The following list presents a number
                   of reasons:
                     The software specifications serve as an  overview of  the  code for  the  software
                     engineer who must maintain it. This is important if  the code is maintained  by
                     someone other than the person who wrote it. After a year or so, it will also become
                     important to the person who wrote the code.
                     On  a  multiprogrammer  project,  software  specifications help  coordinate  the
                     effort.
                     Software specifications are useful for design reviews and for checking that the
                     software functionality matches up with the hardware capability.
                     Software specifications can  uncover  oversights and conflicts in  the  preceding
                     documents (hardware specs, requirements, and so on).


                    140                                            Embedded Microprocessor Systems
   154   155   156   157   158   159   160   161   162   163   164