登陆注册
16318600000067

第67章 系统实施(2)

程序流程图和NS图的优点在于:首先,它强制设计人员按结构程序设计方法进行思考和描述其方案,由此得到的程序必定是结构化的;其次,图像直观,容易理解设计意图,为编程、复查、测试、维护带来方便;最后,简单易学。NS图的基本结构如图143所示。

这些控制结构都有一个重要特征,就是只有一个入口和一个出口。用这种单入口和单出口的基本结构单元,容易做到在一种结构中嵌套其他结构,从而实现任何复杂的处理过程和算法,并且使程序的线索既清晰又有条理。这样,各种结构中的处理均可以由任何结构,甚至其他模块来代替,从而可实现程序过程的结构化构造及自顶向下的逐步细化。

然而,总的趋势是越来越多的人不再使用程序流程图方法实现程序过程的结构化构造。

程序流程图法的主要缺点如下。

①程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。

②程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。

③程序流程图不易表示数据结构。

④程序流程图不易表示层次结构。

由于上述缺点的存在,使得结构化程序设计侧重于逻辑过程设计,与人的思维方式存在不协调。该方法突出了实现功能的操作方法(模块),而被操作的数据(变量)处于实现功能的从属地位,即程序模块和数据结构是松散地耦合在一起的,因此当应用程序比较复杂时,容易出错,难以维护。

2.面向对象程序设计方法

面向对象(ObjectOriented,OO)方法是一种非常实用的软件开发方法,是软件开发的一种主要方法。面向对象方法以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,分析和设计的结果与客观世界的实际比较接近,容易被人们接受。在面向对象方法中,分析和设计的界线并不明显,它们采用相同的符号表示,能方便地从分析阶段平滑过渡到设计阶段。此外,在现实生活中,用户的需求经常会发生变化,但客观世界的对象及对象间的关系相对比较稳定,因此用面向对象方法分析和设计的结果也相对比较稳定。

1)面向对象的基本概念

面向对象的方法可采用下面的等式来表现。

面向对象=对象(Object)+分类(Classification)+继承(Inheritance)+通过消息的通信(CommunicationWithMessages)

可以说,采用这4个概念开发的软件系统就是面向对象的。

2)面向对象的程序设计概述

面向对象程序设计方法提出了一个全新的概念:类(Class)。类把数据(数据成员)和处理这些数据的函数(成员函数)封装在一起。用类来声明的变量称为对象。在对象中,只有该对象的成员函数可以存取对象的数据成员,这样可以有效地保护和隐藏数据。

在程序设计中必须先定义类,然后建立对象。类是对一组性质相同的对象的程序描述,它由概括该组对象共同性质的数据和函数组成。类是一种用户自定义的数据类型。和其他数,,———。:

类时直接声明;另一种是在声明类之后再在需要声明对象的地方单独声明。对象被声明后就可以使用。通过对象可以使用类中公有类型的数据和函数,其使用方式为对象名·数据成员或对象名·成员函数

继承是面向对象语言提供的一个重要机制,它支持层次分类的观点。继承使得程序员可以在一个较通用类的基础上很快地建立起一个新类,而不必从头设计每个类。在类的继承关系中,被继承的类称为基类,继承的类称为派生类。

程序语言可以建立具有相同成员函数名的对象的等级结构,这些函数在概念上是相似的,但对各自的类来说,其实现不同。因此,对象在接收到同一函数调用时引起的行为不同,这一功能被称为多态性。例如,C++语言支持两种多态性:编译多态性和运行多态性。

编译多态性通过使用重载函数获得,运行多态性通过使用继承和虚函数获得。

目前有许多可视化的程序设计语言均支持面向对象的设计方法,通过对程序提供可视化控件———已封装的类的调用,设置控件的属性,并对其消息事件进行功能代码设计,大大加快了软件的开发过程。

3)面向对象的程序设计优势

①符合人们习惯的思维方法。由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,而且软件开发者可以很方便地与问题提出者进行沟通和交流。

②易于软件的维护和功能的增减。对象的封装性及对象之间的松散耦合性,都给软件的修改和维护带来了方便。

③可重用性好。重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造软件系统,再加上继承的方式,极大地提高了软件开发的效率。

④与可视化技术相结合,改善了工作界面。随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心。它与可视化技术相结合,已经使人机界面进入GUI时代。目前常用的面向对象的程序设计语言有:BorlandC++,VisualC++,Java及VisualBasic,Delphi等。虽然风格各异,但都具有共同的概念和编程模式。

14.3系统测试

系统测试是管理信息系统的开发周期中一个十分重要的活动。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免遗留差错。如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将要会付出更大的代价。

