软件工程第8章维护—总结_软件工程第8章维护
软件工程第8章维护—总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程第8章维护”。
第8章 维护
周四上午2#211的34节,下午在1#202的78节
在软件产品被开发出来并交付用户使用之后,就进入了软件的运行维护阶段。这个阶段是软件生命周期的最后一个阶段。
大型软件的维护成本高达开发成本的4倍左右。
8.1软件维护的定义
在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。四项活动:改正性维护,适应性维护,完善性维护(一半以上),预防性维护。
8.2软件维护的特点
8.2.1结构化维护与非结构化维护差别巨大
1.非结构化维护
2.结构化维护
8.2.2维护的代价高昂
维护工作量的一个模型:
M=P+K*exp(c-d)
M是维护用的总工作量,P是生产性工作量,K是经验系数,c是复杂程度(非结构化设计和缺少文档都会增加软件的复杂程度),d是维护人员对软件的熟悉程度。
8.2.3维护的问题很多
1.2.3.4.5.理解别人写的程序通常非常困难; 没有文档或文档资料显著不足; 不能指望开发人员详细说明软件; 设计时未考虑将来的修改; 维护不是一项吸引人的工作。
8.3软件维护过程
1.维护组织
未必建立正式的维护组织,但是非正式的委托责任是绝对必要的。
在维护活动开始之前就明确维护责任是十分必要的,可以大大减少维护过程中可能出现的混乱。
2.维护报告
即软件修改报告。
3.维护的事件流
4.保存维护记录
5.评价维护活动
8.4软件的可维护性
定义:维护人员理解、改正、改动或改进这个软件的难易程度。
8.4.1决定软件可维护性的因素
1.可理解性
定义:外来读者理解软件的结构、功能、接口和内部处理过程的难易程度。
2.可测试性
可以用程序复杂度来度量它的可测试性。
3.可修改性
耦合、内聚、信息隐藏、局部化、控制域与作用域的关系等,都影响软件的可修改性。
4.可移植性
定义:把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度。
5.可重用性
定义:同一事物不做修改或稍加改动就在不同环境中多次重复使用。
大量使用可重用的软件构件开发软件,可以提高软件的可维护性。
8.4.2文档
软件系统的文档可以分为以下2类:
1.用户文档:功能描述,安装文档,使用手册,参考手册,操作员指南等。
2.系统文档:系统设计、实现、测试等文档。
习题8
1.软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施来提高软件产品的可维护性?
2.假设自己的任务是对一个已有的软件做重大修改,而且只允许从下述文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量的注解)。
应选取哪两份文档?为什么这样选取?打算怎样完成交给自己的任务?
3.分析预测在下列系统交付使用以后,用户可能提出哪些改进或扩充功能的要求。如果由自己来开发这些系统,在设计和实现时将采取哪些措施,以方便将来的修改?
(1)储蓄系统
为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
(2)机票预订系统
为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。
(3)患者监护系统
目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统。
医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。