软件工程复习题及答案(完整)
软件工程复习题(带答案)
一、填空题1.程序设计的三种基本结构是、、(顺序、条件、循环),它们的共同点是一个入口和一个出口。
2.程序的三种基本控制结构的共同特点是。
(单入口单出口)3.用结构化语言来描述加工逻辑的外层结构时,基本结构有________(顺序结构、选择结构、循环结构)4.软件的实现阶段主要包括(编码)阶段和(测试)阶段。
5.计算机程序及其说明程序的各种文档称为。
(软件)6.软件是、和(程序、数据、相关文档)的完整集合。
7.软件工程管理的具体内容包括对开发人员、组织机构、用户和______(文档资料)等方面的管理。
8.为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以(软件文档)的编制是很重要的。
9.软件工程方法学有3大要素、工具、。
(方法、过程)10.需求分析是确定系统(必须做什么),其最终成果是(需求分析规格说明书)。
11.在需求分析中,开发人员要从用户那里解决的之重要的问题是。
(软件应当做什么)12.软件开发活动的顺序是_________。
(问题定义、可行性研究、需求分析、设计、编码和测试)13.软件需求分析的任务包括_________。
(问题分析、信息域分析、确定程序结构)14.最早提出软件系统维护问题的阶段是_________。
(需求分析)15.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做______(软件危机)。
16.“软件危机”是指________ 。
(软件开发和维护中出现的一系列问题)17.快速原型模型是用户和设计人员之间的一种交互过程,适用于(需求不确定性高)的系统。
18.快速原型是利用原型辅助软件开发的一种新思想,它是在研究(需求阶段)的方法和技术中产生的。
19.瀑布模型是以文档为驱动,适用于(软件需求明确)的系统。
20.瀑布模型本质上是一种________ 模型。
(线性顺序)21._______(喷泉模型)是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的软件开发方法。
软件工程基础(复习题及答案)
软件⼯程基础(复习题及答案)复习题⼀、判断题(每题2分,共30分)1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(对)2.数据字典是对数据流图中的数据流,加⼯、数据存储、数据的源和终点进⾏详细定义。
(错)语⾔编译器是⼀个CASE⼯具。
(对)。
4.软件是指⽤程序设计语⾔(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
(错)5.软件模块之间的耦合性越弱越好。
(对)6.数据库设计说明书是⼀个软件配置项(对)7.在⾯向对象的软件开发⽅法中,每个类都存在其相应的对象,类是对象的实例,对象是⽣成类的模板。
(错)8.过程描述语⾔可以⽤于描述软件的系统结构。
(错)9.如果通过软件测试没有发现错误,则说明软件是正确的。
(错)10.快速原型模型可以有效地适应⽤户需求的动态变化。
(对)11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到⾼内聚,低耦合度的软件产品。
(对)12.集成测试主要由⽤户来完成。
(错)13.确认测试计划应该在可⾏性研究阶段制定(错)14.⽩盒测试⽆需考虑模块内部的执⾏过程和程序结构,只要了解模块的功能即可。
(错)15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(对)16.在可⾏性研究中最难决断和最关键的问题是经济可⾏性。
(╳)17.耦合是指⼀个模块内各个元素彼此结合的紧密程度。
(╳)18. ⼀笔交易、⼀个动作、甚⾄操作⼈员按⼀个按钮都可以看做是⼀次事物。
(√)19.概要设计阶段完成的主要⽂档是概要设计说明书。
(√)20.过⼤的模块可能是由于分解不充分造成的,即使降低模块独⽴性也必须继续分解。
(╳)21.程序设计语⾔中应绝对禁⽌使⽤GOTO语句。
(╳)22.类是关于对象性质的描述,由⽅法和数据组成。
(√)23.随着软件技术的发展,⼈们逐渐认识到编码不仅要强调效率还要强调清晰。
(√)25.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。
软件工程复习题库带答案完整版
软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
软件工程复习题及参考答案
软件工程课程复习资料一、单项选择题:1.下面哪些UML图描述系统行为A.用例图B.类图C.对象图2.属于概要设计活动的是A.软件结构设计B.数据结构设计C.算法设计3.属行为型设计模式的是A.组合模式B.工厂方法模式C.观察者模式4.下列说法正确的是A.UML 是软件开发方法B.UML是系统描述语言C.UML是软件开发过程5.根据程序流程图划分的模块通常是A.信息内聚的模块B.过程内聚的模块C.逻辑内聚的模块6.如果某程序中的比较个数是m,则其 McCabe环形复杂度为A.m-1B.mC.m+17.按ISO9000-3的说明,下列属软件配置项的是A.软件开发方法B.软件开发组织管理制度C.软件开发合同8.软件测试的目的是A.证明软件无错B.发现软件中的所有错误C.尽可能发现软件系统中的错误9.软件重构关注的是A.软件体系结构B.模块细节C.软件性能10.软件项目开发计划的内容有A.数据分析B.风险分析C.功能分析11.在UML的类图中,描述整体与部分关系的是A.泛化关系B.聚合关系C.依赖关系12.软件过程能力成熟度模型CMM用以评价A.软件过程能力B.组织能力C.学习能力13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为A.完善性维护B.改正性维护C.适应性维护14.对项目软件而言,软件功能需求信息主要由谁提供A.软件用户B.软件开发人员C.软件项目管理人员15.IDEF0 图反映不出A.系统做什么B.系统功能由谁做C.系统如何做16.原型模型是一种什么开发过程模型A.自顶向上B.由外至内C.增量式17.系统流程图描述A.物理系统B.逻辑系统C.软件体系结构18.需求规格说明书的内容不应该包括A.软件确认准则B.软件的性能描述C.算法过程的详细描述19.适合需求模糊或需求不确定系统开发的软件开发模型是A.瀑布模型B.RAD 模型C.原型模型20.UML 图中描述系统结构的是A.组件图B.顺序图C.状态图21.面向对象方法是一种什么软件开发方法A.层次化B.迭代增量式C.逐步求精22.不可以用来衡量软件可维护性的是A.可靠性B.可用性C.可行性23.系统分析员在需求分析最后负责编写A.用户手册B.概要设计说明书C.可行性研究报告24.为了提高软件的可靠性、可维护性等而对软件的修改称为A.改正性维护B.适应性维护C.预防性维护25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构A.与问题结构对应B.与问题结构独立C.与用户界面对应26.单元测试的计划应该在什么阶段完成A.需求分析B.概要设计C.详细设计27.下列属面向对象软件开发方法的是A.LCP 方法B.OMT 方法C.IDEF0 方法28.强调信息隐藏的软件工程设计方法是A.Jackson 方法B.Parnas 方法C.SA/SD 方法29.描述系统动态行为的模型是A.包图B.软件结构图C.状态图30.考虑输入条件组合的测试用例设计方法是A.等价分类法B.语句覆盖法C.因果图法31.下列能减少支援性维护活动的是A.利用软件包B.进行配置管理C.对用户进行适当培训32.只支持单重继承的程序设计语言是A.C++B.DelphiC.C33.IDEF0 图的顶层图是A.A0 图B.A-0 图C.A-1图34.在UML的用例图中,扩展关系是一种A.泛化关系B.依赖关系C.关联关系35.独立测试小组开始介入测试是在A.模块测试阶段B.集成测试阶段C.确认测试阶段36.在成本估计中容易低估局部问题的方法是A.基于经验模型的估计B.自底向上估计C.自顶向下估计37.在IDEF1X图中,如果子实体与父实体存在联系,则子实体将继承父实体的A.全部属性B.主关键字属性C.非主关键字属性38.结构化分析方法使用的工具是A.数据流图B.类图C.软件结构图39.白盒测试设计用例的方法是A.等价分类法B.基本路径覆盖法C.因果图法40.在衡量软件质量时,最重要的标准是A.可维护性好B.可用性好C.满足用户功能需求41.瀑布模型是一种A.演化模型B.顺序模型C.增量模型42.模块的独立程度可以由什么定性标准度量A.耦合度B.复杂度C.可靠性43.以下选项中,不属于对象的特点有A.继承B.多态C.封闭44.面向数据结构的设计方法有A.Parnas 方法B.Jackson 方法C.IDEF0 方法45.与UML配合最好的软件开发方法是A.RUP 方法B.Coad/Yourdon方法C.IDEF4方法二、填空题:1.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是和 ;2.软件是计算机程序、及的完整集合,将其统称为软件配置,这些项称为软件配置项;通过正式复审的软件配置项称为 ,只有通过正式的变化控制过程才能改变它;3.纯收入是指在整个生存周期之内的与投资之差;4.瀑布模型是以驱动的软件生存周期模型,适合需求明确的软件系统开发;5.在单元测试期间,应该为被测模块编写相应的测试软件,一般地模块接收测试数据,并把数据传给被测模块,而模块则模拟实际模块完成少量数据处理;6.IDEF0方法用严格的自顶向下、逐层分解的方式进行系统的功能描述,其顶层图将图在建模范围内分解成个主要部分得到;7.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为内聚的模块;8.程序静态分析的对象是 ;常生成各种引用表,如列出各模块中出现的全部标号;9.在数据流图中,每个加工至少有一个和一个 ;10.两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是 ;11.设E为程序图G中边的总数; N 为程序图中结点的总数,则该程序图的环形复杂度为 ;12.汽车有一个发动机;若用UML描述汽车和发动机之间的关系,则它们之间是_____关系;13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即策略和策略;14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构: 程序图,在计算了程序图的之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组的一条路径;从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径;15.在多层次的结构图中,其模块结构的层次数称为结构图的 ;结构图中同一层模块的最大模块数称为结构图的 ;16.耦合性是指两个模块之间的关系,模块之间的联系越复杂,每个模块的独立性就 ;17.可行性研究实质上是进行了一次过程;18.需求分析的任务是 ;19.NS图的主要优点是它强制设计人员使用技术,从而可保证软件设计的质量;20.结构型模式涉及如何组合类和对象,从而构成更大的对象,一是采用来组合接口或实现形成更大的结构;另一种方式通过方式来形成;21.为了便于对照检查,测试用例应由和预期的两部分组成;22.软件开发时,一个错误发现得越晚,为改正它所付出的代价就 ;23.在UML的用例图中,根据参与者与用例关系的不同,参与者可分为和次要参与者,参与者之间的关系只有关系;24.评价软件质量可以从三个方面进行,即产品或中间产品、和项目;25.软件配置管理是一组用于在计算机软件的整个生存周期内管理的活动;26.通过抽象,可以确定组成软件的 ;通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的 ;27.UML表示法的基础是 ,它描述建模元素的语义;28.条件覆盖是指设计足够的测试用例,使得至少出现一次;29.面向数据流图的结构化分析方法是根据的原则,按照系统中数据处理的流程,用数据图来建立系统的模型;30.评估软件企业的质量管理有两种方法,一种是按照认证,另外一种是按照CMM认证;31.风险估计从两个方面来度量,一是估计 ,二是估计与风险相关的问题出现后将会带来的损失;三、名词解释:1.集成测试2.设计模式3.信息隐藏4.用例5.结构化方法6.MVC四、判断题:1.测试计划、测试用例和出错统计等一般不用长期保存;2.在面向对象方法中,需求分析和设计没有差别;3.应用设计模式使得软件灵活,可重用性提高,应该尽量多使用;4.UML 是一种建模语言,可以被任何面向对象方法使用;5.任何系统都需要对数据进行处理,因而数据流图可描述任何系统;6.软件开发就是编写程序代码;7.面向对象软件开发最适合采用迭代、增量式的开发模型;8.设计模式是一种可以重用的面向对象软件设计方案;9.软件测试就是检查程序是否正确;10.软件项目计划在可行性研究阶段就已定稿;11.软件工程认为软件设计的最终目标是要取得最佳方案;12.只要对软件进行严格的测试,就能发现软件中的所有错误;13.初级技术人员在编码阶段参与软件项目的程度在各类人员中最高;14.单元测试常常在编码阶段进行;15.CMM 描述和分析了软件过程能力的发展与改进的程度;16.为了加快开发速度,可以一边写程序,一边设计文档;17.没有发现任何错误的测试是无效的测试;18.软件结构图中不能有控制信息流动;19.单元测试常常由独立的测试小组进行;20.用例建模只能用于面向对象软件系统的开发;21.数据流建模方法是一种自顶向下的需求分析方法;22.为了减少程序的长度,最好不要在程序中增加注释;五、简答题:1.在需求分析和设计阶段建立原型的好处有哪些2.什么是模块的扇入和扇出3.UML的特点是什么4.层次图和层次方框图有何区别5.软件测试对象应包括哪些内容6.试简要叙述文档在软件工程中的作用;7.为何螺旋模型主要适合开发人员和用户为同一个组织机构成员的软件项目的开发8.软件测试为何需要尽早和不断地进行9.简要说明如何实现MVC;10.试给出一种开源软件框架,并简要说明开源软件存在的问题;11.IDEF0方法有什么特点12.快速原型模型有几种各有何特点六、综合题:1.某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,该系统提供如下服务:1浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括姓名、学号和专业名称;2浏览教师信息:网络学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓名、工号和职称;3登录:网络学院给学院每个人一个账号;拥有授权帐号的学生和老师,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册;4修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信息进行修改;5删除个人信息:只有网络学院的管理人员才能删除不再是学院学生或老师的人员的有关信息;试问哪些是参与者哪些是用例并用UML的用例图描述系统行为;2.试据下述伪代码描述的模块,改用NS图描述;BeginabDo Until x6If xl thenfIf x4 thenDo Until x5iEnd UntilElseghEnd ifElseSelect Case x2Case 1:Do While x3cEnd WhileCase 2:dCase 3:eEnd SelectEnd ifEnd UntilEnd3.某五星级宾馆共有H间客房;每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中;房间等级用整数表示;房间状态有:空闲0表示和占用1表示;客房以房间为单位出租;试设计一个算法,依据散客的要求预定房间,要求输入为:人数M,房间等级要求RR为0表示任意等级均可;输出为:可供选择的房间号;要求用程序流程图描述算法;4.某医院打算开发一个以计算机为中心的患者监护系统,以解决医院人手不够和对危重病人的及时监护;该系统应能做到以下几点:随时接受每个病人的生理信号;定时记录病人情况形成患者日志;当病人生理信号超出医生规定的安全范围时向值班护士发告警信息;此外,护士在需要时,还可要求系统印出指定病人的病情报告;试椐此叙述绘出对应的DFD图;5.试采用设计模式描述算术表达式不含圆括号的设计方案;算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数;6.请根据如下程序流程图设计该程序段的判定覆盖测试用例,其中输入为A,B,X,输出为X;参考答案一、单项选择题:1.A2.A3.C4.B5.B6.C7.C8.C9.B 10.B 11.B 12.A 13.C 14.A 15.C 16.B 17.A 18.C 19.C 20.A 21.B 22.C 23.A 24.C 25.A 26.C 27.B 28.B 29.C 30.C31.C 32.B 33.A 34.B 35.C 36.C 37.B 38.A 39.B 40.C 41.B 42.A 43.C 44.B 45.A二、填空题:1.聚集组合2.描述计算机程序的文档数据基线3.累计经济效益折合成现在值4.文档5.驱动模块桩模块6.A-0 3-67.逻辑 8.源程序标号交叉引用表9.输入流输出流 10.5011.E – N + 2 12.聚合13.深度优先广度优先 14.环形复杂性以前没有处理的语句或条件15.深度宽度 16.依赖越低17.大大压缩简化了的系统分析和设计过程 18.确定系统必须完成哪些工作19.结构化 20.继承对象组合21.输入数据预期输出结果 22.越大23.主要参与者泛化 24.过程25.变化 26.过程实体存取限制27.UML 元模型 28.判定表达式中每个条件的各种可能的值29.分解与抽象功能 30.ISO900131.风险发生的可能性三、名词解释:1.集成测试也称组装测试或联调;是指在单元测试的基础上,将所有模块按照概要设计要求组装成一个完整的系统而进行的测试;模块组装的方式有两种:渐增式和非渐增式;2.设计模式是普通面向对象设计问题的解决方案,这类问题以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计;所有设计模式均可以从四个方面加以描述:模式名称、问题描述、解决方案和效果;3.信息隐藏是指在模块设计时,使得一个模块内包含的信息过程或数据,对于不需要这些信息的其他模块来说是不能访问的;这样,改变模块的内部过程和数据的设计不会影响到其它模块;4.用例是参与者为达到某个目的而与系统进行的一系列交互,执行结果将为参与者提供可度量的价值;从参与者的角度来看,用例应该是一个完整的任务,在一个相对较短的时间内完成;5.结构化方法是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口,其基本原则是抽象和功能分解;6.MVC即模型、视图、控制器;其中,模型是应用对象,其包含一些数据值,维护数据并提供数据的访问方法;视图显示模型的部分或说有数据,多个视图可以以不同的方式来显示模型中数据;控制器处理用户输入事件;四、判断题:1.×2.×3.×4.√5.√6.×7.√8.√9.× 10.× 11.× 12.× 13.√ 14.√ 15.√16.× 17.√ 18.× 19.× 20.× 21.√ 22.×五、简答题:1.在需求分析和设计阶段建立原型的好处有:1增进开发人员和用户对系统需求的一致理解,明确软件需求,尤其是功能含糊的需求;2原型提供了一种有力的学习手段,能够使用户尽早接触系统;3原型可以用来识别或化解风险;4原型有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统;2.扇入则定义为一个模块被调用或控制的模块个数;扇出表示一个模块直接调用或控制的其他模块数目;3.UML的特点是:1统一了面向对象方法的有关概念和描述方法;2表达能力强,能对各种并发分布式系统进行建模,且UML还提供了扩展机制;3UML专注于一种标准的建模语言,而不是一个开发过程;4.层次图主要用来描绘软件的层次结构,矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,常与IPO图一起形成HIPO图;层次方框图主要描述系统的组成关系,一般自用域需求分析;5.软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间;因此,需求分析、概要设计以及程序编码等各阶段所得的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象;6.在软件工程中,文档的作用是:1提高软件开发过程的能见度;2记录开发过程的有关信息便于使用与维护;3作为开发人员阶段工作成果和结束标志;4提高开发效率;5提供软件运行、维护和培训有关资料;6便于用户了解软件功能、性能;7.因为如果开发人员和用户属于不同的组织机构,则一般在正式的软件开发之前均需要签订合同,所有的风险分析均必须在签订合同之前完成;但螺旋模型需要在软件开发的每一个阶段都进行风险分析,当重要风险不能解决时,项目应该终止;由此螺旋模型可能因为风险使得合同在完成之前就终止,从而导致法律诉讼;故螺旋模型不适合开发人员和用户属于不同组织机构的情况;8.软件测试不应仅仅作为一个独立的软件开发阶段,而应贯穿到软件开发的各个阶段中;通过各阶段的评审,在早期把错误解决,以减少错误放大效应,这样不仅可以提高软件质量,而且也是降低软件成本的一个重要措施;由此,软件测试应该尽早和不断地进行;9.MVC是Model-View-Controller的简写;"Model" 代表的是应用的业务逻辑通过JavaBean,EJB组件实现, "View" 是应用的表示层由JSP页面产生,"Controller" 是提供应用的处理过程控制一般是一个Servlet,通过MVC把应用逻辑,处理过程和显示逻辑分成不同的组件实现;10.Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开源应用框架; Struts框架主要有如下功能:1包含一个controller servlet,能将用户的请求发送到相应的Action对象; 2JSP 自由tag库,并且在controller servlet中提供关联支持,帮助开发人员创建交互式表单应用;3提供了一系列实用对象,如XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息等;开源软件存在的主要问题有:1技术服务支持较少;2版本控制困难;3性能不够稳定;4文档不全,等等;11.IDEF0方法的特点是:1采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制,清楚地反映了系统的功能;2采用严格的自顶向下、逐层分解的方式建立系统功能模型;顶层确定系统范围,采用抽象原则,然后有控制的逐步展开有关活动的细节,符合SA方法的分析策略;同时,IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题的可理解性,下界3保证分解有意义;12.根据原型的不同作用,有三类原型模型:⑴探索型原型;这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性;它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求;⑵实验型原型;这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性;⑶演化型原型;这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能;在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程;六、综合题:1. System 网络学院人员管理人员教师学生登录修改个人信息浏览学生信息浏览教师信息删除个人信息2.3.4.5.6.1选择测试路径:Ⅰ:a→ b → d 判定A>1∨B=0为假;判定A=2∧X>1为假Ⅱ:a→ c → e 判定A>1∨B=0为真;判定A=2∧X>1为真2选择测试用例Ⅰ:输入A=1 B=1 X=1 预期输出 X=1Ⅱ:输入A=2 B=0 X=4 预期输出 X=4。
软件工程考试题及答案
软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。
答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。
答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。
答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。
它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。
2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。
通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。
3. 请简述软件开发生命周期中的各个阶段。
答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。
- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。
- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。
- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。
- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。
- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。
软件工程复习题(带答案)
软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
《软件工程》复习题及答案
第一部分
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?
答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(C)上。
A.配置项B.程序C.基线D.过程
33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
二、简答题
1.什么是软件工程?软件工程的目标是什么?
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》
软件工程 简答题复习题(带答案)
软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。
它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。
通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。
4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。
它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。
5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。
6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。
7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。
它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。
8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。
单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。
9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。
维护包括错误修复、性能优化、功能扩展等。
《软件工程》11套考试复习练习题、作业题(含答案)
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程复习习题(含答案)
一、选择题1.在软件危机中表现出来的软件质量差的问题,其原因是___没有软件质量标准____。
2.在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的___健壮性__。
3.在下列测试技术中,___逻辑覆盖___不属于黑盒测试技术。
4.___封装___是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
5.软件测试时为了___发现错误_____而执行程序的过程。
6.在软件系统中,一个模块应具有什么样的功能,这是由___需求分析__决定的。
7.面向对象分析是对系统进行___需求分析_____的一种方法。
8.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的___可维护性____。
9.模块内聚度越高,说明模块内各成分彼此结合的程序越____紧密__。
10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码、测试和维护等阶段,一般认为可能占用人员最多的阶段是_维护阶段__。
11.常用的面向对象的软件过程模型是__喷泉模型_____。
生命周期模型A.瀑布模型(规范化,阶段性取得前进)B.喷泉模型(面向对象,开发活动间没明显边界,无缝过渡)C.原型模型(快速,线性顺序,不带反馈环)D.增量模型(产品分解为一系列增量构件,开发中逐步加入)E.螺旋模型(瀑布&快速原型结合,每阶段加风险评估)12.面向对象的分析阶段建立的系统模型不包括____数据模型____。
有对象模型、动态模型、功能模型13.提高软件的可维护性可采用很多措施,下列哪个不在措施之列?提供没有错误的程序。
措施:建立质量保证制度、改进程序文档质量、明确软件质量标准14.计算机系统可以划分为软件系统和硬件系统,软件是一种逻辑产品。
15. 可行性分析研究的主要目的是项目是否值得开发16.在下列四种模块的耦合性中,信息隐蔽性能最好的是(C数据耦合)A.控制耦合B.内容耦合C. 数据耦合D. 特征耦合17.需求分析是回答系统必须(D做什么)的问题。
《软件工程作业》考试复习题库(含答案)
《软件工程作业》考试复习题库(含答案)一、选择题1. 软件工程的三要素不包括以下哪项?A. 软件开发B. 软件维护C. 软件管理D. 软件设计答案:B2. 下列哪种编程范式主要用于软件工程中的面向对象编程?A. 命令式编程B. 函数式编程C. 面向对象编程D. 逻辑编程答案:C3. 在软件开发过程中,以下哪个阶段产生的文档最多?A. 需求分析B. 设计C. 编码D. 测试答案:A4. 以下哪个软件工程方法学强调在软件开发过程中使用迭代和增量开发?A. 敏捷开发B. 水晶方法C. 瀑布模型D. 敏捷开发与水晶方法的结合答案:A5. 以下哪个工具常用于软件需求分析阶段的模型建立?A. UML图B. 数据流程图C. 状态转换图D. 时序图答案:B二、填空题1. 软件工程的目的是提高软件的______、______和______。
答案:可用性、可靠性、可维护性2. 软件开发生命周期包括______、______、______、______和______。
答案:需求分析、设计、编码、测试、维护3. 在软件需求分析阶段,常用的方法有______、______和______。
答案:数据流程图、实体关系图、状态转换图4. 软件设计分为______设计和______设计。
答案:架构设计、详细设计5. 软件测试的目的不包括以下哪项______。
答案:找出软件的错误三、判断题1. 软件工程是计算机科学的一个分支。
()答案:正确2. 软件工程适用于所有类型的软件开发项目。
()答案:错误3. 敏捷开发方法适用于所有类型的软件开发项目。
()答案:错误4. 软件测试是软件开发过程中的最后一个阶段。
()答案:错误5. 软件维护是软件开发过程中的重要环节。
()答案:正确四、简答题1. 简述软件工程的定义及目标。
答案:软件工程是应用计算机科学、数学原理和方法来设计、开发、测试和维护软件的一门学科。
其目标包括提高软件的可用性、可靠性和可维护性,降低软件开发成本,提高软件开发效率。
软件工程期末复习题(含答案)
软件工程必备期末复习题选择题1.软件设计中划分模块的一个准则是( C )。
A 低内聚低耦合B低内聚高耦合C高内聚低耦合D.高内聚高耦合2.( A )是用户和设计交换最频繁的方法。
A、原型化方法B、瀑布模型法C、螺旋模型方法D、构件组装模型3. 试判断下列叙述中,哪个些是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言( D )A、PASCALB、VISUAL BASICC、C++D、汇编语言6. 软件测试的目的是?( D )A.软件的正确性B.找出软件系统中存在的所有错误C.证明软件系统中存在错误D.尽可能多的发现软件系统中的错误7.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能8.软件维护工作的最主要部分是( C )。
A、纠正性维护B、适应性维护C、完善性维护D、预防性维护9.PDL是( B )语言。
A.高级程序设计语言B、伪码式C、中级程序设计语言D、低级程序设计语言10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立( C )。
A、软件结构B、软件过程C、软件模型D、软件模块11.在数据流图中,○(椭圆)代表( B )A、数据流B、转换C、数据源D、外部实体12.总体设计目的是确定整个系统的( D )。
A、规模B、测试方案C、费用D、功能及模块结构13. 检查软件产品是否符合需求定义的过程称为( A )。
软件工程复习卷(有答案)
一、填空题(每空1分,共20分)1.软件生存周期一般可以划分为,需求分析、____________、____________、_______________和维护。
2.软件管理主要包括软件生命周期中的__________、__________、____________和组织管理。
3.可行性研究,应从技术可行性、、操作可行性、和法律可行性等方面研究分析。
4.在软件系统边界确定方面,从接口方面考虑,主要考虑_________、____________、_____________和____________四个方面。
5.软件成本估计中已经发展有一些价格估算模型,公式为____________。
6.形式语言是一种符合化,规范化的语言。
其语义无__________。
7.规格说明书应该严格,精确,同时又要容易为用户和软件设计人员理解。
目前,普遍流行的有三种语言___________、____________、___________。
8.数据流图的基本四种成分:数据的源点和终点___________、___ 、和。
9.在软件详细设计中,过程细节说明工具有三种:图形工具、__________和语言工具。
10.软件程序测试技术通常分为静态测试和___________两种:后一种又可分为__________和__________。
11.动态分析方法的动态测试包括三部分______________、执行程序与_______________。
12.软件维护按维护的内容来分,分为四种类型的维护:_______________、________________、_________________和________________。
13.软件工程开发模型中的清洁房间模式的关键技术方法是结构化程序设计+ ______________ + 验证。
14._________现实世界的一个组成部分,被映像到软件域中。
选择:1.软件危机出现于____,为了解决软件危机,人们提出了用工程的原理来设计软件,这是软件工程诞生的基础。
(完整版)软件工程试卷及答案(多套精品试卷)
软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率 B.规模 C.完整性 D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合 B.隐藏C.封装 D.抽象7.软件调试技术包括()A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
《软件工程》期末考试复习题及参考答案
软件工程复习题(课程代码252258)一、填空题(本大题共60小题)1.数据项是指__不可再分解的___数据单元。
2.软件概要设计的主要任务就是___软件结构的设计___。
3.软件维护的内容包括校正性维持,适应性维护、____完善性维护_____和预防性维护。
4.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和___数据存储对象___。
5.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有容错功能的软件。
6.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
7.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
8.软件结构是以模块为基础而组成的一种控制层次结构。
9.在结构化分析中,用于描述加工逻辑的主要工具有结构化语言、判定表和判定表三种。
10.软件工程是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
11.PDL是一种介于___自然语言___和形式化语言之间的半形式化语言。
12.从软件的功能角度划分,协助用户开发软件的工具性软件称为_支撑__软件13.消除软件结构中高扇入扇出的做法是______增加中间层次的控制模块_____。
14.如果一个软件系统的全部实际加工都由原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是____完全因子分解_____的系统。
15.软件的可移植性是指当把软件移植到不同的运行环境时,不需改变其__规格___就能照原样工作的特性。
16.为满足用户对软件提出的新的要求而对软件进行扩充、改进的维护称为____完善性__维护。
17.将整个软件划分成若干单独命名和可编址的部分,称之为___模块___。
18.软件需求的____物理视图_____给出处理功能和数据结构的实际表示形式。
19.在面向对象的开发技术中,__类___是一组具有相同数据结构和相同操作的对象的集合。
软件工程复习试题及答案
软件工程复习试题及答案 Revised by BETTY on December 25,2020一、填空题(在下划线上填写正确的答案,每题2分,共20分)1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。
2.数据流图和数据字典共同构成了系统的逻辑模型。
3.盒图也称为 N-S图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
.数据流图有四种基本成分:源、终点,处理,存储,数据流。
78SA是一种面向数据流的分析方法。
9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。
10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。
2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。
3.软件测试的步骤:单元、集成、系统、验收。
4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。
5.IPO图由输入、处理和输出三个框组成。
这个图的特点是能够直观的显示三者之间的关系。
6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。
7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。
8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。
9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。
10.常用的测试方法有黑盒测试和白盒测试。
1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益可行性等方面研究。
2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环结构。
3.软件生存周期中时间最长、花费精力和费用最多的一个阶段是维护阶段。
软件工程复习题及答案
一、单项选择题1.软件可行性研究实质上是要进行一次需求分析、设计过程。
A.简化、压缩的B.详细的C.彻底的D.深入的2.以下哪个软件生存周期模型是一种风险驱动的模型。
A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型3.可行性分析中,系统流程图用于描述。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统4.结构化分析建立功能模型的工具是。
A.DFDB.判定树/判定表C.SCD.结构化语言5.检查软件产品是否符合需求定义的过程称为。
A.确认测试B.集成测试C.系统测试D.单元测试6.在整个软件维护阶段所花费的全部工作中,所占比例最大的是。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护7.通信内聚是指。
A.把需要同时执行的动作组合在一起形成的模块B.各处理使用相同的输入数据或者产生相同的输出数据C.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行D.模块内所有元素共同完成一个功能,缺一不可8.一个只有顺序结构的程序,其环形复杂度是。
A.0B.1C.3D.59.下述四个能力成熟度等级,级别最高的是。
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.移植性C.完整性D.兼容性15.关于软件维护的说法错误的是。
A.软件维护是软件生命周期中占用时间最长的一个阶段B.软件维护不只是修改软件中的错误C.软件维护对于开发商来说是无利可图的D.在编码过程中添加适当的注释,可以降低软件维护的难度16.应用执行对象的操作可以改变该对象的。
软件工程复习题及答案完整
软件⼯程复习题及答案完整⼀、选择1、⽂档是软件产品的⼀部分,没有⽂档的软件就不称其为软件。
对2、在需求分析过程中,分析员要从⽤户那⾥解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作⽤,它也可以作为软件可⾏性分析的依据。
错4、建⽴⽤例模型的步骤包括确定⾓⾊、确定⽤例和绘制⽤例图。
错5、数据流图建⽴系统的功能模型,它由数据流、加⼯和数据存贮组成。
错6、软件配置管理是⼀组标识、组织和控制修改源程序的活动。
错7、UML是⼀种直观化、明确化、构建和⽂档化软件产物的通⽤语⾔。
错8、好的测试是⽤少量的测试⽤例运⾏程序,发现被测程序尽可能多的错误。
对9、边界值分析⽅法是取输⼊/输出等价类的边界值作为测试⽤例。
对10、⾯向对象的分析是⾯向计算机系统建⽴软件系统的对象模型。
错11、(D)是将系统化的、规范的、可定量的⽅法应⽤于软件的开发、运⾏和维护的过程,它包括⽅法、⼯具和过程三个要素。
A 软件过程B 软件测试C 软件⽣存周期D 软件⼯程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了⼀个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级⽬标的若⼲(B)。
A 关键实践B 关键过程域C 软件过程能⼒D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发⼯具B ⽅法C 硬件环境D ⼈员15、软件的复杂性是(A),它引起⼈员通信困难、开发费⽤超⽀、开发时间超时等问题。
B ⼈为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了⽤户使⽤产品必须要完成的任务,可以在⽤例模型或⽅案脚本中予以说明。
A 业务需求B 功能需求C ⾮功能需求D ⽤户需求17、原型化⽅法是⽤户和软件开发⼈员之间进⾏的⼀种交互过程,适⽤于(A)系统。
软件工程复习题及答案
选择题1.在结构化设计SD方法中全面指导模块划分的最重要的原则是( D )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性2.软件维护产生的副作用,是指( C )A.开发时的错误B.隐含的错误C.因修改软件而带来的错误D.运行时误操作3.软件详细设计的主要任务是确定每个模块的( A )A.算法和使用的数据结构 B.外部接口 C.功能 D.编程4.为了提高模块的独立性,模块内部最好是( C )A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚5.软件是一种( C )A.程序B.数据C.逻辑产品D.物理产品6.下列那个模型不是面向对象的分析中建立的模型( B )A.对象模型B.瀑布模型C.动态模型D.功能模型7.确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于A.集成测试B.恢复测试C.验收测试D.单元测试8.采用Gantt图表示软件项目进度安排,下列说法中正确的是( D )A.能够反映多个任务之间的复杂关系B.能够直观表示任务之间相互依赖制约关系C.能够表示哪些任务是关键任务D.能够表示子任务之间的并行和串行关系9.程序的三种基本控制结构是( B )A.过程、子过程和分过程B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移10.软件生存周期中时间最长的是( D )阶段A.总体设计B.需求分析C.软件测试D.软件维护11.为使得开发人员对软件产品的各个阶段工作都进行周密的思考,所以( C )的编制是很重要的。
A.需求说明B.概要设计C.软件文档D.测试计划12.软件部件的内部实现和外部可访问性的分离,是指软件的( C )。
A.继承性B.共享性C.封装性D.抽象性13.单元测试是发现编码错误,集成测试时发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( C )错误。
A.接口错误B.编码错误C.性能、质量不合要求D.功能测试14.软件工程管理对软件项目的开发管理,即对整个软件( B )的一切活动的管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程复习题及答案(完整)一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组标识、组织和控制修改源程序的活动。
错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。
错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。
A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
A 需求不确定的B 需求确定的C 管理信息D 决策支持18、(A)意味着一个操作在不同的类中可以有不同的实现方式。
A 多态性B 多继承C 类的可复用D 信息隐蔽19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。
A 用例图B 类图C 活动图D 协作图20、单元测试的测试用例主要根据(D)的结果来设计。
A 需求分析B 源程序C 概要设计D 详细设计二、填空题1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。
2、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。
3、用例及其协作之间是实现关系。
4、接口及其实现类或构件之间是实现关系。
5、动物与老虎之间是泛化关系。
三、问答题1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。
可复用的软件元素包括(选5种):项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。
2、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。
传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。
由于瀑布模型的特点,早现在提出一个新的需求:"一个教师也可以是某些课程的学生",那么下面设计A-C中哪一个是最好的?为什么?设计B是最好的。
学生和教员均可以从Candidate类继承而来;抽象出Role类,使Candidate类与Role类之间形成多对多的关联关系,实现了"一个人既是教师又是某门课的学生"这个需求。
设计A:设计B:设计C:6、所谓分层体系结构是按层组织软件的一种软件体系结构,其中每层软件建立在低一层的软件层上,下图显示了一种分层体系结构。
请选择正确的答案,将其对应的序号填入图中的()。
供选择的答案:①高效性②通用性③保密性④专用性⑤系统软件⑥中间件⑦应用软件⑧支撑软件⑨特定业务⑩子系统一、选择1、(A)是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A 软件过程B 软件工具C质量保证D 软件工程2、(D )是以追求更高的效益和效率为目标的持续性活动。
A 质量策划B 质量控制 C质量保证 D质量改进3、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每一级都包含了实现这一级目标的若干关键过程域,每一个关键过程域又包含若干(A)。
A关键实践B 软件过程性能C 软件过程能力 D软件过程4、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,(C)是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。
A 业务需求B 功能要求C 非功能需求D 用户需求5、(A)意味着一个操作在不同的类中可以有不同的实现方式。
A 多态性B 多继承C 类的复用D 封装6、在面向对象的系统中,系统责任的良好分配原则是(B)。
A在类之间均匀分配B 集中分配在少数控制类中C根据交互图的消息进行分配 D根据个人喜好进行分配7、软件配置项是软件配置管理的对象,即软件工程过程中产生的(C)。
A 接口B软件环境C信息项D版本8、软件测试计划开始于需求分析阶段,完成于(B)阶段。
A需求分析B软件设计C 软件实现D 软件测试二、问答题1、判断下列叙述的正确性,将结果(√正确,×错误)填入()中,并改正错误的说法。
(1).(×)在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。
改正:在软件开发的过程中,一个错误修复和改正得越晚,为此所花费的代价就会越高。
(2).(√)在需求分析中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
(3).(×)软件需求规格说明书在软件开发中具有重要的作用,是软件可行性分析的依据。
改正:软件可行性分析应在需求分析之前,因此,软件需求规格说明书不应成为软件可行性分析的依据。
(4).(√)模型是对现实的简化,建模是为了更好地理解所开发的系统。
(5).(×)UML语言支持面向对象的主要概念,并与具体的开发过程相关。
改正:UML语言支持面向对象的概念,并独立于具体的开发过程。
(6).(√)用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
(7).(×)好的测试用例应能证明软件是正确的。
改正:好的测试用例在于能发现至今未发现的错误。
(8).(√)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。
(9).(√)当软件开发项目的进度有可能拖延时,增加开发人员并不能加快进度。
(10).(×)软件技术复审是由用户和测试人员实施的一种质量保证活动。
改正:软件技术复审是由软件开发人员实施的一种质量保证活动。
2、你认为一个好的软件开发人员应具备哪些基本素质?答:(1)牢固掌握计算机软件的基本知识和技能;(2)善于分析和综合问题,具有严密的逻辑思维能力;(3)工作踏实细致,遵循标准和规范,具有严格的科学作风;(4)工作有耐心、有毅力、有责任心;(5)善于听取别人的意见,善于与周围人员团结协作,建立良好的人际关系;(6)具有良好的书面和口头表达能力。
3、需求工程包括哪些基本活动?每一项活动的主要任务是什么?答:(1)需求获取(问题识别):采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。
(2)需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。
(3)需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。
(4)需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。
(5)需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。
4、为什么软件需要维护?简述软件维护的过程。
答:在软件开发完成交付用户使用后,为了保证软件在一个相当长的时期能够正常运行,就需要对软件进行维护。
软件维护的过程:(1)确认维护要求。
(2)对于改正性维护申请,评价错误的严重性。
对于严重的错误,立即安排人员,分析问题原因,进行"救火"性的紧急维护;对于不严重的错误,根据任务情况和轻重缓急进行统一安排。
(3)对于适应性和完善性维护申请,需要确定申请的优先级,然后安排维护工作。
并不是所有的完善性维护申请都必须承担,需要考虑商业需要、现有资源、未来发展方向等进行决定。
5、根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
"一个程序读入3个整数,它们分别代表一个三角形的3个边长。
该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。
"要求:设三角形的3条边分别为A、B、C,并且输入条件有效等价类无效等价类是否构成一个三角形(1)A>0且B>0且C>0且A+B>C且B+C>A且A+C>B。
(2)A≤0或B≤0或C≤0(3)A+B≤C或A+C≤B或B+C≤A是否等腰三角形(4)A=B或A=C或B=C (5)A≠B且A≠C且B≠C 是否等边三角形(6)A=B且A=C且B=C (7)A≠B或A≠C或B≠C(2)设计测试用例,格式如下:用例n:输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。
用例1:输入【3,4,5】覆盖等价类(1,2,3,4,5,6),输出结果为构成一般三角形。
用例2:三者取一输入【0,1,2】覆盖等价类(2),输出结果为不构成三角形。
输入【1,0,2】覆盖等价类(2),输出结果为不构成三角形。
输入【1,2,0】覆盖等价类(2),输出结果为不构成三角形。
用例3:三者取一输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。
输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。
输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。
用例4:三者取一输入【3,3,4】覆盖等价类(1)(4),输出结果为等腰三角形。
输入【3,4,4】覆盖等价类(1)(4),输出结果为等腰三角形。
输入【3,4,3】覆盖等价类(1)(4),输出结果为等腰三角形。
用例5:输入【3,4,5】覆盖等价类(1)(5),输出结果为不是等腰三角形。
用例6:输入【3,3,3】覆盖等价类(1)(6),输出结果为等边三角形。
用例7:三者取一输入【3,4,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。