软件工程 简答题复习题(带答案)

合集下载

软件工程考试题(含答案)

软件工程考试题(含答案)

软件工程考试题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。

包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

具体表现如下:(1)软件是逻辑部件而不是物理部件。

(2)软件的规模越来越大,复杂性越来越大。

(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。

3、什么叫软件工程?1968年在第一届NATO会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。

1993年IEEE的定义:“①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径”。

我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。

它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。

常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。

过程模型分为五大类:1.管理过程模型。

2.瀑布模型(又称为生命周期模型)。

3.增量过程模型:包括增量模型,,RAD模型。

4.烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。

软件工程复习题及答案

软件工程复习题及答案

软件工程复习题及答案一、选择题软件工程复习题(一)1、瀑布模型本质上是一种()A、线性顺序模型B、顺序迭代模型C、线性迭代模型D、及早见产品模型2、使用程序设计的控制结构导出测试用例的测试方法是()A、黑盒测试B、白盒测试C、边界测试D、系统测试3、软件结构图的形态特征能反映程序重用率的是()A、深度B、宽度C、扇入D、扇出4、软件结构图中,模块框之间若有直线连接,表示它们之间存在() A、调用关系B、组成关系C、链接关系D、顺序执行关系5、需求分析最终结果是产生()A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告6、快速原型模型的主要特点之一是()A、开发完毕才见到产品B、及早提供全部完整的软件产品C、开发完毕后才见到工作软件D、及早提供工作软件7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是()A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法8、软件详细设计主要采用的方法是()A、模块设计B、结构化设计C、PDL 语言D、结构化程序设计9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 () 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、CASE 工具的支持B、如何开发演化型模型C、项目主管的支持D、开发人员的素质16、程序流程图(框图)中的箭头代表()。

软件工程复习题库带答案完整版

软件工程复习题库带答案完整版

软件工程复习题库带答案完整版一、选择题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,软件产品具有与硬件产品完全不同的特征是:答:(1)软件是⼀种逻辑实体,具有抽象性,我们可以把它们存储在介质上,但却不能直接看到软件的形态,因⽽必须通过运⾏,观察、分析、思考、判断才能了解软件的功能、性能及其他特性。

软件产品具有明显的⾮可视性。

(2)软件的⽣产和硬件⽣产不同。

软件是由开发或⼯程化⽽形成的,不是传统意义上的制造过程⽣产的。

硬件在⽣产过程当中仍然可能引⼊质量问题,这种问题在软件⽣产中⼏乎是不存在的。

软件的开发成本集中在开发过程上,硬件⽣产成本主要表现在原材料的消耗上。

(3)软件产品不会磨损。

软件产品也会出现故障,所不同的是硬件产品的故障主要来⾃于外界条件造成的部件磨损或⽼化,软件故障都是由于设计开发过程中的隐患造成的,硬件故障通过更换零件来解决故障,软件则是通过软件维护修改来排除故障。

2、软件危机的具体表现是:答:(1)软件开发没有真正的计划性,对软件开发进度和软件开发成本的估计不准确,计划制定盲⽬、⼯期超时、成本失控。

(2)对软件需求信息获取不充分,产品不能满⾜⽤户的实际需求。

(3)缺乏良好的软件质量评测⼿段,导致软件质量不能保证。

(4)对可理解性、可维护性理解不够,产品可复⽤性和可维护性不如⼈意。

(5)软件开发过程没有实现规范化,缺乏必要的⽂档资料或这⽂档资料不合格、不准确、难以进⾏专业维护。

(6)软件开发的⼈⼒成本持续上升。

(7)缺乏⾃动化软件开发技术,软件开发⽣产率低下,不能满⾜急剧增长的需求。

3、产⽣软件危机的原因:答:从客观上来看,软件⽣产不同于硬件,它的⽣产过程和产品都具有明显的“不可视”特征,这就导致在完成编码并且运⾏之前,对软件开发过程的进展情况较难衡量,软件产品的质量也难进⾏先期评价,因此对软件开发过程进⾏管理和控制⽐较困难。

软件运⾏过程中发现错误,必然是遇到了在开发时期引⼊的,在检测过程中没有检查出来的故障。

软件工程复习题及参考答案

软件工程复习题及参考答案

软件工程课程复习资料一、单项选择题: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. 简述软件危机产生的缘故。

答案:软件危机产生的缘故有:(每点1分)(1)软件的规模越来越大,结构越来越复杂。

(2)软件开发的治理困难。

由于软件规模大,结构复杂,又具有无形性,导致治理困难,进度操纵困难,质量操纵困难,可靠性无法保证。

(3)软件开发费用不断增加。

软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升专门快。

(4)软件开发技术、开发工具落后,生产率提高缓慢。

(5)生产方式落后。

软件仍旧采纳个体手工方式开发。

2. 简述需求分析的概念及需求分析的差不多任务。

答案:需求分析是指开发人员要准确明白得用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。

(3分)需求分析的差不多任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须〝做什么〞的问题。

(2分)3. 简述数据流图的分类及每一类的特点。

答案:数据流图有两类:变换型数据流图和事务型数据流图。

(1分)变换型数据流图是由输入、处理和输出三部分组成,(1分)因此变化型数据流图是一个顺序结构。

(1分)事务型数据流图特点:事务处理中心将它的输入流分离成许多发散的数据流,形成许多加工路径,(1分)并依照输入的值选择其中一个路径来执行。

(1分)4. 简述建立对象模型的过程。

答案:建立对象模型的步骤如下:(每点1分)(1)确定类:标出来自问题域的相关对象类。

(2)预备数据字典:为所有建模实体预备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范畴,包括对类的成员、用法方面的假设或限制;(3)确定关联:确定二个或多个类之间的相互依靠;(4)确定属性:只考虑与具体应用直截了当相关的属性(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类__全国2020年1月1.简述软件工程面临的问题。

软件工程简答题复习题(带答案)

软件工程简答题复习题(带答案)

软件⼯程简答题复习题(带答案)第⼀章1,与计算机硬件相⽐,计算机软件有哪些特点?软件得特点如下。

1)⽆法直接观察计算机软件得物理形态,只能通过观察它得实际运⾏情况来了解它得功能、特性与质量等。

2)⼈们在分析、设计、开发、测试软件产品,以及在软件开发项⽬得管理过程中,渗透了⼤量得脑⼒劳动。

