What Is Software Engineering and How Did It Evolve?

1.3M views
•
May 8, 2020
by
Gate Smashers
YouTube video player
What Is Software Engineering and How Did It Evolve?

TL;DR

Software engineering is a systematic, disciplined, cost effective technique for software development, meaning step by step work under fixed rules, budget, and time. It covers far more than coding: idea, requirements, feasibility study, planning, design, implementation, testing, delivery, and maintenance. During the 1965 to 1985 software crisis, only about 2% of software built was actually used.

Transcript

Hello friends welcome to gate smashers In this video I'm going to explain software engineering definition And its evolution See you will get the definition of software engineering at many places You will get many different definitions But one of the best definition is It is a systematic, disciplined, cost effective technique for software developmen... Read More

Key Insights

  • The best definition of software engineering is that it is a systematic, disciplined, cost effective technique for software development, where systematic means a step by step approach, disciplined means following rules and working regularly toward a deadline, and cost effective means staying under budget.
  • Time is a constraint that can be added alongside cost, because work must be completed within the allotted schedule; both budget and time are treated as important parameters of any software development technique.
  • Software engineering is not about how to code. Coding is only one phase; the discipline covers the complete approach from idea, requirement, feasibility study, and planning through design, implementation, testing, maintenance, and product delivery.
  • An engineering approach means doing work systematically from the first step to the last step to reach a goal, not simply work performed by someone holding an engineering degree. Applying that approach to software is what defines software engineering.
  • The branded versus non branded vehicle comparison illustrates the difference: local mechanics modify old jeeps with new engines, broad tyres, and a good body, then sell them untested using a build and deliver method, while branded makers follow every step and still supply maintenance service five years after purchase.
  • The term software engineering originated between 1945 and 1965, when software development began around World War 2 at organizations such as NASA and IBM. The name software engineering was first used at the famous NATO conferences of that era.
  • The period from 1965 to 1985 is called the software crisis, when only about 2% of the software built was actually used, roughly 45 to 50% was never delivered, and the rest was scrapped because of budget overruns, time overruns, and complexity.
  • IBM's OS/360 operating system is a leading example of crisis era failure. The person heading the project wrote that it was a multi millionaire failure project because no coherent design was prepared before coding and implementation began.

Install to Summarize YouTube Videos and Get Transcripts

Explore YouTube Video Summarizer or Get YouTube Transcript Extractor

Questions & Answers

Q: What is the definition of software engineering?

Software engineering is a systematic, disciplined, cost effective technique for software development. Systematic means following a step by step approach from the first stage to the last. Disciplined means following the rules and working on a regular basis against a proper deadline, rather than working one day and stopping for the next ten days. Cost effective means treating cost as an important parameter and staying under budget instead of going over it. Time can be added as a further constraint, because the work should be completed within the time allotted. A second common definition states that an engineering approach to develop a software is known as software engineering.

Q: Is software engineering the same as coding?

No. Software engineering is not related to how you have to code. Coding is only one phase of the work. The discipline is a whole approach that combines every stage into one method: step one is the idea, followed by requirement, feasibility study, planning, design, implementation, testing, maintenance, and product delivery. Combining all of these steps into a single approach is what is called the engineering approach. So when someone asks whether software engineering involves development and coding, the answer is that coding is one phase of a much larger process focused on how you move from the first step to the last step and how the product grows.

Q: What does engineering approach mean in software engineering?

An engineering approach does not mean work done by a person who holds an engineering degree. It means that work is performed systematically, step by step, from the first step until the last step, so that the goal is achieved progressively. In software this covers everything from the initial idea through to maintenance and regular updating. The video illustrates this with branded versus non branded vehicles: non branded modified jeeps are built and delivered without testing, so they may fail on a long drive, while branded manufacturers follow every step properly and still provide maintenance services five years after purchase, though they charge for it.

Q: When did the term software engineering originate?

