Architectural styles, Architectural Design, Architectural Mapping
using Data Flow
This section
defines the term “software architecture” as a framework made up of the system
structures that comprise the software components, their properties, and the
relationships among these components. The goal of the architectural model is to
allow the software engineer to view and evaluate the system as a whole before
moving to component design.
What is Architecture?
The architecture is not the
operational software. Rather, it is a representation that enables a software
engineer to:
(1)
Analyze the effectiveness of the design in meeting its stated
requirements,
(2)
Consider architectural alternatives at a stage when making design changes
is still relatively easy, and
(3) Reduce the risks
associated with the construction of the software.
Why is Architecture Important?
·
Representations of software architecture are an enabler for
communication between all parties (stakeholders) interested in the development
of a computer-based system.
·
The architecture highlights early design decisions that will have a
profound impact on all software engineering work that follows and, as
important, on the ultimate success of the system as an operational entity.
·
Architecture “constitutes a relatively small, intellectually
graspable model of how the system is structured and how its components work
together” [BAS03].
Data Design
This section describes data
design at both the architectural and component levels. At the architecture
level, data design is the process of creating a model of the information
represented at a high level of abstraction (using the customer's view of data).
Data Design at the Architectural Level
The challenge is extract
useful information from the data environment, particularly when the information
desired is cross-functional.
To solve this challenge, the
business IT community has developed data
mining techniques, also called knowledge
discovery in databases (KDD), that navigate through existing databases in
an attempt to extract appropriate
business-level information.
However, the existence of
multiple databases, their different structures, the degree of detail contained
with the databases, and many other factors make data mining difficult within an
existing database environment.
An alternative solution,
called a data warehouse, adds on
additional layer to the data architecture.
A data warehouse is a
separate data environment that is not directly integrated with day-to-day applications
that encompasses all data used by a business.
In a sense, a data warehouse
is a large, independent database that has access to the data that are stored in
databases that serve as the set of applications required by a business.
Data Design at the Component Level
At the component level, data
design focuses on specific data structures required to realize the data objects
to be manipulated by a component.
n refine data objects and
develop a set of data abstractions
n implement data object
attributes as one or more data structures
n review data structures to
ensure that appropriate relationships have been established
n simplify data structures as
required
Set of principles for data
specification:
1.
The systematic analysis principles applied to function and behavior
should also be applied to data.
2.
All data structures and the operations to be performed on each
should be identified.
3.
A data dictionary should be established and used to define both
data and program design.
4.
Low level data design decisions should be deferred until late in
the design process.
5.
The representation of data structure should be known only to those
modules that must make direct use of the data contained within the structure.
6.
A library of useful data structures and the operations that may be
applied to them should be developed.
7.
A software design and programming language should support the
specification and realization of abstract data types.
Architectural Styles and Patterns
Each style describes a system
category that encompasses:
(1)
A set of components (e.g., a database, computational modules) that
perform a function required by a system,
(2)
A set of connectors that enable “communication, coordination and
cooperation” among components,
(3)
Constraints that define how components can be integrated to form
the system, and
(4)
Semantic models that enable a designer to understand the overall
properties of a system by analyzing the known properties of its constituent
parts.
An architectural style is a
transformation that is imposed on the design of an entire system.
An architectural pattern, like an architectural style, imposes a
transformation on the design of an architecture.
A
pattern differs from a style in a number of fundamental ways:
1.
The scope of a pattern is less broad, focusing on one aspect of the
architecture rather than the architecture in its entirety.
2.
A pattern imposes a rule on the architecture, describing how the
S/W will handle some aspect of its functionality at the infrastructure level.
3.
Architectural patterns tend to address specific behavioral issues
within the context of the architectural.
A Brief Taxonomy of Architectural Styles
Styles can be categorized as
follows:
Data-Centered Architecture
A data store resides at the
center of this architecture and is accessed frequently by other components that
update, add, delete, or otherwise modify data within the store.
This architecture promotes integrability. Existing components can
be changed and new client components can be added to the architecture without
concern about other clients.
Architecture
This architecture is applied
when input data are to be transformed through a series of computational or
manipulative components into output data.
A pipe and filter structure
has a set of components, called filters,
connected by pipes that transmit data
from one component to the next.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.