登陆注册
3765300000036

第36章 Software Engineering(6)

Analysis activities during software maintenance involve understanding the scope and effect of a desired change, as well as the constraints on making the change. Design during maintenance involves redesigning the product to incorporate the desired changes. The changes must then be implemented, internal documentation of the code must be updated, and new test cases must be designed to assess the adequacy of the modification. Also, the supporting documents (requirements, design specifications, test plan, principles of operation, user’s manual, cross reference directories, etc.) must be updated to reflect the changes. Updated versions of the software (code and supporting documents) must then be distributed to various customer sites, and configuration control records for each site must be updated.

All of these tasks must be accomplished using a systematic, orderly approach to tracking and analysis of change requests, and careful redesign, reimplementation, revalidation, and documentation of the changes. Otherwise, the software product will quickly degrade as a result of the maintenance process. It is not unusual for a well designed, properly implemented, and adequately documented initial version of a software product to become un-maintainable due to inadequate maintenance procedures. This can result in situations in which it becomes easier and less expensive to implement a module or subsystem than to modify the existing version. Software maintenance activities must not destroy the maintainability of software. A small change in the source code often requires extensive changes to the test suite and the supporting documents. Failure to recognize the true cost of a “small change” in the source code is one of the most significant problems in software maintenance.

【Vocabulary】

enhancement

n. 增进,增加

revalidation

n. 重新生效,重具法律效力

adaptation

n. 适应,改编,改写

telecommunication

n. 电信,无线电通信

documentation

n. 文件

maintainable

adj. 可维持的,主张的

implement

vt. 贯彻,实现,执行

scheduled

adj. 预定的

periodic

n. 定期的,周期的

evolution

n. 进展,发展,演变,演化

primary

adj. 主要的,初步的,初级的

modularity

n. 模块性

rein

n. 统治,支配,驾驭

microcosm

n. 微观世界

potentially

adv. 潜在地

redesign

v. 重新设计

configuration

n. 构造,结构,外形

reimplementation

n. 执行

initial

adj. 最初的,初始的,词首的

rule of thumb

经验法则

life-cycle

生命周期

【参考译文】

软件维护

“软件维护”这个术语用来描述在软件产品交付给用户以后所进行的软件工程活动。软件生存周期维护阶段是指软件产品完成有效工作的时间段。典型的情形是:一个软件产品的开发周期持续1年或2年,但是它的维护阶段却要历时5到10年。

维护活动包含增强软件产品、调整软件产品以适应新的环境和纠正软件中的问题。软件产品增强可以包含:提供新的功能,改进用户显示和交互模式,升级外部文档和内部文件说明,或是升级系统的性能指标。软件对新环境的适应可以包括把软件移植到不同的机器,或者修改软件以适应于新的远程通信协议或添加的磁盘驱动器。问题的纠正包括修改和重新确认软件以纠正错误。有些错误需要立即采取措施,有些则可按照计划定期进行纠正,而另一些错误虽然已经测知但是却从未作纠正。

维护活动在整个生存周期的预算中占有很大的比例是公认的。它通常占软件生存周期费用的70%(而软件开发费用只占30%)。按一般经验法则,软件维护预算分配比例为:用于功能增强的占60%,适应新环境和纠错各占20%。

如果维护要花费某一个软件产品整个生存周期的70%,而维护费用的60%用于此产品的功能增强,那么产品功能增强要占产品整个生存周期的42%。很明显,据此观点产品在开发周期结束时交给用户的仅仅是系统的最初版本。有一些作者已经建议比较合适的软件生存周期模型应该是开发→进化→进化→进化……

据此观点可见,软件开发的主要目标是生产可维护的软件系统产品。像所有高层质量属性一样,可维护性可用包含在产品内部的属性来表达。影响软件可维护性的主要产品属性有清晰度、模块性、良好的内部源代码文档说明以及适当的支持文档。

软件维护是软件开发周期的缩影。软件的功能增强和适应使开发重新回到分析阶段,而软件纠错可使开发周期回到分析阶段、设计阶段或实现阶段。因此,所有用于开发软件的工具和技术对于软件维护都具有潜在的用途。

软件维护的分析活动包括理解所希望做的更改的范围和影响,以及对所做的更改的限制条件。维护阶段的设计包括根据想做的更改来重新设计产品,然后必须实现更改,代码的内部文档说明必须更新,必须设计新的测试案例来评估修改的恰当性。还必须更新支持文档(需求、设计规格说明、测试计划、操作原理、用户手册、交叉参考目录等)来反映所做的修改。更新后的软件版本(代码和支持文档)必须分发到各个用户站点,各站点的配置控制记录必须更新。

