Download presentation
Presentation is loading. Please wait.
Published byCharleen Blair Modified over 9 years ago
1
Team 7 Maintenance Deborah Yoon Kagan Erdil Emily Finn Jay Meattle Sunyoung Park Kevin Keating Wednesday, December 3
2
The Nature of Maintenance Maintenance + Evolution Maintenance + Evolution Corrective: Correct faults and errors Corrective: Correct faults and errors Adaptive: Adapt to changes in environment Adaptive: Adapt to changes in environment - business rule, gov’t policies. ex) bank and ECU - business rule, gov’t policies. ex) bank and ECU Perfective: Accommodate new user requirements Perfective: Accommodate new user requirements - successful product results in more changes - successful product results in more changes - example: adding online HELP command - example: adding online HELP command Preventive: Increase maintainability Preventive: Increase maintainability - example: code restructuring, documentation updating
3
Maintenance is expensive (money, time) Maintenance is expensive (money, time) $ 70 billion for 10 billion lines of code spent annually in US $ 70 billion for 10 billion lines of code spent annually in US Comprises half time of the total life cycle of software Comprises half time of the total life cycle of software : 49% for pharmaceutical, 75% for automobile companies : 49% for pharmaceutical, 75% for automobile companies 50% is spent on Perfective maintenance 50% is spent on Perfective maintenance Maintenance is product + service Maintenance is product + service Consumers judge the quality of the software maintenance in service aspect Consumers judge the quality of the software maintenance in service aspect The Nature of Maintenance (Con’t)
4
Why include it? 80% of the 100 billion lines of code in production in the world is unstructured, patched, badly documented 80% of the 100 billion lines of code in production in the world is unstructured, patched, badly documented Lost pet fees cost Toronto $700,000 Lost pet fees cost Toronto $700,000 http://catless.ncl.ac.uk/Risks/21.24.html#subj2.1 http://catless.ncl.ac.uk/Risks/21.24.html#subj2.1http://catless.ncl.ac.uk/Risks/21.24.html#subj2.1
5
Maintenance Process Models Quick fix model Quick fix model Boehm’s model Boehm’s model Osborne’s model Osborne’s model Iterative Enhancement model Iterative Enhancement model Reuse oriented model Reuse oriented model
6
Reverse Engineering Reverse Engineering Reverse Engineering Recover lost information Recover lost information Facilitate migration between platforms Facilitate migration between platforms Improve/provide documentation Improve/provide documentation Prove alternative views Prove alternative views Extract reusable components Extract reusable components Cope complexity Cope complexity
7
Tasks Analysis/isolation tasks Analysis/isolation tasks Change design Change design Code/unit test Code/unit test Testing- integration, acceptance and regression Testing- integration, acceptance and regression Documentation Documentation Reuse and Reusability Reuse and Reusability Program Understanding Program Understanding Management and Organizational Issues Management and Organizational Issues
8
Tools/Products Selection criterias Selection criterias Capability Capability Features Features Cost/benefit Cost/benefit Platform Platform Programming language Programming language Ease of use Ease of use Openness of architecture Openness of architecture Stability of vendor Stability of vendor Organizational culture Organizational culture
9
Iterative Development Small iterations for each change made Small iterations for each change made Conduct meetings throughout the iterations Conduct meetings throughout the iterations In maintenance, a new iteration for each new feature or fixed bug In maintenance, a new iteration for each new feature or fixed bug
10
Types of Iterative Development Extreme Programming (XP) Extreme Programming (XP) Shortest possible iterations Shortest possible iterations Test-First Testing Test-First Testing Acceptance Tests Acceptance Tests Rational Unified Process (RUP) Rational Unified Process (RUP) Document User Requirements Document User Requirements Update user requirements throughout the process Update user requirements throughout the process Scrum Scrum Daily meetings Daily meetings Four phases: Planning, Architecture, Sprints, Closure Four phases: Planning, Architecture, Sprints, Closure
11
Maintenance and Iterative Dev Don’t change the whole system at once Don’t change the whole system at once Minimize downtime Minimize downtime Ensure final product adheres to user requirements Ensure final product adheres to user requirements Small iterations, small fixes Small iterations, small fixes
12
Industry and technology move extremely fast Industry and technology move extremely fast Requirements change at rates that swamp traditional methods Requirements change at rates that swamp traditional methods Customers have become increasingly unable to definitively state their needs upfront while expected more from their software Customers have become increasingly unable to definitively state their needs upfront while expected more from their software The Agile method is an alternative to documentation driven, heavyweight software development processes. Agile Software Development and Maintenance
13
Agile Manifesto Agile Manifesto Individuals and interactions over valued over processes and tools Individuals and interactions over valued over processes and tools Working software over comprehensive documentation Working software over comprehensive documentation Customer collaboration over contract negotiation Customer collaboration over contract negotiation Responding to change over following a plan Responding to change over following a plan Goals Goals Primary goal – deliver working software Primary goal – deliver working software Secondary goal – set up other work products for the next game (e.g. maintenance) Secondary goal – set up other work products for the next game (e.g. maintenance)
14
Agile Software Development and Maintenance Since this method considers setting up tools such as comprehensive documentation a secondary objective, subsequent stages in the software’s life cycle such as maintenance are harder to implement. Since this method considers setting up tools such as comprehensive documentation a secondary objective, subsequent stages in the software’s life cycle such as maintenance are harder to implement. However, the best way to go about the actual maintenance stage is probably the Agile method because of its very nature stemming from its primary focus on delivering working software. However, the best way to go about the actual maintenance stage is probably the Agile method because of its very nature stemming from its primary focus on delivering working software.
15
Component Based Software Dvelopment construction of software systems that makes use of reusable components. construction of software systems that makes use of reusable components. develop software systems by selecting appropriate off-the shelf components and then assemble them with a well-defined software architecture. develop software systems by selecting appropriate off-the shelf components and then assemble them with a well-defined software architecture. Components and Glue codes Components and Glue codes Components Components Glue codes Glue codes Real World Applications Real World Applications Enterprise JavaBean, COM, CORBA, etc. Enterprise JavaBean, COM, CORBA, etc.
16
Maintenance in CBSD Role of Maintainers of CBSD is different from that in other custom-built systems. Role of Maintainers of CBSD is different from that in other custom-built systems. Maintenance Activities for CBSD Maintenance Activities for CBSD Glueing and wrapping Glueing and wrapping Tailoring: Tailoring: Fault identification and isolation Fault identification and isolation Updating component configuration Updating component configuration Monitoring and auditing system behavior Monitoring and auditing system behavior Component testing Component testing
17
Advantages and Disadvantages of CBSD Components can be reused Components can be reused they are written only once, and then assembled with their ability to be reused. they are written only once, and then assembled with their ability to be reused. Components do not rely on the surrounding system, and the surroundings of a component have no need to know exactly how it performs. Components do not rely on the surrounding system, and the surroundings of a component have no need to know exactly how it performs. Increased cost efficiency and productivity Increased cost efficiency and productivity Making use of the components is complex Making use of the components is complex For the developer or maintainer there will be the requirement to keep, a catalogue of the different components and have a good understanding of the different interfaces and the way they work in order to understand the system. For the developer or maintainer there will be the requirement to keep, a catalogue of the different components and have a good understanding of the different interfaces and the way they work in order to understand the system.
18
Open source - Blurring the Line Software is available before version 1.0 Software is available before version 1.0 Blurs the line between development and maintenance Blurs the line between development and maintenance Akin to incremental development Akin to incremental development Are now a nearly infinite number of increments Are now a nearly infinite number of increments Users are co-developers Users are co-developers
19
Linus’s Law “Given enough eyeballs, all bugs are shallow” “Given enough eyeballs, all bugs are shallow” “Debugging is parallelizable” “Debugging is parallelizable” “The total cost of maintaining a widely used program is typically 40% or more of the cost of developing it. Surprisingly this cost is strongly affected by the number of users. More users find more bugs.” “The total cost of maintaining a widely used program is typically 40% or more of the cost of developing it. Surprisingly this cost is strongly affected by the number of users. More users find more bugs.” - Frederick P. Brooks, Mythical Man Month
20
Third Party Maintenance Because source is open, anyone can maintain a project Because source is open, anyone can maintain a project Not just developer Not just developer Companies such as Red Hat, Mandrake SuSE offer maintenance for Linux Companies such as Red Hat, Mandrake SuSE offer maintenance for Linux
21
Summary Estimated at 50% of software life cycle Estimated at 50% of software life cycle Number of models exist Number of models exist Method used to develop the software will affect maintenance Method used to develop the software will affect maintenance Questions? Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.