3)不存在像硬件⼀样得磨损与⽼化现象,但存在着缺陷维护与技术更新得问题。

4)软件得开发与运⾏必须依赖于特定得计算机系统环境。

5)具有可复⽤性。

3,什么就是软件危机?什么原因导致了软件危机?软件危机得现象如下。

1)经费超出预算,项⽬⼀再拖延。

2)不重视需求,开发得软件不能满⾜⽤户得要求,项⽬成功率低。

3)没有规范得软件⼯程⽅法,软件可维护性差、软件质量差、可靠性差。

4)开发⼯具落后,⼿⼯⽅式,开发效率低。

所有导致软件危机得原因,都与软件本⾝得产品特点相关。

1)软件就是⼀个复杂得逻辑产品。

如果没有解决复杂问题得有效⽅法,以及软件产品得结构、质量、可维护性得不到保障,开发与维护费⽤就会持续升⾼。

2)软件产品不能实现⼤规模复⽤,这导致了软硬件⽣产效率得不同。

3)软件⽣产就是脑⼒劳动,它瞧不见、摸不着,开发成本、开发周期等都⽆法做到准确估算,⽣产过程不易控制。

4)软件成本主要就是由研发成本构成;⽽硬件得⽣产成本主要就是材料与制造成本,分摊得研发成本很少,即软件研发过程与硬件制造过程相⽐要复杂得多。

5,请简述软件⼯程研究得内容。

软件⼯程研究得内容包括软件开发⽅法、软件开发模型、软件⽀持过程与软件管理过程。

软件开发⽅法得内容涵盖市场调研、正式⽴项、需求分析、项⽬策划、概要设计、详细设计、编程、测试、试运⾏、产品发布、⽤户培训、产品复制、销售、实施、系统维护、版本升级等。

常⽤得软件开发模型有瀑布模型、迭代模型、增量模型与原型模型等。

软件⽀持过程由所⽀持得CASE⼯具组成,常⽤得CASE⼯具有PowerDesigner与Rational Rose等。

软件工程考试题 带答案

软件工程考试题 带答案

