Overview and History of Software Engineering

Slides:



Advertisements
Similar presentations
1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.
Advertisements

Making the System Operational
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.
Configuration management
Software change management
Configuration management
LECTURE-2. Software Is a Product Designed by software engineers. Consists of : –Programs - that execute within a computer and provides desired functions.
What is Software Engineering? And why is it so hard?
Software Engineering II
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
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 © 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.
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
Software Engineering CEN 4010 What is Software Engineering Historical Aspects NATO group coined the phrase during a 1968 meeting in Garmisch, Germany (
Introduction to Software Engineering. What is Software? “ Software is a set of instructions to acquire inputs and to manipulate them to produce the desired.
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
Objectives of the Lecture
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
SOFTWARE ENGINEERING MCS-2 LECTURE # 1. COMPULSORY READING MATERIAL  Software Engineering (6 th edition) by IAN Sommerville  Software Engineering; A.
CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
CS540 Software Design Lecture 2 1 Lecture 2: Software Design Methods Anita S. Malik Adapted from Budgen (2003) Chapter 3 and Schach.
Chapter 1 소프트웨어의 본질 The Nature of Software 임현승 강원대학교
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
End HomeWelcome! The Software Development Process.
Configuration Management (CM)
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
Lecture 1 The University of Lahore Software Engineering Saeed Akhtar
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
INPUT#3 SOFTWARE ENGINEERING. QUALITY SOFTWARE?  Satisfies the needs of the users and programmers involved with it.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
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.
Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio.
Chapter 1 The Product Software is
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 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. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Engineering Introduction.
BIT SOFTWARE ENGINEERING APPLICATION DEVELOPMENT Referred Textbook: Software Engineering: A Practitioner’s Approach, 7/e, by Roger S. Pressman CHAPTER.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Fundamentals of Information Systems Dr. Hanan Moussa.
2. Software Development Processes. Software Engineering Outline Historical aspects Economic aspects Maintenance aspects Requirements, analysis, and design.
Software and Software Engineering By bscshelp.com software engineering 1.
Software Engineering.
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Software Engineering--Introduction
Chapter 1 The Nature of Software
Chapter 18 Maintaining Information Systems
Chapter 1- Introduction
Software What Is Software?
Chapter 1 The Nature of Software
Chapter 1 The Nature of Software
Frequently asked questions about software engineering
Chapter : Introduction to Software Engineering
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Software and Software Engineering
Chapter 5 Architectural Design.
Presentation transcript:

Overview and History of Software Engineering

Outline Historical aspects -software crisis Software product Software process Software fault and failures Team aspects Structured versus object-oriented paradigm

Historical Aspects A NATO study group coined the term software engineering in 1967 1968 NATO Conference in Garmisch, Germany Aim -to solve the SOFTWARE CRISIS Software is delivered Late Over budget With residual faults

Examples of failures due to software Excessive radiotherapy doses (1985-1987) 9 hours outage of the long-distance in USA (1990) Scud missile missed by the Patriot (1991) Ariane5 crash (1996) 8 hours delay in opening the London Stock Exchange (2000)

Software Engineering Software engineering is a discipline whose aim is the production of fault-free software, delivered on time and within budget, that satisfies the user’s needs To achieve these goals, a software engineer has to acquire a broad range of skills, both technical and managerial

Software Characteristics Software is developed or engineered, it is not manufactured in classical sense Most software continues to be custom built, although the industry is moving toward component-based assembly Software is complex Software doesn’t wear out

Software Poses Challenges How do we ensure the quality of the software that we produce? Why can’t we find and fix all faults (bugs) before the software is released? How do we meet the budget and avoid disastrous time delays? Why the development costs so high? Why does it take so long to get software finished? How do we upgrade software? How do we successfully institute new software technologies?

Economic Aspects Coding technique CTnew is 10% faster than currently used technique CTold. Should it be used? Choose technique that reduce long -term cost Consider costs in introducing CTnew into organization Consider the effect of CTnew on maintenance

Software Product Software is a set of items or objects that form a “configuration” that includes Programs that when executed provide desired function and performance Data structures that enable programs to adequately manipulate information Documents that describe the operation and use of the programs

Software Applications System software – collection of programs written to service other programs Heavy interaction with computer hardware, multiple users, concurrent operation, resource sharing, sophisticated process management, complex data structures, multiple external interfaces Examples: operating system components, drivers, telecommunications processors, compilers, editors, file management utilities Application software –standalone programs that solve specific business or technical need Examples: data processing applications, point-of-sale transaction processing, real-time manufacturing process control

Software Applications (contd.) Business software – business information processing Management information system (MIS) that accesses one or more databases containing business information (e.g., payroll, inventory) Engineering and scientific software (e.g., numerical estimations, simulation, etc.) PC software – (word processing, spreadsheets, computer graphics, multimedia, entertainment, personal and business financial applications, etc.) Web-based software A set of linked hypertext files that present information using text and graphics, e-commerce, B2B applications

Software Applications (contd.) Real-time software – monitors, analyzes, and controls real-world events as they occur in real-time Response time typically ranges from 1 millisecond to 1 second Embedded software – control products and systems for consumer and industrial markets Artificial intelligence software – uses non-numerical algorithms to solve complex problems Applications: robotics, expert systems, pattern recognition, adaptive control. Ubiquitous computing – growth of wireless networking, use of small mobile devices, laptops, etc.

Software Process Software process is the way we produce software product (a nontrivial piece of software) Requirements phase Specification phase Design phase Implementation phase Integration phase (in parallel with 4) Maintenance phase Retirement

Software Process (contd.) Testing is not a separate phase, but an activity that takes place through software production Testing occurs towards the end of each phase (verification) and before the product is handed over to the client (validation) Although there are times when the testing predominates, there should never be the times when no testing is being performed

Software Process (contd.) There is no separate documentation phase Documentation for each phase must be completed by the team responsible for that phase, before the next phase starts Documentation must be updated continually to reflect the current version of the product

Approximate Relative Cost of Each Phase 1976–1981 data Maintenance constitutes 67% of total cost

Comparative Relative Cost of Each Phase

Good and Bad Software Good software is maintained -Bad software is discarded Different types of maintenance Corrective maintenance [about 20%] Enhancement Perfective maintenance [about 60%] Adaptive maintenance [about 20%]

Software fault and failures Failure - departure from the specific system behavior Fault - defect in the software that when executed under particular conditions causes a failure 60 to 70 % of faults are specification and design faults Inspection of JPL software for the NASA unmanned interplanetary space program detected (Data of Kelly, Sherif, and Hops [1992]) 1.9 faults per page of specification 0.9 faults per page of design 0.3 faults per page of code

Software fault and failures (contd.) Faults at end of the design phase of the new version of the product (Data of Bhandariet al. [1994]) 13% of faults from previous version of product 16% of faults in new specifications 71% of faults in new design The earlier we correct a fault, the better

Cost to Detect and Correct a Fault

Failure Curve for Software

Team Aspects Products are too large to be written by one person in the available time Teams should be properly organized and managed Suppose that a single developer can complete a product in 1 year. How long it will take if it is assigned to a team of three developers?

Structured versus Object-Oriented Paradigm Structured methods are action oriented or data oriented, but not both Object - software component that incorporates both data and the actions that are performed on that data Example: Bank account Data: account balance Actions: deposit, withdraw, determine balance

Structured versus Object-Oriented Paradigm Data component of an object -Attribute (generic) •Action component of an object -Method (generic)

Structured versus Object-Oriented Paradigm Encapsulation – conceptual independence Everything in the product that relates to the proportion of the real world modeled by that object can be found in the object itself Information hiding - physical independence Implementation details are hidden from everything outside that object Responsibility-driven design (or Design by contract) The way the action is carried out is entirely the responsibility of the object itself

Example Send flowers to your aunt in Iowa City OR List of all florists in Iowa City Which florists do the delivery Which one is located close to aunt’s home OR Call 1-800-FLOWERS and leave the entire responsibility for delivering flowers to that organization

Structured versus Object-Oriented Paradigm

Warning Do not use the object-paradigm to enhance a product developed using the structured paradigm Water and oil do not mix Exception: if the new part is totally disjoint Example: adding a GUI (graphical user interface)