Professional Documents
Culture Documents
System Design
System design is the phase that bridges the gap
between problem domain and the existing system.
This phase focuses on the solution domain, i.e. “how
the system could be implemented?”
Software design transform user requirements into some
suitable solution, which helps the programmer in
software coding and implementation.
Systems design is the process of defining the
architecture, components, modules, interfaces, and
data for a system to satisfy specified requirements.
It is the most crucial phase in the developments of a
system. The output of this process can directly be used
into implementation of programming languages.
We can’t just throw the software for programmers
to start programming without any detailed plans.
Design is highly creative stage in software
development where the designer plans:
– how the system or program should meet the
customer’s needs
– how to make system effective and efficient.
In this phase, the complex activity of system
development is divided into several smaller sub-
activities, which coordinate with each other to
achieve the main objective of system development.
Two stages of System design
– High-Level or Architectural Design
• In the preliminary or general design, the features and
main components of the new system are specified.
– Low-Level or Detailed Design
• At this stage, the design of the system becomes more
structured.
• Input, output, databases, forms, codification schemes
and processing specifications are drawn up in detail.
– At the highest level, an outline of the solution to
the problem is presented whereas at the lower
level the solution to the problem is presented in
detail.
1. High Level Design
High Level Design (HLD) is the overall system
design - covering the system architecture design.
HLD explains the architecture that would be used
for developing a software product.
It describes the relation between various modules
and functions of the system.
Data flow, flow charts and data structures are
covered under HLD.
Architectural design
The architectural design emphasizes the design of
the structure, behavior and views of that system.
A system architecture is the conceptual model that
defines the structure, behavior, and relationship
between various modules of system development
process
The architecture diagram provides an overview of
an entire system, identifying the main components
that would be developed for the product and their
interfaces.
It is composed of various components of a system,
the attributes (properties) of those components and
the relationship amongst them, that will work
together to implement the overall system
Example of Software architecture
Example of Web Application
Software architecture
System architecture does the following
– It describes the structure and behavior of the
system.
– Provides an insight to all the interested
stakeholders
– Highlights early design decisions, which have
great impact on the software engineering activities
– Creates intellectual models of how the system is
organized into components and how these
components interact with each other.
– It defines the structure and relationship between
various modules of system development process.
The architectural design is the highest abstract
version of the system.
Data Flow Diagram
DFD (Data Flow Diagram):
DFD is a designing concept used to transform a
textual problem into pictorial or graphical form in a
hierarchical order.
It describes how data and information are
transformed in a system in a pictorial manner.
A data flow diagram (DFD) maps out the flow of
information for any process or system.
A DFD is often used as a preliminary step to create
an overview of the system without going into great
detail, which can later be elaborated. DFDs can also
be used for the visualization of data processing
DFD uses symbols like rectangles, circles
and arrows, plus short text labels to show
data inputs, outputs, storage points and the
routes between each destination.
DFD provides a complete description of:-
– What data are processed?
– How processing is done?
– What data are stored?
– Which stored data are used and
– Where the result flows?
A DFD models a system by using external
entities from which data flows to a process
which transform the data and creates output
data flow which go to other processes or
external entities or data stores .
From data stores, stored data may also flow
to process as inputs.
Example
2. Data Design
– is concerned with how the data is represented and
stored within the system.
3. Process Design
– is concerned with how data moves through the
system, and where it is validated, secured and/or
transformed as it flows into, through and out of the
system.
1.System User Interface Design
User interface is the front-end application view to
which user interacts in order to use the system.
User can manipulate and control the software as
well as hardware by means of user interface.
UI provides fundamental platform for human-
computer interaction.
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 can be graphical, text-based, audio-video
based, depending upon the underlying hardware
and software combination.
Why User Interface design
– System users often judge a system by its
interface rather than its functionality
– A poorly designed interface can cause a user to
make catastrophic errors
– Poor user interface design is the reason why so
many software systems are never used
– Most users of business systems interact with
these systems through graphical interfaces
although, in some cases, legacy text-based
interfaces are still used
Best Practices for Designing an Interface
Once you know about your user, make sure to
consider the following when designing your
interface:
– Keep the interface simple to use and attractive.
– Be consistent on all interfacing screens and use
common UI elements.
– Strategically use color and texture.
– Make sure that the system communicates what’s
happening
– The system should be responsive in short time
User interface designs must not only be attractive
to potential users, but must also be functional and
created with users in mind.
UI is broadly divided into two
categories
Command Line Interface
Graphical User Interface
Command Line Interface (CLI)
CLI provides a command prompt, the place where
the user types the command and feeds to the
system.
The user needs to remember the syntax of
command and its use.
CLI is first choice of many technical users and
programmers.
A command is a text-based reference to set of
instructions, which are expected to be executed by
the system.
CLI uses less amount of computer resource as
compared to GUI.
CLI Elements
A text-based command line interface can have the
following elements:
– Command Prompt - It is text-based notifier that is
mostly shows the context in which the user is
working. It is generated by the software system.
– Cursor - It is a small horizontal line or a vertical bar
of the height of line, to represent position of
character while typing. Cursor is mostly found in
blinking state. It moves as the user writes or deletes
something.
– Command - A command is an executable
instruction. It may have one or more parameters.
Output on command execution is shown inline on
the screen. When output is produced, command
prompt is displayed on the next line.
CLI Elements
Graphical User Interface
Graphical User Interface provides the user
graphical means to interact with the system.
Typically, GUI is more resource consuming than
that of CLI. But with advancing technology, the
programmers and designers create complex GUI
designs that work with more efficiency, accuracy
and speed.
GUI Elements
GUI provides a set of components to interact with
software or hardware.
A GUI system has following elements such as:
– Window - An area where contents of application are
displayed. A window may contain another window of the
same application, called child window.
– Tabs - Tabbed Document Interface has come up to
open multiple documents in the same window.
– Menu - Menu is an array of standard commands,
grouped together and placed at a visible place (usually
top) inside the application window.
– Icon - An icon is small picture representing an
associated application.
– Cursor - Interacting devices such as mouse, touch pad,
digital pen are represented in GUI as cursors.
GUI Elements
Application specific GUI components
A GUI of an application contains one or more of the
listed GUI elements:
– Application Window - Most application windows uses
the constructs supplied by operating systems but many
use their own customer created windows to contain the
contents of application.
– Dialogue Box - It is a child
window that contains message
for the user and request for
some action to be taken.
For Example: Application
generate a dialogue to get
confirmation from user to
delete a file.
Application specific GUI components
– Text-Box - Provides an area for user to type and enter
text-based data.
– Buttons - They imitate real life buttons and are used to
submit inputs to the software.
– Radio-button - Displays available options for selection.
Only one can be selected among all offered.
– Check-box - Functions similar to list-box.
When an option is selected
the box is marked as
checked. Multiple options
represented by check
boxes can be selected.
– List-box - Provides list of available items for
selection. More than one item can be selected.
Detailed Flowchart
Commonly Used Symbols in Detailed
Flowcharts
Process; denoted by rectangle. Usually, only one arrow
goes out of the box.
Direction of flow from one step or decision to another.
Input or output
Document
Alternate symbols for start and end points
When to Use a Flowchart
To develop understanding of how a process
is done.
To study a process for improvement.
To communicate to others how a process is
done.
When better communication is needed
between people involved with the same
process.
To document a process.
design principles
Some of the commonly followed design
principles are as following.
– Software design should correspond to the
analysis model
– Choose the right programming paradigm:
such as procedure oriented, object-oriented, and
prototyping paradigms can be used.
– Software design should be uniform and
integrated: Software design should be
flexible: to adapt changes easily.
– Software design should ensure minimal
conceptual (semantic) errors:
Outputs for System Design
System design gives the following outputs −
– A data schema, often a relational schema.
– A function hierarchy diagram or web page map
that graphically describes the program structure.
– Actual or pseudocode for each module in the
program.
– A prototype for the proposed system.
The final product of the design phase is the
physical system specifications, presented in a form,
such as diagrams or written report, ready to be
turned over to programmers and other system
builders for construction.