Arquitecturas de Software
Arquitecturas de Software
Arquitecturas de Software
SOFTWARE
ARCHITECTURES
By: Esteban Novoa Quiñones, Jorge
Steven Ayala Benitez, Henry Duvan
Bonilla Urrego
what is software
architecture?
The software architecture of a system is the set of structures
needed to reason about the system, comprising software
elements, relationships between them and properties of both.
Benefits of software architecture
1. It creates a solid foundation for the software project
2. Makes your platform scalable
3. Increases performance of the platform
4. Reduces costs, avoids codes duplicity
5. Better code maintainability.
6. Enables quicker changes in IT Systems.
7. Reduces its time to market, reduces development time
6 main Software
Architectures
01 Microkernel
or plugin 02 Microservices
architecture
03 Event based
architecture
6 main Software
Architectures
04 05
Model - View - Controller
Client / Server
06 Blackboard
Microkernel
Architecture
The main feature of this architecture is its decomposition by
components that provees facilities to implement plugins, that
makes it customizable and adaptative to variable requirements
Minimal core OS
Plugins
Microkernel Diagram
Plug-in Plug-in
component component
Core
System
Plug-in Plug-in
component component
Microservices Architecture
Decomposition in independent
services
Distributed services
Independent
databases
Smart endpoint
Microservices
Diagram
Event-driven
architecture
Events producers
Events Channels
Events Proccesors
Event-driven architecture
topologies
Mediator Topology
The mediator gets the event form event
queue, makes a process and then send it by
events channel for the events processor.
Event-driven architecture
topologies
Broker Topology
The broker gets the event and puts it in a
specific channel to be processed by the event
processor interested in this event.
Financial Forecasts
Your projections for expense, sales, profit, growth, etc.
40
30
20
10
0
Expense Sales Profit Growth
Development costs Human resources
Booklets are printed materials with Booklets are printed materials with
four or more pages, containing four or more pages, containing
details about a business, event, details about a business, event,
product, promotion, etc. product, promotion, etc.
1 2 3
Model View Controller
Model
It is the layer where you work with the data, therefore it
will contain mechanisms to access the information and
also to update its status. We will usually have the data
in a database, so in the models we will have all the
functions that will access the tables and make the
corresponding selects, updates, inserts, etc.
View
The views, as their name makes us understand, contain
the code of our application that will produce the
visualization of the user interfaces, that is, the code that
will allow us to render the states of our application in
HTML.
Controller
It really is a layer that serves as a link between the
views and the models, responding to the mechanisms
that may be required to implement the needs of our
application. However, its responsibility is not to directly
manipulate data, nor to display any type of output, but
to serve as a link between models and views to
implement the various development needs.
MVC desing pattern
Client / Server
1 2 3
Blackboard ( BB ) Knowledge Control unit
sources ( KSs)
References
https://www.oreilly.com/library/view/software-architecture-
patterns/9781491971437/ch02.html
https://refactorizando.com/arquitectura-de-microservicios/
https://www.techtarget.com/searchapparchitecture/tip/What-is-
a-microkernel-architecture-and-is-it-right-for-
you#:~:text=A%20microkernel%20architecture%20is%20called,can%
20offer%20software%20lifecycle%20benefits.
Sommerville, I. (2022). Software Engineering. Pearson.
Bass, L. (2022). Software Architecture in Practice. Pearson India.
https://desarrolloweb.com/articulos/que-es-mvc.html
https://www.indeed.com/career-advice/career-
development/what-is-client-server-model
https://www.eolss.net/sample-chapters/C18/E6-43-25-04.pdf
https://aprendearquitecturasoftware.wordpress.com/2018/10/05/
patron-pizarra-blackboard-grupo-8/