




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Maintaining the System系统的维护SOFTWARE ENGINEERING 11.1 The changing system 变化的系统Software system are evolutionary.A customer makes a decision to do something a different way.The nature of the system itself changes. Types of Systems, in terms of the way it is related to the environment in which it opera
2、tesS-systemsP-systemsE-systems软件系统是演化的顾客以不同的方式做某件事系统自身的属性发生了改变系统类型,用系统和系统运行的环境来描述S-systemsFormally defined, derivable from a specificationStatic system, no change requiredExamples: mathematical operations形式化定义、源自说明描述静态系统,无改变需要P-systemsThe system is based on a practical abstraction of the problem rat
3、her then on a completely defined specificationAbstraction and solution may changeExamples: pattern recognition systems系统基于问题的一个可行的抽象,而不是一个完全定义好的说明抽象与解决方案可能变化模式识别系统E-systemsEmbedded in the real world and changes as the world doesThe problem cannot be specified completelyThe success depends on the cus
4、tomer evaluationExamples: banking systems, ERP systems嵌入真实世界中并随着真实世界的改变而改变问题不能被完全说明成功取决于客户评价Changes during the system life cycle在系统生命周期中的变化A change at any stage of development can also affect the results of previous as well as subsequent stages.在开发中任意环节的改变,都可能影响前面的结果和后面的环节。 软件开发中变动的例子Table 11.1. Exa
5、mples of change during software development.Activity from which initial change resultsArtifacts requiring consequent changeRequirements analysisRequirements specificationSystem designArchitectural design specificationTechnical design specificationProgram designProgram design specificationProgram imp
6、lementationProgram codeProgram documentationUnit testingTest plansTest scriptsSystem testingTest plansTest scriptsSystem deliveryUser documentationTraining aidsOperator documentationSystem guideProgrammer guideTraining classesThe system life span 系统生命期Development Time vs. Maintenance Time 开发时间与维护时间T
7、ypical development project takes between 1 and 2 years, but . requires an additional 5 to 6 years of maintenance time! 典型的开发项目耗时1-2年,但需要5-6年的维护时间。80-20 RuleTwenty percent of the effort is in development and eighty percent is in maintenance.工作量的20%是开发,而80%是维护。System evolution vs. decline 系统演化和系统衰退的比较
8、Is the cost of maintenance too highIs the system reliability unacceptableCan the system no longer adapt to further change, and within a reasonable amount of timeIs system performance still beyond prescribed constraintsAre system functions of limited usefulnessCan other systems do the same job better
9、, faster or cheaperIs the cost of maintaining the hardware great enough to justify replacing it with cheaper, newer hardware维护的成本太高吗?系统的可靠性可以接受吗?在一个合理的时间内,系统不能再适应进一步的变化了吗?系统性能仍旧超出预先规定的约束条件吗?系统功能的作用有限吗?其他的系统能更好、更快、更廉价地做同样的工作?维护硬件的成本高得足以用更便宜、更新的硬件来取代吗?Laws of software evolution 软件演化法则Continuing change
10、(连续的变化):程序持续地被改动,或者变得越来越无用。变动或衰退过程一直持续着,直到用一个重新创建的版本来代替原系统更划算为止。Increasing complexity(递增的复杂性):当一个演化的程序被持续改动时,它的结构恶化了。因此它的复杂性增加,除非进行一些维护或减少它。Fundamental law of program evolution (程序演化的基本法则):程序演化服从于一种动力,这种动力产生了编程过程,从而产生了全局项目和系统属性的度量,它自身由某种统计确定的趋势和恒定性来调节。Conservation of organizational stability (组织稳定性的
11、守恒):在一个程序的活动周期中,编程项目的总体活动统计上是不变的。Conservation of familiarity(熟悉程度的守恒 ):在一个程序的活动周期中,因程序演化连续发布版本的发布内容(改动、增加、删减)统计上是不变的。11.2 the nature maintenance 维护的本质Corrective( ): maintaining control over day-to-day functionsAdaptive( ): maintaining control over system modificationsPerfective( ): perfecting existi
12、ng functionsPreventive( ): preventing system performance from degrading to unacceptable levels 防止系统性能下降到不可接受改正性维护维持控制日常功能适应性维护维持控制系统修改完善性维护完善现有的功能预防性维护Who performs maintenance 由谁进行维护Often, a separate group of analysts, programmers, and designers is designated as the maintenance team.通常,人们会指派一个单独的维护小
13、组,这个小组包括分析员、程序员和设计人员。Maintenance team responsibilities 维护小组的职责understanding the systemlocating information in system documentationkeeping system documentation up-to-dateextending existing functions to accommodate new or changing requirementsadding new functions to the systemfinding the source of sys
14、tem failures or problemslocating and correcting faultsanswering questions about the way the system worksrestructuring design and code componentsrewriting design and code componentsdeleting design and code components that are no longer usefulmanaging changes to the system as they are made理解系统定位系统文档中的
15、信息保持系统文档更新扩展现有功能以容纳新的或变动的需求给系统增加新的功能找出系统故障或问题的根源定位和纠正故障回答有关系统运行方式的问题重构设计和代码组件重新编写设计和代码组件删除不再有用的设计和代码组件进行系统改动Use of maintenance time维护时间的分配Perfective完善性维护: 50%Adaptive适应性维护: 25%Corrective改正性维护: 21%Preventive预防性维护: 4%11.3 Maintenance problems 与维护有关的问题Staff problemsLimited understandingManagement prior
16、itiesMoraleTechnical problemsArtifacts and paradigmsTesting difficulties人员问题理解的局限性管理的优先级士气技术问题工件和范例测试困难Factors affecting maintenance effort 影响维护成果的因素Application typeSystem noveltyTurnover and maintenance staff abilitySystem life spanDependence on a changing environmentHardware characteristicsDesign
17、qualityCode qualityDocumentation qualityTesting quality应用类型系统新奇度人员翻新和维护人员能力系统生命期对变化的环境的依赖硬件特性设计质量代码质量文档质量测试质量Modelig maintenance effortd 对维护工作量建模Belady and Lehman公式 M = p + K c - d其中:M是一个系统花费的所有维护工作量 p表示分析、评价、设计、编码以及测试的总工作量 K是个常量,通过与实际工作量比较而定 c是由于缺乏结构化和文档引起的复杂度 d表示维护小组对软件的熟悉程度,d削弱了cCOCOMO II计算维护工作量公
18、式Size=ASLOC(AA+SU+0.4DM+0.3CM+0.3IM)/100ASLOC:要改动的代码行数AA:评估和修改评分SU:加权因子项CM: 要修改的代码的百分比DM:要修改的设计的百分比IM:要集成的外部代码的百分比 COCOMO II软件理解的评分Table 11.2. COCOMO II rating for software understanding.Very lowLowNominalHighVery highStructure结构Very lowcohesion, highcoupling,spaghetti codeModerately lowcohesion, hi
19、ghcouplingReasonablywell-structured;some weakareasHigh cohesion,low couplingStrongmodularity,information-hiding in dataand controlstructuresApplicationClarity应用程序清晰度No matchbetweenprogram andapplicationworld viewsSomecorrelationbetweenprogram andapplicationModeratecorrelationbetweenprogram andapplic
20、ationGoodcorrelationbetweenprogram andapplicationClear matchbetweenprogram andapplicationworld viewsSelf-Descriptiveness自描述Obscure code;documentationmissing,obscure orobsoleteSome codecommentaryand headers;some usefuldocumentationModerate levelof codecommentary,headers,documentationGood codecommenta
21、ryand headers;usefuldocumentation;some weakareasSelf-descriptivecode;documentationup-to-date,well-organized,with designrationale SU增值SU increment5040302010 COCOMO II 评估和修改的评分Table 11.3. COCOMO II ratings for assessment and assimilation effort.Assessment and assimilation incrementLevel of assessment
22、and assimilation effort0None2Basic component search and documentation4Some component test and evaluationdocumentation6Considerable component test and evaluationdocumentation8Extensive component test and evaluationdocumentation11.4 Measuring maintenance characteristics 度量维护特性External view of maintain
23、ability 可维护性的外部属性Internal attributes affecting maintainability 影响可维护性的内部属性External view of maintainability 可维护性的外部属性Necessary datatime at which problem is reportedtime lost due to administrative delaytime required to analyze problemtime required to specify which changes are to be madetime needed to
24、make the changetime needed to test the changetime needed to document the change(用平均修复时间度量所)必须的数据问题报告的时间由于行政管理延迟浪费的时间分析问题需要的时间确定进行哪种改动需要的时间进行改动需要的时间测试变动需要的时间记录变动需要的时间External view of maintainability 可维护性的外部属性Desirable data:ratio of total change implementation time to total number of changes implement
25、ednumber of unresolved problemstime spent on unresolved problemspercentage of changes that introduce new faultsnumber of components modified to implement a change可能有用的数据实现改动的总时间与实现的改动的总数目之比未解决问题的数目花在未解决问题上的时间引入新故障的改动的百分比为实现一个改动而修改的组件数Internal attributes affecting maintainability 影响可维护性的内部属性cyclomati
26、c number 环路数Scoreboard:drawscore(int n)while(numdigits- 0 scorenumdigits-erase();/ build new score in loop, each time update positionnumdigits = 0;/ if score is 0, just display “0”if (n = 0) delete scorenumdigits;scorenumdigits = new Displayable(di gits0);scorenumdigits-move(Point(700-numdigits*18),
27、40);scorenumdigits-draw();numdigits+;while (n) int rem = n % 10;delete scorenumdigits;scorenumdigits = new Displayable(digitsrem);scorenumdigits-move(Point(700-numdigits*18),40);scorenumdigits-draw();n /= 10;numdigits+;环路数代码中判定语句数1环路数计算的例子环路数划分平面数线性无关路径e n + 2Fog index可读性度量指标F = 0.4 单词数句子数 3个以上音节的词的
28、百分比11.5 Maintenance Techniques and Tools维护技术和工具Configuration ManagementConfiguration Control BoardChange ControlImpact AnalysisEvaluation of the many risks associated with the change, including estimates of effects on resources, effort and scheduleAutomated Maintenance Tools配置管理配置管理委员会 变动控制后果分析对与变动有
29、关的多项风险的评估,包括对资源、工作量和进度影响的评估自动维护工具Change control issues 变动控制Synchronization 同步:When was the change made?变动是何时进行的?Identification 标识 : Who made the change?由谁进行改动的?Naming 命名 : What components of the system were changed? 系统的那个组件被改动了?Authentication 鉴定 :Was the change made correctly? 改动正确地进行了吗?Authorizatio
30、n 授权 :Who authorized that the change be made?是谁批准进行的改动?Routing 发送 :Who was notified of the change?改动通知了那些人?Cancellation 取消 :Who can cancel the request for change?谁能取消变动的请求?Delegation委托 :Who is responsible for the change?谁对改动负责?Valuation 评价 :What is the priority of the change?改动的级别是什么?Impact analysis 后果分析Workproduct( ): any development artifact whose change is significantHorizontal traceability( ): relationships of components across collections of workproductsVertical traceability( ): relationships among pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国弯通护罩市场调查研究报告
- 2025年中国密胺口杯市场调查研究报告
- 2025年中国及时贴市场调查研究报告
- 图书销售居间合同协议
- 地下室土方开挖合同协议
- 英文出版合同协议
- 工程款定金合同协议
- it企业顾问合同协议
- 私人山场转让合同协议
- 智慧公交系统2025年智能充电桩布局与充电效率评估报告
- 新管理理论与管理方法
- (高清版)JTGT 5214-2022 在用公路桥梁现场检测技术规程
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 妇科腹腔镜手术术前宣教
- 农贸市场消防应急预案演练总结
- 2023年湖北宜昌高新区社区专职工作人员(网格员)招聘考试真题及答案
- 《患者疼痛管理》课件
- 基于AI人工智能的智慧园区融合感知平台建设方案
- JB T 7689-2012悬挂式电磁除铁器
- 课件-错账更正
- 现代汉语语料库词频表CorpusWordlist
评论
0/150
提交评论