Mindanao State University / College of Information Technology
Mindanao State University / College of Information Technology
Outline:
Software Architecture
Software Design
Goals of Architecture
Quality Attributes
Role of Software Architect
Fundamentals of Software Architecture & Design
Software Architecture & Design
Business
Strategy
The architecture of a system
describes:
IT Quality
its major components, Environment Attributes
their relationships (structures),
Software
Architecture
and how they interact with
each other
Human
Design
Dynamics
Contributory Factors
Fundamentals of Software Architecture & Design
What is Architecture?
It is both the process and the product
of planning, designing, and
constructing buildings or other
structures.
Encyclopedia Britannica. Retrieved 27 October 2017.
A structure is an arrangement and
organization of interrelated elements in
a material object or system, or the
object or system so organized.
Oxford English Dictionary (Online ed.). Retrieved 1
October 2015.
Fundamentals of Software Architecture & Design
What is Software Architecture?
Architecture serves as a blueprint
for a system.
It provides an abstraction to
manage the system complexity and
establish a communication and
coordination mechanism among
components.
It is a plan that gives enough detail
to produce a software design.
((1994)., Retrieved 2012-09-13.)
Fundamentals of Software Architecture & Design
Software Design
To negotiate system requirements, and to set
expectations with customers, marketing, and
management personnel.
It provides a design plan
that describes the
elements of a system, To act as a blueprint during the
development process.
how they fit, and work
together to fulfill the
requirement of the To guide the implementation tasks, including
system. detailed design, coding, integration, and testing.
Software Design Objectives
https://www.bizjournals.com/
Fundamentals of Software Architecture & Design
Goals of Software Architecture
The primary goal of the architecture is to identify requirements
that affect the structure of the application.
Expose the structure of the system, but hide its implementation details.
Realize all the use-cases and scenarios.
Try to address the requirements of various stakeholders.
Handle both functional and quality requirements.
Reduce the goal of ownership and improve the organization’s market position.
Improve quality and functionality offered by the system.
Improve external confidence in either the organization or system.
Fundamentals of Software Architecture & Design
Quality Attributes
Quality attributes are the system properties that are separate
from the functionality of the system.
Business
Design Run-time System User Architecture Non-runtime
quality
Qualities Qualities Qualities Qualities Quality Quality
attributes
Interoperability
Conceptual
Portability
Integrity Cost and
Manageability Supportability
schedule
Reliability
Maintainability Performance Usability Correctness Integrality
Availability
Marketability Testability Marketability
Reusability Modifiability
Security
Fundamentals of Software Architecture & Design
Role of Software Architecture
Design expertise
Domain expertise
Technology expertise
Methodological expertise
Reinforce the trust and relationship
among team members and protect
team members from the external
forces that could distract them and
bring less value to the project.
SALAMAT
“No human is master of everything.
But one can be a master of anything at a time” -Lucman
BACKUP
Intro to Software Architecture Design
Architecture Re-presentations
Conceptual View
Logical View
Process View
Physical View
Development View
[Sommerville, Software Engineering, 10th ed]