Software Engineering Architectural Patterns Part1โ€‚by@marvin

Software Engineering Architectural Patterns Part1

The software development life cycle involves a series of steps engineering teams undergo to create, enhance and maintain sustainable software solutions. We focus, at least in this series, on Architecture, which gives room for development (the part all engineers love) Architecture is the definition of how components of a software system are organized and assembled and how these components communicate. We shall aim to understand: Monolithic patterns, service-oriented patterns, space-based architecture, event-driven and microkernel architecture. We discuss the advantages of each against its conns; whiteboard software development.
image
Marvin HackerNoon profile picture

Marvin

Software engineer. I write code and stay weird.

linkedin social icontwitter social icongithub social icon


And when you close your eyes, what do you see? Do you see ducktape? Do you see robust infrastructure? Do you see fragile systems? Do you see elegant architecture - Software engineering architectural patterns?


Part of the development includes a thought process - the software development life cycle(SLDC).


A point in time during which we remember that software development is more than just code; it involves more thinking.



224-meaning.png

224-meaning.png


The software development life cycle involves a series of steps engineering teams undergo to create, enhance and maintain sustainable software solutions.


As an overview:



SoftwareDevelopmentLifeCycle.png

SoftwareDevelopmentLifeCycle.png


Each step outlined above acts as an input to the next and so forth.


We focus, at least in this series, on Architecture, which gives room for development (the part all engineers love).


ArchitectureDevelopment.png

ArchitectureDevelopment.png

Take note, that the steps outlined in the development of sustainable systems (SDLC) may have more detailed steps in each. Do reach out, either in the comment section or directly, if you would like an elaboration of the same.



So what is Software architecture and what do Architectural patterns involve?


Software architecture is the definition of how components of a software system are organized and assembled and how these components communicate.


The output of the architectural design stage includes and is not limited to; prototypes, pseudocode, architecture reports, and diagrams for technical details. This is a key step. Miss this or mess it up, and development becomes a financial and technical nightmare.


Sidenote:

Understand that design patterns and architectural patterns .


When determining the software architecture you intend to use, you ask a number of questions; does the system need high performance? How adaptable should it be? How secure? How modular should it be? Do we start with large components that have smaller sections, much like layered systems, or do we start off with small sections that form larger components - similar to the use of microservices?


Herein, and in the shares that follow, we shall discuss the most known patterns. We shall aim to understand:


  1. Monolithic patterns

  2. Service-based patterns

  3. Distributed systems


We shall break these down to know when and where to use layered systems, microservices, service-oriented patterns, space-based architecture, event-driven, and microkernel architecture.


Through this, we discuss the advantages of each against its cons; whiteboard software development.


Walk with me through this series, and let us talk about architecture.

react to story with heart
react to story with light
react to story with boat
react to story with money
L O A D I N G
. . . comments & more!