1 Software Maintenance and Evolution CSSE 575: Session 4, Part 1 Software Maintenance – Big Issues served up, Side order of Reifer Steve Chenoweth Office.

Slides:



Advertisements
Similar presentations
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Advertisements

SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
ITIL: Service Transition
Agile development By Sam Chamberlain. First a bit of history..
1 Software Architecture CSSE 477: Week 5, Day 1 Statistical Modeling to Achieve Maintainability Steve Chenoweth Office Phone: (812) Cell: (937)
Software Construction and Evolution - CSSE 375 Software Maintenance at 30K Feet Shawn and Steve Left – Tibet from ft. (~9 km).
1 Day-to-day planning – “Old school” How planning leads to success Parts of Phillips, Ch 4 CSSE579 Session 5 Part 1.
1 CSSE 477: Swre Arch – This year’s course… Steve Chenoweth Tuesday, 11/8/11 Week 10, Day 2 Right – Sunset at the Louvre, in Paris From
1 CSSE 477 – More on Availability & Reliability Steve Chenoweth Thursday, 9/22/11 Week 3, Day 3 Right – High availability with VMWare – the major goal.
1 Software Maintenance and Evolution CSSE 575: Session 9, Part 2 A Model for Evolutionary Growth Steve Chenoweth Office Phone: (812) Cell: (937)
1 Software Maintenance and Evolution CSSE 575: Session 6, Part 1 The “SEAM” Model Steve Chenoweth Office Phone: (812) Cell: (937)
1 Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 3 Predicting Bugs Steve Chenoweth Office Phone: (812) Cell: (937)
Improving Process for Better Software. Who We Are An experiential learning program that provides technology solutions for our partners, and real- world.
1 CSSE 377 – Intro to Availability & Reliability Part 2 Steve Chenoweth Tuesday, 9/13/11 Week 2, Day 2 Right – Pictorial view of how to achieve high availability.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 Steve Chenoweth Tuesday, 10/18/11 Week 7, Day 2 Right – One view of the layers of ingredients to an enterprise security program. From
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
RIT Software Engineering
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
SE 450 Software Processes & Product Metrics 1 Defect Removal.
1 The Maintenance Process Steve Chenoweth CSSE 375, Rose-Hulman Based on Don Bagert’s 2006 Lecture.
Transitioning to XP or The Fanciful Opinions of Don Wells.
Copyright © 2015 McGraw-Hill Education. All rights reserved
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
ITPD PRODUCTION SUPPORT PROCESS OCTOBER 8, /15/2015 Guiding Principles 1.Support the business area’s needs to execute transactions and expand.
Chapter 9 – Software Evolution and Maintenance
1 KAN’S INTRO AND OVERVIEW MODELS Ch1 & 2 in his book Steve Chenoweth, CSSE.
1 Software Maintenance and Evolution CSSE 575: Session 8, Part 2 Analyzing Software Repositories Steve Chenoweth Office Phone: (812) Cell: (937)
International Business and Technology Consultants AMS confidential & proprietary SPS Help Desk Presentation Army User’s Conference June 2002.
Software Engineering Process I
Using IBM Rational Unified Process for software maintenance
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
1 Today’s Plan In Class Exam – Quick Review Thoughts on your Junior Projects, cntd People and Roles on Projects.
Methods and Models Choice of methods for Development of IT related products and systems SVINGSVING Conference held in Gothenburg, Sweden, October 2000.
Critical Success Factors in Software Maintenance Paper by Sneed & Brossler Presented March 17, 2004 By Alice Lewis.
ITPD PRODUCTION SUPPORT PROCESS OCTOBER 8, /23/2015 Guiding Principles 1.Resolve production issues in a timely and effective manner 2.Manage.
© 2001 Change Function Ltd USER ACCEPTANCE TESTING Is user acceptance testing of technology and / or processes a task within the project? If ‘Yes’: Will.
1 Planning – Agile Style Highsmith, Ch 7 All kinds of iterations! CSSE579 Session 3 Part 1.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
1 Software Maintenance and Evolution CSSE 575: Session 2, Part 1 Refactoring Principles Steve Chenoweth Office Phone: (812) Cell: (937)
> whoami Yuriy Brun Office: CSE 340
CS 5150 Software Engineering Lecture 2 Software Processes 1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Inspection and Review The main objective of an Inspection or a Review is to detect defects. This activity and procedure was first formalized by Mike Fagan.
Software Construction and Evolution CSSE 375: Course Introduction Steve Chenoweth Office: Meonch Room F220 Phone: (812)
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 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 2 Software Maintenance Process Steve Chenoweth Office Phone: (812) Cell: (937)
THE WHAT, WHY AND HOW OF OUTSOURCING INFORMATION SYSTEMS.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Advanced Software Engineering Dr. Cheng
Steve Chenoweth Office Phone: (812) Cell: (937)
ITIL: Service Transition
Software Engineering--Introduction
Top Ten List for Directors of Technology
Contracting Officer Podcast Slides
Software Maintenance and Evolution CSSE 575: Session 1, Part 1 Course Introduction Steve Chenoweth Office Phone: (812) Cell: (937)
Software Processes (a)
Software Documentation
Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas.
Yes, we need hundreds of methodologies!!!
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Presentation transcript:

