Unit 3: System Design

Systems design is the next phase after the systems analysis phase in the systems development life cycle. Systems design consists of those activities that enable the analyst to describe in detail how the information system will actually be implemented to provide the needed solution. In other words, systems design describes how the system will actually work. It specifies in detail all the components of the solution system and how they work together. It is the complete design or blueprint for the system. The goal of systems design is to build a system that is effective, reliable, and maintainable. The deliverable of this phase is the system specification that is handed to the programming team for implementation. Information system design is divided into logical design and physical design.

Logical Design: The logical design of a system is the abstract or theoretical representation of the data flows, inputs and outputs of the system and their relationship with one another.

In logical system definition the analyst must take the following into account:

  1. The design objectives must be completely specified.
  2. Data requiring storage must be structured.
  3. Conversion of the analysis results into inputs to and outputs from the system is required.
  4. The kind of processing needed to meet user requirements is considered at this stage.

 

Physical design: The physical design on the other hand is the conversion of the abstract logical design into the actual input, process and output operations of the system. It shows and describes how data is input into a system, how it is verified, how it is processed and how it is displayed as output. In Physical design, the following requirements about the system are therefore decided:

  1. Designing interfaces and dialogues (Input requirements).
  2. Designing forms and reports (Output requirements).
  3. Determining Storage requirements.
  4. Designing processing and logic (Processing requirements).
  5. Establishing Databases and file requirements.
  6. Establishing System control and backup or recovery

USER INTERFACE DESIGN

How users interface with a system is a very important aspect of system design. Some years ago, users interacted with computers by typing commands only. This approach is known as the command-based or text-based. Now software designers have adopted new approach, that is, graphical-based, where users interact with the computers by clicking and moving icons. This has made computers more user-friendly as software designers  continue to come out with more visually appealing interfaces. User Interface (UI) design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to access, understand, and use to facilitate those actions. UI brings together concepts from interaction design, visual design, and information architecture.

Choosing Interface Elements

Users have become familiar with interface elements acting in a certain way, so user interface designers should be consistent and predictable in their choices and their layout. Doing so will help with task completion, efficiency, and satisfaction.

Interface elements include but are not limited to:

  • Input Controls: buttons, text fields, checkboxes, radio buttons, dropdown lists, list boxes, toggles, date field
  • Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons
  • Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal windows

Best Practices for Designing an Interface

Everything stems from knowing what the users want, including understanding their goals, skills, preferences, and tendencies.  Once you that has been established, the following are taken into consideration when designing the interface:

  • Keep the interface simple. The best interfaces are ones that are simple. They avoid unnecessary elements and are clear in the language they use on labels and in messaging.
  • Create consistency and use common UI elements. By using common elements in the UI, users feel more comfortable and are able to get things done more quickly.
  • The page layout must be purposeful .  The relationships between items on the page and structure the page based on importance. Designers must carefully place items so that they can help draw attention to the most important pieces of information and can aid scanning and readability.
  • Use of colours. The use of appropriate colours can direct attention toward or redirect attention away from items.
  • Use typography to create hierarchy and clarity. To communicate well, designers should use different sizes, fonts, and arrangement of the text.
  • Defaults Inputs. Designers usually anticipate users input and provide default ones where applicable.  This becomes particularly important when it comes to form design where you might have an opportunity to have some fields pre-chosen or filled out.

DESIGN CONSIDERATIONS

As you are already aware, the information processing cycle comprises: input, output, processing and storage. The systems designer will consider each and decide the most appropriate method to be adopted.

Input Design

The designer must specify a complete mechanism from the origination of the data through to its input to the computer.  The data capture system must be reliable and reduce the potential for error to a minimum. The system must be cost-effective. In an era like now where remote capturing of data is the order of the day,  the geographical location of the places at which the data is originated will have a great effect on the method chosen. The response time for output must be considered. The faster the response time, the faster the data capture system must be.

 

Output Design

Output can be presented either in softcopy, hardcopy or both. The specifications of users will determine what is deemed fit.

 

Process Consideration

The systems analyst will consider one or combinations of the following:

  1. Batch processing, where data is collected as a group and processed or executed together.
  2. Online processing, where the input data enter the computer directly from the point of origin.
  3. Real-time processing, where data is processed and updates are done and reflected instantly in the system.
  4. Hybrid processing: A combination of 2 or more of the above-mentioned methods

 

