Getting started with software engineering
Originally published at https://codelikemad.com.ng on June 18, 2019.
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 backend 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.
Originally published at https://codelikemad.com.ng on June 18, 2019.