TOPIC 7: SYSTEM DESIGN AND DEVELOPMENT
System design is the process of defining the elements of a system such as the architecture,
modules and components, the different interfaces of those components and the data that goes
through that system. It is meant to satisfy specific needs and requirements of a business or
organization through the engineering of a coherent and well-running system.
It is a process of planning a new business system or replacing an existing system by defining
its components or modules to satisfy the specific requirements.
System Design focuses on how to accomplish the objective of the system. It is the process of
designing the architecture, components, and interfaces for a system so that it meets the end-
user requirements. Some of the elements are as followed –
1. Design and redesign of business processes.
2. Defining Data Models.
3. Defining the events and their procedure.
4. Designing of Applications.
5. Designing how the different services, processes, events, and data will work together.
6. Defining how the system will be secured
7. Defining the technologies that will be used, such as applications, components,
toolsets, APIs, and libraries.
Characteristics of a good software design
For good quality software to be produced, the software design must also be of good quality.
Now, the matter of concern is how the quality of good software design is measured? This is
done by observing certain factors in software design. These factors are:
1. Correctness
The design of any software is evaluated for its correctness. The evaluators check the software
for every kind of input and action and observe the results that the software will produce
according to the proposed design. If the results are correct for every input, the design is
accepted and is considered that the software produced according to this design will function
correctly.
2. Understandability
The software design should be understandable so that the developers do not find any
difficulty to understand it. Good software design should be self- explanatory. This is because
there are hundreds and thousands of developers that develop different modules of the
software, and it would be very time consuming to explain each design to each developer. So,
if the design is easy and self- explanatory, it would be easy for the developers to implement it
and build the same software that is represented in the design.
3. Efficiency
The software design must be efficient. The efficiency of the software can be estimated from
the design phase itself, because if the design is describing software that is not efficient and
useful, then the developed software would also stand on the same level of efficiency. Hence,
for efficient and good quality software to be developed, care must be taken in the designing
phase itself.
4. Maintainability
The software design must be in such a way that modifications can be easily made in it. This is
because every software needs time to time modifications and maintenance. So, the design of
the software must also be able to bear such changes. It should not be the case that after
making some modifications the other features of the software start misbehaving. Any change
made in the software design must not affect the other available features, and if the features
are getting affected, then they must be handled properly.
Types of System Design
System design can be categorized into two
(a) Logical Design
Logical design pertains to an abstract representation of the data flow, inputs, and outputs of
the system. It describes the inputs (sources), outputs (destinations), databases (data stores),
procedures (data flows) all in a format that meets the user requirements.
While preparing the logical design of a system, the system analyst specifies the user needs at
level of detail that virtually determines the information flow into and out of the system and
the required data sources. Data flow diagram, E-R diagram modeling are used.
The analyst creates a model of the proposed system that shows the user what the system
will look like. It is developed based on the analyst’s interpretation of the problem and other
related information gathered during the analysis phase.
Analysts should develop the logical design with little regard for how the system will be
physically implemented.
The logical design is developed from the analysts understanding of how the various
elements of the business system logically fit together. It may include definition of input and
processes that must be performed.
Major activities of logical design include
i. Identifying the logical user requirements
ii. Modifying the analysis diagrams for easier evaluation of the analysts’ proposed
solution to the identified problem
iii. Identifying the major data structures necessary to support the proposed solution
iv. Identifying the input and output forms to be used by the proposed system
v. Create a design dictionary. This is a comprehensive collection of the design
specifications used to define and describe all the components of a system
The design dictionary becomes an extremely valuable source of information because it
permits another analyst to gain a comprehensive knowledge of the system. It is also an
excellent source of data during the analysis of an existing system.
(b) Physical Design
Physical design relates to the actual input and output processes of the system. It focuses on
how data is entered into a system, verified, processed, and displayed as output.
It produces the working system by defining the design specification that specifies exactly what
the candidate system does. It is concerned with user interface design, process design, and data
design.
It is devoted to creating specifications that establish the working environment within which the
system will operate i.e the way to fulfill the users desire. It includes diagrams and text
descriptions of the data flows and physical data structures required.
Also includes documentation of procedures for the processing to be done and a detailed
program specification.
❖ It is devoted to creating specifications that establish the working environment within
which the system will operate i.e the way to fulfill the users desire. It includes diagrams
and text descriptions of the data flows and physical data structures required.
❖ Also includes documentation of procedures for the processing to be done and a detailed
program specification.
❖ The physical design involves the following steps
o Identifying resources to meet users needs (hardware and software)
o Identifying procedures to meet users needs
o Describing the procedures so that appropriate computer code can be developed
or acquired
o Describing data so that stored data can be created or modified
o Identifying additional technology necessary for the new/modified system
❖ The output of physical design is a physical design specification which also includes the
ignition of resources, identification of all tasks necessary for development and
implementation of the system, detailed plan for completing those tasks, a n estimate of
the expense and effort needed to develop the system, an estimate of on-going costs
associated with using and maintaining the system.
❖ During design, different approaches have been used i.e bottom –up design and top-
down design. A new approach currently being used is the modular design.
System design components
Input design
Under this, all input documents are designed. They could include invoices, forms, purchase
order, input screen etc. there are three main ways in which source data can be input to a
computer system i.e.
~ Keyboard
~ Read directly by a computer input devices such as scanners which use OCR or MICR
~ Can be produced as a bi-product through the use of other official documents such as form
design, receipt books. This process of keying in data is labour intensive.
This process of designing the input documents should be simplified so as to enable the input
process be simple.
Objectives of input design
i. To produce the most cost effective way of inputting data
ii. To have a high degree of accuracy
iii. To ensure that the input data is acceptable to the user
For these objectives to be achieved, decisions must be made about the following when it comes
to input design
i. Volume of input. In real-time systems, enquiries and transactions will be input as and
when required. In batch systems, input will need to be catered for on a cyclic basis.
ii. Contents of records which are to be input
iii. Device and medium to be used for a particular piece of input.
iv. Data verification and validation – to verify is to confirm the transaction while validate
is to check for accuracy
v. Frequency of input
vi. Sequence of data input
Form design (hard copy)
When designing forms, four major aspects need to be considered
Printing – paper size, rules laid down by the organization, volume of printing
Their completion by clerical staff
Preparation of data from the forms
Subsequent use of the form for information reference
Form filling screens (soft copy)
These may consist of interactive screens that assist in the capturing of data. The interactive
system can be made up of the following:
i. Greeting screen e.g. company logo
ii. Password screen – to prevent unauthorized access
iii. Main menu – to allow choice of several available applications
iv. Intermediate menus- which further delineate choice of functions
v. Help screen – how to perform a task
vi. Escape options – allow a user to escape from a particular screen or the application.
Directions for designing form filling screens
i. Fields on the screen should be in the same sequence as on the source document
ii. Provide default values
iii. Edit all entered fields for transaction errors
iv. Move the cursor automatically to the next entry field
v. Highlighting should be used for gaining attention and should be limited to critical
information, unusual values, high priority messages or items that must be changed
vi. Avoid problems associated with overuse of colours
Checks in the validate program
Checks are divided into four types
i. Character checks
a) Format – alphabetic or numeric
b) Special character – Those representing given status e.g
M – Married
S – Single
D - Divorced
c) Presence test – null or not null
ii. Field checks
a) Size test – length or number of characters
b) Limit test – maximum acceptable value e.g. limit <=5000
c) Range test – Lower and upper limits e.g age 20 – 25
d) Special values – character representing a department
e) Presence test – Null or not null
Types of human errors made when transcribing numeric fields to machine sensible form can
be
a) Transcribing – e.g. 12345 becomes 12545
b) Transposition - e.g. 12345 becomes 12435
c) Double transposition - e.g. 12345 becomes 12543
d) Omission – e.g. 12345 becomes 1345
e) Addition - e.g. 12345 becomes 125745
f) Random – combination of two or more errors.
iii. Record checks
iv. Batch/file checks
Output design
Output is the primary purpose of any system. Output design is often discussed before other
aspects of design because from a client’s point of view, the output is the system.
This is concerned with what emerges from the computer system for the user to work upon. The
output could be in form of print out, screen displays, micro-film, speech etc.
When the system analyst is considering the type of output design, the following factors should
be considered;
i. The volume – high volume output requires high speed printers
ii. Output medium – depends on the quality of the output desired
iii. Frequency of output
iv. Content and format – the layout and contents of the output must be clear and to the
highest standard presentation.
v. Sequence – you can arrange your output either in ascending or descending depending
on priority
vi. Target of audience
Output Design Objectives
a) Assure purposeful output
b) Provide appropriate quality and quantity
c) Assure timeliness
d) Appropriate distribution
e) Choose effective output method
A part from meeting the above stated objectives in determining output design, decisions on the
following aspects must be made:-
1. The medium and device to be used for a particular piece of output e.g types of printers,
VDU etc
2. Contents of reports and the format
3. Frequency of production
4. The volume of output
5. Conditions of production
6. Sequence of items in a report
Output documents
a. External reports – for use or distribution outside the organization
b. Internal reports – For use within the organization
c. Periodic reports – These are produced with a set frequency (daily, weekly, monthly,
every 5th Tuesday etc)
d. Ad Hoc (on demand reports) – Produced on irregular intervals. They are normally
produced upon user demand.
e. Detail reports – They provide details about transactions
f. Summary reports – Give an overview
g. Exception reports – Only show errors or problems e.g due to out – of range values or
unexpected conditions or events.
File design
When designing a file, you consider the access methods i.e. random access, serial access and
sequential access. In addition, consider hit-rate (the percentage of records which can be
accessed in one run). These files which can access high numbers of records are said to have a
high hit-rate.
File design particularly looks at file organization and the medium that will be used to maintain
records that are to used by the system. File design may be determined by:
a) Hit rate – Percentage of records which need to be accessed in one run. This will also
determine the file organization method and file medium to be used.
b) Nature of the system – It is batch, Real-time or a combination.
Nature of the system Hit rate File organization File medium
Real time Low Random Disc
Batch High Sequential Tape, disc
Low Random Disc
High + low Indexed sequential Disc
Hybrid
Batch High Indexed sequential Disc
Real time Low Indexed sequential Disc
Units used for storage medium
8 bits = 1 byte
1000bytes = 1KB
1000 000 bytes = 1000KB = 1MB
1000,000,000 = 1GB (1000MB)
1000,000,000,000 = 1000GB (1TeraByte (TB))
1000,000,000,000,000 = 1PB (Pico Byte)
Database
Is a group of related files. This collection is usually organized to facilitate efficient and accurate
inquiry and update. A DBMS is a software package that is used to organize and maintain a
database. The software allows data and file relationships to be created, maintained and
reported. A DBMS offers a number of advantages over file oriented systems (separate files)
including:
Reduced data duplication
Easier reporting
Improved security
More rapid development of new applications.
Data models
Network
Hierachichal
Relational
Designing the file of database
The objectives in design of data storage organization are:
i. The data must be available when the user wants to use it
ii. The data must be accurate and consistent
iii. Efficient storage of data as well as efficient updating and retrieval. It is necessary that
information retrieved be purposeful.
SYSTEM DESIGN TOOLS
1. Entity Relationship Diagrams (ERD)
Is a major data modeling tool which helps organize the data into entities and define relationship
between the entities. Information found in ERDs include;
i. Entity: anything real or abstract about which we want to store information employees
books, towns etc
ii. Relationship: A natural association that exists between one or more entities.
Cardinality defines the number of occurrences of one entity for a single occurrence of the
related entity. Relationships can either be
a. One to many (1:M)
Drives
Driver Car
Example: A driver drives many cars.
b. Many to Many (M:M)
Driver Drives
Car
A driver drives many cars. A car is driven by many drivers.
c. One to One (1:1)
Drives
Driver Car
A driver drives one car. A car is driven by one driver.
iii. Attribute: Is a characteristic common to all or most instances of a particular entity e.g
for entity employee attributes may include employee number, name, address etc.
The primary key (identifier) is an attribute or combination of attributes that uniquely
identifies one and only one instance of an entity. Attributes can be shown inside an entity
box or below the ERD. Once the ERD has been drawn, there is need to break down the
many to many relationships for easier interpretation.
Steps followed in developing ERD include:
1. identify entities
2. find relationships
3. draw a rough ERD
4. fill in cardinality
5. define primary keys
6. identify attributes
7. draw a fully attributed ERD
8. check results
Example:
A company has several departments each department has a supervisor and at least one
employee. Employees are assigned to at least one but possibly more departments. At least one
employee is assigned to a project but employee may be on vacation.
Solution:
Identify entities
Department
Supervisor
Project
Employee
Find relationships
Department :supervisor 1:1
Employee : department M:M
Employee: project M:M
Draw a rough ERD
DEPARTMENT Run SUPERVISOR
by
Assi EMPLOYEE Wo PROJECT
gne rks
Define primary keys (pk)
Department – dept name
Supervisor – supervisor no
Project – project no
Employee – employee no
Identify all attributes
Entities attributes
Department – dept name
Supervisor – supervisor no, supervisor name
Project – project no, project name
Employee – employee no, employee name
Note: once the ERD has been drawn, there is need to break down the many to many
relationships for easier interpretation.
DEPARTMENT Run SUPERVISOR
by
Assi
EMPLOYEE - DEPARTMENT Invol EMPLOYEE
gne ves
Wo
rks
PROJECT Wor EMPLOYEE - PROJECT
ks
Assignment:
Consider a hospital patients are treated in a single ward by the doctors assigned to them.
Usually each patient will be assigned a single doctor but in rare cases they will have two. Health
care assistance also attend to he patients and a number of these are associated with each ward.
Use an ERD to illustrate the situation.
SYSTEM DESIGN METHODS
1. JSD (Jackson Structure Design)
JSD, Jackson Structure Design is a methodology to specify and design systems in which time
factor is significant and system may be described using sequence of events. Developed by
Michael A. Jackson , this design method considers the fact that the design of the system is an
extension of the programme design. The purpose of this design method is to create a
maintainable software. The method addresses all stages of the software development life
cycle. It has three phases:
1. Modeling phase - A JSD model starts with real world consideration. This phase is a
part of analysis process. The aspects of the real world relevant to the system being
developed are modeled in this phase.
2. Specification phase - This phase focuses on the specification. In this phase JSD
determines what is to be done? The previous phase i.e. the modeling phase provides
the basic for the system specifications to achieve the required functionality.
3. implementation phase - In this phase , JSD determines how to achieve required
functionality. Operational specifications are executed so that it expresses desired
system behaviour in terms of some abstract machine.
Ways of working
• The basic principle of operation of JSD is that development must start with describing
and modeling the real world rather than specifying the function performed by the
system.
• The second principle states that an adequate model of a time ordered world must itself
be time ordered. The aim is to map progress in the real world on progress in the system
that models it.
• The third principle states way of implementing the system based on transformation of
specification in to efficient set of processes. These processes should be designed in a
manner to make them run on available software and hardware.
Steps for JSD software development
Originally presented by Jackson in 1983 the method consisted of six steps which are
following.
1. Entity /action step
2. Entity structure step
3. Initial model step
4. function step
5. system timing step
6. system implementing step
Later , some steps were combined to create a method with only three steps
1. Modeling stage (Analysis)
o Action step
o Structure step
2. Network stage (design)
o Initial model step
o Function step
o System timing step
3. Implementation stage (Realisation)
o System implementation step
Advantages of JSD
1. specially designed to handle real time problem.
2. JSD considers concurrent processing and timing.
3. JSD modeling focuses on time.
4. It provide functionality in the real world.
5. Excellent methodology for micro code application.
Disadvantages of JSD
1. JSD is a poor approach for high level analysis and data base design.
2. More complex due to pseudo code representation.
3. complex and difficult to understand.
4. less graphically oriented than SA/ SD and OMT.
2. Computer Aided Software Engineering (CASE)
CASE stands for Computer Aided Software Engineering which is software that supports one
or more software engineering activities within a software development process, and is
gradually becoming popular for the development of software as they are improving in the
capabilities and functionality and are proving to be beneficial for the development of quality
software.
CASE Tools: The essential idea of CASE tools is that in-built programs can help to analyze
developing systems in order to enhance quality and provide better outcomes. Throughout the
1990, CASE tool became part of the software lexicon, and big companies like IBM were
using these kinds of tools to help create software.
Various tools are incorporated in CASE and are called CASE tools, which are used to support
different stages and milestones in a software development life cycle.
Types of CASE Tools:
1. Diagramming Tools:
It helps in diagrammatic and graphical representations of the data and system processes. It
represents system elements, control flow and data flow among different software
components and system structures in a pictorial form. For example, Flow Chart Maker
tool for making state-of-the-art flowcharts.
2. Computer Display and Report Generators: These help in understanding the data
requirements and the relationships involved.
3. Analysis Tools: It focuses on inconsistent, incorrect specifications involved in the
diagram and data flow. It helps in collecting requirements, automatically check for any
irregularity, imprecision in the diagrams, data redundancies, or erroneous omissions.
For example:
• (i) Accept 360, Accompa, CaseComplete for requirement analysis.
• (ii) Visible Analyst for total analysis.
4. Central Repository: It provides a single point of storage for data diagrams, reports, and
documents related to project management.
5. Documentation Generators: It helps in generating user and technical documentation as
per standards. It creates documents for technical users and end users.
For example, Doxygen, DrExplain, Adobe RoboHelp for documentation.
6. Code Generators: It aids in the auto-generation of code, including definitions, with the
help of designs, documents, and diagrams.
Advantages of the CASE approach:
• As the special emphasis is placed on the redesign as well as testing, the servicing cost of a
product over its expected lifetime is considerably reduced.
• The overall quality of the product is improved as an organized approach is undertaken
during the process of development.
• Chances to meet real-world requirements are more likely and easier with a computer-
aided software engineering approach.
• CASE indirectly provides an organization with a competitive advantage by helping
ensure the development of high-quality products.
• It provides better documentation.
• It improves accuracy.
• It provides intangible benefits.
• It reduces lifetime maintenance.
• It is an opportunity to non-programmers.
• It impacts the style of working of the company.
• It reduces the drudgery in software engineer’s work.
• It increases the speed of processing.
• It is easy to program software.
Disadvantages of the CASE approach:
• Cost: Using a case tool is very costly. Most firms engaged in software development on a
small scale do not invest in CASE tools because they think that the benefit of CASE is
justifiable only in the development of large systems.
• Learning Curve: In most cases, programmers’ productivity may fall in the initial phase
of implementation, because users need time to learn the technology. Many consultants
offer training and on-site services that can be important to accelerate the learning curve
and to the development and use of the CASE tools.
• Tool Mix: It is important to build an appropriate selection tool mix to urge cost
advantage CASE integration and data integration across all platforms is extremely
important
3, Prototyping Model
Prototyping is defined as the process of developing a working replication of a product or
system that has to be engineered. It offers a small scale facsimile of the end product and is
used for obtaining customer feedback as described below:
The Prototyping Model is one of the most popularly used Software Development Life Cycle
Models (SDLC models). This model is used when the customers do not know the exact
project requirements beforehand. In this model, a prototype of the end product is first
developed, tested and refined as per customer feedback repeatedly till a final acceptable
prototype is achieved which forms the basis for developing the final product.
In this process model, the system is partially implemented before or during the analysis phase
thereby giving the customers an opportunity to see the product early in the life cycle. The
process starts by interviewing the customers and developing the incomplete high-level paper
model. This document is used to build the initial prototype supporting only the basic
functionality as desired by the customer. Once the customer figures out the problems, the
prototype is further refined to eliminate them. The process continues until the user approves
the prototype and finds the working model to be satisfactory.
There are four types of models available:
A) Rapid Throwaway Prototyping –
This technique offers a useful method of exploring ideas and getting customer feedback for
each of them. In this method, a developed prototype need not necessarily be a part of the
ultimately accepted prototype. Customer feedback helps in preventing unnecessary design
faults and hence, the final prototype developed is of better quality.
B) Evolutionary Prototyping –
In this method, the prototype developed initially is incrementally refined on the basis of
customer feedback till it finally gets accepted. In comparison to Rapid Throwaway
Prototyping, it offers a better approach which saves time as well as effort. This is because
developing a prototype from scratch for every iteration of the process can sometimes be very
frustrating for the developers.
C) Incremental Prototyping – In this type of incremental Prototyping, the final expected
product is broken into different small pieces of prototypes and being developed individually.
In the end, when all individual pieces are properly developed, then the different prototypes
are collectively merged into a single final product in their predefined order. It’s a very
efficient approach that reduces the complexity of the development process, where the goal is
divided into sub-parts and each sub-part is developed individually. The time interval between
the project’s beginning and final delivery is substantially reduced because all parts of the
system are prototyped and tested simultaneously. Of course, there might be the possibility
that the pieces just do not fit together due to some lack of ness in the development phase –
this can only be fixed by careful and complete plotting of the entire system before
prototyping starts.
D) Extreme Prototyping – This method is mainly used for web development. It is consists
of three sequential independent phases:
D.1) In this phase a basic prototype with all the existing static pages are presented in the
HTML format.
D.2) In the 2nd phase, Functional screens are made with a simulated data process using a
prototype services layer.
D.3) This is the final step where all the services are implemented and associated with the
final prototype.
This Extreme Prototyping method makes the project cycling and delivery robust and fast, and
keeps the entire developer team focus centralized on products deliveries rather than
discovering all possible needs and specifications and adding unnecessitated features.
Advantages –
• The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.
• New requirements can be easily accommodated as there is scope for refinement.
• Missing functionalities can be easily figured out.
• Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
• The developed prototype can be reused by the developer for more complicated projects in
the future.
• Flexibility in design.
Disadvantages –
• Costly w.r.t time as well as money.
• There may be too much variation in requirements each time the prototype is evaluated by
the customer.
• Poor Documentation due to continuously changing customer requirements.
• It is very difficult for developers to accommodate all the changes demanded by the
customer.
• There is uncertainty in determining the number of iterations that would be required before
the prototype is finally accepted by the customer.
• After seeing an early prototype, the customers sometimes demand the actual product to be
delivered soon.
• Developers in a hurry to build prototypes may end up with sub-optimal solutions.
• The customer might lose interest in the product if he/she is not satisfied with the initial
prototype.
Use –
The Prototyping Model should be used when the requirements of the product are not clearly
understood or are unstable. It can also be used if requirements are changing quickly. This
model can be successfully used for developing user interfaces, high technology software-
intensive systems, and systems with complex algorithms and interfaces. It is also a very good
choice to demonstrate the technical feasibility of the product.