1 / 21

Team 7 Maintenance

Team 7 Maintenance. Deborah Yoon Kagan Erdil Emily Finn Jay Meattle Sunyoung Park Kevin Keating. Wednesday, December 3. The Nature of Maintenance. Maintenance + Evolution Corrective: Correct faults and errors Adaptive: Adapt to changes in environment

maleah
Télécharger la présentation

Team 7 Maintenance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Team 7Maintenance Deborah Yoon Kagan Erdil Emily Finn Jay Meattle Sunyoung Park Kevin Keating Wednesday, December 3

  2. The Nature of Maintenance • Maintenance + Evolution • Corrective: Correct faults and errors • Adaptive: Adapt to changes in environment - business rule, gov’t policies. ex) bank and ECU • Perfective: Accommodate new user requirements - successful product results in more changes - example: adding online HELP command • Preventive: Increase maintainability - example: code restructuring, documentation updating

  3. The Nature of Maintenance (Con’t) • Maintenance is expensive (money, time) • $ 70 billion for 10 billion lines of code spent annually in US • Comprises half time of the total life cycle of software : 49% for pharmaceutical, 75% for automobile companies • 50% is spent on Perfective maintenance • Maintenance is product + service Consumers judge the quality of the software maintenance in service aspect

  4. Why include it? • 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 http://catless.ncl.ac.uk/Risks/21.24.html#subj2.1

  5. Maintenance Process Models • Quick fix model • Boehm’s model • Osborne’s model • Iterative Enhancement model • Reuse oriented model

  6. Reverse Engineering • Reverse Engineering • Recover lost information • Facilitate migration between platforms • Improve/provide documentation • Prove alternative views • Extract reusable components • Cope complexity

  7. Tasks • Analysis/isolation tasks • Change design • Code/unit test • Testing- integration, acceptance and regression • Documentation • Reuse and Reusability • Program Understanding • Management and Organizational Issues

  8. Tools/Products • Selection criterias • Capability • Features • Cost/benefit • Platform • Programming language • Ease of use • Openness of architecture • Stability of vendor • Organizational culture

  9. Iterative Development Small iterations for each change made Conduct meetings throughout the iterations In maintenance, a new iteration for each new feature or fixed bug

  10. Types of Iterative Development • Extreme Programming (XP) • Shortest possible iterations • Test-First Testing • Acceptance Tests • Rational Unified Process (RUP) • Document User Requirements • Update user requirements throughout the process • Scrum • Daily meetings • Four phases: Planning, Architecture, Sprints, Closure

  11. Maintenance and Iterative Dev • Don’t change the whole system at once • Minimize downtime • Ensure final product adheres to user requirements • Small iterations, small fixes

  12. Agile Software Development and Maintenance • Industry and technology move extremely fast • 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 The Agile method is an alternative to documentation driven, heavyweight software development processes.

  13. Agile Software Development and Maintenance • Agile Manifesto • Individuals and interactions over valued over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan • Goals • Primary goal – deliver working software • 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. • 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. • 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 • Glue codes • Real World Applications • Enterprise JavaBean, COM , CORBA, etc.

  16. Maintenance in CBSD • Role of Maintainers of CBSD is different from that in other custom-built systems. • Maintenance Activities for CBSD • Glueing and wrapping • Tailoring: • Fault identification and isolation • Updating component configuration • Monitoring and auditing system behavior • Component testing

  17. Advantages and Disadvantages of CBSD • Components can 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. • Increased cost efficiency and productivity • 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.

  18. Open source - Blurring the Line • Software is available before version 1.0 • Blurs the line between development and maintenance • Akin to incremental development • Are now a nearly infinite number of increments • Users are co-developers

  19. Linus’s Law • “Given enough eyeballs, all bugs are shallow” • “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.” - Frederick P. Brooks, Mythical Man Month

  20. Third Party Maintenance • Because source is open, anyone can maintain a project • Not just developer • Companies such as Red Hat, Mandrake SuSE offer maintenance for Linux

  21. Summary • Estimated at 50% of software life cycle • Number of models exist • Method used to develop the software will affect maintenance • Questions?

More Related