
Introduction to Software Engineering Fundamentals
Explore the essence of software engineering, including its significance, historical context, and the critical role it plays in ensuring efficient software development, reliability, and system maintenance. Delve into the necessity of software engineering, its methodologies, and real-world examples highlighting the repercussions of neglecting software engineering practices.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
CS341 Software Engineering Introduction
Topics 1. What is software engineering? 2. Why do we need software engineering? 3. How did the Software Crisis develop?
Software engineering is the discipline that investigates program development How program development can be done most efficiently? What is the best way to develop reliable software systems? How can systems be maintained?
RULE RULE Software Development Activity is Software Engineering Activity
Software Engineering Rigorous study Involves: 1. Working with stake holders to develop a system 2. Understanding the requirements of the system 3. Building the system Software Engineering is the entire lifecycle of a system.
Software Engineering for large software systems Examines: Methods Principles Techniques
Why do we need software engineering? Software systems can be immensely complex Software development requires envisioning and construction of valuable functionality. A software system must have all of the critical quality attributes that are necessary for the system to be a success.
Software Engineering Methodology Improves Productivity Performance Scalability Reliability
Chaos without Software Engineering Examples of what can happen when software engineering practices are not suitably applied: Nasa s Mars Climate Orbiter ($125 million) Failed to make a simple conversion from English units to metric Lost in space UK Child Support System ($1 billion) Two pieces of software were completely incompatible Overpaid recipients Ariane 5 Flight 501 ($8 billion) 64-bit number assigned to a 16-bit space.
Ariane 5 The explosion of the Ariane 5 happened 34 seconds after takeoff. This was due to a software error that could have been identified. Watch the video: linked to image.
How did the Software Crisis start? Began imperceptibly in the 1960s Hardware components dominated the time. The size and complexity of software was very limited at the time. A beginning rise in demand for software Hardware Software
Software Crisis: 1st Reason Changes Software Demand Demand for software began to grow exponentially in the late 1960s. The amount of software became larger and larger. Growth in Software Demand 1960 2000
Software Crisis: Changes Software Complexity Increased complexity Increased amount of development effort needed Lines of Code (LOC) 102 103 104 105 106 107 Software Example Homework Programming Exercise (CS111) Small Project Final Project Sophisticated Phone App Operating System Distributed System
Programming Effort vs Software Engineering Lines of Code (LOC) 102 103 104 Software Example Homework Programming Exercise (CS111) Programming Effort Small Project Final Project 105 106 107 Sophisticated Phone App Software Engineering Effort Operating System Distributed System
Software Crisis: 2nd Reason Development Effort Rise in development effort due to increase of software complexity Software Size and Complexity Developer s Productivity Qualitative Diagram: IEEE Software Magazine
Software Complexity Software complexity does not increase linearly with size Writing software for a homework project is NOT the same building a large complex project. No matter how much programming languages, development environments, and software tools improve, developers can not keep up with increasing software size and complexity. Software Size and Complexity Developer s Productivity Qualitative Diagram: IEEE Software Magazine
Software Crisis: 3rd Reason Slow developer's productivity growth A developers' productivity cannot keep up with additional software complexity. Software Size and Complexity gap This results in a gap between what is needed and what is actually available. Developer s Productivity Qualitative Diagram: IEEE Software Magazine
Software Crisis Question Review What are the major causes of the software crisis? Select all that apply a. Increasing cost of computers b. Increasing product complexity c. Lack of programmers d. Slow programmers productivity growth e. Lack of funding for software engineering research f. Rising demand for software g. Lack of caffeine in software development organizations
Software Development Study (Davis, 1990) The study was performed on nine software projects Total cost: $7 million. Software was usable as delivered. Software delivered, but never successfully used. Software was usable after changes. Software was not delivered. Software was usable after extensive modifications.
Grim results: Software Study Total cost: $7 million. Software was usable as delivered. Software delivered, but never successfully used. Software was usable after changes. $5 million Software was not delivered. Software was usable after extensive modifications.
NATO Software Engineering Conference Held in January 1969 Birth of Software Engineering Proceedings of this conference are available, in case you would like to look at the issues that were examined: http://homepages.cs.ncl.ac.uk/brian.randell/NATO/