上午卷-5.系统开发与运营-软件设计师

系统开发与运营

习题

在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述
对基本加工的说明有三种描述方式:结构化语言、判断表(决策表)、判断树(决策树)。

基本加工逻辑描述的基本原则为:

1.对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。

2.基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。

3.加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。

4.加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。

在这里插入图片描述
结构化设计方法是一种面向数据流的设计方法,与结构化分析方法衔接。在需求分析阶段,结构化分析方法产生了数据流图,而在设计阶段,结构化设计方法将数据流映射为软件系统的模块结构。数据流图中从系统的输入数据流到系统的输出数据流的一连串变换形成了一条信息流。其中的信息流一般情况下包括变换流型和事物流型不同类型的数据流到程序模块的映射方法不同。一个软件系统往往不仅仅有一种数据流类型。
7.
在这里插入图片描述
8.
在这里插入图片描述
9.
在这里插入图片描述
数据流图中有四个要素:

①外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;

②数据流表示数据沿箭头方向的流动;

③加工是对数据对象的处理或变换;

④数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。根据上述定义和题干说明,患者是外部实体。实体联系图也是一个常用的数据模型,用于描述数据对象及数据对象之间的关系。

实体联系图有三个要素:
①实体是目标系统所需要的复合信息的表示,也称为数据对象;
②属性定义数据对象的特征;
③联系是不同数据对象之间的关系。在该系统中患者是一个数据对象,即实体,具有多种属性。
10.
在这里插入图片描述
11.
在这里插入图片描述
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。

耦合是模块之间的相对独立性的度量,模块之间的连接越紧密, 联系越多,耦合性就越高,而其模块独立性就越弱。

一般来说,模块之间的耦合有7种类型,根据耦合性从低到高为

非直接耦合、
数据耦合、
标记耦合、
控制耦合、
外部耦合、
公共耦合和
内容耦合。

如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合;

如果一组模块通过数据结构本身传递,则称这种耦合为标记耦合;

若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合;

若一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口,上述几个情形之一发生则说明两个模块之间就发生了内容耦合。
12.
在这里插入图片描述
①偶然内聚:指一个模块内的各个处理元素之间没有任何联系。
②逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
③时间内聚:把需要同时执行的动作组合在一起形成的模块。
④通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。
⑤顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行, 前一个功能元素的输出就是下一个功能元素的输入。
⑥功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可
13.
在这里插入图片描述
一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。

一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。

一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。

如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。
14.
在这里插入图片描述
通常,可以按照在软件系统中的功能将模块分为四种类型。
①传入模块:取得数据或输入数据,经过某些处理,再将其传送给其他模块.
②传出模块:输出数据,在输出 之前可能进行某些处理,数据可能被输出到系统的外部,或者会输出到其他模块进行进一步处理。
③变换模块:从上级调用模块得到数据,进行特定的处理,转换成其他形式,在将加工结果返回给调用模块。
④协调模块一般不对数据进行加工,主要是通过调用、协调和管理其他模块来完成特定的功能。
15.
在这里插入图片描述
在这里插入图片描述
16.
在这里插入图片描述
17.
在这里插入图片描述
18.
在这里插入图片描述
19.
在这里插入图片描述
数据流图是结构化分析的一个重要模型,描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模。

数据流图中有四个要素:

外部实体,也称为数据源或数据汇点,表示要处理的数据的输入来源或处理结果要送往何处,不属于目标系统的一部分,通常为组织、部门、人、相关的软件系统或者硬件设备;

数据流表示数据沿箭头方向的流动;

加工是对数据对象的处理或变换;

数据存储在数据流中起到保存数据的作用,可以是数据库文件或者任何形式的数据组织。

根据上述定义和题干说明,读者是外部实体,图书和借书证是数据流,借阅是加工。
20.
在这里插入图片描述
在这里插入图片描述
21.
在这里插入图片描述
22.
在这里插入图片描述
结构化分析将数据和处理作为分析对象,数据的分析结果表示了现实世界中实体的属性及其之间的相互关系,而处理的结果则展现了系统对数据的加工和转换。

面向数据流建模是目前仍然被广泛使用的方法之一,而DFD则是面向数据流建模中的重要工具,DFD将系统建模成输入一处理一输出的模型,即流入软件的数据对象,经由处理的转换,最后以结果数据对象的形式流出软件。