Storage Considerations

The selection of an appropriate method for organising the stored data is another important feature of the designer’s task. The main points to be considered are:

  1. Volume of storage required;
  1. Method of access (sequential or random) of all processes;
  2. Volatility of the data;
  3. Activity of the collection of data about all processes using it;
  4. Access (response) times required;
  5. Predictable additional volumes and uses.

 

 

 

STRUCTURED DESIGN

Structured design is a data-flow based methodology that helps in identifying the input and output of the developing system. The main objective of structured design is to minimize the complexity and increase the modularity of a program. Structured design also helps in describing the functional aspects of the system.

Design Strategies

Top-Down Strategy

The top-down strategy uses the modular approach to develop the design of a system. It is called so because it starts from the top or the highest-level module and moves towards the lowest level modules.

In this technique, the highest-level module or main module for developing the software is identified. The main module is divided into several smaller and simpler submodules or segments based on the task performed by each module. Then, each submodule is further subdivided into several submodules of the next lower level. This process of dividing each module into several submodules continues until the lowest level modules, which cannot be further subdivided, are not identified.

Bottom-Up Strategy

Bottom-Up Strategy follows the modular approach to develop the design of the system. It is called so because it starts from the bottom or the most basic level modules and moves towards the highest level modules.

In this technique,

  •  The modules at the most basic or the lowest level are identified.
  •  These modules are then grouped based on the function performed by

each module to form the next higher-level modules.

  •  Then, these modules are further combined to form the next higher-level modules.
  •  This process of grouping several simpler modules to form higher-level modules

continues until the main module of the system development process is achieved.

Modularization

Structured design partitions the program into small and independent modules. These are organized in top down manner with the details shown in bottom. This approach is called modularization or decomposition and it is use to minimize the complexity and to manage the problem by subdividing it into smaller segments.

Advantages

  1. Critical interfaces are tested first.
  2. It provides abstraction.
  3. It allows multiple programmers to work simultaneously.
  4. It allows code reuse.
  5. It provides control and improves morale.
  6. It makes identifying structure easier.

Structured charts are a recommended tool for designing modular, top down systems which define the various modules of system development and the relationship between each module. It shows the system module and their relationship between them. It consists of diagram consisting of rectangular boxes that represent the modules, connecting arrows, or lines.

STRUCTURE CHART

Structure Chart represent hierarchical structure of modules. It breaks down the entire system into lowest functional modules, describe functions and sub-functions of each module of a system to a greater detail. Structure Chart partitions the system into black-boxes (functionality of the system is known to the users but inner details are unknown). Inputs are given to the black-boxes and appropriate outputs are generated.

Modules at top level called modules at low level. Components are read from top to bottom and left to right. When a module calls another, it views the called module as black-box, passing required parameters and receiving results.

Symbols used in construction of structured chart

Module
It represents the process or task of the system. It is of three types.

  • Control Module
    A control module branches to more than one sub module.
  • Sub Module
    Sub Module is a module which is the part (Child) of another module.
  • Library Module
    Library Module are reusable and invokable from any module.

 

 

 

Conditional Call
It represents that control module can select any of the sub module on the basis of some  condition.

 

 

Loop (Repetitive call of module)
It represents the repetitive execution of module by the sub module.
A curved arrow represents loop in the module.

 

All the sub modules cover by the loop repeat execution of module.

Data Flow
It represents the flow of data between the modules. It is represented by directed arrow with empty circle at the end.

 

 

Control Flow
It represents the flow of control between the modules. It is represented by directed arrow with filled circle at the end.

 

Physical Storage
Physical Storage is that where all the information are to be stored.

Detail Design TECHNIQUES/TOOLS

In developing information systems, system analysts, software engineers, programmers, etc., make use of data modeling tools, process specifications and program design tools at different phases for various purposes. These tools depict in different ways and formats the transformation of input into output. In this section, we shall discuss some data modeling tools such as data flow diagrams and entity relation diagrams. Process specification approaches like decision tables, structured English and decision tree, as well as program design tools such as algorithm, flowchart and pseudocode are also examined

 

Algorithm

An algorithm is defined as a step-by-step or a well-ordered procedure for solving a problem. An algorithm should have unambiguous procedures or set of rules and a clear stopping point. Algorithms can be expressed in any natural language like English or programming language like C/C++.

 

