Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.

Slides:



Advertisements
Similar presentations
Project management.
Advertisements

Effort metrics: Man-month. Mythical Man Month – the book Brooks lead development of OS/360 and reflected on the problems experienced in the project. The.
Robert Lockyer.
Project Management Information Systems and Management.
Lecture # 2 : Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
The Mythical Man-Month By: Zac Lippard CS 470. What is the “Man-Month”? This is the idea that men and months are interchangeable between each other. This.
Informatics 43 – May 12, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases 
Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering.
Chapter 1: Key Points Program = Useful to the programmer in the garage Programming Product = Useful to anyone Programming System Component = Part of a.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Project management.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
CS 501: Software Engineering
Software Engineering General Project Management Software Requirements
CS189A/172 - Winter 2008 Lecture 5: Project Management.
ESD.83Cory R. A. Hallam1 An Introduction to Systems Engineering The Art of Managing Complexity Presented By Cory R. A. Hallam B.Eng., M.Eng., ISU SSP,
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
Mythical Man Month Fred Brooks, Why are software projects late? Estimating techniques are poorly developedEstimating techniques are poorly developed.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
CSE 230: Introduction to Software Engineering Topics covered: Introduction.
“80% of software projects fail”  Standish Report (1995) Standish Report 16.2% completed on-time and on-budget with all features and functions as initially.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Project planning. Software project management Informal definition of management – The art of getting work done through other people Software project management.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 5 Slide 1 Chapter 5 Project Management Modified by Randy K. Smith.
Project management DeSiaMore 1.
Software Project Management
Why use RequisitePro RequisitePro is a comprehensive tool that supports any of today's requirements management processes. The predominant requirements.
CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
BIS 360 – Lecture Two Ch. 3: Managing the IS Project.
Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Project management Lecture 10. Topics covered Management activities Project planning Project scheduling Risk management.
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000 Slide 1 Project management l Organising, planning and scheduling software projects l Objectives To introduce software project management.
Chapter 3 Project Management Chapter 3 Project Management Organising, planning and scheduling software projects.
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.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Software Engineering, 8th edition. Chapter 5 1 Courtesy: ©Ian Sommerville 2006 Oct 13 th, 2008 Lecture # 6 Project management.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
1 Project management. 2 Topics covered Management activities Project planning Project scheduling Risk management.
Mythical Man Month By Ryan Ruzich.  More software projects have gone awry for lack calendar time than all other reasons combined.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Chap 4. Project Management - Organising, planning and scheduling
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Chapter Eighteen Proposition of the Mythical Man Month: True or False?
CSE 403 Lecture 25 Scheduling and Planning a Large Project Reading: The Mythical Man-Month, Ch. 2, by F. Brooks slides created by Marty Stepp
Project management 1/30/2016ICS 413 – Software Engineering1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CSE-332 Software Design Methods The Mythical Man-Month 박성우 POSTECH October 20, 2015.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Slide #18-1 Introduction to Assurance CS461/ECE422 Fall 2008 Based on slides provided by Matt Bishop for use with Computer Security: Art and Science.
Saroj Saengphongumphai, May Thank you to every teachers, books, websites, posts, articles, etc.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Project management. Software project management ■It is the discipline of planning, organizing and managing resources to bring about the successful completion.
Ashima Wadhwa.  Probably the most time-consuming project management activity.  Continuous activity from initial concept through to system delivery.
1 Project management Organising, planning and scheduling software projects.
Why is software engineering worth studying?
Software Engineering and Best Practices
The Effects on Development
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Testing and Maintenance Maintenance and Evolution Overview
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
CS385T Software Engineering Dr.Doaa Sami
Presentation transcript:

Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have cost overruns  Many projects fail altogether  Software engineering seeks to find ways to build systems that are on time and within budget

Demand for larger software systems  What growth pattern do you see in the following?  F4 fighter had no digital computer and software (Early 70’s).  F16A had 50 digital processors and 135 KLOC (Late 70’s).  F16D had 300 digital processors and 236 KLOC (Late 80’s).  B-2 has over 200 digital processors and 5000 KLOC.  Software components are growing exponentially

Software development costs Software costs are increasing as hardware costs continue to decline. Hardware technology has made great advances Simple and well understood tasks are encoded in hardware Least understood tasks are encoded in software Demands of software are growing Size of the software applications is also increasing Hence “the software crisis” Software costs Hardware costs Time Hardware costs vs. Software costs What can you infer from the graph?