软件工程考试题带答案软件工程考试题一、单项选择题(每题5分,共30分)1.软件需求分析的主要目标是:A. 发现并修正软件中的错误B. 确定软件系统的功能和性能需求C. 编写软件代码D. 打印和发布软件答案:B2. 下列哪个是软件生命周期模型?A. 瀑布模型B. 微服务架构C. 敏捷开发D. 协同开发答案:A3. 软件设计阶段的主要目标是:A. 开发详细的测试计划B. 创建软件的体系结构和模块设计C. 编写和调试软件代码D. 验收和发布软件答案:B4. 软件测试的主要目的是:A. 发现并修复软件错误B. 确保软件系统符合质量标准C. 完成软件系统的开发D. 验收和发布软件答案:B5. 下列哪个是软件项目管理过程中的常用工具?A. 甘特图B. 数据流图C. 类图D. 鱼骨图答案:A6. 下列哪个是软件配置管理的主要目标?A. 确保软件开发过程的质量B. 管理软件中不同部分的变更C. 编写和调试软件代码D. 验收和发布软件答案:B二、简答题(每题10分,共20分)1. 简要解释软件工程的概念。

答:软件工程是一门研究和应用工程原理、方法和工具来开发和维护高质量软件的学科。

它注重应用系统性的、规范化的方法来开发和维护软件,以提高软件的质量、效率和可维护性。

2. 请简述瀑布模型的基本原理。

答:瀑布模型是软件开发过程中最早也是最广泛使用的模型之一。

它基于线性顺序的开发过程,将软件开发划分为需求分析、设计、开发、测试和运行维护等不同阶段,每个阶段按照顺序进行。

三、案例分析题(40分)某公司正在开发一个电商网站,你作为软件工程师参与其中。

请回答以下问题:1. 在需求分析阶段,你应该做些什么?答:在需求分析阶段,我应该与客户沟通,了解他们的需求和期望。

我将分析和记录客户的功能和性能需求,制定需求规格说明书,并与团队成员一起进行需求评审,确保需求的准确性和完整性。

2. 在设计阶段,你应该做些什么?答:在设计阶段,我将设计软件系统的体系结构和模块设计。

软件工程(简答题)

软件工程(简答题)

1、典型的详细设计工具有流程图、盒图、、类程序设计语言。

问题反馈【教师释疑】正确答案:【PAD图】2、UML是一种语言。

问题反馈【教师释疑】正确答案:【可视化】3、类是一组具有属性、操作、关系和语义的对象的描述。

问题反馈【教师释疑】正确答案:【相同】4、对象是类的一个。

问题反馈【教师释疑】正确答案:【实例】5、用况图是一种表达系统模型的图形化工具。

问题反馈【教师释疑】正确答案:【功能】6、UML中的顺序图是一种交互图,即由一组对象以及按组织的对象之间的关系组成。

问题反馈【教师释疑】正确答案:【时序】7、模块的作用域是指受该模块内一个所影响的所有模块的集合。

问题反馈【教师释疑】正确答案:【判定】8、模块的控制域是指这个模块本身以及所有直接或间接它的模块的集合。

问题反馈【教师释疑】正确答案:【从属于】9、在数据流图中引入数据源和数据潭这两个术语的目的是为了表示系统的,可以使用它们和相关数据流来定义系统的。

问题反馈【教师释疑】正确答案:【环境|边界】10、模块结构图是系统的一个高层蓝图,允许设计人员在较高的层次上进行抽象思维。

模块结构图可用和两种形式来表示。

问题反馈【教师释疑】正确答案:【层次图|HIPO图】11、在设计模块结构图时要基于原则来设计模块。

问题反馈【教师释疑】正确答案:【高内聚低耦合】12、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“尽力使模块的在其控制域之内”。

问题反馈【教师释疑】正确答案:【作用域】13、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“力求深度、宽度、扇出和扇入”。

问题反馈【教师释疑】正确答案:【适中】14、在进行总体结构设计时,人们通过长期的软件开发实践,总结出一些实现模块“高内聚低耦合”的启发式规则,对初始的模块结构图进行精化,其中一条规则是“改进软件结构,提高模块的”。

软件工程 简答题复习题(带答案)

软件工程 简答题复习题(带答案)

软件工程简答题复习题(带答案)软件工程简答题复习题(带答案)1. 什么是软件工程?软件工程是一种系统化、规范化、可量化的方法,用于开发、维护和测试软件系统的过程。

它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。

2. 软件开发生命周期有哪些阶段?常见的软件开发生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。

3. 什么是需求分析?需求分析是软件开发过程中的第一步,它涉及与客户进行沟通和理解客户需求的过程。

通过需求分析,开发团队可以明确软件系统的功能和性能要求,并将这些要求转化为详细的规格说明。

4. 需求分析的主要目标是什么?需求分析的主要目标是确保开发团队和客户对软件系统的需求达成共识。

