建设工程信息管理第8章管理信息系统实施8.1硬软件系统的建立8.2管理信息系统测试8.3管理信息系统的实现8.4管理信息系统运行及维护8.5管理信息系统评价建设工程信息管理8.1.1硬件系统的建立在建立和测试网络时,首要的工作是确定网络的拓扑结构。网络拓扑是由网络节点设备(包括计算机、集线器、交换机、路由器等设备)和传输介质构成的网络结构图。网络拓扑结构对网络采用的技术、网络的可靠性、网络的可维护性和网络的实施费用都有很大影响。在选择网络拓扑结构时,一般应考虑以下因素实施安装的难易程度、改造升级后或重新配置的难易程度、维护的难易程度、传输介质发生故障,对其他设备影响的程度等因素。8.1硬软件系统的建立建设工程信息管理8.1.1硬件系统的建立8.1硬软件系统的建立ACTACT10M100M123413141516567817181920910111221222324UPLINK123456789101112131415161718192021222324COLCOLPWRSWITCH星型拓扑结构建设工程信息管理8.1.1硬件系统的建立8.1硬软件系统的建立星型拓扑结构特点:(1)网络容易进行重新配置,只需增加,移去和改变中心设备的某个端口的联接即可。(2)维护比较容易,如果某台计算机发生故障,整个网络不受影响。集线器可以检测到网络故障,并且出现个别有问题的计算机或网络电缆,网络的其余部分可以正常运行。(3)对中心结点的可靠性要求较高,如果中心节点设备(如集线器或交换机)发生故障,就会影响到整个网络。建设工程信息管理复合网络拓扑复合网络拓扑主要是在基本网络拓扑的基础上构造而成的。目前应用较多的是交换式以太网和快速以太网,其网络主要连接设备是交换机和集线器。该种网络具有维护容易、网络速度快、技术成熟等特点。6-58.1硬软件系统的建立8.1.1硬件系统的建立建设工程信息管理集成编程工具:VisualBasicVisualC++PowerBuilderDelphi6-68.1硬软件系统的建立8.1.2软件系统的建立1.程序设计及数据库系统集成编程工具建设工程信息管理关系型数据库软件:OracleDB2InformixSybaseSQLServerAccessxBASE类Paradox6-78.1硬软件系统的建立8.1.2软件系统的建立1.程序设计及数据库系统集成编程工具建设工程信息管理xBASE类数据库系统:xBASE数据库系统主要包括:xBASE的代表dBASE系列、Fox公司推出的Fox系列(包括FoxBase和FoxPro)、Nantucket公司推出的Clipper数据库系统,微软公司的VisualFoxPro等。其中VFP即具有数据库系统结构,同时也是一个面向对象的集成编程工具。6-88.1硬软件系统的建立8.1.2软件系统的建立1.程序设计及数据库系统集成编程工具建设工程信息管理自顶向下的方法要求程序员首先实现软件结构的最高层次,之后再实现下一个层次,直至用程序设计语言实现最低层次为止。自底向上的方法与上述方法开发过程相反,它是从最底层开始,直至实现最高层次为止。6-98.1硬软件系统的建立8.1.2软件系统的建立2.程序设计方法通常用自顶向下的开发方法开发的程序可读性好,条理分明,可靠性也较高。而用自底向上开发方法得到的程序往往局部是最优的,系统的整体结构却较差。建设工程信息管理(1)程序设计的基本要求正确性编出的程序,能够严格按照规定的要求,准确无误地提供预期的全部信息;可理解性程序的内容清晰、明了,便于阅读和理解;可靠性程序应具有较好的容错能力,不仅正常情况下能正确工作,而且在异常情况下应便于处理;可维护性程序的应变性能强。程序执行过程中,发现问题或客观条件有了变化,调整和修改程序比较简便易行;效率程序的结构严谨、明了,运算处理速度快,节省机时。程序和数据的存储、调用安排得当,节省存储空间。6-108.1硬软件系统的建立8.1.2软件系统的建立2.程序设计方法建设工程信息管理(2)编程风格标识符的命名程序的书写格式程序的注释程序的输入和输出6-118.1硬软件系统的建立8.1.2软件系统的建立2.程序设计方法建设工程信息管理结构化程序设计(STRUCTUREDPROGRAMING,简称SP)方法是由E.Dijkstra提出的。它是用于详细设计和程序设计阶段,指导人们用良好的思想方法开发出正确又易于理解的程序的一种程序设计技术。SP方法建立在Bohm和Jacopini在1966年就证明了的结构定理的基础上,它指出任何程序逻辑结构都可以用顺序、分支和循环这三种基本结构来表示。SP方法用这三种基本结构反复嵌套构成“结构化的程序”。结构化程序设计是采用自项向下逐步求精的设计方法和单入口单出口的控制技术。6-128.1硬软件系统的建立8.1.2软件系统的建立3.结构化程序设计建设工程信息管理顺序分支循环程序的基本结构6-138.1硬软件系统的建立8.1.2软件系统的建立3.结构化程序设计建设工程信息管理6-148.1硬软件系统的建立由于结构化程序具有结构清晰、易于阅读和修改、容易验证其正确性等优点,因此使用该方法有利于编写出结构良好的程序,提高编程工作效率。目前,多种计算机程序语言都支持结构化程序设计。8.1.2软件系统的建立3.结构化程序设计建设工程信息管理系统测试是保证系统质量的关键步骤。统计资料表明,对于一些较大规模的系统来说,系统测试的工作量往往占系统开发总工作量的40%以上,开发费用的近1/2。到目前为止,人们还无法证明一个大型复杂程序的正确性,只能依靠一定的测试手段来说明该程序在某些条件下没有发生错误。所以在测试时应想方设法使程序的各个部分部投入运行,力图找出所有错误。6-158.2管理信息系统测试8.2.1测试的目的、原则1.测试的目的建设工程信息管理6-168.2管理信息系统测试(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是很可能发现迄今为止尚未发现错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。G.Myers对测试目标做出了如下归纳:8.2.1测试的目的、原则1.测试的目的建设工程信息管理(1)应避免自己测试自己设计的程序;(2)测试用例的设计应该由“确定的输入数据”和“预期的输出结果”组成;(3)测试数据的选取应考虑各种不同情况;(4)检查程序是否执行了规定以外的操作;(5)注意保留测试用例;(6)对已发现的错误模块要足够重视。6-178.2管理信息系统测试8.2.1测试的目的、原则1.测试的基本原则建设工程信息管理程序1模块测试子系统测试系统测试6-188.2管理信息系统测试8.2.2测试的过程建设工程信息管理(1)静态测试在模块上机运行前通过阅读程序和人工运行程序的方法来发现程序中的语法错误和逻辑错误。只要认真检查就可以发现绝大部分的语法错误和部分逻辑错误。(2)动态测试即模块上机运行测试。当人工运行程序走通以后,就可上机调试。6-198.2管理信息系统测试8.2.2测试的过程1.模块测试建设工程信息管理语法错误比较容易发现和修改,而要追踪逻辑错误则比较困难。为了有效地发现并改正逻辑错误,除了要充分利用所有高级语言提供的调试机制或软件工具外,还需要掌握测试技术。6-208.2管理信息系统测试8.2.2测试的过程1.模块测试建设工程信息管理是在模块测试的基础上,把各模块组合到一起形成一个子系统来测试的过程。目的是解决各模块间相互调用的协调和通信问题,即重点测试子系统内各模块的接口。可能出现的问题有:一个模块对另一个模块产生有害影响;数据在穿过接口时丢失;把模块组合到一起没有产生预期的功能等问题。6-218.2管理信息系统测试8.2.2测试的过程2.子系统测试建设工程信息管理6-228.2管理信息系统测试模块组装成子系统方法:非渐增式测试方法——先分别测试每个模块,再把所有模块按设计要求结合在一起测试;渐增式测试方法——是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再结合进来下一个测试的模块继续测试。这种方法实际上同时完成模块测试和子系统测试。8.2.2测试的过程2.子系统测试建设工程信息管理两种方法的比较:非渐增式测试方法渐增式测试方法需要分别测试每个模块,编写的测试软件(驱动模块和支持模块)较多,工作量较大;可利用已测试过的模块最后才把模块相连在一起,接口错误发现得晚。可以较早发现模块之间的接口错误一次组合所有模块,如果发现错误难以判断定位。如果发生错误则通常和最新加进来的模块有关;可以并行测试所有模块,能充分利用人力,加快工程进度。占用机时多,测试每个新加入模块时,已经测试完的模块也都要一起运行。但测试更彻底6-238.2管理信息系统测试8.2.2测试的过程2.子系统测试建设工程信息管理在所有子系统都测试成功以后,就可以进行系统测试,也称为总调。它主要解决各子系统之间的数据通讯和数据共享(公用数据库)等问题,以及系统安全测试、恢复测试和满足用户要求的测试等。6-248.2管理信息系统测试8.2.2测试的过程3.系统测试建设工程信息管理6-258.2管理信息系统测试(1)总调——可采用一些精心设计的数据量较少的测试用例,这样可以使处理的工作量减少,而且也更容易发现错误和确定错误所在范围。(2)安全测试——是指测试系统对外来有意或恶意攻击的自我保护能力。(3)恢复测试——是指系统出现意外故障时,能否正确和迅速恢复的测试。(4)系统有效性测试——通过测试来证实系统功能与用户要求一致。8.2.2测试的过程3.系统测试建设工程信息管理(1)用户手册(2)系统开发报告(包括系统分析说明书、系统设计说明书、系统实施说明等)(3)有关程序的所有资料(4)系统操作说明等6-268.2管理信息系统测试8.2.2测试的过程4.系统说明文件建设工程信息管理(1)黑盒子测试测试人员不必考虑模块的内部结构,只用测试数据来检验程序是否符合它的功能要求,是否会发生异常情况。(2)白盒子测试要求测试人员根据模块的内部结构来导出测试数据,使模块中的测试路径都被测试到。8.2管理信息系统测试8.2.3测试技术及方法1.模块测试技术建设工程信息管理无论是黑盒子法还是白盒子法都不能将程序中的所有错误全查出来。因为黑盒子法不可能将所有的输入情况都测试一遍,白盒子法也不能穷举模块中的所有可能路径。可按黑盒子法和白盒子法的思想按以下方法进行模块测试。(1)等价类划分法(2)边界值分析法(3)逻辑覆盖测试法(4)判断/条件覆盖(5)条件组合覆盖8.2管理信息系统测试8.2.3测试技术及方法2.模块测试的常用方法建设工程信息管理(1)等价类划分法根据黑盒子法思想,在所有可能的输入数据中取一个有限的子集,作为测试用数据。通常是将模块的输入域划分成有效等价类(模块中符合规范的输入)和无效等价类(模块中非法的输入)两种。例如:某模块的合理输入是0~100,则大于0且小于100的数据属于有效等价数据;小于0或大于100的数据为无效等价类,测试数据可以从这两个等价类中抽取。8.2管理信息系统测试8.2.3测试技术及方法2.模块测试的常用方法建设工程信息管理(2)边界值分析法在编写程序时,往往只注意正常情况,忽视了边界状态。因此,在测试过程中以边缘值作为测试数据,容易发现程序中的错误。例如:某模块的有效值是0~100,则可以取-0.1,0.1,99.9,100.1作为测试数据。8.2管理信息系统测试8.2.3测试技术及方法2.模块测试的常用方法建设工程信息管理(3)逻辑覆盖测试法用白盒子法测试模块时,要执行程序中的每一条路径。当程序中有循环存在时,测试程序中的每一条路径是不可能的。而能希望覆盖的程度尽可能高一些。逻辑覆盖常用的方法有:语句覆盖判断覆盖条件覆盖判断/条件覆盖条件组合覆盖8.2管理信息系统测试8.2.3测试技术及方法2.模块测试的常用方法建设工程信息管理8.2管理信息系统测试(3)逻辑覆盖测试法1)语句覆盖。是指设计的测试用例能使程序中的每个语句至少执行一次。