0% found this document useful (0 votes)
83 views86 pages

Unit 3 Oose

The document discusses various software design patterns, focusing on the Model-View-Controller (MVC) framework, which separates applications into three components: Model, View, and Controller, enhancing maintainability and scalability. It also covers other design patterns such as Publisher-Subscriber, Adapter, Command, Strategy, Observer, Proxy, and Facade, each with its own advantages and disadvantages. Additionally, it explains architectural styles that define the structure and interaction of system components.

Uploaded by

divya.cse
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views86 pages

Unit 3 Oose

The document discusses various software design patterns, focusing on the Model-View-Controller (MVC) framework, which separates applications into three components: Model, View, and Controller, enhancing maintainability and scalability. It also covers other design patterns such as Publisher-Subscriber, Adapter, Command, Strategy, Observer, Proxy, and Facade, each with its own advantages and disadvantages. Additionally, it explains architectural styles that define the structure and interaction of system components.

Uploaded by

divya.cse
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 86

UNIT 3

SOFTWARE DESIGN
Model-View-Controller
• The Model-View-Controller (MVC) framework is
an architectural/design pattern that separates
an application into three main logical
components Model, View, and Controller.
• Each architectural component is built to handle
specific development aspects of an application.
• It isolates the business logic and presentation
layer from each other. It was traditionally used
for desktop graphical user interfaces (GUIs).
• Nowadays, MVC is one of the most frequently used
industry-standard web development frameworks
to create scalable and extensible projects.
• It is also used for designing mobile apps.
• MVC was created by Trygve Reenskaug. The main
goal of this design pattern was to solve the
problem of users controlling a large and complex
data set by splitting a large application into specific
sections that all have their own purpose.
Features of MVC
• It provides a clear separation of business logic,
Ul logic, and input logic.
• It offers full control over your HTML and URLs
which makes it easy to design web application
architecture.
• It is a powerful URL-mapping component using
which we can build applications that have
comprehensible and searchable URLs.
• It supports Test Driven Development (TDD).
Components of MVC
• The MVC framework includes the following 3
components:
• Controller
• Model
• View
Controller
• The controller is the component that enables
the interconnection between the views and
the model so it acts as an intermediary.
• The controller is the component that enables
the interconnection between the views and
the model so it acts as an intermediary.
• The controller is the component that enables
the interconnection between the views and
the model so it acts as an intermediary.
View
• The View component is used for all the UI
logic of the application. It generates a user
interface for the user.
• Views are created by the data which is
collected by the model component but these
data aren’t taken directly but through the
controller. It only interacts with the Controller.
Model
• The Model component corresponds to all the data-
related logic that the user works with. This can
represent either the data that is being transferred
between the View and Controller components or
any other business logic-related data.
• It can add or retrieve data from the database. It
responds to the controller’s request because the
controller can’t interact with the database by itself.
• The model interacts with the database and gives the
required data back to the controller.
Working of the MVC framework with an
example:
• Let’s imagine an end-user sends a request to a
server to get a list of students studying in a
class. The server would then send that request
to that particular controller that handles
students. That controller would then request
the model that handles students to return a
list of all students studying in a class.
The flow of Data in MVC Components
• The model would query the database for the
list of all students and then return that list back
to the controller. If the response back from the
model was successful, then the controller
would ask the view associated with students to
return a presentation of the list of students.
This view would take the list of students from
the controller and render the list into HTML
that can be used by the browser.
• The controller would then take that presentation and
returns it back to the user. Thus ending the request. If
earlier the model returned an error, the controller
would handle that error by asking the view that handles
errors to render a presentation for that particular error.
That error presentation would then be returned to the
user instead of the student list presentation.
• The view handles all of the presentations and the
controller just tells the model and view of what to do.
This is the basic architecture and working of the MVC
framework.
The MVC architectural pattern allows us
to adhere to the following design
principles:
• Divide and conquer.
• Increase cohesion.
• Reduce coupling.
• Increase reuse.
• Design for flexibility.
Advantages of MVC:
• Codes are easy to maintain and they can be extended
easily.
• The MVC model component can be tested separately.
• The components of MVC can be developed
simultaneously.
• It reduces complexity by dividing an application into
three units. Model, view, and controller.
• It works well for Web apps that are supported by large
teams of web designers and developers.
• Search Engine Optimization (SEO) Friendly.
Disadvantages of MVC:
• It is difficult to read, change, test, and reuse this
model.
• It is not suitable for building small applications.
• The inefficiency of data access in view.
• The framework navigation can be complex as it
introduces new layers of abstraction which
requires users to adapt to the decomposition
criteria of MVC.
• Increased complexity and Inefficiency of data
Publisher-Subscriber Pattern
• Consider a scenario of synchronous message passing. You
have two components in your system that communicate
with each other. LeLet’ss call the sender and receiver. The
receiver asks for a service from the sender and the sender
serves the request and waits for an acknowledgment from
the receiver.
• There is another receiver that requests a service from the
sender. The sender is blocked since it hasn’t yet received
any acknowledgment from the first receiver. The sender
isn’t able to serve the second receiver which can create
problems. To solve this drawback, the Pub-Sub model was
introduced.
• Publisher Subscriber basically known as Pub-Sub is an asynchronous
message-passing system that solves the drawback above. The sender
is called the publisher whereas the receiver is called the subscriber.
• The main advantage of pub-sub is that it decouples the subsystem
which means all the components can work independently. This is very
important when it comes to writing APIs or working with databases.
• The publisher never sends a direct message to the subscribers, it is
sent to a broker and then the subscribers will get it. Sending a
message to the broker is called publishing whereas listening to
incoming messages is called subscribing. In simple terms, a subscriber
subscribes to a topic(which is like a message broker) and the
publisher pushes messages to the topic and then the topic will push
messages to the subscribers.
What are the Different Components of
Pub/Sub Architecture?
1. Topic: It is basically a place where messages are sent.
2. Subscription: It is basically a service provided by the publisher. It
represents a stream of messages that is to be sent to the
subscriber-only.
3. Publisher: An entity that sends messages to topics.
4. Subscriber: An entity that receives messages from topics based
on Subscription. We can understand it by taking the analogy of
ott platforms. Ott platforms allow you to stream the services
only if you have a subscription. Similarly, a subscription here
works.
5. Acknowledgment: It is a message that subscribers send after
they receive a message from the topic
• There are two delivery methods: push and
pull. A subscriber receives the message by
either pushing the message to the subscriber
or by the subscriber pulling the message from
the topic.
• The below diagram represents the
architecture of pub-sub.
Adapter
• This pattern is easy to understand as the real world is full of
adapters. For example consider a USB to Ethernet adapter.
• We need this when we have an Ethernet interface on one
end and USB on the other. Since they are incompatible with
each other. we use an adapter that converts one to other.
• This example is pretty analogous to Object Oriented
Adapters. In design, adapters are used when we have a
class (Client) expecting some type of object and we have an
object (Adaptee) offering the same features but exposing a
different interface.
To use an adapter:
1. The client makes a request to the adapter by calling
a method on it using the target interface.
2. The adapter translates that request on the adaptee
using the adaptee interface.
3. Client receive the results of the call and is unaware
of adapter’s presence
4. Definition: The adapter pattern convert the interface
of a class into another interface clients expect.
Adapter lets classes work together that couldn’t
otherwise because of incompatible interfaces.
Command
• Definition: The command pattern encapsulates a request
as an object, thereby letting us parameterize other objects
with different requests, queue or log requests, and
support undoable operations.
• In analogy to our problem above remote control is the
client and stereo, lights, etc. are the receivers.
• In a command pattern, there is a Command object that
encapsulates a request by binding together a set of
actions on a specific receiver. It does so by exposing just
one method execute() that causes some actions to be
invoked on the receiver.
• Parameterizing other objects with different requests in
our analogy means that the button used to turn on the
lights can later be used to turn on stereo or maybe open
the garage door.
• queue or log requests, and support undoable operations
means that Command’s Execute operation can store state
for reversing its effects in the Command itself
• The Command may have an added unExecute operation
that reverses the effects of a previous call to execute.It
may also support logging changes so that they can be
reapplied in case of a system crash.
Advantages
• Makes our code extensible as we can add new
commands without changing existing code.
• Reduces coupling between the invoker and
receiver of a command.
Disadvantages:
• Increase in the number of classes for each
individual command.
Strategy pattern
• Strategy pattern is a behavioral design pattern that
allows the behavior of an object to be selected at
runtime.
• It is one of the Gang of Four (GoF) design patterns, which
are widely used in object-oriented programming.
• The Strategy pattern is based on the idea of
encapsulating a family of algorithms into separate classes
that implement a common interface.
• The pattern consists of three main components: the
Context, the Strategy, and the Concrete Strategy.
• The Context is the class that contains the object
whose behavior needs to be changed dynamically.
• The Strategy is the interface or abstract class that
defines the common methods for all the algorithms
that can be used by the Context object.
• The Concrete Strategy is the class that implements
the Strategy interface and provides the actual
implementation of the algorithm.
Advantages
• A family of algorithms can be defined as a class
hierarchy and can be used interchangeably to alter
application behavior without changing its architecture.
• By encapsulating the algorithm separately, new
algorithms complying with the same interface can be
easily introduced.
• The application can switch strategies at run-time.
• Strategy enables the clients to choose the required
algorithm, without using a “switch” statement or a
series of “if-else” statements.
• Data structures used for implementing the algorithm are
completely encapsulated in Strategy classes. Therefore, the
implementation of an algorithm can be changed without
affecting the Context class.
Disadvantages:
• The application must be aware of all the strategies to select
the right one for the right situation.
• Context and the Strategy classes normally communicate
through the interface specified by the abstract Strategy base
class. Strategy base class must expose interface for all the
required behaviours, which some concrete Strategy classes
might not implement.
• In most cases, the application configures the
Context with the required Strategy object.
Therefore, the application needs to create and
maintain two objects in place of one.
Observer pattern
• To understand observer pattern, first you need to
understand the subject and observer objects. The
relation between subject and observer can easily be
understood as an analogy to magazine subscription.
• A magazine publisher(subject) is in the business and
publishes magazines (data).
• If you(user of data/observer) are interested in the
magazine you subscribe(register), and if a new edition is
published it gets delivered to you.
• If you unsubscribe(unregister) you stop getting new
editions.
• Publisher doesn’t know who you are and how
you use the magazine, it just delivers it to you
because you are a subscriber(loose coupling).
• Definition: The Observer Pattern defines a one
to many dependency between objects so that
one object changes state, all of its dependents
are notified and updated automatically.
Advantages
• Provides a loosely coupled design between objects
that interact. Loosely coupled objects are flexible
with changing requirements. Here loose coupling
means that the interacting objects should have less
information about each other. Observer pattern
provides this loose coupling as:
• Subject only knows that observer implement
Observer interface.Nothing more.
• There is no need to modify Subject to add or
remove observers.
• We can reuse subject and observer classes
independently of each other.