State of the practice EstimateEarlyOn TimeDelayedCanceled 13, % 74.77%11.83% 7.33% 130, %60.76%17.67%20.33% 1,300, %28.03%23.83% 48.00% 13,000, %13.67%21.33%65.00% Source: Patterns of software failures and successes, Capers Jones, 1996 Delays common with mid- to –large projects. Majority of the large projects are canceled. What can you infer from this chart?

Cost overrun SuccessfulCancelled Source: The Standish Group, 1994 Successful projects (16.2%) - Delivered fully functional on time and on budget. Challenged (52.7%) - Deliver less than full functionality, over-budget and late. Impaired (31.1%) - Cancelled during development.

Software development costs and consequences Failures resulting from software errors have varied consequences ranging from minor inconveniences to catastrophic loss of life & property: Air Traffic Control (FAA modernization): - $5.6 billion cost overrun. - 8 year delay. - 2 systems are canceled - Requirements for the third have been decreased by 48%. US Navy Finance System: - 4 times cost overrun. - Canceled after 9 years. Flaw in Therac-25 control system caused radiation overdoses - Consequences were injury and deaths

Software development process has stages  Requirements analysis and definition:  Establish the application’s goals and constraints in consultation with users  Design:  Establish the system’s architecture  Implementation and unit testing:  Realize the design as a set of programs or program units  Unit testing verifies that each unit meets its specification  Integration and system testing:  Integrate the program units and test as a complete system  Maintenance:  Correct errors, improve implementation, and enhance the system’s services as new requirements are discovered

Relative costs to fix errors: What can you infer from this graph? Requirements Design Implementation Testing Maintenance Cost Cost to fix an error increases as it is found later and later in the software lifecycle

What is the primary driver of software costs? What can you infer from the following graphic? 3% 8% 7% 15% 67% Requirements -- 3% Design -- 8% Implementation -- 7% Testing -- 15% Maintenance -- 67% Most money and effort spent in testing and maintenance But: 85% of errors are introduced during requirements analysis and design

Why are software projects late? Estimating techniques are poorly developed Estimates are based on optimism: - Programmers are optimistic. - Assume “All will go well” with the project. - Don’t plan for slippage. - “This is the last bug.” - “It’s going to work this time!” Optimism could be because of the nature of creativity: - Conception of an idea and its implementation. - Medium of creation constrains our ideas. - In case of software the medium is infinitely malleable. - Expect a few problems in implementation. Our techniques of estimating are poorly developed. More seriously they reflect an unvoiced assumption which is quite untrue, that is, that all will go well. -- Fred Brooks, The Mythical Man-Month

Why are software projects late? (contd..) Does effort necessarily == progress? Is one man working six months equal to six men working one month? Unit of man-month implies that men and month are interchangeable. - True only when a task can be partitioned among many workers with no communication between them. - For sequential tasks, more effort has no effect on the schedule. - Many tasks in software engineering have sequential constraints. Our estimating techniques fallaciously confuse effort with progress, hiding the assumption that men and months are interchangeable. - Fred Brooks, The Mythical Man-Month

Why software projects are late? (contd..) Managers do not monitor progress effectively Schedule slips day-by-day. Day-by-day slips are harder to recognize, harder to prevent and harder to make up. How does a software project get to be a year late?.. One day at a time! Fred Brooks, The Mythical Man-Month

Why are software projects late ? (contd..) When we recognize slippage, should we add more people? Most tasks require communication among workers. Communication consists of: - Training. - Sharing information (intercommunication). Training affects effort at worst linearly, with the number of people. For n workers, intercommunication adds n(n-1)/2 to effort. - If each worker must communicate with every other worker. Adding more people to an already late project is usually like “Adding gasoline to fire!” Adding manpower to a late software project makes it later. Fred Brooks, The Mythical Man-Month

What software engineering is and is not..  Software engineering is concerned with “engineering” software systems, that is, building and modifying software systems:  on time,  within budget,  meeting quality and performance standards,  delivering the features desired/expected by the customer.  Software engineering is not…  Just building small or new systems.  Hacking or debugging until it works.  Easy, simple, boring or even pointless!

Summary  Critical aspects of our day to day lives depend on software, yet software development lacks the rigor and discipline of mature engineering disciplines:  Too many projects get delayed, costs and schedules slip  Software engineering seeks to bring discipline and rigor to the building and maintenance of software systems  Study of software engineering focuses on three key elements: process, methods and tools  Why is important to consider alternative models of the software development process?