1. More accurately defining the user’s requirements during systems development.
2. Assembling better system documentation.
3. Using more effective methods for designing processing logic and communicating it to project team members.
4. Making better use of existing tools and techniques.
5. Managing the systems engineering process effectively. As indicated
by the preceding comments, design is both a process and a product. The design practices followed for software dramatically affect the maintainability of a system good design practices produce a product that can be maintained.
8.4 Software Design These principles
should guide software design Modularity and Partitioning. Each system should consist of a hierarchy of modules. Lower level modules are generally smaller in scope and size compared to higher – level modules and serve to partition processes into separate functions.
Coupling Modules should have little dependence on other modules in a system.
Cohesion Modules should carryout a single processing function.
Span of Control Modules should interact with and manage the functions of a limited number of lower-level modules.
Size The number of instructions contained in a module should be limited to that module size is generally small.
Shared Use Functions should not be
duplicated in separate modules, but established in a single module that can be invoked by any other module when needed.
8.4.1 Top-Down Structure of Modules Top – down methods are used throughout the analysis and design process. The value
of using a top-down approach, starts at the general levels to gain an understanding of the system and gradually moves down to levels of greater detail. In the process of moving from top downward, each component is exploded into greater detail. One data flow diagram became several at the next lower level. During the discussion
of input and menu design, a top-down approach was emphasized. The main menu contains several choices. Making one choice produces another menu in, which more detailed options are presented to the user. This capability provides users with an easy – to – understand method for using the system and selecting option. They do not have to make all decision together but instead can make one at a time. The top – down method is also widely used in systems engineering and software design.
Each function, the system will perform is first identified, and then developed in greater detail. Program designers term this as stepwise refinement the procedures and processes
are developed a step at a time, from general to specific. For example, an accounting system consists of many separate modules that are invoked one at a time as users indicate the particular function they wish to perform. Each upper – level module in turn leads to using one or several lower-level modules until the desired function is performed.