所有这些任务都必须通过系统的,有条理的方法去跟踪和分析更改要求,仔细地重新设计、重新实现、重新确认和重新对所作更改编制文档来完成。否则,软件产品将因为维护过程而很快降级。常常有设计良好、实现合理和有合适文档的初版产品因为不恰当的维护过程而变得不可维护,这会导致重新实现一个模块或子系统比修改已经存在的版本更容易和花费更少。软件维护活动一定不要损坏软件的可维护性。源代码中的一个细微更改往往需要测试套件和支撑文档做大规模的变动。因为忽视源代码中所谓“小的变动”而付出代价是软件维护中最重大的问题之一。

【Reading Material】

Manage Requirements

What is Requirements Management?

Requirements management is a systematic approach to finding, documenting, organizing and tracking the changing requirements of a system.

We define a requirement as:

A condition or capability to which the system must conform. Our formal definition of requirements management is that it is a systematic approach to eliciting, organizing, and documenting the requirements of the system, and establishing and maintaining agreement between the customer and the project team on the changing requirements of the system.

Keys to effective requirements management include maintaining a clear statement of the requirements, along with applicable attributes and traceability to other requirements and other project artifacts.

In real projects, you will run into difficulties because:

Requirements are not always obvious, and can come from many sources.

Requirements are not always easy to express clearly in words.r

There are many different types of requirements at different levels of detail.

The number of requirements can become unmanageable if not controlled.

Requirements are related to one another and also to other deliverables ofthe software engineering process.l

Requirements have unique properties or property values.

Requirements change.

So, we have learned that the following skills are important to master:

Problem analysis

同类推荐
  • Hollow Mountain (Part One) 空山(第一部)

    Hollow Mountain (Part One) 空山(第一部)

    《空山》描写了上个世纪50年代末期到90年代初,发生在一个叫机村的藏族村庄里的6个故事,主要人物有近三十个。《空山》由《随风飘散》和《天火》两部分组成,《随风飘散》写了私生子格拉与有些痴呆的母亲相依为命,受尽屈辱,最后含冤而死。《天火》写了在一场森林大火中,巫师多吉看到文革中周围世界发生的种种变化。
  • 春天在心里歌唱(英文爱藏双语系列)

    春天在心里歌唱(英文爱藏双语系列)

    《春天在心里歌唱》精选了四十多篇世界上最具代表性的散文,所选篇目皆出自于名家,语言优美,意义深邃,堪称人类文明的共同财富。同时本书的内容广泛,包罗自然、社会、人生等方方面面。
  • 1368个单词就够了

    1368个单词就够了

    《1368个单词就够了》这本书是作者王乐平先生历时4年研发,在教学过程中更好的实现了本书思想的实际指导作用。这本书的基础在于:中国人背了多年的单词,学语法,练习听力和口语,参加了多种类型的考试,但由于缺乏语言环境,很多人在真正使用英语的时候,还是出现表达障碍。这个时候,很多人的反应就是背更多的单词!但,这些年你背的那些单词都用上了吗?中国人英语学习的困境在于缺乏英语思维!运用英语思维,1368个单词就够你表达所有你想要表达的内容!这本书里,王乐平老师根据实践教学和经验,逐步的讲解了在1368个单词的拓展,如何运用英语思维,实现无障碍的表达。让你的英语,张口就来!
  • 那些光影飞华的魅惑(每天读一点英文)

    那些光影飞华的魅惑(每天读一点英文)

    《那些光影飞华的魅惑》由我的美丽日记、我的健康我做主、时尚达人、勇闯天涯、摩登时代等篇目组成,让你在体味时尚、逐赶潮流中,不知不觉提升英语能力。
  • 商务英语会议900句典

    商务英语会议900句典

    本书共分为主席的职责、与会者的表现、会议中的商机及商务会议知识介绍四个部分。每一章的背景知识以中英文对照的方式让读者对各部分的会议流程有清晰的理解。文中提供大量的典型范例,快速提高读者对会议用语、常见问题的熟悉程度。同时配以即学即用,让读者感觉身临其境。
