Maintaining the System 中国科学技术大学软件学院 孟宁 2012 年 11 月.

Slides:



Advertisements
Similar presentations
Chapter 11 Software Evolution
Advertisements

Chapter 11 Managing the System Shari L. Pfleeger Joann M. Atlee
Contents Introduction Requirements Engineering Project Management
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Software Configuration Management
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Lecturer: Dr. AJ Bieszczad Chapter Lehman’s system types S-system: formally defined, derivable from a specification P-system: requirements based.
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance.
Contents Introduction Requirements Engineering Project Management
College of Computer Science & Technology Compiler Construction Principles & Implementation Techniques -1- Self Introduction Ying JIN ( 金英 ) , PhD, Associate.
Maintenance When the system is complete and deployed the system is operational. The work done on the operational system is called maintenance.
Chapter 16 Maintaining Information Systems
Software maintenance Managing the processes of system change.
 2004 by SEC Chapter 9 Software Maintenance. 2  2004 by SEC 9.1 Software Evolution.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 9 – Software Evolution and Maintenance
Capturing the Requirements
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
©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.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
Software Engineering 2007/2008—(2) Software Engineering — Theory and Practice CE/ Tel.: (For calling), (For SM)
The Future of Software Engineering 中国科学技术大学软件学院 孟宁 2010 年 12 月.
CH11: Maintaining the System maintenance process can be difficult * The Changing System * The Nature of Maintenance * Maintenance Problems * Measuring.
『华东师范大学』 课程名称: 软件开发实践 Software Development Practice 课程类型: 实践课 第二讲: 项目管理 Lect_02: Manage the Project 主讲 : 软件学院 周勇 副 教授 日期 :
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Delivering the System 中国科学技术大学软件学院 孟宁 2012 年 11 月.
Chapter 11 Maintaining the System System evolution Legacy systems Software rejuvenation.
ISBN Prentice-Hall, 2006 Chapter 11 Maintaining the System Copyright 2006 Pearson/Prentice Hall. All rights reserved.
Chapter 11 Maintaining the System Shari L. Pfleeger Joann M. Atlee 4 th Edition.
Testing the System 中国科学技术大学软件学院 孟宁 2010年12月.
Software Maintenance. OBJECTIVES To appreciate need of Software maintenance performed. To understand reasons for change taking place in a software system.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
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.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 3 Methods of Analysis 分析方法 3.1 Nodal Analysis 3.2 Loop Analysis.
Chapter 2: Software Maintenance Omar Meqdadi SE 3860 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Testing the Programs 中国科学技术大学软件学院 孟宁 2010 年 12 月.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Software change Software change is inevitable –New requirements emerge when the software is used –The business environment changes –Errors must be repaired.
Writing the Programs 中国科学技术大学软件学院 孟宁 2010 年 11 月.
CS223: Software Engineering Lecture 32: Software Maintenance.
Software Maintenance1 Software Maintenance.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Software Configuration Management
Overview Software Maintenance and Evolution Definitions
Chapter 18 Maintaining Information Systems
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
CS 425/625 Software Engineering Software Evolution
Overview: Software and Software Engineering
Testing the Programs 东华理工大学软件学院 李祥.
Chapter 9 Software Maintenance
IS301 – Software Engineering V:
Chapter 27 Software Change.
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
PPT11: System maintenance
Chapter 11 Managing the System Shari L. Pfleeger Joann M. Atlee
Presentation transcript:

Maintaining the System 中国科学技术大学软件学院 孟宁 2012 年 11 月

Contents 11.1 The Changing System 11.2 The Nature of Maintenance 11.3 Maintenance Problems 11.4Measuring Maintenance Characteristics 11.5Maintenance Techniques and Tools 11.6Software Rejuvenation

Chapter 11 Objectives ♦System evolution ♦Legacy systems ♦Impact analysis ♦Software rejuvenation

11.1 The Changing System ♦Maintenance: any work done to change the system after it is in operation –Software does not degrade or require periodic maintenance –However, software is continually evolving Maintenance process can be difficult

11.1 The Changing System Lehman’s System Types ♦S-system: formally defined, derivable from a specification –Matrix manipulation 矩阵运算 ♦P-system: requirements based on approximate solution to a problem, but real-world remains stable –Chess program ♦E-system: embedded in the real world and changes as the world does –Software to predict how economy functions (but economy is not completely understood)

11.1 The Changing System S-System ♦Problem solved is related to the real world

11.1 The Changing System P-System ♦The solution produces information that is compared with the problem

11.1 The Changing System E-System ♦It is an integral part of the world it models –The changeability depends on its real-world context

11.1 The Changing System Examples of Change During Software Development Activity from which Initial change resultsArtifacts requiring consequent change Requirement analysisRequirement specification System designArchitectural design specification Technical design specification Program designProgram design specification Program implementationProgram code Program documentation Unit testingTest plans Test scripts System testingTest plans Test scripts System deliveryUser documentation Operator documentation System guide Programmer’s guide Training classes

