登陆注册
3765300000032

第32章 Software Engineering(2)

To transform requirements into a working system, designers must satisfy both customers and the system builders on our development team. The customers understand what the system is to do. At the same time, the system builders must understand how the system is to work. For this reason, design is really a two-part, iterative process. First, we produce conceptual design that tells the customer exactly what the system will do. Once the customer approves the conceptual design, we translate the conceptual design into a much more detailed document, the technical design, what allows system builders to understand the actual hardware and software needed to solve the customers’ problem. The process is iterative because, in actuality, the designers move back and forth among activities involving understanding the requirements, proposing possible solutions, testing aspects of a solution for feasibility, presenting possibilities to the customers, and documenting the design for the programmers. Sometimes the design is described in one document, but often there are two. The two design documents describe the same system, but in different ways because of the different audiences for the documents. Thus, the conceptual design concentrates on the system's functions, and the technical design describes the form the system will take.

Object-oriented methodology is an approach to system lifecycle development that takes a top-down view of data objects, their allowable actions, and the underlying communication requirement to define system architecture. The data and action components are encapsulated, that is, they are combined together, to form abstract data types. Encapsulation means that if I know what data I want, I also know the allowable processes against that data. Data are designed as lattice hierarchies of relationships to ensure that top-down, hierarchic, inheritance and sideways relationships are accommodated. Encapsulated objects are constrained only to communicate via messages. At a minimum, messages indicate the receiver and action requested. Messages may be more elaborate, including the sender and data to be acted upon.

Object orientation is the usual approach to developing applications in aerospace and defense organizations, and experiments with its use are occurring in most large companies. Object-oriented design appears to be the best suited method for real-time applications, and is useful for on-line applications.

【Vocabulary】

discipline

n. 纪律,学科 vt. 训练

automate

vt. 使自动化

identification

n. 辨认,证明,鉴定

sufficient

adj. 充分的,足够的

terminology

n. 术语学

prototype

n. 原型

vehicle

n. 交通工具,车辆,媒介

debug

vt. 调试,除错

validation

n. 确认

correspond

vt. 符合,协调,相应,相当

substantial

adj. 坚固的,实质的,充实的

implementation

n. 执行

deteriorate

v. 使恶化

maintenance

n. 维护,保持,抚养

iterative

adj. 重复的,反复的

capsule

n. 胶囊,太空舱

feasibility

n. 可行性,可能性

audience

n. 观众,听众,接见,拜见

architecture

n. 建筑,建筑学

elaborate

vt. 精心制作,详细阐述

aerospace

n. 航空宇宙

methodology

n. 方法学,方法论

【参考译文】

软件工程

软件工程是工具、方法和规则的应用,用于产生和维护一个现实世界问题的自动化解决方案。它要求我们识别出一个问题,一台执行某一软件产品的计算机及其软件产品存在的环境(包含人员、设备、计算机、文档等)。显然没有计算机程序就没有软件产品,更没有软件工程。但这只是一个必要而非充分条件。

一个大规模的软件工程需要跨越相当长的时间来完成。这段时期可以划分为不同的阶段,这些阶段一起构成所谓的“软件生命周期”。

虽然实际的名称可能不同,但是大多数作者都认为软件生存周期分为五个关键阶段。

第一阶段,需求定义,表示在这个阶段内系统希望的需求,也就是精确说明它的功能特性和运行细节。该阶段的输入是陈述(一般是不太确切的陈述)对该软件的要求。通常,一个“需求文档”是该阶段的输出,是经过明确说明的特征或约束条件的集合,这也是最终产品必须满足的。这虽然不是设计,但是必须在设计之前,规定系统应该做什么而不规定它如何去做。一个需求文档的存在,提供一些针对设计的(该生存周期的下一个阶段)并可以使其有效化的东西。有的时候一个快速开发的原型可能是调试需求的一个有用的工具。