它需要明确软件系统的功能需求、性能需求和约束条件,以便后续的设计和开发工作能够按照这些需求进行。

5. 什么是软件设计?软件设计是在需求分析的基础上,根据系统需求和约束条件,将系统划分为模块,确定模块之间的接口和关系,设计出满足系统需求的软件结构和算法的过程。

6. 软件设计的原则有哪些?常见的软件设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)和迪米特法则(LoD)等。

7. 什么是软件测试?软件测试是为了评估系统的质量和功能是否满足需求的过程。

它通过设计和执行测试用例,检查系统的输出是否符合预期,并发现潜在的错误和缺陷。

8. 软件测试的分类有哪些?软件测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层次。

单元测试用于测试软件的最小功能单元,集成测试用于测试不同模块之间的交互,系统测试则测试整个系统的功能和性能,验收测试是由客户进行的测试,以确认系统是否达到了合同中规定的要求。

9. 什么是软件维护?软件维护是在软件交付给客户后,为了保证其正常运行和适应环境变化而进行的一系列活动。

维护包括错误修复、性能优化、功能扩展等。

最新软件工程 简答题复习题(带答案)

最新软件工程 简答题复习题(带答案)

第一章121,与计算机硬件相比,计算机软件有哪些特点?3软件的特点如下。

41)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行5情况来了解它的功能、特性和质量等。

62)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的7管理过程中,渗透了大量的脑力劳动。

83)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更9新的问题。

104)软件的开发和运行必须依赖于特定的计算机系统环境。

115)具有可复用性。

123,什么是软件危机?什么原因导致了软件危机?13软件危机的现象如下。

141)经费超出预算,项目一再拖延。

152)不重视需求,开发的软件不能满足用户的要求,项目成功率低。

163)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性17差。

184)开发工具落后,手工方式,开发效率低。

所有导致软件危机的原因,都与软件本身的产品特点相关。

19201)软件是一个复杂的逻辑产品。

如果没有解决复杂问题的有效方法,21以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。

22232)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。

243)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等25都无法做到准确估算,生产过程不易控制。

264)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和27制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要28复杂得多。

295,请简述软件工程研究的内容。

30软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管31理过程。

32软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、33详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、34系统维护、版本升级等。

35常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。

36软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。

软件工程简答题及答案

软件工程简答题及答案

软件工程简答题及答案
本文档将回答一些关于软件工程的简单问题。

包括软件开发模型、软件需求等方面。

软件开发模型
1. 软件开发模型有哪些?
常见的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、敏捷开发模型等。

2. 瀑布模型和原型模型的区别是什么?
瀑布模型是一种顺序开发模型,开发流程是依次完成需求分析、设计、编码、测试和维护;原型模型则是一种迭代开发模型,先制作出可用的原型,然后根据反馈不断改进,逐渐得到最终的产品。

3. 增量模型和螺旋模型的特点有哪些?
增量模型是一种迭代开发模型,每个阶段都制作可用的部分产品,直到全部完成;螺旋模型则是一种风险导向的开发模型,通过逐步分析和评估风险来制定开发计划。

4. 敏捷开发模型的优点是什么?
敏捷开发模型是一种迭代开发模型,强调开发过程中的人与人之间的交流和合作,可以更快地适应需求变化和快速反馈,有利于降低开发成本和风险。

软件需求
1. 软件需求是什么?
软件需求是指用户对软件系统的功能、性能和质量等方面的要求和期望,是软件开发过程中最重要的一部分。

2. 软件需求如何进行收集和分析?
软件需求的收集和分析是一个迭代的过程,包括与用户的沟通、需求规格化、需求验证等步骤,一般会使用到一些工具,如用户故事、用例规约等。

3. 软件需求如何进行管理和维护?
软件需求的管理和维护包括需求跟踪、版本控制等方面,一般会使用到一些工具,如需求管理工具、版本控制工具等。

通过本文的介绍,不难看出软件工程是一个相对复杂的领域,对于开发人员而言,要善于运用各种开发模型和需求管理工具,以便能够更好地完成软件开发和维护工作。

软件工程(简答)

软件工程(简答)

