7.5 系统文档编制和实现、测试
7.5.1 编制设计文档
在面向对象软件设计中,各个阶段的成果都有需要及时地以文档形式记录出来,以方便下一阶段的使用及为客户、用户或经销商服务。
如果一个文档是面向客户的,最关心的问题就是系统的功能如何。因此文档编制应从描述系统用途开始,紧接着描述一系列的用户场景或事件—响应模型。文档应当说明目标系统的范围以及系统所接收和产生的信息,并让读者遍历每一个场景或事件,一步一步地验证事件是如何被识别的,相关联的响应是如何产生的。为了使文档清晰明了,应当将属性和服务的定义以及细节的描述以字母的顺序进行排序,一些分层的列表可以放在文档附录中。
如果文档所面向的对象是软件设计者,最关心的问题是系统的结构,而不是系统的行为。因此在这种设计文档中应当给出完整的五层OOA模型。而表现模型的一个有效的方法是将OOA模型表现为一组主题集。如果能用单个图表就可以将主题表示出来,则这组主题及其基本的细节内容就能提供一个OOA模型的书面形式。为了将各个主题联系起来,表示一个完整的系统模型,在这类文档的开头应当提供一个所有主题和一览。图7.16给出了这种面向设计者的设计文档的一般结构。在该结构中,每个类都用单独的一页进行描述。类或成分之间的连接则出现在该页的周围。
7.5.2 系统实现
在面向对象分析和面向对象设计之后,接下来的工作便是依据分析和设计的成果实现该系统。本节将介绍如何在目前很流行的快速应用开发环境(rapid application development,RAD),即由各种不同的应用程序构造的系统中将经过面向对象分析和设计的系统付诸实现。
由于RAD工具可以将事务规则、用户界面技术以及数据库访问技术等集成在单个单元中,因此使用RAD技术进行系统实现将有利于提高系统的可重用性和可维护性。在使用RAD工具进行面向对象系统的实现时,应遵循以下一些规则:
(1) 将所有问题论域部分(PDC)中的对象映射到RAD部分中,称为RAD对象。如将每个PDC对象都在一个单独的源文件中进行实现,这样使得与该类有关的系统逻辑都有包含在一起,且与其他类的系统逻辑相分离,有利于程序的重用。
(2) 所有人机交互部分(HIC)中的对象应当作为RAD屏幕或表格进行实现。RAD对象中不应该包含与HIC相对应的部分,而利用屏幕和表格与RAD对象进行通信。在HIC中,允许不对事务规则和数据库访问规则进行封装。
(3) 所有的数据库接口都只能通过RAD对象实现。
(4) 对象的服务和属性都有是由RAD工具提供的程序设计语言的子程序和变量。
(5) RAD 对象之间的消息通信都通过函数的调用来完成。
(6) 实例连接、整体—部分关系和泛化—特化关系由RAD对象之间的共享变量实现。
7.5.3 系统测试
在面向对象软件设计中,系统的测试分为系统级的测试和对象级的测试。
1,系统级的测试
系统级的测试,常用的测试方法有黑盒测试法和白盒测试法两种。
黑盒测试是要证实的是系统功能的执行与规格说明中的规定的相一致。它是基于系统级的规格说明而进行的,这些规格说明包括需求定义模型、事件—响应模型和用户界面规格说明。执行黑盒测试较为有效的方法是建立从用户角度来捕捉系统行为的系统应用论域的场景,即使用事例。当然在进行黑盒测试时需要各方面的人员参与。
黑盒测试的一个重要优点是:它不需要特殊的测试环境,测试人员可以在通常的开发环境中完成测试的各项工作。
值得注意的是要保存完整的测试日记和记录,便于最后的测试评价和之后的系统的修正及改进。
白盒测试是基于各种设计文档中所定义的内部系统结构对系统进行测试。一般来说,白盒测试所使用的文档的EROI图、OOA模型、OOD模型以及GUI设计文档等。在白盒测试中,所有能为EROI图中定义的类所识别的事件、各个类之间的协同以及所有EROI图中定义的对不同事件的响应必须经过验证。在测试进行的时间次序上,白盒测试一般放在相关联的黑盒测试完成之后进行。白盒测试一般由熟悉开发环境和设计方法但不属于该项目组织的人员来执行。
2、对象级的测试
对象级测试独立于任何特定的应用系统。由于对象的引用所带来的一个较大的特点是对象可以在许多不同的应用程序中被复用,因此对象级的测试必须在通用的复用环境中进行。
对象级黑盒测试是通过一个对象级的测试平台来完成。该测试平台可以向所测试的对象发送预定的消息,并能够对消息进行显示、捕促和分析。一般由系统开发组的成员在特定的测试平台上进行。测试过程中,应该为所测试的每个对象建立一个独立于其他对象和应用环境测试的用户手册。
对象级白盒测试也是由系统开发组成员完成的。该测试主要是对所涉及的所有服务及其组成部分进行检查,以确定它们与服务的规格说明和属性的定义是一致的。对象级的白盒测试需要使用可以将所要测试的对象从其他对象中分离出来的特定的测试平台,以便能够对对象进行独立于其他对象和应用环境的测试。
7.5.1 编制设计文档
在面向对象软件设计中,各个阶段的成果都有需要及时地以文档形式记录出来,以方便下一阶段的使用及为客户、用户或经销商服务。
如果一个文档是面向客户的,最关心的问题就是系统的功能如何。因此文档编制应从描述系统用途开始,紧接着描述一系列的用户场景或事件—响应模型。文档应当说明目标系统的范围以及系统所接收和产生的信息,并让读者遍历每一个场景或事件,一步一步地验证事件是如何被识别的,相关联的响应是如何产生的。为了使文档清晰明了,应当将属性和服务的定义以及细节的描述以字母的顺序进行排序,一些分层的列表可以放在文档附录中。
如果文档所面向的对象是软件设计者,最关心的问题是系统的结构,而不是系统的行为。因此在这种设计文档中应当给出完整的五层OOA模型。而表现模型的一个有效的方法是将OOA模型表现为一组主题集。如果能用单个图表就可以将主题表示出来,则这组主题及其基本的细节内容就能提供一个OOA模型的书面形式。为了将各个主题联系起来,表示一个完整的系统模型,在这类文档的开头应当提供一个所有主题和一览。图7.16给出了这种面向设计者的设计文档的一般结构。在该结构中,每个类都用单独的一页进行描述。类或成分之间的连接则出现在该页的周围。
7.5.2 系统实现
在面向对象分析和面向对象设计之后,接下来的工作便是依据分析和设计的成果实现该系统。本节将介绍如何在目前很流行的快速应用开发环境(rapid application development,RAD),即由各种不同的应用程序构造的系统中将经过面向对象分析和设计的系统付诸实现。
由于RAD工具可以将事务规则、用户界面技术以及数据库访问技术等集成在单个单元中,因此使用RAD技术进行系统实现将有利于提高系统的可重用性和可维护性。在使用RAD工具进行面向对象系统的实现时,应遵循以下一些规则:
(1) 将所有问题论域部分(PDC)中的对象映射到RAD部分中,称为RAD对象。如将每个PDC对象都在一个单独的源文件中进行实现,这样使得与该类有关的系统逻辑都有包含在一起,且与其他类的系统逻辑相分离,有利于程序的重用。
(2) 所有人机交互部分(HIC)中的对象应当作为RAD屏幕或表格进行实现。RAD对象中不应该包含与HIC相对应的部分,而利用屏幕和表格与RAD对象进行通信。在HIC中,允许不对事务规则和数据库访问规则进行封装。
(3) 所有的数据库接口都只能通过RAD对象实现。
(4) 对象的服务和属性都有是由RAD工具提供的程序设计语言的子程序和变量。
(5) RAD 对象之间的消息通信都通过函数的调用来完成。
(6) 实例连接、整体—部分关系和泛化—特化关系由RAD对象之间的共享变量实现。
7.5.3 系统测试
在面向对象软件设计中,系统的测试分为系统级的测试和对象级的测试。
1,系统级的测试
系统级的测试,常用的测试方法有黑盒测试法和白盒测试法两种。
黑盒测试是要证实的是系统功能的执行与规格说明中的规定的相一致。它是基于系统级的规格说明而进行的,这些规格说明包括需求定义模型、事件—响应模型和用户界面规格说明。执行黑盒测试较为有效的方法是建立从用户角度来捕捉系统行为的系统应用论域的场景,即使用事例。当然在进行黑盒测试时需要各方面的人员参与。
黑盒测试的一个重要优点是:它不需要特殊的测试环境,测试人员可以在通常的开发环境中完成测试的各项工作。
值得注意的是要保存完整的测试日记和记录,便于最后的测试评价和之后的系统的修正及改进。
白盒测试是基于各种设计文档中所定义的内部系统结构对系统进行测试。一般来说,白盒测试所使用的文档的EROI图、OOA模型、OOD模型以及GUI设计文档等。在白盒测试中,所有能为EROI图中定义的类所识别的事件、各个类之间的协同以及所有EROI图中定义的对不同事件的响应必须经过验证。在测试进行的时间次序上,白盒测试一般放在相关联的黑盒测试完成之后进行。白盒测试一般由熟悉开发环境和设计方法但不属于该项目组织的人员来执行。
2、对象级的测试
对象级测试独立于任何特定的应用系统。由于对象的引用所带来的一个较大的特点是对象可以在许多不同的应用程序中被复用,因此对象级的测试必须在通用的复用环境中进行。
对象级黑盒测试是通过一个对象级的测试平台来完成。该测试平台可以向所测试的对象发送预定的消息,并能够对消息进行显示、捕促和分析。一般由系统开发组的成员在特定的测试平台上进行。测试过程中,应该为所测试的每个对象建立一个独立于其他对象和应用环境测试的用户手册。
对象级白盒测试也是由系统开发组成员完成的。该测试主要是对所涉及的所有服务及其组成部分进行检查,以确定它们与服务的规格说明和属性的定义是一致的。对象级的白盒测试需要使用可以将所要测试的对象从其他对象中分离出来的特定的测试平台,以便能够对对象进行独立于其他对象和应用环境的测试。