0
点赞
收藏
分享

微信扫一扫

软件工程复习资料

Just_Esme 2022-05-17 阅读 94


一、客观题部分(单选题、多选题和判断题):

  1. 软件危机的概念以及典型表现
    例:
    ①开发软件的高成本和软件产品的低质量之间的矛盾,这种现象称为
    A. 软件投机
    B. 软件工程
    C. 软件产生
    D. 软件危机

②产生软件危机的原因有

A. 所开发的软件,除了程序清单外,没有其他文档

B. 软件开发过程未经审查

C. 软件开发不分阶段,开发人员没有明确的分工

D. 采用工程设计的方法开发软件,不符合软件本身的特点

  1. 瀑布模型的概念以及特点
    例:
    ①关于瀑布模型说法正确的是

A. 瀑布模型包括需求采集、分析、软件设计、编码、测试和维护等阶段

B. 瀑布模型的每个阶段都必须完成后,才可进入下一阶段

C. 瀑布模型比RUP模型更先进

D. 瀑布模型的前一阶段的输出作为后一阶段的输入

②瀑布模型本质上是一种()

A. 线性顺序模型

B. 线性迭代模型

C. 顺序迭代模型

D. 及早见产品模型

③软件生命周期模型包含

A. 用例模型

B. E-R模型

C. 螺旋模型

D. 瀑布模型

④瀑布模型的特征不包含

A. 任务阶段之间有上下承接关系

B. 每个任务阶段中包含风险分析内容

C. 理想化过程模型

D. 任务阶段之间有先后顺序

3. 快速原型模型的特点

例:

①下面关于软件过程模型说法错误的是

A. 软件过程模型指明了软件开发步骤和任务

B. 用户界面的可视化是快速原型模型中的一个重要步骤

C. 螺旋模型中含有风险分析与控制的阶段

D. 统一过程模型中不含软件需求分析阶段

②快速原型模型的主要特点之一是()

A. 开发完毕后才见到工作软件

B. 开发完毕才见到产品

C. 及早提供工作软件

D. 及早提供全部完整的软件产品

③关于快速原型模型描述正确的是

A. 及早提供工作软件

B. 原型一定会被抛弃,不能作为最终产品的一部分

C. 用户只能在交付阶段才能见到可运行的产品

D. 本质是“快速”

4. 螺旋模型的基本思想

例:

①下面关于软件过程模型说法错误的是

A. 软件过程模型指明了软件开发步骤和任务

B. 用户界面的可视化是快速原型模型中的一个重要步骤

C. 螺旋模型中含有风险分析与控制的阶段

D. 统一过程模型中不含软件需求分析阶段

②螺旋模型是一种()的开发模型,适合于大型软件的开发

A. 模型驱动

B. 对象驱动

C. 风险驱动

D. 文档驱动

5. 软件生命周期的概念以及划分为哪几个阶段

例:

①软件生命周期中不含哪个阶段

A. 可行性分析阶段

B. 软件设计阶段

C. 软件维护阶段

D. 软件销售阶段

②软件生命周期模型包含

A. 用例模型

B. E-R模型

C. 螺旋模型

D. 瀑布模型

  1. 软件项目计划需要考虑哪些因素

    例:

    ①软件项目计划中不需要制定下面哪个内容的方案

    A. 数据库逻辑设计

    B. 风险控制

    C. 组织结构

    D. 项目成本

  2. 面向对象分析模型包含哪些模型 注意(用例图、类图、功能实现图)

    例:

    ①面向对象分析模型有()

    A. 对象模型 --》类图

    B. 动态模型 。。。。。。》时序图,状态图等表示动态的图

    C. 功能模型 --》用例图

    D. 过程模型

  3. 了解MVC模式的概念以及每个字母表示的含义 MVC(model 视图 控制器)

    例:

    ①关于MVC模式,说法正确的是

    A. M指模型,可用于实现数据和业务处理

    B. C指控制器,可用于实现输入

    C. V指视图,可用于实现输出

    D. MVC可用于Web类型的软件开发

②针对UI设计模式,说法不合适的是

A. 监听者模式也称观察者模式或订阅者模式

B. html的视图代码使用层次树的方式进行组织和管理

C. MVC模式中,模型负责处理和分发事件