1 Software Maintenance and Evolution CSSE 575: Session 4, Part 1 Software Maintenance – Big Issues served up, Side order of Reifer Steve Chenoweth Office Phone: (812) Cell: (937) Above – Software is not the only place where users are sensitive to the quality of maintenance. How about those Indiana roads? From lafayette.in.us/department/division.php?fDD= lafayette.in.us/department/division.php?fDD=10-62

2 What are “Maintenance” topics? Maintenance is a subset of “evolution” Emphasizes what has to be changed – – As time goes on after initial development – Especially from the developer’s perspective And issues with that – And approaches to resolving those Lots about bug fixes and minor enhancements Evolution as a whole, in contrast – Studies how things are done generally – Like different approaches in different vocational areas, and – The overall “laws of evolution” in effect – E.g., studies of system decay over time Lots about adaptation and migration, which is useful for activities like planning product strategies and major releases. A practitioner’s view A manager’s / theoretician’s view

3 General Maintenance Themes Need to be self-aware while doing it Need to be systematic Need to document – E.g., How long did it take to make that fix? Experiment – try alternative approaches – What should we try next time? Tune and retune based on what’s learned – Amount of tuning is based on maturity with product, processes and tools

4 Goal = high “maintainability” Best practices are learned in each of the areas pictured. – In source code, for example, it involves things like: Localizing changes Preventing ripple effects Deferring binding time We’ll discuss how to achieve this, in next slide set.

5 Setting up maintenance processes Done as part of product planning – Not at end of initial development – Maintenance is not a “post-delivery activity” Need a “Maintenance plan” – Includes a “transition plan” to maintenance group (or mixed activities by a single group) – Need to decide who does maintenance – see next two slides – Transition to maintenance is painful, no matter how it’s done

6 Software start-up horror story Who are you kidding? The customer just called…You can’t do anything else till you fix all those new bugs! Hey boss, we finally shipped, so we’re ready to dive right into Release 2! The payoff for two years of 80-hour weeks…

7 Same team does maintenance? Advantages: – Transition plan is simpler – No personnel changes – Developer has the best knowledge – Don’t need formal communication to maintainers – Separate maintenance organization has its own priorities – No need to decide “who goes where” at end of initial development – Less need for training /expertise transfer – Residual developers would still need to help separate maintainers – Already know product tools

8 Different team does maintenance? Advantages: – Maintenance group tends to do better processes – Not distracted by upcoming major releases or new products Developers can do these (usually) – Understand metrics for maintenance

9 Maintenance Issues

10 Conceptual issues Maintenance relies on all prior work. Documentation and the system get more complex. Difficult to track changes. Ripple effects. Personnel / knowledge loss over time.

11 The case history you read Sneed & Brossler, “Critical Success Factors in Software Maintenance: A Case Study,” 2003 Goal – – Apply known 8 factors to a large project – Evaluate in importance for current project “Success” traditionally == – Increase in user satisfaction – Reductions in costs Harry M. Sneed, 2003

12 Case history, cntd Authors proposed instead, Success is in terms of: – Functionality – Quality – Complexity (same or less, relative to size) – Volatility (ditto) – Costs – Release deadlines – User satisfaction – Profitability

13 Case history, cntd Authors then measured each of these 8 factors, for the target system: – They saw success on the first six – The last two – inconclusive Partly, the system was now technologically outdated The target system was a securities-trading banking system. – Needed to become web based!

14 Donald Reifer’s Perspective From his 2012 book, Software Maintenance Success Recipes. CRC Press, ISBN Maintenance is not a tack-on to development. Development is the start of maintenance.

15 Conclusion… Our current perceptions don’t match the actualities of maintenance Realities…

16 What’s important?

17 What influences maintenance actions? Depends… But it differs from development!

18 What else would you like to know?

19 Or…

20 Other upcoming maintenance topics Next slides this week: – Processes – what works / doesn’t – Maintainability – Role of documentation – Program understanding Next week: – Reengineering, reverse engineering and tools – Impact analysis