If you are reading this tutorial by skipping the previous tutorial then I strongly recommended to you to learn first previous tutorial. On that tutorial, I had explained that what is software engineering and what goals are for software engineering. Now in this tutorial, I will be going to describe the important principles of software engineering.
Read Here: What is software engineering? And Need for Software Engineering.
Let’s start some important principles of software engineering, software engineering are the generally accepted guidelines that software designers and developers should follow to produce a software product for meeting the goals of software engineering. These this the important guidelines which are described below.
Precise Requirements Definition
The designer of a software product must define its requirements precisely to ensure that the resulting product meets user’s true needs. 3rd defined software requirements generally lead to problems in the later phases of software life cycle.
Modular Structure
The designer of a software product must structure it in a modular fashion so that it is easy to program, implement, and maintain. A modular design helps in distribution of development task of different modules to different programmers, enabling development of the product in a shorter time.
It also helps in easier testing, debugging, and maintenance of the product because respective teams can test, and maintain individual modules independently. Designers can do feature enhancements by adding new modules.
The modular design also enables software reusability because if a module already exists for a desired functionally, it can be used as it is or with minor customization. Third party library routines are an example of reusable software modules.
Abstraction
As far as practicable, a software product should use abstraction and information hiding. Better understand take an example, in modular design, a programmer should implement each module in such a manner that its implementation details are hidden inside the module and only module interface is visible outside to allow other modules to interact with the module. Object-oriented programming takes care of this aspect of software engineering.
Abstraction helps in easy reusability of existing modules because for reusing a module, a programmer needs to understand only its interface and not its internal details.
Uniformity
If we are talking about uniformity, a software product should maintain uniformity in design, documentation, coding, etc. Uniformity ensures consistency, which makes the product easier to develop and maintain as well as easier to learn and use.
Let’s take an example if all graphical user interface of a software product follows a uniform style (providing the same look-and-feel throughout), it becomes much easier for a user to learn and use the software. Similarly, if all programmers working on different modules of software projects follow uniform coding and documentation styles, it becomes much easier for someone else to understand and maintain the modules. Software organizations adapt and use several software engineering standards, such as design standards, documentation standards, documentation standards, etc. to take care of this aspect of software engineering.
So these are the basic an important principles of software engineering as given above. If you have much knowledge about these topic then let me know through your comment, and if you like this tutorial then don’t forget to share others.
Have a good day!!