0% found this document useful (0 votes)
20 views

W12 - Software Design Strategies

The Requirements Grid view enables you to display requirements in a __________ view.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

W12 - Software Design Strategies

The Requirements Grid view enables you to display requirements in a __________ view.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

CS-6209 Software Engineering 1

1
Week 12: Software Design Strategies

Module 009: Software Design Strategies

Course Learning Outcomes:


1. Assess the impact of a GUI in Software Design
2. Describe the Software structured Design
3. Identify the different design process of function oriented design
4. Discuss the Software User Interface Design

Introduction
Software design is a process to conceptualize the software requirements into
software implementation. Software design takes the user requirements as
challenges and tries to find optimum solution. While the software is being
conceptualized, a plan is chalked out to find the best possible design for
implementing the intended solution.

There are multiple variants of software design. Let us study them briefly:

Structured Design
Structured design is a conceptualization of problem into several well-organized
elements of solution. It is basically concerned with the solution design. Benefit of
structured design is, it gives better understanding of how the problem is being
solved. Structured design also makes it simpler for designer to concentrate on the
problem more accurately.

Structured design is mostly based on ‘divide and conquer’ strategy where a problem
is broken into several small problems and each small problem is individually solved
until the whole problem is solved.

The small pieces of problem are solved by means of solution modules. Structured
design emphasis that these modules be well organized in order to achieve precise
solution.

These modules are arranged in hierarchy. They communicate with each other. A
good structured design always follows some rules for communication among
multiple modules, namely –
 Cohesion - grouping of all functionally related elements.
 Coupling - communication between different modules.
Course Module
CS-6209 Software Engineering 1
2
Week 12: Software Design Strategies

A good structured design has high cohesion and low coupling arrangements.

Function Oriented Design


In function-oriented design, the system comprises of many smaller sub-systems
known as functions. These functions are capable of performing significant task in
the system. The system is considered as top view of all functions.

Function oriented design inherits some properties of structured design where


divide and conquer methodology is used.

This design mechanism divides the whole system into smaller functions, which
provides means of abstraction by concealing the information and their operation.
These functional modules can share information among themselves by means of
information passing and using information available globally.

Another characteristic of functions is that when a program calls a function, the


function changes the state of the program, which sometimes is not acceptable by
other modules. Function oriented design works well where the system state does
not matter and program/functions work on input rather than on a state.

Design Process
 The whole system is seen as how data flows in the system by means of data
flow diagram.
 DFD depicts how functions change data and state of the entire system.
 The entire system is logically broken down into smaller units known as
functions on the basis of their operation in the system.
 Each function is then described at large.

Object Oriented Design


Object Oriented Design (OOD) works around the entities and their characteristics
instead of functions involved in the software system. This design strategies focuses
on entities and its characteristics. The whole concept of software solution revolves
around the engaged entities.

Let us see the important concepts of Object Oriented Design:


 Objects - All entities involved in the solution design are known as objects.
For example, person, banks, company, and customers are treated as objects.
Course Module
CS-6209 Software Engineering 1
3
Week 12: Software Design Strategies

Every entity has some attributes associated to it and has some methods to
perform on the attributes.

 Classes - A class is a generalized description of an object. An object is an


instance of a class. Class defines all the attributes, which an object can have
and methods, which defines the functionality of the object.

In the solution design, attributes are stored as variables and functionalities


are defined by means of methods or procedures.

 Encapsulation - In OOD, the attributes (data variables) and methods


(operation on the data) are bundled together is called encapsulation.
Encapsulation not only bundles important information of an object together,
but also restricts access of the data and methods from the outside world. This
is called information hiding.

 Inheritance - OOD allows similar classes to stack up in hierarchical manner


where the lower or sub-classes can import, implement and re-use allowed
variables and methods from their immediate super classes. This property of
OOD is known as inheritance. This makes it easier to define specific class and
to create generalized classes from specific ones.

 Polymorphism - OOD languages provide a mechanism where methods


performing similar tasks but vary in arguments, can be assigned same name.
This is called polymorphism, which allows a single interface performing
tasks for different types. Depending upon how the function is invoked,
respective portion of the code gets executed.

