信息管理与信息系统专业《信息系统分析与设计》讲义(第8章)141022

止,市场上的客户/服务器类工具有:Windows下FoxPro、 Visual BASIC、Visual C ++、Excel、PowerPoint、Word以及Borland International公司的Delphi Client/Server、Powersoft公司的Power Builder Enterprise、Sysmantec的Team Enterprise Developer等。

⑥面向对象编程工具

面向对象类编程工具主要是指与OO(包括OOA, OOD)方法相对应的编程工具。目前面有潜力的系统开发工具。这类工具最显著特点是:它必须与整个OO方法相结合。没有这类工具,OO方法的特点将受到极大的限制,反之,没有OO方法,该类工具也将失去其应有的作用。

(2)程序的调试

程序的调试就是要在计算机上以各种可能的数据和操作条件对程序进行试验,找出存在的问题加以修改,使之完全符合设计要求。在大型软件的研制过程中调试工作的比重是很大的,一般占50%左右。所以对于程序的调试工作应给予充分的重视。

①程序调试的方法和应注意的事项

? 黑箱测试(blank box testing)。即不管程序内部是如何编制的,只是从外部根据HIPO

图的要求对模块进行测试。

? 数据测试(data testing)。即用大量实际数据进行测试。数据类型要齐备,各种“边

值”“端点”都应该调试到。

? 穷举测试(exhaustive testing)。亦称完全测试(complete testing)。即程序运行的各个

分支都应该调试到。

? 操作测试(operating testing)。即从操作到各种显示、输出应全面检查,检查是否与

设计要求相一致。

? 模型测试(model testing)。即核算所有计算结果。 ②程序调试的主要步骤

? 模块调试。按上述要求对模块进行全面的调试(主要是调试其内部功能)。

? 分调。由程序的编制者对本子系统有关的各模块实行联调,以考查各模块外部功能、

接口以及各模块之间调用关系的正确性。

? 联调。各模块、各子系统均经调试准确无误后,就可进行系统联调。联调是实施阶

段的最后一道检验工序。联调通过后,即可投人程序的试运行阶段。

实践证明这种分步骤的调试方法是非常奏效的。它得益于结构化系统设计和程序设计的基本思想。在其操作过程中自身形成了一个个反馈环,由小到大,通过这些反馈较容易发现

编程过程中的问题,及时地修正,如图8.6所示。

模块调试系统调试子系统调试 图8.6 程序调试的主要步骤

8.3.7 集成开发环境 [26]第9.2.2

集成开发环境(Integrated Developing Environment,IDE)是一个综合性的工具软件,它把程序设计过程中所需的各项功能集合在一起,为程序设计人员提供完整的开发支持。其应用范围在“开发、构建和调试”周期中,为开发人员提供代码编辑、组装、编译、连接、调试和版本管理等工作。集成开发环境并不是把各种功能简单地拼装在一起,而是把它们有机地结合起来,统一在一个图形化操作界面下,为开发工作提供了一站式服务。例如,程序设计中为了排除语法错误,需要反复进行编译、查错、修改、再编译操作,集成开发环境可使各步骤之间能够方便地进行切换,可以方便地输人源程序。然后,通过简革的菜单命令或快捷键启动编译,发现错误后又能直接把光标定位到出错的位置上,对相应的源代码进行修改。此外,集成开发环境的编辑器除了具备一般文本编辑器的功能外,还可以自动识别程序文本中的不同语法成分,例如数据类型、变量、指令、注释等,并且用不同的颜色显示,对使用者进行提示。

(1)Eclipse开发环境 ①Eclipse

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。Eclipse是替代IBM Visual Age for Java的集成开发环境,它不仅用于开发Java程序,还可以通过开发插件扩展到任何语言。Eclipse可集成来自不同供应商的工具,并实现了工具间的互操作,因此Eclipse也是一个建造开发工具的环境。作为开放源码项目,可以到www. eclipse. org免费下载Eclipse的最新版本。

②CVS

开发人员往往有这样的体验:对编写的程序做了修改,一段时间后发现修改导致了其他错误,而此时却很难找到原来在哪里做了改动。一般来说,开发人员总是希望能完整地记录

程序的开发过程,记录程序的每一点改进和调整。虽然使用备份能在一定程度上解决这个问题,但备份机制很不方便。同时,现代系统开发都是协作式的,可能会有很多人参与开发,使用备份很难进行管理。此时,就需要一个专门的系统来管理源代码。

