4838 Wilkinson Apps pp 242-266 8/9/99 10:07 AM Page 253 APPENDIX 14.3 • CD–253 APPENDIX 14.3 SYSTEMS DESIGN METHODOLOGIES AND TECHNIQUES Design Methodologies A systems design methodology is the collection of approaches, tools, and procedures by which a systems design is developed. A well-defined methodology provides a discipline that aids systems analysis in preparing a design. Thus it increases the productivity of systems analysis. Moreover, it aids systems analysts in spotting inconsistencies and omissions, thereby reducing the likelihood of serious deficiencies in the design. Numerous systems design methodologies have been devised during recent decades. Prominent examples are Information Engineering (developed by James Martin Associates and Ernst & Young), Business Systems Planning (developed by IBM), and Structured Analysis and Design Technique (developed by Sof Tech, Inc.). Each represents a combination of approaches, techniques, tools, and procedures. Although certain methodologies draw on traditional techniques applied manually, the more recently devised methodologies employ structured or object-oriented techniques that are often applied by means of computerized tools. For instance, Information Engineering aids systems analysts in developing design specifications through the computerized application of a variety of structured techniques and documentation forms. Figure A14.3-1 portrays the steps and techniques and forms embodied in the methodology. Through the set of specifications, the developers receive aid in writing structured application programs. DEFINITION OF SYSTEM (e.g., requirements, structure charts, data-flow diagrams, entity-relationship diagrams) DATA BASE (i.e., data structure diagrams, record layouts) OUTPUTS (i.e., report formats, screen displays) INPUTS (i.e., input screens, source documents) MODELS (i.e., computations, comparisons) APPLICATION PROGRAMS (structured) FIGURE A14.3-1 Components of a systems methodology. PROCEDURES (i.e., system flowcharts) 4838 Wilkinson Apps pp 242-266 8/9/99 10:07 AM Page 254 CD–254 • APPENDIX 14.3 State-of-the-art developments are properly the subject of an advanced AIS course. However, we can illustrate their usefulness through brief surveys of the object-oriented methodology, application generators, and CASE tools. Object-Oriented Systems Development Methodology Object-oriented systems development represents an alternative to structured systems development. Rather than emphasizing processes, the object-oriented methodology focuses primarily on the data to be handled by an information system. Moreover, the data are viewed in terms of objects—tangible or intangible things that can be uniquely classified. Advantages of Object-Oriented Development The object-oriented methodology allows systems analysts to build systems easily and effectively. This new methodology is an improvement over structured systems development for the following reasons: 1. Once an object (e.g., customer, fixed asset, employee, general ledger account) has been identified, it does not change. This trait gives stability to a system design. 2. Both the data definition and the programming logic are “encapsulated” within an object. Building blocks are created that can be reused. Thus the time required to write the program code for an application can be reduced, since an already-created building block can be pulled from “inventory” and “plugged in” to the system. Consequently, systems analysts can be more productive. 3. Objects can form hierarchies of classes, such as fixed assets, vehicles, trucks, and so on. Each member of the hierarchy inherits the attributes of its superior (e.g., a truck has the attributes of a vehicle). This inheritance trait increases the flexibility of the system development process. 4. Because of the modularity of objects and the reusability of their encapsulated logic, the system design is likely to be more reliable and free of coding errors. Shortcomings of Object-Oriented Systems Development Object-oriented development employs special programming languages, such as Smalltalk and C⫹⫹. Because they must incorporate such constructs as object classes, encapsulation, and inheritance, these languages are more difficult to use. Thus programmers need extensive training. The languages also impose greater hardware demands, such as greater randomaccess memory and secondary storage. These shortcomings are expected to be temporary, however, and object-oriented systems development is likely to displace structured systems development in time. Application Generators Current systems development generation methodologies usually incorporate powerful software tools. One broad category of tools is known as fourth-generation languages (4GLs). These languages are sufficiently userfriendly and powerful that users can design their own applications. For instance, an accountant can develop a reporting program for her use in a cost control situation. The 4GLs include a variety of languages, such as Interactive Financial Planning System, which enables users to develop their own application programs. An important user-friendly type of software tool, usually incorporating a 4GL, is an application generator. An example is Application-By-Forms, a type of generator that allows users to define desired applications by filling in forms provided on screen by the software. (Application-By-Forms is a feature of Ingres, a data-base management product.) Other application generators, which can be employed by users, are RAMIS II (from Mathematica, Inc.) and FOCUS (from Information Builders). Computer-Aided Software Engineering (CASE) Tools A broad range of automated systems software development tools are labeled Computer-Aided Software Engineering (CASE). CASE tools are generally specialpurpose data-base management systems or dictionary systems that aid in making methodologies operational. CASE tools can enhance the productivity of systems analysts and produce high-quality documentation for computer-based systems being developed. Because of the diversity of CASE tools available commercially, they are often grouped into several categories. Basic CASE Tools The most limited CASE tools primarily generate code and thus are similar to application generators. More useful CASE tools support more than one phase of the systems development life cycle. Certain CASE tools emphasize the earlier phases, others emphasize the later phases, and still others span early and later phases. Front-end CASE tools focus primarily on the systems analysis and design phases. These tools, also called upper CASE tools, provide conceptual design specifications by means of such techniques as entity-relationship diagrams, data-flow diagrams, and structure charts. Examples of front-end CASE tools are DESIGN/1 (developed by Andersen Consulting) and Excelerator (developed by Intersolv). Back-end CASE tools focus on the detailed design and implementation phases of the systems development life cycle. These tools, also called lower CASE 4838 Wilkinson Apps pp 242-266 8/9/99 10:07 AM Page 255 APPENDIX 14.3 • CD–255 tools, generate structured program code from detailed design specifications such as tables and screen formats. They also perform testing and maintenance of the code. Examples are CA-Telon (developed by Computer Associates, International) and DesignAid II (developed by Transform Logic). the creativity needed for superior systems design. Integrated CASE tools are quite expensive, and the training costs can be high. Furthermore, CASE tools have been found most useful in designing totally new systems, which represent only a small percentage of all systems development work. Integrated CASE Tools A truly integrated CASE tool package supports all phases of systems development. It incorporates various software modules called workbenches and generators. A CASE workbench accepts definitions from human systems analysts; then it converts the definitions into various structured diagrams and charts. These diagrammatic descriptions are stored in a centralized repository called a CASE encyclopedia. A CASE generator next draws particular system descriptions from the encyclopedia and prepares suitable coded application programs. The generator also develops the specifications for outputs, data base, and other components of the newly designed system. Thus it automatically provides the documentation for a new product. Figure A14.3-2 shows the components of an integrated CASE package. Examples of integrated CASE tools include Information Engineering Workbench (developed by KnowledgeWare) and Visible Analyst Workbench (developed by Visible Systems Corporation). Detailed Design Techniques Limitations of CASE Tools Although they improve productivity and the quality of developed systems, currently available CASE tools have definite limitations. Perhaps the most serious limitation is that they do not allow for Developing a detailed systems design is a vital step in the systems development life cycle. However, it can be quite time consuming and tedious. Like systems analysis, detailed systems design can be aided by a variety of techniques. Most currently employed techniques are structured. Included in this category are decision tables, Warnier–Orr diagrams, detailed structure charts, and structured English. Extensive coverage of these techniques can be found in most systems analysis and design textbooks. We will briefly introduce selected techniques to illustrate their usefulness. Decision Tables A decision table focuses on the “decision choices” inherent in many applications. It shows, within a matrix format, all of the rules pertaining to a transaction processing or decision situation. Decision tables can be viewed as replacements of program flowcharts, sequential flow representations of the steps performed by the instructions in computer programs. The decision table in Figure A14.3-3 pertains to the processing of transactions relating to customers. Each decision point (which is represented by a diamond sym- Designers Enter definitions Work benches (planner, analysis, design) CASE processing Encyclopedia (diagrams, charts, etc.) FIGURE A14.3-2 Components of an integrated CASE tool. Generators (code, data base, documentation) Application programs 4838 Wilkinson Apps pp 242-266 8/9/99 10:07 AM Page 256 CD–256 • APPENDIX 14.3 Rule Condition C1. Has end-of-file indicator been reached? C2. Is customer number on transaction record larger than number on master record? C3. Is customer number on transaction record equal to number on master record? C4. Is transaction a sale? C5. Is transaction a payment? C6. Is customer number the dummy 999? 1 2 3 4 N Y N N N N N N N Y Y 5 6 Y Y N N Y N X X X Y Action A1. A2. A3. A4. A5. A6. A7. Read transaction record. Read master record. Write new master record. Write error message. Add amount of transaction to customer balance. Deduct amount of transaction from customer balance. Stop processing. X X X X X X X X Note: Y means yes, N means no. FIGURE A14.3-3 A decision table. bol in a program flowchart) appears as a separate condition. Each processing and input-output step (which is represented by a rectangle or parallelogram symbol in a program flowchart) appears as an action. Each logical construct (which is represented by a branching in a program flowchart) appears as a rule. A decision table differs in two significant ways from a program flowchart. First, it does not specify the sequence in which the actions are to be performed. Thus a decision table presents the unconstrained logic of the situation being portrayed. Second, its construction is based on mathematical principles. Thus a “full” decision table consists of two rules, where R is the number of independent conditions. A “collapsed” table (such as shown in Figure A14.3-3) is then developed by eliminating all redundant rules. In summary, a decision table can be described as a logic diagram of a decision-oriented situation. It reflects the variety of possibilities that a computer program might encounter with respect to transaction data. A decision table is particularly helpful when the situation being portrayed has numerous conditional branches. If a situation to be portrayed in a decision table is extremely complex, however, a decision table could become too large to handle easily. For this reason, decision tables are often subdivided to reflect portions of a complex situation. The fractional decision tables are then linked together. Alternatively, an overall decision table may be prepared at a broad level and then partitioned into a set of detailed decision tables. Because decision tables are logical diagrams capable of being modularized, they qualify as a structured technique. Warnier–Orr Diagrams Among the most widely used of the detailed techniques are Warnier-Orr diagrams, devised by Jean-Dominique Warnier and Ken Orr. These diagrams are used to represent in graphical format a processing sequence, a file structure, or the structure of a document or report. Figure A14.3-4 displays the structure of a sales invoice. Each bracket indicates a grouping of data; as the brackets move to the right in the diagram, the data items become more detailed (i.e., to lower levels in the hierarchy). Warnier–Orr diagrams provide easy-to-read data and processing documentation. They can be decomposed to very detailed levels. Hence, they are widely used to aid in writing structured computer programs. Their main drawback is that they are not well suited for large-scale and data-base oriented systems. Detailed Structure Charts A structure chart portrays the hierarchy of levels and relationships within a system. A detailed structure chart depicts the program modules that will comprise the subroutines of a com- 4838 Wilkinson Apps pp 242-266 8/9/99 10:07 AM Page 257 Customer name Customer name Address Shipping address ⫹ Billing address Terms Invoice number Customer data (1) Salesperson Invoice data (N) Sales invoice Street City State ZIP Code Product number Product description Unit price Quantity ordered Product data (N) Sales tax Amount Note: (a) Number or letter in parentheses indicates the number of times the item occurs. (b) The ⫹ means that either or both of the items may appear. FIGURE 14.3-4 A Warnier–Orr diagram of the data hierarchy within a sales invoice. Prepare sales invoice Cu nu stom mb e r Ed er it f lag Custom invoiceer and data Edit customer number Print invoice header ice pr it Un Get customer order and record ata er d Ord r de or d r r e m co sto d re u n C a Ex ten d da Lin ed a Ext Line ta e-i m end -item Invoic an tem ou ed dp am nt data e tota Inv oun ric oice EOF (all) l t e total Print line-item data Get unit price Compute extended amount Write extended amount Compute invoice total Data flag Control flag Loop repeated for all line items FIGURE A14.3-5 A detailed structure chart pertaining to the process of preparing a sales invoice. CD–257 Print invoice total 4838 Wilkinson Apps pp 242-266 8/9/99 10:07 AM Page 258 CD–258 • APPENDIX 14.4 GET CUSTOMER-ORDER OPEN CUSTOMER file GET CUSTOMER record IF CUST-No is valid THEN SET INVOICE-HEADER THEN ENTER CUST-NO, CUST-ADDRESS, ORDER-DATE, ORDER-NO THEN WRITE INVOICE-HEADER ELSE DISPLAY “CUSTOMER NUMBER NOT VALID” ENDIF FOR each line item WRITE ITEM-NO and ORD-QTY on INVOICE-LINE GET UNIT-PRICE-ITEM from pricing file COMPUTE ITEM-EXTENSION as ORD-QTY times UNIT-PRICE-ITEM WRITE ITEM-EXTENSION on INVOICE-LINE ENDFOR COMPUTE INVOICE-AMT as sum of ITEM-EXTENSION WRITE INVOICE-AMT on INVOICE-FOOTING EOF FIGURE 14.3-6 A segment of structured English pertaining to a sales invoice. puter program. It can be used to guide the preparation of program instructions or English-like pseudoinstructions. Figure A14.3-5 shows a detailed structure chart that graphically describes the subroutines of a program for preparing a sales invoice. The box at the top, called the boss procedure, represents the control module for the overall program. This module calls on the subroutines or individual instructions from left to right. The EOF (end-of-file) symbol specifies that the program is completed. Data and control flags are used to annotate the flows between the control module and the subroutines. Structured English Structured English is an informal language that uses English-like statements to describe procedural logic. Its advantage is that the statements do not require the syntax of a specific programming language, such as COBOL. However, structured English employs statements involving such key terms as IF, THEN, ELSE, and COMPUTE, which are similar to the programming statements of commonly used languages. These statements can be easily converted into a formal programming language. Figure 14.3A-6 lists a series of instructions written in structured English. The instructions are based on the detailed structure chart in Figure A14.35, which describes the preparation of a sales invoice. APPENDIX 14.4 NETWORK DIAGRAMS Two major project planning and control techniques, PERT (Program Evaluation and Review Technique) and CPM (Critical Path Method), incorporate network diagrams. Our discussion follows the terminology of PERT. To simplify the discussion, we will ignore the feature of PERT that requires three time estimates for each activity. Nomenclature Figure A14.4-1 presents a simple network diagram for a hypothetical project. The key features of the diagram are 1. Activities: tasks to be completed in the course of the project. Nine activities (labeled A, B, C, E, F, G,
© Copyright 2026 Paperzz