CS 577b Software Engineering II -- Introduction

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
ITIL: Service Transition
Software Configuration Management
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Introduction to Software Evolution and Maintenance
Software Evolution Managing the processes of software system change
SE 555 Software Requirements & Specification Requirements Management.
Chapter 6 Systems Development.
Software evolution.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Configuration Management
Software maintenance Managing the processes of system change.
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Release & Deployment ITIL Version 3
Lecture # 22 Software Evolution
“Here’s why you need the new wheels, too…” Shawn and Steve Image from
Pre-Project Activities Text Chapters 5 and 6. Pre-Project Activities 1.Contract Review 2.Development Plan 3.Quality Plan.
Introduction to Software Quality Assurance (SQA)
11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE
Chapter 2 The process Process, Methods, and Tools
N By: Md Rezaul Huda Reza n
Software Project Management Introduction to Project Management.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
What is a life cycle model?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Software Engineering Lecture 20 Software Maintenance.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Software Maintenance.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
IT Requirements Management Balancing Needs and Expectations.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software evolution l Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  System and Software  System Engineering  Software Engineering  Software Engineering Standards  Software Development.
Requirements Engineering Process
1 Overview of Maintenance CPRE 416-Software Evolution and Maintenance-Lecture 3.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 2 Software Maintenance Process Steve Chenoweth Office Phone: (812) Cell: (937)
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
CS223: Software Engineering Lecture 32: Software Maintenance.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
 System Requirement Specification and System Planning.
CS223: Software Engineering Lecture 33: Software Maintenance.
ITIL: Service Transition
Software Configuration Management
Software Project Configuration Management
Overview Software Maintenance and Evolution Definitions
CS223: Software Engineering
Fundamentals of Information Systems, Sixth Edition
Chapter 18 Maintaining Information Systems
Introduction to Software Evolution and Maintenance
TechStambha PMP Certification Training
IEEE Std 1074: Standard for Software Lifecycle
Software Engineering (CSI 321)
Chapter 9 – Software Evolution and Maintenance
Software Maintenance Main issues: why maintenance is such an issue
Software Maintenance Main issues: why maintenance is such an issue
Software Engineering I
Chapter 8 Software Evolution.
Presentation transcript:

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 © 2002-6 USC Center for Software Engineering

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

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

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

03/02/2011 © 2011 USC-CSSE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

03/02/2011 © 2011 USC-CSSE

References [Lientz 1981] Lientz, B.P. & Swanson, E. (1981). "Problems in application software maintenance". Communications of the ACM 24 (11), 763-769. [SWEBOK 2004] Software Engineering Body of Knowledge version 2004 http://www.computer.org/portal/web/swebok 03/02/2011 © 2011 USC-CSSE