并发版本管理系统(Concurrent Versions System , CVS)是一个版本控制管理系统,用于管理在开发过程中生成的源代码、文档等。它可以记录软件开发过程中的更新历史,包括何人、何时、做了什么样的修改以及为什么做这样的修改等与一些其他的版本管理系统不同,CVS支持分布式项目的开发。一个程序员开发出自己负责模块的新版本后,可通过CVS让开发组的每一个成员迅速分享。

CVS版本控制系统采用C/S架构,CVS服务器可以支持Linux、Windows以及部分UNIX(如Sun的Solaris等),CVS客户端在Linux、windows和UNIX上都有对应的版本。

③Ant

Ant是基于Java平台的构建工具,是一个流程脚本引擎,能非常方便地自动调用程序完成项目的编译、测试、打包和部署等任务,提高开发效率。Ant采用Java开发,具有很好的跨平台性,可以集成到很多开发环境中。Ant脚本使用XML语法,结构清晰,使用方便。

④JUnit

JUnit是由Erich Gamma和Kent Beck编写的开放源代码的Java回归测试框架,用于编写和运行可重复的测试,它是用于单元测试框架体系xUnit的一个实例。作为程序员进行测试时,JUnit是一种白盒测试,即程序员知道被测软件完成什么功能以及如何完成这些功能。Java下的团队开发,采用CVS+Ant + JUnit的模式时,通过对Ant的配置,可以简单地实现测试自动化。

JUnit是典型的Composite模式。TestSuite可以容纳任何派生自Test的对象;当调用TestSuite对象的run()方法时,TestSuite会遍历相应的对象,逐个调用它们的run()方法。

8.3.8 开放源码问题 [26]第9.3

开放源码软件(Open Source Software,OSS),是指其全部源码程序对任何人都是公开的,并允许任何人免费(或少许收费)获取、使用、复制、修改及发布的软件。软件所附的各种权利随程序一起发布,不需要额外的声明。同样,也不允许通过间接的方式对软件进行封锁,诸如各种保密协议。这类软件许可证的宗旨往往与传统商业软件相反,旨在保护用户的使用权力。软件的作者乐意共享其劳动成果,也希望同行参与对该软件的改进。

开放源码软件从自由软件(Free Software)发展而来。开放源码使开发者与用户相互协作,

并使更多的人加入竞争,从而提高了软件的质量和生产力。

最著名的开放源码软件应该是Linux,Linux的出现打破了少数操作系统软件一统天下的局面。现在包括Apache、PHP、MySQL、SendMail等著名的开放源码软件都得到了广泛的应用。Sun、IBM、Novell、Red Hat、Oracle甚至Microsoft公司等都开始把自己的一些软件以开放源码的形式发布出来。开放源码软件的功能强大而且运行稳定,可以利用其搭建应用系统。

(1)开放源码软件的原则

开放源码软件涉及源码本身和开发过程,包括3个方面的意义:免费分发的源代码、模块化的体系和集市式的开发。根据开放源码促进会的规定,开放源码软件应符合以下10项原则:

? 允许自由再分发(Free Redistribution):排除了为短期销售额而放弃长期收益的诱惑; ? 必须包括源代码(Source Code):使程序改进变得容易;

? 允许修改元作品并产生衍生作品(Derived Works):只具有阅读源码的权力,不足以

支持独立的同行评价和快速的进化选择;

? 必须保持作者源代码的完整性(Integrity of the Author's Source Code):用户有权知道

正在使用的软件由谁来负责;作者和维护者也有权利支持和维护声誉;

? 不得歧视任何个人和团体(No Discrimination Against Persons or Groups ):为了从整

个过程中得到最大的收益,禁止把某些人排除在外;

? 不得对特定领域有差别限制(No Discrimination Against Fields of Endeavor):让商业

人士加人社区而不是被排除在外;

? 条款对衍生产品自动适用( Distribution of License ):程序上的权利必须适用于任何

再分发的程序,禁止以间接的方式封闭软件;

? 授权条款不得附属于其他产品之下(License Must Not Be Specific to a Product ):许可

证不能特殊对待一个产品,预先防止了其他类型的许可证的陷阱;

? 授权条款不得对随同分发的其他软件做出限制(License Must Not Restrict Other

Software):分发者有对自己的软件进行选择的权利;

? 分发渠道必须保持技术中立性(License Must Be Technology Neutral):不限制特定方

式或平台才能取得,不能依赖任何个人技术或者接口。 (2)开放源码软件的优点

开放源码能为用户提供质量高、稳定性好、安全可靠、价格低廉、种类丰富的软件。其

联系客服:779662525#qq.com(#替换为@)