需求获取层及相关概念 需求获取层目标:使用 UML 中 的用况、参与者以及依赖等 术语来抽象客观实际问题, 形成系统的需求获取模型;基本术语:用况、参与者、用于表达用况参与者之间关系的关 联、用于表达况之间的包含和扩展、用于表达参与者之间关系泛化。术语确定了系统用 况模型的各种形态
需求获取模型的基本组成 使用 UML 中 的用况、参与者以及依赖等 术语来抽象客观实际问题,形成系统的需求获 取模型
three 结构化方法
2.何谓模块耦合?简述模块耦合的类型。 答:耦合是不同模块之间相互依赖程序的度量 内容耦合:当一个模块直接修改或操作另一个模块的数据,或一个模块不通过正常入口 而转入到另一个模块时, 公共耦合:两个或两个以上的模块共同引用一个全局数据项 控制耦合一个模块通过气喘吁吁向另一个模块传递一个控制信息,接收信号的模块根据 信号值进行适当的动作 标记耦合:若一个模块 A 通过接口向两个模块 B 和 C 传递一个公共参数 数据耦合:模块之间通过参数来传递数据
4) .简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的件需求规约
1.简述需求与需求规约的基本性质。 答:需求的基本性质: 1) 必要的,该需求是用户所要求的。 2)无歧义的,该需求只能用一种方式解释。 3)可测的,该需求是可进行测试的。 4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。 5)可测量的,该需求是可测量的。
同时引入“操作”和“方法”的目的是什么? 答:表达模型化包之间的关系
为什么使用包?如何划分包?
使用 UML 可以从那些角度来刻画一个系统的行为,为什么?
何谓顺序图中的控制操作子?试举例说明。 为了控制交互行为描述的复杂性,以便更清晰地表达顺序图中的复杂控制,给出了个个 控制操作子,选择、条件、并发、迭代操作控制子

软件工程试题及答案(较详细)

软件工程试题及答案(较详细)

软件工程试题及答案(较详细)软件工程试题及答案 (较详细)一、简答题1. 什么是软件工程?软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。

它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效运行,并满足用户需求。

2. 请解释什么是软件生命周期?软件生命周期是指软件从构思、开发、使用到废弃的整个过程。

它包括需求分析、设计、编码、测试、部署和维护等多个阶段。

软件生命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后续的支持与维护。

3. 请解释什么是需求工程?需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的调研、分析、规划和文档化。

通过需求工程,开发人员能够更好地理解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设计和开发提供基础。

4. 什么是软件设计模式?软件设计模式是一套在软件设计过程中重复出现的解决方案。

它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。

常见的软件设计模式包括单例模式、工厂模式、观察者模式等。

二、分析题1. 请说明面向对象和面向过程的编程范式的区别。

面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。

面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。

面向过程编程更加注重解决问题的步骤和执行过程。

面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。

面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。

2. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。

它定义了软件系统中各个组件的职责、交互方式和部署方式。

常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。

3. 解释软件测试中的黑盒测试和白盒测试。

黑盒测试是一种测试方法,它基于对软件系统的功能需求进行测试,而不考虑内部的实现细节。

软件工程考试试题及答案

软件工程考试试题及答案

软件工程考试试题及答案一、单选题1. 软件需求分析是软件工程的哪个阶段?a. 需求分析与定义b. 软件设计c. 软件测试d. 软件维护答案:a. 需求分析与定义2. 下列哪项不是软件工程的基本原则?a. 可复用性b. 高效性c. 可维护性d. 可理解性答案:b. 高效性3. 下列哪项不是软件质量保证的措施?a. 程序员的自我质量保证b. 审计c. 代码复用d. 测试答案:c. 代码复用4. 下列哪个是软件生命周期模型?a. 瀑布模型b. 程序开发模型c. 螺旋模型d. 增量模型答案:a. 瀑布模型5. 在软件工程中,什么是软件配置管理?a. 设计和开发软件的过程b. 管理软件的版本和更改c. 测试软件的过程d. 分配和调度任务的过程答案:b. 管理软件的版本和更改二、多选题1. 下列哪些是软件需求规格说明的内容?(多选)a. 需求的功能描述b. 系统性能要求c. 用户界面设计d. 软件的安装要求答案:a. 需求的功能描述、b. 系统性能要求、d. 软件的安装要求2. 软件测试的目的是什么?(多选)a. 发现软件中的错误b. 确保软件满足需求c. 评估软件的质量d. 提高软件的可维护性答案:a. 发现软件中的错误、b. 确保软件满足需求、c. 评估软件的质量3. 下列哪些是软件维护的类型?(多选)a. 纠错性维护b. 适应性维护c. 完善性维护d. 增量性维护答案:a. 纠错性维护、b. 适应性维护、c. 完善性维护、d. 增量性维护三、判断题1. 软件工程是一门工程学科,它包括对软件进行开发、测试、维护和管理等方面的知识。

