Software engineering complete course free tutorial | Learn easy with quiz door| Part 2
Software Crisis
In 1960s a great amount of rapid improvement was made in hardware. New hardware and new computer systems were made available. These computer systems were far more powerful than the computers of early fifties. More powerful hardware resulted into the development of more powerful and complex software. Those complex software was very difficult to write. Because tools & techniques that were used to develop small software were not applicable for large software systems, which suffered a kind of problem known as Software Crisis, which leads to the following consequences:• In most of the cases that software which was tried to be build using those old tools and techniques were not complete.
• Most of the times it was delivered too late.
• Most of the projects were over-budgeted.
• And in most of the case systems build using these techniques were not reliable – meaning that they were not be able to do what they were expected to do.
As a result of these above problems, a conference were held in 1960 in which the terms software crisis and software Engineering were introduced.
• And the major issue discussed was that the development of software is in crisis and are not able to handle its complexities. And the term of Software Engineering was coined(created) in the same conference.
• In this conference, People have said that, we should use engineering principles in developing software in the same way as we use these principles in developing cars, buildings, electronic devices etc.
• Software engineering is the result of software crisis when people realized that it is not possible to construct complex software using the techniques applicable in 1960s. An important result of this conference was that people had realized that just coding is not enough.
Software + Engineering
What is Engineering?
If you survey some of the dictionaries, then you will find the following definition of engineering.
“The process of productive use of scientific knowledge is called engineering.”
Engineering is the application of well-understood scientific methods to the construction, operation, modification and maintenance of useful devices and systems.
What is Software Engineering?
Organized way to develop software is called Software Engineering.
Software Engineering is the set of processes and tools to develop software.
• Software engineering is concerned with theories, methods and tools for professional software development.
• Software Engineering is concerned with finding ways in which to produce working software for predictable costs in predictable time.
• The major focus of software engineering today is on the production of software to solve complex problems when many people are involved in the process, as users, as analysts, as programmers, as managers, etc.
• Therefore, most of the issues in Software Engineering are concerned with interactions among people, rather than with the production of software.
• Software Engineering is an engineering discipline which is concerned with all aspects of software production.
• Software Engineering is the sub-discipline of Computer Science that attempts to apply engineering principles to the creation, operation, modification and maintenance of the software components of various systems.
• Software Engineering should adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.
•Software Engineering is concerned with theories, methods and tools for professional software development.
Software Engineering is nothing but a disciplined and a systematic approach to software development.
Well-Engineered Software
The major challenges for a software engineer is that he has to build software within limited time and budget in a cost-effective way and with good quality.
Therefore, well-engineered software has the following characteristics.
Provides the required functionality
- Maintainable
- Reliable
- Efficient
- User-friendly
- Cost-effective
😇 Why Software is important?
Undoubtedly software is playing a vital role in all the field of life these days. We can see many software applications being operated around us in our daily routine. Some of the major areas in which software has played an important role are:
Business Decision-Making
Software systems have played a major role in businesses where you have to analyze your data and on the basis of that analysis you have to make business decisions. This process of data analysis and decision-making has become very accurate and easy by the use of software.
Modern Scientific Investigation and Engineering Problem Solving
Scientific investigations and engineering problem solving require an intensive amount of calculations and data analysis. The accuracy of these analyses is also very important in scientific applications. This process has become very easy and accurate by the use of software. For example, software systems are becoming more involved in bioinformatics and the process of DNA decoding is only possible by the use of software systems. Similarly, many astronomical observations are being recorded and analyzed by the software systems these days.
Entertainment/Games
We see many computer games these days that interests people of all ages. All these games are drive through software systems.
Embedded systems
These applications control and manage hardware devices. We see many kinds of gadgets being employed in our daily used things, like small microcontrollers used in our cars, televisions, microwave ovens etc.
Similarly, in many other fields like education, office automation, Internet applications etc, software is being used. Due to its central importance and massive use in many fields it is contributing a lot in terms of economic activity started by the software products. Billions and trillions of dollars are being invested in this field throughout the world every year.