D. 在监听器代码模式中,监听器代码负责处理操作事件

9. 了解项目进度计划中关键路径的概念

例:

①以下关于关键路径的说法中正确的是

A. 一个项目可以有多个关键路径,且关键路径的耗时可以不一样

B. 关键路径上的任务延迟可能不会影响项目的总体时间

C. 一个项目只有一条关键路径

D. 一个项目可以有多个关键路径,且关键路径的耗时是一样的

②关于关键路径的说法中正确的是

A. 一个项目只有一条关键路径

B. 关键路径的耗时是一样

C. 一个项目可以有多个关键路径

D. 关键路径上的任务延迟可能不会影响项目的总体时间

10. 对象模型中类图,类图的组成元素、如何描述属性的可见性、类与类之间的关系

例:

①关于UML类图的说法错误的是

A. UML类图使用矩形符号表达

B. 类图中能够表达属性

C. 类图中能够表达类之间的关系

D. 类图中能够表达方法体

②在类图中,哪种关系表达总体与局部的关系

A. 聚合

B. 依赖

C. 实现

D. 泛化

③在类图中,表示private权限的是哪个符号?

A. #

B. ~

C. -

D. +

④关于UML类图的说法正确的是

A. UML类图中能够表达类之间的关系

B. UML类图中能够表达出类的属性

C. UML类图中使用矩形符号表达类

D. UML类图中能够表达类的方法体

⑤在类图中,表示public权限的是哪个符号

A. ~

B. -

C. +

D. #

11. 数据流图的组成元素以及符号表示

例:

①在结构化分析方法中,用以表达系统内数据加工及流向的建模工具是( )

A. 结构化语言

B. 数据流图

C. 数据词典

D. 判定表与判定树

②哪个不是数据流图的图形元素

A. 数据存储

B. 数据源点

C. 数据实体

D. 数据流向

③数据字典配合数据流图使用,可用于描述

A. 数据的流向

B. 数据的组成

C. 数据的用途

D. 数据元素的定义

④圆角矩形或圆形符号在数据流图中一般用于表达

A. 数据终点

B. 数据处理/加工

C. 数据存储

D. 数据流向

⑤数据流图的图形元素有

A. 数据流向

B. 数据存储

C. 数据实体

D. 数据源点

⑥数据流分解的层数由需求分析人员决定,没有确定的层数

A. 正确

B. 错误

⑦开口矩形或两条平行横线符号在数据流图中一般用于表达

A. 数据处理/加工

B. 数据终点

C. 数据流向

D. 数据存储

  1. 软件开发风险控制策略有哪些
    例:
    ①按照风险的可预测性分类,可以分为
    A. 已知风险
    B. 可预测风险
    C. 不可预测风险
    D. 相对风险

②处理风险的策略包括

A. 风险管理

B. 风险避免

C. 意外事件计划

D. 风险监控

③属于风险的特点的有

A. 风险可能不会造成损失

B. 风险肯定会发生

C. 风险发生一定会带来损失

D. 风险具有不确定性

④关于项目风险的描述正确的是

A. 不好的客户也是一种潜在的风险

B. 一般认为产品规模越大,风险越大

C. 所有的风险都能预防

D. 商业考虑有时会与现实发生冲突

  1. 掌握UI设计原则和提高用户体验的方法
    例:
    ①用户可以从菜单中选择软件功能,也可以通过键盘命令序列调用软件功能,这属于
    A. UI设计
    B. 信息架构
    C. 交互设计
    ②关于UI设计中的心智模型说法不正确的是
    A. 好的UI设计能够使用户的心智模型和UI的交互方式保持一致
    B. 只有互联网的软件产品设计才需要考虑心智模型
    C. 用户的心智模型指导着用户使用软件的方式
    D. 提高用户使用软件体验的方法是将目标用户的心智模型和软件产品的功能结合在一起

③以下哪些项的做法能有效提升软件的用户体验

A. 提高软件响应速度

B. 将字体统一设置为15pt大小

C. UI一致性

D. 有效的反馈机制

④以下哪些是UI设计的原则

A. 隐藏性原型

B. 简洁性原型

C. 结构化原则

D. 容错原则

⑤UI视图可视化效果可以使用或参照视图模式进行设计

A. 正确

B. 错误

⑥针对UI设计模式,说法不合适的是

