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.

Slides:



Advertisements
Similar presentations
Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Advertisements

These courseware materials are to be used in conjunction with Software Engineering: A Practitioners Approach, 6/e and are provided with permission by R.S.
Developed by Reneta Barneva, SUNY Fredonia
Lecture 1: Software Engineering: Introduction
Lecture 2 1 Introduction to Software Engineering.
Software Engineering Course Instructor: Aisha Azeem.
LECTURE-2. Software Is a Product Designed by software engineers. Consists of : –Programs - that execute within a computer and provides desired functions.
1 SWE Introduction to Software Engineering Lecture 3 Introduction to Software Engineering.
SWE Introduction to Software Engineering
Software Engineering II
SWE Introduction to Software Engineering
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : Introduction to Software Engineering Ref. book : Software Engineering by Roger Pressman.
SOFTWARE ENGINEERING MCS-2 LECTURE # 1. COMPULSORY READING MATERIAL  Software Engineering (6 th edition) by IAN Sommerville  Software Engineering; A.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
CS 732 Software Engineering Semester 1/2545 Dr.Choonhapong Thaiupathump.
Chapter 1 소프트웨어의 본질 The Nature of Software 임현승 강원대학교
Lecture 1 Introduction to Software Engineering
Software Engineering B.Tech Ii csE Sem-II Unit-1 PPT SLIDES By Hanumantha Rao.N Newton’s Institute of Engineering 1.
Lecture 1Software Engineering1 (Trimester I Session 2002/2003) Lecturer / Tutor Name : Mr. R. Logeswaran
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.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 1 Software and Software Engineering Discussion of the Software Product.
1.1 The Evolving Role of Software
Chapter 1 The Product. 2 Product  What is it?  Who does it?  Why is it important?  How to ensure it be done right?
1M.Sc(I.T.) VNSGU, Surat. Software is instructions (computer programs) that when executed provide desired function and performance, data structures that.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering (CSI 321) Introduction to Software Engineering 1.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Engineering Introduction.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
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.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
CS 281 Intro to Software Engineering Lecture 01 Introduction to the Course The Nature of Software.
Software Engineering Facilitator Faisal Shafique Butt.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Introduction to Software Engineering.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Introduction to Software Engineering
Software Engineering.
Software Engineering B.Tech IT/II Sem-II
Chapter 1 The Nature of Software
The Product The Evolving Role of Software Dual role of software Product - It’s a information transformer producing, managing, acquiring, modifying, transmitting.
RPL Team Program Studi Teknik Informatika
Chapter : Introduction to Software Engineering
Chapter : Introduction to Software Engineering
Software What Is Software?
Chapter 1 The Nature of Software
Chapter 1 The Nature of Software
Software Engineering B.E IT Sem-VII
Software Engineering (CSE 314)
Software Myths Deep Mann.
Chapter : Introduction to Software Engineering
For University Use Only
Overview: Software and Software Engineering
Chapter : Introduction to Software Engineering
Chapter : Introduction to Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
Software Engineering (CSI 321)
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Software and Software Engineering
Introduction Software Engineering.
Presentation transcript:

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 of instructions together to get the computer to do something useful. In late 1950s: Computer became cheaper and more common. High level languages were invented. ProgrammerUser Computer In early 1960s: Very few large software projects were done by some experts. Hacker Cracker

1.1 The Evolving Role of Software Case 1. IBM IBM F. P. Brooks… … … … … IBM360 Brooks (The Mythical Man-Month) 2/15

1.1 The Evolving Role of Software Software = Product (information transformer) Vehicle for delivering a product (OS, network, tools) The same questions are still asked today: 1.Why does it take so long to get software finished? 2.Why are development costs so high? 3.Why cant we find all errors before we give the software to our customers? 4.Why do we spend so much time and effort maintaining existing programs? 5.Why do we continue to have difficulty in measuring progress as software is being developed and maintained? 3/15

1.2 Software What is Software? Software is a set of items or objects that form a configuration that includes instructions (computer programs) that when executed provide desired function and performance, data structures that enable the programs to adequately manipulate information, and documents that describe the operation and use of the programs. AND MORE … Software is developed or engineered, it is not manufactured in the classical sense. 4/15

1.2 Software Software doesnt wear out. Failure rate Time Infant mortality Wear out Failure curve for hardware idealized curve change increased failure rate due to side effects actual curve But it does deteriorate! There are no software spare parts Although the industry is moving toward component-based assembly, most software continues to be custom built. 5/15

1.3 The Changing Nature of Software Software Application Types System software Application software Engineering/Scientific software Embedded software Product-line software Web-applications Artificial intelligence software 6/15