在实际使用DFD进行数据流建模时,需要注意以下原则:

①加工处理和数据流的正确使用,如一个加工必须既有输入又有输出;数据流只能和加工相关,即从加工流向加工、数据源流向加工或加工流向数据源。

②每个数据流和数据存储都要在数据字典中有定义,数据字典将包括各层数据流图中数据元素的定义。

③数据流图中最底层的加工处理必须有加工处理说明。

④父图和子图必须平衡,即父图中某加工的输入输出(数据流)和分解这个加工的子图的输入输出数据流必须完全一致,这种一致性不一定要求数据流的名称和个数一 一对应,但它们在数据字典中的定义必须一致,数据流或数据项既不能多也不能少。

⑤加工处理说明和数据流图中加工处理涉及的元素保持一致。例如,在加丄处理说明中,输入数据流必须说明其如何使用,输出数据流说明如何产生或选取,数据存储说明如何选取、使用或修改。

⑥一幅图中的图元个数控制在7+2以内。

在题目所示的DFD图中,数据流DF2、DF6和DF7的输入、输出均不是加工,这与“数据流只能和加工相关,即从加工流向加工、数据源流向加工或加工流向数据源”相违背。

加工P1只有输出,没有输入;
加工P3只有输入没有输出,这与“一个加工必须既有输入又有输出”相违背。数据流
DF4经过加工P4之后没有发生任何改变,说明该数据对加工P4是没有作用的,根据数据守恒原理,这条数据流不应与P4有关联。综上,该DFD图中共有6个错误。
23.
在这里插入图片描述
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合程度越低,内聚程度越高,则模块的独立性越好。存在多种模块之间的耦合类型,从低到高依次为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。其中, 公共耦合是指一组模块都访问同一公共数据环境; 控制耦合是指一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能; 标记耦合是一组模块通过参数表传递记录信息; 数据耦合是一个模块访问另一个模块时,彼此之间通过数据参数(不是控制参数,公共数据结构或外部变量),来交换输入输出信息。·
24.
在这里插入图片描述
分支覆盖是一种白盒测试方法,是指设计若干测试用例,使得所有判断框的Y和N分支至少走一次。该流程图有两个判断框,因此可以设计测试用例走第一个判断框的Y或N和第二个判断框的Y或N,对这些情况组合,至少需要2个测试用例,即YY和NN或者YN和NY或者NY和YN,这样可以满足分支覆盖。
25.
在这里插入图片描述
26.
在这里插入图片描述
在这里插入图片描述
27.
在这里插入图片描述
在这里插入图片描述
28.
在这里插入图片描述
29.
在这里插入图片描述
30.
在这里插入图片描述
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合程度越低,内聚程度越高,则模块的独立性越好。 存在多种模块内聚类型,从高到低依次为功能、通信、顺序、过程、时间、逻辑和偶然内聚。 一个模块内的几个操作是相关的,而且必须以特定的次序执行,则该模块的内聚类型为过程内聚。 模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行, 则该模块的内聚类型为时间内聚。 若一个模块的各个部分只是通过代码的逻辑结构相关联,则该模块的内聚类型为逻辑内聚。 把访问或操作在同一数据结构的操作放在一个模块中,则该模块的内聚类型为通信内聚。
31.
在这里插入图片描述
32.
在这里插入图片描述
仓库风格是一种软件体系结构,其中包含一个数据仓库和若干个其他构件。

数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。

数据库系统、超文本系统和黑板系统都属于仓库风格。 该体系结构的优点包括:

①对可更改性和可维护性的支持;
②可复用的知识源;
③支持容错性和健壮性。

缺点包括:
①测试困难;
②不能保证有好的解决方案;
③难以建立好的控制策略;
④低效;
⑤昂贵的开发工作;
⑥缺少对并行机制的支持。

在这里插入图片描述
在这里插入图片描述
34.
在这里插入图片描述
35.
在这里插入图片描述
36.
在这里插入图片描述
模块化设计要求高内聚、低耦合。

在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则:
1.模块的大小要适中。
系统分解时需要考虑模块的规模,过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一;
过小的模块将导致系统的复杂度增加,模块之间的调用过于频繁,反而降低了模块的独立性。
一般来说,一个模块的大小使其实现代码在1~2页纸之内,或者其实现代码行数在50~200行之间,这种规模的模块易于实现和维护。

