Upload
maleah
View
33
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Team 7Team 7MaintenanceMaintenance
Deborah YoonDeborah YoonKagan ErdilKagan ErdilEmily FinnEmily FinnJay MeattleJay Meattle
Sunyoung ParkSunyoung ParkKevin KeatingKevin Keating
Wednesday, December 3
The Nature of MaintenanceThe Nature of Maintenance Maintenance + EvolutionMaintenance + Evolution
Corrective: Correct faults and errorsCorrective: Correct faults and errors Adaptive: Adapt to changes in environmentAdaptive: Adapt to changes in environment - business rule, gov’t policies. ex) bank and - business rule, gov’t policies. ex) bank and
ECUECU Perfective: Accommodate new user Perfective: Accommodate new user
requirementsrequirements - successful product results in more changes- successful product results in more changes - example: adding online HELP command- example: adding online HELP command Preventive: Increase maintainabilityPreventive: Increase maintainability- example: code restructuring, documentation - example: code restructuring, documentation
updatingupdating
Maintenance is expensive (money, time)Maintenance is expensive (money, time) $ 70 billion for 10 billion lines of code spent annually $ 70 billion for 10 billion lines of code spent annually
in USin US Comprises half time of the total life cycle of softwareComprises half time of the total life cycle of software
: 49% for pharmaceutical, 75% for automobile : 49% for pharmaceutical, 75% for automobile companiescompanies
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 Consumers judge the quality of the software
maintenance in service aspectmaintenance in service aspect
The Nature of Maintenance The Nature of Maintenance (Con’t)(Con’t)
Why include it?Why include it?
80% of the 100 billion lines of code in 80% of the 100 billion lines of code in production in the world is unstructured, production in the world is unstructured, patched, badly documentedpatched, 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#suhttp://catless.ncl.ac.uk/Risks/21.24.html#subj2.1bj2.1
Maintenance Process Maintenance Process ModelsModels
Quick fix modelQuick fix model Boehm’s modelBoehm’s model Osborne’s modelOsborne’s model Iterative Enhancement modelIterative Enhancement model Reuse oriented modelReuse oriented model
Reverse Reverse EngineeringEngineering
Reverse EngineeringReverse Engineering Recover lost informationRecover lost information Facilitate migration between platformsFacilitate migration between platforms Improve/provide documentationImprove/provide documentation Prove alternative viewsProve alternative views Extract reusable componentsExtract reusable components Cope complexityCope complexity
TasksTasks Analysis/isolation tasksAnalysis/isolation tasks Change designChange design Code/unit testCode/unit test Testing- integration, acceptance and Testing- integration, acceptance and
regressionregression DocumentationDocumentation
Reuse and ReusabilityReuse and Reusability Program UnderstandingProgram Understanding Management and Organizational IssuesManagement and Organizational Issues
Tools/ProductsTools/Products Selection criteriasSelection criterias
CapabilityCapability FeaturesFeatures Cost/benefitCost/benefit PlatformPlatform Programming languageProgramming language Ease of useEase of use Openness of architectureOpenness of architecture Stability of vendorStability of vendor Organizational cultureOrganizational culture
Iterative Iterative DevelopmentDevelopment
Small iterations for each change Small iterations for each change mademade Conduct meetings throughout the Conduct meetings throughout the iterationsiterations In maintenance, a new iteration for In maintenance, a new iteration for each new feature or fixed bugeach new feature or fixed bug
Types of Iterative Types of Iterative DevelopmentDevelopment
Extreme Programming (XP)Extreme Programming (XP) Shortest possible iterationsShortest possible iterations Test-First TestingTest-First Testing Acceptance TestsAcceptance Tests
Rational Unified Process (RUP)Rational Unified Process (RUP) Document User RequirementsDocument User Requirements Update user requirements throughout the processUpdate user requirements throughout the process
ScrumScrum Daily meetingsDaily meetings Four phases: Planning, Architecture, Sprints, Four phases: Planning, Architecture, Sprints,
ClosureClosure
Maintenance and Maintenance and Iterative DevIterative Dev
Don’t change the whole system at Don’t change the whole system at onceonce
Minimize downtimeMinimize downtime Ensure final product adheres to user Ensure final product adheres to user
requirementsrequirements Small iterations, small fixesSmall iterations, small fixes
Industry and technology move extremely fastIndustry and technology move extremely fast Requirements change at rates that swamp Requirements change at rates that swamp
traditional methodstraditional methods Customers have become increasingly unable Customers have become increasingly unable
to definitively state their needs upfront while to definitively state their needs upfront while expected more from their softwareexpected more from their software
The Agile method is an alternative to The Agile method is an alternative to documentation driven, heavyweight software documentation driven, heavyweight software
development processes. development processes.
Agile Software Development and Agile Software Development and MaintenanceMaintenance
Agile Software Development and Agile Software Development and MaintenanceMaintenance
Agile ManifestoAgile Manifesto Individuals and interactionsIndividuals and interactions over valued over over valued over
processes and toolsprocesses and tools Working softwareWorking software over comprehensive over comprehensive
documentation documentation Customer collaborationCustomer collaboration over contract negotiation over contract negotiation Responding to changeResponding to change over following a plan over following a plan
GoalsGoals Primary goal – deliver working softwarePrimary goal – deliver working software Secondary goal – set up other work products for the Secondary goal – set up other work products for the
next game (e.g. maintenance)next game (e.g. maintenance)
Agile Software Development Agile Software Development and Maintenanceand Maintenance
Since this method considers setting up tools Since this method considers setting up tools such as comprehensive documentation a such as comprehensive documentation a secondary objective, subsequent stages in the secondary objective, subsequent stages in the software’s life cycle such as maintenance are software’s life cycle such as maintenance are harder to implement. harder to implement.
However, the best way to go about the actual However, the best way to go about the actual maintenance stage is probably the Agile maintenance stage is probably the Agile method because of its very nature stemming method because of its very nature stemming from its primary focus on delivering working from its primary focus on delivering working software.software.
Component Based Software Component Based Software DvelopmentDvelopment
construction of software systems that makes use construction of software systems that makes use of reusable components.of reusable components.
develop software systems by selecting appropriate develop software systems by selecting appropriate off-the shelf components and then assemble them off-the shelf components and then assemble them with a well-defined software architecture.with a well-defined software architecture.
Components and Glue codesComponents and Glue codes ComponentsComponents Glue codesGlue codes
Real World ApplicationsReal World Applications Enterprise JavaBean, COM , CORBA, etc.Enterprise JavaBean, COM , CORBA, etc.
Maintenance in CBSDMaintenance in CBSD Role of Maintainers of CBSD is different Role of Maintainers of CBSD is different
from that in other custom-built systems.from that in other custom-built systems.
Maintenance Activities for CBSDMaintenance Activities for CBSD Glueing and wrappingGlueing 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 testingComponent testing
Advantages and Advantages and Disadvantages of CBSDDisadvantages of CBSD
Components can be reusedComponents can be reused they are written only once, and then assembled they are written only once, and then assembled
with their ability to be reused. with their ability to be reused. Components do not rely on the surrounding Components do not rely on the surrounding
system, and the surroundings of a component system, and the surroundings of a component have no need to know exactly how it performs.have no need to know exactly how it performs.
Increased cost efficiency and productivityIncreased cost efficiency and productivity
Making use of the components is complexMaking use of the components is complex For the developer or maintainer there will be the For the developer or maintainer there will be the
requirement to keep, a catalogue of the different requirement to keep, a catalogue of the different components and have a good understanding of the components and have a good understanding of the different interfaces and the way they work in different interfaces and the way they work in order to understand the system. order to understand the system.
Open source - Blurring Open source - Blurring the Linethe Line
Software is available before version Software is available before version 1.01.0
Blurs the line between development Blurs the line between development and maintenanceand maintenance
Akin to incremental developmentAkin to incremental development Are now a nearly infinite number of Are now a nearly infinite number of
incrementsincrements Users are co-developersUsers are co-developers
Linus’s LawLinus’s Law
““Given enough eyeballs, all bugs are Given enough eyeballs, all bugs are shallow”shallow” ““Debugging is parallelizable”Debugging is parallelizable”
““The total cost of maintaining a widely The total cost of maintaining a widely used program is typically 40% or more used program is typically 40% or more of the cost of developing it. of the cost of developing it. Surprisingly this cost is strongly Surprisingly this cost is strongly affected by the number of users. affected by the number of users. More More users find more bugsusers find more bugs.”.”
- Frederick P. Brooks, - Frederick P. Brooks, Mythical Man MonthMythical Man Month
Third Party MaintenanceThird Party Maintenance
Because source is open, anyone can Because source is open, anyone can maintain a projectmaintain a project Not just developerNot just developer
Companies such as Red Hat, Companies such as Red Hat, Mandrake SuSE offer maintenance Mandrake SuSE offer maintenance for Linuxfor Linux
SummarySummary
Estimated at 50% of software life Estimated at 50% of software life cyclecycle
Number of models existNumber of models exist Method used to develop the software Method used to develop the software
will affect maintenancewill affect maintenance
Questions?Questions?