(正确/错误)答案:正确2. 软件需求分析是软件开发的最后一步。

(正确/错误)答案:错误3. 软件测试的目的是为了证明软件是没有错误的。

(正确/错误)答案:错误四、简答题1. 简述软件生命周期模型中的瀑布模型。

答案:瀑布模型是软件生命周期模型中最早的模型之一。

它将软件开发过程分为需求分析、系统设计、详细设计、编码、测试和维护等阶段,并按照顺序执行。

软件工程简答题及答案

软件工程简答题及答案

软件工程试题整顿_简答题1、可行性研究旳任务是什么?首先需要进行概要旳分析研究,初步确定项目旳规模和目旳,确定项目旳约束和限制,把他们清晰地列举出来。

然后,分析员进行简要旳需求分析,抽象出该项目旳逻辑构造,建立逻辑模型。

从逻辑模型出发,通过压缩旳设计,探索出若干种可供选择旳重要处理措施,对每种处理措施都要研究它旳可行性,可从如下三个方面分析研究每种处理措施旳可行性。

㈠技术可行性:对要开发项目旳功能、性能、限制条件进行分析,确定在既有旳资源条件下,技术风险有多大,项目与否能实现。

㈡经济可行性:进行开发成本旳估算以及理解获得效益旳评估,确定要开发旳项目与否值得投资开发。

㈢社会可行性:要开发旳项目与否存在任何侵犯、阻碍等责任问题,要开发项目旳运行方式在顾客组织内与否行得通,既有管理制度、人员素质、操作方式与否可行。

2、什么是模块旳影响范围?什么是模块旳控制范围?他们之间应当建立什么关系?一种模块旳作用范围(或称影响范围)指受该模块内一种鉴定影响旳所有模块旳集合。

一种模块旳控制范围指模块自身以及其所有下属模块(直接或间接附属于它旳模块)旳集合。

一种模块旳作用范围应在其控制范围之内,且鉴定所在旳模块应在其影响旳模块在层次上尽量靠近。

假如再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响旳模块,将它下移到判断所在模块旳控制范围内”旳措施加以改善。

3、非渐增式测试与渐增式测试有什么区别?渐增式测试怎样组装模块?非渐增式测试与渐增式测试旳测试措施有如下区别:㈠非渐增式测试措施把单元测试和集成测试提成两个不一样旳阶段,前一阶段完毕模块旳单元测试,后一阶段完毕集成测试。

而渐增式测试往往把单元测试与集成测试和在一起,同步完毕。

㈡非渐增式需要更多旳工作量,由于每个模块都需要驱动模块和桩模块,而渐增式运用已测试过旳模块作为驱动模块或桩模块,因此工作量较少。

㈢渐增式可以较早旳发现接口之间旳错误,非渐增式最终组装是才发现。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、选择题(每题2分,共20分)1. 软件工程中的需求分析阶段的主要任务是什么?A. 确定软件的功能需求B. 设计软件的架构C. 编写软件的详细设计文档D. 进行软件的编码实现答案:A2. 在软件开发过程中,哪个阶段是进行风险评估的?A. 需求分析B. 设计C. 编码D. 测试答案:B3. 软件测试中的黑盒测试通常是基于什么进行的?A. 程序源代码B. 程序的内部逻辑C. 程序的功能需求D. 程序的运行环境答案:C4. 敏捷开发方法论中,哪个活动是迭代的核心?A. 需求收集B. 编码实现C. 测试D. 回顾会议答案:B5. 在软件维护中,哪种类型的维护是最常见的?A. 纠错性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:A二、填空题(每空1分,共10分)6. 软件工程的生命周期包括需求分析、________、编码、测试和维护等阶段。

答案:设计7. 软件工程中的_______原则指的是高内聚低耦合。

答案:模块化8. 在软件开发中,_______ 是指软件在特定条件下使用时,能够达到预期功能、性能要求的能力。

答案:可靠性9. 软件项目管理中的_______ 是指在项目开发过程中,对项目进行监控和控制,确保项目按计划进行。

答案:监控10. 在软件测试中,_______ 是指测试用例设计得尽可能覆盖所有可能的执行路径。

答案:穷尽测试三、简答题(每题10分,共30分)11. 简述软件工程中的模块化设计原则及其优点。

答案:模块化设计原则是指将软件系统划分为多个模块,每个模块具有特定的功能,并且模块之间通过定义良好的接口进行交互。

