Team 7 Maintenance - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Team 7 Maintenance

Description:

Working software over comprehensive documentation ... Companies such as Red Hat, Mandrake SuSE offer maintenance for Linux. Summary ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 22
Provided by: JAY5195
Category:
Tags: maintenance | team

less

Transcript and Presenter's Notes

Title: Team 7 Maintenance


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, govt 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 (Cont)
  • 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.htmlsubj2
    .1

5
Maintenance Process Models
  • Quick fix model
  • Boehms model
  • Osbornes 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
  • Dont 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 softwares
    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
Linuss 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?
Write a Comment
User Comments (0)
About PowerShow.com