登陆注册
17150700000031

第31章 Software Engineering(1)

5.1 Software Engineering

Software engineering is the application of tools?? methods?? and disciplines to produce and maintain an automated solution to a real-world problem. It requires the identification of a problem?? a computer to execute a software product?? and an environment ??composed of people?? equipment?? computers?? documentation?? and so forth?? in which the software product exists. Clearly?? without computer programs there would be no software product and no software engineering. But this is only a necessary condition; it is not sufficient.

A large-scale software project spans a considerable period of time. A number of distinct phases can be identified over this period of time. Together?? these make up what is known as the "software life cycle".

While the actual terminology may differ?? most authors identify five key phases in the software life cycle.

The first phase?? requirements definition?? refers to the period during which the requirements of the system desired?? that is?? its functional characteristics and operational details?? are specified. The input to this phase is the stated ??often rather loosely stated?? needs for the software. Typically?? a "requirements document" is the output of this phase?? a set of precisely stated properties or constraints that the final product must satisfy. This is not a design?? but rather precedes the design?? specifying what the system should do without specifying how it is to do it. The existence of a requirements document provides something against which a design ??the next phase in the life cycle?? can be validated. Sometimes a quickly developed prototype can be a useful vehicle for debugging requirements.

As with any of the phases?? it is important that errors not be allowed to move into subsequent phases. An error in requirements?? for example?? a misstated function?? leads to a faulty design and an implementation that does not do what is required. If this is allowed to proceed undetected?? say?? until the testing phase?? the cost of repairing this error ??including redesign and re-implementation?? can be substantial.

The second phase?? design?? is predominantly creative?? while some would argue that creativity is inherent and cannot be trained or improved?? it can certainly be enhanced by the use of good procedures and tools. The input to this phase is a ??debugged and validated?? requirements document?? the output is a design expressed in some appropriate form ??for example?? pseudo-code??. Validation of a design is important. Each requirement in the requirements document must have a corresponding design fragment to meet it. Formal verification?? while possible to a limited extent?? can be exceedingly difficult. More informal revolve the entire design team?? management?? and even the client.

The third phase?? implementation?? is the actual coding of the design developed in the second phase. The lure of this phase is strong?? and many a foolhardy programmer has been drawn to it before adequately laying the groundwork in the first two phases. As a result?? requirements are incompletely understood and the design is flawed. The implementation proceeds blindly?? and many problems arise as a result.

The fourth phase?? testing?? is concerned with demonstrating tile correctness of the implemented program. Inevitably some testing is performed as part of the previous two phases as well. Any experienced programmer mentally tests each line as it is produced and mentally simulates the execution of any module prior to any formal testing stage. Testing is never easy. Edsger Dijkstra has written that while testing effectively shows tile presence of errors?? it can never show their absence. A "successful" test run means only that no errors were uncovered with the particular circumstances tested; it says nothing about other circumstances. In theory?? the only way that testing can show that a program is correct as if all possible cases are tried ??known as an exhaustive test???? a situation technically impossible for even the simplest programs. Suppose?? for example?? that we have written a program to compute the average grade on an examination. An exhaustive test would require all possible combinations of marks and class sizes; it could take many years to complete the test.

The fifth phase is program maintenance phase. Student programmers?? unfortunately?? rarely become involved in this phase. Its importance in the real world?? however?? cannot be over emphasized?? since the cost of maintaining a widely used program can match or exceed the cost of developing it. Unlike hardware maintenance?? software maintenance deals not with repair of deteriorated components?? but with repair of design defects?? which may include the provision of added functions to meet new needs. The ability of programmers to produce new programs is clearly affected by the amount of time they spend maintaining old ones. The inevitability of maintenance must be recognized?? and steps must be taken to reduce its time consumption.

Software design can be viewed in the same way. We use the requirement specification to define the problem. Then?? we declare something to be a solution to a problem if it satisfies all the requirements in the specification. In many cases?? the number of possible solutions is limitless. A customer can choose to implement one solution from among several possibilities.

