chapter 11

14
2007/2008 Software Engineering Chapter 11 11 Maintaining the System

Upload: ethan-garner

Post on 30-Dec-2015

44 views

Category:

Documents


4 download

DESCRIPTION

Chapter 11. 11 Maintaining the System. Learning objectives. Learning Objectives: After studying this chapter, you should be able to:  Define what is meant by system evolution( 系统演变 ), and understand how it affects the software development process. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 11

2007/2008 Software Engineering

Chapter 11

11 Maintaining the System

Page 2: Chapter 11

Learning objectives

Learning Objectives:After studying this chapter, you should be able to: Define what is meant by system evolution

( 系统演变 ), and understand how it affects the software development process.

Define what is meant by a legacy( 遗产 , 传统 ) system, and understand how its characteristics affect maintenance.

Define impact analysis( 影响分析 , 后果分析 ), and understand when, how, and why it is done.

Describe software rejuvenation( 复原 , 再生 ,更新 , 返老还童 ), and why it is necessary.

Page 3: Chapter 11

11.1 THE CHANGING SYSTEM Types of Systems S-systems. Some systems are formally( 形式上 , 正式地 ) def

ined by and are derivable( 可导出的 , 可推论出来的 ) from a specification( 说明 , 规格 ). In these systems, a specific problem is stated( 确定的 , 固定的 ) in terms of the entire set of circumstances( 情形 ) to which it applies

P-systems. To develop this solution, we describe the problem in an abstract way and then write the system's requirements specification from our abstract view. A system developed in this way is called a P-system

E-systems. An E-system is one that is embedded( 嵌入 , 安置 ) in the real world and changes as the world does. The solution is based on a model of the abstract processes involved. Thus, the system is an integral part of the world it models.

Page 4: Chapter 11

11.1 THE CHANGING SYSTEM Changes during the System Life Cycle

The System Life Span( 生命的源泉 , 寿命 ) System Evolution( 系统演变 ) versus System Decline( 系统衰退;

衰落 ) • Is the cost of maintenance too high?• Is the system reliability unacceptable( 不能接受 )?• Can the system no longer adapt( 适应 , 修改 ) to further( 更多的 ,

更远的 , 再 ) change, and within a reasonable amount of time?• Is system performance still beyond( 超过 ) prescribed( 规定的 ) co

nstraints( 约束条件 )?• Are system functions of limited usefulness?• Can other systems do the same job better, faster, or cheaper?• Is the cost of maintaining the hardware great enough to justify re

placing it with cheaper, newer hardware?

Page 5: Chapter 11

11.1 THE CHANGING SYSTEM Laws of Software Evolution Build or Integration Plan. 1. Continuing change( 连续的改变,变化 ). A program that is used under

goes continual change or becomes progressively less useful. The change or decay process continues until it is more cost-effective to replace the system with a re-created version.

2. Increasing complexity( 日益增加的复杂性 ). As an evolving program is continually changed, its structure deteriorates. Reflecting this, its complexity increases unless work is done to maintain or reduce it.

3. Fundamental law( 基本定律 ) of program evolution( 程序演变 ). Program evolution is subject to a dynamic that makes the programming process, and hence measures of global project and system attributes, self regulating with statistically-determinable trends and invariances.

4. Conservation( 保存 , 保持 , 守恒 ) of organizational stability( 稳定性 ) (invariant( 不变的;固定的 ) work rate). During the active life of a program, the global activity rate in a programming project is statistically invariant.

5. Conservation of familiarity( 熟悉 , 精通 ) (Perceived( 感到 , 认识到 ) complexity( 复杂性 )).

Page 6: Chapter 11

11.2 THE NATURE OF MAINTENANCE

Maintenance Activities and Roles 1. maintaining control over the system's day-to-day

