; I=I+1 I<=N; Print S;
7.8 请说明“三层结构”与“三个模型”之间的关系。 三个模型从根本上满足了B/A/S(Browser/Application/Server)三层结构的需求:B层(又称浏览层)对应功能模型,A层(又称业务逻辑层)对应业务模型,S层(又称数据库服务器层)对应数据模型。这真是一种奇妙的、天衣无缝的巧合!
7.9 请说明“三层结构”的工作原理。
三层之间,通过各自提供的接口来访问,比如用户想登录并操作系统,在表示层输入用户名和密码,表示层会收集相关的数据传递给业务层,业务层将数据经过一些处理和封装之后,再传递给数据层,数据层执行相应数据库中表的操作,并将结果返回业务层,业务层再返回表示层,表示层再显示给用户看。对登录信息和操作信息,都是这样分层处理、协调工作的。业务层与数据层的信息交换采取“批发方式”,业务层与表示层的信息交换采取“零售方式”。
7.10 请说明“三层结构”的优点。
① 三层之间的低耦合,互不干扰,哪一层出了问题就去找哪一层解决。同时,由于同一层内的各个类之间,也是低耦合,所以不会出现Bug现象。
② 三层结构减少了客户机的工作量,提高了网络系统的运行效率。
③ 三层结构有利于系统的维护和升级,各个层的维护,互不影响。例如,修改表示层,不会影响用业务层;修改业务层,也不会影响用数据层。而且,所有层的维护与修改,都是在服务器上进行,不需要到用户现场出差。
7.11 模块(构件)实现设计包括哪些内容?
模块、构件与部件、组件基本上是一个意思,有时会认为部件和组件的粒度比构件大一些或范围广一些。上述定义有三个特点:第一个特点是构件要被明确标识,即有一个被调用的名字;第二个特点是构件应该可复用,不可复用的只能称为模块或子系统,第三个特点是
构件是软件制品,在宏观上软件制品可以是项目计划、成本估计、体系结构、需求模型、设计模型、程序代码、窗口界面、文档、数据结构、测试用例等。
在微观上的构件,通常是指程序代码级的构件。这种构件在技术上的三个流派是Sun的Java平台、Microsoft的COM+平台、IBM的CORBA平台。构件具有接口标准、通信协议、同步和异步操作。可执行的构件独立于编程语言,具有版本兼容性。构件库是组织管理构件的仓库,它提供构件的入库、出库、查询功能。构件有两种级别:可执行文件级和源代码级。可执行文件级别上的构件是已通过编译的构件,因而与语言无关。源代码级别上的构件实际上只是构件模板,可以用多种语言实现,当然与语言有关。构件还可以分成可见构件和非可见构件,可见构件是在屏幕上看得见、拖得动、可修改的控件,非可见构件是在系统内部运行的构件。在详细设计说明书中已对新增构件的功能和算法进行了详述,此处只要将详细设计翻译为源程序即可。
在大型软件企业内部,新增构件的实现及构件库的管理是软件实现的重要内容。构件库管理系统用于构件储存、构件检索、构件浏览和构件管理。因此,构件库管理系统的主要功能是:构件的分类入库与存储,按用户需求在构件库中浏览或检索构件,对不再使用的构件进行删除,对构件使用情况的统计与评价。
7.12 怎么理解“详细设计是面向模块的,不是面向组织结构或部门单位的”? 一个组织或单位,根据角色的不同授权,可以挂上不同的模块或部件。一个优秀的软件,不会因企事业单位内部的组织结构变动,而导致软件不能使用。因此详细设计是面向模块的,不是面向组织结构或部门单位的。
7.13 为什么软件设计要遵守“抽象、分解与模块化,低耦合、高内聚,封装,接口和实现分离”的设计原理?
当前,软件设计过程仍然是一个非确定性过程,经常是摸着石头过河。不同的设计人员对相同的问题可以得到不同的设计方案。由于设计过程是一个启发式过程,不是确定性过程,因此不可能得到一个完全可预测的结果。为此,只能规定一些设计原理或原则,供设计人员共同遵守。这些原理或原则是“抽象、分解与模块化、低藕合高内聚、封装、接口和实现分离”。
7.14 你怎样理解面向对象设计步骤?
由于在面向对象中,需求分析、架构设计(概要设计)、详细设计(部件实现设计)三个阶段使用的描述工具都是UML,所以考虑面向对象设计的步骤或过程,就要将面向对象的需求分析、架构设计、详细设计融为一个整体,捆绑在一起考虑。事实上,这一过程是一个连续的、互相联系的、互相渗透的、反复迭代循环的、逐步细化的过程。
下面,在三层结构背景下,以“功能模型、业务模型、数据模型”作为建模方法论,以UML和Visio作为建模工具,从宏观上来说明面向对象设计的具体步骤,如下图所示。对于微观上的设计步骤,因各种软件项目的具体内容不同,以才及各个项目组人员的设计风格不同,其微观设计步骤也千变万化,在此不进行介绍。
面向对象设计的步骤图
7.15 你怎样理解“面向元数据方法用在数据库服务器层次上系统的设计与实现,面向对象方法用在除数据库服务器层次之外的其他层次上系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现”?
上述提法是实事求是的。我们知道,所谓的“面向过程的方法是传统的软件工程方法,面向对象的方法是现代软件工程方法”的观点是肤浅的。这三种方法不是互相孤立、毫无联系、彼此对立的,而是互相帮助、取长补短、彼此有关的。三种设计方法各有所长,所以各有应用空间。又各有所短,所以各有局限性。我们只能扬长避短、为我所用。
一般而言,对于一个大型信息系统的建设,由于其分析、设计、实现、测试、维护的重点是数据库服务器上的数据,所以在实施的过程中,在宏观上仍然要遵守“五个面向”的实施理论,即“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”。
7.16 评审记录表设计合理吗?你有何改进意见?
到目前为止,还看不出设计上有什么问题,因此没有改进意见。
7.17 完成“图书馆信息系统”的《概要设计说明书》和《详细设计说明书》。 课外作业,在此省略。
习 题 8
8.1 软件测试的目的和目标是什么?
简单明了地说,软件测试的目的就是发现软件缺陷。但同时还要时刻牢记在心的是:软件测试的目标是尽可能早地发现软件缺陷,并确保其得以修复。这里的缺陷,包括Bug和不符合项。
8.2 什么是软件缺陷?
我们说,符合下列五个规则之一的就是软件缺陷:
(1)软件未达到产品说明书(需求报告或需求说明书)标明的功能; (2)软件出现了产品说明书指明不会出现的错误; (3)软件未达到产品说明书未指明但应达到的目标; (4)软件功能超出产品说明书所指明的范围;
(5)软件测试人员认为软件难以理解、不易使用、速度缓慢,或者最终客户认为不好。
8.3 试举例说明软件测试的原则。 (1)尽早开展测试工作;
(2)完全测试不可能,把握最优测试量; (3)严防寄生虫现象;
(4)严防杀虫剂现象;
(5)并非所有的软件缺陷都能修复; (6)难以说清楚的软件缺陷; (7)产品说明书不断变化;
(8)软件测试人员在产品小组中不受欢迎。
8.4 试阐述软件测试V模型的思想、不足之处和改进方法。
软件测试V模型的基本思想,如图所示。我们可以初步了解,左侧是开发阶段,右侧是测试阶段。开发阶段先从定义软件需求开始,然后要把这些需求不断地转换到概要设计和详细设计中去,最后形成程序代码。测试阶段是在代码编写完成以后,先作单元测试开始,然后是集成测试、系统测试和验收测试。
对V模型的进一步阐述是:当需求分析完成后,验收测试计划也应完成。当概要设计完成后,系统测试计划也应完成。当详细设计完成后,集成测试计划也应完成。当编码完成后,单元测试计划也应完成。可见,V模型提高了测试的时间与地位。
软件测试V模型
以上的测试V模型,一般只适合于瀑布开发模型,若对迭代开发模型,就显得不足了。
实际工作中,V模型只是提高了测试工作的地位,具体测试方法,仍然是黑白盒子法。
8.5 试说出几种软件测试的分类方法。
软件测试分类的实质,是软件测试技术的分类。测试工作中采用不同的测试技术,就产生了不同的测试类型,相继也产生了很多的测试类型术语,大概有以下几种。
(1) 动态测试:通过运行程序开展测试工作,即软件测试人员通过使用软件来找出缺陷;
(2)静态测试:不通过运行程序来开展测试工作; (3)黑盒测试:又叫功能测试(Functional Testing); (4)白盒测试:可以理解为对程序执行路径的测试;
(5)通过测试:简单的说,就是验证软件至少能做什么,而不会考查其能力有多强; (6)失败测试:纯粹是为了验证软件在某一条件下,是否会出现异常、停止工作等现象而进行的测试;
(7)负载/压力测试:一方面,可以通过减少软件需要的资源,来测试软件运行的最低配置或者最低资源需求;另一方面,可以正常提供软件需要的资源,但是通过不断加重软件要处理的任务,来测试软件在正常配置下具有的能力指标;
(8)易用性测试:易用性测试的目的很明确,即简单易用,但是标准不容易确定; (9)其他测试:如边界值测试、兼容性测试、回归测试、Alpha测试和Beta测试等。
8.6 试说出黑盒测试和白盒测试的区别和联系。
黑盒测试又称功能测试。在这里,盒子指的是被测试的软件,“黑盒”就是只知道被测试软件的外部情况,主要是界面和接口,被测试软件的内部逻辑结构和数据结构,对测试人员来说是不可见的,主要关注被测试软件的功能实现。
白盒测试就是对程序执行路径的测试,又叫做玻璃盒测试(Glass Box Testing)、透明盒测试(Clear Box Testing)、结构化测试(Structured Testing)、开放盒测试(Open Box Testing)、基于代码的测试(Code-Based Testing)等。
黑盒测试和白盒测试的联系是:一般宏观上用黑盒测试,微观上用白盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员用白盒测试方法对构件进行测试,这是常用的测试方法。
8.7 黑盒测试和白盒测试各自的依据是什么?
黑盒测试的依据是用户需求分析报告中的功能点列表、性能点列表和接口列表。 白盒测试的依据是软件详细设计说明书。
8.8 软件测试工作中的关键问题是测试用例设计,这种说法对吗?为什么? 对!测试用例是最底层的测试计划,是一切测试的基础。
8.9 简述实用软件测试的流程。 实用软件测试流程可以分5步展开: (1)理解、验证和分解需求。 (2)编写测试计划(包括测试设计)。 (3)测试执行。 (4)专项测试。
(5)编写测试报告。
8.10 小组分工,分解“图书管理系统”其他功能点,编写测试功能点列表。 课外作业,自行解决。
8.11 同学分组,分配各种软件测试角色,利用现有资源,拟编写一份“图书管理系统”的测试计划。
由于“图书馆信息系统”的功能点比较多,笔者先列举几个功能点作为例子,其他的测试功能点列表可同理得到,如下表所示。
测试功能点列表 编号 功能名称 测试功能
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实用软件工程第3版习题解答V1.2(5)在线全文阅读。
相关推荐: