第10章实现与测试 本章导读 信息系统开发经过需求分析和设计之后,需要编程实现和测试。代码实现是按照系统详 细设计的要求,在选定的开发平台下,使用指定的开发工具和开发语言,遵循特定的程序设 计方法,所进行的代码编写工作。测试是为了保证系统质量所从事的发现模型和程序错误的 工作。有静态测试和动态测试两种主要测试方法。测试工作包括模型测试、单元测试、集成 测试、系统测试和验收测试等工作。经过测试的信息系统就可以移交给用户使用 主要知识点 系统实现 ■测试 过渡与评价
10.1编程与实现 前面两章详细介绍了信息系统体系结构设计和详细设计,其中详细设计包括业务对象模 型设计、功能逻辑设计、数据库设计和界面设计等工作。信息系统体系结构设计和详绀设计 是系统实现的基础,设计模型以及设计文档是软件代码实现的主要参考文档。 系统实现包括代码实现、单元测试、系统集成等工作,单元测试放在测试节介绍,本 节主要介绍代码实现和系统集成两项工作。 10.1.1代码实现 代码实现是按照系统详缃设计的要求,在选定的开发平台下,使用指定的开发工具和开 发语言,遵循特定的程序设计方法,所进行的代码编写工作。代码实现将依据前面的设计方 案,并对设计文档中确定的每一个函数、方法、过程,以及类、包、界面进行编程实现。 1.代码实现的策略 在详细设计阶段,对系统的业务对象,对象的属性、方法和操作,数据库表结构,界面 的布局等细节都作了详细设计。在编程之初,对设计的类、构件、子系统需要确定开发策略, 有以下几种开发策略: 自顶向下开发策略; 自底向上开发策略 ●基于业务对象的用例实现开发策略 1)自顶向下开发策略 在结构化方法的程序设计中就开始釆用自顶向下策略。按照这种策略来编写程序,从顶 层模玦编起,然后逐步向下层模块延伸,直到最后编写最底层模块的程序。面向对象程序设 计也可以禾取自顶向下的开发策略。按照这种策略,应该先从主界面开始编写界面层程序, 然后编写业务层程序和数据层程序。自顶向下开发策略的优点是无需为测试程序专门构造测 试环境和测试驱动程序,由于程序是从主畀面开始编写起,后面编写的程序在前面已经编写 好的程序基础上运行。这种方法的缺点是在编程初期,不能组织多个程序员同时编写多个程 序模块,因为主界面和下层界面的程序还没有编写好时,其他程序没有办法测试。但这只是 编程初期岀现的现象,在主界面和几个下层界面程序调试之后,多个功能块的编程工作就可 以同时展开 2)自底向上开发策略 自底向上的开发策略与自顶向下的策略正好相反,先从数据层开始编程,逐步向业务层 和畀面层过渡。这种策略的优点是多个程序员在开发初期就可以同时投入编程工作,能够提 高编程效率。但其缺点是需要编写大量驱动程序来测试所编写的底层模坎,给开发和测试带 来很重的负担。 3)基于业务对象的用例实现开发策略
基于业务对象的用例实现开发策略是在CS和BS模式下,采用面向对象方法开发的一 种经典的编程策略。这种策略的基本开发步骤是,第一,根据业务对象模型建立数据库。把 设计模型中业务对象模型定义的所有业务对象转变成为数据库中的数据表,并在选择的数据 库管理系统中建立起这些物理数据表。第二,编写并测试业务对象程序。编写业务对象模型 中的业务对象程序,每一个业务对象都应该作为独立的类进行编写。对所编写的业务对象程 序认真进行测试,保证没有错误。第三,编写并测试用例实现程序。在设计阶段的功能逻辑 设计中,对需求模型中的每一个用例进行了详细设计。功能逻辑设计确定了为了完成一个用 例的功能,应该参与的界面类、控制类和实体类,并用类图描述了这些类相互之间的关系 用顺序图描述了为实现该用例的功能,这些类中的对象相互之间是如何协调完成用例功能的 因为整个系统的实体类程序在第二步已经编写完成了,在此只需要利用集成开发环境构建该 用例涉及的界面,编写并测试控制类程序。第四,集成测试。集成本用例涉及的实体类、控 制类和界面类程序,并进行集成测试。后面将介绍基于这种策略所进行的系统实现工作。 图10.1软件开发时间安排 3
图10.2软件开发安排的甘特图 2.代码实现的组织与计划 程序开发阶段为了保证工期,提高开发效率,需要投入大量程序员同时开展开发工作。 这样就需要对参与的程序员进行有效组织。可以把程序员组成开发小组,由开发小组承担编 程工作。小组组成有平等协作制、组长负责制和技能互补制三种形式。在平等协作制的小组 中,各成员具有大体相同的技术和经验,具有相似的专业背景,他们在组内是平等的,区别 仅仅是承担了不同的编程工作。组长负责制的小组中由小组长负责全组的管理协调和技术 作,组长具有全组工作的决策权和控制权。技能互补制的小组中各个成员的技术水平和知识 背景具有互补作用,每一个成员都有其他成员所不具有的技术专长,相互工作是互相补充, 相得益彰。 不管采用何种人员组织方式,作为开发的管理人员,需要对项目开发的进度,有一个详 细的安排计划,并要求开发人员在没有特殊变动的情况下严格按照计划执行,只有这样,才 能够保证开发工作按时完成。图10.1和图10.2是一个利用 Microsoft Office Project2003编制 的工作计划示例。在实际开发时,代码开发计划应该制定地更为细致,一个类、一个界面, 甚至一个方法和函数的实现都应该纳入工作计划之中 代码实现 代码实现是把详细设计方案转变成为实际软件产品的过程,主要完成数据库实现,业务 功能实现和界面实现。在确定了实现策略,制定了详细的开发计划之后,就可以开始系统的 代码实现工作。下面按照基于业务对象的用例实现开发策略所规定的开发步骤,介绍代码实 现的基本工作
1)根据业务对象模型建立数据库 数据库在信息系统中处于重要位置,合理、可行的数据库设计方案对信息系统具有至关 重要的作用。一般软件系统的数据库设计方法已经十分成熟,需要绎过概念设计、逻辑设计 和物埋设计等步骤,最后在选定的数据库管理系统上建立符合设计的物理数据库。UML出 现之后,随着基于面向对象方法建模工具的成熟,数据库设计工作已经被大大简化。通过建 模工具可以自动生成与业务对象模型对应的数据库 图917是书务系统的业务对象模型,利用 Rational rose2003建模工具可以根据该模型 生成书务系统的数据库,图10.3是转变后得到的数据模型图,这个数据模型图是业务对象模 型和数据库之间的种中间形态,它描述了根据业务对象模型要转换得到的数据库,各个数 据表的结构以及各表之间的关联关系。例如,“T图书”,T出版社和“T图书类别”分别 是业务对象模型中”图书”,“出版社”和“图书类别”三个类要建立的三个数据表。“T图书” 和T出版社之间存在一对多的关联关系,因此,在“T图书”中增加了“出版社编号”作 为外键与T出版社进行关联。 图103书务系统的业务对象模型转化成的数据模型图 由数据模型可以生成物理数据库。图10.4是利用 Rational rose2003在图10.3的数据模 型基础上,生成的物理数据库的数据表清单,以及“T图书”,“T图书类别”,“T出版社” 三个数据表的结构