登陆注册
23770800000036

第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 ****** 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

同类推荐
  • 我的最后一本日语单词书:看这本真的够了

    我的最后一本日语单词书:看这本真的够了

    这本包含几千词汇的单词书,不仅按照日语五十音图顺序排列,且每个单词都会附上相应音调和例句,保证你学一个会一个记住一个。
  • 英语学习成功之路

    英语学习成功之路

    本书主要在英语学习的目的课时、教材形式的选择和英美英语的区别上展开讨论;从语音、词汇、语法和翻译几方面,具体讲述英语学习方法,从而提学习效率,达到事半功倍的英语学习效果。
  • 我的世界很小,但是刚刚好

    我的世界很小,但是刚刚好

    爱情是最美好的情感,爱情里的故事万万千。执子之手,与子偕老是千古流传的佳句,也是世人追求的最平凡而又最浪漫的最终归宿,我们的很小,我们的世界很小,但是真的刚刚好。
  • 澳大利亚学生文学读本(第2册)

    澳大利亚学生文学读本(第2册)

    从最简单入门的英语句式、拼写与发音开始,并且附有大量插图,通过趣味而有教育意义的故事,引发孩子们学习语言的兴趣;并向规范、美丽的文学作品过渡,让孩子们掌握语言的艺术,感受本国的人文历史。是中国学生学习英语、全面了解西方社会的很好途径。
  • 快乐王子·石榴之家

    快乐王子·石榴之家

    本套丛书共56册,精选广大中小学生喜闻乐见的古今中外的著名故事编纂而成,分为56个主题,每册故事围绕一个主题选取经典故事,启迪和教育读者,适合青少年阅读和收藏。本册以“成长”为主题。
热门推荐
  • 三分钟男人

    三分钟男人

    都市生活中,随着生活的压迫,做什么事都毛毛躁躁,什么也做不好......
  • 心图腾

    心图腾

    仅以此书送给曾经迷途职场的心!兽人长相的一个80后,八岁起便开始接受另类的非常规教育。二十四岁的他,怀揣自己的小宇宙进入职场,怎知却被无情的卷入一场权谋较量之中,这是一场利益与利益的冲突,也是一场真情与真情的碰撞,更是一场民族大义与个人风节的考验。他该如何自处?他的命运又会受谁主宰?……全书从一个人力资源从业者的角度出发,全面揭示了不同的“职场心”在中国民营企业发展历程中的蜕变与成长。《心道》是一部具有很强写实感的职场小说,在这里你可以找到你那颗久违的心,你的心图腾也必将会出现……
  • 最后一个死人

    最后一个死人

    杀人很简单,想知道谁杀人,很难。这是未央最著名的一句话,也是整个湘城最广为人知的一句话。“他”杀人的目的很简单,只想寻求内心中迷茫的答案。这是一个雨夜,夜幕降临,他戴上手里的鬼脸面具,推门而出。这不是两个人的战争,却只有他们两人被湘城的民众所铭记,我在讲述一个故事,一个默默无闻又惊心动魄的故事。
  • 机关古阵

    机关古阵

    大三的我擅自来到云南和别人做贩茶生意,结果被人绑架至抚仙湖,并且差点葬身在古老的机关古阵中,最后发现了抚仙湖的秘密竟然是……
  • 雉奴

    雉奴

    没有父母的她,不相信爱情的她,一生只信朋友的她
  • 东方钞票恋再帐

    东方钞票恋再帐

    不好意思。可否,听我说一个故事呢?我会尽量简短地说,这个故事并不长,也并不复杂,而且也即将和你有关——所以,为了能够让那天到来的时候,不必过于唐突和仓促,也不会过多地剥夺你的日常生活,能够听我说吗?我想再多留下一些力量,即使我不知道这样做是对是错,但我的时间不多了。那是另一个世界,不,那是我的世界,名为幻想乡的土地上即将发生的事情。
  • 相遇:错误的抉择

    相遇:错误的抉择

    茫茫人海中两人从相遇,相识,相知,或是相亲相爱,这就是缘分,缘分无需等待,缘分是人争取的,是人创造的,只有懂得努力创造缘分的人,才是最理智的,可是又有多少人,能在缘分来的时候,抓得住它,珍惜它呢!生活中的事情,往往十有八九不能够如意,很多时候,你喜欢着某个人,可是由于种种原因,你们无法最终走在一起,这些人,他们或是你人生路上的一处美丽的风景,或者是你人生路上的朋友,能够和你一起走完这段路的,才是你人生中的伴侣,也许你们生来并不在一处,你们起先并不相识。
  • 弃爱:boss请你放手

    弃爱:boss请你放手

    这场婚姻持续了两年零七天,却让她疼的忘了呼吸。他说:“就算你怀了别人的孩子跪在我面前,我也不会答应,你逃不掉我的名分,一辈子都别想!”小三的挑衅、婆婆的刁难,都抵不过他满眼的寒意,刻薄的无情,明明是他寻了小三,却诋毁自己出轨,这样的男人,真真可恨!可是,一哭二闹三上吊,她就算哭肿了眼,划破了肌肤,血流成了河,他依旧孤傲地站在她的面前,拒不签字,亲手毁掉她想要的幸福。原来,婚姻不是你说要便给,你说走便丢的开的。恍若最绚丽的烟花,总有最精彩的光芒。谁的青春没有过伤疤,谁的回忆没有过痛苦,那些被埋藏的过往,时刻在叫嚣,时刻在怒吼。而最初的繁华,最后的落寞,若是一切逆转而来,记忆依旧嚣张,疼痛依旧……
  • 异世录黑之匙

    异世录黑之匙

    故事从一名穿越的少年在人事不省时被可爱的兽耳萌妹子捡了回去,并被天真萌妹子宣布成为她的所有物开始,一段波澜不壮阔却很有爱的故事徐徐展开……在这里有天真的兽耳娘、纯情的公主、暴力的女将军,一切YY元素应有尽有。*************喜欢兽耳的,公主控的,傲娇的请这里来******************
  • 三国仙宗

    三国仙宗

    仙,在古老传说中,他们不老不死,不伤不灭,掌控着洪荒宇宙轮回演化的终极奥秘。与天地同寿,与日月齐辉,强大而神秘。末法时代的林伟彦因为修炼发生意外,结果没想到,最后竟然意外来到了了两千年前的古代,且看他如何在这里追寻上古仙踪。巫族传承,殷商后裔,神兽遗骸,远古谜团……