数据流图

数据流图(Data Flow Diagram,缩写为DFD)是一种图形化的工具,用于描述系统或过程中的数据流动和处理。

数据流图使用各种符号来表示系统中的不同元素。以下是常用的符号及其含义:

  1. 进程(Process):表示对数据进行处理或转换的功能模块。
  2. 数据流(Data Flow):表示在系统中传输的数据。
  3. 数据存储(Data Store):表示系统中的数据存储位置,如数据库、文件等。
  4. 外部实体(External Entity):表示与系统交互的外部对象,如用户、其他系统等。
  5. 数据流箭头(Data Flow Arrow):表示数据在不同元素之间的流动方向。

通过将这些符号组合在一起,数据流图可以清晰地展示系统中各个组成部分之间的关系,包括数据的来源和去向,数据的处理过程以及数据存储的位置。

(2023 上半年)以下关于数据流图基本加工的叙述中,不正确的是 ( ) 。

A. 对每一个基本加工,必须有一个加工规格说明

B. 加工规格说明必须描述把输入数据流变换为输出数据流的加工规则

C. 加工规格说明需要给出实现加工的细节

D. 决策树、决策表可以用来表示加工规格说明

(2023 上半年)随着农业领域科学种植的发展,需要对农业基地及农事进行信息化管理,为租户和农户等人员提供种植相关服务。现欲开发农事管理服务平台,其主要功能是:

(1)人员管理平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分。

(2)基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。

(3)种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期警告。

(4)投入品管理。租户统一维护化肥,杀虫剂等投入品信息。农户在农事活动中设定投入品的实际消耗。

(5)信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供 APP 接口,通过接口访问的方式,提供账号,密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。

现采用结构化方法对农事管理服务平台进行分析与设计,获得如图 1-1 所示的上下文数据流图和图 1-2 所示的 0 层数据流图

软件设计师之软件工程_软件设计师

【问题 1】(4 分)

使用说明中的词语,给出图 1-1 中的实体 E1~E4 的名称。

E1为平台管理员

E2为农户

E3为租户

E4为用户

【问题 2】(4 分)

使用说明中的词语,给出图 1-2 中的数据存储 D1~D4 的名称。

D1

D2 地块表

D3

D4

【问题 3】(4 分)

根据说明和图中术语,补充图 1-2 中缺失的数据流及其起点和终点。

【问题 4】(3 分)

根据说明,给出“农事信息请求”数据流的组成


软件设计原则

以下关于好的软件设计原则的叙述中,不正确的是 ( ) 。

A. 模块化 B. 提高模块独立性 C. 集中化 D. 提高抽象层次


活动图

下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动, 则里程碑 (17) 在关键路径上,关键路径长度为 (18) 。

软件设计师之软件工程_软件设计师_02

(17)A. B B. E C. G D. I

(18)A. 15 B. 17 C. 19 D. 23


沟通路径

由 8 位成员组成的开发团队中,一共有 ( ) 条沟通路径。

A. 64 B. 56 C. 32 D. 28

增量模型

以下关于增量模型优点的叙述中,不正确的是 ( ) 。

A. 能够在较短的时间提交一个可用的产品系统

B. 可以尽早让用户熟悉系统

C. 优先级高的功能首先交付,这些功能将接受更多的测试

D. 系统的设计更加容易


敏捷开发

以下敏捷开发方法中, ( ) 使用迭代的方法,把一段短的时间(如 30 天)的迭代称为一个冲刺,并按照需求优先级来实现产品。

A. 极限编程(XP) B. 水晶法(Crystal) C. 并列争求法(Scrum) D. 自适应软件开发(ASD)


模块设计

若模块 A 通过控制参数来传递信息给模块 B,从而确定执行模块 B 中的那部分语句。则这两个模块的耦合类型是 (31) 耦合。

A. 数据 B. 标记 C. 控制 D. 公共


可移植性设计

在设计中实现可移植性设计的规则不包括 (32) 。

A. 将设备相关程序和设备无关程序分开设计

B. 可使用特定环境的专用功能

C. 采用平台无关的程序设计语言

D. 不使用依赖于某一平台的类库


管道—过滤器软件体系结构

