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
- 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
- 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
- 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
- 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
- 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
- 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
- Future-oriented
Creating software that is adaptable to future changes whether it may be environments changes, hardware platforms changes
Leave a Reply