A. 监听者模式也称观察者模式或订阅者模式

B. html的视图代码使用层次树的方式进行组织和管理

C. MVC模式中,模型负责处理和分发事件

D. 在监听器代码模式中,监听器代码负责处理操作事件

14. E-R模型组成元素以及符号表示

例:

①关于E-R模型,下列说法错误的是

A. 菱形表示实体关系

B. 直线表示实体关系

C. 矩形表示数据实体

D. 椭圆表示实体属性

②E-R图主要由实体、联系和属性组成

A. 错

B. 对

  1. UML的概念、时序图组成元素以及符号表示 UML (统一建模语言)
    例:
    ①可以使用UML对目标软件的哪些内容进行可视化建模
    A. 软件用户接口视图
    B. 用户需求
    C. 软件的结构
    D. 软件设计想法

②UML的中文全称是

A. 统一方法语言

B. 过程模型语言

C. 统一语言

D. 统一建模语言

③UML时序图的图形元素有

A. 系统对象

B. 角色

C. 对象生命线

D. 消息

④从UML时序图中我们能够得到()

A. 对象之间的交互关系

B. 交互消息的顺序

C. 系统内部交互的对象

D. 对象之间的交互消息

⑤在UML中,类之间的关系有一种为关联关系,其中多重性用来描述类之间的对应关系,下面哪些符合书写规范

A. 1…*

B. 0…1

C.

D. 0…*

  1. 需求分析阶段的最终输出是什么

    例:

    ①需求活动的最终输出是

    A. 用户需求列表

    B. 需求列表

    C. 产品说明书

    D. 需求规格说明文档

  2. 需求评审与需求说明文档的目的

    例:

    ①需求评审的主要目的是

    A. 需求阶段结束的标志

    B. 统一项目人员对需求的理解

    C. 发现需求的不确定性和二义性

    D. 使项目开发人与理解需求

②需求评审的主要目的是

A. 统一项目人员对需求的理解

B. 需求阶段结束的标志

C. 去除需求缺陷

D. 与用户确认需求,保证需求的一致性

③以下关于需求说明文档的描述错误的是

A. 测试和用户验收软件系统的重要依据

B. 软件设计和实现的基础

C. 为软件维护提供信息

D. 是编写代码的唯一输入

  1. 用例建模的概念以及用例图的组成元素、用例之间的关系
    例:
    ①用例建模过程中,用例可以没有参与者的说法是否正确
    A. 对
    B. 错

②关于用例建模说法正确的是

A. 用例在UML中用矩形表示

B. 参与者在UML中用箭头表示

C. 参与者必须是用户

D. 每个用例至少有一个参与者

③针对用例之间关系表达正确的是

A. 执行父用例时,被包含的子用例不一定会被系统执行

B. 用例包含关系中,箭头指向的是子用例

C. 用例扩展关系中,箭头指向的是子用例

D. 执行父用例时,扩展子用例不一定会被系统执行

19. 功能性需求以及非功能性需求,都包含哪些方面

例:

①IEEE1998将需求分为功能需求、非功能性需求和设计约束,其中非功能性需求不包括

A. 质量属性

B. 改变产品的功能

C. 性能需求

D. 对外接口

②IEEE1998将需求分为功能需求、非功能性需求和设计约束,其中非功能性需求包括

A. 数据需求

B. 性能需求

C. 质量属性

D. 安全性

20. 掌握UI设计模式包括UI实现模式和UI视图模式

例:

①UI视图可视化效果可以使用或参照视图模式进行设计

A. 正确

B. 错误

②针对UI设计模式,说法不合适的是

A. 监听者模式也称观察者模式或订阅者模式

B. html的视图代码使用层次树的方式进行组织和管理

C. MVC模式中,模型负责处理和分发事件

D. 在监听器代码模式中,监听器代码负责处理操作事件

  1. 了解UI设计模式中的心智模型

    例:

    ①关于UI设计中的心智模型说法不正确的是

    A. 好的UI设计能够使用户的心智模型和UI的交互方式保持一致

    B. 只有互联网的软件产品设计才需要考虑心智模型

    C. 用户的心智模型指导着用户使用软件的方式

    D. 提高用户使用软件体验的方法是将目标用户的心智模型和软件产品的功能结合在一起

  2. 了解模块设计原则有哪些以及各个原则的相关概念

    例:

    ①“一个模块或类应该只实现一个或一种类型的业务职责”是面向对象设计的

    A. 接口隔离原则

    B. 里氏替换原则

    C. 开闭原则

    D. 单一职责原则