Disadvantages:
• Memory leaks caused by Lapsed listener
problem because of explicit register and
unregistering of observers.
Proxy
• Proxy means ‘in place of’, representing’ or ‘in place of’ or ‘on
behalf of’ are literal meanings of proxy and that directly
explains Proxy Design Pattern.
• Proxies are also called surrogates, handles, and wrappers.
They are closely related in structure, but not purpose, to
Adapters and Decorators.
• A real world example can be a cheque or credit card is a proxy
for what is in our bank account. It can be used in place of
cash, and provides a means of accessing that cash when
required.
• And that’s exactly what the Proxy pattern does – “Controls
and manage access to the object they are protecting“.
Benefits
• Proxy pattern is security.
• avoids duplication of objects which might be
huge size and memory intensive.
• increases the performance of the application.
• The remote proxy also ensures about security
by installing the local code proxy (stub) in the
client machine and then accessing the server
with help of the remote code.
Drawbacks/Consequences
• This pattern introduces another layer of
abstraction which sometimes may be an issue
if the RealSubject code is accessed by some of
the clients directly and some of them might
access the Proxy classes. This might cause
disparate behaviour.
Facade
• Facade Method Design Pattern is a part of the Gang of
Four design patterns and it is categorized under Structural
design patterns.
• Before we dive deep into the details of it, imagine a
building, the facade is the outer wall that people see, but
behind it is a complex network of wires, pipes, and other
systems that make the building function.
• The facade pattern is like that outer wall. It hides the
complexity of the underlying system and provides a simple
interface that clients can use to interact with the system.
Advantages of Facade Method Design
Pattern
• Simplified Interface
• Reduced Coupling
• Encapsulation
• Improved Maintainability
Disadvantages of Facade Method Design
Pattern
• Increased Complexity
• Reduced Flexibility
• Overengineering
• Potential Performance Overhead
ARCHITECTURAL STYLES
• The software that is built for computer-based systems also
exhibits one of manyarchitecturalstyles. Each style describes a
system category that encompasses
• A set of components (e.g., a database, computational modules)
that perform a function required by a system;
• A set of connectors that enable “communication, coordination
and cooperation” amongcomponents;
• Constraints that define how components can be integrated to
form the system;
• Semantic models that enable a designer to understand the
overall properties of a system byanalyzing the known
properties of its parts.
• An architectural style is a transformation that is imposed on the design
of an entire system. Theintent is to establish a structure for all
components of the system.
A pattern differs from a style in a number of fundamental ways:
• The scope of a pattern is less broad, focusing on one aspect of the
architecture rather than the architecture in its entirety;
• A pattern imposes a rule on the architecture, describing how the
software will handle some aspect ofits functionality at the
infrastructure level (e.g., concurrency);
• Architectural patterns tend to address specific behavioral issues within
the context of the architecture(e.g., how real-time applications handle
synchronization or interrupts). Patterns can be used in conjunction
with an architectural style to shape theoverall structure of a system.
1) Layered architectures
• A number of different layers are defined, each
accomplishing operations that progressivelybecome
closer to the machine instruction set.
• At the outerlayer, components service user
interface operations.
• At the inner layer, components perform operating
system interfacing.
• Intermediate layers provide utility services and
application software functions.
• The Client-server model is a distributed application
structure that partitions task or workload between the
providers of a resource or service, called servers, and
service requesters called clients.
• In the client-server architecture, when the client
computer sends a request for data to the server through
the internet, the server accepts the requested process
and deliver the data packets requested back to the
client. Clients do not share any of their resources.
• Examples of ClientServer Model are Email, World Wide
Web, etc.
Tiered Architecture
• In Tier Architecture, there is another layer between the
client and the server. The client does not directly
communicate with the server.
• Instead, it interacts with an application server which
further communicates with the database system and then
the query processing and transaction management takes
place.
• This intermediate layer acts as a medium for the exchange
of partially processed data between the server and the
client. This type of architecture is used in the case of large
web applications.
Pipe and Filter Software Architecture
• This software architecture pattern decomposes a task that
performs complex processing into a series of separate
elements that can be reused, where processing is executed
sequentially step by step.
• There are four main components:
• Data Source: The original, unprocessed data
• Data Sink: The final processed data
• Filter: Components that perform processing
• Pipe: Components that pass data from a data source to a
filter, or from a filter to another filter, or from a filter to a
data sink
Advantages
• Suitable for processing that requires clear, systematic steps
in order to transform successive pieces of data, because of
the intuitive flow of processing
• Each filter can be modified easily — as long as the data
input and data output remain the same
• Filters are reusable, old filters can be replaced by new
ones, or new filters can be inserted easily into the flow of
processing — as long as the data input and output
between filters are compatible
• Each component is implemented as a separate, distinct
task, hence having a natural separation of concerns
Disadvantages
• Inefficient and inconvenient to pass around the
full set of data throughout the entire pipe and
filter system, because not every component will
require the full set of data
• Reliability may be an issue if data is lost on the
way between components.
• Having too many filters can slow down your
application, introducing bottlenecks or deadlocks
if one particular filter processes slowly or fails
USER INTERFACE DESIGN
• User interface design creates an effective
communication medium between a human
and a computer.
GOLDEN RULES:
• Place the user in control.
• Reduce the user’s memory load.
• Make the interface consistent.
Place the User in Control
Design principles that allow the user to maintain control are :
• Use modes judiciously (modeless)
• Allow users to use either the keyboard or mouse (flexible)
• Allow users to change focus (interruptible)
• Display descriptive messages and text(Helpful)
• Provide immediate and reversible actions, and feedback (forgiving)
• Provide meaningful paths and exits (navigable)
• Accommodate users with different skill levels (accessible)
• Make the user interface transparent (facilitative)
• Allow users to customize the interface (preferences)
• Allow users to directly manipulate interface objects (interactive)
Reduce the User’s Memory Load:
• Relieve short-term memory (remember)
• Rely on recognition, not recall (recognition)
• Provide visual cues (inform)
• Provide defaults, undo, and redo (forgiving)
• Provide interface shortcuts (frequency)
• Promote an object-action syntax (intuitive)
• Use real-world metaphors (transfer)
• User progressive disclosure (context)
• Promote visual clarity (organize)
Make the Interface Consistent
The interface should present and acquire
information in a consistent fashion. This implies that
• All visual information is organized according to
design rules that are maintained throughoutall
screen displays
• Input mechanisms are constrained to a limited set
that is used consistently throughout the application.
• Mechanisms for navigating from task to task are
consistently defined and implemented.
Set of design principles that help make the
interface consistent are:
• Sustain the context of users’ tasks (continuity)
• Maintain consistency within and across
products (experience)
• Keep interaction results the same
(expectations)
• Provide aesthetic appeal and integrity
(attitude)
• Encourage exploration (predictable)
USER INTERFACE ANALYSIS AND DESIGN
1) Interface Analysis and Design Models:
• User model - Establishes the profile of the end-users of the system Based on
age, gender, physical abilities, education, cultural or ethnic background,
motivation, goals, and personality. A human engineer or the software
engineer establishes a user model
• Design model- The software engineer creates a design model. Derived from
the analysis model of the requirements. Incorporates data, architectural,
interface, and procedural representationsof the software.
• Mental model- The end user develops a mental image. Often called the
user's system perception.Consists of the image of the system that users carry
in their heads.
• Implementation model - The implementers of the system create an
implementation model. Consists of the look and feel of the interface
combined with all supporting information (books, videos, help files) that
describe system syntax and semantics
• Users can be categorized as: i) Novices: No syntactic
knowledge1 of the system and little semantic
knowledge2of the application or computer usage in
general.
• ii) Knowledgeable, intermittent users: Reasonable semantic
knowledge of the applicationbut relatively low recall of
syntactic information necessary to use the interface
• iii) Knowledgeable, frequent users: Good semantic and
syntactic knowledge that often leads to the “power-user
syndrome”; that is, individuals who look for shortcuts and
abbreviated modes ofinteraction.
• 2) The Process: The analysis and design
process for user interfaces is iterative and can
be represented using a spiralmodel.

