Unit 4 Se
Unit 4 Se
Unit 4 Se
UNIT - 4
DESIGN CONCEPTS
• Architectural design
• Component – level Design
Architectural Design
Connectors
communicate, cooperate and coordinate among the components
Configuration Topologies
it is a structure of architectural relationships among the components
and connectors.
System Models
different architectural styles used to develop the s/w architecture
SOFTWARE ARCHITECTURE GENRES
• Architectural Genre is used to define the architectural approach for the build
of any structure.
• Some general styles that are taken into consideration with the genre of
buildings are – houses, condos, apartment buildings, office buildings,
industrial buildings, warehouses, etc.
• Communication –
Systems that provide the infrastructure for transferring and managing data, for connecting
users of the data, or for presenting data at the edge of an infrastructure.
• Device –
Systems that interact with the physical world to provide some point service for an individual.
• Entertainment and Sports –
It includes those systems that manage public events or that provide a large group
entertainment experience.
• Financial –
Systems that provide the infrastructure for managing and transferring money and other
securities.
• Artificial Intelligence –
Systems which simulate or augment human cognition, locomotion, or other organic processes.
• Games –
This includes the systems that provide an entertainment experience to individuals or groups.
• Military –
Systems for consultation, command, communications, intelligence, and
control as well as offensive and defensive weapons.
• Operating Systems –
It includes systems that sit just above hardware to provide basic software
services.
• Scientific –
This includes systems that are used for scientific research and applications.
• Transportation –
It includes systems that control water, ground air, or space vehicles.
• Government –
This includes those systems that support the conduct and operations of a
local, state, federal, global, or other political entity.
Software Architecture Styles
• Data Centered Architecture
A data store (files or DB) resides at the centre of its architecture and is
accessed frequently by other components that update, add, delete or modify
with in the store.
• The figure represents pipe-and-filter architecture since it uses both pipe and
filter and it has a set of components called filters connected by pipes.
• Pipes are used to transmit data from one component to the next.
• Each filter will work independently and is designed to take data input of a
certain form and produces data output to the next filter of a specified form.
CALL & RETURN ARCHITECTURE
• It is used to create a program that is easy to scale and modify. Many sub-styles exist
within this category. Two of them are explained below.
OBJECT ORIENTED ARCHITECTURE
• This architecture is the latest version of call-and-return architecture.
• The components of a system encapsulate data and the operations that must be
applied to manipulate the data.
• At the outer layer, components will receive the user interface operations.
2. Architectural Complexity
• Module view for analysis of work assignments with components and the degree to which
information hiding has been achieved.(subprogram)
• Data flow view for analysis of the degree to which the architecture meets functional
requirements.(flow of data)
4. Evaluate quality attributes by considering each attribute in isolation.
Quality attributes for architectural design assessment include reliability,
performance, security, maintainability, flexibility, testability, portability,
reusability, and interoperability.
1 Transaction flow - a single data item triggers information flow along one of
many paths.
2. Transform flow –overall data flow is sequential and flows along a small
number of straight line paths.
• Incoming flow
the path that transforms the external data into internal form
• Transform flow
the incoming data are passed through a transform center and begin
to move along the paths that lead it out of the software.
• Outgoing flow
the path that move the data out of the software.
• Steps involved
• Step 1: review the fundamental system model
• Step 2: review and refine data flow diagrams for the software
• Step 3: determine whether DFD has transform or transaction flow characteristics
• Step 4: isolate the transform center by specifying incoming and outgoing boundaries
• Step 5: perform “first level factoring”
• Step 6: perform “second level factoring”
• Step 7: refine the first iteration program structure using the design heuristic
COMPONENT LEVEL DESIGN
• Component level design occurs after the first iteration of the architectural
design.
• What is a component ?
A component is modular building block for computer software.
• A component is a modular , deployable and replaceable part of a system that
encapsulate implementation and exposes a set of interfaces.
• The Open-Closed Principle (OCP). “A module [component] should be open for
extension but closed for modification.
• The Liskov Substitution Principle (LSP). “Subclasses should be substitutable for
their base classes or main class.
• Dependency Inversion Principle (DIP). “Depend on abstractions. Do not depend on
concretions.”
• The Interface Segregation (Separation) Principle (ISP). “Many client-
specific interfaces are better than one general purpose interface.
• The Common Reuse Principle (CRP). “Classes that aren’t reused together
should not be grouped together.”
Component level design guidelines
• Components
naming conventions should be established for components that are specified as a
part of the architectural model and then refined and elaborated as a part of the component
level design
• Interfaces
interfaces provide important information about communication and collaboration
• Dependencies and inheritance
it is a good idea to model dependencies from left to right and inheritance from
bottom(derived classes) to top (base classes)
Cohesion
• Cohesion and coupling are used to measure the modules
• Cohesion is used to measure the intra dependency between the modules
• A good / best software will have high cohesion.
• Communication between two modules is very high
Types of cohesion
• Function cohesion (high)
• Sequential cohesion
• Communication cohesion
• Procedural cohesion
• Temporal cohesion
• Logical cohesion
• Coincidental cohesion (low)
• Functional cohesion
elements of the module are performed only one function is called as a functional
cohesion . Functional cohesion is the best cohesion in the s/w.
• Sequential cohesion
elements of the module are grouped because the output of one element serves as
input to another
• Communication cohesion
elements of the module are grouped together . The elements have same input and
same output data.
• Procedural cohesion
every element of module can perform the function in order way.
• Temporal cohesion
In the module every element can perform the task in certain time period
only.
• Logical cohesion
In the module, elements are performed the task then any problem occur then
communication b/w the modules are low
• Coincidental cohesion
unplanned cohesion
no communication happened b/w the elements of module
• Coupling
Coupling is used to measure the “interdependent” between the modules.
There are five types of couplings are present