②“类或模块的代码对扩展是开放的,对修改是关闭的”是面向对象程序设计的

A. 开闭原则

B. 里式替换原则

C. 接口隔离原则

D. 单一职责原则

③“子类可以扩展父类的功能,但不能改变父类原有的功能

”,这符合面向对象设计的()原则

A. 开闭原则

B. 接口隔离原则

C. 里式替换原则

D. 单一职责原则

④针对面向对象设计原则,说法错误的是()

A. 单一职责原则指一个类只允许定义一个方法

B. 遵循开/闭原则能够提高代码的稳定性

C. 接口行为分组一般按业务类型划分

D. 遵循依赖倒置原则的代码增加了测试的难度

  1. 软件测试的概念以及软件测试的内容

    软件测试(Software Testing),在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

    内容:使用人工或自动的手段来运行或测量软件系统的过程,目的是检验软件系统是否满足规定的需求,并找出与预期结果之间的差异。

  2. 了解内聚与耦合的概念以及常见的几种内聚与耦合

    例:

    ①模块的独立性是由内聚性和耦合性来度量的, 其中内聚性指的是

    A. 模块内各元素彼此结合的紧密程度

    B. 信息隐藏程度

    C. 接口的复杂度

    D. 模块之间的联系程度

②以下哪种模块设计是最好的

A. 高耦合、强内聚

B. 低耦合、强内聚

C. 低耦合、弱内聚

D. 高耦合、弱内聚

③模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )

A. 内聚性和耦合性

B. 抽象和信息隐藏

C. 局部化和封装化

D. 逐步求精和结构图

④模块本身的内聚是模块独立性的重要度量因素之一,具有最强内聚的是()

A. 功能内聚

B. 顺序内聚

C. 过程内聚

D. 逻辑内聚

⑤初始化模块和结束模块,从块内联系看,被称为()

A. 功能内聚

B. 偶然内聚

C. 过程内聚

D. 时间内聚

⑥在进行模块设计时,由于A、B、C三个模块的规模非常小,因此把它们合并成一个模块D,则D模块的内聚类型为()

A. 偶然内聚

B. 功能内聚

C. 时间内聚

D. 过程内聚

⑦为了提高模块的独立性,模块内部最好是(  )

A. 时间内聚

B. 功能内聚

C. 逻辑内聚

D. 通信内聚

⑧某成绩查询模块的功能是提示学生成绩等级,包括A、B、C、D四个等级,调用模块向该模块传递不同的分数,该模块以此来判断显示给学生的成绩等级,此时成绩查询模块和调用模块之间的耦合称为()

A. 数据耦合

B. 公共耦合

C. 控制耦合

D. 内容耦合

⑨要减少两个模块之间的耦合,则必须()

A. 传递参数要少

B. 调用次数要少

C. 传递参数 要少且不传递控制型信息且不引用同一个全局变量

D. 传递参数 要少且不传递控制型信息

⑩数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是

A. 控制、数据、公共、无耦合

B. 数据、公共、无耦合、控制

C. 控制、数据、无耦合、公共

D. 无耦合、数据、控制、公共

⑪关于内容耦合的描述正确的是( )

A. 内容耦合的耦合程度比控制耦合要低

B. 两个模块都引用了同一个全局变量,则它们之间是内容耦合

C. 应该尽量使用内容耦合

D. 内容耦合是最高程度的耦合

  1. 风险按照可预测性进行分类,可分为哪些

    例:

    ①按照风险的可预测性分类,可以分为

    A. 已知风险

    B. 可预测风险

    C. 不可预测风险

    D. 相对风险

  2. 软件详细设计与软件概要设计概念与主要任务

    例:

    ①软件详细设计的主要任务是确定每个模块的

    A. 功能

    B. 算法和使用的数据结构

    C. 外部接口

    D. 技术路线

②关于概要设计和详细设计的差异说法不正确的是

A. 概要设计用于指导代码实现,而详细设计给出了软件由哪些部件组成以及它们之间的关系