系统测试是指在计算机上以各种可能的数据和操作条件对程序进行测试,找出可能存在的问题并加以修改,使之完全符合设计要求。在软件的开发过程中,系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,调试工作所占的工作量也比较大,大约占整个软件开发工作量的40%~50%。对于一些特别重要的大型系统,测试的工作量和,。

14.3.1测试概述

1.系统测试的目标

系统测试的目的在于发现程序的错误。G.J.Myes在《软件测试技巧》一书中对测试提出了以下规则,不妨可看作软件测试的目标或定义。

①测试是为了发现程序中的错误而执行程序的过程。

②好的测试方案使测试很可能发现尚未发现的错误。

③成功的测试是发现了尚未发现的错误的测试。

总之,测试的目标就是希望以最少的人力和时间发现潜在的各种错误和缺陷。从上述目标可以归纳出测试的定义,即“为了发现错误而执行程序的过程”。通俗地说,测试是根据各阶段的需求、设计等文档或程序的内部结构,精心设计测试用例(即输入数据和预期的输出结果),并利用这些测试用例来运行程序,以便发现错误的过程。信息系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,而信息系统的开发工作主要集中在软件上,所以所说的测试更多的是指软件测试。

2.系统测试的原则

①最好不要由设计、编写某个软件的部门来测试该软件系统。但在发现错误之后,要找出错误的根源并纠正它时,则应由程序的编写者来进行。

②测试用例既要有输入数据,又要有对应的预期结果,比较输出结果与预期的结果,就可断定程序中是否有错误。

③不仅要输入合理的输入数据,还应选用不合理的输入数据作为测试用例,这样才可测试出程序的排错能力。

④除了检查程序是否做了应做的工作,还应检查程序是否做了它不应做的工作。程序做了不应做的工作仍然是一个大错。

⑤应长期保存所有的测试用例,直至该程序被废弃。测试用例对以后的使用有参考价值。当程序改错或改进后,可以比较原来能正确运行的部分现在是否有错。若出错,则说明修改不当。

14.3.2测试分类

在开发大型应用系统的漫长过程中,面对着错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此力求在系统开发的每个阶段和完成后都能通过严格的审查,尽可能早地发现并纠正错误。按照系统测试规模和内容的不同,可将测试分成以下几种类型。

(1)系统平台测试

系统平台测试分为硬件平台测试和网络平台测试两部分。信息系统开发人员所要进行的硬件平台测试主要是针对安装了操作系统的计算机的测试,通过特定的软件测试计算机的性能表现。网络测试主要包括电缆测试、传输信道测试和网络测试。电缆测试主要包括电缆的:,、

是否正确、接地是否良好、电缆走向如何等;认证测试是测试已经安装完毕的电缆的电气参数(如衰减等)是否符合有关的标准。传输信道测试主要是测试传输信息的频谱带宽、传输速率、误码率等参数。网络测试包括网络的规程、性能检测、安装调试、维护、故障诊断等。

(2)应用软件测试

应用软件测试是指由测试人员努力设计出一系列测试方案,其目的却是为了“破坏”已经建造好的软件系统———竭力证明程序中有错误而不能按照预定要求正确工作,从而将设计阶段中所有隐患完全暴露出来。暴露问题并不是软件测试的最终目的,发现问题是为了解决问题。测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

(3)系统单元测试和集成测试

单元测试是集中测试软件设计的最小单元———模块。一般认为单元测试和编码属于系统开发的同一阶段,即在编写出源程序代码并通过编译程序的语法检查后就开始接受程度不同的检查测试了。首先改正所有语法错误;然后,用详细设计描述操作指南,对重要的执行通路进行测试,以便发现模块内部的错误;也可以对多个模块同时进行测试。

模块并不是一个独立的程序,往往是多模块联合测试,所以在所有的单元测试之后,还需要进行集成测试。集成测试是通过测试发现和接口有关的问题来构造程序结构的系统化技术。它的目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。

14.3.3测试方法和测试过程

1.系统测试的方法

对系统进行测试的主要方法如图144所示。人工测试指的是采用人工方式进行测试,目的是通过对程序静态结构的检查,找出编译时不能发现的错误。经验表明,组织良好的人工测试可以发现程序中30%~70%的编码错误和逻辑设计错误。机器测试是把事先设计好的测试用例作用于被测程序,比较测试结果和预期结果是否一致,如果不一致,则说明被测程序可能存在错误。人工测试有一定的局限性,但机器测试只能发现错误的症状,不能对问题进行定位;人工测试一旦发现错误,就能确定问题的位置、是什么错误等,而且能一次发现多处错误。因此,应根据实际情况来选择测试方法。

144

1)人工测试

人工测试又称为代码复审,即通过阅读程序,查找错误。其内容包括:检查代码和设计是否一致、检查代码逻辑表达是否正确和完整、检查代码结构是否合理等。人工测试主要有3种方法。

(1)个人复查

