SWE Introduction to Software Engineering

Slides:



Advertisements
Similar presentations
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.
Advertisements

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.
Lecture 2 1 Introduction to Software Engineering.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
1 SWE Introduction to Software Engineering Lecture 3 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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction/overview, Process model. What is Software Engineering? Why we need Software Engineering? Software Process Models.
Introduction Course outline / Recommended books Course objectives Marks distribution / Schedule Basic concepts of SE and PM Project management framework.
Lecture # 22 Software Evolution
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
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.
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 Supplementary Slides for Software Engineering: A Practitioner's.
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.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1.1 The Evolving Role of Software
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
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.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
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.
Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.
Software Engineering (CSI 321) Introduction to Software Engineering 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
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.
Software Engineering Text Books:1. Software Engineering, A practitioner’s approach Roger s. Pressman McGraw-Hill 2. Software Engineering Somerville 3.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Rekayasa Perangkat Lunak Kuliah 2. Outline of this presentation Attributes of Good Software Why Software Engineering ? What is Software Product ? Software.
CS223: Software Engineering Lecture 32: Software Maintenance.
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.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Overview Software Maintenance and Evolution Definitions
RPL Team Program Studi Teknik Informatika
Software What Is Software?
Software Engineering (CSE 314)
Software Myths Deep Mann.
Rekayasa Perangkat Lunak
For University Use Only
Overview: Software and 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.
Rekayasa Perangkat Lunak
Introduction Software Engineering.
Introduction Software maintenance:
Chapter 2 Software Engineering
Presentation transcript:

SWE 205 - Introduction to Software Engineering Lecture 2

Lecture Objectives Legacy Software Systems Software Evolution Software Engineering Costs Software Myths Software Engineering Challenges

Legacy Software Many programs still provide a valuable business benefit, even though they are one or even two decades old. Software systems need to be continually updated if they are to remain useful to their customers. These programs must be maintained and this creates problems because their design is often not amenable to change.

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 Continuing Change Increasing Complexity A program that is used in a real-world environment changes or become less and less useful in that environment Increasing Complexity As an evolving program changes, its structure becomes more complex unless active efforts are made to avoid this phenomenon

Software Evolution Program Evolution Program evolution is a self-regulating process and measurement of system attributes such as size, time between releases, number of reported errors etc. reveals statistically significant trends and in-variances

Software Evolution Conservation of Organizational Stability Over the lifetime of a program, the rate of development of that program is approximately constant and independent of the resources devoted to system development

Software Evolution Conservation of Familiarity Over the lifetime of a system, the incremental system change in each release is approximately constant Lehman, M et al. 'Metrics and Laws of Software Evolution - The Nineties View', In Proceedings of METRICS 97, 1997

Software Evolution Implications Change is inevitable, plan for it Don’t attempt to make very big changes in a single increment Adding staff to a project will have a limited effect on project recovery

Software Engineering Costs Distribution of costs in computing projects is changing - software rather than hardware is the largest single cost item. Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs Software engineering is concerned with cost-effective software development

Software Engineering Costs Distribution of costs depends on the development model. Costs vary depending on the type of system being developed and; the requirements of system attributes such as performance and system reliability.

Activity Cost Distribution 15% 40% 25% 20%

Development - Maintenance Cost Ratios 40% 60%

Maintenance Cost Ratios 12% 12% 36%

Important Question Why do we continue to have difficulty in software development projects?

London Ambulance Service Case Study Automatic Vehicle Location System Computer Aided Dispatch Server Ambulance Server Radio Communication Infrastructure

London Ambulance Service Case Study System could not keep track of the location and status of ambulances. Database entries begin to store incorrect information. As a result, A large number of exception messages System starts to slow down

London Ambulance Service Case Study Entire system descended into chaos Ambulance arrives for a ‘Stoke’ patient after 11 hours. The CAD system was removed and aspects of its function (dispatch decisions) were performed manually.

Software Myths Affect managers, stakeholders, and practitioners Are believable because they often have elements of truth but… Invariably lead to bad decisions, therefore…. Insist on reality as you navigate your way through software engineering

Management Myths ‘We already have books full of standards and procedures for building software. That will provide my people with everything they need to know’ ‘My people do have state-of-the-art software development tools. After all, we buy them the latest computers’

Management Myths ‘If we get behind schedule we can add more programmers and catch up’ ‘If I decide to outsource the software project to a third party, I can just relax and let that firm build it

Customer Myths ‘A general statement of objectives is sufficient to begin writing software - we can fill in the details later’ ‘Project requirements continually change but change can be easily accommodated because software is flexible’

Practitioner’s Myths ‘Once we write the program and get it to work our job is done’ ‘Until I get the program running I really have no way of assessing its quality’ ‘The only deliverable for a successful project is the working program’

Key Challenges Heterogeneity Delivery Trust Developing techniques for building software that can cope with heterogeneous platforms and execution environments; Delivery Developing techniques that lead to faster delivery of software; Trust Developing techniques that demonstrate that software can be trusted by its users.

Key Challenges An accompanying shift from a concern with whether a system will work towards how well it will work. Components are selected and purchased ‘off the shelf’ (COTS) with development effort being refocused on configuration and interoperability

How a Project Starts? Every software project is precipitated by some business need Need to correct a defect in an existing application Need to adapt a legacy system to a changing business environment Need to extend the functions and features of an existing application Need to create a new product or system

Key Points Software is a complex engineering product. Approaches which work for constructing small programs for personal use do not scale-up to the challenges of real software construction. A disciplined engineering process and associated management disciplined is needed.