B. 概要设计依据软件需求进行设计,而详细设计不仅依据软件需求,更要依据概要设计的成果

C. 体系结构设计和接口设计都属于概要设计

D. 概要设计对应于集成测试,是设计集成测试用例的主要依据;而详细设计对应于单元测试,是设计单元测试用例的

③在软件设计阶段应提供的文档是()

A. 数据字典及流程图

B. 软件需求规格说明书

C. 概要设计规格说明书和详细设计规格说明书

D. 源程序以及源程序的说明书

  1. 软件设计包含哪些内容
    例:
    ①软件设计原则包含
    A. 抽象
    B. 模块化
    C. 层次化
    D. 复用

②在软件开发过程中,软件设计包括4个既独立又相互联系的活动,分别为体系结构设计、数据设计、过程设计和

A. 程序设计

B. 用户手册设计

C. 接口设计

D. 文档设计

③在软件设计中,把一个时期内必须解决的问题按照优先级排序,从而确保每个问题都将被解决,且每个问题都将在适当的时候被解决,它属于软件设计的哪种方法

A. 模块化

B. 逐步求精

C. 信息隐藏

D. 抽象

④只有类的共有界面的成员才能成为使用类的操作,这是软件设计的什么原则

A. 功能抽象

B. 共享性

C. 信息隐藏

D. 过程抽象

⑤在软件设计阶段应提供的文档是()

A. 数据字典及流程图

B. 软件需求规格说明书

C. 概要设计规格说明书和详细设计规格说明书

D. 源程序以及源程序的说明书

⑥使用软件设计模式时,不正确的做法有

A. 软件设计模式没有编程语言类型的限制

B. 某种软件设计模式只能在代码设计中使用一次

C. 遇到代码设计问题时,都应使用设计模式进行解决

D. 不同的设计模式具有不同的代码优点,有的设计模式没有代码缺点

  1. 面向对象设计原则
    例:
    ①针对面向对象设计原则,说法错误的是()
    A. 单一职责原则指一个类只允许定义一个方法
    B. 遵循开/闭原则能够提高代码的稳定性
    C. 接口行为分组一般按业务类型划分
    D. 遵循依赖倒置原则的代码增加了测试的难度

②面向对象设计中的()意图在不暴露内部数据结构的前提下,向外部对象提供遍历聚合元素的统一方法

A. 迭代器模式

B. 单例模式

C. 观察者模式

D. 适配器模式

29. 接口设计的内容

例:

①在软件开发过程中,软件设计包括4个既独立又相互联系的活动,分别为体系结构设计、数据设计、过程设计和

A. 程序设计

B. 用户手册设计

C. 接口设计

D. 文档设计

②针对接口设计的说法不正确的是()

A. 接口都有名称

B. 接口都必须有输入参数

C. 接口需要标注访问路径

D. 接口都有功能

③以下不属于软件系统的接口设计内容的是()

A. 外部接口

B. 管理员接口

C. 用户接口

D. 内部接口

④应用程序编程接口(API)的设计,应包含( )

A. API的功能

B. API的调用者和提供者

C. API的入参、出参和异常状态标识等

D. API的引用路径

  1. 程序的三种基本控制结构
    例:
    ①程序的三种基本控制结构的共同特点是
    A. 只能用来写简单的程序
    B. 不能嵌套使用
    C. 已经用硬件实现
    D. 只有一个入口和一个出口

②程序的三种基本控制结构是

A. 递归、迭代和回溯

B. 顺序、选择和循环

C. 调用、返回和转移

D. 过程、子程序和分程序

  1. 了解几种常见的程序设计问题
    ①从程序语言表现形式来看,程序设计语言可以分为()
    A. 机器语言
    B. 汇编语言
    C. 高级语言
    D. 自然语言
  2. 了解代码审查
    例:
    ①产生软件危机的原因有
    A. 所开发的软件,除了程序清单外,没有其他文档
    B. 软件开发过程未经审查
    C. 软件开发不分阶段,开发人员没有明确的分工
    D. 采用工程设计的方法开发软件,不符合软件本身的特点

②以下关于软件工程7条原理的说法错误的是

A. 坚持进行阶段评审

B. 用分阶段的生命周期计划严格管理

C. 开发小组的人员应该少而精

D. 软件开发的结果不可审查

