DEV Community

Cover image for Getting started with software engineering
Solomon Eseme
Solomon Eseme

Posted on

Getting started with software engineering

Almost every career in life has different patterns, structures, architectures and principles, Software engineering or development is not exempted.

In this article we going over the different software engineering and development architectures, patterns and principles.

We will be discussing extensively on the below topics, when to use it, how to use it and where in your software projects to apply them.

Before delving into the different terms, let’s clear the air by stating and differentiating between each of them.

Software Engineering Architecture
Software Development Methodology
Software Design Patterns
Software Development Principles
Software Programming Paradigms
We are going to try to clear out all the confusions between these concepts and terminologies in software development and engineering.

SOFTWARE ARCHITECTURE
This refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them and properties of both elements and relations. Wikipedia

Like we have seen from the definition, Software architecture describe the structure of your project, its shows how your project should be structured.

Software architecture is about making fundamental structural choices which are costly to change once implemented.

Software architecture gives birth to architectural patterns which is a general, reusable solution to a commonly occurring problem in the software architecture within a given context.

Also, architectural styles are reusable ‘packages’ of design decisions and constraints that are applied to an architecture to induce chosen desirable qualities. Wikipedia.

There are many recognized architectural patterns and styles, among them:

Model – View – Controllers
Presentation – abstraction – control
Model – view – presenter
Model – view – viewModel
Micro-services architecture
Monolithic Architecture
Event – driven architecture
Representational State Transfer architecture
Service – oriented architecture
Component-based architecture
Client – server architecture
Layered or Multi-layered architecture
Blackboard system architecture
Broker architectural Patterns
Implicit invocation architecture
Entity – component – system architecture
Naked Objects architecture
Operational data store (ODS)
Peer – to – peer architecture
Rule – based architecture
Shared nothing architecture
Pipes and Filter architecture
Space – based architecture

Among the list of architectures listed above, there are popular ones among each other and others which are mostly and still used in today’s software development processes. We are going to listed and explain from the most popular ones down to the least one.

I will be dropping articles and videos tutorials on each of the topics listed above and also demonstrates how to connect the dots in software development and engineering. Follow our blog to get updates when ready.

Conclusions
There are lots you could learn from the above listed as a back-end developer, i decided to clear the confusions between this terminologies, this is based on my personal opinion and will be very glad to hear from you.

Thank you for reading my article. Here at my blog or medium I regularly write about back-end development, digital marketing and content management system. To read my future posts simply join my publication or click ‘Follow’ Also feel free to connect with me via Twitter, Facebook, Instagram.

If you are interested in backend development (or you’re internet enthusiast) both (Mobile | Web | Desktop) videos subscribe to my Youtube channel, we will be posting a collection of help full tutorials and guides like this one for artisans.

If you enjoy this post, make sure to let us know and share it with your friends and subscribe to my growing channel. Sharing is caring.

Top comments (0)