2019软件工程简答题集锦[参照]

上传人:x****育 文档编号:156999892 上传时间:2020-12-20 格式:PDF 页数:32 大小:525.30KB
返回 下载 相关 举报
2019软件工程简答题集锦[参照]_第1页
第1页 / 共32页
2019软件工程简答题集锦[参照]_第2页
第2页 / 共32页
2019软件工程简答题集锦[参照]_第3页
第3页 / 共32页
2019软件工程简答题集锦[参照]_第4页
第4页 / 共32页
2019软件工程简答题集锦[参照]_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《2019软件工程简答题集锦[参照]》由会员分享,可在线阅读,更多相关《2019软件工程简答题集锦[参照](32页珍藏版)》请在金锄头文库上搜索。

1、软件工程简答题集锦 1、为什么事务型软件的结构常常具有中间大两头小的形状? 答:扇入高则上级模块多,能够增加模块的利用率;扇入低则表示下级模块的复杂性。 事务型软件常常具有中间大两头小的形状,具有良好的软件设计结构,瓮型结构。 表明它在 底层模式中使用了较多高扇入共享模块。 2、什么是软件需求,可以从哪些方面描述软件需求? 答:软件需求是指一个软件系统必须遵循的条件或具备的能力。 条件与能力:系统为了解决问题或达到目的所具备的条件或能力,即系统的外部特性; 系统为了满足合同,规范或其他规定文档所具备的条件或能力,即系统的内部特性。 软件需求一般包括三个不同的层次:业务需求,用户需求,功能需求

2、软件需求的特性:功能性可用性可靠性性能可支持性设计约束 3、面向对象设计模型包含哪几个层次?主要内容? 答:面向对象设计模型包含: 系统架构层。 描述整个系统的总体架构,使所设计的软件能够满足客户定义的需求,并实 现支持客户需求的技术基础设施; 类和对象层。 使系统能从通用的方式创建并不断逼近特殊需求,该层同时包含了每个对象 的设计表示。 消息层。 描述对象间的消息模型,它建立了系统的内部和外部接口,包含使得每个对象能 够和其协作者通信的细节。 责任层。包含针对每个对象的所有属性和操作的数据结构和算法的设计。 4、多模块程序的测试有哪些层次?各层次主要解决什么问题? 答:多模块测试有4 个层次

3、 1 / 32 单元测试:通过对象模块的静态分析和动态测试,使其代码达到模块说明的要求; 集成测试:把经过单元测试的模块逐步组成具有良好一致性的完整程序; 确认测试:确认组装完毕的程序是否满足软件需求规格说明书的要求; 系统测试: 检查把确认测试合格的软件安装到系统之后,能否与系统中其余部分协调运行, 并实现 SRS的需求。 5、瀑布开发模式有哪些特点?存在的主要问题?如何改进? 答:瀑布开发模型是一种基于软件生存周期的线性开发模型 主要特点:阶段间的顺序和依赖性; 推迟实现的观点; 保证质量的观点 每个阶段都必须完成规定的文档,每个阶段都要对完成的文档进行复审,以便尽快发现问题, 消除隐患。

4、 存在的问题: 按照瀑布模型来开发软件,只有当分析员能够做出准确的需求分析时,才能得 到预期的结果, 不幸的是, 由于多数用户不熟悉计算机,系统分析员对用户的专业也往往了 解不深, 因此很难在开发的初始阶段彻底弄清楚软件的需求。为了解决这个问题,人们提出 了“快速原型模型” 阶段:用户需求、需求分析、概要设计、详细设计、编码、测试、运行维护 不足: 缺乏灵活性, 无法解决需求不明确或不准确的问题。由于用户不可能一次性提出所有 的需求, 而瀑布模型是一种线性开发模型,因此瀑布模型不能适应用户在开发后期提出的需 求变更。 6、什么是软件危机?软件危机有什么表现?软件危机产生的原因?如何解决软件危机

5、? 软件危机是计算机软件开发、使用和维护过程所遇到的一系列严重问题和难题,它包含两个 部分:如何开发软件,以解决软件日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机的表现: 对软件的开发成本和进度的估算很不准确,常常出现实际成本比估算成本高出一个数量级, 实际进度比计划进度拖延几个月甚至几年的时间,这些都降低了开发商的信誉,引起用户的 2 / 32 不满。 用户对已完成的软件不满意的情况时有发生; 软件产品的质量往往是不可靠的; 软件常常是不可维护的; 软件通常没有适当的文档资料,文档资料不全或不准确,使得软件开发和维护产生难以想 象的问题和难以解决的难题; 软件开发和维护产生的费用

