Unit-3 Notes SE Part-II
Unit-3 Notes SE Part-II
SOFTWARE ARCHITECTURE
What is Architecture?
Manner in which the various components of the building are integrated to form a cohesive
whole
It is the way in which the building fits into its environment and meshes with other buildings
in its vicinity.
Degree to which the building meets its stated purpose and satisfies the needs of its owner.
Aesthetic feel of the structure
soft. Arch. Of a program or computing system is the structure or structures of the system,
which comprises software components, the externally visible properties of those
components and the relationships among them.
Why is Architecture Important?
Representations of software architecture are an enabler for communication between all
parties (stateholders) 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
constitutes a relatively small, intellectually graspable model of how the system is structured
and how its components work together.
----------------------------------------------------------------------------------------------------------------------
DATA DESIGN
The data design action translates data objects defined as part of the analysis model
into data structures at the software component level and when necessary, a database
architecture at the application level.
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 mechanism for defining the content of each data object should be established and used to
define both data and the operations applied to it.
4. Low level data design decisions should be deferred until late in the design process
5. The representation of a data structures 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.
ARCHITECTURAL STYLES AND PATTERNS
Software that is built for computer-based systems exhibits one of many architectural styles.
Each style describes a system category that encompasses
1. A set of components
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
4. semantic models that enable a designer to understand the overall properties of a system by
analyzing the know properties of its constituent parts.
Data-flow architecture
Object-oriented architecture
layered architecture
ARCHITECTURAL PATTERNS
Architectural patterns for software define a specific approach for handling some behavioral
characteristic of the system.
Concurrency
Persistence
Distribution
ARCHITECTURAL DESIGN
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 analysis model and all other information
gathered during requirements engineering. Once context is modeled and all external software
interfaces have been described, the designer specifies the structure of they system by defining and
refining software components that implement the architecture.
Representing the System in Context
A system context diagram accomplishes this requirement by representing the flow of information
into and out of the system, the UI and relevant support processing.
At archi. Design level, architect uses architectural context diagram to model the manner in which
software interacts with entities external to its boundaries.
Superordinate systems
Subordinate systems
peer level systems
actors
Each of these external entities communicates with the target system through an interface.
Defining Archetypes
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.
A relatively small set of archetypes is required to design even relatively complex systems.
Node
Detector
Indicator
Controller