What is software engineering? and how do you perceive it?

Software engineering refers to the art or craft or discipline, which helps the construction of software

The software exists for the sole purpose of the needs of the people or a business need

The term software means it is a set of computer instructions that execute within the hardware

The essence of software engineering

  1. Understanding the problem from user stories(requirement development)

Understanding the problem from the user is the most important part of the software construction process

Why?

Because the software construction process is organic

suppose If  the requirements get contaminated

then it will also contaminate the architecture and the code

So solid requirement development is crucial for software development and lays the founding stone for the software

It is also cost-effective if we could develop requirement accurately as possible

why?

because if you found an error in requirement during the coding phase then it will be costly also time-consuming

  1. Planning(software architecture or design)

Architecture and design are the blueprints for your code

Architecture is crucial in any construction process whether it may be software construction  or any other construction

For example: suppose you are building a shopping mall you need a detailed design to construct it and mistakes in the design will be expensive in larger projects

For building a small shanty you need as little design as possible because it is a simple structure that anyone can easily understand without any effort, if any mistakes occur it won’t take much time effort to rectify it

  1. Coding, debugging, and testing

Being good at data structure and algorithms gives you the ability to solve a problem quickly than others

You can debug a code by using debugging strategies such as visualizing your data by using visualization tools and also by rubber duckling

An orthogonally designed software is easier to test interaction between the different modules are less

Fundamental principles of software engineering

  1. Software should solve a business need

Before software construction begin be sure that it solves a business need or problem

There is no point in creating software which no one wants so, a clear understanding of business needs is crucial because you won’t waste your valuable time, money, and energy in solving a wrong problem, which no one wants

Software should have a purpose and meaning that user perceive value in it otherwise you are wasting your time

  1. Simplicity

The solution should be simple enough that you can implement it right away,

suppose if it is complicated and complex,

then it won’t gonna happen

Simple does not mean that is quick and ugly but it means iterate the code or design multiples times till it reaches the point where it becomes invisible

  1. Maintainability

The written code or design should be well preserved and structured

so, that you can reuse it in future projects

By reusing existing code and design will save time, money, and energy that should be utilized in solving a new problem

For example: using existing design patterns to solve the problem instead of creating or design solution from scratch

In software construction reuse of existing code is more beneficial than creating a code design from scratch

  1. Future-oriented

Creating software that is adaptable to future changes whether it may be environments changes, hardware platforms changes

Mohammed Anees

Hey there, welcome to aneescraftsmanship I am Mohammed Anees an independent developer/blogger. I like to share and discuss the craft with others plus the things which I have learned because I believe that through discussion and sharing a new world opens up

Leave a Reply

Your email address will not be published.