Design Process
Software design process can be perceived as series of well-defined steps. Though it
varies according to design approach (function oriented or object oriented, yet It may
have the following steps involved:
 A solution design is created from requirement or previous used system
and/or system sequence diagram.
 Objects are identified and grouped into classes on behalf of similarity in
attribute characteristics.
 Class hierarchy and relation among them is defined.
 Application framework is defined.

Software Design Approaches


Here are two generic approaches for software designing:
Course Module
CS-6209 Software Engineering 1
4
Week 12: Software Design Strategies

Top Down Design


We know that a system is composed of more than one sub-systems and it contains a
number of components. Further, these sub-systems and components may have their
own set of sub-systems and components, and creates hierarchical structure in the
system.

Top-down design takes the whole software system as one entity and then
decomposes it to achieve more than one sub-system or component based on some
characteristics. Each sub-system or component is then treated as a system and
decomposed further. This process keeps on running until the lowest level of system
in the top-down hierarchy is achieved.

Top-down design starts with a generalized model of system and keeps on defining
the more specific part of it. When all the components are composed the whole
system comes into existence.

Top-down design is more suitable when the software solution needs to be designed
from scratch and specific details are unknown.

Bottom-up Design
The bottom up design model starts with most specific and basic components. It
proceeds with composing higher level of components by using basic or lower level
components. It keeps creating higher level components until the desired system is
not evolved as one single component. With each higher level, the amount of
abstraction is increased.

Bottom-up strategy is more suitable when a system needs to be created from some
existing system, where the basic primitives can be used in the newer system.

Both, top-down and bottom-up approaches are not practical individually. Instead, a
good combination of both is used.

Software User Interface Design


User interface is the front-end application view to which user interacts in order to
use the software. User can manipulate and control the software as well as hardware
by means of user interface. Today, user interface is found at almost every place
where digital technology exists, right from computers, mobile phones, cars, music
players, airplanes, ships etc.

Course Module
CS-6209 Software Engineering 1
5
Week 12: Software Design Strategies

User interface is part of software and is designed in such a way that it is expected to
provide the user insight of the software. UI provides fundamental platform for
human-computer interaction.

UI can be graphical, text-based, audio-video based, depending upon the underlying


hardware and software combination. UI can be hardware or software or a
combination of both.

The software becomes more popular if its user interface is:


 Attractive
 Simple to use
 Responsive in short time
 Clear to understand
 Consistent on all interfacing screens

UI is broadly divided into two categories:


 Command Line Interface
 Graphical User Interface

Command Line Interface (CLI)


CLI has been a great tool of interaction with computers until the video display
monitors came into existence. CLI is first choice of many technical users and
programmers. It is the minimum interface software can provide to its users.

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. Earlier CLI were not programmed to handle the user errors effectively.

A command is a text-based reference to set of instructions, which are expected to be


executed by the system. There are methods like macros, scripts that make it easy for
the user to operate.
CLI uses less amount of computer resource as compared to GUI.

Course Module
CS-6209 Software Engineering 1
6
Week 12: Software Design Strategies

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.

Graphical User Interface


Graphical User Interface (GUI) provides the user graphical means to interact with
the system. GUI can be combination of both hardware and software. Using GUI, user
interprets the software.

Course Module
CS-6209 Software Engineering 1
7
Week 12: Software Design Strategies

Typically, GUI is more resource consuming than that of CLI. 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.

Every graphical component provides a way to work with the system. A GUI system
has following elements such as:

Window - An area where contents of application are displayed. Contents in a


window can be displayed in the form of icons or lists, if the window represents file
structure. It is easier for a user to navigate in the file system in an exploring window.
Windows can be minimized, resized or maximized to the size of screen. They can be
moved anywhere on the screen. A window may contain another window of the same
application, called child window.
 Tabs - If an application allows executing multiple instances of itself, they
appear on the screen as separate windows. Tabbed Document Interface
has come up to open multiple documents in the same window. This interface
also helps in viewing preference panel in application. All modern web-
browsers use this feature.

Course Module
CS-6209 Software Engineering 1
8
Week 12: Software Design Strategies

 Menu - Menu is an array of standard commands, grouped together and


placed at a visible place (usually top) inside the application window. The
menu can be programmed to appear or hide on mouse clicks.

 Icon - An icon is small picture representing an associated application. When


these icons are clicked or double clicked, the application window is opened.
Icon displays application and programs installed on a system in the form of
small pictures.

 Cursor - Interacting devices such as mouse, touch pad, digital pen are
represented in GUI as cursors. On screen cursor follows the instructions from
hardware in almost real-time. Cursors are also named pointers in GUI
systems. They are used to select menus, windows and other application
features.

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.

 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.

Course Module
CS-6209 Software Engineering 1
9
Week 12: Software Design Strategies

 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.

Other impressive GUI components are:


 Sliders
 Combo-box
 Data-grid
 Drop-down list

User Interface Design Activities


There are a number of activities performed for designing user interface. The process
of GUI design and implementation is alike SDLC. Any model can be used for GUI
implementation among Waterfall, Iterative or Spiral Model.

Course Module
CS-6209 Software Engineering 1
10
Week 12: Software Design Strategies

A model used for GUI design and development should fulfill these GUI specific steps.

 GUI Requirement Gathering - The designers may like to have list of all
functional and non-functional requirements of GUI. This can be taken from
user and their existing software solution.

 User Analysis - The designer studies who is going to use the software GUI.
The target audience matters as the design details change according to the
knowledge and competency level of the user. If user is technical savvy,
advanced and complex GUI can be incorporated. For a novice user, more
information is included on how-to of software.

 Task Analysis - Designers have to analyze what task is to be done by the


software solution. Here in GUI, it does not matter how it will be done. Tasks
can be represented in hierarchical manner taking one major task and
dividing it further into smaller sub-tasks. Tasks provide goals for GUI
presentation. Flow of information among sub-tasks determines the flow of
GUI contents in the software.

 GUI Design and implementation - Designers after having information about


requirements, tasks and user environment, design the GUI and implements
into code and embed the GUI with working or dummy software in the
background. It is then self-tested by the developers.

Course Module
CS-6209 Software Engineering 1
11
Week 12: Software Design Strategies

 Testing - GUI testing can be done in various ways. Organization can have in-
house inspection, direct involvement of users and release of beta version are
few of them. Testing may include usability, compatibility, user acceptance
etc.

References and Supplementary Materials


Books and Journals

Online Supplementary Reading Materials


1. Strategies of Software Design; https://www.slideshare.net/Amitgehu/strategy-of-
software-design; November 15, 2019
2. Design Strategy and Software Design Effectiveness;
https://www.computer.org/csdl/magazine/so/2012/01/mso2012010051/13rR
UxZ0nZw; November 15, 2019

Online Instructional Videos

Course Module

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy