软件工程期末复习汇总

单选题

  1. “是否有可用的软件配置管理工具”可用于识别( )
    A人员风险
    B过程风险
    C技术风险
    D开发环境风险

  2. 关于增量原型模型说法错误的是( )
    A不含有软件需求分析阶段
    B把软件产品作为一系列增量构建来开发
    C分批逐步地向用户提交产品
    D含有软件设计和编码阶段

  3. 关于情景分析的理解,正确的是?
    A过程分析是描述每个交互步骤的详细内容
    B角色分析是分析用户角色与软件系统的交互步骤
    C过程描述是描述用户、第三方交互对象
    D情景分析需要基于业务问题识别情景

  4. 以下所列的性质中,( )不属于面向对象程序设计的特性。
    A继承性
    B可视化
    C封装性
    D重用性

  5. 关于增量原型方法的解释正确的是( )
    A基于用户原始需求,构造需求的可视化原型;用户对需求原型进行反馈,然后进行需求原型迭代,直到所有需求达
    B通过将目标软件分割成不同的功能单元,每个功能单元作为独立的原型进行开发,最后将所有功能单元合并成完整
    C先构建软件视图(View),数据层使用仿真原型服务,最后实现数据服务并进行软件集成
    D通过逐步细化的方式对目标软件进行原型迭代开发,直到该原型作为最终产品交付给客户

  6. 面向对象设计时, 对象信息的隐藏主要是通过( )实现的。
    A系统模块化
    B模块的可重用
    C子类的继承性
    D对象的封装性

  7. 以下哪些不是UI设计的原则?
    A隐藏性原型
    B结构化原则
    C容错原则
    D简洁性原型

  8. 度量软件规模时,说法正确的是( )
    A代码行技术是精确的度量技术
    B功能点技术不适用于非过程编程语言
    C功能点技术是精确的度量技术
    D代码行技术不适用于非过程编程语言

  9. 模块的独立性是由内聚性和耦合性来度量的, 其中内聚性是()
    A接口的复杂程度
    B模块的功能强度
    C模块间的联系程度
    D信息隐藏程度

  10. 领域建模中,概念类之间的关系不包含()
    A、IS-A关联
    B、多对多关联
    C、单向关联
    D、HAS-A关联

  11. 以下哪个属于UML中的动态视图?
    A类图
    B包图
    C用例图
    D时序图

  12. 当产生需求冲突时以下那种解决方案是错误?
    A理解和重视冲突双方的需求
    B某些绝对要满足的需求,在客户不知道的情况下可以不保留
    C非常重要但并非必须的需求是值得保留的
    D基本需求需要达成一致

  13. 软件生命周期的英文是( )
    A Software Implement
    B Software Coding
    C Software Design
    D Software Life Cycle

  14. 关于UI设计中心智模型说法不正确的是()
    A只有互联网的软件产品设计才需要考虑心智模型
    B用户的心智模型指导着用户使用软件的方式
    C提高用户使用软件体验的方法是将目标用户的心智模型和软件产品功能结合在一起
    D好的UI设计能够使用户的心智模型和UI的交互方式保持一致

  15. 软件详细设计的主要任务是确定每个模块的()
    A技术路线
    B外部接口
    C算法和使用的数据结构
    D功能

  16. 软件危机产生的主要原因不包括( )
    A轻视软件维护
    B软件本身的特点
    C进行阶段评审
    D软件开发方法落后

  17. 关于面向对象分析的理解,正确的是?
    A动态模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能
    B功能模型可以使用类图来建立模型
    C对象模型又被称为领域模型,表示静态的、结构化的系统的“数据”性质
    D对象模型可以描述对象内部或外部事件的响应过程

  18. 以下哪个不是质量需求?
    A可靠性
    B精确性
    C数据
    D可维护性

  19. 以下哪项不属于低保真原型( )
    A故事板
    B角色扮演
    C UI设计图
    D线框图

  20. “不能满足需求而导致项目失败”该风险的等级是( )
    A可忽略的
    B灾难性的
    C轻微的
    D严重的

  21. 快速原型模型的本质是( )
    A不注重文档编写
    B推迟实现
    C保证开发质量
    D尽可能快地构造软件

  22. 以下哪个不是情景分析的环节?
    A分析软件产品架构的关键点
    B用例建模
    C确认情景可实现
    D分析情景的重要度

  23. 以下哪个不是采用了结构化分析方法?
    A数据流
    B数据字典
    C时序图
    D判定表

  24. 在软件设计中,把一个时期内必须解决的问题按照优先级排序,从而确保每个问题都将被解决,且每个问题都将在适当的时候被解决,它属于软件设计的哪种方法?
    A信息隐藏
    B逐步求精
    C模块化
    D抽象

  25. 只有类的共有界面的成员才能成为使用类的操作, 这是软件设计的( )原则
    A共享性
    B功能抽象
    C信息隐藏
    D过程抽象

  26. 软件工程知识领域不含( )
    A软件构建
    B软件设计
    C软件销售
    D软件需求

  27. 把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程是( )
    A软件
    B软件工程
    C软件测试
    D软件维护

  28. 关于RUP模型说法正确的是( )
    A、RUP工作流程的基本任务不含业务建模
    B、RUP是一种迭代式开发模型
    C、RUP工作流程的基本任务不含代码实现
    D、RUP工作流程的基本任务不含需求采集

  29. 小王在使用某软件时,不小心点到了“删除按钮”,没有二次确认提示,该记录立即bei删除了,且无法恢复。该软件的设计违背了哪项原则?
    A结构化原则
    B容错原则
    C隐藏性原型
    D简洁性原型

  30. 在类图中,表示private权限的是哪个符号?
    A、+
    B、#
    C、~
    D、-

  31. 以下哪个环节不是获取需求的环节?
    A收集用户需求
    B规格说明
    C概要设计
    D分析理解

  32. 关于需求的理解,正确的是
    A功能需求指的是软件系统必须具备的质量特征需求
    B用户解决问题或达到目标所需条件或能力(Capability)
    C质量需求也可以称为非功能需求
    D质量需求指的是软件系统必须具备的功能特征需求

  33. LOC和KLOC之间的进率是( )
    A100
    B10
    C1000
    D10000

  34. 以下哪个不是原型法包含的内容
    A原型交互性
    B原型数量
    C原型生命周期
    D原型保真度

  35. 当算法中需要用一个模块去计算多种条件的复杂组合,并根据这些条件完成适当的功能时,从供选择的答案中, 选出合适的描述工具。
    A程序流程图
    B N-S图
    C判定表
    D PAD图

  36. 以下哪项不是面向对象设计原则()
    A单一职责原则
    B开闭原则
    C提前介入原则
    D依赖倒转原则

  37. 以下哪个不是用例图的组成部分
    A用例
    B参与者
    C系统边界
    D生命线

  38. 软件工作量估算的单位通常是( )
    A月
    B人月
    C周
    D人

  39. 以下哪个不是原型法常用的技术?
    A形式化规格说明
    B第四代技术
    C情景分析
    D可重用的软件构建

  40. 以下哪个不是数据流图的组成部分?
    A数据存储
    B数据流向
    C数据存储文件
    D数据处理

  41. 模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()
    A局部化和封装化
    B抽象和信息隐藏
    C内聚性和耦合性
    D逐步求精和结构图

  42. Barry W.Boehm提出的软件工程7条基本原理不包括( )
    A使用自动化测试技术
    B坚持进行阶段评审
    C开发小组的人员应该少而精
    D用分阶段的生命周期计划严格管理

  43. 瀑布模型的特征不包含( )
    A每个任务阶段中包含风险分析内容
    B任务阶段之间有上下承接关系
    C任务阶段之间有先后顺序
    D理想化过程模型

  44. 以下哪项不能有效提升软件的用户体验()
    A提高软件响应速度
    B使用纯色背景
    C有效的反馈机制
    DUI一致性

  45. 关于概要设计和详细设计的差异说法不正确的是()
    A概要设计对应于集成测试,是设计集成测试用例的主要依据;而详细设计对应于单元测试,是设计单元测试用例的
    B概要设计用于指导代码实现,而详细设计给出了软件由哪些部件组成以及它们之间的关系
    C概要设计依据软件需求进行设计,而详细设计不仅依据软件需求,更要依据概要设计的成果。
    D概要设计承接软件需求,所以概要设计可以由需求分析人员(熟悉软件需求)编写或者设计人员(站在设计的角度

  46. 瀑布模型将软件开发阶段分为几个阶段?( )
    A、3
    B、2
    C、6
    D、1

多选题

  1. 软件工程的三要素是( )
    A方法
    B过程
    C工具

    D数据

  2. 软件生命周期的基本任务包含( )
    A概要设计
    B需求分析
    C单元测试
    D详细设计

  3. 下列哪些软件/技术是采用对等网络风格(P2P)体系结构
    A快播
    B迅雷

    C博思平台
    D区块链

  4. 面向对象分析分法有哪些?
    A动态模型
    B对象模型

    C判定树
    D功能模型

  5. 软件生命周期模型包含( )
    A螺旋模型
    B用例模型
    C E-R模型
    D瀑布模型

  6. 以下项目工作量估算模型依赖于经验数据的有( )
    A COCOMO2模型
    B静态单变量模型
    C动态多变量模型
    D Kemerer模型

  7. 以下关于MVC架构说法正确是()
    A MVC是Model,View和Controller的首字母缩写。
    B模型管理大部分的业务逻辑和所有的数据库逻辑。模型提供了连接和操作数据库的抽象层。
    C控制器负责响应用户请求、准备数据,以及决定如何展示数据。
    D视图负责渲染数据,通过页面方式呈现给用户。

  8. 软件需求的获取可以通过以下哪些方式?
    A做用户的学徒
    B调查表
    C情景分析
    D原型法

  9. 需求建模常用的方法有哪些?
    A数据建模
    B用例建模
    C领域建模

    D功能建模

  10. 软件系统的接口设计主要包括()
    A外部接口
    B管理员接口
    C用户接口
    D内部接口

  11. 以下哪些是软件的功能需求?
    A功能
    B安全性
    C数据
    D性能

  12. 以下哪个不是常用的软件需求分析方法
    A面向对象分析
    B结构化分析
    C基准化分析
    D面向过程分析

  13. 以下哪些属于项目的技术风险?( )
    A是否有足够的人员可用
    B软件是否需要与新的或未经验证的硬件接口交互
    C用户需求中是否对产品性能有过分的约束

    D是否有可用的分析和涉及工具

  14. 以下关于客户服务器风格架构说法正确是()
    A B/S架构分别表示浏览器与服务器
    B C/S架构分别表示客户端与服务器
    C C/S架构必须安装客户端软件才能使用
    D B/S架构软件在安全性、数据一致性、软件可维护性等方面要优于C/S架构软件

判断题

  1. MVC设计模式只能用于网页项目的开发是(X)。

  2. 情景分析可以降低开发者对业务的理解复杂度(

  3. 如果一个项目组成员要离职,应该让其在离职前做更多的任务,以加快整个项目的进度这句话是(X

  4. 用例建模过程中,用例可以没有参与者这句话是(X

  5. 螺旋模型和快速原型模型相比,没有哪个更为优秀,只是适用的项目类型不同。这句话是(

  6. 资金出现短缺或开发成本超出预算的风险属于可忽略的风险等级。这句话是(X

  7. 面向对象模型包含:静态模型、动态模型、功能模型。这句话是(

  8. MVC设计模式中处于核心作用的是M。这句话是(X

  9. 软件需求一般包括功能需求和质量需求(

  10. 领域建模需要涉及软件内部技术设计的对象类。这句话是(X

  11. 软件结构图是为了反映软件系统中组件之间相互关系和约束的体系结构设计图,称为软件体系结构图更为合适。这句话是(

  12. 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力也是一种软件需求。这句话是(

  13. 高保真(High Fidelity)原型是高度接近最终产品功能和交互特性的软件原型。这句话是(

  14. 结构化分析主要是运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域及系统责任所需的对象,定义对象的属性、操作以及它们之间的关系。(X

  15. FP指功能点,英文全称是Function Points(

  16. 划分模块可以降低软件的复杂度和工作量,所以应该将模块分得越小越好。(X

  17. 常见的原型设计工具有Photoshop、磨刀、mockplus(

  18. 需求说明书不能作为测试与验收的依据(X

  19. 瀑布模型是一种对瀑布流量进行计算的模型(X

  20. 在面向对象的设计中,应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有信息隐藏。(

  21. 人员在技术上是否配套可用于识别人员风险(

  22. Gantt图和PERT图都可以用于项目进度的跟踪。这句话是(

  23. 判定树是一种面向对象分析方法这句话是(X

  24. 软件设计一般分为总体设计和详细设计,它们之间的关系是全局和局部。这句话是(X

  25. 软件危机指国家间为了设置技术壁垒,导致的外交危机。这句话是(X

  26. C/S架构软件在发挥客户端PC的处理能力上优于B/S架构软件。这句话是(

  27. HIPO图是表示软件结构的一种图形工具,包含模块分解的层次性以及模块内部输入、处理、输出三大基本部分。这句话是(

  28. LOC的英文全称是Line of Cat。这句话是(X

  29. 数学基础是软件工程的知识领域之一(

  30. E-R图主要由实体、联系和属性组成。这句话是(

解答题

  1. 软件工程的概念
    应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、和维护的工程或进行研究的学科。

  2. 生命周期的模型
    1、瀑布模型
    书上的两种瀑布模型的区别(老师有提到会画)有六个周期
    在这里插入图片描述
    在这里插入图片描述
    优点:严格、应用广泛、提供了模板
    缺点
    (1)实际的项目很少按照该模型给定的顺序进行
    (2)软件运行版本要等到开发周期的晚期才能得到,如有重大问题后果是灾难性的
    (3)客户常常难以给出所有需求,但瀑布模型却要求如此,缺乏适应需求变化的灵活性
    (4)瀑布模型可能会导致过多的文档,更新文档成为一项专门的工作
    (5)因等待造成“阻塞”
    2、快速原型模型
    在这里插入图片描述
    优点:快速让用户看到样子。
    缺点:正好是瀑布模型的优点。
    3、螺旋模型(大题机率不大)
    每一个步骤做之前都会评估一下风险
    在这里插入图片描述
    在这里插入图片描述

  3. 软件需求获取方法

在这里插入图片描述

  1. 需求分析
    结构化分析
    1)实体–关系图(ER图)
    符号表示
    实体—矩形
    属性—椭圆形
    关系—菱形(三种关系一定知道和区分)

在这里插入图片描述
数据流图(DFD图)
数据流图标
在这里插入图片描述
数据流图的分层
在这里插入图片描述
数据字典(了解即可)
在这里插入图片描述
判定树(了解即可)
在这里插入图片描述
在这里插入图片描述
面向对象分析
1)静态
面向对象的步骤(类图)绘制类图
在这里插入图片描述
2)动态
在这里插入图片描述

  1. 软件的结构风格(简答题)
    在这里插入图片描述
    1)功能结构图:知道怎么画即可,没有高要求。
    在这里插入图片描述
    2)架构图(制作了解)
    在这里插入图片描述
    在这里插入图片描述
    3)设计体系结构(重点
    在这里插入图片描述
    1)客户服务器结构风格(重点
    在这里插入图片描述
    优缺点一定要清楚:
    在这里插入图片描述
    4)MVC(重中之重
    M:模型,V:视图,C:控制器
    优点:代码结构较为清晰、数据模型的复用
    在这里插入图片描述
    步骤:
    第一步:用户发送一个指令到控制器。
    第二步:根据用户的指令,控制器去选取合适模型。
    第三步:模型进入后台取数据。
    第四步:寻找合适的试图。
    第五步:讲数据传给视图,并按照用户想要的样子显示出来。
    在这里插入图片描述
    5)接口设计(了解,没有大题)
    在这里插入图片描述
    设计原则-表征性状态传输
    在这里插入图片描述
    6)模块设计的原则
    低耦合,高内聚
    在这里插入图片描述
  2. 软件设计
    在这里插入图片描述
    1)概要设计
    概要设计的主要任务是通过仔细分析软件规格说明,适当地对软件进行功能分解,把软件划分为模块,并且设计出完成预定功能的模块结构。
    2)详细设计
    详细设计的主要任务是详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构
    3)设计方法
    <1>结构化设计–以数据为中心
    自顶向下,逐步求精–原则
    在这里插入图片描述
    层次图绘图(h图)重点
    在这里插入图片描述
    在这里插入图片描述
    HIPO图(了解即可)
    在这里插入图片描述
    在这里插入图片描述
    <2>面向对象设计–以对象为中心
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    1)UML一定要会画(==注意共有与私有)
    UML几种类图总结
    继承
    在这里插入图片描述
    接口(要加备注
    在这里插入图片描述
    7.用户界面设计(UI)大题
    软件原型是目标软件的最基础的工作模型
    低、中、高保真
    1)低保真原型有哪一些?
    在这里插入图片描述
    2)高保真
    在这里插入图片描述
    3)提高用户体验的方式(问答题)
    (1)使用俚语或隐喻
    (2)反馈机制
    (3)提高软件响应速度
    (4)UI一致性
    在这里插入图片描述
    4)设计原则(要理解)
    在这里插入图片描述
    8.开发工作量
    1)代码行估算
    切记平均值
    在这里插入图片描述
    2)有个1000的转换

在这里插入图片描述
软件工程思维导图


1、瀑布模型,增量模型,快速原型模型
瀑布模型:各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落,每项活动均处于一个质量环(输入-处理-输出-评审)中。
增量模型:增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。
快速原型模型:演化模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品

2、 用户需求,系统需求,非功能需求(懒就只背黄字)
用户需求:描述了要求系统必须完成的任务,即用户对系统的目标要求。通常只涉及系统的外部可见行为,不涉及系统的内部特性。用户需求一般采用自然语言和直观图形相结合的方式描述,例如采用用例(Use Case)文档或场景(Scenario)等方式说明。
系统需求:系统需求详细地给出系统将要提供的服务以及系统所受到的约束。
系统需求来自于系统分析和结构设计。系统需求文档也称为功能描述,应该是精确的,它可能成为买方和开发方之间合同的主要内容。
非功能需求:是对功能需求的补充,包括了对系统的各种限制和用户对系统的质量要求。

3、UML(统一标准建模语言)
UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行可视化建模。UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和方法都可使用它。
4、项目管理的5大过程和9大知识领域
5大过程:起始 规划 执行 结案 监督与控制
9大知识领域:质量管理 时间管理 范围管理 成本管理 人力资源管理 沟通管理 采购管理 风险管理 项目整体管理

5、MVC模式
将表示与交互用系统数据中分离出来,将系统分为三个相互交互的逻辑组件组成,模型,视图,控制器。
模型:管理系统数据和数据的操作
视图:定义和管理数据显示给用户的方式
控制器:管理用户的交互。
6、模块化,信息隐蔽,类的聚合和泛化
模块化:就是为了减少系统耦合度,提高内聚,减少资源循环依赖,增强系统框架设计。
让开发者便于维护,同时也让逻辑相同的部分可复用。
信息隐蔽(信息隐藏):应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
聚合:是一种特殊的关联,是表示“整体-部分”的关系
泛化:由一个超类和几个直接子类构成的结构通常称为泛化 。类的这种关系也称为一般-特殊关系或继承关系,将现实世界实体的共同特性抽象为一般类,通过增加独有的特性而成为各种特殊类。
7、软件开发过程包括哪些主要文档?内容作用以及他们之间的关系?
需求文档:主要是对业务的分析,确定业务的场景及主流程逻辑;用户能看懂自己做什么。研发团队也知道要做什么。
概要设计:主要是系统模块划分、选择的技术路线。整体说明软件的实现思路。并且需要指出关键技术难点。
讲细设计。对系统模块的功能进行具体的描述,对每个动能进行精确的、结构化的描述。

8、根据类图写代码或者是根据代码画类图
例1:
在这里插入图片描述

public class annimal{
 public String name;
 private int age;
 protected String trueName;
 String sex;
 publilc String getName(){
 return name;
 }
private void setName(String name){
this.name=name;
}
}

例2:
在这里插入图片描述

public abstract class Employee{}
public class Programmer extends Employee{}
  • 11
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃香菜的斌斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值