CSE 230: Introduction to Software Engineering Topics covered: Introduction.

Slides:



Advertisements
Similar presentations
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.
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.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
Chapter 2 The Software Process
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.
“Not Fully Specified (Project) Objectives” CS524 – Software Engineering I Azusa Pacific University Professor Dr. Sheldon X. Liang Fall I 2007 Ernie Rosales.
Systems Analysis and Design 8th Edition
Lawrence Chung Software Engineering: Introduction 1 Module 1: Introduction to Software Engineering.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
CS 501: Software Engineering Fall 2000 Lecture 4 Management I: Project Management.
Creator: ACSession No: 1 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringSeptember 2006 Introduction to the Module CSE300 Advanced Software.
Ch7: Software Production Process. 1 Questions  What is the life cycle of a software product?  Why do we need software process models?  What are the.
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,
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
Course Introduction and Overview of Software Engineering Richard N. Taylor ICS 221 Fall 2002.
3-Jul-15Software Engineering1 IS F341 : Software Engineering Dr. Yashvardhan Sharma Assistant Professor, CSIS Department, BITS-Pilani.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
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.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Software Project Management
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
2-Oct-15 1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts ICS Software Engineering.
2-Oct-15 Introduction to SWE1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts.
Ch.11 Software Engineering A Preview. Ch.12 Outline Definitions of software engineering (SE) Historical origins of SE SE as part of systems engineering.
Software Development and Lifecycles CS201 Fall 2004 Week 11.
Lecture 1 Introduction to Software Engineering
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Ch.1 1 Software Engineering A Preview Chapter 1. Ch.1 2 Outline My Background Definitions of software engineering (SE) Historical origins of SE SE as.
University of Virginia Software Development Processes (CS340 John Knight 2005) 1 Software Development Processes.
1 Software Process and Project Metrics. 2 Normalization for Metrics.
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.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Mythical Man Month By Ryan Ruzich.  More software projects have gone awry for lack calendar time than all other reasons combined.
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Software Engineering REQUIREMENT ENGINEERING. Software Engineering Phases.
Software Engineering Introduction.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Software Engineering Facilitator Faisal Shafique Butt.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Software Engineering - CSC 323
Why is software engineering worth studying?
Introduction to Software Engineering (2/2)
Software Engineering - CSC 323
The Effects on Development
Software Engineering (CSE 314)
Informatics 43 Discussion 13 May, 2016
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 1. Introduction Eric Braude and Michael Bernstein.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
SOFTWARE ENGINEERING CS-5337: Introduction
Presentation transcript:

CSE 230: Introduction to Software Engineering Topics covered: Introduction

Evolution of the software business  First software company was established in 1955:  State of the software business today:

Role of software Computer systems/software play an important role in virtually every aspect of our day to day lives: Software is becoming increasingly sophisticated and permeates every aspect of our lives, it is increasingly important to build it efficiently and right. And yet… Software development today is fraught with uncertainty and is characterized by (similar to what it was decades ago):

State of the practice EstimateEarlyOn TimeDelayedCanceled 13, % 74.77%11.83% 7.33% 130, %60.76%17.67%20.33% 1,300,000 13,000,000 Source: Patterns of software failures and successes, Capers Jones, 1996 Conclusions:

State of the practice (contd..) Cost overrun SuccessfulCancelled Source: The Standish Group, 1994 Successful projects (16.2%) Challenged (52.7%) Impaired (31.1%)

State of the practice (contd..)  Corporate software is often obsolete before delivery, and is incapable of evolving to meet future needs.  Many projects start with wrong goals and need to restart.  Cost and time overruns:

Software development problems Software costs are increasing as hardware costs continue to decline. Software costs Hardware costs Time Hardware costs vs. Software costs

Software development problems (contd..) Software development times are getting longer and longer and maintenance costs are getting higher and higher 3% 8% 7% 15% 67% Requirements -- 3% Design -- 8% Implementation -- 7% Testing -- 15% Maintenance -- 67% Conclusions:

