0% found this document useful (0 votes)
157 views11 pages

Architectural Design SE

1. Architectural design represents the structure of data and program components required to build a computer-based system. It considers the architectural style, structure and properties of components, and relationships between them. 2. Specialists often perform architectural design for large, complex systems. The system architect selects an appropriate style based on requirements. 3. Architectural design is important as it provides a high-level overview of the system before details are considered, affecting properties like performance, robustness and maintainability.

Uploaded by

fernando shela
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
157 views11 pages

Architectural Design SE

1. Architectural design represents the structure of data and program components required to build a computer-based system. It considers the architectural style, structure and properties of components, and relationships between them. 2. Specialists often perform architectural design for large, complex systems. The system architect selects an appropriate style based on requirements. 3. Architectural design is important as it provides a high-level overview of the system before details are considered, affecting properties like performance, robustness and maintainability.

Uploaded by

fernando shela
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Architectural Design

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.

01.Why Is Architecture Important?


• Software architecture provides a representation that facilitates communication among all
stakeholders.
• The architecture highlights early design decisions that will have a profound impact on all
software engineering work that follows.
• Architecture “constitutes a relatively small, intellectually graspable model of how the system
is structured and how its components work together
• Software architecture is important because it affects the performance, robustness,
distributability, and maintainability of a system.

02. Software architectures can be designed at two levels of abstraction:

 Architecture in the small is concerned with the architecture of individual programs.


At this level, we are concerned with the way that an individual program is
decomposed into components.
 Architecture in the large is concerned with the architecture of complex enterprise
systems that include other systems, programs, and program components. These
enterprise systems are distributed over different computers, which may be owned
and managed by different companies.

03. Three advantages of explicitly designing and documenting software architecture:

 Stakeholder communication: Architecture may be used as a focus of discussion by


system stakeholders.
 System analysis: Well-documented architecture enables the analysis of whether the
system can meet its non-functional requirements.
 Large-scale reuse: The architecture may be reusable across a range of systems or
entire lines of products.

Software architecture is most often represented using simple, informal block


diagrams showing entities and relationships. Pros: simple, useful for communication with
stakeholders, great for project planning. Cons: lack of semantics, types of relationships between
entities, visible properties of entities in the architecture.

04. Uses of architectural models:


As a way of facilitating discussion about the system design
A high-level architectural view of a system is useful for communication with system
stakeholders and project planning because it is not cluttered with detail. Stakeholders
can relate to it and understand an abstract view of the system. They can then discuss
the system as a whole without being confused by detail.
As a way of documenting an architecture that has been designed
The aim here is to produce a complete system model that shows the different
components in a system, their interfaces and their connections.
05.What is architectural design decision?
Architectural design is a creative process so the process differs depending on the type of
system being developed. However, a number of common decisions span all design processes
and these decisions affect the non-functional characteristics of the system:

 Is there a generic application architecture that can be used?


 How will the system be distributed?
 What architectural styles are appropriate?
 What approach will be used to structure the system?
 How will the system be decomposed into modules?
 What control strategy should be used?
 How will the architectural design be evaluated?
 How should the architecture be documented?

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:

 Performance: localize critical operations and minimize communications. Use large


rather than fine-grain components.
 Security: use a layered architecture with critical assets in the inner layers.
 Safety: localize safety-critical features in a small number of sub-systems.
 Availability: include redundant components and mechanisms for fault tolerance.
 Maintainability: use fine-grain, replaceable components.

06. Architectural patterns

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.

4+1 view model of software architecture:


 A logical view, which shows the key abstractions in the system as objects or object classes.It
should be possible to relate the system requirements to entities in this logical view.
 A process view, which shows how, at run-time, the system is composed of interacting processes.
This view is useful for making judgments about nonfunctional system characteristics such as
performance and availability.
 A development view, which shows how the software is decomposed for development. That is, it
shows the breakdown of the software into components that are implemented by a single
developer or development team. This view is useful for software managers and programmers
 A physical view, which shows the system hardware and how software components are
distributed across the processors in the system. This view is useful for systems engineers planning
a system deployment.
 Related using use cases or scenarios (+1).

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

08. Architectural patterns


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.

09.Model-View-Controller

 Serves as a basis of interaction management in many web-based systems.


 Decouples three major interconnected components:
o The model is the central component of the pattern that directly manages the data, logic
and rules of the application. It is the application's dynamic data structure, independent of
the user interface.
o A view can be any output representation of information, such as a chart or a diagram.
Multiple views of the same information are possible.
o The controller accepts input and converts it to commands for the model or view.
 Supported by most language frameworks.
09. Layered architecture

 Used to model the interfacing of sub-systems.


 Organizes the system into a set of layers (or abstract machines) each of which provide a set of
services.
 Supports the incremental development of sub-systems in different layers. When a layer interface
changes, only the adjacent layer is affected.
 However, often artificial to structure systems in this way.
10. Repository architecture

 Sub-systems must exchange data. This may be done in two ways:


o Shared data is held in a central database or repository and may be accessed by all sub-
systems;
o Each sub-system maintains its own database and passes data explicitly to other sub-
systems.
 When large amounts of data are to be shared, the repository model of sharing is most commonly
used a this is an efficient data sharing mechanism.
11. Client-server architecture

 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

 Functional transformations process their inputs to produce outputs.


 May be referred to as a pipe and filter model (as in UNIX shell).
 Variants of this approach are very common. When transformations are sequential, this is a batch
sequential model which is extensively used in data processing systems.
 Not really suitable for interactive systems.

An example of this type of system architecture, used in a batch processing application, is shown in below

You might also like