Developing an Algorithm

  1. Define the problem: State the problem you are trying to solve in clear and concise
  2. List the input needed to solve the problem.
  3. Describe and refine the steps needed to convert or manipulate the inputs to produce the outputs.
  4. Test the algorithm by running through it with data sets and verify that the algorithm works.

 

Advantages of Algorithm

  1. Easy to develop and use.
  2. It is independent of programming languages.

 

Disadvantages of Algorithm

  1. An algorithm does not use any standardised format.
  2. It is not visual.
  3. The narrative description is not as easy to follow as a flowchart.

 

Example
An algorithm to find the smallest number in a list.

 

smallest ß N0

for each number in the list {

If number < smallest

smallest ß number

}

print smallest

 

Algorithm Choice and Efficiency Issues

An algorithm is a procedure consisting of a finite set of instructions which specify
a finite sequence of operations that provides the solution to a problem. In other words, an algorithm is a step-by-step procedure to solve a given problem. Different algorithms can be used to solve a given problem. An algorithm must be analysed to determine its efficiency. The efficiency of an algorithm (complexity) relates to the number of computational resources used by the algorithm. Algorithm can be measured based on the computational resources which are;

  1. Time: how long does the algorithm take to complete?
  2. Space: how much working memory (typically RAM) is needed by the algorithm?

An algorithm is considered efficient if it minimizes resource usage. An algorithm which uses less time to accomplish a task is better than the one which uses more time. Similarly, the less space it uses the better.

Program Flowchart

A program flowchart is a popular tool for describing computer algorithms (steps needed to solve a problem). The flowchart documents the flow of a process. A flowchart is a graphical or a diagrammatical representation of the steps and structure of an algorithm or a program. Modern techniques such as Unified Modelling Language (UML), activity diagrams (used in the Object Oriented approach) can be considered as an extension of the flowchart. The flowcharts are usually drawn using some standard symbols. The structure of a program can be depicted by basic flowcharting symbols as shown below.

 

Start or end symbols: These are represented as circles, ovals or rounded rectangles, usually containing the word ‘Start’ or ‘End’ or some other phrase signalling the start or end of a process.

 

Flow of control: The arrows represent the ‘flow of control’ of the computer program.

Processing steps: These are represented by rectangles. The operations to be performed are written inside the rectangles. Examples: ‘add 1 to X’; ‘replace identified part’; ‘save changes’, etc.

Input/Output: These are represented as parallelograms. Examples: Get X from the user; display X.

Branching or decision: These are represented as rhombuses. These typically contain a condition statement (question) that has a Yes/No or True/False test. This symbol has two arrows coming out of it, one corresponding to Yes or True and the other to No or False.

Example 1: To illustrate the use of a flowchart, let us look at the processing logic to compute the average of ten numbers.

The logic is described as follows:

Step 1: Take a variable ‘Sum’ and ‘Count’ and set their values to zero (0).

Step 2: Check if the value of count is less than 10 (i.e. count < 10).

If Yes, Repeat Step 3 and 4, else go to step 5

Step 3: Input number (N)

Step 4: Increment the value of ‘count’ by 1 (count = count+1). Add number to ‘sum’ and let this be the new value of Sum (i.e. Sum = Sum + number)

Step 5: The average = Sum/10. Print Average

A flowchart based on the above processing logic is shown below

 

 

 

 

 

 

Start or end symbols: These are represented as circles, ovals or rounded rectangles, usually containing the word ‘Start’ or ‘End’ or some other phrase signalling the start or end of a process.

 

Flow of control: The arrows represent the ‘flow of control’ of the computer program.

Processing steps: These are represented by rectangles. The operations to be performed are written inside the rectangles. Examples: ‘add 1 to X’; ‘replace identified part’; ‘save changes’, etc.

Input/Output: These are represented as parallelograms. Examples: Get X from the user; display X.

Branching or decision: These are represented as rhombuses. These typically contain a condition statement (question) that has a Yes/No or True/False test. This symbol has two arrows coming out of it, one corresponding to Yes or True and the other to No or False.

Example 1: To illustrate the use of a flowchart, let us look at the processing logic to compute the average of ten numbers.

The logic is described as follows:

Step 1: Take a variable ‘Sum’ and ‘Count’ and set their values to zero (0).