2.模块的扇入和扇出要合理。
一个模块的扇出是指该模块直接调用的下级模块的个数;
扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。
扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块;
扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。
一个模块的扇入是指直接调用该模块的上级模块的个数;
扇入大表示模块的复用程度高。
设计良好的软件结构通常顶层扇出比较大,中间扇出较少,底层模块则有大扇入。
一般来说,系统的平均扇入和扇出系数为3或4,不应该超过7,否则会增大出错的概率。

3.深度和宽度适当。
深度表示软件结构中模块的层数,如果层数过多,则应考虑是否有些模块设计过于简单,看能否适当合并。
宽度是软件结构中同一个层次上的模块总数的最大值,一般说来,宽度越大系统越复杂,对宽度影响最大的因素是模块的扇出。
在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。
模块的扇入指模块直接上级模块的个数。
模块的直属下级模块个数即为模块的扇出。
37.
在这里插入图片描述
在这里插入图片描述
38.
在这里插入图片描述
39.
在这里插入图片描述
40.
在这里插入图片描述
在这里插入图片描述
41.
在这里插入图片描述
在这里插入图片描述
42.
在这里插入图片描述
该风格具有以下优点:
①软件构件具有良好的隐蔽性和高内聚、低耦合的特点;
②允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;
③支持软件复用;
④系统维护和增强系统性能简单;
⑤允许对一些如吞吐量、死锁等属性的分析;
⑥支持并行执行。

在这里插入图片描述
直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。

标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;

控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合:

  1. 一个模块直接访问另一个模块的内部数据;
  2. 一个模块不通过正常入口转到另一模块内部;
  3. 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
  4. 一个模块有多个入口。

本题属于数据耦合,采购子系统模块给财务子系统模块传递数据。
44.
在这里插入图片描述

人机交互“黄金三原则”包括:
置于用户控制之下、
减少用户的记忆负担、
保持界面的一致性。
45.
在这里插入图片描述
软件维护的内容一般包括
准确性维护、
适应性维护、
完善性维护
和预防性维护。

正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。

适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。

完善性维护主要是指对己有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。

预防性维护是指为了适应未来的软硬件环境的变化,主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰
46.
在这里插入图片描述
47.
在这里插入图片描述
折半查找是在一组有序的数(假设为递增顺序)中査找一个数的算法,其思想是:

将待查找的数与数组中间位置mid的数进行比较,若相等,则查找成功;

若大于中间位置的数,则在后半部分进行查找;

若小于中间位置的数,则在前半部分进行查找。

直到查找成功,返回所查找的数的位置,或者失败,返回-1。

设计一个查找成功的测试用例,可以覆盖除了return-1之外的所有语句和路径;

设计一个査找失败的测试用例,可以覆盖除了return mid之外的所有语句和路径。

因此,最少需要2个测试用例才可以覆盖所有的路径

在这里插入图片描述
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。

在白盒测试中,语句覆盖是指选择足够的测试用例,使被测程序中每条语句至少执行一次。
它对程序执行逻辑的覆盖很低,因此一般认为是很弱的逻辑覆盖。

判定覆盖是指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”植和“假”值。

条件覆盖是指设计足够的测试用例,使得每一个判定语句中每个逻辑条件的各种可能的值至少满足一次。

路径覆盖是指覆盖被测程序中所有可能的路径。在这些覆盖技术中,从弱到强依次为语句覆盖、判定覆盖、条件覆盖和路径覆盖。

在上图中,要完成路径覆盖,至少需要3个测试用例才可以,如测试用例(0)、(8)和(16)即可完成路径覆盖,测试用例格式为(x的值)。

在这里插入图片描述
50.
在这里插入图片描述
51.
在这里插入图片描述

  1. 顶向下集成优点:较早地验证了主要控制和判断点;
    按深度优先可以首先实现和验证一个完整的软件功能;
    功能较早证实,带来信心;
    只需一个驱动,减少驱动器开发的费用;
    支持故障隔离。

缺点:
柱的开发量大;
底层验证被推迟;
底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;
高层接口变化较小;
底层接口未定义或经常可能被修改;
产口控制组件具有较大的技术风险,需要尽早被验证;
希望尽早能看到产品的系统功能行为。

  1. 自底向上集成优点:
    对底层组件行为较早验证;
    工作最初可以并行集成,比自顶向下效率高;
    减少了桩的工作量;
    支持故障隔离。

