Software Design Process Overview
Software Design Process Overview
Software Design
1
08/03/2021
Design Process
• The requirements are transformed into four major
areas of design details; System architecture,
interface representation, component level details &
data structures.
2
08/03/2021
Requirements
specification
Design Activities
Design Products
This diagram suggests that stages of the design process are sequential. But in fact,
design process activities are mixed. Feed back from one stage to another and design
5
rework is inevitable in design process.
3
08/03/2021
Architectural design
• A system is always divided into sub-systems that
provide some related set of services.
4
08/03/2021
• Module
• A module is normally a system component, that provides
one or more services to other modules. It makes use of
services provided by other modules. It is not normally
considered to be an independent system. Modules are
usually composed of a number of other simpler system
components.
9
10
5
08/03/2021
11
Architectural design
• There are different structural models, control models &
decomposition models, but the architecture of large systems
do not conform to a single structural/ control or decomposition
model.
• Different parts of the system may be designed using different
architectural models. Usually a system architecture is created
by combining different architectural models.
• Designers must find the most relevant model & modify it
according to the problem requirements.
• The system architecture affects the non-functional
requirements such as performance, robustness, distributability,
maintainability etc. Therefore the particular structure chosen
for an application depends on non-functional system
requirements.
12
6
08/03/2021
14
7
08/03/2021
15
16
8
08/03/2021
Vision
system
Identifies the
type of Moves the
Packaging objects
object
selection
system
9
08/03/2021
19
Repository model
• Sub-systems making up a system must exchange information so that they can
work together effectively. There are two fundamental ways to do this,
1. All shared data is held in a central database that can be accessed by all sub-systems. A
system model based on a shared database is called a ‘Repository model’.
2. Each sub-system maintains it’s own database. Data is interchanged with other sub-systems
by passing messages to them.
• The majority of systems which use large amounts of data are organized around
a shared database. This model is suited for applications where data is
generated by one sub-system and used by another. Eg: MIS, Command &
control systems, CASE tool sets
20
10
08/03/2021
Repository model
(Eg: A CASE tool set)
Design
editor
Code
Design generator
translator
Project
repository
Design Program
analyzer editor
Report
generator
21
An efficient way to share large amounts of data. No Sub-systems must agree on the repository data
need to transmit data explicitly from one sub-system model. This is a compromise between the specific
to another. needs of each tool. It may be difficult to integrate
new sub-systems if their data models do not fit the
agreed schema.
Sub-systems which produce data need not be Maintenance may be difficult as a large volume of
concerned with how that data is used by other sub- information is generated according to an agreed
systems. data model. Translating this to a new model may
be expensive or difficult.
Backup, security, access control and recovery from Different sub-systems may have different
errors are centralized. They are the responsibility of requirements for security, recovery & backup
the repository manager. Tools can focus on their policies. The repository model forces the same
principal function rather than be concerned with these policy on all sub-systems.
issues.
It is straightforward to integrate new tools, given that Although it is possible to distribute a logically
they are compatible with the agreed data model. centralized repository, there may be problems with
data redundancy & inconsistency.
22
11
08/03/2021
Client-server model
• This is a distributed system model which shows how data &
processing are distributed across a range of processors. The
major components of this model are
1. A set of stand-alone servers which offer services to other sub-systems.
Eg: print servers which offer printing services, file servers which offer file
management services, compile servers which offer program language
compiling services
2. A set of clients that call on the services offered by servers. These are
sub-systems in their own right. There may be several instances of a
client program executing concurrently.
3. A network which allows the clients to access these services. (when both
the client & servers run on a single machine, this is not needed)
• Clients should know the names of available servers &
services that they provide. But, servers need not to know
either the identity of clients or how many clients there are.
Clients access the services provided by a server through
remote procedure calls.
23
Client-server model
(Eg: A multi-user hypertext system for a film & photograph library)
Wide-bandwidth network
24
12
08/03/2021
25
26
13
08/03/2021
Centralized control
• In this model, one sub-system is designated as the
system controller and has responsibility for
managing the execution of other sub-systems.
• This model falls into two classes depending on
whether the controlled sub-system execute
sequentially or in parallel.
1. The call-return model
• This is the top down subroutine model where control starts at
the top of a subroutine hierarchy and through subroutine calls,
passes to lower levels in the tree. The subroutine model is only
applicable to sequential systems.
2. The manager model
• This is applicable to parallel systems. One system component is
designated as a system manager and controls the starting,
stopping & coordination of other system processes. A process is
a sub-system or a module which can execute in parallel with
other processes.
28
14
08/03/2021
The main program can call Routines1,2 & 3. Routine 1 can call Routine 1.1 or 1.2. Routine 3 can call Routines 3.1 or
3.2 etc. This is a model of the program dynamics. It is not a structural model. There is no need for Routine 1.1 to be
part of Routine 1.
Control passes from a higher-level routine to in the hierarchy to a lower-level routine. It then returns to the point
where the routine was called. The currently executing subroutine has responsibility for control and can either call
other routines or return control to it’s parent. This model may be used at the module level to control functions or
29
objects.
System
controller
The central controller manages the execution of a set of processes associated with sensors and
actuators. It decides when processes should be started or stopped depending on system state 30
variables.
15
08/03/2021
• Module
• A module is normally a system component, that provides one or more services to
other modules. It makes use of services provided by other modules. It is not normally
considered to be an independent system. Modules are usually composed of a
number of other simpler system components.
31
Modularity
32
16
08/03/2021
Modules
• Software is divided into separately named & addressable components, called as
modules, that are integrated to satisfy problem requirements.
• Effort needed to handle a combination of problems, is greater than the effort, when each
problem is handled separately.
• It is easier to solve a complex problem, when it is broken into manageable pieces. This is
the argument for modularity.
33
Modularity
• Modularity facilitates
• The development process
• The maintenance process
• The project management process
• Reusability
• Two qualitative criteria are used to measure the goodness of a
module.
• Module Coupling
• Module Cohesion
34
17
08/03/2021
18
08/03/2021
Interface Design
38
19
08/03/2021
39
40
20
08/03/2021
41
Characteristic Description
Windows Multiple windows allow different information to be
displayed simultaneously on the user’s screen.
42
21
08/03/2021
Produce
Design Evaluate deign
Dynamic design
prototype With end users
prototype
Implement
Executable Final user
prototype interface
43
22
08/03/2021
45
46
23
08/03/2021
User support
• User interfaces should always provide some form of
user help. Help systems are a general part of user
interface design.
• User guidance should be provided in following areas.
• The messages produced by the system in response to user
action.
• The online help system
• The documentation provided with the system
• Design of useful information for users should be taken
seriously. Sufficient time & effort should be allocated
for this, and it may be appropriate to involve
professional writers & graphic artists in the process.
48
24
08/03/2021
Error messages
• When designing error messages, background & experience of users
should be anticipated.
• Error messages should be polite, brief, consistent and positive.
• Whenever possible, the message should suggest how the error might
be corrected. The error message should be linked to an online help
system.
49
? Error #27
Invalid patient id entered
Click on Patients for a list of registered patients
Click on Retry to re-input a patient name
Click on Help for more information
OK Cancel
Patients Help Retry Cancel
50
25
08/03/2021
51
26
08/03/2021
53
User documentation
• User documentation is not strictly part of user interface design, but it
is good practice to design the online help support in combination with
paper documentation.
• The system manuals should provide more detailed information than
the online help. They should be designed, so that it can be used by
different categories of system end-users.
• To cater for these end-users & user-expertise, at least 5 documents
(or chapters in a single document) should be delivered with the
software system.
54
27
08/03/2021
Reader
User documentation-Illustration
Name of
document
Content 55
56
28