以下关于管道—过滤器软件体系结构风格优点的叙述中,不正确的是 (33) 。

A. 构件具有良好的高内聚、低耦合的特点

B. 支持软件复用

C. 支持并行执行

D. 适合交互处理应用


测试用例

以下流程图中,至少需要 (34) 个测试用例才能覆盖所有路径。采用 McCabe 方法计算程

序复杂度为 (35) 。

(34) A. 3 B. 4 C. 5 D. 6

(35) A. 2 B. 3 C. 4 D. 5


用户界面

在软件系统交付给用户使用后,为了使用户界面更友好,对系统的图形输出进行改进,该行为属于 (36) 耦维护。

A. 改正性 B. 适应性 C. 改善性 D. 预防性


面向对象

采用面向对象方法开发学生成绩管理系统,学生的姓名、性别、出生日期、期末考试成绩、 查看成绩操作均被 (37) 在学生对象中。系统中定义不同类,不同类的对象之间通过 (38) 进 行通信。

(37) A. 封装 B. 继承 C. 多态 D. 信息

(38) A. 继承 B. 多态 C. 消息 D. 重载

对采用面向对象方法开发的系统进行测试时,通常从不同层次进行测试。测试类中定义的每 个方法属于 (39) 层。

(39) A. 算法 B. 类 C. 模板 D. 系统

在面向对象系统设计中,如果重用了一个包中的某个类,那么就要重用该包中的所有类,这属于 (40) 原则。

(40) A. 共同封闭 B. 共同重用 C. 开放—封闭 D. 接口分离

UML

以下关于 UML 序列图的描述是(41),下图所示 UML 图中消息可能执行的顺序是(42)。

(41) A. 系统在它的周边环境的语境中所提供的外部可见服务

B. 某一时刻一组对象以及它们之间的关系

C. 系统内从一个活动到另一个活动的流程

D. 以时间顺序组织的对象之间的交互活动

(42) A. a→b→c→a→b B. c C. a→b→a→b→c D. a→b→c→a→b→c

UML 包图展现由模型本身分解而成的组织单元及其依赖关系,以下关于包图的叙述中,不正确的是 (43) 。

(43) A. 可以拥有类、接口构件、节点 B. 一个元素可以被多个包拥有 C. 一个包可以嵌套其他包 D. 一个包内元素不能重名


设计模式

在某招聘系统中,要求实现求职简历自动生成功能。简历的基本内容包括求职者的姓名、性别、年龄及工作经历等。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。 针对此需求,设计如下所示的类图。该设计采用了 (44) 模式,由 xx 示例指定创建对象的种类,声明一个复制自身的接口,并且通过复制这些 Resume xx WorkExperience 的对象来创建新的 对象。该模式属于 (45) 模式。

(44) A. 单例(Singleton) B. 抽象工厂(Abstract Factory) C. 生成器(Builder) D. 原型(Prototype)

(45) A. 混合型 B. 行为型 C. 结构型 D. 创建型

某旅游公司欲开发一套软件系统,要求能根据季节,节假日等推出不同的旅行定价包,如淡 季打折、一口价等。实现该要求适合采用 (46) 模式,该模式的主要意图是 (47) 。

(46) A. 策略模式(Strategy) B. 状态(State) C. 观察者(Observer) D. 命令(Command)

(47) A. 将一个请求封装为对象,从而可以用不同的请求对客户进行参数化

B. 当一个对象的状态发生改变时,依赖于它的对象都得到通知并被自动更新

C. 允许一个对象在其内部状态改变时改变它的行为

D. 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换

Python 编程

Python 中采用于 (48) 原方法来获取一个对象的类型。

(48) A. str() B. type() C. id() D. object()

在 Python 语言中,语句 x = (49) 不能定义一个元组。

(49) A. (1, 2, 1, 2) B. 1, 2, 1, 2 C. tuple() D. (1)

关于 Python 语言的叙述中,不正确的是 (50) 。

(50) A. for 语句可以用在序列(如列表、元组和字符串)上进行迭代访问

B. 循环结构如 for 和 while 后可以加 else 语句

C. 可以用 if...else 和 switch...case 语句表示选择结构

D. 支持嵌套循环