Software Design Quality Management: Software Architecture

ayeshabutalia2 212 views 8 slides Aug 22, 2024
Slide 1
Slide 1 of 8
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8

About This Presentation

Brief Introduction about Software Architecture: Envisioning Architecture: The Architecture Business Cycle, What is Software Architecture, Architectural patterns, reference models, reference architectures, architectural structures and views.
Creating an Architecture: Quality Attributes, Achieving qua...


Slide Content

Unit 1: Software
Architecture
This unit delves into the fundamental concepts of software architecture,
providing a comprehensive understanding of its principles, components, and
practices. From envisioning the architecture to designing and implementing it,
this unit lays the groundwork for building robust, scalable, and maintainable
software systems.
by Ayesha Butalia

Envisioning Architecture
1
Stakeholders
Individuals or groups who have an interest in the architecture, such as users, developers, and managers.
2
Technical Environment
The set of technologies and methodologies available, including programming languages, frameworks, and
tools.
3
Organizational Goals
Business and mission goals of the organization, which influence the architecture's design and
implementation.
4
Architectural Design Decisions
Decisions made by architects that shape the system's structure, components, and interactions.
5
Feedback Loop
Continuous improvement based on feedback from stakeholders and the technical environment, ensuring
the architecture evolves to meet changing needs.

What is Software Architecture?
Components
The main building blocks of the
system, such as modules, services,
and databases.
Connectors
The interactions between the
components, defining how they
communicate and exchange data.
Configurations
The arrangement of components and
connectors, determining the system's
overall structure and flow.

Architectural Patterns,
Reference Models, and
Reference Architectures
1
Architectural Patterns
Reusable solutions to common problems in software architecture
within a given context, providing proven designs for specific scenarios.
2
Reference Models
Abstract frameworks that describe the entities involved in a domain
and their relationships, providing a common vocabulary and
understanding.
3
Reference Architectures
A template solution for an architecture for a particular domain,
providing a standardized approach for specific industries or
applications.

Architectural Structures and
Views
Module Structures
Decomposition of the system into modules, focusing on the organization
of code and functionality.
Component-and-Connector Structures
Runtime interactions between components, emphasizing how they
communicate and collaborate.
Allocation Structures
Mapping of software elements to non-software elements (e.g., hardware),
defining the physical deployment and resource allocation.

Creating an Architecture
Quality Attribute Definition
Performance Speed and efficiency of the system.
Security Protection against unauthorized access and data
breaches.
Usability Ease of use and user-friendliness of the system.

Architectural Styles and
Patterns
1
Monolithic Architecture
Single-tiered software application where all components are
tightly coupled and deployed as a single unit.
2
Microservices Architecture
Divides the system into small, independent services that
communicate through APIs, enabling scalability, resilience, and
independent deployment.

Cloud Native Concepts,
Microservices, API
Containerization
Packaging software with its dependencies into a container, ensuring consistent
execution across different environments.
Dynamic Orchestration
Managing container lifecycles, including deployment, scaling, and networking,
automatically and dynamically.
Microservices
Architectural style that structures an application as a collection of loosely
coupled services, enabling independent scaling, resilience, and development.
API (Application Programming Interface)
A set of rules that allow software programs to communicate, enabling
interoperability and data exchange.