1.软件生命周期分为 可行性分析与计划、需求分析、概要设计、详细设计、软件实现、软件测试及运行维护7个阶段。
2. 瀑布模型 是最早的软件生存周期开发模型,它将软件开发过程中的各项活动规定为以固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件系统或软件产品。 3. 渐增模型 是一种软件开发模型,在这种模型的每一个阶段,需要编码产生一个新的构件,并将新构件集成到先前已构成的产品中并作为一个整体进行测试,知道满足用户需求为止。 4.当没有足够的人员在规定的期限内开发完整的产品或者由于不可克服的客观原因而把交付期限规定太短时应选用 演化模型 软件开发模型。
5. 螺旋模型 是一种软件开发模型,有需求定义,风险分析,实施开发和计划评审4个部分组成,主要用于大型软件开发。
6. 可行性分析报告 文档说明该软件开发项目的实现在技术上,经济上和社会因素上等方面的可行性,评述为了合理的达到开发目的可供选择的各种可能实施的方案,说明并论证所选定实施方案的理由。
7.可行性分析的目的是 项目能否可以做。 8. 系统流程图 用于描述系统的物理模型,用物理符号以黑盒子的形式描绘系统里的每个部件,仅表达信息在系统各部件之间流动的情况。 9. 甘特图 (一种图)可以用来进行项目进度管理。
10.结构化分析与设计是一种面向 数据流 的分析设计方法。
11.常见的需求获取方式有 问卷调查、需求访谈、情景分析技术等。
12.在结构化分析中,用于描述加工逻辑的工具主要有结构化语言、判定树和 判定表 。 13.数据字典中的条目主要有 数据字典 、数据流、文件和加工四种。 14.结构化软件开发方法贯穿始终的八字方针为 自顶向下、逐层分解 。 15.在软件生命周期中的每一个阶段结束后必须进行 评审 ,这是为了能尽早发现项目开发中的错误。
16. 需求分析 是软件生命周期中重要的一步,是软件定义阶段的最后一个 阶段,是关系到软件开发成败的关键步骤。
17.数据流图模型分为变换型和 事务型 两种类型。
18. 耦合度 衡量不同模块彼此之间相互依赖的紧密程度。 19. 内聚度 衡量不同模块彼此之间相互依赖的紧密程度。 20.在软件模块设计时应该采取设计原则是 高内聚、低耦合 。
21.内聚性与模块独立性的关系为内聚性越高,模块独立性越 强 。 22.概要设计阶段应产生的主要文档为概要设计说明书,其中应包含对系统模块设计的结果。 23.详细设计阶段生成的文档是 详细设计说明书 ,它是程序运行过程的描述。
24.详细设计阶段常用的图示工具包包括程序流程图、N-S图、 PAD 及过程性设计语言。 25 详细设计 是编码的先导,这个阶段所产生的设计文档的质量将直接影响下一阶段程序的质量。
26.除非对效率有特殊的要求,程序编写要做到 清晰 第一,效率第二。
27.软件从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度成为 可移植性 。
28.RUP的全称为 统一开发过程 。
29.软件项目的风险管理一般包括风险识别、风险分析、 风险规避 和风险监控4个过程。 30.CMM的全称为 软件能力 。
31.OOA的全称为 面向对象分析 。 32.OOD的全称为 面向对象设计 。
33.软件配置管理包括 版本控制 和 配置管理 两个方面。
34.UML中的建模包括 动态 建模和 静态 建模两大类。
35.在UML中,以反映类的结构(属性,操作)以及类之间的关系为主要目的,描述了软件系统的结构的模型是 类图 。
36.UML中,参与者的外部用户所能观察到的系统功能的模型图是 用例图 。 37.UML中, 状态图 的任务就是用来描述一个对象所处的可能状态之间的转移。 38.UML中, 泳道 是将活动图用线条分成一些纵向的矩形,每一个矩形属于一个特定的对象或部门的责任区。
39.UML中,UML中, 级序图 重点表示了对象之间的传递消息的时间顺序。
二:选择题
1、在软件开发模型中提出最早,应用最广泛的模型是(A )
A、瀑布模型 B、喷泉模型 C、快速原型模型 D、螺旋模型 2、当没有足够的人员在规定的期限内开发完整的产品或者由于不可克服的客观原因而把交付期限规定的太短时应选用( B )软件开发模型
A、瀑布模型 B、增量模型 C、快速原型模型 D、螺旋模型 3、下列哪个选项不是软件工程三要素。(D ) A、方法 B、过程 C、工具 D、文档 4、软件危机是指(C )。
A、争取项目 B、项目值得开发否 C、开发项目 D、规划项目 8、下列哪个软件可以用来进行项目进度管理( D )。
A、Yisua C++ B、Eclipse C、SVN D、Microsafr Frorct。 9、下列哪个选项不是项目计划中需要完成的任务(D )。
A、项目成本估算 B、项目进度安排 C、项目资源分配。 D、系统结构设计 10、在数据流图中, ( A )代表( )。 A、源点 B、汇点 C、加工 D、文件
11、软件需求分析阶段的工作可以分为四个方面,需求获取,需求分析,编写需求规范说明书以及( B )。
A、用户 B、需求评审 C、总结 D、可行性分析 12、在数据流图中, (方块)代表(A )。 A、源点 B、数据库 C、加工 D、文件
13、数据流图是一种传统工具,用于庙会系统的(A )。
A、逻辑模型 B、程序结构 C、体系结构 D、物理结构 14、结构化分析方法的一个重要指导思想是( C )。 A、
15、下列哪个软件可以用来进行项目建模( D )。
A、Vlsual C++ B、Eclipse C、SVN D、Microsafr Frorct。
16、软件需求分析阶段建立原型的主要目的是( A )。 A、确定系统功能和性能要求 B、确定系统的运行要求
C、确定系统是否满足用户需求
D、确定系统是否满足开发人员需求
17、结构分析方法的常用工具不包括( D )。
A、数据流图 B、数据字典 C、加工逻辑说明书 D、系统结构图 18、数据流图是面向( B )分析方法的描述工具。 A、数据结构 B、数据流 C、对象 D、构件
19、内聚是对模块功能强度的度量,下面四个选项中内聚性最强的是(A )。 A、偶然内聚 B、逻辑内聚 C、功能内聚 D、信息内聚
20、内聚是对模块功能强度的度量,下面四个选项中内聚性最弱的是( A )。 A、偶然内聚 B、逻辑内聚 C、功能内聚 21、下面四个选项中融合性最强的是( A )。
A、内容融合 B、外球融合 C、数据融合 D、标记融合 22、下面四个选项中融合性最弱的是( C )。
A、内容融合 B、外球融合 C、数据融合 D、标记融合
23、数据融合,内容融合,标记融合,控制融合的融合性从低到高的排序是(B ) A、数据、内容、标记、控制 B、数据、控制、标记、内容、 C、控制、数据、标记、内容 D、控制、数据、内容,标记
24、功能内聚,顺序内聚,时间内聚,偶然内聚的内聚性从低到高的排序是( C ) A、功能、顺序、时间、偶然 B、偶然、功能、时间、顺序 C、偶然、时间、顺序、功能 D、顺序、偶然、功能、时间 25.下面对系统模块化思想描述不正确的是(D) A.有利于降低问题的复杂度
B.有效地提高软件可测试性和可维护性 C.提高软件的可靠性
D.给项目组织管理带来了困难
26.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是(A) A.模块的作用域应在模块的控制域之内 B.模块的控制域印在模块的作用域之内 C.模块的控制域与模块的作用域互相独立 D.以上说分都不对
27.下列不属于软件设计原则的是(B)
A.高内聚 B.自底向上 C.模块化 D.低耦合
28.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是(D) A.把软件划分模块 B.确定各个模块的功能 C.确定模块之间的调用关系 D.设计每个模块的伪代码
29.模块中所有成分结合起来完成一项任务,该模块的内测度是(C),它具有简明的外部界面,由它构成的软件易于理解,测试和维护。
A.偶然内聚 B.逻辑内聚 C.功能内聚 D.信息内聚
30.软件总体设计阶段的主要任务是(C) A.算法设计 B.数据结构设计 C.软件模块结构设计 D.输入/输出设计
31.软件详细设计工具中,采用自左向右的二维图形结构描述算法的是(B) A. N—S B. PAD C. DD D. DFD
32.软件详细设计阶段的主要内容是() A.算分及数据结构设计 B.功能模块设计 C.数据库设计 D.功能性能分析
33.以下有关程序流程图说法不正确的是(D) A.独立于任何一种程序设计语言 B.比较直观、清晰、易于掌握 C.不支持逐步求精
D.容易表示程序的层次结构
34.以下关于盒图(方块图)说法不正确的是(D) A.控制的转移不能任意规定 B.可以表示模块的层次结构 C.很容易表现嵌套关系
D.不符合结构化程序设计的要求
35. 在软件详细设计阶段,经常采用的工具是(A) A.PAD B.OOA C.DD D.DFD
36.下面关于良好的程序设计风格说法正确的是(A) A.使用括号以改善表达式的清晰性 B.程序中的注释可有可无 C.尽量多次使用临时变量 D.嵌套应尽可能多的使用
37.下面关于良好的程序设计风格不正确的是(A) A.尽可能多的使用GOTP语句
B.程序的格式应有助于读者理解程序 C.注释应占到整个程序的1/2—1/3
D.使用有意义的变量名
38.编制一个好的程序首先要确保它的正确性和可靠性,除此之外,通常更注重源程序的(没有AB选项,将就看)
c.易使用性、易维护性和易修改性 d.易理解性。安全性和效率
39.良好的程序设计风格中选择标识符的名字时应考虑(C) A.名字的长度越短越好,以减少源程序的输入什么 B.多个变量共用一个名字,以减少变量名的数目 C.选择含义明确的名字,以正确提示所代表的文件 D.尽量以关键字作为名字,以使名字标准化
40.为了形成良好的程序设计风格,在书写语句时应考虑(D) A.把多个短的语句写在同一行中,以减少源程序的行数
B.尽量使用标准文本以为的特殊功效的语句,以提高语句的功效 C.尽量消除表达式中的括号,以简化表达式 D.避免使用测试条件“非”,以提高程序的可读性
41.下列属于维护阶段的文档是(C) A.软件需求规格说明 B.详细计划说明书 C.软件维护申请报告 D.软件测试分析报告
42.在整个软件维护阶段所花费的全部工作中,(C)所占比例最大 A.改正性维护 B.适应性维护 C.完善性维护 D.预防性维护
43.根据引起软件维护的原因,软件维护阶段通常可分为四类,其中不包括(B) A.改正性维护 B.系统性维护 C.完善性维护 D.预防性维护
44.下列叙述中不利于软件可维护性提高的是(A) A.为了缩短源程序的程度应删去源程序中的注解
B.尽可能在软件生产过过程中保证各阶段文件的正确性 C.重视程序结构的设计,使程序具有较好的层次结构 D.在进行需求分析时就应同时考虑维护性问题
45.下面关于软件质量管理说法不正确的是(B)
A.软件质量,是贯穿软件生存期的一个极为重要的问题
B.影像软件质量的要素包括软件的功能性、可移植性、可修改性等多个方面 C.软件能力成熟度模型是用于评价软件承包商能力并辅助改善软件质量的方法 D.在软件质量管理中不应该强全面质量管理,应该是少数人对质量进行负责
46.下面关于软件配置管理说法不正确的是(D)
A.现代软件开发复杂度是提出软件配置管理的主要原因 B.软件配置管理包含两部分配置管理和变更控制管理 C.软件配置管理有助于避免软件开发中混乱情况的发生 D.软件配置管理是对开发过程中所需软硬进行的管理
47.下面关于软件风险说法不正确的是(D)
A.项目风险管理实际上就是贯穿在项目开发过程中的一系列管理步骤 B.在开发初期就应该制定完善的风险管理策略
C.在风险管理中应建立风险清单、制定解决方案及风险规避办法 D.风险管理包括风险识别、风险评估两个阶段
48.下面说法不符合极限编程思想的是(C) A.极限编程是一种敏捷开发方法
B.极限编程推崇简单设计和小版本开发
C.极限编程中测试是在编码完成之后才进行设计和实施的 D.极限编程具有很高的灵活性和实践性,但也备受争议
49.下面说法不符合极编程思想的是(B) A.极限编程是一种敏捷开发方法
B.极限编程推崇复杂设计和大版本开发 C.极限编程推崇测试现行,测试驱动开发
D.极限编程具有很高的灵活性和实践性,但也备受争议
50.UML 图不包括(D) A.用例图 B.类图 C.状态图 D.流程图
51.在类图中,下列哪个符号表示继承关系(这个题是符号的,不好写,用语言表述的)C A.实线实心的箭头 B.虚线空心的箭头 C.实线空心的箭头 D.虚线实心的箭头
52.下列哪个视图属于UML语言的交互图(D) A.行为图 B.状态图 C.实现图 D.顺序图
53.Rup中有(C)个核心过程工作流 A.1 B.3 C.6 D.9
54.类之间的关系不包括(D)
A.依赖关系 B.泛化关系 C.实现关系 D.分解关系
55.如果发现一个子类从父类继承来的行为对子类毫无意义或子类不能替代父类,这种继承关系违背了(C)
A.单一职责原则 B.依赖倒置原则 C.Liskay替换原则 D.纳米特法则
56.使用多个隔离的接口,比单个接口好,这是(A)的主要体现
A.单一职责原则 B.依赖倒置原则 C.Liskay替换原则 D.接口隔离原则
57.系统里的每一个对象应该具有单一职责,这个对象的所有服务都应该??实现这个职责上这是(A)主要思想
A.单一职责原则 B.依赖倒置原则 C.Liskay替换原则 D.接口隔离原则
58.要针对接口编程,不针对实现编程,这是(B)的主要体现
A.A.单一职责原则 B.依赖倒置原则 C.Liskay替换原则 D.接口隔离原则
59.下面对Rup说法正确的是(D)?
A.Rup是oracle公司开发和维护的过程产品 B.RUP采用瀑布式开发模型
C.Rup的整个开发周期分为初始、细化、交付三个阶段 D.uml是Rup开发方法的一种有力开发工具
60.下面对RUP说法不正确的是()
A.RUP是RATional公司开发和维护的过程产品 B.Rup采用迭代式开发模型
C..Rup的整个开发周期分为初始、细化、交付三个阶段 D.Rup被称为软件统一开发过程 三:判断题
1.可行性分析是大大简化的分析和设计过程(T)
2.可行性分析阶段需要完成可行性分析报告的书写,不需要经过阶段评审F
3.可行性分析不是解决问题,而是确定为什幺解决问题,是否值得解决(T)
4.在绘制分层数据流图时,最上层叫做0层图() T
5.需求分析解决目标系统“做什么”的问题,需求包括功能性需求和非功能性需求T
6.在一分层数据流图中,如果某张图中加工需要进一步细化,可以画出该图的子图,但应注意保持父图与子图之间的平衡 T
7.对数据流图进行分层细化时必须保持信息连续性,即当把一个处理分解一系列分解时,分解前和分解后的输入输出数据流必须相同T
8.总体设计的主要任务是确定系统的总体结构,形成软件的模块结构图,并完成总体设计说明书的的编写工作T
9.在软件模块结构的设计应力争做到低内聚高耦合F
10.既然模块化可以减少工作量,那么可以把软件进行无限分解。F
11.提高模块独立性是好的软件设计的关键,而设计有是决定软件质量的关键环节。T
12.具有一个线性结构,有明显的逻辑输入和逻辑输出,由输入、变换和输出三部分组成的数据流图为事务性数据流图 F
13.模块越小,模块的优点月明显,一般来说,模块的大小都在10行以内。F 14.在将这种混合型数据流图转换成软件结构图时,通常以事务分析为主。F 15.在进行程序编码时,为了代码的完整、精炼应少写注释。F 16.编码规范有助于程序员形成好的程序设计风格。T
17.编码规范中一般从文件组织、注释、声明、命名规范等诸多方面对编码进行要求,但其中有些事可有可无的。F
18.在程序编码时,变量的命名通常应具有实际意义,并采用全大写的命名方式。F 19.软件测试应该在编码完成后再计划和实施。F
20.软件维护会产生副作用,主要反映在三个方面,修改编码的副作用、修改数据的副作用、修改文档的副作用。T
21.在编码时尽可能使用全局变量有助于提高程序的可维护性。F
22.在软件维护时,当有源程序代码发生修改后,不用做全面的测试。F
23.在软件维护工作中,文档资料也应作及时的更新,不能明确地反映软件的实际状况,可能比没有设计文档更糟糕。T
24.在进行面向对象设计时要注意对类进行良好的封装,通常我们时将经常发生变动的部分封装起来。T
25.迭代时进行面向对象开发的一种常见方法,在迭代过程中如果发现软件结构不能灵活应对变化,应该进行设计重构。T
26.软件管理应先于任何技术活动之前,并贯穿于软件的整个生命周期之中。T 27.项目开发计划和详细设计说明书时软件设计阶段必须生成的文档。 28.在软件开发过程中,应该遵循边开发,边测试的原则。T
29.软件团队的组织对于软件项目开发非常重要,一个10人的开发团队一定比一个5人的开发团队更有效率。F
30.面向对象的软件工程方法包括面向对象分析、面向对象设计、面向对象编程、面向对象测试和面向对象维护,这些比分紧密结合在一起,填平了开发过程中的鸿沟。T 31.UML是面向对象开发方法的有力支持工具。T
四:名词解释 1.软件工程
2. 软件生命周期 3. 数据流图
4. 结构化分析方法 5. 内聚度 6. 耦合度 7. 功能内聚
8. 校正性维护 9. 适应性维护 10. 完善性维护 11. 软件配置管理 12. 开放封闭原则
五:简答题
1. 什么是软件生命周期? 分为哪几个阶段? 2. 简要说明瀑布模型的主要思想。
3. 简要说明增量(渐增) 模型的主要思想。 4. 简要说明里程碑模型的主要思想。
5. 快速原型法的基本思想是什么? 适用于哪些项目的开发? 6. 假设你负责某种软件的研发, 由于市场竞争激烈, 公司规定了严格的完成期限并且已对外公布。 你打算采用哪种软件开发模型或方法? 为什么? 7. 可行性分析报告主要包括哪些内容?
8. 项目计划应该包含哪些方面? 请以学籍管理系统为例进行说明。 9. 结构化分析方法的主要思想是什么? 有哪些常用的工具? 10. 需求规格说明书主要包括哪些内容?
11. 需求分析阶段的主要任务是什么? 应交付哪些成果?
12. 软件总体设计阶段的主要任务是什么? 需要提交哪些文档? 13. 概要设计说明书主要包括哪些内容?
14. 结构化设计的主要思想是什么? 其设计结果是什么?
15. 软件详细设计说明阶段的主要任务是什么? 需要提交哪些文档? 16. 详细设计说明书主要包括哪些内容?
17. 在软件编码阶段强调编码规范的目的是什么? 请任举两条基本的编码规范。 18. 简述软件维护的工作流程。
19. 软件开发过程中的各种文档起到什么作用? 如果文档不完整或不规范会带来什么不良后果? 请说明顺序图与协作图的区别与联系。
六:分析设计题
1. 下面是一段伪代码描述的程序流程, 请画出它的程序流程图。 START
INPUT(A, B, C, D)
While (A>0) AND(B>0) Begin
C=C+A+B D=D+A-B A— B— END IF(C>D)
PRINT(C) ELSE
PRINT(D) STOP
2. 设计算法实现三个数从小到大排列的功能, 并用盒图描述该算法。 3. 下面是一个吉他搜索系统的类图, 仔细分析该类图, 回答一下问题:
(1) 当我们要在 GuitarSpec 类中加入新的属性时, 除了 GuitarSpec 类本身, 还有哪些类可能会受到影响? (2) 你有什么改进方法?
(3) 你的改进方法应用到了什么设计原则或技术? 这样做有什么好处?
3. 分析下面各个类的关系, 在图中添加符号形成一个合理的、 完善的类图。 4. 以下是饮料销售机的类图, 请根据下面的场景描述画出该场景的顺序图。 5. 下面的文字描述了某大学新生报到的过程。
新生首先要填一张新生注册表单。 如果填写不正确, 则在别人的帮助下重新填写, 直至填写正确, 然后进行注册。 注册成功后, 要进行开学典礼, 同时在新生选课系统中注册,然后交齐第一个学期的学费。 试使用活动图描述上述过程。 6. “远程网络教学系统” 的功能需求如下:
学生登录网站后, 可以浏览课件、 查找课件、 下载课件、 观看教学视频。 教师登录网站后, 可以上传课件、 上传教学视频、 发布教学心得、 查看教
学心得、修改教学心得。
学生和教师都需要登录后完成上述操作, 请画出学生参与者对应的用例图。 7. “远程网络教学系统” 的功能需求如下:
学生登录网站后, 可以浏览课件、 查找课件、 下载课件、 观看教学视频。 教师登录网站后, 可以上传课件、 上传教学视频、 发布教学心得、 查看教学心
得、修改教学心得。
学生和教师都需要登录后完成上述操作, 请画出教师参与者对应的用例图。
8. 图书管理系统功能性需求说明如下:
图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其
存在的编号。 图书馆向每一个借阅者发放图书证, 其中包含每一个借阅者的编号和个人信息。 提供的服务包括: 提供查询图书信息、 查询个人信息服务和预定图书服务等。
当借阅者需要借阅图书、 归还书籍时需要通过图书管理员进行, 即借阅者不直接
与系统交互, 而是通过图书管理员充当借阅者的代理和系统交互。
系统管理员主要负责系统的管理维护工作, 包括对图书、 数目、 借阅者的添加、
删除和修改。 并且能够查询借阅者、 图书和图书管理员的信息。 可以通过图书的名称或图书的 ISBN/ISSN 号对图书进行查找。 回答下面问题:
1) 该系统中有哪些参与者? 2) 确定该系统中的类。
3) 找出类之间的关系并画出类图。
因篇幅问题不能全部显示,请点此查看更多更全内容