③关于代码审查的说法错误的是( )

A. 代码审查能够用于发现代码的bug

B. 代码审查比程序运行测试的效率低,应减少代码审查会议

C. 代码在审查之前必须要成功地编译通过

D. 代码审查可用于纠正不规范的代码设计

  1. 为了提高软件的可维护性,有哪些编码规范
    例:
    ①为了提高软件的可维护性,在编码阶段合理的做法有()
    A. 少写文档
    B. 减少代码版本更新
    C. 养成好的程序设计风格
    D. 提高代码的抽象度

②( )不是良好编码的习惯

A. 少使用break,continue等程序流程重定向关键词

B. 在开始编码之前建立单元测试计划

C. 确保注释与代码逻辑一致

D. 保持变量名缩写和简短以便代码紧凑

  1. 理解软件设计模式概念与常见的几种软件设计模式的使用方法,如简单工厂方法模式、单例模式、迭代器模式
    例:
    ①“某种类型对象实例频繁地创建或销毁,每次创建或销毁消耗大量的程序资源或性能”,此时应采用()
    A. 工厂方法模式
    B. 适配器模式
    C. 迭代器模式
    D. 单例模式

②“当目标数据源不是调用者所期望的类型,不能通过重新构造数据源和调用者代码的方式解决该问题”,此时应采用

A. 适配器模式

B. 迭代器模式

C. 单例模式

D. 享元模式

③面向对象设计中的()意图在不暴露内部数据结构的前提下,向外部对象提供遍历聚合元素的统一方法

A. 迭代器模式

B. 单例模式

C. 观察者模式

D. 适配器模式

  1. 度量软件规模可以采取什么样的措施
    例:
    ①功能点技术可以用于度量软件规模
    A. 错
    B. 对
  2. 软件项目组的组织方式有哪些,每个组织方式的主要优点有哪些
    例:
    ①以下哪种程序员组织方式有利于攻克技术难关
    A. 主程序员组
    B. 控制集权制
    C. 民主制程序员组
    D. 现代程序员组
  3. 软件设计可分为哪两个阶段
    例:
    ①结构化软件设计可以进一步分为两个阶段是()。
    A . 概要设计和详细设计
    B . 概要设计和过程设计
    C . 接口设计和过程设计
    D . 接口设计和详细设计
  4. 原型保真度的概念
    例:
    ①原型的保真度指的是原型与最终产品的相似程度
    A. 错
    B. 对
  5. 原型展示可以采取哪些措施
    例:
    ①以下哪些工具可用于原型展示
    A. 故事板
    B. 界面框架图
    C. 角色扮演
    D. UML用例图
  6. 软件体系结构的基本要素
    例:
    ①软件体系结构的三个基本要素是
    A. 构件
    B. 约束
    C. 规则或配置
    D. 连接
  7. 程序设计语言的分类可分为
    例:
    ①从程序语言表现形式来看,程序设计语言可以分为()
    A. 机器语言
    B. 汇编语言
    C. 高级语言
    D. 自然语言
  8. 制定项目进度计划的图形工具有哪些
    例:
    ①Gantt图和工程网络图都是制定项目进度计划的图形工具
    A. 对
    B. 错

二、主观题:概念理解

1、软件工程的概念;

答: 软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科

2、请简述瀑布模型的阶段和优缺点;

答:阶段:

①收集需求

②需求分析

③软件设计

④程序编码

⑤软件测试

⑥运行维护

①优点: 为项目提供了按阶段划分的检查点。

②缺点:各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。瀑布模型的突出缺点是不适应用户需求的变化。由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,增大了开发风险。。

3、C/S与B/S结构的概念以及两者的优缺点;

答: ①C/S结构的概念以及两者的优缺点:

C/S (Client/Server)结构,即客户机和服务器结构

优点:充分发挥客户端PC的处理能力

客户端响应速度快

缺点:只适用于局域网

客户端需要安装专用的客户端软件

对客户端的操作系统一般也会有限制

②B/S结构的概念以及两者的优缺点:

B/S结构指Browser/Server,浏览器/服务器模式

优点: 可以在任何地方进行操作而不用安装任何专门的软件

缺点: 应用服务器运行数据负荷较重

4、面向对象程序设计原则;

答:

①开闭原则

②里氏代换原则