个人复查指程序员本人对程序进行检查,发现程序中的错误。由于心理上和思维上的惯性,程序员一般不太容易发现自己的错误。此方法主要针对小规模程序,效率不高。

(2)走查

通常由3~5人组成测试小组,测试人员应该是没有参加该项目开发的有经验的程序开发人员。测试人员先阅读相关的软件资料和源程序,然后将一批有代表性的测试数据沿程序的逻辑走一遍,监视程序的执行情况,发现程序中的错误。

(3)会审

测试人员的构成与走查类似,要求测试人员认真审查有关的资料(如系统分析说明书、系统设计说明书、程序设计说明书、源程序等),找出问题,并在会审时逐个审查、提问,由编程人员逐句讲解程序,测试人员讨论可能出现的错误。实践证明,编程人员在讲解、讨论的过程中能发现自己以前没有发现的错误,使问题暴露。例如,在对某个小问题讨论修改方法时,可能会发现涉及模块间接口等问题,从而提高软件质量。会审后要将发现的错误登记、分析、归类,一份交给程序员,另一份妥善保管,以便再次组织会审时使用。

2)机器测试

机器测试是指在计算机上直接用测试用例运行被测程序,发现程序错误。机器测试主要分为黑盒测试和白盒测试两种。

(1)黑盒测试

同类推荐
  • 语文新课标课外必读第四辑——基督山伯爵

    语文新课标课外必读第四辑——基督山伯爵

    国家教育部颁布了最新《语文课程标准》,统称新课标,对中、小学语文教学指定了阅读书目,对阅读的数量、内容、质量以及速度都提出了明确的要求,这对于提高学生的阅读能力,培养语文素养,陶冶情操,促进学生终身学习和终身可持续发展,对于提高广大人民的文学素养具有极大的意义。
  • 青少年提高逻辑思维能力训练集——疑案递推法训练

    青少年提高逻辑思维能力训练集——疑案递推法训练

    当今时代是一个知识爆炸的时代,也是一个头脑竞争的时代;在竞争日益激烈的环境下,一个人想要很好地生存,不仅需要付出勤奋,而且还必须具有智慧。随着人才竞争的日趋激烈和高智能化,越来越多的人认识到只拥有知识是远远不够的。因为知识本身并不能告诉我们如何去运用知识,如何去解决问题,如何去创新,而这一切都要靠人的智慧,也就是大脑思维来解决。认真观察周围的人我们也会发现,那些在社会上有所成就的人无不是具有卓越思维能力的人。
  • 语文新课标课外读物——彼得·潘

    语文新课标课外读物——彼得·潘

    现代中、小学生不能只局限于校园和课本,应该广开视野,广长见识,广泛了解博大的世界和社会,不断增加丰富的现代社会知识和世界信息,才有所精神准备,才能迅速地长大,将来才能够自由地翱翔于世界蓝天。否则,我们将永远是妈妈怀抱中的乖宝宝,将永远是温室里面的豆芽菜,那么,我们将怎样走向社会、走向世界呢?
  • 校园歌咏类活动指导手册

    校园歌咏类活动指导手册

    根据党和政府有关政策和部门的要求以及国内外最新校园文化艺术的发展方向,特别编撰了《五彩校园文化艺术活动》丛书,不仅包括校园文化艺术活动的组织管理、策划方案等指导性内容,还包括阅读、科普、歌咏、器乐、绘画、书法、美化、舞蹈、文学、口才、曲艺、戏剧、表演、游艺、游戏、智力、收藏、棋艺、牌技、旅游、健身等具体活动项目,还包括节庆、会展、行为、环保、场馆等不同情景的活动开展形式等,具有很强的系统性、娱乐性、指导性和实用性。
  • 声律启蒙(语文新课标必读书目·第12辑)

    声律启蒙(语文新课标必读书目·第12辑)

    世界文学名著是世界各国社会和生活的结晶,是高度艺术化的精神产品,是人类共有的文化财富,具有永久的魅力,非常集中、非常形象,是中、小学生了解世界和社会的窗口,是走向世界、观摩社会的最佳捷径,也是培养人文素质,养成优雅风度,形成高尚思想品格的好教材。这些世界文学名著,伴随着世界各国一代又一代的青少年茁壮成长,具有广泛的影响和深远的意义。特别是带着有趣的欣赏的心态阅读这些美丽的世界名著,非常有利于培养青少年积极的和健康向上的心理、性格、思维和修养,有利于青少年了解世界各国的社会和生活,不断提高语言表达和社会交往的才能,这样就可以早日走向社会,走向世界。