其优点包括:- 易于管理:模块化使得软件更容易理解和维护。

- 可重用性:模块可以在不同的项目中重复使用。

- 并行开发:模块化允许多个团队并行开发不同的模块。

- 灵活性:模块化提高了软件的灵活性,便于扩展和修改。

12. 解释什么是软件的可维护性,并说明其重要性。

软件工程复习资料简答题

软件工程复习资料简答题

三、简答题1、软件开发与写程序有何不一样?答:软件包括程序,程序是软件旳一部分。

软件是程序、数据及其有关文档旳完整集合。

程序只是为了实现软件旳功能和性能规定而编写旳指令序列。

2、软件旳构造设计可以采用多种措施,目前重要使用旳措施有哪几种?内容分别是什么?3、软件质量保证旳重要功能是什么?4、什么是DFD?其意义怎样?解释DFD四要素旳内容。

答:(1)是数据流图英文缩写,是一种描述数据在系统中流动旳图形工具;(2)是以图形方式体现数据处理系统中信息旳传递和变换处理过程,它从数据加工旳角度来描述一种企事业组织中旳业务活动;(3)A圆框符号转换数据流旳处理过程,又称泡。

B方框符号代表位于软件系统边界之外旳信息生产着或消费者。

C箭头符号代表转换之间旳有向流动旳数据项或数据项集合。

D双杠符号代表为一种或多种转换提供数据源或数据存储服务旳缓冲区、文献或数据库。

5、需求分析旳难点重要表目前哪几种方面?答:(1) 问题旳复杂性。

因顾客需求所波及旳原因繁多引起,如运行环境和系统功能等等。

(2)交流障碍。

需求分析波及人员较多,如软件系统顾客、问题领域专家、需求工程师和项目管理员等,这些人具有不一样旳背景知识,处在不一样旳角度,饰演不一样角色。

导致了互相之间交流旳困难。

(3)不完备性和不一致性。

由于多种原因,顾客对问题旳陈说往往是不完备旳,其各方面旳需求还也许存在着矛盾,需求分析要消除矛盾,形成完备及一致性旳定义。

(4)需求易变性。

顾客需求旳变动是一种极为普遍旳问题,虽然是部分变动,也往往会影响到需求分析旳所有,导致不一致性和不完备性。

为了克服上述困难,人们重要围绕着需求分析旳措施及自动化工具(如CASE技术)等方面进行研究。

6、白盒测试中旳逻辑覆盖有哪几种常用旳覆盖技术?试对它们旳检错能力进行比较。

答:(1)语句覆盖(2) 鉴定覆盖(比语句覆盖严格些)(3) 条件覆盖(比单是鉴定覆盖要严格)(4) 鉴定/条件测试(条件覆盖也不一定满足鉴定覆盖,由于只符合条件覆盖旳用例也许会不满足每个鉴定语句均有真值或假值出现。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

n ngar第一章1,与计算机硬件相比,计算机软件有哪些特点?软件的特点如下。

1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。

2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。

3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。

4)软件的开发和运行必须依赖于特定的计算机系统环境。

5)具有可复用性。

3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。

1)预算,项目一再拖延。

2)需求,开发的软件不能满足用户的要求,项目成功率低。

3)软件工程方法,软件可维护性差、软件质量差、可靠性差。

4)开发工具落后,手工方式,开发效率低。

所有导致软件危机的原因,都与软件本身的产品特点相关。

1)软件是一个复杂的逻辑产品。

如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。

2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。

3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。

4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。

5,请简述软件工程研究的内容。

nd A i 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。

软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。

常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。

软件支持过程由所支持的CASE 工具组成,常用的CASE 工具有Power Designer 和Rational Rose 等。

7,请简述软件工程的目标、过程和原则。

目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。

1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效率、高效益)。

2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组织过程。

3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。

9,请简述现代软件工程与传统软件工程显著的区别和改进。

1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向对象技术为标志。

2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中,采用面向对象的思维方式,更加完整、自然地反映客观世界。

3)采用架构技术,开发效率、产品质量得到了极大提高。

4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP 模型、XP 模型、过程改进、能力成熟度模型、配置管理等。

第二章1,如何理解软件生命周期的内在特征?软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终该产品被市场淘汰的全过程。

软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。

由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源外配、时间把握和项目管理上都会比较容易控制。

应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。

3,当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合?开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。

螺旋模型是一种综合性的模型,适和于较复杂的系统。