( 每日的 , 逐日的 , 日常的 ) functions2. maintaining control over system modifications( 修

改 , 改进 )3. perfecting( 完成 , 改善 ) existing acceptable( 可接受

的 ) functions4. preventing( 预防 ) system performance( 性能 , 能

力 ) from degrading( 冲深 , 退变 ) to unacceptable( 不能接受的 ) levels

Page 7: Chapter 11

11.2 THE NATURE OF MAINTENANCE

Corrective( 改正 , 纠正 , 校正 ) Maintenance( 改正性维护 ).

Adaptive( 适应的 ) Maintenance( 适应性维护 ). Perfective Maintenance( 改善性维护,完善性维

护 ). Preventive Maintenance( 预防性维护 ). Who Performs( 执行 , 完成 ) Maintenance Team Responsibilities( 责任 , 职责 ) Use of Maintenance Time

Page 8: Chapter 11

11.2 THE NATURE OF MAINTENANCE

1. understanding the system 2. locating information in system documentation 3. keeping system documentation up to date( 最近的, 最新的) 4. extending(伸长) existing functions to accommodate( 供应,供给,适应) new or changing requirements 5. adding new functions to the system 6. finding the source of system failures or problems 7. locating and correcting(校正) faults 8. answering questions about the way the system works 9. restructuring(重构,重新组织,调整) design and code components 10. rewriting design and code components 11. deleting design and code components that are no longer useful 12. managing changes to the system as they are made

Team Responsibilities

Page 9: Chapter 11

11.3 MAINTENANCE PROBLEMS

Staff Problems Limited Understanding Management( 管理 ) Priorities( 优先级 ) Morale( 士气 ) Technical Problems

Artifacts( 人为因素 ) and Paradigms( 范例 ) Testing Difficulties.

The Need to Compromise( 折衷 , 妥协 , 损害 ) Maintenance Cost Modeling Maintenance Effort.

Page 10: Chapter 11

11.3 MAINTENANCE PROBLEMS

◆Belady and Lehman capture these effects in an equation:

M = p + Kc-dM is the total maintenance effort expended for a system, and p represents wholly productive efforts: analysis, evaluation, design, coding, and testing. c is complexity caused by the lack of structured design and documentation; it is reduced by d, the degree to which the maintenance team is familiar with the software. Finally K is a constant determined by comparing this model with the effort relationships on actual projects; it is called an empirical constant( 经验常数 )

Size = ASLOC(AA + SU + 0.4DM + 0.3CM + 0.3IM)/100

Page 11: Chapter 11

11.4 MEASURING MAINTENANCE

CHARACTERISTICS

External View( 外形图 ) of Maintainability( 可维护性 ) Internal Attributes( 内部属性 ) Affecting Maintainability Other Product Measures

Page 12: Chapter 11

11.5 MAINTENANCE TECHNIQUES AND TOOLS

Configuration( 配置 ) Management Configuration Control Board( 控制盘 , 操纵台 ) Change Control Impact Analysis( 影响分析 , 后果分析 ) Automated Maintenance Tools Text Editors File Comparators( 比较器 ) Compilers and Linkers Debugging Tools Cross-reference Generators( 交叉对照生成程序 ) Static Code Analyzers Configuration Management Repositories( 配置管理程序库 ).

Page 13: Chapter 11

11.6 SOFWARE REJUVENATION( 再生 , 更新 )

Software rejuvenation redocumentation( 文件再编制 ) . restructuring( 重构 ) . reverse engineering( 逆向工程 ) . reengineering( 再工程 , 重建 , 再设计 ) Redocumentation component calling relationships class hierarchies( 层次 ) data-interface tables data-dictionary information data flow tables or diagrams control flow tables or diagrams pseudocode( 伪代码 ) test paths component and variable cross-references( 交叉引用 , 相互参

照;互见条目 )

Page 14: Chapter 11

11.6 SOFWARE REJUVENATION( 再生 , 更新 )

Restructuring Reverse Engineering Reengineering The Future of Rejuvenation