Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1. Introduction to Software Engineering. Software Engineering Outline Lecture 1 What is software Software is Everywhere Software Crisis and Software Failures."— Presentation transcript:

1 1. Introduction to Software Engineering

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

3 Software Engineering 1. What is software

4 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.

5 Software Engineering Woman and Software Engineering Ada Lovelace ( 1815-1852 ) Grace Murray Hopper (1906-1992) The Inventor of CobolThe First Programmer

6 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.

7 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

8 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

9 Software Engineering 2. Software is everywhere

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

11 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

12 Software Engineering 3. Software Crisis and Software Failures

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

14 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

15 Software Engineering Software Disasters 20 Famous Software Disasters Source: http://www.devtopics.com/20-famous-software-disasters/http://www.devtopics.com/20-famous-software-disasters/ 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

16 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 1999. The software also interpreted “00″ to mean 1900 rather than 2000, so when the year 2000 came along, bugs would result.

17 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.”

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

19 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!

20 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.

21 Software Engineering Iron Triangle

22 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

23 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

24 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

25 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

26 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

27 Software Engineering 4. From Software Development to Software Engineering

28 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

29 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 )

30 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

31 Thanks shengbin@cs.sjtu.edu.cn


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

Similar presentations


Ads by Google