Unit 5 Material
Unit 5 Material
1
Architecture serves as a blueprint for a system. It provides an abstraction to manage the
system complexity and establish a communication and coordination mechanism among
components. It defines a structured solution to meet all the technical and operational
requirements, while optimizing the common quality attributes like performance and security.
Further, it involves a set of significant decisions about the organization related to software
development and each of these decisions can have a considerable impact on quality,
maintainability, performance, and the overall success of the final product.
Architectural Styles
• A data store (Ex., a file or database) resides at the center of this architecture and is
accessed frequently by other components.
• Client software accesses a central repository.
• In some cases, the data repository is passive.
• That is, client software accesses the data independent of any changes to the data or the
actions of other client software.
2
Data-flow architectures
Object-oriented architecture
3
• A number of different layers are defined, each accomplishing operations that
progressively become closer to the machine instruction set.
• At the outer layer, components service user interface operations.
• At the inner layer, components perform operating system interfacing.
• Intermediate layers provide utility services and application software functions.
In simple terms, a user interface is the features of a device or an application that allow
a user to interact with it. Let’s say you are filing a company’s contact form on a website
to receive the web design service for your business. In this case, the user interface
would consist of a text box, a drop-down list, a radio button, and any other component
to collect information about your business goals, needs, and requirements. User
Interface (UI) Design is the link between users and the website, app, or software. UI
design can refer to graphical user interfaces as well as other forms—e.g., voice-
controlled interfaces.
we know that UI Design is all about structure, communication, and conversions. The
business site should be designed in a way to display the services that you offer without
ambiguity, to draw your visitors’ attention, and keep them on your site.
Simply put, a good User Interface is important because it can turn potential visitors
into buyers as it facilitates interactions between the user and your website or web
application. The UI not only focuses on aesthetics but also maximizes responsiveness,
4
efficiency, and accessibility of a website. It is professional web design because UI
makes a difference. UI design helps improve the conversion rate on a website.
An interface is a point where users interact with the website they’re using. A good User
Interface design presents a seamless blend of visual design, interaction design, and
information architecture.
The user interface (UI) is a critical part of any software product. When it’s done well, users
don’t even notice it. When it’s done poorly, users can’t get past it to efficiently use a product.
To increase the chances of success when creating user interfaces, most designers follow
interface design principles. Interface design principles represent high-level concepts that are
used to guide software design.
Designing “consistent interfaces” means using the same design patterns and the same
sequences of actions for similar situations. This includes, but isn’t limited to, the right use of
color, typography, and terminology in prompt screens, commands, and menus throughout your
user journey.
Remember: a consistent interface will allow your users to complete their tasks and goals much
more easily.
Speaking of using UI rules as shortcuts, your users will benefit from shortcuts as well,
5
3. Offer informative feedback
For every user action, there should be interface feedback. For frequent and minor actions, the
response can be modest, while for infrequent and major actions, the response should be more
substantial. Visual presentation of the objects of interest provides a convenient environment for
Sequences of actions should be organized into groups with a beginning, middle, and end.
Informative feedback at the completion of a group of actions gives users the satisfaction of
accomplishment, a sense of relief, the signal to drop contingency plans from their minds, and
an indicator to prepare for the next group of actions. For example, e-commerce websites move
users from selecting products to the checkout, ending with a clear confirmation page that
A good interface should be designed to avoid errors as much as possible. But when errors do
happen, your system needs to make it easy for the user to understand the issue and know how
to solve it. Simple ways to handle errors include displaying clear error notifications along with
As much as possible, design the system so the user cannot make a serious error. If an error is
made, the system should be able to detect the error and offer a simple, comprehensive
mechanism for handling the error.
Error Prevention:
• Error prevention over error correction
• Automatic detection of errors
• Clear error notifications
• Hints for solving the problem
6
This feature relieves anxiety since users know that errors can be undone, and encourages
exploration of unfamiliar options. The units of reversibility may be a single action, a data-
Experienced users strongly desire the sense that they are in charge of the interface and that the
interface responds to their actions. They don’t want surprises or changes in familiar behavior,
and they are annoyed by tedious data-entry sequences, difficulty in obtaining necessary
Humans’ limited capacity for information processing in short-term memory (the rule of thumb
is that people can remember “seven plus or minus two chunks” of information) requires that
designers avoid interfaces in which users must remember information from one display and
then use that information on another display. It means that cellphones should not require
reentry of phone numbers, website locations should remain visible, and lengthy forms should
These underlying principles must be interpreted, refined, and extended for each environment.
They have their limitations, but they provide a good starting point for mobile, desktop, and
web designers. The principles presented in the ensuing sections focus on increasing users’
rapid informative feedback to increase feelings of competence, mastery, and control over the
system.
The goal for UI designers is to produce user-friendly interfaces: interfaces that encourage
exploration without fear of negative consequences. Without any doubt interfaces of the future
will be more intuitive, enticing, predictable, and forgiving, but most principles of UI design
listed in this article will surely be applicable. 8 These Golden Rules from Schneider ensure a
good design but can ease the burden experienced by users in using applications that we make.
7
5. What is Object Oriented Design of a system? Draw the Use case
diagram and Class diagram for Library Management system.
Object Oriented Design of a system
8
Figure: Use Case diagram of Library Management System
Coupling Cohesion
Coupling is also called Inter-Module Cohesion is also called Intra-Module
Binding. Binding.
Coupling shows the relationships between Cohesion shows the relationship within the
modules. module.
Coupling shows the Cohesion shows the module's
relative independence between the modules. relative functional strength.
While creating, you should aim for low While creating you should aim for high
coupling, i.e., dependency among modules cohesion, i.e., a cohesive component/
should be less. module focuses on a single function (i.e.,
single-mindedness) with little interaction
with other modules of the system.
In coupling, modules are linked to the other In cohesion, the module focuses on a single
modules. thing.
9
• Response Time: This is the mean time between request and response or the software
with the desired output. It can be measured in length and variability. If the response
time is too long, then the user becomes frustrated.
• Error Handling: Poor error message may result in rejecting the product rather than
accepting it. An error message should describe the problem in words that are easy to
understand by the user.
• Help Facilities: The end-user requires help when he needs some information, and he
cannot find it or if the user is in trouble. Both of these requirements considered in the
help system design and must be available all the time.
• Application Accessibility: It states whether the application is simple to interact with
or not. Special guidelines are given to user while interacting with software.
2. Data Coupling: When data of one module is passed to another module, this is called
data coupling.
3. Stamp Coupling: Two modules are stamp coupled if they communicate using
composite data items such as structure, objects, etc. When the module passes non-global
data structure or entire structure to another module, they are said to be stamp coupled.
For example, passing structure variable in C or object in C++ language to a module.
4. Control Coupling: Control Coupling exists among two modules if data from one
module is used to direct the structure of instruction execution in another.
5. External Coupling: External Coupling arises when two modules share an externally
imposed data format, communication protocols, or device interface. This is related to
communication to external tools and devices.
6. Common Coupling: Two modules are common coupled if they share information
through some global data items.
7. Content Coupling: Content Coupling exists among two modules if they share code,
e.g., a branch from one module into another module.
9. Compare Coupling and Cohesion. Explain different types of Coupling
and its effects on software modules.
Refer Answer of Question no. 6
10
11.Explain different design Concepts in details.
• Software design sits at the technical core of software engineering and is applied
regardless of the software process model that is used.
• The design task produces a data design, an architectural design, an interface design, and
a component design.
Abstraction
• A solution is stated in large terms using the language of the problem environment at the
highest level abstraction.
•
• The lower level of abstraction provides a more detail description of the solution.
• A sequence of instruction that contain a specific and limited function refers in a
procedural abstraction.
• A collection of data that describes a data object is a data abstraction.
Architecture
Patterns
• A design pattern describes a design structure and that structure solves a particular
design problem in a specified content.
Modularity
Information hiding
• Modules must be specified and designed so that the information like algorithm and data
presented in a module is not accessible for other modules not requiring that information.
Functional independence
• The functional independence is the concept of separation and related to the concept of
modularity, abstraction and information hiding.
• The functional independence is accessed using two criteria i.e Cohesion and coupling.
11
• Cohesion: Cohesion is an extension of the information hiding concept.
• A cohesive module performs a single task and it requires a small interaction with the
other components in other parts of the program.
• Coupling: Coupling is an indication of interconnection between modules in a structure
of software.
Refinement
Refactoring
• It is a reorganization technique which simplifies the design of components without changing its
function behaviour.
• Refactoring is the process of changing the software system in a way that it does not change the
external behaviour of the code still improves its internal structure.
Design classes
12. Define Coupling and Cohesion. What is the difference between cohesion
and coupling.
Module Coupling
In software engineering, the coupling is the degree of interdependence between software
modules. Two modules that are tightly coupled are strongly dependent on each other. However,
two modules that are loosely coupled are not dependent on each other. Uncoupled
modules have no interdependence at all within them.
12
A good design is the one that has low coupling. Coupling is measured by the number of
relations between the modules. That is, the coupling increases as the number of calls between
modules increase or the amount of shared data is large. Thus, it can be said that a design with
high coupling will have more errors.
Module Cohesion
13. What is the importance of class model? Prepare the class model for a
web-based order-processing system for a computer store.
Class model is considered important as it represents the graphical representation of the entire
system and helps in analysis while communicating with the customers. The motive behind
constructing the class model is to concentrate on those concepts of real world that are important from
the application point of view.
13
14
14.What are the elements of a behavioral model? Prepare use case diagram
and sequence diagrams for ATM system of a bank.
In software engineering, behavioural model describes the overall behaviour of the system.
There are two types of behavioural models that are used to describe the system behaviour
Sequence Diagram for ATM system of a bank
15
Bank ATM
UML Use Case Diagram Examples
An automated teller machine (ATM) or the automatic banking machine (ABM) is a banking
subsystem that provides bank customers with access to financial transactions in a public space
without the need for a cashier, clerk, or bank teller.
Customer uses bank ATM to Check Balances of his/her bank accounts, Deposit
Funds, Withdraw Cash and/or Transfer Funds. ATM
Technician provides Maintenance and Repairs. All these use cases also involve Bank actor
whether it is related to customer transactions or to the ATM servicing.
An example of use case diagram for Bank ATM subsystem - top level use cases.
On most bank ATMs, the customer is authenticated by inserting a plastic ATM card and
entering a personal identification number (PIN). Customer Authentication use case is required
for every ATM transaction so we show it as include relationship. Including this use case as
well as transaction generalizations make the ATM Transaction an abstract use case.
16
Bank ATM Maintenance, Repair, Diagnostics Use Cases Example.
ATM Technician maintains or repairs Bank ATM. Maintenance use case
includes Replenishing ATM with cash, ink or printer paper, Upgrades of hardware, firmware
or software, and remote or on-site Diagnostics. Diagnostics is also included in (shared
with) Repair use case.
17