The term software engineering originated between 1945 and 1965. Origin could only happen once software development itself had started, and development related to this began around the time of World War 2. NASA, IBM, and other organizations working at a large level had started working on software at their own level, but nobody was talking about engineering at that stage. The work was simple software development following a build and deliver, also called build and fix, method. The name software engineering was first used at the famous NATO conferences held during that period.

Q: What was the software crisis and why did it happen?

The software crisis refers to the period from 1965 to 1985. It is called a crisis because there was no proper approach in place; teams simply followed a build and deliver method, wrapping work up quickly and handing it to the market or the client. As a result, only about 2% of the software built at that time was actually used, meaning that if a hundred softwares were made, only two were used properly. Approximately 45 to 50% were never delivered, and the rest were simply scrapped. Budgets were overrun, for example spending a full billion without finishing the software, time constraints were exceeded, and complexity was a further factor.

Q: Why is IBM OS/360 considered a failed software project?

OS/360, the IBM Operating System 360, is one of the best known examples of software crisis era failure. The person who headed the project wrote himself that it was a multi millionaire failure project. The reason given is that no coherent design was prepared before work began. The team went directly into working on the product, doing the coding part, implementing it, and bringing it into the market without a design stage first. That skipping of the proper approach is what turned it into a total failure, and it is used as the standard illustration of what happens when the engineering approach is not followed.

Q: Does following the software engineering approach guarantee success?

No. Following the approach does not mean there is a 100% guarantee that a project will be successful. What it does is raise the probability of success, and that is the main point. Conversely, if the approach is not followed, the probability of failure is actually greater. Examples of failure without a proper approach continued beyond the main crisis window: the torus project in the UK ran for 10 to 12 years with a lot of UK pounds spent on it and was still given to scrap at the end, and US attempts to build autonomous systems also overran their budget and were scrapped.

Q: How has software engineering evolved from the 1990s to today?

After 1990 the Internet era arrived. Microsoft Windows, a system software also called an operating system, came during that time, and web browsers were developed heavily and became very popular. Next came the mobile era, which required lightweight platforms so that lightweight software could be developed and run properly on mobile devices rather than only on a PC. From about 2010 onward the focus has been AI, machine learning, and deep learning, where software uses the concept of self learning and tries to learn by itself like a human being. One of the best outcomes of this evolution is that most software is now free rather than proprietary, so people can work on it and learn.

Summary & Key Takeaways

  • Software engineering is defined as a systematic, disciplined, cost effective technique for software development. Systematic means proceeding step by step, disciplined means following rules and working continuously against a deadline rather than in bursts, and cost effective means keeping the work under budget. Time is an equally important constraint, since the work must finish within schedule.

  • The field is not about coding. It covers a full approach: idea, requirement, feasibility study, planning, design, implementation, testing, maintenance, and product delivery combined into one engineering approach. The branded versus non branded vehicle example contrasts untested build and deliver modification work with branded manufacturers who follow every step and provide maintenance service years after purchase.

  • Software engineering originated between 1945 and 1965 as development began during World War 2 at NASA, IBM, and similar organizations, and the term was first named at NATO conferences. From 1965 to 1985 the software crisis saw only about 2% of software actually used, 45 to 50% never delivered, and the rest scrapped from budget and time overruns.

  • IBM's OS/360 is the standout crisis example, described by its own project head as a multi millionaire failure because no coherent design preceded coding. The UK torus project consumed 10 to 12 years and large sums before being scrapped, and US autonomous system attempts also overran their budgets and ended in scrap.

  • Evolution continued after 1990 with the Internet era, which produced Microsoft Windows as system software and drove heavy web browser development. The mobile era followed, requiring lightweight platforms so software could run properly on phones. Since about 2010 the focus has been AI, machine learning, and deep learning, where software learns by itself like a human being.

  • A key benefit of this evolution is that most software is now free rather than proprietary and held by the company that built it, allowing more people to work with it and learn. Following the approach does not guarantee success, but it raises the probability of success, while ignoring it raises the probability of failure.


Read in Other Languages (beta)

Share This Summary 📚

Explore More Summaries from Gate Smashers 📚