1.3 The Changing Nature of Software New Software Challenges Ubiquitous computing –Creating software to allow machines of all sizes to communicate with each other across vast networks Netsourcing –Architecting simple and sophisticated applications that benefit targeted end-user markets worldwide Open source –Distributing source code for computing applications so customers can make local modifications easily and reliably New economy –Building applications that facilitate mass communication and mass product distribution using evolving concepts 7/15

1.4 Legacy Software Why must it change? software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it viable within a network environment. Software Evolution (read the 8 laws on p.44) 8/15

1.5 Software Myths Management myths Myth: We already have a book thats full of standards and procedures for building software. Wont that provide my people with everything they need to know? Reality: Does everybody care? Myth: If we get behind schedule, we can add more programmers and catch up. Reality: Software development is not a mechanistic process like manufacturing. In the words of Brooks, adding people to a late software project makes it later << 2 Myth: If I decide to outsource the software project to a third party, I can just relax and let that firm build it. Reality: If you cannot manage your own people well, you will invariably struggle when you outsource. 9/15

1.5 Software Myths Customer myths Myth: A general statement of objectives is sufficient to begin writing programs – we can fill in the details later. Case 2. In the late 1960s, a bright-eyed young engineer* was chosen to write a computer program for an automated manufacturing application. The reason for his selection was simple. He was the only person in his technical group who had attended a computer programming seminar. He knew the ins and outs of assembler language and Fortran, but nothing about software engineering and even less about project scheduling and tracking. His boss gave him the appropriate manuals and a verbal description of what had to be done. He was informed that the project must be completed in two months. He read the manuals, considered his approach, and began writing code. After two weeks, the boss called him into his office and asked how things were going. Really great, said the young engineer with youthful enthusiasm, This was much simpler than I thought. Im probably close to 75 percent finished. The boss smiled. Thats really terrific, he said. He then told the young engineer to keep up the good work and plan to meet again in a weeks time. 10/15

1.5 Software Myths Case 2 (cont.) A week later the boss called the engineer into his office and asked, Where are we? Everythings going well, said the youngster, but Ive run into a few small snags. Ill get them ironed out and be back on track soon. How does the deadline look? the boss asked. No problem, said the engineer. Im close to 90 percent complete. If youve been working in the software world for more than a few years, you can finish the story. Itll come as no surprise that the young engineer stayed 90 percent complete for the entire project duration and only finished (with the help of others) one month late. 11/15

1.5 Software Myths Case 3. In the early 1980s, the United States Internal Revenue Service (IRS) hired Sperry Corporation to build an automated federal income tax form processing system. According to the Washington Post, the system has proved inadequate to the workload, cost nearly twice what was expected and must be replaced soon (Sawyer 1985). In 1985, an extra $90 million was needed to enhance the original $103 million worth of Sperry equipment. In addition, because the problem prevented the IRS from returning refunds to taxpayers by the deadline, the IRS was forced to pay $40.2 million in interest and $22.3 million in overtime wages for its employees who were trying to catch up. In 1996, the situation had not improved. The Los Angeles Times reported on March 29 that there was still no master plan for the modernization of IRS computers, only a six-thousand-page technical document. Congressman Jim Lightfoot called the project a $4-billion fiasco that is floundering because of inadequate planning (Vartabedian 1996). 12/15

1.5 Software Myths Customer myths Myth: Project requirements continually change, but change can be easily accommodated because software is flexible. Reality: The impact of change is shown by the figure. Definition Development After release 1x 1.5-6x x Cost of change 13/15

1.5 Software Myths Practitioners myths Myth: Once we write the program and get it to work, our job is done. Case 4. S E Algorithm: Number = Total_time = 0; Get Message; While ( ! End_of_stream ) { if (Code == S) { Number ++; Total_time = Start_time; } else Total_time += End_time; Get Message; } Print Number; If (Number) Print Total_time / Number; Reality: Someone once said that the sooner you begin writing code, the longer itll take you to get done. Industry data indicate that between 60 and 80 percent of all effort expended on a program will be expended after it is delivered to the customer for the first time. 14/15

1.5 Software Myths Practitioners myths Myth: Until I get the program running, I have no way of assessing its quality. Reality: Formal technical review is a kind of quality filter. Myth: The only deliverable work product for a successful project is the working program. Reality: A working program is only one part of a software configuration that includes programs, documents, and data. Documentation forms the foundation for successful development and, more important, provides guidance for software support. Managers : evaluate, track progress, Programmers : communicate to each other Maintainers : VITAL! Myth: Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down. Reality: Software engineering is not about creating documents. It is about creating quality. Better quality leads to reduced rework. And reduced rework results in faster delivery times. 15/15