文章目录
- Chapter one
- Chapter two——软件过程
- Chapter three——可行性研究
- Chapter four——需求分析
- Chapter five——总体设计
- Chapter six——详细设计
- Chapter seven——实现
- Chapter eight——软件维护
- Chapter nine——软件项目管理
- Chapter ten——面向对象
- 一些不会的题
- 一些可能的简答题
概要设计就是总体设计
V模型中,需求分析对应的是验收测试(确认测试,确认需求);系统设计对应的是系统测试(验证设计)
- 总体设计和详细设计又称为
系统设计
结构设计
是总体设计阶段的任务,过程设计
是详细设计阶段的任务。[过程就是函数嘛,设计函数不就是详细设计阶段了么,结构设计设计软件结构]- 模块化的启发式规则有:设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇入。其结构图像清真寺的塔,上面尖、中间宽、下面小。
- DFD、层次图和HIPO是总体设计、PDL和N-S(盒图)等是详细设计
- 软件项目估算时,若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出功能点估计值,记作a, m, b,则估算的期望值E的公式为(E = (a+4m+b)/6)。
- 按McCabe程序环形复杂度计算方法,若E代表流图G的边数,n为G的节点数,则程序的环形复杂度V(G)=(E-n+2)。
软件配置管理是软件系统发展过程中管理和控制变化的规范。
以便于以后修改可以查查!UML中的4种基本关系包括关联关系、依赖关系、泛化关系、实现关系
简易的应用规格说明技术FAST面向团队的需求获取方法
,用户和开发人员同等地位。
Chapter one
-
【单选题】下面的(D)是正确的。
A、运行正确的软件就是高质量的软件。×
B、软件产品质量越高越好,最理想的情况是达到“零缺陷”。 [最理想的情况是“以最低成本满足所有要求”]
C、软件质量是由产品的功能、性能、易用性等外在特性决定的 ×
D、软件质量是在开发过程中逐渐构建起来的 -
【单选题】下面几个描述中属于软件工程方法学三要素中方法这个范畴的是(C)。//方法、过程、工具
A、对于需求确定的软件问题,可以按照问题定义、需求分析、设计、实现、测试和部署的步骤进行顺序的软件产品开发
B、对于跨平台的软件产品,可以采用Java语言进行开发
C、为了有效捕获系统的功能性需求,可以采用用例的方法
D、在面向对象的软件设计和开发过程中,可以使用Rational Rose创建和管理可视化模型 -
【单选题】以下关于软件的特点的描述中,错误的是(C)。
A、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性
B、硬件磨损后可以用备用零件替换,而软件出故障,则无法用备用零件替换来解决,是因为设计开发过程中存在错误
C、软件存在老化和退化问题,软件老化缘于使用过久,软件退化缘于修改(软件不存在老化和磨损问题!)
D、软件的生产与硬件不同,在它的开发中没有明显的制造过程。对软件的质量控制,必须着重在软件开发方面下功夫 -
【单选题】软件工程方法是(A)。
A、为开发软件提供技术上的解决方法
B、为支持软件开发、维护、管理而研制的计算机程序系统
C、为了获得高质量软件而实施的一系列活动
D、为了理解问题和确定需求而采取的一些技术和方法 -
【单选题】“软件工程”术语是在(C)被首次提出。
A、美国卡内基·梅隆大学的软件工程研究所
B、IEEE的软件工程知识体系指南(SWEBOK)
C、1968年NATO会议(选个带年份的,这年份够早了哈哈)
D、Fred Brooks的《没有银弹:软件工程中的根本和次要问题》 -
【单选题】下面的(C)说法是正确的。
A、购买大多数计算机系统所需的硬件比软件更昂贵
B、由于软件是产品,因此可以应用其他工程制品所用的技术进行生产
C、大多数软件系统是不容易修改的,除非它们在设计时考虑了变化
D、一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功- 软件的成功并不仅仅取决于与开发者的目标一致,更重要的是与客户的期望和需求一致。
-
【判断题】对软件的质量控制,必须着重在软件开发方面下功夫。 √
Chapter two——软件过程
-
【单选题】RUP定义了初启阶段、精化阶段、构建阶段、移交阶段,每个阶段以达到某个里程碑时结束,其中(B)的里程碑是生命周期架构。
A、构建阶段
B、精化阶段
C、初启阶段
D、移交阶段- 目标(初启阶段)、架构(精化阶段)、初始运作功能(构建阶段)、产品发布(移交阶段) [各自里程碑]
- Rup的经验被称为“最佳实践”
-
【单选题】以下关于极限编程(XP)的最佳实践的叙述中,不正确的是(C)。
A、系统最终用户代表应该全程配合XP团队
B、只处理当前的需求,使设计保持简单
C、编写完程序之后编写测试代码[测试先行。先写测试代码,然后再编写程序]
D、可以按日甚至按小时为客户提供可运行的版本 -
【单选题】增量模型是(B)。
A、适用于需求被清晰定义的情况
B、一种需要快速构造核心产品的好方法
C、一种不适用于商业产品的创新模型(永远不选,书上没提到过谁是你这样的)
D、已不能用于现代环境的过时模型 -
【单选题】某大型公司计划开发一款新产品,开发周期长,但是与重要客户相关的风险也很多,最适于采用(B)开发过程模型。
A、原型
B、螺旋
C、瀑布
D、增量- 螺旋模型:只适合大型软件项目开发,引入风险分析。
- 螺旋模型:只适合大型软件项目开发,引入风险分析。
-
【单选题】敏捷设计要求系统设计在任何时间都尽可能的简单、干净和富有表现力,下面对敏捷设计理解错误的是(A)。
A、对于软件管理者来说,只需要做很少的管理工作
B、对于软件设计者来说,通过简单、直观的划分,使其具有最小耦合的内部结构
C、对于用户来说,通过直观、简单的界面呈现出恰当特征的程序
D、对于开发人员来说,每周都会取得一些重大进展【短交付周期,每两周完成一次迭代】 -
【单选题】下列软件哪个最适合采用敏捷开发方法(A)。
A、小型创业项目软件
B、铁路12306购票网
C、Windows操作系统
D、火箭飞行控制系统- 敏捷开发适合小型创业项目软件。(短平快,团结一致做,所以小型会适合一点)
-
V模型的本质是对瀑布模型的需求获取活动进行改造,有助于需求的定义和确认。
- 答案:错,因为V模型并没有对瀑布模型的需求分析活动进行改变。
-
【判断题】为了防止软件腐化,敏捷开发团队不需要一个成熟的初始设计,而是通过多次使用单元测试和验收测试,灵活、持续地改进设计。√
- 敏捷开发,适应变化,成熟的初始设计怎么变呀,你说是不是,所以是对的!
- 敏捷开发,适应变化,成熟的初始设计怎么变呀,你说是不是,所以是对的!
-
【判断题】采用原型法时,关键的因素是建立模型的速度,而不是原型运行的效率。√
【判断题】软件过程有时也会被称为软件生命周期。√
Chapter three——可行性研究
-
【单选题】结构化语言、判定表和判定树属于(C)规格说明的描述工具。
A、控制
B、脚本
C、加工
D、数据描述 -
【单选题】结构化分析阶段,不适用于描述加工逻辑的工具是(A)。
A、层次图
B、判定表
C、结构化语言
D、判定树 -
【单选题】结构化分析方法使用DFD描述(A)。
A、系统的功能
B、系统的基本加工 (描述加工的是那些过程设计工具,程序流程图、盒图、PDL、判定表等)
C、系统的控制流程
D、系统的数据结构 -
【单选题】以下说法正确的是(D)。
A、数据流图中的每个加工必须在数据字典的加工说明中予以定义
B、数据流图中的图形元素个数应当控制在7+2以内
C、数据流图绘制时为方便起见,通常先为加工命名,再为与之相关联的数据流命名
D、数据流图中的每个数据流和数据存储必须在数据字典中予以定义- 先为数据流命名,再为加工命名。
- B是±
- A是最低层的每个加工需要说明
-
【单选题】进行需求分析可使用多种工具,但(C)是不适用的。
A、数据流图
B、数据词典
C、PAD图
D、判定表 -
【判断题】需求规格说明书可以做为软件可行性研究的依据。答案:错
- 软件定义阶段:可行性研究、需求分析、总体设计。先进行可行性研究然后进行需求分析,需求分析的最终产物是需求规格说明书。
- 软件定义阶段:可行性研究、需求分析、总体设计。先进行可行性研究然后进行需求分析,需求分析的最终产物是需求规格说明书。
-
【判断题】在结构化分析方法中,可以使用判定表与判定树来表达系统内数据的运动情况。×
- 判定表用于表示程序的静态逻辑。
- 数据运动情况用DFD数据流图
Chapter four——需求分析
-
【单选题】我们通常把确定需求,或者说确定系统应提供哪些服务以及系统运行受到哪些限制的过程及其相关的活动称之为(B)。
A、软件过程
B、需求过程
C、软件需求
D、软件说明 -
【单选题】软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及(B)。
A、总结
B、需求分析评审
C、阶段性报告
D、以上答案都不正确 -
【单选题】传统结构化需求分析的目的是理清数据流或数据结构,导出完整的、精致的(D)。
A、系统物理模型
B、数据流图
C、系统结构图
D、系统逻辑模型 -
【单选题】在一个列车控制软件的需求文档中,我们发现了以下两条需求描述:“列车车门在两个停靠站之间要保持关闭”;“列车发生紧急停车时,要打开车门”。这里出现的需求问题是什么? D
A、无法测试的需求
B、不完整的需求
C、含糊的需求
D、矛盾与不一致的需求- 需求矛盾了,第一个两个停靠站之间要保持关闭,第二个需求紧急停车要打开,那么在两站之间要紧急停车,是打开还是关闭?满足哪个需求?
-
【单选题】以下哪种方法最适用于身处多个不同地点的人在各自方便的时间参与并围绕同一个主题表达自己的观点? C
A、面向数据流自顶向下求精
B、简易的应用规格说明技术
C、问卷调查
D、面谈 -
【单选题】软件需求分析的任务不应包括(D)。
A、信息域分析
B、问题分析
C、确定逻辑模型
D、结构化程序设计[这个已经是设计部分了!] -
- C
-
【判断题】软件需求是待开发产品或系统的功能描述。答案:错
- 题目是给需求下了定义,但实际上需求不止这些,还有非功能需求的描述,不仅仅要说出功能有什么,还要给出具体功能的约束,比如非功能需求。
Chapter five——总体设计
-
【单选题】(B)着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。
A、实体关系图
B、系统结构图
C、程序流程图
D、数据流图
-
【单选题】(D)把已确定的软件需求转换成特定形式的软件表示,使其得以实现。
A、详细设计
B、系统设计
C、逻辑设计
D、软件设计 -
【单选题】管道过滤器风格的特点不包括(A)。
A、适合处理与用户有交互的应用
B、该风格使得软构件具有良好的隐蔽性和高内聚、低耦合的特点
C、支持软件重用和构件的并行执行
D、允许对吞吐量和死锁等系统性质的分析- 不适合于处理交互的应用
-
【单选题】下列对软件体系结构的描述错误的是(D)。
A、软件体系结构是对子系统、系统构件以及它们之间相互关系的描述。
B、子系统和构件一般定义在不同的视图内,以显示软件系统的相关功能属性和非功能属性。
C、软件体系结构是软件系统的一组关键设计决策。
D、软件体系结构是软件需求活动的一种工作产品。- D需求活动扯太远了,软件体系结构是总体设计阶段的方法。而且需求活动的产品是需求规格说明书。
-
【单选题】下面的(B)不是模块化设计的目的。
A、提高模块的可靠性和复用性
B、清楚地描述系统的功能和性能
C、易于维护和功能扩展
D、降低程序设计的复杂性- 模块化并没有描述!
-
【判断题】信息隐藏是指把一些关系密切的元素物理地放得彼此靠近。×
- 信息隐藏是指在设计软件模块时应该使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。
- 局部化是指把一些关系密切的元素物理地放得彼此靠近。
-
【判断题】错误处理类模块是典型的逻辑内聚模块。√
-
【判断题】基于事件/隐式调用风格增加了构件之间进行数据交换的难度。√
-
【判断题】变换分析得到的结构图是一个三分支结构,即包括输入部分、变换中心部分和输出部分;而事务分析得到的结构图是一个二分支结构,即一个接收分支和一个发送分支。答案:√
-
(判断题)模块A直接访问模块B的内部数据,则模块A 和模块B的耦合类型为公共耦合。×
- 是内容耦合;公共耦合必须体现出访问同一个公共数据环境。
- 内容耦合包括A访问B,一个模块有多个入口,两个模块有一部分程序代码重叠(只能出现在汇编语言中),一个模块不通过正常入口转到另一个模块内部。
Chapter six——详细设计
-
【单选题】以下说法正确的是(C)。
A、所有改变循环条件的成分都在循环体外
B、在当型循环中,循环体至少要执行一次
C、在直到型循环中,循环体至少要执行一次
D、基本程序结构不允许嵌套- 当型循环可以认为是:while(){}
- 直到型可以认为是:do{}while() -->do until
- 基本程序结构是顺序结构、选择结构、循环结构。比如循环嵌套哦
-
【单选题】下面哪条属于伪码的优点? B
A、支持逐步求精
B、不仅可以作为设计工具,还可以作为注释工具
C、形象直观
D、便于描述较为复杂的条件组合- 不形象!我看不懂
- 不便于,难写死了!
-
【单选题】软件详细设计的图形工具中,(B)可以纵横延伸,图形的空间效果好。
A、流程图
B、PAD图
C、HIPO图
D、N-S图- C是总体设计的图形工具
- A和D差不多的,选B,B是树形结构可以纵横延伸。
【单选题】下面哪条属于程序流程图的优点?B
A、便于表达数据结构
B、描绘直观,便于掌握
C、支持逐步求精
D、程序员可以很早地开始考虑程序的控制流程
-
我没学就会看了,所以选B
-
ACD,它都有对应的缺点
-
【单选题】人机界面设计是软件设计工作的一项重要内容,下面各项中(C)不属于良好的人机界面设计原则。
A、出错信息应该使用面向用户的术语并为用户提供有助于从错误中恢复的建设性意见
B、减少用户的记忆负担
C、系统的响应时间越短越好
D、帮助系统应该为用户提供多个可能的入口- 不是越短越好,主要是稳定!追求短但不稳定的话,用起来很难受。
-
【判断题】一个程序流程图对应的盒图表示是唯一的。答案:×
-
【判断题】使用PAD符号所设计出来的程序必然是结构化程序。√
-
【判断题】详细设计评审应尽可能和概要设计评审一同进行。×
- 先概要设计再详细设计,不然详细设计出来的是错的,一起评审总体设计有问题,详细设计还得写。
Chapter seven——实现
-
【单选题】如果在某班级管理系统中,班级的班委有班长、副班长、学习委员和生活委员,且学生年龄在15~25岁。若用等价类划分来进行相关测试,则(D)不是好的测试用例。
A、(班长,20)
B、(班长,15)
C、(队长,15)
D、(队长,12)- 队长、12岁都不是有效的输入,分别属于两个无效输入等价类,一个测试用例只能包含一个无效输入等价类!
-
【单选题】使用等价类划分法时,完全不考虑软件的(A)。
A、内部结构
B、外部环境
C、顺序
D、业务流程- 等价类划分是黑盒测试,不考虑程序内部。
-
【单选题】下列不属于软件配置复查目的的是(C)。
A、确保文档与程序完全一致
B、保证软件配置的所有成分都齐全
C、确保软件具有完成测试所必须的细节
D、确保软件质量符合要求- 不是测试,是具有完成软件维护所必须的细节。软件配置可能是软件已经做完了,写配置之后好维护吧。
-
【单选题】单元测试的重点包括模块接口、(D)、重要的执行通路、出错处理通路和边界条件。
A、不正确或遗漏的功能
B、外部信息访问
C、初始化或终止性错误
D、局部数据结构- 死记硬背,不过单元测试测试一个模块,出错很可能是一个局部数据除了错。
-
【单选题】关于代码性能优化,下面(C)是错误的。
A、应先通过测试找出限制效率的真正瓶颈
B、应以提高程序的全局效率为主,局部效率为辅
C、要优先改进耗时最多的部分
D、任何优化都不能破坏代码的正确性- 没必要最多,改进性价比最高的更好哦!
【判断题】集成测试是测试和组装软件的系统化技术,进行集成测试时可以采用非渐增式测试和渐增式测试,其中渐增式测试实质上是同时完成单元测试和集成测试。答案:√
-
非渐增测试指的是每个单元分别测试,然后结合成需要的程序。
-
渐增测试指的是一个单元模块和就和之前测试过的所有模块合并进行测试,慢慢叠加,最后直接变成一个需要的程序。所以这同时完成了单元测试和集成测试。
-
这个渐增非渐增测试 重点是测试上的
-
【判断题】软件测试的目的是尽可能地发现程序中的错误和缺陷,详细严密的测试过程可以证明软件的正确性。答案:×
- 软件的正确性无法证明,你可能永远发现不了小错误
-
【判断题】测试分析报告应把每个模块实际测试的结果,与软件需求规格说明书和概要设计说明书中规定的要求进行对照并作出结论。×
- 这里概要设计说明书错了,每个模块相当于单元测试,相当于函数之类的,这应该是详细设计而不是总体设计,总体设计注重于系统功能
- Beta测试用户参与,开发者通常不在现场,是软件在开发者不能控制的环境下的“真实”应用;Alpha测试由用户在开发人员“指导”下进行测试。
Chapter eight——软件维护
-
【单选题】(C)是从现有的程序代码中抽取有关数据、体系结构和处理过程的设计信息,以便恢复设计结果。
A、正向工程
B、数据重构
C、逆向工程
D、代码重构- 逆向工程 从现有的源代码重新抽取出系统结构
- 正向工程改变或重构现有系统
- 代码重构,重构烂模块
- 数据重构改掉一些较差的数据结构,比如结构化改成面向对象的类。(始于逆向工程)
- 不是所有遗留软件都要再工程,只有哪些仍有价值但难以维护的软件才需要再工程
-
【单选题】下面的(B)不是软件再工程活动。
A、程序结构改善
B、增加新的功能
C、数据再工程
D、逆向工程- A 数据重构、代码重构都算呀
- 正向工程是重新开发现有系统,并引入新功能。单纯增加新功能算不上重新开发。重新开发是需要重新实现现有的系统的!
-
【单选题】以下关于提高软件可维护性的措施中,错误的是(A)。
A、尽可能利用硬件特点以提高程序效率。
B、在分析用户需求时同时考虑维护问题。
C、不要修补不好的程序,要重新编写。也不要一味地追求代码的复用,要重新组织。
D、把与硬件及操作系统有关的代码放到某些特定的程序模块中。- 除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二。尽可能()以提高程序效率, 这种基本上都是错的
-
【判断题】代码重构是最常见的再工程活动,关注个体模块中存在的问题并完善软件的整体架构。答案:×
- 代码重构针对的是个体模块,并没有完善软件的整体架构!改进了单个模块,怎么能够晚上整个软件的架构呢?
Chapter nine——软件项目管理
-
【单选题】在软件开发的各种资源中,(C)是最重要的资源。
A、硬件环境
B、开发工具
C、人员
D、方法 -
【单选题】配置管理贯穿软件开发的整个过程。以下内容中,不属于配置管理的是(B)。
A、版本控制
B、风险管理
C、变更管理
D、配置状态报告- 配置管理是对软件配置项的管理,软件配置项中间产物不用风险管理的。
-
【单选题】关于工作分解结构,下列(A)说法是错误的。
A、工作分解结构的最高层,是项目的可交付成果
B、工作分解结构不包括的工作就不在项目的范围之内
C、工作分解结构表现形式可以是图表也可以是文字大纲
D、工作分解结构是自顶向下逐层构建的- 工作分解结构(WBS) 是项目本身,下层是可交付成果。
-
【判断题】采用的编码方法和语言在表达和解决问题方面效率越高,用代码行方法计算的生产率就越高。×
- 采用的编码方法和语言在表达和解决问题方面效率越高,用代码行方法计算的生产率反而会低
-
【判断题】估算软件规模有代码行技术和功能点技术两种方法,其中代码行方法估计实现一个功能所需要的源程序行数,其不依赖项目所使用的开发语言,并且具有较好的直观性。×
- 严重依赖所开发的语言,不同语言比较没有意义。
-
【判断题】软件开发工作量是软件规模(KLOC或FP)的函数,其单位通常是人月(PM)。√
-
- 人员组织都可以分为集中式和分散式。集中式适合大项目或是周期固定、较短的项目;分散式适合创新。历时较长的。因此本题是对的。
Chapter ten——面向对象
-
【单选题】在使用用例进行需求建模时,可以将常规动作放在一个用例中,将非常规动作放在另一个用例中,那么这两个用例之间的关系是(B)。
A、关联关系
B、扩展关系
C、包含关系
D、泛化关系- 主程序包含子程序:包含关系
- 汽车 可以是 法拉利,劳斯莱斯等泛化关系。父类子类
- 常用的放在一个基本用例,扩展的功能放在其他用力:扩展关系
-
【单选题】在使用用例描述一个图书租售系统的需求时,以下(A)不能作为参与者。
A、张三
B、顾客
C、信用卡支付系统
D、图书管理员- actor必须是一个角色,而非角色的实例
- 参与者 是 对系统起作用的对象。支付系统是外部软件系统也可以作为参与者
-
【单选题】UML中的4种基本关系包括(C)。
A、包含关系、扩展关系、泛化关系、关联关系
B、继承关系、多态关系、重载关系、关联关系
C、关联关系、依赖关系、泛化关系、实现关系
D、调用关系、泛化关系、实现关系、重载关系 -
【单选题】当一个对象具有特征(A)时,应该将其建模为属性,而不是类。
A、除了非常简单的取/赋值操作(set,get等),不具备更多其他行为。
B、有可能被多类对象共享或传递。
C、具有比较复杂的自身行为。
D、具有独立标识。- 具有独立标识,有可能被多类对象共享或传递 是 需要建模为实体类的。
-
【判断题】在UML用例图中,参与者之间可以有泛化关系,表示子参与者的实例可以与其父参与者对应的用例实例进行交互。答案:√
-
【判断题】聚合关系(aggregation)是一种特殊的组合关系(composition),聚合关系具有很强的归属性,而且整体与部分的对象生存周期是必须一致的。答案:×
- 聚合零件是一个复用的,割草机坏掉了,刀片还能用
- 但组合的共存亡,汽车坏掉了 它的门用来卖废品,装在其他车上就不好用了。
-
【判断题】状态图详细说明了由事件序列引起的状态序列。在面向对象分析中要针对每个类创建状态图,以刻画每一个类的动态行为特性。 ×
- 不需要为每一个类创建状态图。
-
部署图是描述一个系统运行时的硬件节点、在这些节点上运行的软件构件将在何处物理运行以及它们将如何彼此通信的动态视图。×
- 部署图是静态视图;动态视图:活动图、状态图
-
在面向对象分析中仅仅关注把概念组织成分析类之间的泛化关系,而不能用复用的形式来解释。√
-
【判断题】现拟要求开发一个企业信息管理系统,要求与原来已有的一商品库存系统相连接。在用用例图刻画该目标系统功能时,商品库存系统应该表示成为一个用例。×
- 需要开发的系统的活动是用例,商品库存系统是外部系统作为参与者。
-
从用例图中的每一对参与者和用例,可以确定一个边界类,从每一个用例可以确定一个(或多个)控制类。√
- 每个用例可以抽取出一个或多个控制类。
一些不会的题
-
子参与者可以执行父参与者可以执行的用例、参与者可以执行父用例的子用例。
-
- 至少关注一个用例的实现
- 至少关注一个用例的实现
-
在黑盒测试中,着重检测输入条件的组合的测试用例设计方法是(因果图法)
-
- 只有通过正式的变化控制过程才能改变它
-
结构化分析方法从三个方面建模:数据建模、行为 建模、功能建模
-
软件体系结构是对子系统、软件系统构建以及它们之间相互关系的描述。
-
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
-
软件生命周期由软件定义、软件开发和运行维护3个时期组成。
-
瀑布模型是以文档驱动的,喷泉模型是一种以用户要求为动力,以对象为驱动的模型。
-
黑盒测试依据需求规格说明书,检查程序是否满足功能需要。因为,黑盒测试又称为功能测试或数据驱动测试。
-
动态测试指通过运行程序发现错误。使用黑盒测试法和白盒测试法。
-
在进行软件模块造构设计时应当遵循的最主要的准则是模块化
-
将本来非线性的软件开发过程人为地加以线性化,不符合实际中的软件开发情况是瀑布模型存在的问题。√
-
在程序运行之前没法评估其质量。×
-
敏捷过程是一个一维的迭代过程、RUP是一个二维、双重的迭代过程;敏捷过程在快速的同时仍保持可持续性。
- RUP中对人员按“角色”进行划分
- 敏捷过程即使到了开发后期也欢迎改变需求
-
软件是计算机系统中与硬件相互依存的另一部分,是实现系统功能的程序。×
- 分析主谓宾:软件是程序。×! 软件是程序、文档和数据。
一些可能的简答题
①软件工程的概念
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
②软件工程方法学的三要素
方法、工具和过程
③传统方法学和面向对象方法学的特点优点
④软件生命周期的三个划分内容
⑤每种基本生命周期模型(瀑布、V、快速原型、螺旋)的特点和优点缺点 以及 怎么画
⑥可行性研究的目的和任务
⑦需求为何重要的事实(说是知道一下)
⑧体系结构风格,主要构成,特点,作用,含义,优点,使用场景。
⑨集成测试的优点缺点
⑩什么是基线,什么是软件配置项