Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 577b Software Engineering II -- Introduction

Similar presentations


Presentation on theme: "CS 577b Software Engineering II -- Introduction"— Presentation transcript:

1 CS 577b Software Engineering II -- Introduction
19 April 2017 Software Maintenance based on Software Engineering Body of Knowledge (SWEBOK) CS 577b Software Engineering II Supannika Koolmanojwong March 10, 2011 © USC Center for Software Engineering

2 Outline Software Maintenance Fundamentals
Key Issues in Software Maintenance Maintenance Process Techniques for Maintenance 03/02/2011 © 2011 USC-CSSE

3 Definition IEEE standard [IEEE 1219-98:s3.1.12]:
“the modification of a software product after delivery to correct faults, to improve performance or other attributes , or to adapt the product to a modified environment.” 03/02/2011 © 2011 USC-CSSE

4 Nature of Maintenance Sustain the software product throughout its operational life cycle Modification requests are logged and tracked Impact of the proposed changed is determined Code and artifacts are modified Testing is conducted New version of software product is released Need training and daily support 03/02/2011 © 2011 USC-CSSE

5 03/02/2011 © 2011 USC-CSSE

6 Why we need a software maintenance ?
Correct faults Improve the design Implement enhancements Interface with other systems Adapt programs so that different hardware, software, system features, and telecommunications facilities can be used Migrate legacy software Retire software 03/02/2011 © 2011 USC-CSSE

7 Maintainer’s activities
Maintaining control over the software's day-to-day functions Maintaining control over software modification Perfecting existing functions Preventing software performance from degrading to unacceptable levels 03/02/2011 © 2011 USC-CSSE

8 Cost of Software Maintenance
Common perception software maintenance cost = fixes faults 80% - non-corrective actions BUT, many managers put enhancement and correction together 03/02/2011 © 2011 USC-CSSE

9 Factors influencing maintenance costs
Application type Software novelty/uniqueness Software maintenance staff availability Software life span Hardware characteristics Quality of software design, construction, documentation and testing 03/02/2011 © 2011 USC-CSSE

10 Software Maintenance Categories
Correction Enhancement Proactive Preventive Perfective Reactive Corrective Adaptive Corrective maintenance: Reactive modification of a software product performed after delivery to correct discovered problems Adaptive maintenance: Modification of a software product performed after delivery to keep a software product usable in a changed or changing environment Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults 03/02/2011 © 2011 USC-CSSE

11 Outline Software Maintenance Fundamentals
Key Issues in Software Maintenance Maintenance Process Techniques for Maintenance 03/02/2011 © 2011 USC-CSSE

12 Key Issues in Software Maintenance
Technical issues Management issues Cost estimation Measures 03/02/2011 © 2011 USC-CSSE

13 1) Technical Issues Limited understanding Testing
40% to 60% of the maintenance effort is devoted to understanding the software to be modified Testing  Full testing is costly Regression testing - retesting of a software or component to verify that the modifications have not caused unintended effects When to test (possible for offline testing?) 03/02/2011 © 2011 USC-CSSE

14 1) Technical Issues Impact analysis
analysis of the impact of a change in existing software identify all systems and software products, estimate of the resources needed Change request; modification request (MR); problem report (PR) Objectives of Impact Analysis Determine scope of change in order to plan and implement work Develop estimates of resources needed to perform the work Analyze cost/benefits of the requested change Communicate to others of the complexity of a given change  03/02/2011 © 2011 USC-CSSE

15 1) Technical Issues Maintainability
In order to save cost, determine maintainability during development process, review it and control it Not emphasized during development process Mature process helps enhancing maintainability 03/02/2011 © 2011 USC-CSSE

16 2. Management Issues Alignment with organizational objectives Staffing
Usually contrast to org objectives: deliver on time, limited budget Do not show a good number in ROI No clear quantifiable benefit for the organization Staffing  Perceived as second-class citizens Morale therefore suffers 03/02/2011 © 2011 USC-CSSE

17 2. Management Issues Process Organizational aspects of maintenance
Similar to development process, but has unique activities Organizational aspects of maintenance Case-by-case policy in task delegation Dedicated maintainer or a special team Outsourcing  Usually for less mission-critical systems Challenges Scope of maintenance and contractual details Transition to outsourcer 03/02/2011 © 2011 USC-CSSE

18 3. Maintenance Cost Estimation
Parametric model COCOMO for maintenance Experience Delphi study 03/02/2011 © 2011 USC-CSSE

