说明
期末考试单选题和判断题占30分,单选20,判断10分
单选题
选错误的
B依靠松散组合的互联网大众是无法开发出高质量软件产品的
D、所有命名都应尽量使用缩写
C、采用团队的组织方式
- D、软件需求一旦确定就不允许变化
以下哪一项是通过运行程序来发现代码问题的。
D、程序测试
单选直接记选项算了
C、修复代码中的缺陷
基于软件设计的模型和文档来编写程序是一项什么样的活动。 A、生产活动
根据确定的软件需求来进行软件设计,这是一项什么样的活动。C、既是生产活动也是创作活动
- 关于群体化开发的Issue机制,以下哪些描述是错误的。B、Issue就是指某个错误
- 以下哪一项不属于合法的软件需求 D、用户要求采用某种设计模式和技术来开发软件
- 数据流图在精化过程中,需要保持哪些方面的平衡?D、父图和子图的平衡
- 用例视点的需求模型用UML的哪个图来描述 C、用例图
- 数据流图经过转换后,得到什么样的设计模型。C、层次化的软件模块图
- 图形化的用户界面可以用UML的什么模型来表示 C、类图
- 下面属于动态界面元素的是 C、随用户选择变化的文本
- 以下是word界面的一个截图,包含3个界面元素,第一个是“自动保存”的文字描述,用户点击后面二个图元可以设置自动保存模式,保存当前的文件。这三个界面元素分别属于什么形式的界面元素。
A、静态元素、输入元素、命令元素 - 软件测试是如何发现软件中的缺陷的 C、程序处理测试数据的结果与预期结果不一致
- 以下哪个软件测试的次序是正确的 C、单元测试、集成测试、确认测试、系统测试
- 以下是某个程序模块的流图。该模块包含那几条基本路径。其中,1是入口,7是出口。
A、1-2-3-5-7,1-2-4-5-7,1-2-4-5-6-2-3-5-7 - 如果某个模块有二个参数,参数1对应于一个集合,参数2对应于一个布尔量,那么采用等价分类法,可为该模块设计多少个测试用例。 C、4个
- 以下是某个程序模块的流图。该模块包含有多少条基本路径。其中,1是入口,7是出口。
C、3条 - 软件维护有哪些基本的形式 A、纠正性、完善性、适应性、预防性维护
- 哪种软件维护形式不改变软件系统的基本功能 D、预防性
- 在开源软件开发过程中,某个开发者提出了某个Issue以建议增加某项功能,并为此提供代码,该项工作属于何种维护形式。B、完善性
- 如果一个软件的价值较高,但是内部质量较低,此时该采取什么策略来解决该软件的老化问题。 C、对软件进行重工程,以提高软件的内部质量
- 软件项目管理主要包含哪些方面的管理对象。B、人员、制品、过程
判断题
正确的
阅读和标注优质开源代码是学习编程开发、提升软件工程素养的一种有效途径。
代码的结构清晰、可理解性好,这类代码的内部质量高。
结对编程可有效地支持代码的人工审查工作。
编写程序仅仅是软件开发的一项工作,软件开发还牵涉其他方面的工作。
在现阶段软件危机依然存在。
软件工程要求采用各种技术和文档规范,以进行规范化的开发,产生规范化的软件产品。
Microsoft Office也是一个CASE工具。
Eclipse和Visual Studio都是CASE环境。
开源软件的开发是一项基于互联网大众群体创作的过程。
针对特定的软件(如微信),构思软件需求是一项软件创作的活动
- 软件过程不等同于软件生命周期,前者是对于开发而言的,后者是针对软件而言的。
- 瀑布模型、迭代模型、螺旋模型都是以文档为中心的,而非以代码为中心的,属于重型的软件开发方法。
- 敏捷开发方法以代码为中心
- Scrum、极限编程均属于特殊的敏捷开发方法,因而具有敏捷开发方法的基本特征
- 开源软件是通过群体化方法开发出来的
- 基于Git的分布式版本管理支持创建同一个软件的多个代码仓库,每个仓库由不同的开发人员进行管理,但是通常只有一个中心代码仓库。
- 群体化开发方法所依赖的软件开发者是开放的,而不是封闭的
- 群体化开发方法需要依赖于互联网平台来吸引大量的软件开发者群体
- 遗留的软硬件系统也可以作为软件的利益相关者,对待开发软件系统的需求提出要求
.开展软件需求获取和分析,不仅需要需求工程的相关知识,也需要软件所对应领域工程的知识。 - 面向对象的方法既可对软件需求进行建模和分析,也可以对软件设计及实现进行建模和分析
- 软件需求文档采用图文并茂的方式,详细描述了软件系统的功能性和非功能性需求
- 其他的物理或软件系统也可以作为软件系统的利益相关者
- 需求工程师需要与用户或客户一道,通过调研分析,明确待开发软件系统欲解决的问题,并确保问题有意义、有价值
- 如果某项初步软件需求存在可行性问题,需求工程师和用户就需要斟酌是否将该项需求作为最终的软件需求。
- 分析软件需求是要在获取软件需求的基础上,对需求进行进一步的建模、精化和细化
- 状态图有助于加强对软件需求行为特征的理解、描述和分析
- 对软件需求进行多视点建模的目的是为了加强对软件需求的理解、描述和分析
- 在软件开发过程中,具有高优先级的软件需求需要进行优先的分析、设计和实现
- 需要为每个用例建立一个或者多个的交互模型,以获得关于这些用例的详实需求信息
- 如果类A的对象向类B的对象发消息M,那么意味着类B具有相应的职责和行为来处理消息M
- 如果类A的对象向类B的对象发送一个带有参数P的消息M,那么意味着类A和/或类B具有与P相对应的属性
- 软构件作为设计元素的主要目的是为了促进对软构件的重用
- 软件设计过程是迭代的,需要对不完善的设计制品进行不断迭代
- 变换型数据流图中的变换流可能有多个转换,事务型数据流图中的事务中心只对应于一个转换。
- 结构化软件设计方法学包含有多种方法,面向数据流的软件设计方法学只是其中的一种
- 面向对象软件从需求模型到设计模型是精化过程,而不是转换过程
- Microsoft Office和WPS可以作为软件设计CASE工具,支持软件设计文档的编写
- 软件非功能性需求在软件体系结构设计中发挥着关键性的作用
- 软件体系结构在软件开发中起到承上启下、影响全局的作用,非常重要
- 软件体系结构的设计是一个迭代的过程
- 软件体系结构设计师应结合自己的开发经验来选择合适的软件体系结构风格,从而来开展软件体系结构设计
- 软件架构师需根据选定的软件体系结构风格,依据关键软件需求,进一步确定软件体系结构中的软件模块、每个模块的职责、模块间的逻辑关系,形成软件系统体系结构的逻辑视图。
- 部署图中的计算节点既可以是计算机,也可以是诸如手机、可穿戴设备等嵌入式设备
- 软件体系结构设计文档可作为单独的文档,加以撰写和管理
- 一个软件采用哪种人机交互方式,需要结合软件的特征和用户的需求考虑
- 用户也可通过语音、手势等方式也可以与软件进行交互,因此人机交互的方式多种多样
- 用户操作软件系统的主界面指用户开始使用某项用例时系统呈现出来的界面
- 用户界面设计的评审需要用户参与
- 用户界面设计的评审需要用户的深度参与
- 在设计类时,一个类的方法和属性主要来源于用例实现图中对象间传递的消息及其参数
- 类设计的任务是,对详细软件设计所产生的设计类作进一步的精化和细化,使得程序员通过类设计模型就可进行相应的编码工作
- 按照信息隐藏的原则,除非确有必要,否则应将类“隐藏”于包的内部,只对包中的其它类可见
- 确定数据存储和组织的方式时,不仅要关心系统需要考虑哪些数据,还需要考虑这些数据之间的关系
- 确定数据存储和组织的方式时,对二个类之间存在1:1或者1:n的关联关系,可以使用外键的方式降低数据的冗余性
- 数据库表通常可用类图来描述,类名表示表格名称,类的属性表示表格字段,类的方法表示数据操作
- 在确定需要永久保存的数据时,通常需要根据软件需求模型和设计模型明确系统涉及到哪些实体,以及实体之间有什么关系,从而建立系统的实体-关系模型
- 如果一个软件在设计时没有划分子系统,也没有构件,则不需要开展子系统/构件设计
- 子系统/构件的设计与整个软件系统的设计是类似的,也包括用例设计、类设计、和数据设计。
- 设计评审时不仅需要关注功能性需求的实现方案,还需要关注非功能性需求的实现方案
- 软件设计模型往往存在不够详细、考虑不周全的情况,因此程序员在软件实现时既要依据软件设计模型,同时也需要发挥他们的智慧和主观能动性,发现设计中存在的问题
- 编码过程中程序员可能发现软件设计模型和文档中存在不合理、有问题的地方,这种情况下,程序员在编写代码的同时还要同步修改和完善相应的软件设计模型和文档
- 集成开发环境(IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
- 软件测试的对象是程序代码,而非软件文档
- α测试、β测试属于确认测试
- 软件测试工作贯穿于软件开发全过程
- 在软件开发的早期阶段(需求分析和软件设计阶段),软件测试人员就可以开展软件测试工作。
- 如果某个测试技术实现路径覆盖,那么它也就能实现基本路径覆盖
- 软件测试工程师独立于软件开发工程师。
- 软件测试组织负责制定软件测试计划
- 软件的运行环境既可以是物理设备,也可以是软件系统
- 软件部署既包括部署和配置运行环境,也包括部署和配置软件系统
- 12306”软件采用分布式部署方式
- 开源软件的开发过程实际上就是一个持续维护和演化的过程
- 软件不存在物理老化的问题,但是存在逻辑老化的现象。
- 软件再工程的目的是在不改变软件功能的前提下,得到质量更高的软件系统
- 软件维护可能会产生副作用问题,导致软件质量下降。
- 根据程序代码(包括源代码和可执行代码)得到软件的设计信息,该项工作属于逆向工程和设计重构。
- 在项目实施之前,可以参照历史数据、经验模型、类比等方式来估算软件项目的规模。
- 在项目实施之前,有必要通过对软件项目进行估算,以辅助合同的签署以及软件项目计划的制定。
- 在项目实施过程中,有必要通过对软件项目进行度量和测量,以掌握软件开发的实际情况。
- 对人员、过程和制品等的管理均涉及风险管理的内容。
- 可以基于代码行数量、功能点的数量等来测量和估算软件项目的规模。
- 任何两个软件项目都不一样,软件项目具有唯一性。
- 对各类软件模型、文档、原型、代码、数据等的管理属于软件制品管理的范畴。
- 必须要基于项目的估算来制定软件项目计划
- 软件项目计划所涉及的所有人员都应参与软件项目计划的制定,以确保他们就计划的内容达成一致意见,并掌握和承诺软件项目计划的相关内容。
- 软件项目计划用于指导后续的软件开发工作
- 软件项目进度计划所包含的关键路径可能有多条
- 软件项目追踪的目的是要获得软件项目的可视性,掌握软件项目的实际状况和问题。
- 应周期性或者定期地进行软件项目追踪。
- 软件项目需要对照软件项目计划来开展。
- 每个软件配置项都有一个唯一的标识符。同一个软件制品(如软件需求规格说明书)可能会有多个不同版本的软件配置项。
- 可采用版本树来表示软件配置项的版本演化。
- 软件开发过程中会产生大量不同形式、不同类别的软件制品。所有这些软件制品都需要进行配置管理。
- 软件文档、程序模块、测试用例甚至标准和规约都可作为软件配置项
- 软件配置管理应该贯穿于软件开发全过程。
- 在软件开发过程中,已经发生的有害事件不能称为软件风险
- 软件质量保证小组应该在软件项目实施初期就制定好软件质量保证计划
- 制定标准和规范有助于提高软件制品的质量
- 软件质量保证活动应该贯穿于软件开发全过程
错误的
程序具有良好的可扩展性且易于维护,则该程序的外部质量高。
编程风格影响程序的可读性,但不会影响最终软件产品的质量。
软件质量等同于程序质量。
开源软件可以任意的下载、传播和修改,无需遵循任何的要求。
免费使用的软件属于开源软件。
UP模型是以代码为中心的一类开发方法。
- 参与群体化开发人员的水平参差不齐,所编写代码的质量也不一样,因而群体化开发方法无法保证代码的质量。
- 需求工程师必须获得完整、准确和一致的软件需求,才能进行后续的软件开发
- 需求获取工作可以一次性完成
- UML主要支持对软件的功能需求进行建模,无法对非功能性需求(如性能等)进行建模
- 类是对象的实例,对象是类的模板
- 软件需求确认(Requirement Validation)和软件需求验证(Requirement Verification)二个概念的内涵是一样的
- 软件开发者不能作为软件系统的利益相关者,提出软件系统的需求
- 只要是用户提出的问题,都值得交由软件来加以解决
- 任何问题都可以找到基于软件的解决方法
- 用户提出的任何要求都可以作为软件需求
- 相比较而言,软件的功能性需求比非功能性需求更为重要
- 任何软件需求都有其出处,也即都有提出该需求的相应利益相关者
- 在需求分析阶段,可用类图来描述软件需求中的行为特征
- 对于用户而言,所有的软件需求都不可或缺,重要性是一样的
- 在需求分析阶段,需要为每一个类建立起状态图
- 软件设计根据实际可有可无,软件开发主要是根据需求把代码编写出来
- 软件设计过程主要是形成软件设计规格说明,不需要进行管理
- 软件设计工程师需要较高的技术水平和丰富经验,其余都不重要
- 面向数据流的结构化软件设计方法在当前已经完全过时了
- 变换型和事务型数据流图的设计过程完全相同
- 软件设计评审一般只需要软件设计人员参加,程序员不需要参加
- 软件设计制品通过评审后就不需要再进行更多管理了
- 每个软件开发都应该从已有的体系结构风格中选择一个来直接使用,无需对体系结构风格进行必要的修改。
- 对于复杂的软件系统需要设计体系结构,简单的软件就不需要了
- 软件体系结构就只是一个模型,不需要从多个视点或不同层次来刻画
- 类图不能用来描述软件体系结构
- 重用已有软件资源就是要找到完全符合自己需求的相关制品
- 软件系统中的子系统、构件、设计类等设计元素是在详细设计阶段才确定的
- 软件部署模型只需要描述系统物理节点的结构
- 软件体系结构设计评审的任务是要看体系结构的设计是否满足软件需求要求
- 用户只和软件界面进行交互,看不到内部,所以界面设计比其他设计更重要
- 用户界面设计模型一般用可以展示原型的工具进行设计,采用类图、顺序图等进行界面设计没有必要
- 用户界面的初步设计需要设计出较为完善的用户界面原型
- 应尽量把界面元素放在一起,减少界面之间的跳转
- 用户界面设计的输出就是最终实现的软件界面
- 数据设计就是设计数据库的表格
- 撰写软件详细设计文档会增加项目开发工作量,影响开发进度,因此该文档应该越简单越好。
- 软件实现就是程序编码
- 代码质量分为外部质量和内部质量,确保代码内部质量的有效手段是软件测试
- 软件测试用例实际上就是一组测试数据
- 软件测试可以通过穷尽所有的测试用例来发现程序代码中的所有缺陷
- 软件测试的目的是要发现和纠正代码中的错误
- 程序调试是软件测试的工作之一
- 软件测试工作都由软件测试人员来完成
- 边界取值法是一类黑盒技术,用于支持单元测试
- 白盒测试技术通常用于集成测试和确认测试阶段,黑盒测试通常用于单元测试阶段
- 微信软件采用集中式部署方式
- 在对软件进行维护和演化时,必须停止软件对外提供服务。
- 根据程序代码(包括源代码和可执行代码)和设计文档得到软件的需求信息,该项工作属于逆向工程和设计重构。
- 由于软件项目的唯一性,任何一个项目的度量、测量和估算数据对其他的项目而言没有任何参考意义和价值。
- 所有项目组成员都要加入到软件项目跟踪小组,并对软件项目进行跟踪。
- 软件可靠性是一类内在质量表现形式
结语
单选题很明显不够期末考试的题数要求,所以很有可能是多选题改成单选题来进行考察,还是那句话,希望程设,软工都能过