对任何阶段,都不允许把错误带到后续阶段是十分重要的。例如,在需求方面,一个错误陈述的功能导致一个有错误的设计和一个并不要求做的事情的实现。如果没有查明,让错误一直发展到测试阶段,则修正这个错误(包括重新设计和重新实现)的代价就可能很大了。

第二阶段,设计,在这个阶段创造性占统治地位,虽然有人表明创造性是内在的而不能够被训练和提高,但是借助于良好的步骤和工具它肯定可以被提高。这个阶段的输入是一份(已经调试而且已经有效化的)需求文档,该阶段的输出则是以某种形式(如伪代码)表示的一个设计。一个设计的有效化是重要的。在需求文档中的每一个需求都必须有一个相应的设计片段来满足它。正式验证,虽然在有限程度上是可能的,但是一般却是极其困难的。更多的非正式验证在整个设计团队,管理人员甚至客户处循环出现。

第三阶段,实现,是对第二阶段中开发设计的实际编码。该阶段的诱惑力是强大的,所以有很多鲁莽的程序员没有经过前两个阶段的充分准备就跳到了这个实现阶段。结果是许多要求没有完全理解,因而设计也是有缺陷的。实现阶段盲目的进行,结果会出现许多问题。

第四阶段,测试,用来证明所实现的程序的正确性。某些测试不可避免地作为前两个阶段的一部分已经被执行。任何有经验的程序员,在任何正式测试阶段之前,每产生一条线路时都会从内心去检测它,也会从内心模拟任何模块的执行。测试决不是容易的。Edsger Dijkstra 写到,虽然测试能够有效的显示出错误的存在,但从不显示它们的不存在。一次“成功”的测试运行仅仅意味着在所测试的特定环境中没有错误被发现;关于其他环境它却没有说明什么。在理论上,测试是显示出一个程序是否正确的唯一途径,好像所有可能的情况都被尝试了(如众所周知的穷举测试),甚至对最简单的程序在技术上都是一种不可能的情况。例如,假设我们已经写了一个程序来计算一次考试的平均分。一次穷举测试将需要分数和班级大小的所有可能的组合;它可能要花费很多年来完成该测试。

第五阶段,程序维护阶段。不幸的是,学生程序员们很少能够涉及本阶段。但是它在现实世界中的重要性也不能被过分地强调。因为维护一个被广泛应用的程序的成本可以达到或着超过开发它的成本。与硬件维护不同,软件维护不涉及已损坏的部件的修复,而涉及设计者缺陷的修复,它可能包括附加功能的供应来满足新的要求。程序员生产各新程序的能力明显受到他们维护旧程序耗费的时间长短的影响。维护的不可避免性必须被承认,且必须采取各个步骤以减少它的时间耗费。

软件设计可以用相同方式考察。我们使用需求规范来定义该问题。那么,如果它能够满足该规范中的所有要求的话,我们就声明它是一个问题的解决方案。在许多情况下,可能的解决方案的数目是没有限制的。一个顾客可以从若干可能性中选择一种以实现一种解决方案。

为了将各个需求转变为一个工作系统,设计师们必须使顾客和我们的开发团队中的诸系统建造师两者都满意。顾客要知道该系统将要做什么,同时建造师也必须理解该系统如何工作。由于这个原因,设计实际上是一两部分的迭代过程。第一,我们生产概念设计,它确切地告诉顾客该系统将要做什么。一旦顾客批准了该设计理念,我们就要将概念设计翻译成一个更详细的文档,该技术设计允许诸系统建造师理解为解决该顾客的问题所需要的实际硬件和软件。这个过程是反复的,因为在现实中设计师往返于理解各项要求、提出可能的解决方案、测试解决方案的可行性、向顾客提供可能的各个解决方案以及为程序员们编写设计文档。有时该设计被描述于一个文档,但往往有两个文档。这两个设计文档描述同一个系统,但是以不同的方式描述,因为诸文档针对不同的读者。这样,概念设计集中于系统的诸功能,而技术设计则描述该系统将采用的形式。