19 4. Software Maintenance Measurement
Common categories size; effort; schedule; and quality Based on Maintainability characteristics Analyzability: Measures of the maintainer's effort or resources expended in trying to diagnose deficiencies or causes of failure, or in identifying parts to be modified Changeability: Measures of the maintainer's effort associated with implementing a specified modification Stability: Measures of the unexpected behavior of software, including that encountered during testing Testability: Measures of the maintainer's and users' effort in trying to test the modified software 03/02/2011 © 2011 USC-CSSE

20 Outline Software Maintenance Fundamentals
Key Issues in Software Maintenance Maintenance Process Techniques for Maintenance 03/02/2011 © 2011 USC-CSSE

21 The Incremental Commitment Spiral Model
This slide shows the overall concept of the ICM Commitment and accountability Success-critical stakeholder satisficing, Incremental growth of system definition and stakeholder commitment, Concurrent engineering, Iterative development cycles, Risk-based activity levels and milestones Jan 11, 2011

22 Software Maintenance Process
Post-delivery stage The IEEE Maintenance Process Activities 03/02/2011 © 2011 USC-CSSE

23 Another Software Maintenance Process
ISO/IEC Software Maintenance Process 03/02/2011 © 2011 USC-CSSE

24 Maintenance Activities
Unique Activity Transition: a controlled and coordinated sequence of activities during which software is transferred progressively from the developer to the maintainer Modification Request Acceptance/Rejection: modification request work over a certain size/effort/complexity may be rejected by maintainers and rerouted to a developer Modification Request and Problem Report Help Desk: an end-user support function that triggers the assessment, prioritization, and costing of modification requests Impact Analysis Software Support: help and advice to users concerning a request for information (for example, business rules, validation, data meaning and ad-hoc requests/reports) Service Level Agreements (SLAs) and specialized (domain-specific) maintenance contracts which are the responsibility of the maintainers Supporting Activity Maintenance planning activity 03/02/2011 © 2011 USC-CSSE

25 Maintenance Activities
Unique Activity Supporting Activity software maintenance planning software configuration management, verification and validation, software quality assurance, reviews, audits user training and maintainer training Maintenance planning activity 03/02/2011 © 2011 USC-CSSE

26 Maintenance Activities
Unique Activity Supporting Activity Maintenance planning activity Business planning (organizational level) Maintenance planning (transition level) Release/version planning (software level) Individual software change request planning (request level) 03/02/2011 © 2011 USC-CSSE

27 Release/version planning activity
Collect the dates of availability of individual requests Agree with users on the content of subsequent releases/versions Identify potential conflicts and develop alternatives Assess the risk of a given release and develop a back-out plan in case problems should arise Inform all the stakeholders 03/02/2011 © 2011 USC-CSSE

28 Software configuration management
Critical element of the maintenance process For verification, validation, audit of each step required to identify, authorize, implement, and release the software product. Track Modification Requests or Problem Reports Control the changes Different from CM of software development 03/02/2011 © 2011 USC-CSSE

29 Outline Software Maintenance Fundamentals
Key Issues in Software Maintenance Maintenance Process Techniques for Maintenance 03/02/2011 © 2011 USC-CSSE

30 Techniques for Maintenance
Program Comprehension reading and understanding programs in order to implement changes. Code browsers are key tools for program comprehension. Need clear and concise documentation 03/02/2011 © 2011 USC-CSSE

31 Techniques for Maintenance
Reengineering  examination and alteration of software to reconstitute it in a new form, and includes the subsequent implementation of the new form the most radical (and expensive) form of alteration It is often not undertaken to improve maintainability, but to replace aging legacy software 03/02/2011 © 2011 USC-CSSE

32 Techniques for Maintenance
Reverse engineering Analyzing software to identify the software's components and their interrelationships and to create representations of the software in another form or at higher levels of abstraction Reverse engineering is passive; it does not change the software, or result in new software E.g. redocumentation, design recovery, refactoring (to improve performance), data reverse engineering (logical schemas are recovered from physical databases) 03/02/2011 © 2011 USC-CSSE

33 Distribution of Maintenance Problem Items
03/02/2011 © 2011 USC-CSSE

34 03/02/2011 © 2011 USC-CSSE

35 References [Lientz 1981] Lientz, B.P. & Swanson, E. (1981). "Problems in application software maintenance". Communications of the ACM 24 (11), [SWEBOK 2004] Software Engineering Body of Knowledge version 03/02/2011 © 2011 USC-CSSE


Download ppt "CS 577b Software Engineering II -- Introduction"

Similar presentations


Ads by Google