6、占计算机系统总成本的比例逐年上升; 开发软件的生产率往往跟不上计算机应用的普及速度。 软件危机的原因: 软件自身的原因:是逻辑部件,缺乏可见性。规模庞大、复杂,修改、维护苦难; 软件开发和维护的方法不当,忽视需求分析, 认为软件开发就是程序编写,轻视软件维护; 供求矛盾将是永恒的主题,面对日益增长的软件需求,人们显得力不从心。 7、什么是软件工程? 软件工程是运用工程、科学和数学的原理和方法研制的、维护计算机软件和有关技术及管理 方法。 把系统的、 规范的、 可度量的途径应用到软件开发、运行和维护的过程,也就是把工程应用 于软件。 软件工程包括技术和管理两方面的内容,是技术和管理紧密结合形成的

7、工程学科。 中心思想:是把软件当作一种工程化的方法和原理对软件进行计划、开发和维护 个性化方法结构化方法面向对象方法软件复用 过程式编程范型、面向对象编程范型、基于构件技术的编程范型 8、什么是软件生存周期? 软件生存周期是指一个软件从立项起,到废弃不用止,统称为软件的生存周期。 软件生存周期分为计划、开发和运行三个阶段 3 / 32 由于软件生存周期被划分为多个较小的阶段,使得因为软件规模增长而大大增加的复杂性变 得较易控制和管理。 典型的软件生存周期:计划、需求分析、软件分析、软件设计、编码、软件测试、运行维护 9、软件测试方法: 软件测试方法分为静态测试和动态测试,静态测试是被测试程序不

8、在机器上执行而采用人工 检测和计算机辅助静态分析手段对程序进行检测。动态测试是通过运行程序发现错误,对软 件产品进行动态测试时可以采用黑盒测试和白盒测试法。黑盒测试法在完全不考虑软件的内 部结构和特性的情况下,测试软件的外部特性。白盒测试法在不考虑软件的功能特性情况下 进行测试。 软件测试目的: 为了寻找软件错误而运行程序的过程,目的是为了发现程序中的错误。任务 是在计算机上运行程序,暴露出程序中潜在的错误。 10、衡量模块独立性的两个定性指标是什么?这两个标准的定义分别是什么?在我们的软 件设计中,关于模块独立性我们追求的目标是什么? 内聚和耦合。 耦合是指不同模块之间相互依赖的紧密程度,内

9、聚标志同一模块不同元素之间 互相依存的紧密程度。高内聚低耦合。 11、软件设计各层次功能? 系统架构层: 描述整个系统的整体架构。使所设计的软件满足客户定义的需求,并实现支持 用户需求的技术基础设施。 类和对象层: 使系统能从通用的方式创建并不断逼近特殊需求,同时包含了各对象的设计表 示 消息层: 表示对象间的消息模型。建立了系统的内部和外部接口,使得每个对象可以与其协 作者通信。 责任层:包含针对每个对象的属性和操作的数据结构和算法的设计。 4 / 32 12. 传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件开发有哪些特点?又有哪些 不足 瀑布模型分为以下几个阶段:用户要求,需求分析,概

10、要设计,详细设计,编码,测试和维 护。 特点:阶段间具有顺序性和依赖性。 不足; 由于用户不可能一次提出所有需求,瀑布模型属于线性开发模型,因此瀑布模型不能 适应用户在开发后期提出的需求变更,不适合大型项目开发。 13. 简述软件测试的目的,任务和动态测试类型? 软件测试是一个为了寻找软件错误而运行程序的过程,目的是为了发现软件中的错误。软件 测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误,动态测试主要包括黑盒测 试和白盒测试。 14. 请指出UML类图中类之间除了聚合与组合之外的关系?组合和聚合又有什么区别和联 系? 类之间的关系:关联,依赖,继承,实现,组合,聚合 聚合和组合的区