面向对象的方法学是针对系统生命周期开发的一种方法,该方法对诸数据对象允许的动作和基本的通信需求采取一个由顶向下的视图来定义一个系统的体系结构。这些数据及动作部件被封装,也就是它们被组合在一起以形成抽象的数据模型。封装意味着如果我们知道需要什么数据,那么我们就还知道针对该数据的各个许可的进程。各个数据被设计成格状层次关系,以确保自顶向下关系、层次关系、继承性关系、横向关系等被接受。封装的各个对象被约束只是为了通过报文进行通信。最低限度下各个报文指明接收者和所请求的行动。各个报文可以更加复杂,包括发送者和作用于它上面的数据。

面向对象是在宇航和国防机构中开发各种应用程序的常用方法,对它使用的各个试验也正在大多数的大公司中发生。面向对象程序设计对于实时应用是一种最合适的方法,对在线应用也是很有用的。

【Reading Material】

Software Life Cycle

同类推荐
  • 带本英语书游世界

    带本英语书游世界

    本书章节分为 Chapter 1 万事俱备 Chapter 2 快乐出发 Chapter 3 平安到达 Chapter 4 享受美食 Chapter 5 遨游世界 Chapter 6 疯狂购物每个章节详细描写了相关旅游出行的细节,词汇补给、旅游应急句、实用情景对话帮助读者轻松出行。
  • 瓦尔登湖(纯爱英文馆)

    瓦尔登湖(纯爱英文馆)

    《瓦尔登湖》是美国作家梭罗独居瓦尔登湖畔的记录,描绘了他两年多时间里的所见、所闻和所思。大至四季交替造成的景色变化,小到两只蚂蚁的争斗,无不栩栩如生地再现于梭罗的生花妙笔之下,而且描写也不流于表浅,而是有着博物学家的精确。
  • 文秘英语对答如流

    文秘英语对答如流

    该书内容真实鲜活,共包括电话、客户来访、邮电通讯、招聘、培训和面试、秘书人际关系、安排行程和会议、日常工作用语、与外宾交流、办公事务英语以及处理紧急事件十个章节。该书内容编排上有以下几个特点:互动问答、高频精句、场景会话、金词放送、精彩片段。
  • 万用英语表达宝典

    万用英语表达宝典

    无论是去英美国家旅游、工作、学习深造,还是感受英美文化的魅力,掌握最基本的英语口语都是第一需要。这里有英语万用会话黄金句,一定会碰上的近300个高频使用情境,及典型的生活口语!全面的编写内容+丰富的表达方式+易查的会话宝典,既可以满足英语初学者的入门需要,又可以满足那些具有一定基础、需要在较短时间内迅速提高口语水平的学习者的学习要求。让你一书在手,口语无忧。
  • 英文爱藏:那一年,我们各奔东西

    英文爱藏:那一年,我们各奔东西

    学英语不再枯燥无味——吴文智编著的《那一年我们各奔东西》内文 篇目均取自国外最经典、最权威、最流行、最动人的篇章,中英双语,适 于诵读,提升阅读能力;学英语不再沉闷辛苦——优美的语言、深厚的情 感、地道的英文,让我们在阅读这些动人的绝美篇章时,不仅能够提升生 活质量,丰富人生内涵,更能够轻松提升英文领悟能力,体味英……
