Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.

Slides:



Advertisements
Similar presentations
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
Advertisements

1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.
Overview and History of Software Engineering
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Ch 3: Unified Process CSCI 4320: Software Engineering.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
1 Independent Verification and Validation Current Status, Challenges, and Research Opportunities Dan McCaugherty IV&V Program Manager Titan Systems Corporation.
CS351 © 2003 Ray S. Babcock Software Testing What is it?
Slide 1.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CS 501: Software Engineering
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Slide 1.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Introduction to Computer Technology
Slide 1.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill,
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Software Engineering CEN 4010 What is Software Engineering Historical Aspects NATO group coined the phrase during a 1968 meeting in Garmisch, Germany (
Software Project Management
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
Ch 1: The Scope of Software Engineering
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Engineering CSCI Class 1- Introduction/Scope of Software Engineering August 22, 2009.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Slide 10.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
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%
Introduction to Systems Analysis and Design
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
1 The Scope of Software Engineering Xiaojun Qi. 2 Software Engineering Software engineering is a discipline whose aim is the production of fault-free.
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/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within.
An Introduction to Software Engineering Support Lecture.
Lecture 2 –Approaches to Systems Development Method 10/9/15 1.
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Slide 1.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Chapter 2: Testing in Software Life Cycle MNN1063 System Testing and Evaluation.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
Workflows Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Production ( ) Lecture 3: Dr. Samer Odeh Hanna (PhD) office: 318.
2. Software Development Processes. Software Engineering Outline Historical aspects Economic aspects Maintenance aspects Requirements, analysis, and design.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Introduction to Software Engineering
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Chapter 18 Maintaining Information Systems
IEEE Std 1074: Standard for Software Lifecycle
Introduction to Software Engineering
Rekayasa Perangkat Lunak
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Rekayasa Perangkat Lunak
Presentation transcript:

Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1

CHAPTER 1 THE SCOPE OF SOFTWARE ENGINEERING 2

Outline Historical aspects Economic aspects Maintenance aspects Requirements, analysis, and design aspects Team development aspects Why there is no planning phase 3

Outline (contd) Why there is no testing phase Why there is no documentation phase Terminology Ethical issues 4

1.1 Historical Aspects 1968 NATO Conference, Garmisch, Germany Aim: To solve the software crisis Software is delivered – Late – Over budget – With residual faults 5

Standish Group Data Data on 9236 projects completed in 2004 Figure 1.1

Group Data An August 2007 study by Dynamic Markets Limited of 800 IT managers across eight countries shows that: 62 percent of organizations experienced IT projects that failed to meet their schedules 49 percent suffered budget overruns 47 percent had higher-than-expected maintenance costs, and 41 percent failed to deliver the expected business value and ROI (Return on Investment) 7

Group Study International Data Corporation (IDC) (Wiklund & Pucciarelli, 2009) 25% fail outright 20-25% do not meet ROI Up to 50% require material rework 8

Conclusion The software crisis has not been solved Perhaps it should be called the software depression – Long duration – Poor prognosis 9

1.2 Economic Aspects Coding method CM new is 10% faster than currently used method CM old. Should it be used? Common sense answer – Of course! Software Engineering answer – Consider the cost of training – Consider the impact of introducing a new technology – Consider the effect of CM new on maintenance 10

1.3 Maintenance Aspects Life-cycle model – The steps (phases) to follow when building software – A theoretical description of what should be done Life cycle – The actual steps performed on a specific product 11

Waterfall Life-Cycle Model Classical model Figure 1.2

Typical Classical Phases Requirements phase – Explore the concept – Elicit the client’s requirements Analysis (specification) phase – Analyze the client’s requirements – Draw up the specification document – Draw up the software project management plan – “What the product is supposed to do” 13

Typical Classical Phases (contd) Design phase – Architectural design, followed by – Detailed design – “How the product does it” Implementation phase – Coding – Unit testing – Integration – Acceptance testing 14

Typical Classical Phases (contd) Postdelivery maintenance – Corrective maintenance – Perfective maintenance – Adaptive maintenance Retirement 15

Maintenance Terminology in This Book Postdelivery maintenance – Changes after delivery and installation [IEEE 1990] Modern maintenance (or just maintenance) – Corrective, perfective, or adaptive maintenance performed at any time [ISO/IEC 1995, IEEE/EIA 1998] 16

1.3.2 The Importance of Postdelivery Maintenance Bad software is discarded Good software is maintained, for 10, 20 years or more Software is a model of reality, which is constantly changing 17

Time (= Cost) of Postdelivery Maintenance (a) Between 1976 and 1981 (b) Between 1992 and 1998 Figure 1.3

1.4 Requirements, Analysis, and Design Aspects The earlier we detect and correct a fault, the less it costs us 19

Requirements, Analysis, and Design Aspects (contd) The cost of detecting and correcting a fault at each phase Figure 1.6

Requirements, Analysis, and Design Aspects (contd) To correct a fault early in the life cycle – Usually just a document needs to be changed To correct a fault late in the life cycle – Change the code and the documentation – Test the change itself – Perform regression testing – Reinstall the product on the client’s computer(s) 21

Requirements, Analysis, and Design Aspects (contd) Between 60 and 70% of all faults in large-scale products are requirements, analysis, and design faults 22

Conclusion It is vital to improve our requirements, analysis, and design techniques – To find faults as early as possible – To reduce the overall number of faults (and, hence, the overall cost) 23

1.5 Team Programming Aspects Hardware is cheap – We can build products that are too large to be written by one person in the available time Software is built by teams – Interfacing problems between modules – Communication problems among team members 24

1.6 Why There Is No Planning Phase We cannot plan at the beginning of the project —we do not yet know exactly what is to be built 25

Planning Activities of the Classical Paradigm Preliminary planning of the requirements and analysis phases at the start of the project The software project management plan is drawn up when the specifications have been signed off by the client Management needs to monitor the SPMP throughout the rest of the project 26

Conclusion Planning activities are carried out throughout the life cycle There is no separate planning phase 27

1.7 Why There Is No Testing Phase It is far too late to test after development and before delivery 28

Testing Activities of the Classical Paradigm Verification – Testing at the end of each phase (too late) Validation – Testing at the end of the project (far too late) 29

Conclusion Continual testing activities must be carried out throughout the life cycle This testing is the responsibility of – Every software professional, and – The software quality assurance group There is no separate testing phase 30

1.8 Why There Is No Documentation Phase It is far too late to document after development and before delivery 31

Documentation Must Always be Current Key individuals may leave before the documentation is complete We cannot perform a phase without having the documentation of the previous phase We cannot test without documentation We cannot maintain without documentation 32

Conclusion Documentation activities must be performed in parallel with all other development and maintenance activities There is no separate documentation phase 33

1.11 Terminology Client, developer, user Internal software Contract software Commercial off-the-shelf (COTS) software Open-source software – Linus’s Law 34

Terminology (contd) Software Program, system, product Technique 35

Terminology (contd) Mistake, fault, failure, error Defect Bug  – “A bug  crept into the code” instead of – “I made a mistake” 36

1.12 Ethical Issues Developers and maintainers need to be – Hard working – Intelligent – Sensible – Up to date and, above all, – Ethical IEEE-CS ACM Software Engineering Code of Ethics and Professional Practice