热门推荐
  • 夜泊东溪有怀

    夜泊东溪有怀

    本书为公版书,为不受著作权法限制的作家、艺术家及其它人士发布的作品,供广大读者阅读交流。汇聚授权电子版权。
  • 天才世子妃太猖狂

    天才世子妃太猖狂

    此作品是作者费尽心血写的!请广大读者多多在意用心
  • 追妻无门:女boss不好惹

    追妻无门:女boss不好惹

    青涩蜕变,如今她是能独当一面的女boss,爱了冷泽聿七年,也同样花了七年时间去忘记他。以为是陌路,他突然向他表白,扬言要娶她,她只当他是脑子抽风,他的殷勤她也全都无视。他帮她查她父母的死因,赶走身边情敌,解释当初拒绝她的告别,和故意对她冷漠都是无奈之举。突然爆出她父母的死居然和冷家有丝毫联系,还莫名跳出个公爵未婚夫,扬言要与她履行婚约。峰回路转,破镜还能重圆吗? PS:我又开新文了,每逢假期必书荒,新文《有你的世界遇到爱》,喜欢我的文的朋友可以来看看,这是重生类现言,对这个题材感兴趣的一定要收藏起来。
  • 魔梨泪

    魔梨泪

    容捷国公主容梨裳因中毒而陷入深度昏迷之中,昏睡之时,前世种种如梦魇一般纠缠着她,她在梦中见到无数的人和事。容梨裳行将崩溃之时,魂魄来到了一个叫做鬼谷的地方学习了高深的灵术,学成之日,却意外落入冰火魔域,见到了自己万年前的随身魔器黑暗魔戒,得知了自己魔王的身份。在准备进一步交流时,容梨裳被太子哥哥救醒,醒来后纠结于前世的她到底是选择化身魔王复仇时间,还是选择平平淡淡做个凡人,和心爱的人过完一生,这是一个艰难的抉择。
  • 追妻无门:女boss不好惹

    追妻无门:女boss不好惹

    青涩蜕变,如今她是能独当一面的女boss,爱了冷泽聿七年,也同样花了七年时间去忘记他。以为是陌路,他突然向他表白,扬言要娶她,她只当他是脑子抽风,他的殷勤她也全都无视。他帮她查她父母的死因,赶走身边情敌,解释当初拒绝她的告别,和故意对她冷漠都是无奈之举。突然爆出她父母的死居然和冷家有丝毫联系,还莫名跳出个公爵未婚夫,扬言要与她履行婚约。峰回路转,破镜还能重圆吗? PS:我又开新文了,每逢假期必书荒,新文《有你的世界遇到爱》,喜欢我的文的朋友可以来看看,这是重生类现言,对这个题材感兴趣的一定要收藏起来。
  • 狐妖有点飘

    狐妖有点飘

    少林寺毕业的白小糖业余爱好就是吊打自己的死对头祁尘,可能老天同情祁尘的遭遇,一经穿越白小糖竟然生活在祁尘统治的妖族,新仇旧恨一起算......(已完本)
  • 风月再无关

    风月再无关

    他和她的邂逅不是邂逅,是重逢,但经历的太多,另一个他的出现从始到终,她会如何抉择,又藏着什么阴谋……
  • 鬼帝绝宠:皇叔你行不行

    鬼帝绝宠:皇叔你行不行

    前世她活的憋屈,做了一辈子的小白鼠,重活一世,有仇报仇!有怨报怨!弃之不肖!她是前世至尊,素手墨笔轻轻一挥,翻手为云覆手为雨,天下万物皆在手中画。纳尼?负心汉爱上她,要再求娶?当她什么?昨日弃我,他日在回,我亦不肖!花痴废物?经脉尽断武功全无?却不知她一只画笔便虐你成渣……王府下人表示王妃很闹腾,“王爷王妃进宫偷墨宝,打伤了贵妃娘娘…”“王爷王妃看重了,学仁堂的墨宝当场抢了起来,打伤了太子……”“爱妃若想抢随她去,旁边递刀可别打伤了手……”“……”夫妻搭档,她杀人他挖坑,她抢物他递刀,她打太子他后面撑腰……双重性格男主萌萌哒
  • 家政工

    家政工

    牵藤的一天,最早是在城中村的亲嘴里醒过来的。窗户外投进来一点晨曦,窗台上晾晒着衣衫,在晨风里吹拂着,在瓷地板上投射出摇曳的花影。牵藤睡在双层床的下铺,铺着艳艳的牡丹花凤凰的棉布床单,布枕头里塞满菊花,旧到褴褛的蓝花薄被单,这一套被褥,都是从家带出来的,用了这么些年。躺下来挨上旧棉布,就扑入了睡梦里。起床时亦备觉踏实,格外依恋。因为再见到这套床褥,就是夜了。里的人早起来了,都是急急忙忙的,洗漱的,在厨房里热早饭。牵藤快手快脚地去浴室接了一盆水,洗漱过,从枕头底下摸出一把梳子,飞快地梳好头发,擦点面霜,整整床褥,便扬声出门去。
  • 城市有狼

    城市有狼

    窗外传来狼嗥声咦!大天白日的,哪来的狼叫声?老伴自言自语地嘟囔着。书里的情节黏着我的注意力,既无法分身,也无法分心。老伴经常是这样的,一边干着活,一边不停地嘟嘟囔囔的,像是在自言自语。其实呢,我老伴有个被野狼吓着的病根,几乎到了精神崩溃的边缘,所以,我也不敢掉以轻心。我正陷在一大本厚书里,陷在那书里描写的深雪窝里,正气憋胸闷地在消受姜戎的《狼图腾》。我不禁感慨,狼!嘿!好精灵的尤物啊!哎!老湃,哎老湃,哎——老——湃!你真的聋了吗?老伴的一声吼,总算将我从书中唤回,看着她手中明晃晃的菜刀,也不知是为了啥,我不免有些莫名地慌乱。