热门推荐
  • 神坑修仙传

    神坑修仙传

    正在上高中的吴玄登山时意外的穿梭到了修仙界并获得坑爹的系统,而哪里是一片玄幻的修仙大陆,这里万物有灵,强者为尊,这里也有不同的职业,例如散修;炼丹师;炼器师;毒师……而本书的主角吴玄就是在这片大陆结识伙伴并开启自己的修仙之路。新人新作不喜勿喷。
  • 盛世中国:秦汉卷

    盛世中国:秦汉卷

    万里长城(2007年7月在葡萄牙首都里斯本被评为“世界新七大奇迹”之首)在北国边疆轰然矗立,巍峨如险峰,蜿蜒如巨龙,东起辽东,西临洮,形象庄严,气势磅礴,构成一道坚固、高大的藩篱,隔绝了境外的猎猎风尘和滚滚狼烟、凛冽寒潮和刀光剑影……
  • 火影之平民忍者

    火影之平民忍者

    小明穿越了,来到了火影忍者的世界,成为一名平民忍者,开启了一段不平凡的人生!企鹅群:1688892!
  • 追妻无门:女boss不好惹

    追妻无门:女boss不好惹

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

    皇后别太甜

    【男女主双洁超甜~】她,21世纪远古家族的天才医女,一朝重生,成为君临国太子妃?她一手毒针,一手救人,一手厨艺,名扬天下!太子殿下不待见太子妃?我信你个鬼!苏子烟幽怨的小眼神投向一旁的俊逸男子,嫌弃道:“滚滚滚,能滚多远滚多远!”男人却低哑一笑,“子烟还在生气?今后本王轻一点便是。”-君临国传来一道道皇上君言满城风雨只愿寻得那笑靥倾城已然消失一月的皇后苏子烟的消息。闻言苏子烟只是浅然一笑,“这君临国的皇后,可真幸福。”直至一纸昭书落入她眸中……她就是君临国的皇后?这其中发生了什么?!君言瞧着眼前满脸迷茫的苏子烟,将小包子丢在苏子烟面前,勾起她的下颚,“还不认?”
  • 先生大我十五岁

    先生大我十五岁

    “李哥哥,你有女朋友么?”十二岁的时候唐笑芙就问了二十七岁的李书逸这个问题。那时候他是住在对门的哥哥。“李老师,你有女朋友么?”二十岁的时候唐笑芙又问了三十五岁的李书逸同样的问题。那时候他是唐笑芙大学里的老师。“李先生,你有女朋友么?”二十六岁的时候唐笑芙还是问了四十一岁的李书逸不变的问题。那时候他是她所负责的一个落魄艺人。从懵懂无知的童年到历经变折的青春再到丛林竞技的职场。即使时间像吃人的怪兽,能吃掉人的肉体却吃不掉唐笑芙对李书逸的执着。所以,先生大我十五岁也没关系,因为我一直很爱你。爱上一朵花就陪她绽放,爱上一个人就陪她成长。
  • 成功人生必知的68个管理技巧(教你成功丛书15本)

    成功人生必知的68个管理技巧(教你成功丛书15本)

    管理学者提出,管理的职能是决策和失去决策的区别。管理学者认为,处理好管理者与被管理者之间的关系是管理的首要问题。公司或个人在经营中要受到内外环境中的各种不利因素的侵袭,便会发生各种各样的危机。但施行有效的危机管理可以成功地防御危机的发生,现代公司应具备良好的危机管理意识,惟有如此,才能及时遏止危机,最终走向成功。本书让读者感受到全球顶尖的商业智慧和决策理念,从而能够明白管理技巧的真谛。
  • 水晶帘动微风轻起

    水晶帘动微风轻起

    女生宿舍楼317住着四位美女,她们分别是觉主,网侠,食神、老大觉主,名叫安宁。封号觉主,自然是因为她的睡功无人能敌。老二网侠,真名于颖。这可是个奇女子,无人不羡慕她悠哉淡然与世无争的生活。老三食神,其实叫何曼——食神可不是浪得虚名。老四色魔,是个新疆美少女,阿依古丽。她可是有强大理论知识的邪女。普通凡人自是不懂她的术语,只要别认真就对了。本文男主不甚明朗,女主有多段含糊不清的感情……
  • 追妻无门:女boss不好惹

    追妻无门:女boss不好惹

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

    校草:万有引力少女

    年幼的她曾遭遇车祸,被人绑架,被他所救,他们相遇相知相识,而她却又被迫丢弃,失去记忆,她能否再找回最初的温柔?牛顿的万有引力,是否会牵引她找到自己内心深处的爱情……