Step 2: Check if the value of count is less than 10 (i.e. count < 10).

If Yes, Repeat Step 3 and 4, else go to step 5

Step 3: Input number (N)

Step 4: Increment the value of ‘count’ by 1 (count = count+1). Add number to ‘sum’ and let this be the new value of Sum (i.e. Sum = Sum + number)

Step 5: The average = Sum/10. Print Average

A flowchart based on the above processing logic is shown below

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Example 2: Consider the cash withdrawal module.  Let us look at a simplistic processing logic to withdraw cash from a bank and draw the flowchart.

Step 1: Process the customer account record (CR) from the data file

Step 2: Input the amount to withdraw (Amt_W).

Step 3: Check if Amt_W <= CR

If Yes go to the next step, else go to Step 2.

Step 4: Pay amount to withdraw and update record (CR = CR – Amt_W)

Step 5: Print transaction details (CR, Amt_W)

Pseudocode

Pseudocode describes the functionality of a module or a procedure in a structured way. Pseudocode is the outline or logic of a program written in a form that can easily be converted into real programming statements.   Pseudocode is not language-specific, so it can be used to describe a software module in plain English without requiring strict syntax rules. Pseudocode may also include information about the data required (for example, variable names and types) and output to be produced (for example, report formats). Pseudocode, is easier to read and understand than program code. It is called pseudocode because it is closer to a program code.

In line with structured program, pseudocode also uses three types of control statements. These are:

  1. Sequence – sequence of statements for execution, in order (one after the other).
  2. Selection – used to select from a statement for execution based on certain specified conditions. It uses the syntax:

if <condition> then <statement> else <statement>

  1. Iteration – repetition of a group of statements based on a specified condition. It uses syntax:

do <statements> while <condition> or

while <statements>

 

Example 1: Pseudo-code to calculate the average marks of a number of quizzes taken.

INITIALIZE ‘sum’ and ‘count’ variables to 0

WHILE count < number of quizzes

GET quiz grade

Add quiz grade to ‘Sum’

INCREMENT ‘Count’

quiz average = average of sum over/ number of quizzes

OUTPUT quiz average

 

 

 

Example 2: Pseudo-code for computing the final price of an item after tax

INPUT price of an item

INPUT sales tax rate

sales tax = price of item x sales tax rate

final price = price of item + sales tax

OUTPUT final price

 

 

Factors that Influences the Choice of Design

On the whole, whether commercial application packages are used or a new system developed inhouse from scratch, the design must be acceptable to programmers and users. It is usually influenced by factors such as: cost, accuracy, control, security, availability, reliability, and so on.

 

Design Evaluation

To develop good quality of system software, it is necessary to develop a good design. Therefore, the main focus of developing the design of the system is the quality of the software design. A good quality software design is the one, which minimizes the complexity and cost expenditure in software development. The two important concepts related to the system development that help in determining or assessing the quality of a system are coupling and cohesion.

Coupling

Coupling is the measure of the independence of components. It defines the degree of dependency of each module of system development on the other. The extent to which modules are interdependent is called coupling. In practice, this means the stronger the coupling between the modules in a system, the more difficult it is to implement and maintain the system.  Each module should have a simple, clean interface with other modules, and that the minimum number of data elements should be shared between modules.

In a good design, all instructions in a module relate to a single function. Modules in an information system should be cohesive. A functionally cohesive module is the most desirable type in that all instructions contained in the module pertain to a single task or function.

 

High Coupling

These types of systems have interconnections with program units dependent on each other. Changes to one subsystem leads to high impact on the other subsystem.

 

Cohesion

Cohesion is the measure of closeness of the relationship between its components. It defines the amount of dependency of the components of a module on one another. In practice, this means the systems designer must ensure that:

  1. They do not split essential processes into fragmented modules
  2. They do not gather together unrelated processes represented as processes on the DFD into meaningless modules.

The best modules are those that are functionally cohesive. The worst modules are those that are coincidentally cohesive. A good design must maintain the right balance in achieving a high level of cohesion and minimum coupling.

 

SEE ALL Add a note
YOU
Add your Comment
 

Welcome To.

KOMENCO LMS


The official komenco LMS where you learn at the comfort of your home.
Learn more

Subscribe From

top
Orbit I.T Training and Services Ltd © 2019. All rights reserved.