11、别是: 聚合:表示两个对象之间的整体和部分的弱关系,部分的生命周期可以超过整体 组合: 表示两个对象之间的整体和部分的强关系,部分的生命周期不能超越整体,或者说不 能够脱离整体而存在。聚合是一种特殊的关联,组合又是特殊的聚合 15. 什么是软件危机?为什么会产生软件危机? 答:软件危机是指落后的软件生产方式无法满足迅速增长的软件需求,从而导致软件开 发与维护过程中出现一系列问题现象。 原因主要有一,软件维护费用急剧上升,直接威胁计算机应用的扩大。 二。 ,软件生产技术进步缓慢, 16什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里? 结构化程序设计的出现,使许多产业界认识

12、到必须把软件生产从个人化方式改变为工程化。 5 / 32 采用工程的概念、原理、 技术和方法开发与维护软件,把经过时间考验而证明正确的管理技 术和当前能够得到最好的技术方法结合起来,以经济的开发出高质量的软件并有效地维护它, 这就是软件工程,同时这也是工程化生产方法。 17. 什么是软件生存周期?把生存周期划分为阶段的目的是什么? 答:软件生存周期划分为计划、开发和运行三个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够花间每一步工作内容,使因软件规模而增长而大 大增加了软件复杂性得交易控制和管理。 18 传统的瀑布模型把生存周期划分为哪些阶段?瀑布模型软件开发有

13、哪些特点?以及不 足? 答:瀑布模型在编码以前安排了分析阶段和设计阶段;特点是阶段间具有顺序性和依赖性。 瀑布模型有以下不足之处: 1)各个阶段划分完全固定,阶段之间产生大量的文档,极大的增加了工作量。 2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了 开发风险。 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 4)瀑布模型的突出缺点是不适应用户需求的变化。 19 RUP是什么?试比较 RUP和 XP的差异。 答:RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象 且基于网络的程序开发方法论。 RUP

14、统一软件过程是描述软件开发中各个环节应该做什么,怎么做,什么时候做以及为什么 要做, 描述了以某种顺序完成的活动。其在一个二维空间中描述软件开发活动,可以分为初 始阶段,细化阶段,构造阶段和迁移阶段。 XP 极限过程是一个轻量级的,敏捷的软件开发方法, 同时也是一个非常严谨和周密的方法。 它有四个价值观:交流,简单,反馈和勇气。 20 需求分析的任务是什么?怎样理解分析阶段的任务是决定“做什么”, 而不是“怎么做” ? 6 / 32 答:需求分析主要有两个任务: 1)通过对问题及其环境的理解、分析和综合建立分析模型; 2)是在完全弄清用户对软件系统的确切要求的基础上,用软件需求规格说明书把用户

15、 的需求表达出来。 需求分析的任务就是为了明确要开发的是一个刷马的系统,而不是怎么去 实现这个系统。 21: UML类图中的六种关系,以及组合和聚合的区别与联系? 泛化、实现、组合、聚合、关联、依赖; 聚合关系表示整体与结构部分关系较弱,而组合比较强; 聚合关系中代表部分事物的对象与 代表聚合事物的生存期无关,一旦删除了聚合对象不一定删除了代表部分事物的对象。组合 中一旦删除了组合对象。同时也就删除了代表部分事物的对象 22. 基于用例的面向对象的需求建模包括哪些步骤? 1 画用例图 2 写用例规约 3 描述补充规约 4 编写术语表 23. 建立用例模型时,如何确定参与者和用例?什么是用例图?

16、作用是什么? 参与者泛指所有存在于系统外部并与系统交互的人、硬件或其他系统。通俗的讲参与者 主要是待开发系统的使用者。 确定参与者之后,可以根据参与者来确定系统的用例。主要是考察各参与者需要系统提 供什么样的服务,或者说参与者是如何使用系统的。 用例图是指由参与者、用例以及它们之间的关系构成的用于描述系统功能的静态视图。 用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一 些用例,以及他们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。 主要作用有三个:1 获取需求 2指导测试 3 还可在整个过程中的其他工作流起到指 导作用。 24 用哪种 UML图可以表示对象间的交互? 7 / 32 答:时序图和协作图 时序图按时间顺序描述系统元素之间的交互。协作图按照时间和空间的顺序描述系统元素间 的交互和相互关系。 25:分析一个用例行为时,通常需要画几个交互图?为什么? 2 个,时序图和协作图,因为用例是用来描述潜在的用户所看到的系统的UML组件,他是一 个被称为参与者的实体所发起的场景的集合。UML建模有 UML静态建模机制和UML动态

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号