Software Architecture Flashcards
Define software architecture and what it entails
high-level structure of a software system
-consists of components, their relationships and the principles of design
Why is software architecture important
-defines the software design process
provides structure for software development in terms of ever increasing performance (scalability)
In terms of software architecture, define C4
C4 is a method of flowchartting that breakes a system down into 4 levels:
-Context
-Containers
-Components
-Code
Define UML
A method of flowcharting that is used for business modelling and implementation of software-based Systems
define software component
a self-contained module that provides a specific functionality
Define connector
a mechanism that enables communication between different components
define interface
seperates implementation from usage
define module
a group of related components that work together to provide a high-level function
define pipeline
a sequence of components or steps through which data or inputs flow
What are the typical patterns of software architecture
Layered- seperating application into layers
Client-server - a client part runs on user machine and the server runs on the remote machine
Monolithic - Traditional approach where all components are combined into a single module
Microservices - an extension of client-server