0% found this document useful (0 votes)
59 views

Lecture 3

Architecture design provides a model of the system that is being built and helps understand technical details. It is a process of converting requirements into a design. The design model provides details about software architecture, components, interfaces, and data structures needed to implement the system. Software architecture represents the high-level structure and organization of a system. It is important as it controls complexity, reduces risks, and enables re-use. The goals of architecture include addressing requirements and designing systems that are flexible and maintainable over time.

Uploaded by

Arbaz Ali
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Lecture 3

Architecture design provides a model of the system that is being built and helps understand technical details. It is a process of converting requirements into a design. The design model provides details about software architecture, components, interfaces, and data structures needed to implement the system. Software architecture represents the high-level structure and organization of a system. It is important as it controls complexity, reduces risks, and enables re-use. The goals of architecture include addressing requirements and designing systems that are flexible and maintainable over time.

Uploaded by

Arbaz Ali
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

Advance Software Engineering

Architecture Design
What is Design?
• Design allows you to model the system or
product that is to be built.
• Design helps to understand Technical details
better.
• Design is a Process of Converting:
What to do?? ======= How to do?
(R.E) (Design)
What is Design?
• Design is what almost every engineer wants to
do, core of engineering process

• It is the place where creativity rules—where


stakeholder requirements, business needs,
and technical considerations all come
together in the formulation of a product or
system
What is Design?

• The design model provides detail about


software architecture, data structures,
interfaces, and components that are
necessary to implement the system
System

A system is a collection of components


organized to accomplish a specific function or
set of functions

(IEEE Std. 610.12-1990)


Software Architecture

The software architecture of a program or


computing system is the structure or
structures of the system, which comprise
software elements, and the relationships
among them
Software Architecture

Architectural design represents the structure


of data and program components that are
required to build a computer-based system.
Why is it important?
• You wouldn’t attempt to build a house without a
map, would you?

• 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
Why is it important?
Representations of software architecture are an enabler
for communication between all parties (stakeholders)

The architecture highlights early design decisions that


provide you solid foundations on which software will be
built

Architecture “constitutes a relatively small, intellectually


graspable model of how the system is structured and how
its components work together”
Software Architecture
Software architecture is:
 
• An overall view of the solution to a problem

• The high-level design of modular components and


how they interact

• A foundation that one can build on to solve a


problem (e.g., rules, policies, attributes, etc.)
A Brief Taxonomy of Architectural Styles

• Data-centered architectures:
A Brief Taxonomy of Architectural Styles

• Data flow architectures :


A Brief Taxonomy of Architectural Styles

• Call and Return architectures :


A Brief Taxonomy of Architectural Styles

• Layered architecture :
Software Architecture: Example
Level 1 Design
Security
Check

Student’s Teacher’s
Records Record

Student’s Student’s Teacher’s


Account Academic Account
Software Architecture
• Defining architecture is part of the software
development process
• Its primary goal is to define the non-functional/
functional requirements of a system.

Architecture is also important because it:


• Controls complexity
• Gives Consistency and Uniformity
• Reduces risk
• Enables re-use
Software Architecture

Architecture focuses on how the major


elements and components within an
application are used by, or interact with,
other major elements and components
within the application
Why is Architecture Important?

The risks exposed by poor architecture


include software that is unstable, is unable to
support existing or future business
requirements, or is difficult to deploy or
manage in a production environment
Why is Architecture Important?

Systems should be designed with consideration


for the user, the system, and the business goal

System

Business
Why is Architecture Important?

Consider the following high level concerns when thinking


about software architecture:
 
• How will the users be using the application?

• What are the quality attribute requirements for the


application, such as security, performance, and configuration?

• How can the application be designed to be flexible and


maintainable over time?
 
The Goals of Architecture
• Application architecture seeks to build a
bridge between business requirements and
technical requirements
• The goal of architecture is to identify the
requirements that affect the structure of the
application
• A good design is sufficiently flexible to be able
to handle the natural change that will occur
over time in hardware and software
technology, as well as in user requirements
The Goals of Architecture

An architect must consider the overall effect


of design decisions, the inherent tradeoffs
between quality attributes (such as
performance and security), and the tradeoffs
required to address user, system, and business
requirements
The Goals of Architecture
Keep in mind that the architecture should:

• Expose the structure of the system but hide


the implementation details
• Realize all of the use cases and scenarios
• Try to address the requirements of various
stakeholders
• Handle both functional and quality
requirements
The Principles of Architecture Design
• Current thinking on architecture assumes that
your design will evolve over time and that you
cannot know everything you need to know up
front in order to fully architect your system
• Your design will generally need to evolve during
the implementation stages of the application
• Create your architecture with this evolution in
mind so that it will be able to adapt to
requirements that are not fully known at the
start of the design process
The Principles of Architecture Design
Consider the following questions as you create an
architectural design:
 
• What are the foundational parts of the architecture
that represent the greatest risk?
• What are the parts of the architecture that are most
likely to change?
• What are your key assumptions, and how will you test
them?
• What conditions may require you to re-factor the
design?
The Principles of Architecture Design

Do not attempt to over engineer the


architecture, and do not make
assumptions that you cannot verify,
Instead, keep your options open for
future change
The Principles of Architecture Design

Key Architecture Principles: 


• Build to change
• Reduce risk
• Use models and visualizations as a
communication and collaboration tool
• Identify key engineering decisions

You might also like