CHAPTER (6) SYSTEM DESIGN Througho ut this chapter the following objective s are to be targeted: Describe the design phase in terms of your information building blocks. Identify and differentiate between several systems design strategies. Describe the design phase tasks in terms of a computer-based solution for an in-house development project. Describe the design phase in terms of a computer-based solution involving procurement of a commercial systems software solution. 6.1-What’s meant by system design? Information systems design is defined as those tasks that focus on the specification of a detailed computer-based solution, and is commonly known as “physical design”. In this phase, the designers’ emphasis is on the technical or implementation concerns of the system. Thus, whereas systems analysis placed emphasis on the business problem, systems design places emphasis on the technical or implementation concerns of the system. From SW view, it doesn’t mean writing the program codes rather than designing all components of the system. Remember that more computer systems purchased than written. Focus is given here to the modern structured design approach which is a process-oriented technique. It consists of a hierarchy of modules which makes programs easier to implement and maintain (change). The Software model is derived from structured design using a structure chart to graphically document the design of program modules. Figure (6.1) shows the main phases as well as their role and interactions with the design phase along the development stage. 6.2- System Design Approaches: The main approaches and strategies were introduced throughout the system-analysis chapter. The main design approach can be again summarized as follows: 1. Model-Driven 2. Modern structured design 3. Information engineering 4. Prototyping 5. Object-oriented 6. JAD 7. RAD 1. Modern Structured Design Modern Structured Design is a process-oriented technique for breaking up a large program into a hierarchy of modules that result in a computer program that is easier to implement and maintain (change). Synonyms (although technically inaccurate) are top-down program design and structured programming. The software model derived from structured design is called a structure chart. Information Engineering Information Engineering is a model-driven and data-centered, but processsensitive technique to plan, analyze, and design information systems. The primary tool of IE is a data model diagram. The Prototyping The Prototyping approach is an iterative process involving a close working relationship between the designer and the users. The Key Benefits of the prototyping are: o Prototyping encourages and requires active end-user participation. o Iteration and change are a natural consequence of systems development – thus, it accommodates end-users whom tend to change their minds. o Prototyping endorses the philosophy that end-users wont know what they want until they see it. o Prototypes are an active, not passive, model that end-users can see, touch, feel, and experience. o An approved prototype is a working equivalent to a paper design specification, with one exception -- errors can be detected much earlier. o Prototyping can increase creativity because it allows for quicker user feedback, which can lead to better solutions. Prototyping accelerates several phases of the life cycle, possibly bypassing the programmer Figure (6.1) Design Phase along the Development Stage The Object-Oriented Design (OOD) The Object-Oriented Design (OOD) design is the newest design strategy and is an extension of object-oriented analysis. Object-oriented design (OOD) techniques are used to refine the object requirements definitions identified earlier during analysis, and to define design specific objects. The Rapid Application Development (RAD): The Rapid Application Development (RAD) is the merger of various structured techniques (especially the data-driven information engineering) with prototyping techniques and joint application development techniques to accelerate systems development. RAD calls for the interactive use of structured techniques and prototyping to define the users’ requirements and design the final system. The expedition of the design effort is enhanced through the emphasis on user participation in Joint application development (JAD) sessions. Joint Application Development (JAD) Joint Application Development (JAD) is a technique that complements other systems analysis and design techniques by emphasizing participative development among system owners, users, designers, and builders. During the JAD sessions for systems design, the systems designer will take on the role of facilitator for possibly several full-day workshops intended to address different design issues and deliverables. 6.3-System Design Phases and Tasks: the Whole Picture: In general, the design can be made whether inside (i.e. by the IT staff of the organization) which is known as indoor design. It can be also done by outsourcing by contracting an external SW house. There’re a number of basic tasks to be accomplished during the In-house design phase which can be summarized as follows: 1. Design of the Information Architecture 2. Design of the Data base 3. Design of the system interface ( inputs and outputs) 4. Design the program modules and package them 5. Update and review the final design To elaborate more, following tasks are to be designed along with the indicated charts and tools: Data-Base Deign-- ERD Input Design - screen chart, Data capturing form Output Design - screen chart and printer charts User Interface Design user interface charts, transition charts Program module Design - structured charts Packaging the modules - flow charts Finalize and review the design Figure (6.2) shows the main tasks of a typical in-house design phase. In this figure, all the deliverable outputs as well as the interactions with each other also given. Figure (6.2) Main Tasks of the Design Phase 6.3.1 Design of Application Architecture An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS, and INTERFACE, and how these components interact across a network. It serves as an outline or blueprint for detailed design and implementation. In this task, the main focus is given to design the scope, and criteria of the main technological components of the information architecture which include: –Identify the network architecture, type ( centralized or distributed) and platform –Identify the specifications of the processing strategies – Identify the DBMS – Identify the program development environment – Identify the operating system platform Design specification of the information architecture is documented on a physical DFD. Such a design serves as scope and criteria or in other words serves as a blueprint for the remaining tasks of the design phase. Physical Data Flow Diagrams Vs. Logical DFD: Physical data flow diagrams (DFDs) model the technical and human decisions to be implemented as part of an information system. They communicate technical choices and other design decisions to those who will actually construct and implement the system. The processes included are known as physical Processes. A physical process is either a processor, such as a computer or person, or a technical implementation of specific work to be performed, such as a computer program or manual process. On the other hand, a logical process may be assigned to physical processors such as PCs, servers, mainframes, people, or devices in a network. A physical DFD would model that network structure. Each logical process requires an implementation as one or more physical processes. Note that a logical process may be split into multiple physical processes in the following cases: o To define those aspects which are performed by people or computers. o To define those aspects to be implemented by different technologies. o To show multiple implementations of the same process. o To add processes for exceptions and internal control (e.g., security). Logical Data Flow (input) TIMECARD Physical Data Flow (as batch Implementation input) KTD Batch: TIMECARDS batch Comma delimited file:TIMECARDS KTD Batch: TIMECARDS End of Month -1 day How to document Application Architecture design? A method to document Application Architecture Design can be summarized as follows: 1. Draw a physical DFD to represent the network architecture. Each physical process symbol will represent a client or server processor. 2. For each physical process on the above network architecture model, draw a physical DFD that shows the event processes (from Chapter 8) that are assigned to (or duplicated on) that physical processor. 3. For appropriate processes on the above system DFD, draw a more detailed physical DFD that factor the event into design units. 4. Draw physical, primitive DFD for appropriate processes from step 3. What’s meant by “ Design Unit” and a “Network architecture DFD”? A design unit is a self-contained collection of processes, data stores, and data flows that share similar design characteristics. It serves as a subset of the total system whose inputs, outputs, files and databases, and programs can be designed, constructed, and tested as a self-contained unit. Ultimately, design units must be integrated into a whole system. o A network architecture is documented as a physical DFD that allocates processors (clients and servers) and possibly devices (machines and robots) across a network and shows: -The connectivity between clients and servers - Where users will interface with the processors? 6.3.2- Design Databases In this task, the designer goes through the main steps of designing the database. For a relational DB, following steps apply: 1. -Identify the data entities and their corresponding attributes 2. Identify the relationships based on the corresponding business rules. Establish and draw the corresponding Entity Relationship Diagram 3. Enhance and finalize the (ERD) by applying normalization 4. Identify the corresponding schemas (e.g. relations or tables) Figure (6.4) shows an example of an RDB schema, while more details can be revised or accessed in any DB text book. The designer should ensure that the DB must be adaptable considering all design attributes such as: DB-indexes and views, Storage requirements, Security, Database Integrity, Transaction integrity, Disaster Recovery Figure(6.4) Example of RDB Schema 6.3.2- Design of Inputs, Outputs and User Interfaces: Such a task covers a number of necessary design steps including: -Design of inputs screens -Design of output screens -Design of user interface dialogue. The design of inputs refers to designing the screen form as well as designing data capturing input form for cases where volume data entry from many data sources. Output design refers to designing both softcopy and hard copy outputs. In other words it covers designing of output screens and output reports. The common tools are screen and printer charts. The user – interface dialogue includes two main aspects: 1-Identifying the sequencing and transitions of the program screens. 2- Designing the method or styles of using the program screens. The first step is documented using what’s called state transition diagram. The second step is to select and decide the type of the dialogue style among the different available ones. The designer document the interface design using what’s called state transition diagram (STD) which is presented in the following figure. Request for Proposals (RFP) I . Introductio An Backgroun B Brief summary of . d C Explanation of RFP . needs D Call for action on part of . document II . Standards vendor and A Schedule of events leading to . instructions B Ground . contract rules that will govern selection 1 Who may talk with whom and . decision 2. Who whenpays for 3. Required format for a what 4 Demonstration . proposal 5. Contractual expectations 6. References expectations 7. Documentation expected III Requirements and . expectations Hardwar . Afeatures . e1 Mandatory requirements, features, and 2. Essential criteria requirements, features, and 3. Desirable criteria requirements, features, and B Softwar . criteria . e1 Mandatory requirements, features, and 2. Essential criteria requirements, features, and 3. Desirable criteria requirements, features, and C Servic . criteria . e1 Mandatory 2. Essential requirements 3. Desirable requirements IV Technical . requirements V . Conclusio questionnaires . n Chapter Input Design & Prototyping Throughout this chapter the main focus is given to: Define the appropriate format and media for a computer input. Explain the difference between data capture, data entry, and data processing. Identify and describe several automatic data collection technologies. Apply human factors to the design of computer inputs. Design internal controls for computer inputs. Select proper screen-based controls for input attributes that are to appear on a GUI input screen. Design a web-based input interface. It becomes very important for designer to gain the following knowledge and practice the guiding skills: Main types of inputs Through understanding of input units especially displays Principles of good input design Guidelines for good screen design Main Types of Computer Inputs: The main types of inputs are presented in the following table. Data Capture, Entry, and Processing Data capture is the identification and acquisition of new data (at its source). Source documents are forms used to record business transactions in terms of data that describe those transactions. Data entry is the process of translating the source data or document (above) into a computer readable format. Data processing is all processing that occurs on the data after it is input from a machine readable form. Two main types of processing are common: batch and online processing. In batch processing, the entered data is collected into files called batches and processed as a complete batch. In on-line processing, the captured data is processed immediately. In remote batch processing, data is entered and edited on-line, but collected into batches for subsequent processing. Input Implementation Methods: Input data can be entered to computer via different methods which are: Keyboard Mouse Point-of-sale terminals Sound and speech Automatic data capture Optical mark recognition (OMR) Bar codes Optical character recognition (OCR) Magnetic Ink Electromagnetic transmission Smart cards Biometric Automatic Identification: Bar Codes Input Design Guidelines 1. Capture only variable data. 2. Do not capture data that can calculated or stored in computer programs as constants. 3. Use business codes for appropriate attributes. Source Document / Form Design Guidelines 1. Include instructions for completing the form. 2. Minimize the amount of handwriting. 3. Data to be entered (keyed) should be sequenced so that it can be read like a book, that is, top-to-bottom and left-to-right. 4. When possible, based input design on known descriptions / metaphore / images. Bad Flow in a Form In order to gain better understanding on the preceding guidelines, following figure is given as an example of bad flow in a form. Following comments apply: Violation of the guideline 1 because there’s no instructions for completing the form Violation of the guideline 2 because ther’s heavy amount of handwriting Violation of the guideline 3 because entered data are not sequenced from top to down or from left to write in a uniform pattern. Good Flow in a Form The preceding violations of good form design is corrected in the following form Example of Good form design Internal Controls for Inputs Each input, and the total number of inputs should be monitored (to minimize the risk of lost transactions). For batch processing o Use batch control slips o Use one-for-one checks against post-processing detail reports For on-line systems Log each transaction as it occurs Assign each transaction a confirmation number (common in webbased systems) Validate all data Existence checks Data type checks Domain checks Combination checks Self-checking digits Format checks Repository-Based Prototyping and Development Repository-Based Prototyping and Development GUI Components (or Controls) Common GUI controls (for both Windows and Web interfaces) Text boxes Radio buttons Check boxes List boxes Drop down lists Combination boxes Spin boxes Buttons Hyperlinks (yes, also for Windows applications—see Quicken 2000) Advanced controls (mostly for Windows interfaces)