Page 321 -
P. 321

292           PART THREE  CONVENTIONAL METHODS FOR SOFTWARE ENGINEERING


                            real (or envisioned) situation that is normally quite complex. Hence, it will be
                            incomplete and will exist at many levels of detail.

                         7. Establish the content and structure of a specification in a way that will enable
                            it to be amenable to change.

                          This list of basic specification principles provides a basis for representing software
                       requirements. However, principles must be translated into realization. In the next
                       section we examine a set of guidelines for creating a specification of requirements.

                       11.5.2  Representation
                       We have already seen that software requirements may be specified in a variety of
                       ways. However, if requirements are committed to paper or an electronic presenta-
                       tion medium (and they almost always should be!) a simple set of guidelines is well
                       worth following:

                            Representation format and content should be relevant to the prob-
         ?  What are a      lem. A general outline for the contents of a Software Requirements Specifica-
            few basic
         guidelines for     tion can be developed. However, the representation forms contained within
         representing       the specification are likely to vary with the application area. For example, a
         requirements?
                            specification for a manufacturing automation system might use different
                            symbology, diagrams and language than the specification for a programming
                            language compiler.
                            Information contained within the specification should be nested. Rep-
                            resentations should reveal layers of information so that a reader can move to
                            the level of detail required. Paragraph and diagram numbering schemes
                            should indicate the level of detail that is being presented. It is sometimes
                            worthwhile to present the same information at different levels of abstraction
                            to aid in understanding.
                            Diagrams and other notational forms should be restricted in number
                            and consistent in use. Confusing or inconsistent notation, whether graphi-
                            cal or symbolic, degrades understanding and fosters errors.
                            Representations should be revisable. The content of a specification will
                            change. Ideally, CASE tools should be available to update all representations
                            that are affected by each change.

                          Investigators have conducted numerous studies (e.g., [HOL95], [CUR85]) on human
                       factors associated with specification. There appears to be little doubt that symbology
                       and arrangement affect understanding. However, software engineers appear to have
                       individual preferences for specific symbolic and diagrammatic forms. Familiarity often
                       lies at the root of a person's preference, but other more tangible factors such as spa-
                       tial arrangement, easily recognizable patterns, and degree of formality often dictate
                       an individual's choice.
   316   317   318   319   320   321   322   323   324   325   326