1. Introduction to Software Engineering. Software Engineering Outline Lecture 1 What is software Software is Everywhere Software Crisis and Software Failures.

Slides:



Advertisements
Similar presentations
Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Advertisements

Developed by Reneta Barneva, SUNY Fredonia
Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Using MIS 2e Chapter 10: Managing Development David Kroenke
Prof. B. I. Khodanpur HOD – Dept. of CSE R. V. College of Engineering. ID: Subject: Computer Fundamentals (For EDUSAT) Common.
Mr Manesh T Dept. of CSE College of Arts and Science Chapter 3 Types of Softwares Code: 1400 Tech.
Syllabus Case Histories WW III Almost Medical Killing Machine
Software Engineering Disasters
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
SWE Introduction to Software Engineering
1 CMSC 132: Object-Oriented Programming II Software Development I Department of Computer Science University of Maryland, College Park.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
Introduction to Computer Software
I NTRODUCTION TO C OMPUTER S OFTWARE. S OFTWARE & H ARDWARE ? Computer Instructions or data, anything that can be stored electronically is Software. Hardware.
COMPUTER SOFTWARE Chapter 3. Software & Hardware? Computer Instructions or data, anything that can be stored electronically is Software. Hardware is one.
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
Software Engineering Methodologies (Introduction)
1 SYS366 Week 3 Lecture 1 Introduction to Requirements Gathering: Part 1.
Objectives of the Lecture
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
Software Project Management Lecture # 8. Outline Earned Value Analysis (Chapter 24) Topics from Chapter 25.
1 An Introduction to Software Engineering. 2 Objectives l To introduce software engineering and to explain its importance l To set out the answers to.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
2-Oct-15 Introduction to SWE1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts.
SCSC 311 Information Systems: hardware and software.
Lecture 1Software Engineering1 (Trimester I Session 2002/2003) Lecturer / Tutor Name : Mr. R. Logeswaran
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Chapter 1: Introduction Omar Meqdadi SE 2730 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring Chapter 1 u define software engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE ENGINEERING Chapter 1. Introduction We can’t run the modern world without software. Why? Discussion….
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
Lecture 4. Software Engineering Body of Knowledge SWEBOK  Articulating a body of knowledge is an essential step toward developing a profession because.
Software Engineering (CSI 321) Introduction to Software Engineering 1.
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Software Development Life Cycle (SDLC)
Software Engineering Introduction.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Introduction to Computing Lecture 9,10 Software
Software Engineering Facilitator Faisal Shafique Butt.
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
SOFTWARE FAILURES.
Introduction to Software Engineering
CompSci 280 S Introduction to Software Development
Chapter 1- Introduction
The Software Development Cycle
Verification and Testing
Contents Todays Topic: Introduction to Computer Software We will learn
ECE 103 Engineering Programming Chapter 2 SW Disasters
CS 425/625 Software Engineering Software Evolution
CS385T Software Engineering Dr.Doaa Sami
An Introduction to Software Engineering
Software Engineering Disasters
Presentation transcript:

1. Introduction to Software Engineering

Software Engineering Outline Lecture 1 What is software Software is Everywhere Software Crisis and Software Failures From Software Development to Software Engineering Development Activities

Software Engineering 1. What is software

Software Engineering Hardware - the physical components of the computer Software - programs that run on the hardware The first general-purpose electronic computer, ENIAC 1.1 Software vs. Hardware Glen Beck (background) and Betty Snyder (foreground) program the ENIAC in BRL building 328. (U.S. Army photo)Betty Snyder (foreground) program the ENIAC in BRL building 328. (U.S. Army photo) After the program was figured out on paper, the process of getting the program "into" the ENIAC by manipulating its switches and cables took additional days.

Software Engineering Woman and Software Engineering Ada Lovelace ( ) Grace Murray Hopper ( ) The Inventor of CobolThe First Programmer

Software Engineering 1.2 Software Types System Software It includes the Operating System and all the utilities that enable the computer to function. Application Software It includes programs that do real work for user. Open Source Software It is computer software whose source code is available under a license that permits users to use, change, and improve the software, and to redistribute it in modified or unmodified form Proprietary Software (non-free software ) It is software with restrictions on using, copying and modifying as enforced by the proprietor. Restrictions on use, modification and copying is achieved by either legal or technical means and sometimes both.

Software Engineering What is software? Computer programs, associated documentation and configuration data Software products may be developed for a particular customer or may be developed for a general market Software products may be Generic - developed to be sold to a range of different customers Bespoke (custom) - developed for a single customer according to their specification

Software Engineering 1.4 Software Characteristics Software is developed or engineered, it is not manufactured in the classical sense Software doesn’t wear out Although the industry is moving toward component- based assembly, most software continues to be custom built Time Failure Rate Infant mortality Wear out Time Failure Rate Actual curve Idealized curve Change Increased failure rate due to side effects

