Software Construction and Evolution - CSSE 375 Software Maintenance at 30K Feet Shawn and Steve Left – Tibet from 30000 ft. (~9 km).

Slides:



Advertisements
Similar presentations
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
Advertisements

CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 1 Software Maintenance – Big Issues served up, Side order of Reifer Steve Chenoweth Office.
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Introduction to Maintenance and Construction (Chapter 1 of both books) Steve Chenoweth CSSE 375, Rose-Hulman (Labor Day  ) Based on Don Bagert’s
March 30, Exploratory Testing Testing Approaches Analytical Information-driven Intuitive Exploratory Design the tests and test concurrently Learn.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Maintenance Framework Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture Ref M 2.
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.
Software maintenance Managing the processes of system change.
Chapter 9 – Software Evolution and Maintenance
Chapter 7: ERP Implementation & Training User Training Maintenance.
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
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.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
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.
Software Maintenance.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Maintainability of FLOSS Projects
 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.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
ITEC 370 Lecture 23 Maintenance. Review Questions? Project update on F, next F give prototype demonstration Maintenance –Reactive –Proactive.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
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.
©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.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 2 Software Maintenance Process Steve Chenoweth Office Phone: (812) Cell: (937)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
CS223: Software Engineering Lecture 32: Software Maintenance.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
MAINTENANCE GAME DESIGN. OBJECTIVES Name and identify the 3 types of maintenance Understand how maintenance was done before the use of networks Understand.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Tutorial 4 IT323.  Q1. As a software project manager in a company that specializes in the development of software for the offshore oil industry, you.
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 18 Maintaining Information Systems
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
CS 425/625 Software Engineering Software Evolution
For University Use Only
1.1.1 Software Evolution.
Chapter 9 – Software Evolution and Maintenance
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Presentation transcript:

Software Construction and Evolution - CSSE 375 Software Maintenance at 30K Feet Shawn and Steve Left – Tibet from ft. (~9 km).

2 2 Recall: Software Evolution 1. The Law of Continuing Change (1974) 2. The Law of Increasing Complexity (1974) 3. The Law of Self Regulation (1974) 4. The Law of Conservation of Organizational Stability (1980) 5. The Law of Conservation of Familiarity (1980) 6. The Law of Continuing Growth (1980) 7. The Law of Declining Quality (1996) 8. The Feedback System Law (1996) Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,” Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be downloaded from:

3 3 Software Maintenance Concepts “So, you tried to do this yourself?”

4 Software Maintenance Mindset Calibration  Industry Cost Mindset: Software Maintenance is a problem!  Maintenance activities consume 50-80% of most software budgets l ~20% of maintenance devoted to fixing errors (Corrective) l Perfective, Adaptive & Preventative is the rest  BETTER MINDSET: Software Maintenance Investments Sustain and Improve Software Assets Q10 

5 Goals of Software Maintenance  Preserve and enhance investments in software systems l Proactive maintenance l Reactive maintenance  Improve software maintainability and ultimately extend software life l e.g., Reengineering of maintenance critical software 

6 6 Development versus Maintenance (1 of 2) Software Development (Initial) l Often “from scratch” or “green field” l Can choose process model l Time to upgrade/update methods and tools l Requirements and delivery driven l Risk is often in requirements uncertainty Closer development project gets to delivery, the more it looks like maintenance… Q11 

7 7 Development versus Maintenance (1 of 2) Software Maintenance l Must work within constraints of “existing system” l Changes smaller scale than original development l Manage change with multiple releases rather than functional builds l Large part of effort is in understanding the change in the context of existing system artifacts Requires an “augmentation” rather than construction mindset Q12 

8 8 Software Maintenance versus Evolution  Maintenance and Evolution both refer to making changes to an existing system  Maintenance often refers to fixing bugs or porting a system to a new platform  Evolution is implied when making enhancements to existing software where the specifications or technology changes Q13 

9 Software Systems Evolve Software grows in size, complexity, and errors  Increased size with adding new features  Increased complexity with add-on changes  Errors complicated by continuous changes, often incomplete! l Now that’s an insidious bug... Q14 

10 The “Hydra Effect” in Corrective Maintenance

11 Software Maintenance Challenge  Seemingly minor changes often turn out to be more extensive than expected  Consequences include: l Incomplete changes (maybe discovered by user...) l Poorly implemented changes (patches and spaghetti) l Effort, resource, and estimate errors (due to low visibility) l Difficulty augmenting software design l Reduced maintainability and useful life of the software Q15 

12 Proactive Versus Reactive Maintenace Cost Reactive Maintenance Proactive Maintenance Time

13 Exercise: Development and Maintenance  Is the difference really “green field?” l These days, few project are “from scratch”  Sometimes, it’s hard to tell the difference  Let’s look at some examples – you tell me…

14 Example 1: Development or Maintenance? One of our junior projects was creating a project portfolio management system. Much of the project could be done with a content management system called Joomla. l Joomla already exists – they were building on top of that l It has to “talk to” other existing stuff, like Rose’s AFS, maybe Angel? Maybe use Kerberos passwords? l Not exactly “green field” Q16 

15 Example 2: Development or Maintenance? Same junior project was creating a CSSE project portfolio management system; found that the Joomla implementation wasn’t going to work over time. l Redesigned system to to use Django instead. l Again, still need to “talk to” other existing stuff, like Rose’s AFS, maybe Angel? Maybe use Kerberos passwords? l But they are fixing a problem, aren’t they? 

16 Example 3: Development or Maintenance?  A system I worked on in industry kept track of maintenance data for a very large communications network. l For the 4 th release of the same system, they were making their database “available” for other applications to access l Most of these accesses would be ad hoc queries of large amounts of data Q17 

17 Example 4: Development or Maintenance?  A system we have seen too many of… l First release was “rush to market.” l Few, if any, of the documentation artifacts were produced. l Now they’re ready to do Release 2.0.

18 Example 5: Development or Maintenance?  Software system is getting too out of date and with every change, the cost seems to take too long and cost too much. They are thinking of junking the system, but have found a packaged application to replace it if we can convert all the data. l They don’t yet know what / how much work that will be. l The costs/effort are in the integration, transition, and testing rather than the normal requirements, design, implementation, and testing… 

19 Discretionary and Non-Discretionary $  Since Development and Maintenance can be somewhat ambiguous situations, money often determines the label (see next slide)  The boundary may be like: l Estimated cost (>$5000) l Estimated effort (> 20 hours of effort) l Above some limit, it’s “non- discretionary.” 19 

20 Often the identity relates to the funding  Development – Emphasis on doing it fast, even if it costs more. l Willing to add people to the project, as needed. l Given priority for additional funding. l Anticipation is gaining new customers. –Which is about 5x harder than keeping old customers. l May be a known competitive battle to be “first to market.”  Maintenance – Emphasis on holding down costs. l Usually a fixed group of people working on it. l Documentation is important! l Need to refactor and redesign to keep adding features. –These are taken from “change requests,” by priority. l “Support” is half the cost. l Anticipation is existing customer “satisfaction.” 20

21 Development versus Maintenance Risk  Development Risks l Technology - sometimes bleeding edge l Personnel - sometimes high turnover l Budget - risk entrepreneurial investments l Business - business case based on future customers  Maintenance Risks l Technology - sometimes technology obsolete l Personnel - sometimes dated skills l Budget - risk averse cost containment l Business - business case based on existing customers Q18 