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

Topics Covered: Lesson 14

Uploaded by

Srawan Nath
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Topics Covered: Lesson 14

Uploaded by

Srawan Nath
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

SOFTWARE ENGINEERING TECHNIQUES

LESSON 14:

Topics Covered principle of abstraction is the fact that the lower level modules
Neat Hierarchy-Tree-diagram, fan-in, fan-out, Depth, Width, are supposed to do low level functions and high-level modules
Software design approaches, Function oriented design, Object are expected to perform more managerial functions. E.g.:- Leaf
oriented design, User interface design. level modules do input and output operations and the higher
level modules perform manipulations of input output data.
Objectives
Upon completion of this Lesson, you should be able to: Software Design Approaches
• Know what is neat hierarchy and the basic concepts There are fundamentally two radically different approaches to
design.
• Know what is Function Oriented Design
• Function oriented design
• Know what is Object Oriented Design
• Object oriented design
• Know what is User Interface Design
These two approaches are complimentary rather than competing
We have already seen the basic concepts of software design.
techniques. Each of these two techniques may become
Now let us see what is meant by neat hierarchy
applicable to a system at different stages of the design process.
Neat Hierarchy
Function Oriented Design
The control hierarchy represents the organization of the
In the function oriented design approach, a system is looked
programme components. The control hierarchy is also called the
upon as something that performs a set of functions. Starting at
program function. Many different notations are used to
this high level view of the system, each function is successfully
represent the control hierarchy. The most common notation is a
refined into more detailed functions. For E.g.: A function create
tree like diagram known as structure chart, which will study in
new library member may consists of the following sub
chapter 5. However, other notation such as Warnier-Orr(1977-
functions:
1981) or Jackson diagrams (1975) may also be used . Since these
notations are not very widely used nowadays, we will not • Assign-membership-number
discuss in these text. We will be give below some terminology • Create-member-record
which are necessary to described the characteristic of a design • Print-bill
represented in a tree like diagram.
Each of these sub functions may be further split into more
Depth and Width provide an indication of as number of levels detailed sub functions and so on.
of control and the overall span of control respectively.
The system state is centralized and shared among different
Fan-out is a measure of number of module that are directly functions; e.g., data such as member-records is available for
control by a given module. A design having module with a high references and updating to several functions such as
fan-out is not a good design, as such modules would lack
• Create-new-library-member
cohesion. This is due to the fact that a module with a high fan-
out involves a large number of other modules. Such a module, • Delete-member
therefore, is likely to implement several different functions and • Update-member record
not just a single cohesive function. Several function oriented design approaches have been
Fan-in indicates the numbers of modules, which directly developed.
invoke a given module. A high fan-in represents a good design Egs of a few developed function oriented design approaches are
and code reuse and is, in general, encouraged.
• The structured design approach designed by
The control relationship between modules is expressed in the Constantine and Yourdon
following way.
• The structured design approach by Jackson
The module that controls another module is said to be super
• The step wise refinement approach by Wirth
ordinate to it. Conversely, a module controlled by another
module is said to be subordinate to the controller. The control • The Hatley-Pirbhai methodology
hierarchy also represents a subtle characteristic of software Object Oriented Design
architecture i.e. its visibility. A module A is said to be visible to In the object-oriented approach, the system is viewed as a
another module B, if A directly or indirectly calls B. collection of objects. The system state is decentralized among
A module should call only its subordinate modules and its the objects and each object manages its own state information.
subordinate modules, should not call their higher-level E.g.: - In a library automation software, each library member is a
modules. In other words higher-level modules should not be separate object with its own data and functions to operate on
visible to subordinate modules. The rationale underlining this this data. In fact the functions defined for one object cannot

© Copy Right: Rai University


3E.253 51
directly refer to or to change data of other objects. Objects have movements to areas that are wide apart, for issuing commands,
SOFTWARE ENGINEERING TECHNIQUES