③依赖倒转原则

④接口隔离原则

⑤迪米特法则

⑥单一职责原则

5、用例建模中用例关系;

答:

①关联关系

②泛化关系

③包含关系

④扩展关系

6、单例模式的概念及特点;

答:

概念:

单例模式,是一种常用的软件设计模式,单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例

特点:

③某个类只能有一个实例;

②是它必须自行创建这个实例;

③是它必须自行向整个系统提供这个实例

7、Rational统一过程的最佳实践;

答:

①迭代式开发

②管理需求

③体系结构

④可视化建模

⑤验证软件质量

⑥控制软件变更

8、UI设计原则;书p201

答:

①一致性

②减少步骤

③及时提供反馈信息

④提供撤销命令

⑤无须记忆

⑥易学

⑦富有吸引力

9、软件需求的概念;

答:

软件需求是指为用户解决某一问题或达到某一目标所需的软件功能;系统或系统构件为了满足合同、规约、标准或其他正式实行的文档而必须满足或具备的软件

功能

10、常见的黑盒测试的方法;

①等价类划分方法

②边界值分析方法

③错误推测方法

④因果图方法

⑤判定表驱动分析方法

⑥正交实验设计方法

⑦功能图分析方法

11、模块化设计中模块的特性。书p69

①模块可分解性

②模块可组装性

③模块可理解性

④模块连续性

⑤模块保护性

三、主观题:需求分析

  1. 某图书管理系统的功能如下:

    ①读者登录系统后,可以查询信息、预约图书和续借图书;

    ②图书管理员登录系统后,可以查询信息、管理读者信息和图书信息以及进行借书和还书的操作;

    ③读者还书时,如果超过预期时间,则图书管理员要按照图书馆规定对读者进行罚款;

    ④后台管理员登录系统后可以维护系统

    请分析需求并回答以下问题:

    (1)请分析需求中的系统参与者有哪些?

    (2)根据第(1)题的分析结果,进一步分析和每个参与者关联的系统用例。

    (3)使用UML用例图可视化第(1)题和第(2)题的分析结果。

    参考答案:

    (1)读者、图书管理员和管理员;

    (2)读者:登录、预约图书、续借图书、信息查询;

    图书管理员:登录、信息查询、读者信息管理、图书信息管理,借书,还书,罚金;

    管理员:登录、系统维护

    (3)用例图参考图如下:

  2. 某医院拟开发一个分布式患者监护系统(PMS: Patients Monitoring System)。PMS将用于监视病房中每个患者的重要生理信号(如体温、血压、脉博信号等),并能定时更新和管理患者的病历。此外,当患者的生理信号超过医生规定的安全范围时,系统能立即通知护理人员,并且护理人员在需要时可随时通过系统产生某患者有关报告。

    PMS的主要功能为:

    ① 通过一个病床监视器实现本地监测,以获得患者的生理信号。

    ② 在护士办公室实现中央监测

    ③ 更新和管理患者病历

    ④ 产生患者情况的报告以及报警信息

    问题:

    (1)请分析PMS的数据源点和数据终点分别是什么?

    (2)根据需求描述,PMS可以分解成哪几个数据加工?

    (3)根据第(1)题和第(2)题的分析结果,绘制1层数据流图。

    参考答案:

    (1)PMS的数据源是患者和护士;数据终点是护士;

    (2)PMS可以分为本地监测、中央监测、产生报告和记录患者生理数据四个数据加工

    (3)1层数据流图参考图如下:

  3. 请根据以下 Java 代码片段绘制对应的 UML 类图模型(8分) 。

    public class Animal {

    public void move(){}

    }

    public interface ICanEat {

    public void eat();

    }

    public class Dog extends Animal implements ICanEat {

    public void eat() { }

    public void bark(){}

    }

参考答案:

四、主观题:设计

1、软件结构,模块和接口:

简化版某图书馆管理系统(LIB)描述:图书馆的系统用户包含后台管理员,前台管理员和读者。系统为所有用户提供注册和登陆服务。后台管理员可以管理图书类别信息,管理图书信息,管理读者信息。管理某种信息一般包含对该类信息的添加,删除,修改和查询功能。前台管理员可以办理读者的借书,还书,续借,缴纳罚金,查询图书,查询读者借阅情况等业务。缴纳罚金时,系统会让读者选择用微信还是支付宝支付,读者选择其中之一后,系统显示对应支付方式的二维码给读者进行支付。读者可以在线查询自己的图书借阅信息,续借,查询图书信息。