Software Engineering 2. Software is everywhere

Software Engineering Computer Software More and more systems are software controlled Software is sold by retail

Software Engineering The economies of ALL developed nations are dependent on software Software engineering expenditure represents a significant fraction of total spends in all developed countries

Software Engineering 3. Software Crisis and Software Failures

Software Engineering 3.1 Software Crisis The difficulty of writing correct, understandable, and verifiable computer programs

Software Engineering 3.2 Software Failures Sources: Business Week, CEO Magazine, Computerworld, InfoWeek, Fortune, The New York Times, Time, and The Wall Street Journal. We waste billions of dollars each year on entirely preventable mistakes

Software Engineering Software Disasters 20 Famous Software Disasters Source: 1. Mariner Bugs Out (1962) Cost: $18.5 million Disaster: The Mariner 1 rocket with a space probe headed for Venus diverted from its intended flight path shortly after launch. Mission Control destroyed the rocket 293 seconds after liftoff. Cause: A programmer incorrectly transcribed a handwritten formula into computer code, missing a single superscript bar. Without the smoothing function indicated by the bar, the software treated normal variations of velocity as if they were serious, causing faulty corrections that sent the rocket off course

Software Engineering 15. Y2K (1999) Cost: $500 billion Disaster: One man’s disaster is another man’s fortune, as demonstrated by the infamous Y2K bug. Businesses spent billions on programmers to fix a glitch in legacy software. While no significant computer failures occurred, preparation for the Y2K bug had a significant cost and time impact on all industries that use computer technology. Cause: To save computer storage space, legacy software often stored the year for dates as two digit numbers, such as “99″ for The software also interpreted “00″ to mean 1900 rather than 2000, so when the year 2000 came along, bugs would result.

Software Engineering Blue Screen of Death (or BSOD) refers to the error message displayed in Microsoft Windows operating systems. During the presentation of a Windows 98 beta at COMDEX in April 1998, the demo computer crashed as one of the assistants tried to connect a scanner in demonstrating the Windows support for Plug & Play devices. With the BSoD message on slideshow display, the audience had a big laughter and applauded, to which Mr. Gates responded: “That must be why we’re not shipping Windows 98 yet.”

Software Engineering These problems will become worse because of the pervasive use of software in our civic infrastructure.

Software Engineering Factors of software development Factors affecting the success of software development Complexity: The problem domain is difficult The development process is very difficult to manage Software offers extreme flexibility Software is a discrete system –Continuous systems have no hidden surprises (Parnas) –Discrete systems have!

Software Engineering Change: The “Entropy” of a software system increases with each change: Each implemented change erodes the structure of the system which makes the next change even more expensive (“Second Law of Software Dynamics”). As time goes on, the cost to implement a change will be too high, and the system will then be unable to support its intended task. This is true of all systems, independent of their application domain or technological base.

Software Engineering Iron Triangle

Software Engineering Iron Triangle  What happens when you break the triangle?  1) The project gets canceled.  15% of projects are cancelled before they deliver a system.  A study of 1,027 IT projects cited scope management related to serial practices as the single largest contributing factor to project failure in 82% of the projects and was given a overall weighted failure influence of 25%.study of 1,027 IT projects 22

Software Engineering Iron Triangle  What happens when you break the triangle? 2) The Project is deliver late, over budget, or both  According to the Chaos Report 51% of projects are challenged (severely over budget and/or late), with an average cost overrun of 43%. Chaos Report

Software Engineering Iron Triangle  What happens when you break the triangle? 3) The Project delivers poor quality software.  When development teams are forced to deliver more functionality than they have time or resources for, they are often motivated to take short cuts which inevitably result in poor quality. 24

Software Engineering Iron Triangle What happens when you break the triangle? 4) The project under delivers. The team fails to deliver all of the required functionality. 25

Software Engineering Iron Triangle…  What to do about it?  Recognize that the iron triangle must be respected.  So  Vary the Scope  Vary the Schedule  Vary the Resources  Vary two or more factors

Software Engineering 4. From Software Development to Software Engineering

Software Engineering 4.1 Towards the engineering of software development How to develop high quality software under the constraints of time and cost? software development skill training Qualified developers recruitment Development process reengineering …. We need a systematic approach

Software Engineering 4.2 Software Engineering Software Engineering: The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. (IEEE Computer Society’s Software Engineering Body of Knowledge )

Software Engineering 4.3 Understand the Software Engineering 1. It is a modeling activity Model: an abstract representation of a system Software engineers need to understand the environment in which the system has to operate Software engineers need to understand the systems they could build, to evaluate different solutions and trade-offs

Thanks