their own internal data, which define their state. Similar objects can slow down the operating speed of users.
constitute a class. In other words each object is a member of Speed of recall. Once users learn how to use an interface, their
some class. Classes may inherit features from a super class. speed of recall about how to use the software should be
Conceptually, objects communicate by message passing. maximized. The speed of recall is improved if the interface is
User Interface Design based on some metaphors, symbolic command issue
The user interface portion of a software product is responsible procedures, and intuitive command names.
for all interactions with the user. Almost every software product Error rate. A good user interface should minimize the scope
has a user interface (can you think of a software product that of committing errors while initiating different commands. This
does not have any user interface?). In the early days of the characteristic of an interface can be easily determined by
computer, no software product had any user interface because monitoring the errors committed by different users while using
the computers those days were batch systems and no the interface. This monitoring can be automated by
interactions with the users were supported. Now as things are instrumenting the user interface code with the monitoring code
very different-almost every software product is highly interactive. to record the frequency and types of user errors and to display
Users interact with a software product through its user interface, the statistics of various kinds of errors committed by different
which is the primary component of any software product that is users. Consistency of names, issue procedures, and the
directly relevant to the users. No wonder many users often behaviour of similar commands and the simplicity of the
judge a software product from its user interface. Aesthetics command issue procedures minimize error possibilities.
apart, an interface that is difficult to use leads to higher levels of Attractiveness. A good user interface should be attractive to
user errors and ultimately ‘leads to user dissatisfaction. Users use. An attractive user interface catches user attention and fancy.
feel frustrated when a system behaves in unexpected ways, i.e. In this respect, the graphics-based user interfaces have a definite
when the issued commands do not carry out actions according advantage over the text-based interfaces.
to intuitive expectations of the user. Normally, when a user
Consistency. The commands supported y a user interface
starts using a system he builds a mental model of the system
should be consistent. The basic purpose of consistency is to
and expects the system to conform to it. For example, if a user
allow users to generalize the knowledge about one aspect of the
action causes one type of system activity and response under
interface to another. Thus, consistency facilitates speed of
some context, then the user would expect similar system activity
learning, speed of recall, and also helps reduce error rate.
and response to occur under identical user actions in similar
contexts. Therefore, sufficient care and attention should be paid Feedback. A good user interface must provide feedback to
to the design of the user interface of any software product. various user actions. For example, if any user request takes
more than a few seconds to process, the user must be informed
Characteristics of a Good User Interface Design
that his/her request is being processed. If possible, the user
In the following, we identify some of the important issues,
should be periodically informed about the progress made in
which a good user interface design must address:
processing his command. In the absence of any response from
Speed of learning. A good user interface should be simple to the computer for a long tiI1le, a novice user might even start
learn. Most users are put off by complex syntax and semantics recovery/shutdown procedures in panic.
of the command issue procedures. Also, a good user interface
Support for multiple skill levels. A good user interface must
should not require its users to memorize commands. Another
support multiple levels of sophistication of command issue
important characteristic of a user interface that affects the speed
procedure for different categories of users. This is necessary
of learning is consistency. Once, the user learns a command, he
because users with different experience levels prefer different
should be able to use the same command in different
types of user interfaces. Experienced users are more concerned
circumstances for carrying out similar actions.
about the efficiency of the command issue procedures, whereas
Users can learn an interface faster, if the interface is based either relatively novice users pay prime importance to usability aspects.
on some day-to-day real life examples (also called metaphors) or Very cryptic and complex commands will discourage a novice,
on some concepts with which the users are already familiar. For whereas elaborate command sequences will make the command
example, if the user interface of a text editor uses concepts issue procedure very slow and therefore put off experienced
similar to the tools used by a writer for text editing such as users. As users become more familiar with an interface, they
cutting lines and paragraphs and pasting it at other places, the should have options for selecting faster command issue
users can immediately relate their experience to this-concept. procedures such as “hot-keys”, “macros”, etc.
Also; learning is facilitated by intuitive command names and
Error recovery (undo facility). All categories of users are prone
symbolic command issue procedures
to committing errors. Therefore, a good user interface should
Speed of use. The speed of use of a user interface is allow a user to undo a mistake committed by him while using
determined by the amount of time and effort required on the the interface. Users are inconvenienced if they cannot recover
part of the user to initiate and execute different commands. The from simple errors made while using software.
time and effort required to initiate and execute different
User guidance and on-line help. Whenever users need guidance
commands should be minimal. For example, an interface that
or seek help from the system they should be provided with
requires users to type in lengthy commands or involves mouse
appropriate guidance and help. Since providing user guidance

© Copy Right: Rai University


52 3E.253
and on-line help is a very important aspect of a good user

SOFTWARE ENGINEERING TECHNIQUES


interface design, we now discuss some basic concepts related to
these.
Notes

© Copy Right: Rai University


3E.253 53

You might also like