System Design and Modularity


  • Modularity is important because (1) it allows assignment of different programmers and analysts to separate tasks; (2) small sections can be developed independently; and (3) maintenance causes minimal disruption.

  • Cohesion is how well activities within a single module are related to one another.

  • Optimizing is the process of seeking the perfect solution. Satisficing is the process of seeking a better, but not necessarily perfect, solution.

  • There are no perfect systems. And, there are always constraints. So, satisficing, not optimizing, is the goal of system design.

  • Four categories of system flaws:
    • Major anticipated flaws are system functions that were not included in the design because of constraints such as time or cost.
    • Major unanticipated flaws are the most serious type of system shortcoming which indicate major design and testing deficiencies.
    • Minor unanticipated flaws are the most prevalent of system shortcomings and are handled by maintenance.
    • Minor anticipated flaws should not exist.


  • Three tactics to use for giving a system design a future orientation:
    • Build redundancy into the current system.
    • Maintain a future file on every system.
    • Develop documentation.


  • Logical design
    • produces a system blueprint
    • general rather than technical format


  • Physical design
    • converts the blueprint into the specific detail required to construct the code
    • includes specifying complete descriptions of files, input, and output.


  • The systems blueprint may include charts, graphs, and data layouts that describe output documents and reports, input documents that the system will process, computer records required to store processed data, and the sequence and method by which output, input, and storage are linked.

  • Output is the primary purpose of any system.

  • A senior systems analyst is usually in charge of project scheduling for systems design in the case of small projects; a project leader for larger projects.

  • Users should always participate in the design phase because it fosters ownership.

  • Clerical users should be involved in the design of business information systems. At periodic intervals managers and supervisors should give their stamp of approval.

  • The advantage of design teams is that design can be completed in modules.

  • Structured walkthroughs are valuable because
    1. they force the analyst to explain step-by-step logic of design;
    2. design colleagues provide new ideas or spot flaws that the analyst has overlooked/not noticed;
    3. provides an opportunity for analyst to practice explaining the system.


  • Joint Application Design (JAD) is the design of systems by groups of people meeting together in multiple sessions. Design teams are cross-functional and include both users and designers. Designs are completed more quickly with JAD than through traditional sequential methods. JAD involves a significant amount of planning and coordination.

  • CASE design aids include: graphics (data flow diagrams, structure charts, etc.), screen and document design, file design, rapid prototyping, and code generation.

  • Standard information systems are applicable across a wide range of industries. Tailored information systems must match the specific characteristics of a firm or individual decision makers within the firm.

  • In the top-down approach the designer begins with the total concept and decomposes to further levels of detail.

Modules

A module is a bounded contiguous group of statements having a single name and that can be treated as a unit. In other words, a single block in a pile of blocks.

Cohesion: how well the activities within a single module relate to one another.

Separate modules should be relatively independent (loosely coupled). This facilitates development, maintenance by teams; reduces chance of unintended ripple effects on other modules when changes made to a module.

Guidelines for Modularity
  • Make sure modules perform a single task, have a single entry point, have a single exit point.
  • Isolate input-output (I-O) routines into a small number of standard modules that can be shared system-wide.
  • Isolate system-dependent functions (e.g., getting date or time) in the application to ease possible future conversions to other computer platforms or to accomodate future operating system revisions.

Any system always represents some kind of tradeoff between functionality (meeting the business needs) and the resources available (constraints). The goal of design is an improved system, one that better meets the needs of the organization.