请根据题目所给信息,完成以下问题(20分, 表述方式不唯一,相应给分)。

  1. 软件结构与模块设计相关问题。(10分)
    ①请识别出系统功能需求,进一步分解和设计目标系统的功能模块结构,并标注父模块和子模块的对应关系。(4分)
    参考答案如下:(不是每个模块都有子模块。父模块的冒号后为其包含的子模块)。
    注册、登陆、借书、还书、续借、缴纳罚金、查询读者借阅信息
    管理图书类别:添加图书类别、删除图书类别、修改图书类别、查询图书类别
    管理图书:添加图书、删除图书、修改图书、查询图书
    管理读者:添加读者、删除读者、修改读者、查询读者

②请举例说明将某个父模块分解成若干子模块的理由。(2分)

参考答案:

例如管理图书模块是父模块,其包含四个子模块。首先要具备添加新书功能,也要能够删除过时图书。同时,需要根据条件查询图书,并在必要时修改图书信息。因此,管理图书模块需要具有对图书的增、删、改、查四个子功能模块。

③根据题目 ① 设计的结果,使用层次图可视化目标系统的功能结构。(4分)

参考图如下:

  1. 接口设计相关问题。(10分)
    (1) 使用线框图设计后台管理员对管理图书类别模块的用户接口(UI),并说明运用了哪些UI设计原则。(4分)
    参考图:

本原型运用了结构化原则,简洁性原则,可视化原则,复用原则等UI设计原则。

(2) 请识别出LIB的一个外部接口,描述该接口的名称、功能、调用者、提供者。(2分)

参考答案:

外部接口名称: 支付

功能:LIB系统发送读者及待付罚金等信息,连接到微信(支付宝)支付系统,请求支付。支付后的结果返回给LIB系统。

调用者: LIB系统。

提供者:微信或支付宝支付系统。

(3) 请设计LIB的一个内部接口,设计出该接口的名称、功能、调用者、提供者、输入参数、输出参数、异常状态码等。(4分)

参考答案:

内部接口名称:查询图书信息

功能:根据图书名称查询书籍列表

调用者:借书模块

提供者:管理图书模块

输入参数:图书名称

输出参数:所有叫该名称的图书列表

异常处理代码: 404 找不到,该请求链接不存在。请检查URL 以确保路径正确。

  1. Java Runtime类封装了Java运行时的环境,并管理Java程序内存。比如,可以通过Runtime调用它的垃圾回收gc()方法来释放内存。一旦得到了当前的Runtime对象的引用,就可以调用Runtime对象的方法去控制Java虚拟机的状态和行为。
    请根据问题描述,完成下列问题。
    (1) 请分析题目中的程序设计问题,选择使用一种设计模式解决其中的一种问题的方案,具体说明解决方案中的设计意图(想法)。(3分)
    参考答案:
    可以采用单例模式。因为Java Runtime控制整个Java虚拟机的状态和行为,必须保持它的状态和行为的一致性,不能有矛盾。如果多个实例,就可能导致对系统的指令不一致而产生冲突。
    (2) 为什么采用这个设计模式,请简述理由。(2分)
    参考答案:
    Java Runtime需要持续地向整个系统共享其服务或资源,且需要保证服务或资源的一致性。因此,单例模式能满足这个要求。
    (3) 请画出解决方案的程序结构类图。要求:类名,类的核心属性及方法。 (5分)
    参考类图:

说明,Runtime类自行实例化它的单例对象currentRuntime.

压轴大题

未授权用户、已授权用户、后台管理员

未授权用户:注册账户、浏览景点介绍、浏览景点评论、搜索景区

已授权用户:浏览景点介绍、浏览景点评论、搜索景区、登陆系统、发表景区评论、订购门票、支付订单

后台管理员:浏览景点介绍、浏览景点评论、搜索景区、登陆系统、发表景区评论、订购门票、支付订单、管理用户信息、管理景区信息、管理景点信息

****: 省略用例图

.。。。。。。。。。。。。。。。。。。。。。。。。



举报

相关推荐

0 条评论