11.1 The Changing System The System Life Span 跨度 ♦Will we need maintenance phase? –Even if best practices are followed, still need maintenance (because of E and P systems) ♦Development time vs. maintenance time –Recent surveys: 20% vs 80% ♦How much change can we expect? –System evolution vs. system decline: better to discard and build a new? Cost/reliability/adaptability to change unacceptable? –Laws of software evolution

11.1 The Changing System Laws of Software Evolution ♦Continuing change: leads to less utility ♦Increasing complexity: structure deteriorates 恶化 ♦Fundamental law of program evolution: program obeys statistically-determined trends and invariants 不变量 ♦Conservation of organizational stability: global activity rate is invariant ♦Conservation of familiarity: release content (changes) is statistically invariant

11.2 The Nature of Maintenance Types of Maintenance ♦Corrective: maintaining control over day- to-day functions ♦Adaptive: maintaining control over system modifications ♦Perfective: perfecting existing functions ♦Preventive: preventing system performance from degrading to unacceptable levels

11.2 The Nature of Maintenance Who Performs Maintenance ♦Separate maintenance team –May be more objective –May find it easier to distinguish how a system should work from how it does work ♦Part of development team –Will build the system in a way that makes maintenance easier –May feel over confident, and ignore the documentation to help maintenance effort

11.2 The Nature of Maintenance Maintenance Team Responsibilities Understanding the system Locating information in system documentation Keeping system documentation up-to-date Extending existing functions to accommodate new or changing requirements Adding new functions to the system Finding the source of system failures or problems ♦ Locating and correcting faults ♦ Answering questions about the way the system works ♦ Restructuring design and code components ♦ Rewriting design and code components ♦ Deleting design and code components that are no longer useful ♦ Managing changes to the system as they are made

11.2 The Nature of Maintenance Use of Maintenance Time ♦Graphical representation of distribution of maintenance effort (Lientz and Swanson)

11.3 Maintenance Problems ♦Staff problems –Limited understanding (47% of effort is spent on understanding) –Management priorities: rushing a new product to the market –Morale 士气 : “second-hand 二等公民 ” status accorded to maintenance team ♦Technical problems –Artifacts and paradigms (e.g., legacy, non- OO) –Testing difficulties (some systems must be available around a clock)

11.3 Maintenance Problems Factors Affecting Maintenance Effort ♦Application type ♦System novelty ♦Turnover and maintenance staff ability ♦System life span ♦Dependence on a changing environment ♦Hardware characteristics ♦Design quality ♦Code quality ♦Documentation quality ♦Testing quality

11.4 Measuring Maintenance Characteristics ♦Maintainability is not only restricted to code, but also including specification, design and test plan documentations ♦Maintainability can be viewed in two ways –External view of the software: users, person performing maintenance –Internal view of the software: measuring before delivery

Cyclomatic number 环路数目 ♦Linearly independent path = e - n + 2 –e: edges, n : nodes

11.5 Maintenance Techniques and Tools ♦Configuration management –Configuration control board –Change control ♦Impact analysis ♦Automated maintenance tools

11.5 Maintenance Techniques and Tools Software Maintenance Activities ♦Graph illustrates the activities performed when a change is requested

11.5 Maintenance Techniques and Tools Horizontal Traceability ♦The graphical relationships and traceability links among related workproducts

11.5 Maintenance Techniques and Tools Automated Maintenance Tools ♦Text editors ♦File comparators ♦Compilers and linkers ♦Debugging tools ♦Cross-reference generators ♦Static code analyzers ♦Configuration management repositories

11.6 Software Rejuvenation 再生 ♦Redocumentation: static analysis adds more information ♦Restructuring: transform to improve code structure ♦Reverse engineering: recreate design and specification information from the code ♦Reengineering: reverse engineer and then make changes to specification and design to complete the logical model; then generate new system from revised specification and design

11.6 Software Rejuvenation ♦Graph illustrates the relationship among the four types of rejuvenation

What this Chapter Means for You ♦The more a system is linked to the real world, the more likely it will change and the more difficult it will be to maintain ♦Maintainers have many jobs in addition to software developers ♦Measuring maintainability is difficult ♦Impact analysis builds and tracks links among the requirements, design, code, and test cases ♦Software rejuvenation involves redocumenting, restructuring, reverse engineering, and reengineering

谢谢大家! References 软件工程 - 理论与实践(第四版 影印版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee, 高等教育出版社 软件工程 - 理论与实践(第四版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee, 杨卫 东译, 人民邮电出版社 软件工程 — 实践者的研究方法( Software Engineering-A Practitioner’s Approach ) ; ( 美 ) Roger S. Pressman 著; 机械工业出版社 ISBN :