工程管理信息系统
6-1
哈尔滨工业大学管理学院
建设信息教研室
工
程
信
息
管
理
第
六
章
系
统
实
施
第六章 系统实施
6-2
? 硬件系统的建立
? 软件系统的建立
? 信息系统测试
? 信息系统的实现
? 信息系统运行及维护
? 信息系统评价
工
程
信
息
管
理
第
六
章
系
统
实
施
在建立和测试网络时,首要的工作是确定网络的拓
扑结构。网络拓扑是由网络节点设备(包括计算机、集
线器、交换机、路由器等设备)和传输介质构成的网络
结构图。网络拓扑结构对网络采用的技术、网络的可靠
性、网络的可维护性和网络的实施费用都有很大影响。
在选择网络拓扑结构时,一般应考虑以下因素:
? 实施安装的难易程度
? 改造升级后或重新配置的难易程度
? 维护的难易程度
? 传输介质发生故障,对其他设备影响的程度
6-3
6.1 硬件 系统的建立
工
程
信
息
管
理
第
六
章
系
统
实
施 6-4
6.1 硬件 系统的建立
? 按拓扑结构分 总线型
特点,
? 比较容易安装,只需铺设主干电缆,使用电缆较少;
? 比较容易增加或删除节点。但可接受的分支点达到极限时,
就必须重新铺设主干;
? 维护比较困难;
? 总线电缆出现故障或断开,会导致整个网络的通信瘫痪。
?总线型
?星型
?环形
工
程
信
息
管
理
第
六
章
系
统
实
施 6-5
星型拓扑结构
6.1 硬件 系统的建立
星型 ? 网络容易进行重新配置, 只需增加, 移去和改变中心设备的某个端口的联接即可 。
? 维护比较容易, 如果某台计算机发生故障,
整个网络不受影响 。 集线器可以检测到网
络故障, 并且出现个别有问题的计算机或
网络电缆, 网络的其余部分可以正常运行 。
? 对中心结点的可靠性要求较高, 如果中心
节点设备 ( 如集线器或交换机 ) 发生故障,
就会影响到整个网络 。
特点:
工
程
信
息
管
理
第
六
章
系
统
实
施 6-6
环型拓扑结构
6.1 硬件 系统的建立
? 环型拓扑在初始安装时比较简单 。
? 随着网上节点的增加, 也会增加重新配置的难度 。
? 可以很容易地找到电缆的故障点 。
? 在环型系统上出现的任何错误, 都会影响网上的所有设备 。
特点:
环型
工
程
信
息
管
理
第
六
章
系
统
实
施
复合网络拓扑主要是在基本网络拓扑的基础上构
造而成的 。
目前应用较多的是交换式以太网和快速以太网,
其网络主要连接设备是交换机和集线器 。 该种网络具
有维护容易, 网络速度快, 技术成熟等特点 。
6-7
复合网络拓扑
6.1 硬件 系统的建立
工
程
信
息
管
理
第
六
章
系
统
实
施
程序设计及数据库系统
程序设计方法
结构化程序设计
6-8
6.2 软件 系统的建立
工
程
信
息
管
理
第
六
章
系
统
实
施
集成编程工具,
? Visual Basic
? Visual C++
? PowerBuilder
? Delphi
关系型数据库软件,
Oracle
DB2
Informix
Sybase
SQL Server
Access
xBASE类
Paradox
6-9
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
Visual Basic是由微软公司于推出的基于 Windows环境的计算机
程序,目前的最常用的版本是 VB6.0,它是完全集成的编程环境,集
程序设计、调试和查错功能于一身。
VB的主要特点:
继承了 Basic简单易学的特点;适用于 Windows环境下的快速编
程;采用可视化技术,操作直观;采用面向对象技术;编程模块
化,事件化;可使用大量的 VB控件和模块简化编程;可以调用
Windows中的 API函数和 DLL库;有很好的出错管理机制;与其他
程序有很好的沟通性。
6-10
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, Visual Basic
工
程
信
息
管
理
第
六
章
系
统
实
施
? Visual C++( VC++) 是美国微软公司推出的应用程序的强大、
复杂的开发工具,其对数据库的操作具有快速的集成数据库访
问,允许用户建立强有力的数据库应用程序的特点。
Visual C++的生成代码的向导, 附带的类库等功能大大简化了
程序员的编程工作, 提高了模块的可重用性 。 Visual C++还提
供了基于 CASE技术的可视化软件自动生成和维护工具 AppWizard、
ClassWizard等, 帮助用户可视化设计程序的用户界面, 方便地
编写和管理各种类, 维护程序源代码, 从而提高了开发效率 。
6-11
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, Visual C++
工
程
信
息
管
理
第
六
章
系
统
实
施
? PowerBuilder是一个基于 CLIENT/SERVER方式的, 可视化的开
发环境 。 可以用可视和直观的方式创建应用程序界面和数据
库接口 。
PowerBuilder是面向对象的工具, 同时也是功能强大的编程
语言 。 通过使用 PowerScript编写的代码来实现事件驱动程序 。
PowerBuilder是一个开放系统, 可以访问任何一个常用的后
台数据库系统 。
PowerBuilder支持多平台开发环境 。 此外 PowerBuilder提供
了两种 Internet应用的访问方式 。
6-12
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, PowerBuilder
工
程
信
息
管
理
第
六
章
系
统
实
施
? Delphi是一种与 Visual Basic相类似的可视化开发
环境, Visual Basic是基于 BASIC语言, Delphi是
基于 Pascal语言 。
Delphi从其诞生开始就可作为数据库编程语言,数
据访问功能内置于系统内部。 Delphi提供了对许多
基于文件结构的数据库的支持,通过 ODBC也可以访
问许多传统的基于客户 /服务器模型的数据库。
6-13
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, Delphi
工
程
信
息
管
理
第
六
章
系
统
实
施
? Oracle是美国 Oracle公司研制的对象 — 关系型数据
库管理系统 ( ORDBMS) 。 它具有适于事务处理的高
可用性, 可伸缩性, 安全性, 还提供了超强的处理
功能, 开放的连接能力, 丰富的开发工具 。
支持大数据库, 多用户的高性能的事务处理 。
遵守数据存取语言, 操作系统, 用户接口和网络通
信协议的工业标准, 所以它是一个开放系统, 保护
了用户的投资 。
实施安全性控制和完整性控制 。
支持分布式数据库和分布处理 。
具有可移植性, 可兼容性和可连接性 。
6-14
?关系型数据库软件, Oracle
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? DB2是 IBM公司提供的一种基于 SQL的关系型数据
库产品 。 目前, DB2已成为能够适用于各种硬件
平台和软件平台的产品 。
? 支持面向对象的编程 ;
? 支持多媒体应用程序 ;
? 具有备份和恢复能力 ;
? 支持存储过程和触发器, 用户可以在建表时显示
定义复杂的完整性规则 ;
? 支持 SQL查询 ;
? 支持异构分布式数据库访问 ;
? 支持数据复制 。
6-15
?关系型数据库软件, DB2
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
Informix是美国 Informix软件公司的数
据库系统产品,可在 Unix,Windows NT、
Netware,Macintosh等各种操作系统环境下运
行。 Informix产品主要分为四大类,即数据库
服务器、网络连接软件、应用开发工具、终端
用户访问工具等。
6-16
?关系型数据库软件, Informix
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Sybase公司第一个推出客户 /服务器体系结构和多
线程技术的高性能数据库服务器 。
? 支持 Java和标准的关系数据库查询语言 SQL,支持
广泛的软硬件平台, 具有优秀的联机事务处理功能 。
由于这些特点迎合了计算机联网的普遍要求, 所以
Sybase数据库产品已成为目前最受欢迎的数据库产
品之一 。
? Sybase数据库产品主要由 Sybase服务器软件、
Sybase客户软件,Sybase接口软件等组成。
6-17
?关系型数据库软件, Sybase
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Microsoft SQL Server是运行在 Windows NT上的一个著名的高
性能数据库管理系统 。 它基于多线程的客户 /服务器体系机构,
其最新版本是 SQL Server 7.0。 SQL Server允许集中管理服务
器, 提供企业级的数据复制, 提供平行的体系结构, 支持超大型
数据库, 并可与 OLE对象紧密集成 。
? 当安装 SQL Server 7.0时,用户可以从安装选项中选择将哪些
构件安装到计算机上。 SQL Server7.0包括 SQL Server程序文件、
管理工具、客户端连接、联机文档、开发工具以及示例等选项。
6-18
?关系型数据库软件, SQL Server
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Microsoft Access是微软公司推出的基于 Windows环境的关
系型数据库系统, 它采用 Windows程序设计概念, 具有简单
易用, 功能强大, 面向对象的可视化设计等特点 。
? 用户利用它提供的各种图形化查询工具, 屏幕和报表生成器,
可以建立复杂的查询, 生成复杂的报表, 而不用编程和了解
SQL。 专业人员可通过它提供的各种超级图形工具不用编程
就可以创建数据库应用程序 。
? Access的最新版本是 Access 2000,它不仅可以用于小型数
据库管理, 而且还能够与工作站, 数据库服务器或者主机上
的各种数据库相连 。
6-19
?关系型数据库软件, Access
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? 自从 Ashton-Tate公司在 20世纪 80年代初推出了基于 PC机的
,大众数据库, dBASE以来, 该产品获得了迅速发展, 出现了
许多优秀的兼容产品, 所以可将它们归为 xBASE类数据库系统 。
? xBASE数据库系统主要包括,xBASE的代表 dBASE系列, Fox公
司推出的 Fox系列 ( 包括 FoxBase和 FoxPro), Nantucket公司
推出的 Clipper数据库系统等 。
? 1998年微软公司推出了作为 MS Visual Studio 98组成部分
的 Visual FoxPro 6.0 for Windows。 VFP6.0即具有数据库系
统结构, 同时也是一个面向对象的集成编程工具 。
6-20
6.2 软件 系统的建立
程序设计及数据库系统
?关系型数据库软件, xBASE类数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Paradox是 Borland公司推出的一种通用的关系型数据库管
理系统 。
? 提供了面向多种数据库的接口;
? 采用实例查询 QBE技术在一个查询中连续查询多个表;
? 具有较强的网络功能, 自动对文件和记录加锁, 用户可严
格定义读取权限;
? 可以方便地显示旋转, 立体直方图等十多种不同类型的图
表;
? 提供功能全面, 高层次, 结构化的数据库设计语言 PAL编写
程序 。
6-21
6.2 软件 系统的建立
程序设计及数据库系统
?关系型数据库软件, Paradox
工
程
信
息
管
理
第
六
章
系
统
实
施
?用户的要求 如果所开发的系统由用户负责维护, 用户通常要
求用他们熟悉的语言书写程序 。
?语言的人机交互动能 选用的语言必须能够提供友好, 美观的
人机交互功能, 这对用户来说是非常重要的 。
?软件工具 如果某种语言有较丰富的支持程序开发的软件工具
可以利用, 则使系统的实现和调试都变得比较容易 。
?开发人员的知识 虽然对于有经验的程序员来说, 学习一种新
语言并不困难, 但要完全掌握一种新语言并用它编出高质量的
程序来, 却需要经过一段时间的实践 。 因此, 如果可能的话,
应该尽量选择一种已经为程序员所熟悉的语言 。
?软件可移植性 如果开发出的系统软件将在不同的计算机上运
行, 或打算在某个部门推广使用, 那么应该选择一种通用性强
的语言 。
6-22
6.2 软件 系统的建立
程序开发工具的选择
工
程
信
息
管
理
第
六
章
系
统
实
施
按程序开发路径分为 自顶向下和自底向上 两种方法
? 自顶向下的方法 要求程序员首先实现软件结构的
最高层次, 之后再实现下一个层次, 直至用程序设
计语言实现最低层次为止 。
? 自底向上的方法 与上述方法开发过程相反, 它是从
最底层开始, 直至实现最高层次为止 。
通常用自顶向下的开发方法开发的程序可读性
好, 条理分明, 可靠性也较高 。 而用自底向上开发
方法得到的程序往往局部是最优的, 系统的整体结
构却较差 。
6-23
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 程序设计的基本要求
? 正确性 编出的程序, 能够严格按照规定的要求, 准确无误地
提供预期的全部信息;
? 可理解性 程序的内容清晰, 明了, 便于阅读和理解;
? 可靠性 程序应具有较好的容错能力, 不仅正常情况下能正确
工作, 而且在异常情况下应便于处理;
? 可维护性 程序的应变性能强 。 程序执行过程中, 发现问题或
客观条件有了变化, 调整和修改程序比较简便易行;
? 效率 程序的结构严谨, 明了, 运算处理速度快, 节省机时 。
程序和数据的存储, 调用安排得当, 节省存储空间 。
6-24
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 采用有实际意义的标识符
? 不用过于相似的变量名
? 同一标识符不要具有多种含义
? 名字不要过长, 过长的名字会增加工作量 。
? 在编程前最好能对标识符的选取约定统一的标准, 便于以
后阅读理解 。
标识符的命名, 标识符包括模块名、变量名、常量名、过程名以及
数据区名等。理解程序中这些名字的含义是理解程序的关键,所以
标识符应该适当选取,使其直观,易于理解和记忆。
6-25
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 不要为了节省空间而把多个语句写在同一行;
? 避免过于复杂的条件测试;
? 利用括号使多条件表达式清晰直观;
? 把同一层次的语句行左端对齐, 而下一层的语句向右边缩
进若干格书写, 它能体现程序逻辑结构的深度 。
程序的书写格式, 编程时应注意每个语句力求简单而
直接,不能为了提高效率而使程序过于复杂。恰当的
书写格式将有助于阅读。
6-26
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 注释应正确, 修改程序时应同时修改注释, 否则会起反作用 。
? 注释应提供一些程序本身难以表达的信息 。
? 为了方便用户今后维护, 注释中尽量多用汉字 。
程序的注释, 程序的注释序言性注释出现在模块的首都,内容
应包括:模块功能说明;界面描述(如调用语句格式、所有参
数的解释和该模块需调用的模块名等);某些重要变量的使用、
限制;开发信息(如作者、修改日期等)。
描述性注释嵌在程序之中,用来说明程序段的功能或数据
的状态。
6-27
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 对所有的输入数据都进行检验;
? 检查输入项各种重要组合的合理性;
? 应允许缺省值;
? 输入步骤和操作尽可能简单, 并保持简单的输入
格式 。
程序的输入和输出, 程序的输入和输出信息与用户的使
用直接相关,输入和输出的方式和格式应方便用户使用。
编写程序是应注意:
6-28
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 明确条件和要求 根据系统设计及其他有关资料,弄清该程序设
计的条件和设计要求。
? 分析数据 对要处理的数据进行仔细分析,弄清数据的详细内
容和特点。
? 确定流程 用统一规定的符号,描述数据输入、加工、输出等
处理过程。
? 编写程序 采用某种程序设计语言,按其规定的语法把确定的
流程编写出来。
? 检查和调试 对编好的程序进行检查和调试。
? 编写程序使用说明书
6-29
? 程序设计的步骤
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
?要访问的文件不存在,如该文件已被删掉或在其他
位置。
?要访问的文件是错误的,如索引文件与数据库不匹
配。
?外部设备未准备好,如打印机未通电。
?外存空间不够,数据溢出,如数据错误造成运算结
果过大。
?用户操作错误,如误击键、未按规定步骤操作等,
也称, 隐错误, 。
?常见错误的种类
6-30
6.2 软件 系统的建立
程序的容错处理
工
程
信
息
管
理
第
六
章
系
统
实
施
? 测试法 设置各种测试函数,为将要进行的操作检测其必须的
先决条件是否满足。不满足则采取相应的处理措施。
? 陷井法 设置捕捉错误的陷井,并通过专用测试函数了解出错
情况,以转入不同的处理。与测试法不同,陷井法检测的是已
经发生的错误,而不是将要发生的错误。
? 限定法 对, 隐错误, 进行检测采用的方法,它根据预定的
准则来检验当前或先前的处理是否符合要求。
6-31
?错误检测的方法
6.2 软件 系统的建立
程序的容错处理
工
程
信
息
管
理
第
六
章
系
统
实
施
? 自动处理 在数据系统中,对于因数据库本身因素引起或将
要引起的错误,如字段宽度不够、索引文件与数据不匹配等,
一般可由程序自动进行处理,消除出错因素后便可继续运行。
? 人工干预 对于因外部设备的原因而引起或将要引起的错误,
例如打印机未准备好、磁盘空间不够等,一般可在屏幕上通知
操作者进行人工干预,消除出错因素后,便可恢复运行。
? 等待许可 如果引起出错的因素有可能自行消失,则可以不
作任何处理而等待该因素消失,然后再恢复正常运行。
? 放弃操作 如果引起出错的因素在当时情况下不可能被排除,
或者等待了一段时间仍未消失,或者引起出错的操作无关紧要,
做不做都无所谓,则可以放弃操作。
6-32
?对错误的处理
6.2 软件 系统的建立
程序的容错处理
工
程
信
息
管
理
第
六
章
系
统
实
施
结构化程序设计 (STRUCTURED PROGRAMING,简称 SP)
建立在 Bohm和 Jacopini在 1966年就证明了的结构定理
的基础上,它指出任何程序逻辑结构都可以用顺序、分
支和循环这三种基本结构来表示。
顺序 分支 循环
程序的基本结构
6-33
6.2 软件 系统的建立
结构化程序设计
工
程
信
息
管
理
第
六
章
系
统
实
施
? SP方法用三种基本结构反复嵌套构成, 结构化的程
序, 。 每种结构严格地只有一个入口和一个出口,
所以一般认为, 结构化程序设计是采用自顶向下逐
步求精的设计方法和单入口单出口的控制技术 。
? 由于结构化程序具有结构清晰, 易于阅读和修改,
容易验证其正确性等优点, 因此使用该方法有利于
编写出结构良好的程序, 提高编程工作效率 。
目前, 多种计算机程序语言都支持结构化程序设
计 。
?结构化程序设计 (SP)特点:
6-34
6.2 软件 系统的建立
结构化程序设计
工
程
信
息
管
理
第
六
章
系
统
实
施
? 系统测试是保证系统质量的关键步骤。统计资料表明,对于一
些较大规模的系统来说,系统测试的工作量往往占系统开发总
工作量的 40%以上,开发费用的近 1/2。
? 到目前为止,人们还无法证明一个大型复杂程序的正确性,
只能依靠一定的测试手段来说明该程序在某些条件下没有发生
错误。所以在测试时应想方设法使程序的各个部分部投入运行,
力图找出所有错误。
发现系统中的错误并及时纠正。
6-35
6.3 信息 系统测试
测试的目的、原则
?测试的目的
? 测试是为了发现程序中的错误而执行程序的过程;
? 好的测试方案是很可能发现迄今为止尚未发现错误的测试方案;
? 成功的测试是发现了至今为止尚未发现的错误的测试 。
G.Myers对测试目标做出了如下归纳:
工
程
信
息
管
理
第
六
章
系
统
实
施
? 测试人员应避免测试自己设计的程序;
? 测试用例应分别考虑输入和输出;
? 测试数据的选取应考虑各种不同情况;
? 检查程序是否执行了规定以外的操作;
? 注意保留测试用例;
? 对已发现的错误模块要足够重视 。
6-36
6.3 信息 系统测试
测试的目的、原则
?测试的基本原则
工
程
信
息
管
理
第
六
章
系
统
实
施
程序 1
2
3
4
5
6
7
模块测试 子系统测试
系统测试
6-37
6.3 信息 系统测试
测试过程
工
程
信
息
管
理
第
六
章
系
统
实
施
?静态测试 在模块上机运行前通过阅读程序和人工运
行程序的方法来发现程序中的语法错误和逻辑错误 。
只要认真检查就可以发现绝大部分的语法错误和部分
逻辑错误 。
?动态测试 即模块上机运行测试 。 当人工运行程序走
通以后, 就可上机调试 。
语法错误比较容易发现和修改, 而要追踪逻辑错
误则比较困难 。 为了有效地发现并改正逻辑错误, 除
了要充分利用所有高级语言提供的调试机制或软件工
具外, 还需要掌握测试技术 。
6-38
6.3 信息 系统测试
模块测试
工
程
信
息
管
理
第
六
章
系
统
实
施
子系统测试也称为 分调, 它是在模块测试的基础上,
把各模块组合到一起形成一个子系统来测试的过程 。
目的是解决各模块间相互调用的协调和通信问题, 即
重点测试子系统内各模块的接口 。 可能出现的问题有:
? 一个模块对另一个模块产生有害影响;
? 数据在穿过接口时丢失;
? 把模块组合到一起没有产生预期的功能等问题。
6-39
6.3 信息 系统测试
子系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
? 模块组装成子系统方法
? 非渐增式测试方法 —— 先分别测试每个模块, 再把
所有模块按设计要求结合在一起测试;
? 渐增式测试方法 —— 是把下一个要测试的模块同已
经测试好的那些模块结合起来进行测试, 测试完以
后再结合进来下一个测试的模块继续测试 。
这种方法实际上同时完成模块测试和子系统测
试 。
6-40
6.3 信息 系统测试
子系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
两种方法的比较:
非渐增式测试方法 渐增式测试方法
需要分别测试每个模块,编写的
测试软件(驱动模块和支持模块)
较多,工作量较大;
可利用已测试过的模块
最后才把模块相连在一起, 接口
错误发现得晚 。 可以较早发现模块之间的接口错误
一次组合所有模块, 如果发现错
误难以判断定位 。
如果发生错误则通常和最新加进来
的模块有关;
可以并行测试所有模块, 能充分
利用人力, 加快工程进度 。
占用机时多,测试每个新加入模块
时,已经测试完的模块也都要一起
运行。但测试更彻底
6-41
? 模块组装成子系统方法
6.3 信息 系统测试
子系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
在所有子系统都测试成功以后, 就可以进行系统测
试, 也称为 总调 。 它主要解决各子系统之间的数据通讯
和数据共享 ( 公用数据库 ) 等问题, 以及系统安全测试,
恢复测试和满足用户要求的测试等 。
进行总调时, 可采用一些精心设计的数据量较少的
测试用例, 这样可以使处理的工作量减少, 而且也更容
易发现错误和确定错误所在范围 。
6-42
6.3 信息 系统测试
系统测试
? 安全测试 —— 是指测试系统对外来有意或恶意攻击的自我保护
能力 。
? 恢复测试 —— 是指系统出现意外故障时, 能否正确和迅速恢复
的测试 。
? 系统有效性测试 —— 通过测试来证实系统功能与用户要求一致 。
工
程
信
息
管
理
第
六
章
系
统
实
施
?用户手册
系统开发报告 ( 包括系统分析说明书, 系
统设计说明书, 系统实施说明等 )
有关程序的所有资料
系统操作说明等
?系统说明文件
6-43
6.3 信息 系统测试
系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
对于一个比较庞大或复杂的程序系统,
要想通过彻底地测试并找出全部错误是不可
能的,因此,测试阶段要考虑的基本问题就
是经济性了。应该采取的策略是在一定的开
发周期和经费的限制下,通过进行有限次的
测试,尽可能多发现一些错误。
6-44
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 黑盒子测试,如果产品具备的功能已经知道,则可以测试他的
每一个功能是否都达到了预期的要求,这种方法称为黑盒子测
试。黑盒子测试要求测试人员不必考虑模块的内部结构,而着
眼于软件的外部特性,只用测试数据来检验程序是否符合它的
功能要求,是否会发生异常情况。
? 白盒子测试,如果已知产品的内部活动方式,可以测试他的内
部活动是否都符合设计要求,这种方法称为白盒子测试。与黑
盒子测试不同,它要求测试人员了解模块的内部结构,对程序
的所有逻辑路径进行测试,可以在不同点检查程序的状态,确
定实际状态与预期的状态是否一致。
?模块测试技术
6-45
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
无论是黑箱法还是白箱法都不能将程序中的所有错
误全查出来。因为黑箱法不可能将所有的输入情况都测
试一遍,白箱法也不能穷举模块中的所有可能路径。可
按黑箱法和白箱法的思想按以下方法进行模块测试。
? 等价分类法
? 边界值分析法
? 逻辑覆盖测试法
6-46
?模块测试技术
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 把所有可能的输入数据划分成有限数量的等价类, 并假定用
一个等价类的典型代表值测试等价于这一类其他值的测试 。
? 通常是将模块的输入域划分成 有效等价类 ( 模块中符合规范
的输入 ) 和 无效等价类 ( 模块中非法的输入 ) 两种 。
? 例如:某模块的合理输入是 0~ 100,则大于 0且小于 100的
数据属于有效等价数据;小于 0或大于 100的数据为无效等
价类, 测试数据可以从这两个等价类中抽取 。
6-47
?模块测试技术(等价分类法)
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
在编写程序时, 往往只注意正常情况, 忽视了边界
状态 。 因此, 在测试过程中以刚好等于, 大于或小于边
界值的数据作为测试数据, 容易发现程序中的错误 。 边
界值分析法也属于是一种黑盒子测试技术 。
例如,某模块的有效值是 0~ 100,则可以取- 0.1,
0.1,99.9,100.1作为测试数据 。
6-48
?模块测试技术( 边界值分析法 )
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
用白箱法测试模块时,要执行程序中的每一条路径。
当程序中有循环存在时,测试程序中的每一条路径是不
可能的。而用逻辑覆盖的方法测试模块,只要模块中的
每一个分支方向都至少测试一次即可。对模块中的循环
语句,只需测试循环语句是否执行,而不必去测试每次
循环情况。 逻辑覆盖常用的方法有:
? 语句覆盖
? 判断覆盖
? 条件覆盖
6-49
?模块测试技术(逻辑覆盖测试法)
6.3 信息 系统测试
测试技术及方法
?判断 /条件覆盖
?条件组合覆盖
工
程
信
息
管
理
第
六
章
系
统
实
施
? 模块组合成子系统的渐增式测试方法
驱动模块
H
支持模块 1 支持模块 2
驱动模块 的作用是模拟 H的调用
模块,相当于主控模块
支持模块 的作用是模拟被测模
块所调用的模块
? 自顶向下结合
6-50
6.3 信息 系统测试
测试技术及方法
( 1)用主控模块做测试驱动程序,用支持模块代替所有直接附
属于主控模块的模块;
( 2)根据所选的结合方法,每次用一个实际模块替换一个下属
的支持模块;
( 3)模块结合一个,测试一个;
( 4)完成一组测试后,用实际模块代替。
工
程
信
息
管
理
第
六
章
系
统
实
施
这是一种递增的装配软件结构的方法。从主控模块开始,沿着控
制层次向下移动,把各个模块结合起来。把主控模块所属的那些
模块都装配到结构中去,可采用如下两种方法,
? 先深度后宽度
M1,M2,M5,M8,M6,M3,M7,M4
? 先宽度后深度
M1,M2,M3,M4,M5,M6,M7,M8
M1
M2 M3
M5 M6 M7
M4
M8
6-51
? 模块组合成子系统的渐增式测试方法
? 自顶向下结合
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
从软件结构的最底层开始,进行装配和测试,与自顶
向下结合相反,它需要驱动模块,而不需要支持模块。
6-52
? 模块组合成子系统的渐增式测试方法
? 自底向上结合
6.3 信息 系统测试
测试技术及方法
( 1)把底层模块组合成实现一个特定软件子功能的族;
( 2)为每个族设计一个驱动模块,作为测试的控制模块,以
协调测试软件的输入和输出;
( 3)对模块族进行测试;
( 4)按结构向上的次序,用实际模块替换驱动模块,将模块
族结合起来组合成新的模块族,再进行测试,直至全部完成。去
掉驱动模块向上结合。
工
程
信
息
管
理
第
六
章
系
统
实
施
Mc
Ma Mb
D1 D2 D3
族 1
族 2
族 3
6-53
? 模块组合成子系统的渐增式测试方法
? 自底向上结合
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
?自顶向下结合的优点 在于和子系统整体有关的接口问
题可以在子系统测试的早期得到解决,但设计测试用
例比较困难。
?自底向上结合的优点 在于设计测试用例比较容易,但
它必须在最后一个模块组装出来之后,才能使模块群
作为一个整体存在。
由于上述两种方法具有互补性,一般常结合起来进行。
即对子系统的较上层模块使用自顶向下的组装方法,
对下层模块使用自底向上的组装方法。
6-54
? 模块组合成子系统的渐增式测试方法
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 用户测试
? 人员培训
? 系统转换
信息系统的实现是指用新的信息系统代替原
有系统的一系列过程,其最终目的是将信息系统
完全移交给用户使用。包括以下工作:
6-55
6.4 信息 系统的实现
工
程
信
息
管
理
第
六
章
系
统
实
施
? 在 系统测试完成后要进行用户的 验收测试,验收测
试必须由用户参加或者以用户为主进行。它是用户
在实际应用环境中所进行的真实数据的测试。
验收测试主要使用原有系统所用过的历史数据,将
新系统运行结果和原系统所得相核对,以检查系统
的可靠性和运行效率。
安装测试数据库系统,如果信息系统还需要购买一
些其他的应用软件包,也需要把这些软件包和应用
程序集成到一起进行测试。
6-56
6.4 信息 系统的实现
用户测试
工
程
信
息
管
理
第
六
章
系
统
实
施
?事务管理人员 新系统的目标, 功能;系统的结构及运行过
程;对企业组织机构, 工作方式等产生的影响;采用新系统后,
对职工必须学会新技术的要求; 今后如何衡量任务完成情况 。
系统操作员 必要的计算机硬, 软件知识;键盘指法, 汉字
输入等训练;新系统的工作原理;新系统输入方式和操作方式
的培训;简单出错的及处置知识;运行操作注意事项 。
系统维护人员 培训的最好途径就是让他们直接参与系统的
开发工作, 这样有助于他们了解整个系统的全过程, 并为他们
今后维护工作打下良好的基础 。
6-57
6.4 信息 系统的实现
人员培训
工
程
信
息
管
理
第
六
章
系
统
实
施
原有系统
新系统
原有系统
新系统
原有系统 新系统
时间
?系统转换方式
6-58
6.4 信息 系统的实现
系统转换
直接转换
并行转换
分段转换
工
程
信
息
管
理
第
六
章
系
统
实
施
一个系统运行的质量高低和系统维护有很大关系,
在许多情况下,维护比开发更为困难,需要更多的创造
性工作。近来来,软件的维护费已远远超过系统的开发
费用,占系统硬、软件总投资 60%以上。这是因为:
( 1)维护人员必须用较多时间理解别人编写的程序
和文挡,并且对系统的修改不能影响程序的正确性和完
整。
( 2)整个维护工作必须在所规定的很短时间内完成 。
6-59
6.5 信息 系统运行及维护
系统运行
工
程
信
息
管
理
第
六
章
系
统
实
施
?改正性维护 —— 诊断和改正软件错误的过程 。
适应性维护 —— 为适应软硬件等新的变化进行修改 。
完善性维护 —— 为了满足用户提出增加新功能, 修
改已有的功能以及一般的改进要求和建议进行的工
作 。 这类维护占软件维护工作的大部分 。
预防性维护 —— 为进一步改进系统的可维护性和可
靠性等进行的修改, 在系统维护中这类维护相对来
说是很少的 。
系统维护不仅仅是在运行过程中改正系统的错误。
有关资料表明维护工作的一半左右是完善性维护。
6-60
6.5 信息 系统运行及维护
系统维护(定义)
工
程
信
息
管
理
第
六
章
系
统
实
施
?程序的维护
?数据的维护
?代码的维护
?设备的维护
6-61
6.5 信息 系统运行及维护
系统维护的内容
?确定维护目标,建立维护
人员组织
?建立维护计划方案
?修改程序及调试
?修改文档
Y
决定维护目标
建立维护方案
调试
理解系统
考虑波及影响
修改程序
修改文挡
通过
N
系统维护的过程
工
程
信
息
管
理
第
六
章
系
统
实
施
?检查系统的目标、功能及各项指标是否达到
设计要求
?检查系统的质量
?检查系统使用效果
?根据评审和分析结果,找出系统的薄弱环节,
提出改进意见
6-62
6.6 信息 系统评价
评价目的
工
程
信
息
管
理
第
六
章
系
统
实
施
评价项目 评价指标
系统性能评价
直接经济效益指标
间接经济效益指标
完整性;正确性;可靠性;方便、灵活性;可
维护性;适应性;安全保密性;响应时间;文
完备性
一次性投资;系统运行费用;新增加的效益;
投资回收期
管理体制合理化;管理方法科学化;管理基础
数据规范化;提高管理效率;改善企业形象
6-63
6.6 信息 系统评价
评价指标
工
程
信
息
管
理
第
六
章
系
统
实
施
? 有关系统的文件, 任务书, 文件资料等
系统性能指标的评价
直接经济效益指标的评价
间接经济效益指标的评价
综合性评价
结论及建议
6-64
6.6 信息 系统评价
评价报告
6-1
哈尔滨工业大学管理学院
建设信息教研室
工
程
信
息
管
理
第
六
章
系
统
实
施
第六章 系统实施
6-2
? 硬件系统的建立
? 软件系统的建立
? 信息系统测试
? 信息系统的实现
? 信息系统运行及维护
? 信息系统评价
工
程
信
息
管
理
第
六
章
系
统
实
施
在建立和测试网络时,首要的工作是确定网络的拓
扑结构。网络拓扑是由网络节点设备(包括计算机、集
线器、交换机、路由器等设备)和传输介质构成的网络
结构图。网络拓扑结构对网络采用的技术、网络的可靠
性、网络的可维护性和网络的实施费用都有很大影响。
在选择网络拓扑结构时,一般应考虑以下因素:
? 实施安装的难易程度
? 改造升级后或重新配置的难易程度
? 维护的难易程度
? 传输介质发生故障,对其他设备影响的程度
6-3
6.1 硬件 系统的建立
工
程
信
息
管
理
第
六
章
系
统
实
施 6-4
6.1 硬件 系统的建立
? 按拓扑结构分 总线型
特点,
? 比较容易安装,只需铺设主干电缆,使用电缆较少;
? 比较容易增加或删除节点。但可接受的分支点达到极限时,
就必须重新铺设主干;
? 维护比较困难;
? 总线电缆出现故障或断开,会导致整个网络的通信瘫痪。
?总线型
?星型
?环形
工
程
信
息
管
理
第
六
章
系
统
实
施 6-5
星型拓扑结构
6.1 硬件 系统的建立
星型 ? 网络容易进行重新配置, 只需增加, 移去和改变中心设备的某个端口的联接即可 。
? 维护比较容易, 如果某台计算机发生故障,
整个网络不受影响 。 集线器可以检测到网
络故障, 并且出现个别有问题的计算机或
网络电缆, 网络的其余部分可以正常运行 。
? 对中心结点的可靠性要求较高, 如果中心
节点设备 ( 如集线器或交换机 ) 发生故障,
就会影响到整个网络 。
特点:
工
程
信
息
管
理
第
六
章
系
统
实
施 6-6
环型拓扑结构
6.1 硬件 系统的建立
? 环型拓扑在初始安装时比较简单 。
? 随着网上节点的增加, 也会增加重新配置的难度 。
? 可以很容易地找到电缆的故障点 。
? 在环型系统上出现的任何错误, 都会影响网上的所有设备 。
特点:
环型
工
程
信
息
管
理
第
六
章
系
统
实
施
复合网络拓扑主要是在基本网络拓扑的基础上构
造而成的 。
目前应用较多的是交换式以太网和快速以太网,
其网络主要连接设备是交换机和集线器 。 该种网络具
有维护容易, 网络速度快, 技术成熟等特点 。
6-7
复合网络拓扑
6.1 硬件 系统的建立
工
程
信
息
管
理
第
六
章
系
统
实
施
程序设计及数据库系统
程序设计方法
结构化程序设计
6-8
6.2 软件 系统的建立
工
程
信
息
管
理
第
六
章
系
统
实
施
集成编程工具,
? Visual Basic
? Visual C++
? PowerBuilder
? Delphi
关系型数据库软件,
Oracle
DB2
Informix
Sybase
SQL Server
Access
xBASE类
Paradox
6-9
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
Visual Basic是由微软公司于推出的基于 Windows环境的计算机
程序,目前的最常用的版本是 VB6.0,它是完全集成的编程环境,集
程序设计、调试和查错功能于一身。
VB的主要特点:
继承了 Basic简单易学的特点;适用于 Windows环境下的快速编
程;采用可视化技术,操作直观;采用面向对象技术;编程模块
化,事件化;可使用大量的 VB控件和模块简化编程;可以调用
Windows中的 API函数和 DLL库;有很好的出错管理机制;与其他
程序有很好的沟通性。
6-10
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, Visual Basic
工
程
信
息
管
理
第
六
章
系
统
实
施
? Visual C++( VC++) 是美国微软公司推出的应用程序的强大、
复杂的开发工具,其对数据库的操作具有快速的集成数据库访
问,允许用户建立强有力的数据库应用程序的特点。
Visual C++的生成代码的向导, 附带的类库等功能大大简化了
程序员的编程工作, 提高了模块的可重用性 。 Visual C++还提
供了基于 CASE技术的可视化软件自动生成和维护工具 AppWizard、
ClassWizard等, 帮助用户可视化设计程序的用户界面, 方便地
编写和管理各种类, 维护程序源代码, 从而提高了开发效率 。
6-11
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, Visual C++
工
程
信
息
管
理
第
六
章
系
统
实
施
? PowerBuilder是一个基于 CLIENT/SERVER方式的, 可视化的开
发环境 。 可以用可视和直观的方式创建应用程序界面和数据
库接口 。
PowerBuilder是面向对象的工具, 同时也是功能强大的编程
语言 。 通过使用 PowerScript编写的代码来实现事件驱动程序 。
PowerBuilder是一个开放系统, 可以访问任何一个常用的后
台数据库系统 。
PowerBuilder支持多平台开发环境 。 此外 PowerBuilder提供
了两种 Internet应用的访问方式 。
6-12
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, PowerBuilder
工
程
信
息
管
理
第
六
章
系
统
实
施
? Delphi是一种与 Visual Basic相类似的可视化开发
环境, Visual Basic是基于 BASIC语言, Delphi是
基于 Pascal语言 。
Delphi从其诞生开始就可作为数据库编程语言,数
据访问功能内置于系统内部。 Delphi提供了对许多
基于文件结构的数据库的支持,通过 ODBC也可以访
问许多传统的基于客户 /服务器模型的数据库。
6-13
6.2 软件 系统的建立
程序设计及数据库系统
?集成编程工具, Delphi
工
程
信
息
管
理
第
六
章
系
统
实
施
? Oracle是美国 Oracle公司研制的对象 — 关系型数据
库管理系统 ( ORDBMS) 。 它具有适于事务处理的高
可用性, 可伸缩性, 安全性, 还提供了超强的处理
功能, 开放的连接能力, 丰富的开发工具 。
支持大数据库, 多用户的高性能的事务处理 。
遵守数据存取语言, 操作系统, 用户接口和网络通
信协议的工业标准, 所以它是一个开放系统, 保护
了用户的投资 。
实施安全性控制和完整性控制 。
支持分布式数据库和分布处理 。
具有可移植性, 可兼容性和可连接性 。
6-14
?关系型数据库软件, Oracle
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? DB2是 IBM公司提供的一种基于 SQL的关系型数据
库产品 。 目前, DB2已成为能够适用于各种硬件
平台和软件平台的产品 。
? 支持面向对象的编程 ;
? 支持多媒体应用程序 ;
? 具有备份和恢复能力 ;
? 支持存储过程和触发器, 用户可以在建表时显示
定义复杂的完整性规则 ;
? 支持 SQL查询 ;
? 支持异构分布式数据库访问 ;
? 支持数据复制 。
6-15
?关系型数据库软件, DB2
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
Informix是美国 Informix软件公司的数
据库系统产品,可在 Unix,Windows NT、
Netware,Macintosh等各种操作系统环境下运
行。 Informix产品主要分为四大类,即数据库
服务器、网络连接软件、应用开发工具、终端
用户访问工具等。
6-16
?关系型数据库软件, Informix
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Sybase公司第一个推出客户 /服务器体系结构和多
线程技术的高性能数据库服务器 。
? 支持 Java和标准的关系数据库查询语言 SQL,支持
广泛的软硬件平台, 具有优秀的联机事务处理功能 。
由于这些特点迎合了计算机联网的普遍要求, 所以
Sybase数据库产品已成为目前最受欢迎的数据库产
品之一 。
? Sybase数据库产品主要由 Sybase服务器软件、
Sybase客户软件,Sybase接口软件等组成。
6-17
?关系型数据库软件, Sybase
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Microsoft SQL Server是运行在 Windows NT上的一个著名的高
性能数据库管理系统 。 它基于多线程的客户 /服务器体系机构,
其最新版本是 SQL Server 7.0。 SQL Server允许集中管理服务
器, 提供企业级的数据复制, 提供平行的体系结构, 支持超大型
数据库, 并可与 OLE对象紧密集成 。
? 当安装 SQL Server 7.0时,用户可以从安装选项中选择将哪些
构件安装到计算机上。 SQL Server7.0包括 SQL Server程序文件、
管理工具、客户端连接、联机文档、开发工具以及示例等选项。
6-18
?关系型数据库软件, SQL Server
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Microsoft Access是微软公司推出的基于 Windows环境的关
系型数据库系统, 它采用 Windows程序设计概念, 具有简单
易用, 功能强大, 面向对象的可视化设计等特点 。
? 用户利用它提供的各种图形化查询工具, 屏幕和报表生成器,
可以建立复杂的查询, 生成复杂的报表, 而不用编程和了解
SQL。 专业人员可通过它提供的各种超级图形工具不用编程
就可以创建数据库应用程序 。
? Access的最新版本是 Access 2000,它不仅可以用于小型数
据库管理, 而且还能够与工作站, 数据库服务器或者主机上
的各种数据库相连 。
6-19
?关系型数据库软件, Access
6.2 软件 系统的建立
程序设计及数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? 自从 Ashton-Tate公司在 20世纪 80年代初推出了基于 PC机的
,大众数据库, dBASE以来, 该产品获得了迅速发展, 出现了
许多优秀的兼容产品, 所以可将它们归为 xBASE类数据库系统 。
? xBASE数据库系统主要包括,xBASE的代表 dBASE系列, Fox公
司推出的 Fox系列 ( 包括 FoxBase和 FoxPro), Nantucket公司
推出的 Clipper数据库系统等 。
? 1998年微软公司推出了作为 MS Visual Studio 98组成部分
的 Visual FoxPro 6.0 for Windows。 VFP6.0即具有数据库系
统结构, 同时也是一个面向对象的集成编程工具 。
6-20
6.2 软件 系统的建立
程序设计及数据库系统
?关系型数据库软件, xBASE类数据库系统
工
程
信
息
管
理
第
六
章
系
统
实
施
? Paradox是 Borland公司推出的一种通用的关系型数据库管
理系统 。
? 提供了面向多种数据库的接口;
? 采用实例查询 QBE技术在一个查询中连续查询多个表;
? 具有较强的网络功能, 自动对文件和记录加锁, 用户可严
格定义读取权限;
? 可以方便地显示旋转, 立体直方图等十多种不同类型的图
表;
? 提供功能全面, 高层次, 结构化的数据库设计语言 PAL编写
程序 。
6-21
6.2 软件 系统的建立
程序设计及数据库系统
?关系型数据库软件, Paradox
工
程
信
息
管
理
第
六
章
系
统
实
施
?用户的要求 如果所开发的系统由用户负责维护, 用户通常要
求用他们熟悉的语言书写程序 。
?语言的人机交互动能 选用的语言必须能够提供友好, 美观的
人机交互功能, 这对用户来说是非常重要的 。
?软件工具 如果某种语言有较丰富的支持程序开发的软件工具
可以利用, 则使系统的实现和调试都变得比较容易 。
?开发人员的知识 虽然对于有经验的程序员来说, 学习一种新
语言并不困难, 但要完全掌握一种新语言并用它编出高质量的
程序来, 却需要经过一段时间的实践 。 因此, 如果可能的话,
应该尽量选择一种已经为程序员所熟悉的语言 。
?软件可移植性 如果开发出的系统软件将在不同的计算机上运
行, 或打算在某个部门推广使用, 那么应该选择一种通用性强
的语言 。
6-22
6.2 软件 系统的建立
程序开发工具的选择
工
程
信
息
管
理
第
六
章
系
统
实
施
按程序开发路径分为 自顶向下和自底向上 两种方法
? 自顶向下的方法 要求程序员首先实现软件结构的
最高层次, 之后再实现下一个层次, 直至用程序设
计语言实现最低层次为止 。
? 自底向上的方法 与上述方法开发过程相反, 它是从
最底层开始, 直至实现最高层次为止 。
通常用自顶向下的开发方法开发的程序可读性
好, 条理分明, 可靠性也较高 。 而用自底向上开发
方法得到的程序往往局部是最优的, 系统的整体结
构却较差 。
6-23
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 程序设计的基本要求
? 正确性 编出的程序, 能够严格按照规定的要求, 准确无误地
提供预期的全部信息;
? 可理解性 程序的内容清晰, 明了, 便于阅读和理解;
? 可靠性 程序应具有较好的容错能力, 不仅正常情况下能正确
工作, 而且在异常情况下应便于处理;
? 可维护性 程序的应变性能强 。 程序执行过程中, 发现问题或
客观条件有了变化, 调整和修改程序比较简便易行;
? 效率 程序的结构严谨, 明了, 运算处理速度快, 节省机时 。
程序和数据的存储, 调用安排得当, 节省存储空间 。
6-24
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 采用有实际意义的标识符
? 不用过于相似的变量名
? 同一标识符不要具有多种含义
? 名字不要过长, 过长的名字会增加工作量 。
? 在编程前最好能对标识符的选取约定统一的标准, 便于以
后阅读理解 。
标识符的命名, 标识符包括模块名、变量名、常量名、过程名以及
数据区名等。理解程序中这些名字的含义是理解程序的关键,所以
标识符应该适当选取,使其直观,易于理解和记忆。
6-25
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 不要为了节省空间而把多个语句写在同一行;
? 避免过于复杂的条件测试;
? 利用括号使多条件表达式清晰直观;
? 把同一层次的语句行左端对齐, 而下一层的语句向右边缩
进若干格书写, 它能体现程序逻辑结构的深度 。
程序的书写格式, 编程时应注意每个语句力求简单而
直接,不能为了提高效率而使程序过于复杂。恰当的
书写格式将有助于阅读。
6-26
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 注释应正确, 修改程序时应同时修改注释, 否则会起反作用 。
? 注释应提供一些程序本身难以表达的信息 。
? 为了方便用户今后维护, 注释中尽量多用汉字 。
程序的注释, 程序的注释序言性注释出现在模块的首都,内容
应包括:模块功能说明;界面描述(如调用语句格式、所有参
数的解释和该模块需调用的模块名等);某些重要变量的使用、
限制;开发信息(如作者、修改日期等)。
描述性注释嵌在程序之中,用来说明程序段的功能或数据
的状态。
6-27
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 对所有的输入数据都进行检验;
? 检查输入项各种重要组合的合理性;
? 应允许缺省值;
? 输入步骤和操作尽可能简单, 并保持简单的输入
格式 。
程序的输入和输出, 程序的输入和输出信息与用户的使
用直接相关,输入和输出的方式和格式应方便用户使用。
编写程序是应注意:
6-28
? 编程风格
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 明确条件和要求 根据系统设计及其他有关资料,弄清该程序设
计的条件和设计要求。
? 分析数据 对要处理的数据进行仔细分析,弄清数据的详细内
容和特点。
? 确定流程 用统一规定的符号,描述数据输入、加工、输出等
处理过程。
? 编写程序 采用某种程序设计语言,按其规定的语法把确定的
流程编写出来。
? 检查和调试 对编好的程序进行检查和调试。
? 编写程序使用说明书
6-29
? 程序设计的步骤
6.2 软件 系统的建立
程序设计方法
工
程
信
息
管
理
第
六
章
系
统
实
施
?要访问的文件不存在,如该文件已被删掉或在其他
位置。
?要访问的文件是错误的,如索引文件与数据库不匹
配。
?外部设备未准备好,如打印机未通电。
?外存空间不够,数据溢出,如数据错误造成运算结
果过大。
?用户操作错误,如误击键、未按规定步骤操作等,
也称, 隐错误, 。
?常见错误的种类
6-30
6.2 软件 系统的建立
程序的容错处理
工
程
信
息
管
理
第
六
章
系
统
实
施
? 测试法 设置各种测试函数,为将要进行的操作检测其必须的
先决条件是否满足。不满足则采取相应的处理措施。
? 陷井法 设置捕捉错误的陷井,并通过专用测试函数了解出错
情况,以转入不同的处理。与测试法不同,陷井法检测的是已
经发生的错误,而不是将要发生的错误。
? 限定法 对, 隐错误, 进行检测采用的方法,它根据预定的
准则来检验当前或先前的处理是否符合要求。
6-31
?错误检测的方法
6.2 软件 系统的建立
程序的容错处理
工
程
信
息
管
理
第
六
章
系
统
实
施
? 自动处理 在数据系统中,对于因数据库本身因素引起或将
要引起的错误,如字段宽度不够、索引文件与数据不匹配等,
一般可由程序自动进行处理,消除出错因素后便可继续运行。
? 人工干预 对于因外部设备的原因而引起或将要引起的错误,
例如打印机未准备好、磁盘空间不够等,一般可在屏幕上通知
操作者进行人工干预,消除出错因素后,便可恢复运行。
? 等待许可 如果引起出错的因素有可能自行消失,则可以不
作任何处理而等待该因素消失,然后再恢复正常运行。
? 放弃操作 如果引起出错的因素在当时情况下不可能被排除,
或者等待了一段时间仍未消失,或者引起出错的操作无关紧要,
做不做都无所谓,则可以放弃操作。
6-32
?对错误的处理
6.2 软件 系统的建立
程序的容错处理
工
程
信
息
管
理
第
六
章
系
统
实
施
结构化程序设计 (STRUCTURED PROGRAMING,简称 SP)
建立在 Bohm和 Jacopini在 1966年就证明了的结构定理
的基础上,它指出任何程序逻辑结构都可以用顺序、分
支和循环这三种基本结构来表示。
顺序 分支 循环
程序的基本结构
6-33
6.2 软件 系统的建立
结构化程序设计
工
程
信
息
管
理
第
六
章
系
统
实
施
? SP方法用三种基本结构反复嵌套构成, 结构化的程
序, 。 每种结构严格地只有一个入口和一个出口,
所以一般认为, 结构化程序设计是采用自顶向下逐
步求精的设计方法和单入口单出口的控制技术 。
? 由于结构化程序具有结构清晰, 易于阅读和修改,
容易验证其正确性等优点, 因此使用该方法有利于
编写出结构良好的程序, 提高编程工作效率 。
目前, 多种计算机程序语言都支持结构化程序设
计 。
?结构化程序设计 (SP)特点:
6-34
6.2 软件 系统的建立
结构化程序设计
工
程
信
息
管
理
第
六
章
系
统
实
施
? 系统测试是保证系统质量的关键步骤。统计资料表明,对于一
些较大规模的系统来说,系统测试的工作量往往占系统开发总
工作量的 40%以上,开发费用的近 1/2。
? 到目前为止,人们还无法证明一个大型复杂程序的正确性,
只能依靠一定的测试手段来说明该程序在某些条件下没有发生
错误。所以在测试时应想方设法使程序的各个部分部投入运行,
力图找出所有错误。
发现系统中的错误并及时纠正。
6-35
6.3 信息 系统测试
测试的目的、原则
?测试的目的
? 测试是为了发现程序中的错误而执行程序的过程;
? 好的测试方案是很可能发现迄今为止尚未发现错误的测试方案;
? 成功的测试是发现了至今为止尚未发现的错误的测试 。
G.Myers对测试目标做出了如下归纳:
工
程
信
息
管
理
第
六
章
系
统
实
施
? 测试人员应避免测试自己设计的程序;
? 测试用例应分别考虑输入和输出;
? 测试数据的选取应考虑各种不同情况;
? 检查程序是否执行了规定以外的操作;
? 注意保留测试用例;
? 对已发现的错误模块要足够重视 。
6-36
6.3 信息 系统测试
测试的目的、原则
?测试的基本原则
工
程
信
息
管
理
第
六
章
系
统
实
施
程序 1
2
3
4
5
6
7
模块测试 子系统测试
系统测试
6-37
6.3 信息 系统测试
测试过程
工
程
信
息
管
理
第
六
章
系
统
实
施
?静态测试 在模块上机运行前通过阅读程序和人工运
行程序的方法来发现程序中的语法错误和逻辑错误 。
只要认真检查就可以发现绝大部分的语法错误和部分
逻辑错误 。
?动态测试 即模块上机运行测试 。 当人工运行程序走
通以后, 就可上机调试 。
语法错误比较容易发现和修改, 而要追踪逻辑错
误则比较困难 。 为了有效地发现并改正逻辑错误, 除
了要充分利用所有高级语言提供的调试机制或软件工
具外, 还需要掌握测试技术 。
6-38
6.3 信息 系统测试
模块测试
工
程
信
息
管
理
第
六
章
系
统
实
施
子系统测试也称为 分调, 它是在模块测试的基础上,
把各模块组合到一起形成一个子系统来测试的过程 。
目的是解决各模块间相互调用的协调和通信问题, 即
重点测试子系统内各模块的接口 。 可能出现的问题有:
? 一个模块对另一个模块产生有害影响;
? 数据在穿过接口时丢失;
? 把模块组合到一起没有产生预期的功能等问题。
6-39
6.3 信息 系统测试
子系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
? 模块组装成子系统方法
? 非渐增式测试方法 —— 先分别测试每个模块, 再把
所有模块按设计要求结合在一起测试;
? 渐增式测试方法 —— 是把下一个要测试的模块同已
经测试好的那些模块结合起来进行测试, 测试完以
后再结合进来下一个测试的模块继续测试 。
这种方法实际上同时完成模块测试和子系统测
试 。
6-40
6.3 信息 系统测试
子系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
两种方法的比较:
非渐增式测试方法 渐增式测试方法
需要分别测试每个模块,编写的
测试软件(驱动模块和支持模块)
较多,工作量较大;
可利用已测试过的模块
最后才把模块相连在一起, 接口
错误发现得晚 。 可以较早发现模块之间的接口错误
一次组合所有模块, 如果发现错
误难以判断定位 。
如果发生错误则通常和最新加进来
的模块有关;
可以并行测试所有模块, 能充分
利用人力, 加快工程进度 。
占用机时多,测试每个新加入模块
时,已经测试完的模块也都要一起
运行。但测试更彻底
6-41
? 模块组装成子系统方法
6.3 信息 系统测试
子系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
在所有子系统都测试成功以后, 就可以进行系统测
试, 也称为 总调 。 它主要解决各子系统之间的数据通讯
和数据共享 ( 公用数据库 ) 等问题, 以及系统安全测试,
恢复测试和满足用户要求的测试等 。
进行总调时, 可采用一些精心设计的数据量较少的
测试用例, 这样可以使处理的工作量减少, 而且也更容
易发现错误和确定错误所在范围 。
6-42
6.3 信息 系统测试
系统测试
? 安全测试 —— 是指测试系统对外来有意或恶意攻击的自我保护
能力 。
? 恢复测试 —— 是指系统出现意外故障时, 能否正确和迅速恢复
的测试 。
? 系统有效性测试 —— 通过测试来证实系统功能与用户要求一致 。
工
程
信
息
管
理
第
六
章
系
统
实
施
?用户手册
系统开发报告 ( 包括系统分析说明书, 系
统设计说明书, 系统实施说明等 )
有关程序的所有资料
系统操作说明等
?系统说明文件
6-43
6.3 信息 系统测试
系统测试
工
程
信
息
管
理
第
六
章
系
统
实
施
对于一个比较庞大或复杂的程序系统,
要想通过彻底地测试并找出全部错误是不可
能的,因此,测试阶段要考虑的基本问题就
是经济性了。应该采取的策略是在一定的开
发周期和经费的限制下,通过进行有限次的
测试,尽可能多发现一些错误。
6-44
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 黑盒子测试,如果产品具备的功能已经知道,则可以测试他的
每一个功能是否都达到了预期的要求,这种方法称为黑盒子测
试。黑盒子测试要求测试人员不必考虑模块的内部结构,而着
眼于软件的外部特性,只用测试数据来检验程序是否符合它的
功能要求,是否会发生异常情况。
? 白盒子测试,如果已知产品的内部活动方式,可以测试他的内
部活动是否都符合设计要求,这种方法称为白盒子测试。与黑
盒子测试不同,它要求测试人员了解模块的内部结构,对程序
的所有逻辑路径进行测试,可以在不同点检查程序的状态,确
定实际状态与预期的状态是否一致。
?模块测试技术
6-45
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
无论是黑箱法还是白箱法都不能将程序中的所有错
误全查出来。因为黑箱法不可能将所有的输入情况都测
试一遍,白箱法也不能穷举模块中的所有可能路径。可
按黑箱法和白箱法的思想按以下方法进行模块测试。
? 等价分类法
? 边界值分析法
? 逻辑覆盖测试法
6-46
?模块测试技术
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 把所有可能的输入数据划分成有限数量的等价类, 并假定用
一个等价类的典型代表值测试等价于这一类其他值的测试 。
? 通常是将模块的输入域划分成 有效等价类 ( 模块中符合规范
的输入 ) 和 无效等价类 ( 模块中非法的输入 ) 两种 。
? 例如:某模块的合理输入是 0~ 100,则大于 0且小于 100的
数据属于有效等价数据;小于 0或大于 100的数据为无效等
价类, 测试数据可以从这两个等价类中抽取 。
6-47
?模块测试技术(等价分类法)
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
在编写程序时, 往往只注意正常情况, 忽视了边界
状态 。 因此, 在测试过程中以刚好等于, 大于或小于边
界值的数据作为测试数据, 容易发现程序中的错误 。 边
界值分析法也属于是一种黑盒子测试技术 。
例如,某模块的有效值是 0~ 100,则可以取- 0.1,
0.1,99.9,100.1作为测试数据 。
6-48
?模块测试技术( 边界值分析法 )
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
用白箱法测试模块时,要执行程序中的每一条路径。
当程序中有循环存在时,测试程序中的每一条路径是不
可能的。而用逻辑覆盖的方法测试模块,只要模块中的
每一个分支方向都至少测试一次即可。对模块中的循环
语句,只需测试循环语句是否执行,而不必去测试每次
循环情况。 逻辑覆盖常用的方法有:
? 语句覆盖
? 判断覆盖
? 条件覆盖
6-49
?模块测试技术(逻辑覆盖测试法)
6.3 信息 系统测试
测试技术及方法
?判断 /条件覆盖
?条件组合覆盖
工
程
信
息
管
理
第
六
章
系
统
实
施
? 模块组合成子系统的渐增式测试方法
驱动模块
H
支持模块 1 支持模块 2
驱动模块 的作用是模拟 H的调用
模块,相当于主控模块
支持模块 的作用是模拟被测模
块所调用的模块
? 自顶向下结合
6-50
6.3 信息 系统测试
测试技术及方法
( 1)用主控模块做测试驱动程序,用支持模块代替所有直接附
属于主控模块的模块;
( 2)根据所选的结合方法,每次用一个实际模块替换一个下属
的支持模块;
( 3)模块结合一个,测试一个;
( 4)完成一组测试后,用实际模块代替。
工
程
信
息
管
理
第
六
章
系
统
实
施
这是一种递增的装配软件结构的方法。从主控模块开始,沿着控
制层次向下移动,把各个模块结合起来。把主控模块所属的那些
模块都装配到结构中去,可采用如下两种方法,
? 先深度后宽度
M1,M2,M5,M8,M6,M3,M7,M4
? 先宽度后深度
M1,M2,M3,M4,M5,M6,M7,M8
M1
M2 M3
M5 M6 M7
M4
M8
6-51
? 模块组合成子系统的渐增式测试方法
? 自顶向下结合
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
从软件结构的最底层开始,进行装配和测试,与自顶
向下结合相反,它需要驱动模块,而不需要支持模块。
6-52
? 模块组合成子系统的渐增式测试方法
? 自底向上结合
6.3 信息 系统测试
测试技术及方法
( 1)把底层模块组合成实现一个特定软件子功能的族;
( 2)为每个族设计一个驱动模块,作为测试的控制模块,以
协调测试软件的输入和输出;
( 3)对模块族进行测试;
( 4)按结构向上的次序,用实际模块替换驱动模块,将模块
族结合起来组合成新的模块族,再进行测试,直至全部完成。去
掉驱动模块向上结合。
工
程
信
息
管
理
第
六
章
系
统
实
施
Mc
Ma Mb
D1 D2 D3
族 1
族 2
族 3
6-53
? 模块组合成子系统的渐增式测试方法
? 自底向上结合
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
?自顶向下结合的优点 在于和子系统整体有关的接口问
题可以在子系统测试的早期得到解决,但设计测试用
例比较困难。
?自底向上结合的优点 在于设计测试用例比较容易,但
它必须在最后一个模块组装出来之后,才能使模块群
作为一个整体存在。
由于上述两种方法具有互补性,一般常结合起来进行。
即对子系统的较上层模块使用自顶向下的组装方法,
对下层模块使用自底向上的组装方法。
6-54
? 模块组合成子系统的渐增式测试方法
6.3 信息 系统测试
测试技术及方法
工
程
信
息
管
理
第
六
章
系
统
实
施
? 用户测试
? 人员培训
? 系统转换
信息系统的实现是指用新的信息系统代替原
有系统的一系列过程,其最终目的是将信息系统
完全移交给用户使用。包括以下工作:
6-55
6.4 信息 系统的实现
工
程
信
息
管
理
第
六
章
系
统
实
施
? 在 系统测试完成后要进行用户的 验收测试,验收测
试必须由用户参加或者以用户为主进行。它是用户
在实际应用环境中所进行的真实数据的测试。
验收测试主要使用原有系统所用过的历史数据,将
新系统运行结果和原系统所得相核对,以检查系统
的可靠性和运行效率。
安装测试数据库系统,如果信息系统还需要购买一
些其他的应用软件包,也需要把这些软件包和应用
程序集成到一起进行测试。
6-56
6.4 信息 系统的实现
用户测试
工
程
信
息
管
理
第
六
章
系
统
实
施
?事务管理人员 新系统的目标, 功能;系统的结构及运行过
程;对企业组织机构, 工作方式等产生的影响;采用新系统后,
对职工必须学会新技术的要求; 今后如何衡量任务完成情况 。
系统操作员 必要的计算机硬, 软件知识;键盘指法, 汉字
输入等训练;新系统的工作原理;新系统输入方式和操作方式
的培训;简单出错的及处置知识;运行操作注意事项 。
系统维护人员 培训的最好途径就是让他们直接参与系统的
开发工作, 这样有助于他们了解整个系统的全过程, 并为他们
今后维护工作打下良好的基础 。
6-57
6.4 信息 系统的实现
人员培训
工
程
信
息
管
理
第
六
章
系
统
实
施
原有系统
新系统
原有系统
新系统
原有系统 新系统
时间
?系统转换方式
6-58
6.4 信息 系统的实现
系统转换
直接转换
并行转换
分段转换
工
程
信
息
管
理
第
六
章
系
统
实
施
一个系统运行的质量高低和系统维护有很大关系,
在许多情况下,维护比开发更为困难,需要更多的创造
性工作。近来来,软件的维护费已远远超过系统的开发
费用,占系统硬、软件总投资 60%以上。这是因为:
( 1)维护人员必须用较多时间理解别人编写的程序
和文挡,并且对系统的修改不能影响程序的正确性和完
整。
( 2)整个维护工作必须在所规定的很短时间内完成 。
6-59
6.5 信息 系统运行及维护
系统运行
工
程
信
息
管
理
第
六
章
系
统
实
施
?改正性维护 —— 诊断和改正软件错误的过程 。
适应性维护 —— 为适应软硬件等新的变化进行修改 。
完善性维护 —— 为了满足用户提出增加新功能, 修
改已有的功能以及一般的改进要求和建议进行的工
作 。 这类维护占软件维护工作的大部分 。
预防性维护 —— 为进一步改进系统的可维护性和可
靠性等进行的修改, 在系统维护中这类维护相对来
说是很少的 。
系统维护不仅仅是在运行过程中改正系统的错误。
有关资料表明维护工作的一半左右是完善性维护。
6-60
6.5 信息 系统运行及维护
系统维护(定义)
工
程
信
息
管
理
第
六
章
系
统
实
施
?程序的维护
?数据的维护
?代码的维护
?设备的维护
6-61
6.5 信息 系统运行及维护
系统维护的内容
?确定维护目标,建立维护
人员组织
?建立维护计划方案
?修改程序及调试
?修改文档
Y
决定维护目标
建立维护方案
调试
理解系统
考虑波及影响
修改程序
修改文挡
通过
N
系统维护的过程
工
程
信
息
管
理
第
六
章
系
统
实
施
?检查系统的目标、功能及各项指标是否达到
设计要求
?检查系统的质量
?检查系统使用效果
?根据评审和分析结果,找出系统的薄弱环节,
提出改进意见
6-62
6.6 信息 系统评价
评价目的
工
程
信
息
管
理
第
六
章
系
统
实
施
评价项目 评价指标
系统性能评价
直接经济效益指标
间接经济效益指标
完整性;正确性;可靠性;方便、灵活性;可
维护性;适应性;安全保密性;响应时间;文
完备性
一次性投资;系统运行费用;新增加的效益;
投资回收期
管理体制合理化;管理方法科学化;管理基础
数据规范化;提高管理效率;改善企业形象
6-63
6.6 信息 系统评价
评价指标
工
程
信
息
管
理
第
六
章
系
统
实
施
? 有关系统的文件, 任务书, 文件资料等
系统性能指标的评价
直接经济效益指标的评价
间接经济效益指标的评价
综合性评价
结论及建议
6-64
6.6 信息 系统评价
评价报告