The science concerned with putting scientific knowledge to practical use.
There are many engineering fields like electrical, mechanical and civil engineering. All these branches of engineering are based on physics. Physics itself is not engineering, but the use of physics in making buildings, electronic devices and machines is engineering. When we use physics in constructing buildings, then it is called civil engineering. When we use physics in making machines like engines or cars, then it is called mechanical engineering. And when we apply the knowledge of physics in developing electronic devices, then the process is called electrical engineering. The relation of computer science with software engineering is similar to the relation of physics with electrical, mechanical or civil engineering, or for that matter the relation of any basic science with any engineering field. So in this context, we can define software engineering as;
"This is the process of utilizing our knowledge of computer science in effective production of software systems."
Difference between software and other systems
Now let's talk something about how a software system is different from any other systems. For example how software is different from a car or TV or the similar system or what is the difference in software engineering and other engineering like mechanical or electrical engineering. Let's look at some non software systems like TV, car or an electric bulb. The car maybe malfunctioned due to some problem in engine while driving. Similarly, any electrical bulb may be fused while glowing and a TV could be dysfunctional while working. Some major thing that distinguishes a software system from other system is that;
"Software doesn't wear out."
What does that mean?
As we have seen in above example that our non software system could be malfunctioned or crash while working that mean they are affected by the phenomenon of wear and tear. They have a particular life and after that they could have some problem and may not be having and perform as expected. But this is not the case with software. Software system does not affect by the phenomenon of wear and tear. If a software has any defect, then that defect will be there from the very first day and that defect normally called bug. That means, if a software is not working, then it should not work from the very first day. But this could not be the case that at a particular point in time a software is functioning well and after some time the same software is not performing the same task as required. So software does not have the element of wear and tear. Let's elaborate this point further. We have just talked about software defects, which we call bugs. If a part of a car became wear out, you just need to get new one from market and replace the damages one with the new one. And the car will start working properly as it was working previously. Similarly, if an electric bulb got fused then you just need to get a new one and put into the socket in place of the fused one and your room will again be illuminated. But the case of software is somewhat different. If a software have a bug, then the same process of replacing the faulty part with the new one may not work. You can not remove the bug by just replacing the faulty part of software with the new one. Or it will not be as simple that, you go to the concerned company, get a new CD of that software, and it will start working properly. If the software has a bug and that bug was present in the older CD, then that will remain in the new one. This is a fundamental difference between software and other systems.
You must be logged in to post a comment.