Architectural Design SE
Architectural Design SE
What is it? Architectural design represents the structure of data and program components
that are required to build a computer-based system. It considers the architectural style that the
system will take, the structure and properties of the components that constitute the system,
and the interrelationships that occur among all architectural components of a system.
Who does it? Although a software engineer can design both data and architecture, the job is
often allocated to specialists when large, complex systems are to be built. A database or data
warehouse designer creates the data architecture for a system. The “system architect” selects
an appropriate architectural style from the requirements derived during software requirements
analysis.
Why is it important? You wouldn’t attempt to build a house without a blueprint, would you?
You also wouldn’t begin drawing blueprints by sketching the plumbing layout for the house.
You’d need to look at the big picture—the house itself—before you worry about details. That’s
what architectural design does—it provides you with the big picture and ensures that you’ve
got it right.
What are the steps? Architectural design begins with data design and then proceeds to the
derivation of one or more representations of the architectural structure of the system.
Alternative architectural styles or patterns are analyzed to derive the structure that is best
suited to customer requirements and quality attributes. Once an alternative has been selected,
the architecture is elaborated using an architectural design method.
What is the work product? An architecture model encompassing data architecture and
program structure is created during architectural design. In addition, component properties and
relationships (interactions) are described.
How do I ensure that I’ve done it right? At each stage, software design work products are
reviewed for clarity, correctness, completeness, and consistency with requirements and with
one another.
Systems in the same domain often have similar architectures that reflect domain concepts.
Application product lines are built around a core architecture with variants that satisfy
particular customer requirements. The architecture of a system may be designed around one of
more architectural patterns/styles, which capture the essence of an architecture and can be
instantiated in different ways.
The particular architectural style should depend on the non-functional system requirements:
Patterns are a means of representing, sharing and reusing knowledge. An architectural pattern
is a stylized description of a good design practice, which has been tried and tested in different
environments. Patterns should include information about when they are and when the are not
useful. Patterns may be represented using tabular and graphical descriptions.
07.Architectural View
Each architectural model only shows one view or perspective of the system. It might show how a system is
decomposed into modules, how the run-time processes interact or the different ways in which system
components are distributed across a network. For both design and documentation, you usually need to present
multiple views of the software architecture.
In addition to the above four views, we have the notion of a conceptual view.
• This view is an abstract view of the system that can be the basis for decomposing high-level
requirements into more detailed specifications, help engineers make decisions about
components that can be reused, and represent a product line rather than a single system
In practice, conceptual views are almost always developed during the design process and are
used to support architectural decision making
09.Model-View-Controller
Distributed system model which shows how data and processing is distributed across a range of
components, but can also be implemented on a single computer.
Set of stand-alone servers which provide specific services such as printing, data management,
etc.
Set of clients which call on these services.
Network which allows clients to access servers.
12. Pipe and filter architecture
An example of this type of system architecture, used in a batch processing application, is shown in below