缺点:
驱动的开发工作量大;
对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;
高层接口变化比较频繁;
底层组件较早被完成

在这里插入图片描述
在这里插入图片描述
53.
在这里插入图片描述
54.
在这里插入图片描述
55.
在这里插入图片描述
一个高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。

软件测试不能说明软件中不存在错误,不能用穷举法来进行测试。

经验表明,测试中存在集群规律,即未发现的错误数量与已发现的错误数量成正比,已发现的错误数量越多,则该模块未被发现的错误也就越多。

软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。

“白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误”选项的描述是正确的,白盒测试中语句覆盖是覆盖度最弱的,所以路径覆盖往往能比语句覆盖发现更多的错误
56.
在这里插入图片描述
在这里插入图片描述
57.
在这里插入图片描述
软件测试方法分为静态测试和动态测试。

静态测试是被测试程序不在机器上运行而采用人工检测和计算机辅助静态分析手段对程序进行检测。

动态测试是通过运行程序发现错误。

对软件产品进行动态测试时可以采用黑盒测试和白盒测试法。

黑盒测试法在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。

对于无法获得源代码的第三方组件,可采用黑盒对组件进行测试。

基本路径覆盖、分支覆盖和环路覆盖需要根据程序的内部结构和逻辑进行测试。
58.
在这里插入图片描述
59.
在这里插入图片描述
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。

其常用的技术有
逻辑覆盖、
循环覆盖
和基本路径测试。

在逻辑覆盖中,
语句覆盖是指选择足够的测试数据使被测试程序中每条语句至少执行一次。

判定覆盖是指选择足够的测试数据使被测试程序中每个判定表达式至少获得一次“真”值和“假”值。

条件覆盖是指构造一组测试用例,使得每一判定语句中每个逻辑条件的各种可能的值至少满足一次。

路径覆盖是指覆盖被测程序中所有可能的路径。

在这里插入图片描述
61.
在这里插入图片描述
在这里插入图片描述
62.
在这里插入图片描述
63.
在这里插入图片描述
64.
在这里插入图片描述
65.
在这里插入图片描述
66.
在这里插入图片描述
67.
在这里插入图片描述
单元测试也称为模块测试,在模块编写完成且无编译错误后就可以进行。
单元测试侧重于模块中的内部处理逻辑和数据结构。
单元测试主要检查模块的以下5个特征:
模块接口、
局部数据结构、
重要的执行路径、
出错处理
和边界条件。

①模块接口。模块的接口保证了测试模块的数据流可以正确地流入、流出。
在测试中应检査以下要点:
•测试模块的输入参数和形式参数在个数、属性、单位上是否一致。
•调用其他模块时所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致。
•调用标准函数时所用的参数在属性、数目和顺序上是否正确。
•全局变量在各模块中的定义和用法是否一致。
•输入是否仅改变了形式参数。
•开/关的语句是否正确。
•规定的I/O格式是否与输入输出语句一致。
•在使用文件之前是否已经打开文件或是用文件之后是否己经关闭文件。
②局部数据结构。在单元测试中,局部数据结构出错是比较常见的错误,在测试时应重点考虑以下因素:
•变量的说明是否合适。
•是否使用了尚未赋值或尚未初始化的变量。
•变量的初始值或默认值是否正确。
•变量名是否有错(例如:拼写错误)。
③重要的执行路径。在单元测试中,对路径的测试是最基本的任务。由于不能进行穷举测试,需要精心设计测试例子来发现是否有计算、比较或控制流等方面的错误。
•计算方面的错误:
算术运算的优先次序不正确或理解错误;
精度不够;
运算对象的类型彼此不相容;
算法错误;
表达式的符号表示不正确等。
•比较和控制流的错误:
本应相等的量由于精度造成不相等;
不同类型进行比较;
逻辑运算符不正确或优先次序错误;
循环终止不正确(如多循环一次或少循环一 次)、死循环;
不恰当地修改循环变量;
当遇到分支循环时,出口错误等。
④出错处理。好的设计应该能预测到出错的条件并且有对出错处理的路径。虽然计算机可以显示出错信息的内容,但仍需要程序员对出错进行处理,保证其逻辑的正确性,以便于用户维护。
⑤边界条件。边界条件的测试是单元测试的最后工作,也是非常重要的工作。软件容易在边界出现错误。
68.
在这里插入图片描述
69.
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值