1 / 14

Chapter 11

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.

Download Presentation

Chapter 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 11 11 Maintaining the System

  2. 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.

  3. 11.1 THE CHANGING SYSTEM • Types of Systems S-systems. Some systems are formally(形式上,正式地) defined 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.

  4. 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(规定的) constraints(约束条件)? • 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 replacing it with cheaper, newer hardware?

  5. 11.1 THE CHANGING SYSTEM • Laws of Software Evolution Build or Integration Plan. 1. Continuing change(连续的改变,变化). A program that is used undergoes 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(复杂性)).

  6. 11.2 THE NATURE OF MAINTENANCE • Maintenance Activities and Roles 1. maintaining control over the system's day-to-day(每日的,逐日的,日常的) functions 2. maintaining control over system modifications(修改,改进) 3. perfecting(完成,改善) existing acceptable(可接受的) functions 4. preventing(预防) system performance(性能,能力) from degrading(冲深,退变) to unacceptable(不能接受的) levels

  7. 11.2 THE NATURE OF MAINTENANCE • Corrective(改正,纠正,校正) Maintenance(改正性维护). • Adaptive(适应的) Maintenance(适应性维护). • Perfective Maintenance(改善性维护,完善性维护). • Preventive Maintenance(预防性维护). • Who Performs(执行,完成) Maintenance • Team Responsibilities(责任,职责) • Use of Maintenance Time

  8. 11.2 THE NATURE OF MAINTENANCE Team Responsibilities • 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

  9. 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.

  10. 11.3 MAINTENANCE PROBLEMS • ◆Belady and Lehman capture these effects in an equation: • M = p + Kc-d • M 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 empiricalconstant(经验常数) • Size = ASLOC(AA + SU + 0.4DM + 0.3CM + 0.3IM)/100

  11. 11.4 MEASURING MAINTENANCE CHARACTERISTICS • External View(外形图) of Maintainability(可维护性) • Internal Attributes(内部属性) Affecting Maintainability • Other Product Measures

  12. 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(配置管理程序库).

  13. 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(交叉引用, 相互参照;互见条目)

  14. 11.6 SOFWARE REJUVENATION(再生,更新) • Restructuring • Reverse Engineering • Reengineering • The Future of Rejuvenation

More Related