Graphical representation and analysis of information systems design

Requirements definition is the tip of the iceberg of system s development. While it is intended to capture the mos t important aspects of what the user of the system will see, i t must also interface with the further steps of the syste m development process. In particular, because the requirements capture the most important properties of the system , those requirements provide an important yardstick agains t which the correctness, usefulness and consistency of th e design and implementation should and can be measured. The implication of this is that the system and notation fo r requirements analysis must be compatible with the system s that support the other steps of development. One premise of this paper is that the requirements shoul d be expressed in the same notation as the high-level design o f the system. This simplifies checking whether the design i s meeting those requirements as it is being developed becaus e there is no need to map from one notation to another. Further advantages of having an integrated notation will b e pointed out. One of the major problems in developing systems is dealing with their size. With the interactive systems being developed today, a system size of 500,000 lines of code is no t atypical. The development of such a system requires that i t be decomposed into a large number of pieces. Although , typically, each individual piece is not very complex, th e control and coordination of the status and interfaces of al l the pieces becomes a major problem. Therefore, the software support system must support decomposing the syste m into pieces, controlling the interfaces that exist amon g pieces and monitoring the status of development of thos e pieces. Coordination and control activity occur not just durin g the requirements analysis and design phases, but throughout the lifetime of the system. The information describin g the decomposition and its interfaces is useful input to th e coding phase where it can be used to produce code skeleton s for the routines that need to be coded and to check th e consistency of the design and the code, to the testing phas e where it can be used as a framework for the generation o f test cases and to the maintenance phase where it can b e used a guide to the structure of the system and a …