头歌部分选择题判断题和根据软件工程书整理的简答题~
选择题
1.基于软件设计的模型和文档来编写程序是一项什么样的活动
——生产活动
1.1根据确定的软件需求来进行软件设计,这是一项什么样的活动。
——既是生产活动也是创作活动
2.以下哪些过程模型支持迭代开发
——瀑布模型 原型模型 螺旋模型
3.关于群体化开发的Issue机制,以下哪些描述是错误的。
——Issue就是指某个错误
4.以下哪一项不属于合法的软件需求
——用户要求采用某种设计模式和技术来开发软件
5.数据流图在精化过程中,需要保持哪些方面的平衡?
——父图和子图的平衡
6.可以采用哪些手段来描述获得的初步软件需求
——UML的用例图 自然语言 软件原型
7.哪些UML的图可以用来描述软件需求的行为模型
——状态图 顺序图 通信图
8.需求分析人员需要从哪些视点来详细地刻画软件需求。
——用例视点和行为视点
9.软件需求模型所涉及的分析类主要包括以下几种。
——实体类 边界类 控制类 不包括B、虚拟类
10.基于UML的软件需求模型可能包括哪些UML图
——用例图、顺序图、类图、状态图 用例图、通信图、类图、状态图
11.数据流图经过转换后,得到什么样的设计模型
——层次化的软件模块图
12.面向对象软件设计原则包括
——接口隔离原则 依赖倒置原则 最少知识原则
13.软件体系结构由哪些要素组成
——构件或模块 连接子 约束和限制
14.软件体系结构表示的抽象层次和表示视图
![](https://i-blog.csdnimg.cn/blog_migrate/246b68ba4b51d397034b671875552a67.png)
15.软件体系结构风格
——管道/过滤器风格 层次风格 MVC风格 SOA风格 消息总线风格
16.部署图中的边包括
有三类节点,分别用于表示软件制品、计算节点和构件。
边,连接节点的边也有三类,分别表示计算节点之间的通信关联、软件制品之间的依赖关系、软件制品与构件之间的依赖关系
17.构件图中的构件接口包括
——供给接口 需求接口
18.以下哪些元素属于设计元素
——构件 模块
19.用户界面设计的原则包括
直观性
易操作性
一致性
反应性
容错性
人性化
20.以下哪个软件测试的次序是正确的。
——单元测试、集成测试、确认测试、系统测试
21.如果某个模块有二个参数,参数1对应于一个集合,参数2对应于一个布尔量,那么采用等价分类法,可为该模块设计多少个测试用例。
——4个
22.单元测试通常采用白盒测试技术,基本路径测试是一类典型的白盒测试技术
集成测试和确认测试大多采用黑盒测试技术,典型的黑盒测试技术包括等价分类法和边界取值法。
23.软件维护有哪些基本的形式。
——纠正性、完善性、适应性、预防性维护
23.1哪种软件维护形式不改变软件系统的基本功能。
——预防性
23.2在开源软件开发过程中,某个开发者提出了某个Issue以建议增加某项功能,并为此提供代码,该项工作属于何种维护形式。
——完善性
24.软件项目管理主要包含哪些方面的管理对象
——人员、制品、过程
25.关于开源软件的开发,以下哪些阐述是错误的。
——采用团队的组织方式
26.软件体系结构评审要关注的主要问题包括
——满足性B、可追踪性C、优化性
27.图形化用户界面的跳转关系可以用UML的什么图来表示
——顺序图C、类图
28.图形化的用户界面可以用UML的什么模型来表示
——类图
29.下面属于动态界面元素的是
——随用户选择变化的文本
30.以下是word界面的一个截图,包含3个界面元素,第一个是“自动保存”的文字描述,用户点击后面二个图元可以设置自动保存模式,保存当前的文件。这三个界面元素分别属于什么形式的界面元素。
——静态元素、输入元素、命令元素
31.以下关于UML活动图的描述,哪些是正确的。
——用于描述行为特征 可刻画对象的并发和同步动作 可用于刻画操作流程
32.软件详细设计包括。
——用例设计 关键类设计 数据设计
33.下面关于单例模式的描述中正确的是
——A、单例模式适用于那些一个类只允许实例化一个对象的场景
——B、单例模式通过将构造函数设为私有函数来避免对类进行实例化操作
C、单例模式提供一个全局的实例对象变量(错误)
——D、单例模式中在不同地方调用getInstance()函数返回的都是同一个实例化对象
34.下面关于用例交互图和用例实现图的关系描述正确的是
A、用例交互图和用例实现图都是描述用例的交互行为,因此其实是一样的(错误)
——B、用例交互图面向的是用户,用例实现图面向的是编程人员,二者针对的对象不同,因此两者的参与对象和交互行为描述方式也不一样
——C、用例实现图的设计必须以用例交互图为基础,不能脱离用例交互图
——D、用例交互图中的分析类通常都与用例实现图中的设计类存在一定的对应关系
35.类设计的成果包括
——精化后的设计类图C、描述类方法实现算法的活动图D、描述类对象状态变化的状态图
36.软件测试是如何发现软件中的缺陷的。
——程序处理测试数据的结果与预期结果不一致
37.编写的输出包括
——源程序代码B、可执行程序C、程序单元测试报告
38.如果一个软件的价值较高,但是内部质量较低,此时该采取什么策略来解决该软件的老化问题。
——对软件进行重工程,以提高软件的内部质量
39.关于软件度量、测量和估算的描述,哪些是正确的。
——A、度量是对简单属性的定量描述,测量和估算是对复杂属性的描述。
——B、测量是对当前状况的定量描述,估算是未来状况的定量描述。
C、测量是未来状况的定量描述,估算是对当前状况的定量描述。(错误)
——D、它们均是对软件过程、产品和资源等项目特征的定量描述。
40.软件项目计划包含哪些方面的规划
——A、进度计划C、资源计划D、活动计划
判断题
1.代码的结构清晰、可理解性好,这类代码的内部质量高 正确
2.程序具有良好的可扩展性且易于维护,则该程序的外部质量高。 错误
3.结对编程可有效地支持代码的人工审查工作 正确
4.免费使用的软件属于开源软件 错误
5.瀑布模型、迭代模型、螺旋模型都是以文档为中心的,而非以代码为中心的,属于重型的软件开发方法 正确
6.UP模型是以代码为中心的一类开发方法 错误
7.软件过程不等同于软件生命周期,前者是对于开发而言的,后者是针对软件而言的 正确
8.敏捷开发方法以代码为中心 正确
9.Scrum、极限编程均属于特殊的敏捷开发方法,因而具有敏捷开发方法的基本特征 正确
10.开源软件是通过群体化方法开发出来的 正确
11.参与群体化开发人员的水平参差不齐,所编写代码的质量也不一样,因而群体化开发方法无法保证代码的质量。 错误
12.需求工程师必须获得完整、准确和一致的软件需求,才能进行后续的软件开发。 错误
13.遗留的软硬件系统也可以作为软件的利益相关者,对待开发软件系统的需求提出要求 正确
14.面向对象的方法既可对软件需求进行建模和分析,也可以对软件设计及实现进行建模和分析 正确
15.UML主要支持对软件的功能需求进行建模,无法对非功能性需求(如性能等)进行建模 错误
16.类是对象的实例,对象是类的模板。 错误
17.软件开发者不能作为软件系统的利益相关者,提出软件系统的需求 错误
18.相比较而言,软件的功能性需求比非功能性需求更为重要。 错误
19.如果某项初步软件需求存在可行性问题,需求工程师和用户就需要斟酌是否将该项需求作为最终的软件需求。 正确
20.分析软件需求是要在获取软件需求的基础上,对需求进行进一步的建模、精化和细化 正确
21.在需求分析阶段,需要为每一个类建立起状态图 错误
22.变换型数据流图中的变换流可能有多个转换,事务型数据流图中的事务中心只对应于一个转换。 正确
23.软件体系结构设计评审的任务是要看体系结构的设计是否满足软件需求要求。 错误
24.数据库表通常可用类图来描述,类名表示表格名称,类的属性表示表格字段,类的方法表示数据操作 正确
25.代码质量分为外部质量和内部质量,确保代码内部质量的有效手段是软件测试。 错误
26.根据程序代码(包括源代码和可执行代码)得到软件的设计信息,该项工作属于逆向工程和设计重构 正确
27.结构化需求分析方法学有多种,面向数据流的需求分析方法学仅仅是其中的一种。 正确
28.需求工程师需要与用户或客户一道,通过调研分析,明确待开发软件系统欲解决的问题,并确保问题有意义、有价值 正确
29.需要为每个用例建立一个或者多个的交互模型,以获得关于这些用例的详实需求信息 正确
30.在需求分析阶段,可用类图来描述软件需求中的行为特征。 错误
31.状态图有助于加强对软件需求行为特征的理解、描述和分析。 正确
32.软构件作为设计元素的主要目的是为了促进对软构件的重用 正确
33.软件设计过程主要是形成软件设计规格说明,不需要进行管理。 错误
34.面向对象软件从需求模型到设计模型是精化过程,而不是转换过程。 正确
35.类图不能用来描述软件体系结构 错误
36.软件系统中的子系统、构件、设计类等设计元素是在详细设计阶段才确定的 错误
37.用户操作软件系统的主界面指用户开始使用某项用例时系统呈现出来的界面 正确
38.类设计的任务是,对详细软件设计所产生的设计类作进一步的精化和细化,使得程序员通过类设计模型就可进行相应的编码工作 正确
39.在软件开发的早期阶段(需求分析和软件设计阶段),软件测试人员就可以开展软件测试工作。 正确
40.微信软件采用集中式部署方式。 错误
41.12306”软件采用分布式部署方式。 正确
42.在对软件进行维护和演化时,必须停止软件对外提供服务 错误
43.可以基于代码行数量、功能点的数量等来测量和估算软件项目的规模 正确
44.软件可靠性是一类内在质量表现形式。 错误
简答题
1. 什么是软件工程?软件工程的目标是什么?
答:软件工程是
①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中
②对①中所选方法的研究。
目标:1 合理预算开发成本,付出较低的开发费用。2 实现预期的软件功能,达到较好的软件性能,满足用户的需求。3 提高软件的可维护性,降低维护费用。4 提高软件开发生产率,及时交付使用
2. 什么是软件?
软件是指由程序、数据和文档所组成的一类系统,它可以在计算机系统的支持下实现特定的功能,并提供相关的服务。
3.什么是开源软件?
开源软件是一种源代码可以自由获取和传播的计算机软件,其拥有者通过开源许可证赋予被许可人对软件进行使用、修改和传播的权利。
4.什么是软件危机?
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
5.什么是软件生存周期?
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.什么是结构化分析方法?
结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止
7.什么是软件设计?
软件设计是指针对需求工程所定义的软件需求,考虑软件开发的各种制约因素,遵循软件设计的基本原则,定义构成软件系统的各个设计元素,提供可指导软件实现的解决方案,形成软件设计模型和文档。
8.什么是软件体系结构?
软件体系结构刻画了软件系统的构成要素及它们之间的逻辑关联,一般地,软件体系结构由三类要素组成:构件、连接件和约束。
9.什么是软件详细设计?
软件详细设计是对软件概要设计、用户界面设计等所产生的设计元素从局部、细节等层次开展的设计。
10.什么是软件测试?
软件测试是指通过运行程序代码来发现软件中潜在缺陷的过程。
11.什么是软件维护?有哪些分类?
是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程。
纠错性维护:为了改正软件系统中的错误,使软件能够满足预期的正常运行状态的要求而进行的维护适应性维护:为了使软件适应内部或外部环境变化,而去修改软件的过程。改善性维护:满足使用过程中用户提出增加新功能或修改已有功能的建议维护。预防性维护:为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的活动。
12.什么是软件逻辑老化?
软件逻辑老化是指软件在维护和演化过程中出现的用户满意度降低、质量逐渐下降、变更成本不断上升等现象。
13.什么是软件风险?
软件风险是指是使软件项目开发受到影响和损失,甚至导致软件项目失败的可能发生的事件。
14.什么是黑盒测试和白盒测试黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了 的功能是否符合要求。白盒测试:已知产品的部工作过程,可以通过测试证明每种部操作是 否符合设计规格要求,所有部成分是否以经过检查。
15.软件设计的原则有哪些?
模块化,抽象化与逐步求精,信息隐藏与局部化,模块独立
16.耦合与内聚分别有哪些?如何定义?如何区分?
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度内聚衡量一个模块内部各个元素彼此结合的紧密程度
![](https://i-blog.csdnimg.cn/blog_migrate/b15ce19b7f59950d1d7eb8786034d42f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8004f6f4633f1aaf49ca7ad77cdbfeb1.png)