Software development phases & waterfall model Requirements analysis and definition Design and specification Implementation and unit testing Integration and system testing Operation and maintenance

Relative costs to fix errors Requirements Design Implementation Testing Maintenance Cost Cost to fix an error increases as it is found later and later in the software lifecycle.

Software development problems (contd..) Air Traffic Control (FAA modernization): Outages of AT&T long distance switches: Ariane 5 launch explosion, 4 June 1996: East coast black-out, Aug NIST estimates that the US economy loses approximately $59.5 billion of 0.6% of the GDP due to software failures Lesson:

Why are software projects late? Estimating techniques are poorly developed Estimates are based on optimism: Optimism could be because of the nature of creativity: 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..) Estimating techniques confuse effort with progress. Is one man working six months equal to six men working one month? Our estimating techniques fallaciously confuse effort with progress, hiding the assumption that men and months are interchangeable. - Fred Brooks, The Mythical Man-Month

Why are software projects late ? (contd..) Do not plan schedule effectively. In examining conventionally scheduled projects, I have found that few allowed one-half of the projected schedule for testing, but that most did indeed spend half of the actual schedule for that purpose. Many of the projects were on schedule until and except in system testing….. - Fred Brooks, The Mythical Man-Month.

Why software projects are late? (contd..) Do not monitor progress effectively 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 slippage is recognized, we add people. Most tasks require communication among workers, which consists of: For n workers, intercommunication: 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.

Fred Brooks & The Mythical Man-Month  Fred Brooks became manager for IBM’s OS 360 in  Previous experience in hardware design.  OS/360 (probably) largest software system attempted at that time.  OS/360 results:  The Mythical Man-Month analyzes OS/360 experiences.  Professor at UNC Chapel Hill.  Experiences and analyses are true even today.

Definition of software engineering  IEEE definition:  The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software.  Roger S. Pressman’s definition:  Software engineering is the technology that encompasses a process, a set of methods and an array of tools. (Software Engineering: A Practitioner’s Approach)  Parnas’ definition:  Multi-person construction of multi-version software (Parnas 1978)

We have a “Software Crisis”! (1968)  “Software Engineering” was coined in  NATO conference in Germany.  An “early study” of problem DOD projects revealed the following facts:

Historical perspective of software engineering  “Early days”  Towards a software engineering discipline:

What software engineering is and is not..  Software engineering is concerned with “engineering” software systems, that is, building and modifying practical software systems:  Software engineering is not..  These are the issues that haven’t really surfaced in learning to program.  Transformation/translation of a program to “software”

Programmer vs. software engineer  Students familiar with programs and some forms of documentation through course projects in an academic environment:  Experiences of professionals in the software industry:

Program to a software product transformation Program product Programming system Programming system product 3X 9X Checking Account Program

Program to a software product transformation  Difficult part in designing any software system is usually not the coding of the software.  Software engineering is not about individual programming but about a structured approach for groups to manage complexity and change.

What is a software product? Software is: - Definition offered by R. S. Pressman. (Software Engineering: A Practitioner’s Approach) Alternatively,

Software Engineering: Three key elements  Process  Methods:  Tools:

Example: Process, Method, and Tools  Testing of individual code modules (before integration).  Process addresses issues such as how it is to be done, who is responsible for it, when does it get done, etc.  Documents  Who has the responsibility?  How do we verify (check) that it has been done?

Example: Process, Method, Tools  Method addresses issues such as what approach will be used?  Example: Black-box testing:  Example: White-box or “coverage testing”:

Example: Process, Method, Tools  Tools provide software support for processes and methods:  Test case generator:  Regression test environment.  Memory leak tool.  Coverage testing and measurement tool.  Problem reporting and tracking tool.  Test-case matrix.

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 is about bringing discipline and rigor to the building and maintenance of software systems.  Study of software engineering focuses on three key elements: process, methods and tools.  In addition to the functionality/feature related requirements, software products are often expected to satisfy various non functional requirements:  Relative priorities of these requirements depend on the nature of the application.  May or may not be able to satisfy all the requirements, tradeoffs may be necessary.