CH12 Lecture - Sware Archi 0 Fwork 1-2
CH12 Lecture - Sware Archi 0 Fwork 1-2
ARCHITECTURE
Software architecture Framework
CSE 6234
SOFTWARE DESIGN
Learning Outcomes
• In this chapter student will learn:
• Understanding Software Design vs Architecture
• Software Architecture Definition
• Software Architecture Patterns
• Software Architecture Framework
AGENDA
• A prototype is the best way to get your thoughts and ideas down,
but it’s also a fast way to iron out any kinks. And you can use
existing code that someone else has already written for you;
whether it’s from GitHub or Google Docs, plenty of examples can
help get your prototype off the ground quickly.
Don’t get bogged down with requirements.
• In the early stages of software architecture, it’s best to focus on concepts
rather than final requirements. The best time to start thinking about software
architecture is before any requirements are even given. It’s best to focus on
concepts rather than final requirements. This will help you create a strong
foundation for your design and avoid getting bogged down by overly complex
conditions that can cause problems later in the process.
• To start this process, consider three broad categories:
• business goals,
• technical capabilities and strategies (including data structures), and
• organizational structures/roles/responsibilities.
• These three categories are often called “needs,” but they do not just need;
they’re also things you want to accomplish with your software system — and
these things needn’t be limited only by what you think they should be!
Interesting Software is Complex
Physical view
Context view
Process view
Deployment view
16
Architectural Views
• C4 Model[Brown, 2023]
• context, structure, behaviour, infrastructure
• 4+1 Views[Kruchten, 1995]
• logical, process, development, physical, scenario
• Software Architecture in Practice[Bass et al., 2021]
• module, component-and-connector, allocation
• NATO Architecture Framework[Team, 2020]
• concepts, service, logical, physical resource, architecture foundation
• The Open Group Architecture Framework (TOGAF) [Forum, 2018]
• ISO/IEC/IEEE 42010:2011[iso, 2011
Representing Architecture Views
Logical Implementation
Logical View View View
Functional Functional requirements
Requirements – Analysts/
Designers End-user Programmers
Deals with design, Structure Functionality Software management
packages, sub-
Use-Case
systems, and View
classes, layers, …
Process Deployment
Implementation View View
View – deals mostly System Integrators System Engineering
with programming Performance System topology
and organization of Scalability, Concurrency, Delivery, installation
the static software Throughput, Parallelism… Communication
modules & unit test
https://www.oreilly.com/library/view/software-architecture-patterns/9781098134280/ch04.html
Microservice Style
https://microservices.io/patterns/microservices.html
Software Architecture Frameworks
• Frameworks (architectural patterns) provide an extensible template for applications within
a domain
• Shaw/Garlan patterns
• Dataflow systems – Virtual machines
• Batch sequential • Interpreters
• Pipes and filters • Rule-based systems
• Call-and-return systems – Data-centered systems
• Main program and subroutine • Databases
• OO systems • Hypertext systems
• Hierarchical layers • Blackboards
• Independent components
• Communicating processes
• Event systems
28