同类推荐
  • 商务英语谈判900句典

    商务英语谈判900句典

    本书分为谈判前的准备和谈判进行中两个部分,其中的背景知识以中英文对照的方式让读者对商务谈判业务流程有清晰的理解。文中提供大量的典型范例,快速提高读者对商务谈判用语、常见问答的熟悉程度。同时配以“即学即用”,让读者感觉身临其境。本身旨在提高读者的自我表达能力,使读者能听得懂、说得出。
  • 365天日常口语放口袋

    365天日常口语放口袋

    《365天日常口语放口袋》以简单、实用作为选材标准,内容取材十分广泛,均以生活中真实发生的实景为蓝本。以句型为基础,将各个单元主题中常见的句型进行归纳和讲解。
  • 欧美广播电视新闻英语

    欧美广播电视新闻英语

    当今世界交流频繁,语言是最重要的交流工具之一。能够听懂、看懂欧美国家的广播和电视节目,如BBC,VOA,CNN,NBC,ABC,CBS 等,是每一个从事英语工作及爱好者的愿望。但是,要达到这一目的,需要付出艰辛的努力。只有达到listening in,speaking out 这一境界,我们的英语水平才能不会因为时间的流逝而降低,而且会不断提高,真正走进英语国家的世界,了解英语国家的政治、经济、军事、外交、科技等各个方面。
  • 聆听花开的声音

    聆听花开的声音

    阅读《聆听花开的声音》,你可以感受到田野上的清风,可以找到心灵宁静的港湾,可以发现生活中被人们忽略的真理,从而拥有一颗宽广的心,走向成功……感受英语的魅力!体验英语的快乐!当鲜花盛开时,我们会沉醉在花海中,为它们的美丽、娇艳赞叹不已,但你可知道它们的真正动人之处,在于它从含苞待放走向盛开的那一刹那。聆听花开的声音,默默感受鲜花盛开过程中的美丽。
  • 那些光影飞华的魅惑(每天读一点英文)

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

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

    轮回剑典

    他修宝典秘籍,炼奇功媚术,在风云变幻中修成巅峰武学,从此美人卧怀,剑指天下,掌控无尽轮回!
  • 神佑之院

    神佑之院

    真是没想到啊,短短的四千年,竟是让那么庞大的一个帝国,都覆灭了......不过一切都在变化之中,这帝国的动乱,也注定了它的灭亡凡是在这个世界的人,都逃不出这个轮回,我四千年前不总是这么说么?不过......把帝国改成学校,这倒是在我意料之外不管怎样,法兰,你的主人回来了
  • 学会处世、学会生活(学会做人学会生活系列)

    学会处世、学会生活(学会做人学会生活系列)

    做人与做事都离不开方圆之道,所谓“方”,即表现于外在的性格和方法:所谓“内”,即深积于心中的气度和态度,古人常说“内方外圆”,正是说出了此中道理。显然,这种内外结合之道,是做人与做理的大智慧、大学问,非一般小打小闹之人生游戏。 人生的巧妙正在于合“内方”与“外圆”为一,即内心刚直.外表柔和.不张扬自己.夸大自己,而是求心中“咬定”目标。 《学会处世学会生活》的核心就是分析“内方外圆”之道对于做人做事的重要性,新见不少,又非常实用。相信,一定能够点活你的做人与做事之道。
  • 九型人格心灵密码(写给上班族的血型星座)

    九型人格心灵密码(写给上班族的血型星座)

    这是一部透析血型神秘莫测之威力的秘籍,这是一部剖析众星座人性特点的兵法,这是一部巧妙地将趣味十二星座与当代上班族群结合起来,立体式探索职场奥秘的无上宝典!破译性格的真相,把握命运的先机,发现自己的工作心情与工作取向,赢在职场。
  • 穿越之最牛败家子

    穿越之最牛败家子

    一次偶然的雷劈,少年沈万三发现自己的灵魂之中掺杂了许多不同的灵魂:猫小腻:喵星人永远臣服于女王大人的石榴裙下;烽火狼:你爱上的不是钱,爱上的钱的人生;枫林天:一见美女心花开,半生红尘伴花眠;逆沧海:世人皆嘲我心坚,天若无道怒九霄;为了能够重塑灵魂,同时抱得美人归,沈万三钱途无量!
  • 斗战胜

    斗战胜

    与天斗,其乐无穷;与地斗,其乐无穷;与人斗,其乐无穷。生在盛世,如不浓墨重彩,何来栽?如不青史留名,何去栽?斗天,战敌,胜己!
  • 读《冰鉴》学生活

    读《冰鉴》学生活

    本书以独特的视角,即从阐述他的《冰鉴》的丰富内涵出发,系统地阐述曾国藩《冰鉴》的思想,向广大读者展示曾国藩的人生谋略,以及他对世态人情的看法。尤其是曾国藩的识人用人心得,对于今天而言依然具有实用性、启迪性和借鉴性。相信这本书会受到读者的青睐。
  • 逆苍天之至尊修罗

    逆苍天之至尊修罗

    紫离大陆掀起一场狂暴的血雨腥风,万宗为敌,天下混战。林啸,林门嫡子,斗气为零,弃于墨宗,成为墨宗外门天赋最低的弟子。师兄欺凌,师弟嘲笑,如蝼蚁一般活着。他颓废,他懦弱,他无所事事...就在他即将绝望之时,那个神王般得灵魂进入他的体内。废材?已经不是了!如神一样的灵魂支持着他的信念,坚毅的魄力,坚定的目光。他要告诉那些辱过他的人,“宁欺白须公,莫欺少年穷!”斗破苍穹,至尊修罗!一步一步,踏上巅峰,轰开神门,睥睨天下!且看少年如何强盛,封神如何嚣张!
  • 旅游目的地营销

    旅游目的地营销

    本书既重视对旅游目的地营销理论的系统介绍,同时也强调了对具体营销与管理方法的分析和说明,因此对各级旅游组织、旅游企业改进和加强旅游目的地营销管理活动的较大的指导意义。同时,本书也适合作为高等院校旅游及相关专业研究生和本科阶段高年级学生的专业教材,或作为旅游研究人员的参考资料使用。
  • 混沌群侠传:地渊之潮

    混沌群侠传:地渊之潮

    天地初分,混沌始开,世间万物,诸邪为尊!东方流毒之泽,有暗黑魔龙,盘踞枯毒之沼,目如磺火,毒烟绕身,统世间之虫,纵横云水之间。西方苍莽之原,有雷玉战虎,雄霸万兽之山,声若雷震,爪碎金石,御世间之兽,啸聚山野之地。南方针石之林,有赤炎凶凰,凌驾通天之树,动如疾风,挥焰如雨,号世间之禽,翱翔天地之际。北方冻土之苔,有冰甲玄鳄,栖息无底之洞,稳若磐山,碾压所及,令世间之鳞,穿游海陆之交。四大邪灵神威无敌,为祸一方,世间万物尽为其奴,四海之内俱如地狱,生者无望,天地无光。闻所未闻的异界传说,层出不穷的英雄种族,变幻万千的魔法招式,一鸣惊人的绝世神兵,惊天动地的阴谋野心——尽在《混沌群英传》!