Unformatted text preview:

Today’s AgendaQuick ReviewAdvanced Testing TechniquesSoftware MaintenanceSlide 5Software vs ProgramsMaintenance vs DevelopmentWhy Maintenance?A Maintenance FrameworkLehman’s LawsSoftware ChangeInterplay of changesExpenditure on Different ChangesMajor ActivitiesSlide 15Development ModelsQuick-Fix ModelBoehm’s ModelOsborne’s ModelIterative Enhancement ModelMaintenance Effort (1)Maintenance Effort (2)Slide 23What to understandComprehension Process (1)Comprehension Process (2)Comprehension StrategiesFactors affecting understandingReverse EngineeringWhy RE?Levels of RESlide 32Why CM?Major activitiesThe Big PictureVersion Control (1)Version Control (2)BuildingChange ControlChange Request FormDocumentationProducing Quality DocumentationSlide 43ResponsibilitiesMotivating the TeamEducation and TrainingModule OwnershipChange OwnershipSlide 49ConclusionToday’s AgendaHW #6Software MaintenanceSoftware Testing and Maintenance 1Quick ReviewWhat is the fundamental difference between software development and maintenance?Software Testing and Maintenance 2Advanced Testing TechniquesAutomatic test data generationSymbolic/concolic execution, constraint solvingTesting of interactive systems, e.g. GUI, web applicationsHow to generate test sequences?Object-oriented testingHow to take into account OO features like inheritance and polymorphism?Concurrency/real-time testingHow to control non-deterministic behavior? How to verify synchronization/timing requirements?Software Testing and Maintenance 3Software Testing and Maintenance 4Software Maintenance Introduction Process Models Program Understanding Configuration Management Management Issues ConclusionSoftware Testing and Maintenance 5Software Maintenance Management and control of changes to a software product after deliveryBug fix, new features, environment adaptation, performance improvement Often accounts for 40-70% of the cost of the entire life-cycle of a software productThe more successful a software product is, the more time it spends on maintenanceSoftware Testing and Maintenance 6Software vs ProgramsSoftware Components ExamplesProgram 1. Source code 2. Object code 1. Analysis/Specification (a) Formal specification (b) Data flow diagrams 2. Design (a) High-level design (b) Low-level design (b) Data modelDocumentation 3. Implementation (a) Source code (b) Comments 4. Testing (a) Test design (b) Test resultsOperating Procedures 1. Installation manual 2. User manualSoftware Testing and Maintenance 7Maintenance vs Development Maintenance must work within the parameters and constraints of an existing systemThe addition of a new room to an existing building can be more costly than adding the room in the first place An existing system must be understood prior to a change to the systemHow to accommodate the change?What is the potential ripple effect?What skills and knowledge are required?Software Testing and Maintenance 8Why Maintenance? To provide continuity of serviceBug fixing, recover from failure, accommodating changes in the environment To support mandatory upgradesGovernment regulations, maintaining competitive edges To support user requests for improvementsNew features, performance improvements, customization for new users To facilitate future maintenance workRe-factoring, document updatingSoftware Testing and Maintenance 9A Maintenance Framework User RequirementsError correction, new features  EnvironmentOperational: Innovations in hardware and softwareOrganizational: Policy changes, competition Maintenance ProcessDifferent maintenance process models SoftwareMaintainability, complexity, quality of documentation Maintenance PersonnelStaff turnover, domain expertiseSoftware Testing and Maintenance 10Lehman’s Laws Law of continuing change: systems must be continually adapted Law of increasing complexity: as a system evolves, its complexity increases unless work is done to maintain or reduce it Law of continuing growth: functionality must be increased continually to maintain user satisfaction Law of declining quality: system quality will appear to decline unless rigorously adaptedSoftware Testing and Maintenance 11Software Change Corrective change: triggered by defects in the softwareResidual errors in design and/or coding Adaptive change: driven by the need to accommodate modifications in the environmentInnovations in hardware/software, changes in business rules Perfective change: undertaken to expand the existing requirementsEnhancement of functionality, improvement in computational efficiency Preventive change: undertaken to prevent malfunctions or to improve maintainabilityCode restructuring, optimization and documentation updatingSoftware Testing and Maintenance 12Interplay of changesAdaptive changePerfective changeCorrective changePreventive changeLeads toSoftware Testing and Maintenance 13Expenditure on Different ChangesCorrectiveAdaptive Perfective Others102030405060Percentageof MaintenanceeffortChange30 : 70Devel : maintenanceSoftware Testing and Maintenance 14Major Activities Change identificationWhat to change, why to change Program understandingHow to make the change, what is the ripple effect Carrying out the change and testingHow to actually implement the change and ensure its correctness Configuration managementHow to manage and control the changes Management issuesHow to build a teamSoftware Testing and Maintenance 15Software Maintenance Introduction Process Models Program Understanding Configuration Management Management Issues ConclusionSoftware Testing and Maintenance 16Development Models Code-and-FixAd-hoc, not well-defined WaterfallSequential, does not capture the evolutionary nature of software SpiralHeavily relies on risk assessment IterativeIncremental, but constant changes may erode system architectureSoftware Testing and Maintenance 17Quick-Fix ModelProblem FoundFix itSoftware Testing and Maintenance 18Boehm’s ModelManagement decisionSoftware in useChangeImplementedEvaluationApproved changesNew versionResultsProposed


View Full Document

UT Arlington CSE 4321 - Software Testing and Maintenance

Download Software Testing and Maintenance
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Software Testing and Maintenance and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Testing and Maintenance 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?