Unit - 3 Software Design
Unit - 3 Software Design
Unit - 3 Software Design
Software Design
Design process – Design Concepts-Design Model– Design Heuristic – Architectural Design – Architectural
styles, Architectural Design, Architectural Mapping using Data Flow- User Interface Design: Interface
analysis, Interface Design –Component level Design: Designing Class based components, traditional
Components.
Design process
After analyzing and modelling the requirements, software design is done which serves as the basis for
code generation and testing.
Software designing is a process of translating analysis model into the design model.
The analysis model is manifested by scenario based, class based, flow oriented and behavioral
elements and feed the design task.
The classes and relationships defined by CRC index cards and other useful class based elements
provide the basis for the data or class design.
The architectural design defines the relationship between major structural elements of the software.
The architectural styles and design patterns can be used to achieve the requirements defined for the
system.
1
The interface design describes how software communicates with systems. These systems are
interacting with each other as well as with the humans who operate them. Thus interface design
represents the flow of information and specific type of behavior. The usage scenarios and behavioral
models of analysis modelling provide the information needed by the interface design.
The component-level design transforms structural elements of software architecture into procedural
description of software module. The information used by the component design is obtained from class
based model, flow based model and behavioral model.
Software design is important to assess the quality of software. Because design is the only way that
we can accurately translate the user requirements into the finished software product.
Without design unstable system may get developed. Even if some small changes are made then those
changes will go fail .It will become difficult to test the product. The quality of the software product
cannot be assessed until late in the software process.
1. The good design should implement all the requirements that are explicitly mentioned in the
analysis model. It should accommodate all the implicit requirements demanded by the
customer.
2. The design should be simple enough so that the code developer, code tester as well as those
who are supporting the software will find it readable and understandable.
3. The design should be comprehensive. That means it should provide a complete picture of
software, addressing the data, functional and behavioral domains from an implementation
perspective.
Quality Guideline
The goal of any software design is to produce high quality software. In order to evaluate quality of
software there should be some predefined rules or criteria that need to be used to assess the software
product. Such criteria serve as characteristics for good design. The quality guidelines are as follows
2
6. Using the information obtained in software requirement analysis the design should be created.
7. The interfaces in the design should be such that the complexity between the connected
components of the system gets reduced. Similarly interface of the system; with external
interface should be simplified one.
8. Every design of the software system should convey its meaning appropriately and effectively.
Quality Attributes
The design quality attributes popularly known as FURPS (Functionality, Usability, Reliability,
Performance and Supportability) is a set of criteria developed by Hewlett and Packard. Following
table represents meaning of each quality attribute
Quality
Meaning
Attribute
Functionality can be checked by assessing the set of features and capabilities of the
functions. The functions should be general and should not work only for particular
Functionality
set of inputs. Similarly the security aspect should be considered while designing the
function.
Usability The usability can be assessed by knowing the usefulness of the system.
Reliability is a measure of frequency and severity of failure Repeatability refers to
Reliability the consistency and repeatability of the measures The mean time to failure (MTTF)
is a metric that is widely used to measure the product's performance and reliability.
Design Concepts
3.3.1 Abstraction
The abstraction means an ability to cope up with the complexity. Software design occurs at different
levels of abstraction. At each stage of software design process levels of abstractions should be applied
3
to refine the software solution. At the higher level of abstraction, the solution should be stated in
broad terms and in the lower level more detailed description of the solution is given.
While moving through different levels of abstraction the procedural abstraction and data abstraction
are created.
The procedural abstraction gives the named sequence of instructions in the specific function. That
means the functionality of procedure is mentioned by its implementation details are hidden.
For example: Search the record is a procedural abstraction in which implementation details are hidden
(i.e. Enter the name, compare each name of the record against the entered one, and if a match is found
then declare success!! Otherwise declare “name not found”
In data abstraction the collection of data objects is represented. For example for the procedure
search the data abstraction will be Record. The record consists of various attributes such as Record
ID, name, address and designation.
3.3.2 Modularity
The software is divided into separately named and addressable components that called as modules.
Monolithic software is hard to grasp for the software engineer, hence it has now become a trend to
divide the software into number of products. But there is a co-relation between the number of modules
and overall cost of the software product. Following argument supports this idea
"Suppose there are two problems A and B with varying complexity. If the complexity of problem A is
greater than the complexity of the problem B then obviously the efforts required for solving the
problem A is greater than that of problem B. That also means the time required by the problem A to
get solved is more than that of problem B."
The overall complexity of two problems when they are combined is greater than the sum of
complexity of the problems when considered individually. This leads to divide and conquer strategy
(according to divide and conquer strategy the problem is divided into smaller sub problems and then
the solution to these sub problems is obtained. Thus dividing the software problem into manageable
number of pieces leads to the concept of modularity. It is possible to conclude that if we subdivide the
software indefinitely then effort required to develop each software component will become very
small. But this conclusion is invalid because the total number of modules get increased the efforts
required for developing each module also gets increased. That means the cost associated with each
effort gets increased. The effort (cost) required for integration these modules will also get increased.
The total cost required to develop such software product is shown in the figure
4
The above figure provides useful guideline for the modularity and that is – over modularity or the
under modularity while developing the software product must be avoided. We should modularize the
software but the modularity must remain near the region denoted by M
Modularization should be such that the development can be planned easily, software
increments can be defined and delivered, changes can be more easily accommodated and long
term maintenance can be carried out effectively.
Meyer defines five criteria that enable us to evaluate a design method with respect to its
ability to define an effective modular system :
Modular decomposability
A design method provides a systematic mechanism for decomposing the problem into
sub-problems. This reduces the complexity of the problem and the modularity can be
achieved.
Modular composability
A design method enables existing design components to be assembled into a new
system.
Modular understandability
A module can be understood as a standalone unit. It will be easier to build and easier
to change.
Modular continuity
Small changes to the system requirements result in changes to individual modules,
rather than system-wide changes.
Modular protection
An aberrant condition occurs within a module and its effects are constrained within
the module.
3.3.3 Architecture
Architecture means representation of overall structure of an integrated system.
In architecture various components interact and the data of the structure is used by various
components.
Architecture provides the basic framework for the software system so that important framework
activities can be conducted in systematic manner.
In architectural design various system models can be used and these are
Model Functioning
Structural Model Overall architecture of the system can be represented using this
model.
Framework Model This model shows the architectural framework framework and
corresponding applicability
Dynamic Model This model shows the reflection of changes on the system due to
external events.
Process model The sequence of processes and their functioning is represented in this
model.
Functional Model The functional hierarchy occurring in the system is represented by this
method.
5
3.3.4 Refinement
Refinement is actually a process of elaboration.
We begin with a statement of function (or description of information) that is defined at a high
level of abstraction and reach at the lower level of abstraction. In each step (of the
refinement), one or several instructions of the given program are decomposed into more
detailed instructions.
3.3.5 Pattern
According to Brad Appleton the design pattern can be defined as-It is named nugget of insight
which conveys the essence of proven solution to a recurring problem with a certain context.
In other words, design pattern acts as a design solution for a particular problem occurring in
specific domain. Using design pattern designer can determine whether
Pattern can be used to solve similar kind of problem with different functionality.
The advantage of information hiding is basically in testing and maintenance. Due to information
hiding some data and procedures of one module can be hidden from another module. This ultimately
avoids introduction of errors module from one module to another. Similarly one can make changes in
the desired module without affecting the other nodule.
By using functional independence functions may be compartmentalized and interfaces are simplified.
Functional independence is a key to good design and design is the key to software quality.
6
The major benefit of functional independence is in achieving effective modularity.
The functional independence is assessed using two qualitative criteria - Cohesion and coupling.
3.3.7.1 Cohesion
With the help of cohesion the information hiding can be done.
A cohesive module performs only "one task" in software procedure with little interaction with other
modules. In other words cohesive module performs only one thing.
Different types of cohesion are:
[1] Coincidentally cohesive
The modules in which the set of tasks are related with each other loosely then such modules
are called coincidentally cohesive.
[2] Logically cohesive
A module that performs the tasks that are logically related with each other is called logically
cohesive.
[3] Temporal cohesion
The module in which the tasks need to be executed in some specific time span is called
temporal cohesive.
[4] Procedural cohesion
When processing elements of a module are related with one another and must be executed in
some specific order then such module is called procedural cohesive.
[5] Communicational cohesion
When the processing elements of a module share the data then such module is
communicational cohesive.
The goal is to achieve high cohesion for modules in the system.
3.3.7.2 Coupling
Coupling effectively represents how the modules can be "connected" with other module or with the
outside world.
The goal is to strive for lowest possible coupling among modules in software design.
The property of good coupling is that it should reduce or avoid change impact and ripple effects. It
should also reduce the cost in program changes, testing and maintenance.
7
3.3.8 Refracting
Refreactoring ii necessary for simplifying the design without changing the function or behaviour.
Fowler has designed refractoring as the process of changing a software system in such a way that the external
behaviour of the design do not get changed,howeever the interanl structure gets improved”.
8
Low Coupling
Design classes must be collaborated with manageable number of classes. If one design class is
collaborated with all other design classes then the implementation, testing and maintenance of
the system becomes complicated. The law of Demeter suggests that the one particular design
class should send messages to the methods of neighboring design classes only.
Design Model
In both the analysis and design models the same UML diagrams are used but in analysis model
the UML diagrams are abstract and in design model these diagrams are refined and elaborated.
Moreover in design model the implementation specific details are provided.
Along the horizontal axis various elements such as architecture element, interface element,
component level elements and deployment level elements are given. It is not necessary that these
elements have to be developed in sequential manner. First of all the preliminary architecture
design occurs then interface design and component level design occur in parallel. The
deployment level design ends up after the completions of complete design model.
9
application level it appears as the database and at the business level it appears as data warehouse and
data mining. Thus data plays an important role in software design.
The below figure represents that component order makes use of another component form.
10
3.4.5 Deployment Level Design Elements
The deployment level design elements indicate how software functions and software subsystems are
assigned to the physical computing environment of the software product.
[1] Evaluate the first iteration of the program structure to reduce the coupling and improve
cohesion
The module independency can be achieved in the program structure by exploding or
imploding the modules. Exploding the modules means obtaining two or more modules in the
final stage and imploding the modules means combining the result of different modules.
[2] Attempt to minimize the structures with high fan-out and strive for fan-in as depth
increases
At the higher level of program structure the distribution of control should be ’made. Fan-out
means number of immediate subordinates to the module. Fan-in means number of immediate
ancestors the module have.
[3] Keep scope of the effect of a module within the scope of control of that module
The decisions made in particular module 'a' should not affect the module 'b' which lies outside
the scope of module 'a'.
[4] Evaluate the module interfaces to reduce complexity and redundancy and improve
consistency
Mostly the cause of software errors is module interfaces. The module interfaces should
simply pass the information and should be consistent with the module.
[5] Define module whose function is predictable but avoid modules that are too restrictive
The module should be designed with simplified internal processing so that expected data can
be produced as a result. The modules should not restrict the size of local data structure,
options with control flow or modes of external interfaces. Being module too much restrictive
causes large maintenance.
11
[6] Strive for controlled entry modules by avoiding pathological connections -
Software interfaces should be constrained and controlled so that it will become manageable.
Pathological connection means many references or branches into the middle of a module.
Users often choose system functions by mistake and will need a clearly marked "emergency
exit" to leave the unwanted state without having to go through an extended dialogue. Support
undo and redo.
Users should not have to wonder whether different words, situations, or actions mean the
same thing. Follow platform conventions.
Even better than good error messages is a careful design which prevents a problem from
occurring in the first place. Either eliminate error-prone conditions or check for them and
present users with a confirmation option before they commit to the action.
Minimize the user's memory load by making objects, actions, and options visible. The user
should not have to remember information from one part of the dialogue to another.
Instructions for use of the system should be visible or easily retrievable whenever appropriate.
Accelerators—unseen by the novice user—may often speed up the interaction for the expert
user such that the system can cater to both inexperienced and experienced users. Allow users
to tailor frequent actions.
Dialogues should not contain information which is irrelevant or rarely needed. Every extra
unit of information in a dialogue competes with the relevant units of information and
diminishes their relative visibility.
12
[9] Help users recognize, diagnose, and recover from errors:
Error messages should be expressed in plain language (no codes), precisely indicate the
problem, and constructively suggest a solution.
Even though it is better if the system can be used without documentation, it may be necessary to provide help
and documentation. Any such information should be easy to search, focused on the user's task, list concrete
steps to be carried out, and not be too large
Architectural Design
The architectural design gives a layout of the system that is to be built.* In short, the program
structure is created during architectural design along with the description of component properties and
their inter-relationship.
The goal of architectural design is to establish the overall structure of software system. Architectural
design represents the link between design specification and actual design process.
[1] Software architecture gives the representation of the computer based system that is to be built.
Using this system model even the stakeholders can take active part in the software
development process. This helps in clear specification/understanding of requirements.
[2] Some early design decisions can be taken using software architecture and hence system
performance and operations remain under control.
[3] The software architecture gives a clear cut idea about the computer based system which is to
be built.
13
Horizontal partitioning
Horizontal partitioning defines separate branches of the modular hierarchy for each major program
function.
Horizontal partitioning can be done by partitioning system into : input, data transformation
(processing) and output.
In horizontal partitioning the design making modules are at the top of the architecture.
More data has to be passed across module interfaces which complicate the overall control of
program flow.
Vertical partitioning
Vertical partitioning suggests the control and work should be distributed top-down in program
structure.
14
In vertical partitioning
Define separate branches of the module hierarchy for each major function.
The data design is then progressively refined to create implementation specific representations.
The implementation of data structures can be done by effective software design and by choosing
suitable programming language.
15
Architectural Style
[1] Components
They perform a function.
For example: Database, simple computational modules, clients, servers and filters.
[2] Connectors
Enable communications. They define how the components communicate, co-ordinate and co-
operate.
For example: Call, event broadcasting, pipes
[3] Constraints
Define how the system can be integrated.
[4] Semantic models
Specify how to determine a system's overall properties from the properties of its parts.
Data centered architecture possess the property of interchangeability. Interchangeability means any
component from the architecture can be replaced by a new component without affecting the working
of other components.
In data centered architecture the data can be passed among the components.
Constraints are: Client software has to request central data store for information.
16
3.9.1.2 Data Flow Architectures
In this architecture series of transformations are applied to produce the output data. The set of
components called filters are connected by pipes to transform the data from one component to
another. These filters work independently without a bothering about the working of neighboring filter.
If the data flow degenerates into a single line of transforms, it is termed as batch sequential.
In this architecture the hierarchical control for call and return is represented.
17
3.9.1.4 Object Oriented Architecture
In this architecture the system is decomposed into number of interacting objects.
These objects encapsulate data and the corresponding operations that must be applied to manipulate
the data.
The object oriented decomposition is concerned with identifying objects classes, their attributes and
the corresponding operations. There is some control models used to co-ordinate the object operations.
The outer layer is responsible for performing the user interface operations while the components in
the inner layer perform operating system interfaces.
The components in intermediate layer perform utility services and application software functions.
18
3.9.2 Architectural Patterns
In this section we will understand what are architectural patterns? The architectural pattern is
basically an approach for handling behavioral characteristics of software systems. Following are the
architectural pattern domains
1) Concurrency
Concurrency means handling multiple tasks in parallel. For example in operating system, multiple
tasks are executed in parallel. Hence concurrency is a pattern which represents that the system
components can interact with each other in parallel. The benefit of this pattern is that system
efficiency can be achieved.
2) Persistence
Continuity in the data can be maintained by the persistence pattern. In other words the data used
in earlier execution can be made available further by storing it in files or in databases. These
files/databases can be modified in the software system as per the need. In object oriented system
the values of all attributes various operations that are to be executed are persistent for further use.
Thus broadly there are two patterns,
Distribution pattern refers to the way in which the system components communicate with each
other in distributed systems. There are two major problems that occur in distribution pattern
These problems can be solved by other pattern called broker pattern. The broker pattern lies
between server and client components so that the client server communication can be established
properly. When client want some service from server, it first sends message to broker. The broker
then conveys this message to server and completes the connection. Typical example is CORBA.
The CORBA is a distributed architecture in which broker pattern is used.
As architectural design begins, the software to be developed must be put into context—
That is, the design should define the external entities (other systems, devices, people) that the
software interacts with and the nature of the interaction. This information can generally be acquired
from the requirements model and all other information gathered during requirements
engineering. Once context is modeled and all external software interfaces have been described, you
can identify a set of architectural archetypes. An archetype is an abstraction (similar to a class)
that represents one element of system behavior. The set of archetypes provides a collection of
abstractions that must be modeled architecturally if the system is to be constructed, but the archetypes
themselves do not provide enough implementation detail. Therefore, the designer specifies the
structure of the system by defining and refining software components that implement each archetype.
This process continues iteratively until a complete architectural structure has been derived.
19
3.10.1 Representing the System in Context
Architectural context represents how the S/W interacts with entities external to its boundaries.
The design should define the external entities (other systems, devices, people) that the software
interacts with and the nature of the interaction
At the architectural design level, a software architect uses anarchitectural context diagram
(ACD) to model the manner in which software interacts with entities external to its boundaries.
The generic structure of the architectural context diagram is illustrated in Figure.
Safehome Internet-based
Product system
control
panel target system: surveillance
Security Function function
uses
homeowner peers
uses
uses
sensors sensors
In figure, systems that interoperate with the target system (the system for which an architectural
design is to be developed) are represented as
Super ordinate systems: those systems that use the target system as part of some higher-level
processing scheme.
Subordinate systems—those systems that are used by the target system and provide data or
processing that are necessary to complete target system functionality.
Peer-level systems—those systems that interact on a peer-to- peer basis (i.e., information is either
produced or consumed by the peers and the target system.
Actors—entities (people, devices) that interact with the target system by producing or consuming
information.
Each of these external entities communicates with the target system through an interface (the small
shaded rectangles).
20
C o n t r o lle r
c o m m u n ic a t e s w it h
N o d e
D e te cto r In d i c a t o r
F ig u r e 1 0 . 7 U M L r e la t io n s h ip s f o r S a f e H o m e s e c u r it y f u n c t io n a r c h e t y p e s
(ad ap t e d f ro m [ BO S0 0 ] )
An archetype is a class or pattern that represents a core abstraction that is critical to the design of
an architecture for the target system.
In general, a relatively small set of archetypes is required to design even relatively complex systems.
Archetypes are the abstract building blocks of an architectural design.
In many cases, archetypes can be derived by examining the analysis classes defined as part of the
requirements model. An archetype is a generic, idealized model of a person, object, or concept from
which similar instances are derived, copied, patterned, or emulated. :
Node : Represents a cohesive collection of input and output elements of the home security function.
For example a node might be included of (1) various sensors and (2) a variety of alarm (output)
indicators.
Detector : An abstraction that covers all sensing equipment that feeds information into the target
system.
Indicator. An abstraction that represents all mechanisms (e.g., alarm siren, flashing lights, bell) for
indicating that an alarm condition is occurring.
Controller. An abstraction that describes the mechanism that allows the arming (Supporting) or
disarming of a node. If controllers reside on a network, they have the ability to communicate with
one another.
21
3.10.4 Describing Instantiations of the System
The architectural design that has been modelled to this point is still relatively high level. The context
of the system has been represented Archetypes that indicate the important abstractions within the
problem domain have been defined, The overall structure of the system is apparent, and the major
software components have been identified. However, further refinement is still necessary. To
accomplish this, an actual instantiation of the architecture is developed. It means, again it simplify by
more details.
Architectural Mapping using Data Flow
A transform flow is a sequence of paths which forms transition in which input data are
transformed into output data.
Transaction flow
A transaction flow represents the information flow in which single data item triggers the
overall information flow along the multiple paths. This triggering data item is called
transaction.
22
Problem description: The automated railway reservation system is prepared for reserving the railway
ticket online. Various activities that the user can perform are -
After registering himself/herself to the system, user must have to log in. He /she can make the enquiry
about the trains either by entering the train number or by entering the source and destinations.
User can see the availability of seats by entering the passenger details and journey details. If the seats
are available then he can make the reservations by making the payment. The user then prints the E-
Ticket.
User can view the latest status of his reservations by simply entering the PNR number.
If the user wants to cancel some reservations then he/she has to enter the PNR number. When user
selects for the cancel reservations option then refund amount is paid to the customer and appropriate
records are updated.
The Level 0, Level 1 and Level 2 DFD, Level 3 DFD are as shown below –
23
Level 1 DFD
24
Level 3 DFD for “Make Reservation”
25
The fundamental system model can be represented by level 0 DFD and supporting information. This
supporting information can be obtained from the two important documents called 'system
specification' and 'software requirement specifications'. Both of them describe the information flow
and structure at software interface.
Step 2: Review and refine the data flow diagram for software
The level 0 DFD is refined and the higher level DFD is drawn. Refer Level 1 DFD and Level 2 in
which the Book Ticket functionality is reviewed and refined.
Step 3: Determine if the DFD has the transform or transaction flow characteristics
The information flow within the system is usually represented as transform flow. However, there can
be dominance of transaction characteristics in the DFD. Based on characteristics of the DFD the
transformation flow or transaction flow is decided.
Step 4: Isolate the transform center by specifying incoming and outgoing flow boundaries
After identifying that the DFD shows the transformation flow, we can easily separate | out the
incoming and outgoing flow boundaries and the transform center can be identified.
Step 5: Perform first level factoring
After performing the first level factoring the program structure results in top down architecture where
Top level components perform decision making
26
Step 6: Perform second level factoring
In the second level factoring individual bubble of DFD is mapped into appropriate module within
architecture.
There could be one-to-one mapping of bubble of DFD into the software module or two or three
bubbles can be combined together to form a single software module.
After performing the second level factoring the architecture serves as the first-iteration design.
Step 7: Refine the first iteration architecture using design heuristics for improved software
quality
The first-iteration architecture can be refined by applying the module independency.
The modules can be exploded or imploded with high cohesion and minimum coupling. The
refinement should be such that the structure can be implemented without -difficulty, tested without
confusion and can be easily maintained.
27
of interface design is necessary because of many reasons such as: software is difficult to use, the use
of software forces the user to make mistakes due to lack of understandings about the system.
While designing for user interface the very first step is to identify user, tasks and environmental
techniques. Based on user tasks, user scenarios are prepared. Such user scenarios help to design user
interface objects and corresponding actions. This set of objects and actions help in deciding the screen
layout. Once such a layout has been prepared, appropriate icons, screen texts and menu items can be
placed at respective positions.
Define the interaction modes in such a way that user will be restricted from doing the
unnecessary actions
Interaction mode means the current state in which user is working and being in such a mode user
is supposed to do the related tasks only if the user has to perform unnecessary actions at such time
then the GUI becomes frustrating.
The objects appearing on the screen should be interactive with the user
This also means that user should be in position to adjust the object appearing on the screen. For
example in ’Paint’ one should be able to stretch the oval or edit the text written in the object.
28
3.13.2 Reduce the User's Memory Load
If the user interface is good then user has to remember very less. In fact the design should be such that
the system remembers more for the user and ultimately it assists the user to handle the computer based
systems. Following are the principles suggested by Mandel to reduce the memory load of the user.
29
Format, Tools, Table, Window, Help on every interface. Then tool bars and then design layouts
are placed on the interface.
If certain standards are maintained in previous model of application do not change it until
and unless it is necessary
Certain sequence of operation becomes a standard for the user, then do not change these standards because user
becomes habitual with such practices. For instance control + s is for saving the file then it has become a standard
rule now, if you assign different short cut key for saving then it becomes annoying to the user
Typically there are four types of models that can be prepared in interface analysis and design. Let us
understand each of them
User model
To design any user interface it is a must to understand the user who is using the system. Hence in
this model the profile of user is prepared by considering age, sex, educational, economic and
cultural background. The software engineer prepares user model. Globally there are three kinds of
users
User Description
Novice The user with very little knowledge of the computer who simply knows
semantics (simply the wants) of the system and does not know the
implementation of such system.
Knowledgeable and The user having knowledge about, the semantics of the system as well as
intermittent having little knowledge of syntactic of the system.
30
Knowledgeable and The user with good semantic as well as syntactic knowledge of the system.
frequent
Design Model
It consists of data, architectural, interface and procedural representation of the software. While
preparing this model the requirement specification must be used properly to set the system
constraints. Software engineer prepares the design model of the interface.
The user model is the representation of what user thinks about the system? Basically any user
interface design is heavily dependent upon the description obtained from the user about his wants
and needs. If the user is knowledgeable then more complete description of the system can be
obtained than that of novice user.
Implementation model
The implementation model generates the look and feel of interface. This model describes the
system's semantic and syntax. It is very necessary to match the implementation model with the
user's mental model then only user can feel comfortable with the developed system.
Finally the interface designer has to resolve any differences within these models. The supreme
principle that has to be followed in interface analysis and design method is that: know the user and
know the task
As shown in the above figure each of these tasks can be performed more than once. At each pass
around the system more requirements can be elaborated and detailed design can be performed.
In this phase three major factors are focused ie. User, task and environment. First of all the user
profile is analyzed to understand the user and to elicit the requirements, then the tasks that are
required to carry out desired functionality are identified and analyzed. The analysis is made on
user environment which involves the physical work environment. Finally analysis model is
created for the interface. This model serves as a basis for the design of user interface.
31
Interface Analysis and Design Process
The interface design is a phase in which all the interface objects and corresponding actions of
each task are defined.
[3] Implementation
The implementation phase involves creation of prototype using| which the interface scenarios can
be evaluated. To accomplish the construction of user interface some automated tools can be used.
[4] Validation
The goal of validation is to validate the interface for its correct performance. During validation it
is tested whether all the user requirements gel satisfied or not. The purpose of validation is also to
check whether the interface is easy to learn and easy to use.
User interviews:
This is the most effective technique in which some representatives from software team meet
the end user to better understand the user needs, motivations and many other issues. Meetings
are conducted for this purpose.
32
Sales input
Sales people interact with the users regularly and collect the information. Based on this
information the users are categorized in particular groups and thereby their requirements are
better understood.
Marketing input
Support input
Support staff keeps a regular interaction with the user interaction for knowing the certain
things like the likings and dis-likes of the users, which features are easy to use and so on.
Following is a set of questions that will help the interface designer better understand the users of a
system -
1) Use-cases
Use cases describe the manner in which the actor interacts with the system. Use cases always
show how the end user performs specific work related task. Use cases are mostly written in
informal way i.e. in paragraphs.
33
2) Task elaboration
For task elaboration the functional decomposition or the stepwise refinement of the processing
task is done. The task analysis for interface design adopts elaborative approach. During the task
elaboration, identification and classification of tasks is performed.
3) Object elaboration
The software engineers examine the use case and the other information obtained from user and
extract the information about the physical objects. These objects are further classified into classes.
The attributes of each class are defined and evaluation of actions will identify the list of
operations.
4) Workflow analysis
When there are many users who are simultaneously using the system then for understanding the
flow of the series of tasks conducted the work flow analysis technique is applied. Workflow
processes can be easily modelled using swim lane diagram. In swim lane diagram, the modelling
is done for the classes who are responsible for carrying out the activities.
The reservation system makes use of some important classes such as Booking service, Passenger
service and Finance service. Following are the set of activities -
In workflow analysis process elaboration occurs. After establishing the workflow analysis, the task
hierarchy for each user type should be specified. In this hierarchical representation, there is a stepwise
representation of each task identified for each user. For example
34
3.16 Interface Design
After interface analysis all the tasks and corresponding actions are identified. Interface design is an
iterative process in which each design process occurs more than once. Each time the design step gets
elaborated in more detail. Following are the commonly used interface design steps -
1. During the interface analysis step define interface objects and corresponding actions or
operations.
2. Define the major events in the interface. These events depict the user actions. Finally model
these events.
3. Analyze how the interface will look like from user's point of view.
4. Identify how the user understands the interface with the information provided along with it.
While designing the interface software engineer communicates the user and according to his thinking
about the interface, software engineer draws the sketches. Get [\ approved from the user and then
35
work on defining objects and corresponding actions, While designing the interface the designer has to
follow
Golden rules
Model the interface
Analyze the working environment
The display contents can be spreadsheets, 3D models, pictures or images, a graph or specialised
information such as audio or video files.
During this analysis step, the format and aesthetics of the display contents are considered.
For determining the format and the aesthetics of the contents following questions can be asked or
answered.
a) Is it possible for the interface to display various types of data in a consistent manner on
geographic location?
b) Is it possible to customize the screen location with respect to the contents?
c) If the large report is partitioned properly for the sake of understanding?
d) Is the summary of large amount of data available directly?
e) Will the graphical output be displayed properly so that it will fit to the display device?
f) Is there a use of sophisticated color combination?
g) Are the errors and warning messages presented to the user in interactive manner?
Answers to these questions will help in gathering the requirements for the presentation of the
contents.
In some applications the user interface for the computer based systems is placed in very user friendly
environment. In such a situation, there may be interactive presentation of the information, proper
lighting, good display height, easy keyboard access, proper sitting arrangement and so on. In such
work environment using the application becomes an enjoyable activity.
But there are some workplaces in which there may be insufficient light, lot of noise and distractions,
unavailability of keyboard or mouse interfacing and so on. Using the application in such environment
becomes difficult and frustrating.
In addition to these physical factors, consideration of work place culture is extremely important.
These factors are raised by following questions –
Will more than one person access the same information before providing the input?
Will the system interaction be measured in terms of some measure? For instance: Time
required for processing of data.
Will the system provide some kind of support to the user for handling it?
These issues must be solved before the completion of interface design phase.
36
Design Issues
There are four important interface design issues that are depicted by following figure
Any user hate the delayed response time. Response time is the amount of time taken by the system to
respond from the point at which user performs some control action (such as clicks on some point or
press some key on the keyboard.
ABC has encountered error 1033. Now such type of error messages do not direct the user about what
went wrong. Following are the characteristics for presenting errors.
The error message should be in a language which user can understand. For example: Remote server
not responding.
There should be some useful message along with error in order to recover from the error. For
example: Press enter to exit
There should be some audible or visual cue along with the error message. For I example: beep sound
or highlighting back ground of the text.
37
There should not be any negative impact of error on the user. For example: File XYZ.SYS has been
deleted such error will cause frustration on the user.
The wording of the error should be carefully used and it should not blame user because nobody likes
to get criticized
Thus error messages should be so effective that they should bring qualitative interaction between the
user and the system.
There are typically two ways by which the user handles the system i.e. keyboard and mouse. The
system can be handled using commands by the power user (i.e. knowledgeable and frequent users)
whereas any ordinary user makes use of GUI and he prefers not to use any command as such. There
are number of design issues for typed command and menu labels.
In which form the command will be? Will there be any menu for corresponding
command?
Will the commands be difficult to learn and Are the menus self-explanatory
remember?
What to do if the command is forgotten? Is there any consistency between menu and
submenus
Is there any abbreviation for the command? Or
can they be customized?
Application accessibility
In modern era, Computer application are used by everybody and everywhere. Hence software
engineers must develop a mechanism by which the most frequently required applications must be
availed easily.
The software is most important entity for the users who are physically challenged. This can be used
by them for moral, legal and business reasons.
Accessibility guidelines are used for while developing the applications. These guidelines are mostly
used by the web applications. The guideline assist in designing the interfaces used within the
application.
The accessibility guideline also provides the guideline for assistive technology that addresses the
needs of those visual, hearing, speech and mobility impairments.
Internationalization
There are situations in which the user interface is developed for localized purpose and for local
language. If the same interface is required in other side of the country then existing interface is used
with more or less modifications.
The real challenge is to develop globalized software. That means the user interfaces should be
designed to accommodate generic core functionality. This functionality can be used by any user
belonging to any country.
38
These guidelines address the design and implementation issues.
The Unicode standard has been developed to handle the challenges of managing the natural
languages with lots of characters and symbols.
The OMG Unified Modeling Language Specification defines the concept of component more
formally and it is -
Component is a modular, deployable and replaceable part of system that encapsulates the
implementation and exposes the set of interfaces".
Components are the part of software architecture and hence they are important factors in achieving the
objectives and requirements of system to be built.
Design models can be prepared using object oriented views and conventional views.
If object oriented software engineering approach is adopted then the component level design
will emphasize on elaboration of analysis classes and refinement of infrastructure classes,
The detailed description of attributes, operations and interfaces of these infrastructure classes
is required during the system building.
This principle states that - A module or a component should be open for extension and j should be
closed for modification. A designer should design a component in such a ) manner that some
functionalities can added to it if required but in doing so there \ should not be any change in the
internal design of the component itself.
This principle states that - subclasses should be substitutable for their base classes. This •
principle is proposed by Barbara Liskov. A component that contains the base class and if that
component works properly then the same component should work properly even if the derived
class of that base class is used by the component as a substitute.
39
3. Dependency Inversion Principle
The components should be dependant on the other abstract components and not on the concrete
component. This is because if some component has to be extended then it becomes easy to
enhance it using other abstract component instead of concrete component.
Many client specific interfaces are better than one general purpose interface. According to this
principle, designer should create specialized interfaces for each major category. So that the clients
can access the interfaces based on the category. If a general purpose interface is created then
multiple clients may try to access it for different operations at the same time.
1. Components
Components are the part of architectural model. The naming conventions should be established
for components. The component names should be 2 specified from the problem domain. These
names should be meaningful.
2. Interfaces
Interfaces serve important role in communication and collaboration. The interface should be
drawn as a circle with a solid line connecting it to another element. This indicates that the element
to which it is connected offers the interface. The interface should flow from left side of
component. Only important interfaces must be drawn.
The dependencies must be shown from left to right. The inheritance should be shown from bottom
to top i.e. from derived to base class. The component interdependencies should be represented via
interfaces.
Cohesion
In component level design for object oriented systems, the cohesion means a class or a component
that consists of data and operations that are closely related to each other and related to the class itself.
Various types of cohesions are
1. Functional
In this type of cohesion the each module performs only one component.
2. Layer
This type of cohesion is used in packages, components and classes. In this type of cohesion the
higher level layer access the functionalities of the lower levels but the lower level layers do not
access the functionalities of the higher level layers.
3. Communicational
When all the operations of the class access the same set of data then this type of cohesion occurs.
40
4. Sequential
In this type of cohesion, the components are grouped together in such a manner that the output of
one operation is provided as input to another operation. So that all the operations execute in some
specific sequence.
5. Procedural
In this cohesion the procedures are invoked immediately one after the other.
6. Temporal
The cohesion in which the operations specify specific behavior is called temporal cohesion.
7. Utility
The components, classes or operations are grouped together if they perform some specific
operation otherwise they are not related with each other.
Coupling
Coupling is the manner and degree of interdependence between software modules; a measure of how
closely connected two routines or modules are; the strength of the relationships between modules.
Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and
vice versa. Low coupling is often a sign of a well-structured computer system and a good design, and
when combined with high cohesion, supports the general goals of high readability and maintainability.
Coupling is a mechanism of degree to which the classes are connected to one another.
Types of coupling
Coupling can be "low" (also "loose" and "weak") or "high" (also "tight" and "strong"). Some
types of coupling, in order of highest to lowest coupling, are as follows:
Procedural programming
A module here refers to a subroutine of any kind, i.e. a set of one or more statements having a
name and preferably its own set of variable names.
Content coupling (also known as Pathological coupling) occurs when one module modifies
or relies on the internal workings of another module (e.g., accessing local data of another
module).
Therefore changing the way the second module produces data (location, type, timing) will
lead to changing the dependent module.
Common coupling (also known as Global coupling) occurs when two modules share the
same global data (e.g., a global variable).
41
Changing the shared resource implies changing all the modules using it.
External coupling occurs when two modules share an externally imposed data format,
communication protocol, or device interface. This is basically related to the communication to
external tools and devices.
Control coupling is one module controlling the flow of another, by passing it information on
what to do (e.g., passing a what-to-do flag).
Stamp coupling occurs when modules share a composite data structure and use only a part of
it, possibly a different part (e.g., passing a whole record to a function that only needs one field
of it).
This may lead to changing the way a module reads a record because a field that the module
does not need has been modified.
Data coupling occurs when modules share data through, for example, parameters. Each datum
is an elementary piece, and these are the only data shared (e.g., passing an integer to a
function that computes a square root).
This is the loosest type of coupling. It can be achieved by state decentralization (as in objects)
and component communication is done via parameters or message passing
[8] No coupling
Object-oriented programming
[1] Subclass Coupling
Describes the relationship between a child and its parent. The child is connected to its parent,
but the parent is not connected to the child.
When two actions are bundled together into one module just because they happen to occur at
the same time.
In recent work various other coupling concepts have been investigated and used as indicators
for different modularization principles used in practice
Disadvantages of Coupling
Tightly coupled systems tend to exhibit the following developmental characteristics, which
are often seen as disadvantages:
42
1. A change in one module usually forces a ripple effect of changes in other modules.
2. Assembly of modules might require more effort and/or time due to the increased inter-module
dependency.
3. A particular module might be harder to reuse and/or test because dependent modules must be
included.
The goal of component level design is to translate design model into operational software.
Graphical, tabular or text based notations are used to create a set of structured programming
constructs. These structured programming constructs translate each component into procedural design
model. Hence the work product of component level design is procedural design model.
Structured Programming
There are three constructs of structured programming
1. Sequence
2. Condition
3. Repetition
Sequence denotes a linear processing of the statements. Condition provides the facility to test the
logical conditions (For example if-then-else conditions). Repetition is used to denote the looping.
The structured programming constructs are the logical chunks that allow a reader to recognize
procedural element from each programming module. This ultimately enhances the readability of the
program.
Graphic
Name Meaning
Notations
43
With help of above graphical notations the three programming constructs can be represented as
follows
These programming constructs can be nested one. That means one programming construct can be
within another construct.
Another graphical notation is box diagram. This notation is also called as Nassi and Shneiderman
chart (Nassi and Shneiderman are the names of the developer of this- notations) or NS chart. These
notations are shown in the figure below
44
Following are the characteristics of the NS chart
1. The scope of the programming constructs such as repetition, if-then-else is well defined.
2. Arbitrary transfer of the control is not possible using this notation.
3. Recursion can be represented conveniently
4. The scope of local and global data can be defined systematically.
1. The first section is at the upper left corner. It consists of list of conditions.
2. The second section is the lower left hand corner. It consists of list of actions.
3. The right- hand portion is a matrix which represents the combination of conditions and
actions. The combination of condition and actions together form processing rules for that
particular procedure.
For example -
45
Program Design Language (PDL)
A program design language is also called pseudo code or structured English. This is similar to English
but is used as a generic reference for design language. The PDL is not compiled. It is used to translate
the design into the programming language.
A basic PDL syntax should possess the programming constructs for interface description, procedure
definition, data declaration, condition constructs, repetition constructs and I/O constructs.
For example: Following is a PDL which demonstrates the procedure for searching the name John
from the table. IF the name is found then index of the table is returned
46
Part-A
Design process
1. State the guidelines for modular design.
The guideline for modular design can be given as:
After preparing the preliminary design a first level prototype is created. This prototype is evaluated by
the user.
The feedback of both the above mentioned reviews is given to designer to make appropriate design
modifications.
This evaluation cycle is continued no further modifications are suggested in the interface design.
Vertical partitioning suggests the control and work should be distributed top-down in program
structure.
The user can switch from one task to another very easily. He can also interact with many applications
simultaneously. The application information remains visible in its own window.
5. What is the work product of software design process and who does it ? [Nov/Dec 2012]
The work product of software design is the design specification. This specification consists of design
models that describe data, architecture, interfaces and components. Software engineers can do it but
while designing the complex systems specialized system engineers are required.
Design Concepts
6. Define the term software architecture.
The software architecture is the hierarchical structure of software components and their interactions.
In software architecture the software model is designed. The structure of that model is partitioned
horizontally or vertically.
47
7. What is meant by transaction mapping? How it is used in software design?
In transaction mapping the user interaction subsystem is considered and DFD is j mapped into
transaction processing structure.
In transaction mapping technique, the user command which is given as input, flows j into the system
and produces more information flows, ultimately causes the output flow I from the DFD.
This kind of partitioning have fewer side Vertical partitioning define separate branches of the
effects in. change propagation or error module hierarchy for each major function Hence
propagation these are easy to maintain the changes
9. What are the various models produced by the software design process ?
Various models produced during design process are -
Data design model used to transform the information domain model of analysis phase into the data
structures.
The architectural design model is used to represent the relationship between major structural elements
with the help of some "design patterns."
The interface design model describes how software interacts within itself.
In the component-level design model the structural elements of software architecture into procedural
description of software components.
10. What are the quality parameters considered for effective modular design?
[OR]
State different criteria’s applied to evaluate an effective modular system.
[May/June 2014]
Various parameters considered for effective modular design are -
Functional independence - By using functional independence functions may be compartmentalized
and interfaces are simplified. Independent modules are easier to maintain with reduced error
propagation.
Cohesion - A cohesive module performs only "one task" in software procedure with little interaction
with other modules. In other words cohesive module performs only one thing.
Coupling - Coupling effectively represents how the modules can be "connected" with other module or
with the outside world. Coupling is a measure of interconnection among modules in a program
structure.
48
12. List out at least four design principles of a good design.
The design process should not suffer from "tunnel vision".
The design should be traceable to analysis model.
The design should exhibit the uniformity and integrity.
Design is not coding and coding is not design.
Design Model
13. “Modularity is the single attribute of the software that allows a program to be
intellectually manageable” - How this is true?
This is quoted by Glenford Mayers. Consider that there is a large program composed of single
module. Such a program cannot be grasped by reader. The control paths, span of reference, number of
variables and overall complexity of such a program is beyond understanding. On the other hand if the
program is divided into certain number of modules then overall complexity of the program gets
reduced. The error detection and handling can be done effectively. Also changes made during testing
and maintenance become manageable. Hence it is true that "Modularity is the single attribute of the
software that allows a program to be intellectually manageable".
i) Data dictionary
ii) Entity relationship diagram
iii) Data flow diagram
iv) State transition diagram
v) Control specification
vi) Process specification
15. Name the three levels of abstraction, which are in practice for the design.
Abstraction is the process of picking out common features of objects and procedures. For example, a
programmer would use abstraction to note that two functions perform almost the same task and can be
combined into a single function.
Abstraction is one of the most important techniques in software engineering and is closely related to
two other important techniques -- encapsulation and information hiding. All three techniques are used
to reduce complexity.
17. What are various supporting documents to be prepared for the software ?
Stage Software Document Purpose Of The Document
System feasibility Feasibility report To check the feasibility of the software
study development is checked in this stage
49
Requirement Software requirement The requirement gathering and analysis is made
analysis and project specification(SRS) in this document. The purpose of this document
planning Project plan is to identify scope of the project, effort
(it includes RMMM plan estimation and determine the project schedule.
also)
Design Design document The detailed system design is given in this
document.
Code Programs Algorithms using suitable programming
languages are implemented.
Testing Test plan, test report This document typically contains various test
cases and test suits.
Installation Installation manual/user This document contain the, specific system
guide requirements that are must for installing the
software system being developed. User
guide/manual helps the end user to operate the
system. .
Design Heuristic
18. What is an architectural style?
The architectural model or style is a pattern for creating the system architecture for given problem.
However, most of the large systems are heterogeneous and do not follow single architectural style.
User interface.
External interface to other systems, networks and devices.
Internal interfaces between various design components.
21. Why it is necessary to design the system architecture before specifications are
completed?
The system architecture defines the role of hardware, software, people, database procedures and other
system elements. Designing of system architecture will help the developer to understand the system as
a whole. Hence system architecture must be built before specifications are completed.
22. If a module has logical cohesion what kind of coupling is this module likely to have with
others?
When a module that performs a tasks that are logically related with each other is called logically
cohesive. For such module content coupling can be suitable for coupling with other modules. The
content coupling is a kind of coupling when one module makes use of data or control information
maintained in other module.
50
System design is process of translating customer's requirements into a software product layout. In this
process a system design model is created.
Architectural Design
24. List the architectural models that can be developed.
Following are the architectural models that can be developed
Data centered architectural
Data flow architectures
Call and return architecture
Object oriented architecture
Layered architectures
26. What are the design quality attributes FURPS mean? [ND 2017/2015]
The design attributes FURPS stands for
Functionality: Functionality can be checked by assessing the set of features and capabilities
of the functions.
Usability: The usability can be assessed by knowing the usefulness of the system
Reliability: Reliability is a measure of frequency and severity of failure.
Performance: It is a measure that represents the response of the system.
Supportability: It is also called maintainability. It is the ability to adopt the enhancement or
changes made in the software.
Architectural styles
28. What is software architecture?
Software architecture is a structure of systems which consists of various components, externally
visible properties of these components and inter-relationships among these components.
29. Name some of the commonly used architectural styles. [MJ 2015]
The commonly used architectural styles are
The degree to which a component, system or process meets specified requirements and/or
user/customer needs and expectations.
51
31. Differentiate between Cohesion and Coupling.
Cohesion Coupling
Cohesion is the indication of the Coupling is the indication of the
relationship within module. relationships between modules.
Cohesion shows the module’s relative Coupling shows the relative
functional strength. independence among the modules.
Cohesion is a degree (quality) to which a Coupling is a degree to which a
component / module focuses on the single component / module is connected to the
thing. other modules.
34. If a module has a logical cohesion, what kind of coupling in this module likely to have?
[MJ 2016]
If a module has a logical cohesion, the coupling in this module likely to have is data coupling
1. To refine the analysis classes by providing the detail design, so that further implementation
can be done easily.
2. To create new set of classes for implementing the infrastructure of the software.
52
Data flow models or class diagrams
Information obtained from application domain
Architectural patterns and styles.
38. What is the need for architectural mapping using data flow? [MJ 2016]
Architectural Mapping Using Data Flow
A mapping technique, called structured design, is often characterized as a data flow-oriented
design method because it provides a convenient transition from a data flow diagram to software
architecture.
The transition from information flow to program structure is accomplished as part of a six
step process:
(1) The type of information flow is established,
(2) Flow boundaries are indicated,
(3) The DFD is mapped into the program structure,
(4) Control hierarchy is defined,
(5) The resultant structure is refined using design measures.
(6) The architectural description is refined and elaborated.
Example of data flow mapping, a step-by-step “transform” mapping for a small part of the
SafeHome security function.
In order to perform the mapping,
The type of information flow must be determined. It is calledtransform flow and exhibits a
linear quality.
Data flows into the system along an incoming flow path where it is transformed from an
external world representation into internalized form. Once it has been internalized, it is
processed at a transform center.
Finally, it flows out of the system along an outgoing flow path that transforms the data into
external world form.
40. What are the golden rules of the interface design? [ND 2015]
Thao Mandel has proposed three golden rules for user interface design -
1) Place the user in control
2) Reduce the user's memory load
3) Make the interface consistent.
42. List down the steps to be followed for User Interface Design. [MJ 2015 /2017]
Following are the commonly used interface design steps -
53
1. During the interface analysis step define interface objects and corresponding actions or
operations.
2. Define the major events in the interface. These events depict the user actions. Finally model
these events.
3. Analyze how the interface will look like from user's point of view.
4. Identify how the user understands the interface with the information provided along with it.
4 Target object - The target object is an object in which some object can be merged.
5 Source object - The source object is an object which can be dragged and dropped to some other
object
6 Application object - The object which represents the application specific data.
44. List out the graphical notations used by structured programming. [May/June 2015]
Graphic
Name Meaning
Notations
47. Draw the context flow graph of a ATM automation system. [ND 2017]
54
48. Difference between Function Oriented Design and Object Oriented design. [MJ 2016]
Function Oriented Design Object Oriented Design
The basic abstractions, which are given to the The basic abstractions are not the real world
user, are real world functions functions but are the data abstraction where the
real world entities are represented.
Functions are grouped together by which a higher Functions are grouped together on the basis of
level function is obtained.an eg of this technique the data they operate since the classes are
is SA/SD. associated with their methods
In this approach the state information is often In this approach the state information is not
represented in a centralized shared memory represented in a centralized memory but is
implemented or distributed among the objects of
the system.
Approach is mainly used for computation Whereas OOD approach is mainly used for
sensitive application, evolving system which mimics a business
process or business case.
We decompose in function/procedure level We decompose in class level
Top down Approach Bottom up approach
It views system as Black Box that performs high Object-oriented design is the discipline of
level function and later decompose it detailed defining the objects and their interactions to
function so to be mapped to modules solve a problem that was identified and
documented during object-oriented analysis.
Begins by considering the use case diagrams and Begins by identifying objects and classes.
Scenarios.
49. What UI design patterns are used for the following [MJ 2017/ND 2016]
Navigation Through Menus And Web Page-Navigation
Shopping cart-Miscellaneous
Tables-Dealing with data
Page layout-Getting Input
50. If a module has logical cohesion, what kind of coupling is this module likely to have?
When a module that performs a tasks that are logically related with each other is called logically
cohesive. For such module content coupling can be suitable for coupling with other modules. The
content coupling is a kind of coupling when one module makes use of data or control information
maintained in other module.
55
51. What is the need of architectural mapping using data flow? M/J 2016
Transform mapping and transaction mapping is used for architectural mapping using data flow
diagrams.
52. What architectural styles are preferred for the following systems? Why? N/D 2016
a. Networking
b. Web based systems
c. Banking system.
a) Pipe and filter can be used for networking system. The pipe and filters pattern has set of
components called filters, connected by pipes which transmit data from one component to
next.
b) The layered architecture can be used for web based systems. In this architecture
a. At outer layer: There are component service user interface operations
b. At inner layer: Components perform operating system interfacing
c. At intermediate layer: There are utility service and application software functions.
c) The object oriented architecture can be used for banking system. In this architecture, each
object encapsulates data and operations. The object are identified and corresponding operations
are performed.
53. What UI design patterns are used for the following? N/D 2016
a. Page layout
b. Tables
c. Navigation through menus and web pages
d. Shopping cart
a) Page layout – Card stack
b) Tables – Sorted tables
c) Navigation through menus and pages – Edit-in place
d) Shopping cart – Shopping cart which provide list of items selected for purchase.
55. What UI design pattern are used for the following? A/M 2017
a. Page layout
b. Navigations through menus and web pages.
Ref. Question No 53
57. Draw the context flow graph of ATM automation system. N/D 2017
Refer Question no 47
58. List the principle of software design. A/M 2018
The design process should not suffer from “tunnel vision”.
The design should be traceable to the analysis model.
The design should exhibit uniformity and integration. iv. Design is not coding.
The design should not reinvent the wheel.
56
59. How does the data flow diagram help in design of software system? [May 2019]
Data flow diagrams are used to graphically represent the flow of data in a business
information system. DFD describes the processes that are involved in a system to transfer data
from the input to the file storage and reports generation.
Data flow diagrams can be divided into logical and physical. The logical data flow diagram
describes flow of data through a system to perform certain functionality of a business. The
physical data flow diagram describes the implementation of the logical data flow.
57
Outline the utilization of User Interface Analysis and what are the various [ND 2012]
models of user interface design. [Nov/Dec 2012 – 8M] [ND 2017]
10
[ND 2015]
[MJ 2016]
11 Explain in detail the various techniques used in task analysis and modelling
Explain the various interface design steps in detail and how work
12
environment analysis
13 Discuss in detail about commonly known design issues.
Briefly explain the basic component level design principals and provide [MJ 2016]
14
guidelines for the same. [ND 2016]
Explain in detail about Cohesion and Coupling. [ND 2015]
15
[MJ 2016]
Explain in detail various constructs of structured programming along with
16
the notations used.
17 Discuss about the design concepts in a Software development process [ND 2017]
What is software Architecture? Describe in detail different types of software
18 [MJ 2017]
architectures with Illustrations
Explain Design Heuristics and the process involved in Heuristic Evaluation [ND 2014]
19
of a software product [MJ 2016]
List out and explain various elements of data design and the guidelines to be
20 [MJ 2015]
followed in the architectural design of a software
Write a short note on Architectural style and patterns and explain some of [ND 2013]
21
the most popularly used styles.
22 Briefly outline the golden rules of User Interface design. [ND 2016]
List and explain any five fundamental software design concepts. [MJ 2019]
23
Define Software architecture (2 Marks)
Explain and compare the following architectural styles.
24 1.Call and return architecture [MJ 2019]
2.object –oriented architecture
3.Layered architecture
What is software architecture? Outline the architectural styles with an [ND 2019]
25
example.
26 Outline the steps in designing class based components with an example [ND 2019]
58
University Exam Questions
Part A
1. If a module has logical cohesion, what kind of coupling is this module likely to have? M/J 2016
2. What is the need of architectural mapping using data flow? M/J 2016
3. What architectural styles are preferred for the following systems? Why? N/D 2016
a. Networking
b. Web based systems
c. Banking system.
4. What UI design patterns are used for the following? N/D 2016
a. Page layout
b. Tables
c. Navigation through menus and web pages
d. Shopping cart
5. What is the purpose of Petri Net? A/M 2017
6. What UI design pattern are used for the following? A/M 2017
a. Page layout
b. Navigations through menus and web pages.
7. Write a note on FURPS model. N/D 2017
8. Draw the context flow graph of ATM automation system. N/D 2017
9. List the principle of software design. A/M 2018
10. What UI design patterns are used for the following? A/M 2018
Part B
A/M 2015
1. Explain the various coupling and cohesion used in Software design.
2. For a Case study of your choice show the architectural and component design. (16)
N/D 2015
3. Explain the cohesion and coupling types with examples. (8+8)
4. Discuss about User Interface Design of a Software with an example and neat sketch. (16)
M/J 2016
5. Write short notes on the following
i) Design heuristics
ii) User-interface design
iii) Component level design
iv) Data/Class design
6. What is modularity? State its importance and explain coupling and cohesion. (8)
7. Discuss the difference between object oriented and function oriented design. (8)
N/D 2016
8. What is structured design? Illustrate the structured design process from DFD to structured chart with a
case study. (16)
9. Describe the golden rules for interface design. (8)
10. Explain component level design with suitable examples. (8)
A/M 2017
11. What is cohesion? How is it related to coupling? Discuss in detail different types of cohesion and
coupling with suitable examples. (13)
12. What is software architecture? Describe in detail different types of software architecture with
illustrations. (13)
N/D 2017
13. Discuss about the design concepts in a software development process. (13)
14. Discuss about User Interface Design of a software with an example and neat sketch. (13)
A/M 2018
15. What is software architecture? Describe the different software architectural styles with examples.(13
59
16. Explain in detail types of cohesion and coupling with examples. (13)
60