• Four distinct framework activities are (1)


Interface analysis and modeling (2) Interface
design (3) Interface construction (4) Interface
validation.
• The spiral implies that each of these tasks will occur more than
once, with each pass around the spiralrepresenting additional
elaboration of requirements and the resultant design.
• In most cases, the construction activity involves prototyping—
the only practical way to validate whathas been designed.
(1) Interface analysis focuses on the profile of the users who will
interact with the system.
• Skill level, business understanding, and general receptiveness
to the new system are recorded;and different user categories
are defined.
• For each user category, requirements are elicited. In essence,
understand the system perception for each class of users.
• Once general requirements have been defined, a more
detailed task analysis is conducted.
• Those tasks that the user performs to accomplish the goals
of the system are identified,described, and elaborated
over a number of iterative passes through the spiral.
• Finally, analysis of the user environment focuses on the
physical work environment.
(2) The goal of interface design is to define a set of interface
objects, actions and their screen representations that
enable a user to perform all defined tasks in a manner that
meets every usability goal defined for the system.
(3) Interface construction normally begins with the creation of a
prototype that enables usage scenarios to be evaluated. As the
iterative design process continues, a user interface tool kit may be
used to complete the construction of the interface.
(4) Interface validation focuses on
• The ability of the interface to implement every user task correctly,
to accommodate all task variations, and to achieve all general user
requirements;
• The degree to which the interface is easy to use and easy to learn.
• The users’ acceptance of the interface as a useful tool in their work.
• Subsequent passes through the process elaborate task detail,
design information, and the
• operational features of the interface.
INTERFACE ANALYSIS
• Understand the problem before you attempt to design
a solution. In the case of user interface design,
understanding the problem means understanding.
(1) The people (end users) who will interact with the
system through the interface
(2) The tasks that end users must perform to do their
work
(3) The content that is presented as part of the interface
(4) The environment in which these tasks will be
conducted.
1. User Analysis
• The phrase “user interface” is probably all the
justification needed to spend some time
understanding the user before worrying about
technical matters.
• Information from a broad array of sources can be
used.
• User Interviews.
• Sales input.
• Marketing input.
• Support input.
• The following set of questions will help you to better
understand the users of a system:
• Are users trained professionals, technicians, clerical, or
manufacturing workers?
• What level of formal education does the average user have?
• Are the users capable of learning from written materials or
have they expressed a desire forclassroom training?
• Are users expert typists or keyboard phobic?
• What is the age range of the user community?
• Will the users be represented predominately by one gender?
2. Task Analysis and Modeling
The goal of task analysis is to answer the following
questions:
• What work will the user perform in specific
circumstances?
• What tasks and subtasks will be performed as the
user does the work?
• What specific problem domain objects will the user
manipulate as work is performed?
• What is the sequence of work tasks—the workflow?
• What is the hierarchy of tasks?
• Use cases.
• Task elaboration.
• Object elaboration.
• Workflow analysis.
• Hierarchical representation.
3. Analysis of Display Content
• The user tasks identified lead to the presentation of
a variety of different types of content.
• For modern applications, display content can range
from character-based reports (e.g., a spreadsheet),
graphical displays (e.g., a histogram, a 3-D model, a
picture of a person), or
specialized information (e.g., audio or videofiles).
• The analysis modeling techniques identify the
output data objects that are produced by an
application.
• These data objects may be
(1) Generated by components in other parts of
an application
(2) Acquired from data stored in a database that
is accessible from the application
(3) Transmitted from systems external to the
application in question.
4. Analysis of the Work Environment
• People do not perform their work in isolation. They are
influenced by the activity around them, the physical
characteristics of the workplace, the type of equipment they are
using and the work relationships they have with other people.
• If the products you design do not fit into the environment, they
may be difficult or frustrating to use.
• In some applications the user interface for a computer-based
system is placed in a “user-friendly location” (e.g., proper
lighting, good display height, easy keyboard access), but in
others (e.g., a factory floor or an airplane cockpit), lighting may
be suboptimal, noise may be a factor, a keyboard or mouse may
not be an option, display placement may be less than ideal.
• The interface designer may be constrained by factors that
mitigate against ease of use.
• In addition to physical environmental factors, the
workplace culture also comes into play.
• Will system interaction be measured in some manner
(e.g., time per transaction or accuracy of a transaction)?
• Will two or more people have to share information before
an input can be provided?
• How will support be provided to users of the system?
These and many related questions shouldbe answered
before the interface design commences.
INTERFACE DESIGN STEPS
• Once interface analysis has been completed, all tasks (or
objects and actions) required by the enduser have been
identified in detail and the interface design activity
commences.
• Interface design is an iterative process. Each user
interface design step occurs a number of
times,elaborating and refining information developed in
the preceding step.
• Although many different user interface design models
have been proposed, all suggest somecombination of
the following steps:
1. Using information developed during interface analysis
define interface objects and actions(operations).
2. Define events (user actions) that will cause the state
of the user interface to change. Model this behavior.
3. Depict each interface state as it will actually look to
the end user.
4. Indicate how the user interprets the state of the
system from information provided through the
interface.
• Regardless of the sequence of design tasks,
you should
(1) Always follow the golden rules
(2) Model how the interface will be
implemented
(3) Consider the environment (e.g., display
technology, operating system, development
tools) that will be used.
1. Applying Interface Design Steps:
• The definition of interface objects and the actions that are applied to them is an
importantstep ininterface design.
• To accomplish this, user scenarios are parsed. That is, a use case is written.
• Nouns (objects) and verbs (actions) are isolated to create a list of objects and actions.
• Once the objects and actions have been defined and elaborated iteratively, they are
categorized by type.
• Target, source, and application objects are identified. A source object (e.g., a report
icon)
is dragged and dropped onto a target object (e.g., a printer icon).
• The implication of this action is to create a hard-copy report. An application object
represents application-specific data that are not directly manipulated as part of screen
interaction.
• For example, a mailing list is used to store
names for a mailing. The list itself might be
sorted, merged, or purged (menu-based
actions), but it is not dragged and dropped via
user interaction.
2. User Interface Design Patterns:
• Graphical user interfaces have become so
common that a wide variety of user interface
design patterns has emerged.
Six common design issues are
i) System response time
ii) User help facilities
iii) Error information handling
iv) Command labeling
v) Application accessibility.
vi) Internationalization.

You might also like