5, XP是一种什么样的模型?XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。

实行XP的条件如下。

1)企业具有较高的能力成熟度,具有团队开发环境和配套的测试工具。

2)软件结构是开放的,增量可随意整合。

3)开发团队拥有“系统隐喻"。

7,请简述软件过程。

软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。

系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。

9,请简述CMM的作用。

1)CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件工程达到的程度(如同评定职称的条件)2)CMM是软件组织提升自身能力、走向成熟的参照系。

它提供了走向成熟的阶梯目标,但并不提供走向目标的方法。

3)CMM等级的提高依靠软件过程改进。

4)CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型设置的级别和关键过程域不断改进自己的软件过程的作用。

11,假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位。

一旦实现并测试完之后,该产品将被抛弃。

你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。

对这个软件的需求很明确,实现开平方功能的算法也很成熟。

因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案。

此外,一旦实现并测试完之后,该产品将被地弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。

综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。

第五章1,在选择编程语言时,通常要考虑哪些因素?1)待开发系统的应用领域,即项目的应用范围。

2)用户的要求。

3)软件开发人员的喜好和能力。

4)系统的可移植性要求。

5)算法和数据结构的复杂性。

3,什么是调试?什么是测试?二者有何区别?调试(debug)指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作。

软件测试(test)有如下特点。

1)软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。

2)不仅仅是测试程序,还应该对开发过程中所有的产品进行测试,包括文档,其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误。

二者的区别如图5.2所示。

5,请简述静态测试和动态测试的区别。

按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。

静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。

静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。

与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。

测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。

7,软件测试的目的是什么?测试的目的如下1)测试是一个为了发现程序中的错误为目的的程序执行过程。

2)个好的测试用例是能最大限度地找到迄今为止尚未发现的错误。

3)成功的测试是能发现了那些尚未发现的错误。

9,什么是白盒测试?有哪些常用的白盒测试方法?白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。

常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。

11,软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试。

每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告5个步骤。

1)单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。

它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

2)集成测试是软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。

3)系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非是一项简单的任务,它被称为测试的“先知者问题".4)验收测试是向软件的购买者展示该软件系统满足其用户的需求。

它的测试数据通常是系统测试的测试数据的子集。

5)回归测试是在软件维护阶段,对软件进行修改之后进行的测试。

其目的是检验对软件进行。

第十一章1,请简述项目、项目管理和软件项目管理。

项目、项目管理和软件项目管理的概念如下。

1)项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、2)质量标准,以及特定的功能、性能和接口要求。

3)项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目的计划、进度、质量、成本、资源进行管理和控制的活动。

4)软件项目管理以通用的项目管理知识体系为基础,管理的对象是软件工程项目。

它结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,使得整个软件开发过程(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质的完成软件交付用户使用。

3,请简述项目计划应该包括的内容。

项目计划应该包括的内容如下。

1)确定详细的项目实施范围。

2)定义递交的工作成果。

3)评估实施过程中主要的风险。

4)制定项目实施的时间计划。

5)成本和预算计划。

6)人力资源计划等。

5,如何进行项目的时间管理?项目的时间管理首先要对项目活动进行定义,依据包括:工作分解结构、项目范围说明、历史信息、约束条件、假定和专家评论。

在整个项目中,我们需要一份能清晰描述活动发生的时间和所需要的资源的计划,项目进度安排的内容为如下1)定义一组项目活动,并建立活动之间的相互关系。

2)估算各个活动的工作量和完成任务所需要的资源。

3)定义里程碑。

4)分配人力和其他资源,制定进度时序。

5)检查进度安排,确保任务之间没有冲突,并且包含了完成项目必需的所有任务。

7,请简述估算的作用。

计划是项目的启动入口,项目开展过程就是执行计划。

而估算是制定计划的依据,因此估算是项目开展的基础。

估算的主要工作如下。

1)范围估算:搞清软件边界。

2)规模估算:定量单位采用LOC或FP3)工作量估算:工作量估算决定了开发团队的规模和组建,决定开发周期和进度估算。

4)开发周期与进度估算:进度估算是对整个开发周期中不同阶段的里程碑进行估算。

5)人力资源估算:在考虑各种软件开发资源时,人是最重要最优先考虑的资源。

6)开发成本估算:整个开发周期所花费的工作量产生的劳动费用。

7)软硬件资源估算:软件开发所需的硬件工具及软件工具。

9,请简述做进度计划的两种方式。

做进度计划的两种方式如下。

相关文档
最新文档