热门推荐
  • 蝶舞倾城:傲娇公主太逆天

    蝶舞倾城:傲娇公主太逆天

    夏若蝶自认为这一辈子过得顺风顺水,谁知道被闺蜜和爱人陷害。陷害就陷害了吧,谁知这偏偏还穿越了!穿越就穿越了吧,怎么还穿成了个废柴?没关系,废柴就废柴吧,她可是要让那些人看看,什么才是“废柴”这个词的正确打开方式!
  • 摄政王的神医妃

    摄政王的神医妃

    她是古家世代相传的医者,被世人称为神医,却不想一场意外,穿越了,哦!no,不是吧,要不要这么倒霉,我不就是上山摘个药材吗,至于吗,至于吗,至于让我失足掉悬崖吗,还穿越了,总得着这么悲催吗?苏妙灵咒怨到,他是权野朝衡的摄政王,冷酷无情,直到遇到她,坚持发扬打不死的精神,灵儿,我娶你可好?某女人答曰:抱歉,本小姐不嫁人,某王死皮赖脸的道:那本王嫁给你可好?某女看了一眼某王:可有嫁妆?嫁妆够不够充足?
  • 想你的吻

    想你的吻

    她不过是黑夜中一颗努力发光的星,而他,却是骄阳。骄阳与夜星似乎无法相遇,而他们,也许就是这样错过了……一次萍水相逢,使他们相识,渐渐相爱,却因为生活的种种,他们不得不分开,五年时间,他们一直在寻找着对方……
  • 不灭神体

    不灭神体

    王者,天道,霸道,自当百无禁忌!主人公生来被断定活不过十八岁!但是他的生命本源之中,充斥着浩瀚无尽之气!王者觉醒,修神功秘法,猎美逐艳!屠天灭地!此乃王者百无禁忌无上之霸道!
  • 冷心炽爱

    冷心炽爱

    父母因事故去世,被领养后因性格孤傲,养父养母将六岁的她单独送到国外,‘爷爷’却非常偏爱她,她19岁爷爷去世,留下30%股份给她。她无所求无所欲冷漠生活,二十二岁回到国内。想平静的生活,但是,在遇到容铭后,事与愿违的各种状况就开始了。而当他们越来越靠近对方时,残酷的真相席卷而来。
  • 总裁的抢爱行动

    总裁的抢爱行动

    他是耀眼钻石男,她是单纯良家女,八竿子也打不着的两个人。本该是和男朋友的第一次亲密接触,因酒醉失状,反而让他捡了个现成的便宜。男朋友没了,肚子里却多了父不详的孩子,麻烦啊麻烦!不过有个宝宝陪伴也不错,只是再遇孩儿他爸,偷种的事——他好像打算跟她计较计较!哥哥,你有钱有势有相貌,犯得着这么精精计较么?
  • 异能贩卖大亨

    异能贩卖大亨

    “什么?你说你爱看比基尼美女,是因为她们穿得太少容易走光?瞧,这是透视眼异能,有了它,穿得再厚的美女也只能与你赤裸相见。”“什么?你说你想知道女神对你的看法?那太简单了,喏,这是他心通异能,有了它,女神心不再是海底针,从此,这个世界只有你才能真正明白她的心意。”“什么?你说你是国际大盗,圣手神偷,什么样的防盗门都能打开?唉,哥不想说其他的了,随便来一百道门吧,咱们比比谁先解开这些门。哥有穿墙术在手,怕你神偷妙手空?”哥是个商人,哥贩卖异能。
  • 暖冬情人:程先生你好

    暖冬情人:程先生你好

    第一次见面,是因为算计。阴谋没得逞反被抓包。他抓紧她的手,薄唇轻启,酒气喷在她脸上:“女人,你以为你能得逞?”“你在玩火,你知道吗?”“没……”她闭了闭眼,“程先生你好。”算计失败,她开始以各种方式接近他。大雨倾盆而下,她却在雨中笑得如沐浴阳光,“程先生,你看我妆都要花了,可以搭我一程吗?她成功达到目的,做了程冬诚的女人,解决了公司的危难。而后,当她想全身而退的时候。“怎么?现在想跑?”他指尖划过她白皙的面庞,“我程冬诚认定了的女人,只能是一辈子。”
  • 别,江湖

    别,江湖

    他也只是说着他的故事,我本没义务去听他说些什么,却觉得自己感到的那份悲伤,真实到不能自己,泪水夺眶的时候,她话于我说:“夫君,去年六月西河西,今年六月北河北。沙场碛路何为尔,重气轻生知许国。人生在世能几时,壮年征战发如丝。会待安边报明主,作颂封山也未迟。”我从没想过,终还是回到那个我逃了很久的江湖。
  • 高冷医生:萌妻追夫100天

    高冷医生:萌妻追夫100天

    徐宝宝从小到大都是别人口中的好孩子,直到遇到了周医生。面对高冷腹黑的周医生,徐宝宝用尽洪荒之力最终抱得美人归。这是一个高岭之花周医生VS蠢萌画家徐宝宝的恋爱故事。