Team 7 Maintenance Deborah Yoon Kagan Erdil Emily Finn Jay Meattle Sunyoung Park Kevin Keating...

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

Transcript of Team 7 Maintenance Deborah Yoon Kagan Erdil Emily Finn Jay Meattle Sunyoung Park Kevin Keating...

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

Team 7Team 7MaintenanceMaintenance

Deborah YoonDeborah YoonKagan ErdilKagan ErdilEmily FinnEmily FinnJay MeattleJay Meattle

Sunyoung ParkSunyoung ParkKevin KeatingKevin Keating

Wednesday, December 3

Page 2: Team 7 Maintenance Deborah Yoon Kagan Erdil Emily Finn Jay Meattle Sunyoung Park Kevin 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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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.

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

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.

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

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

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

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.

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

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

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

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

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

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

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

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?