软件工程复习题_第1页
软件工程复习题_第2页
软件工程复习题_第3页
软件工程复习题_第4页
软件工程复习题_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三 填空题三 填空题 1 计算机软件是指与计算机系统操作有关的程序以及任何与之有关的文档资料 2 软件运行维护阶段是软件生存周期中时间最长的阶段 3 软件生存周期是指一个软件从定义阶段开始直到该软件最终退役为止的整个时期 4 在软件的生产过程中 总是有大量各种信息要记录 因此 文档在产品的开发过程 中起着重要的作用 5 在软件生存周期中 软件定义过程的基本任务是确定软件系统的可行性 6 在软件生存周期中 软件定义过程可以通过软件系统的可行性分析 需求分析两个 阶段来完成 7 我们把支持软件项目的具有辅助开发功能的软件叫做软件开发的工具软件 8 软件工程由软件工程方法 软件工具和软件工程过程三部分组成 称为软件工程的 三要素 9 若视计算机软件为一产品 站在计算机软件对计算机 硬件 所起的作用角度 可 将软件分为 支撑软件 系统软件 应用软件 10 为了提高软件的开发效率 就需要对其要素进行充分认识 软件开发的要素主要 是 开发计划 系统分析 系统设计 程序设计 软件测试 11 软件开发阶段的文档主要包括 可行性分析报告 需求分析报告 系统设计报告 软件测试报告 技术总结报告 1 基于软件生存周期的开发模型 其中有瀑布模型 原型模型 演化模型 增量模型 螺旋模型 空壳 模型 面向对象模型 智能模型 综合模型等 2 软件的开发方法从大的方面可分为两大类 传统开发方法和现代开发方法 3 传统开发方法主要有 结构化方法 面向数据结构 面向问题分析方法 面向对象 基于组件 构件和中间件方法 可视化方法 基于重组工程的开发方法等 4 面向对象系统采用了算法 对象的分解的方法 5 对象模型技术 Object Modeling Technique OMT 方法从 3 个视角描述系统 相 应地提供了 3 种模型 对象模型 动态模型和功能模型 6 现代软件开发方法主要包括敏捷软件开发 精益软件开发 Scrum 软件开发 极限 编程 统一过程方法 微软开发方法等 7 一般来说 IT 软件项目精益开发系统包括三个要素 即人 流程和技术 8 微软过程把软件开发周期划分成 4 个阶段规划阶段 开发阶段 测试阶段 稳定化 阶段 9 RUP 软件开发生存周期体现了过程的动态结构 它以初始 精化 构建和交付表达 10 极限编程 XP 定义了一套简单的开发流程 包括 编写用户案例 架构规范 实施 规划 迭代计划 代码开发 单元测试 验收测试等 1 软件开发环境的主要组成成分是软件工具 2 按工作阶段划分 软件开发工具可以分为设计工具 编码工具和测试工具 维护 工具 3 软件开发环境 按工作模式分类交互式 批处理式和个人分布式环境等 按应用范 围分类有通用型和专用型 4 软件开发环境具有层次式的结构 分为四层 宿主层 核心层 基本层 应用层 5 软件开发环境基本组成有三 交互系统 工具集和环境数据库 6 软件开发工具的目的是从信息 交流和管理方面 给予软件开发人员帮助与支持 7 Windows XP 微软最初发行了两个版本家庭版 专业版 8 软件工具生成的文档包括文章 帮助和简介三大类 9 Windows 2000 有四个版本 Professional Server Advanced Server 和 Datacenter Server 10 软件开发工具可以分为需求分析工具 设计工具 编码工具 测试工具 11 软件维护工具版本控制工具 文档分析工具 逆向工程工具 再工程工具 13 Mercury Interactive 公司的 WinRunner 是一种企业级的功能测试工具 用于检 测应用程序是否能够达到预期的功能及正常运行 14 通俗地说 软件开发工具是软件开发人员用的软件 15 按集成程度不同 软件开发工具可分为专用的工具和应用集成化的工具两种类型 16 软件工具的性能 主要包括人机界面 使用方式和兼容性 1 可行性分析的目的就是用最小的代价在尽可能短的时间内确定软件项目是否能够 开发 是否值得去开发 2 可行性分析的目的不是去开发一个软件项目 而是研究分析这个软件项目是否 值得去开发 3 可行性分析实质上是要进行一次简化 压缩了的需求和分析过程 要在较高层次 上以较抽象的方式进行需求分析和设计过程 4 可行性分析需要从技术可行性 经济可行性 社会可行性 资源可行性 操作 可行性五个方面分析研究每种解决方法的可行性 5 技术可行性是对要开发项目的功能 性能 限制条件进行分析 确定在现有的资 源条件下 技术风险有多大 项目是否能实现 6 技术可行性一般要考虑的情况包括 开发风险分析 现有技术能否实现 现有技 术发展分析 7 技术可行性的研究包括 开发风险分析 现有技术能否实现 现有技术发展分析 8 社会可行性所涉及的范围包括是否侵权 运行方式是否可行 环境是否允许 用 户组织的管理模式 规范及其他一些技术人员常常不了解的陷阱等 9 典型的可行性研究有下列步骤 确定项目规模和目标 分析目前运行的系统 设 计新项目的总体框架 导出和评价各种方案 推荐可行的方案和编写可行性研究报告 10 一个可行性研究报告的主要内容为 引言 项目简况 现有情况分析 可行性分 析 实现方案 结论 11 成本 效益分析首先是估算将要开发系统的开发成本 然后与可能取得的效益进 行 对比分析 12 效益分有形效益和无形效益两种 有形效益可以用利润 产值 产量等指标进行 度量 无形效益主要从性质上 心理上进行衡量 很难直接进行衡量 很难进行量的比较 13 就是使累计的经济效益等于最初的投资用所需要的时间 项目的 是 指在整个生存周期之内的累计经济效益 折合成现在的值 与投资之差 删除 14 项目开发计划的主要内容有 项目概述 实施计划 支撑条件 交付期限 15 纯收入是软件生存周期内两项值之差 这两项是销售利润与软件开发维护成本 16 软件工程有两种效益 它们是经济效益和社会效益 17 可行性研究具体步骤的最后一步是撰写可行性分析报告 1 软件需求分析是软件生存期中重要的一步 是软件定义阶段的最后一个阶段 是 关系到软件开发成败的关键步骤 2 在软件需求分析中 必须采用合理的步骤 才能准确地获取软件的需求 可归纳 为 4 个步骤 用户识别调研 理解需求 编制需求分析文档 评审验证 需求变更管理 3 访谈是最早使用的获取用户需求的技术 也是世界上仍然广泛使用的需求分析技 术 访谈有两种基本形式 问卷调查和小组讨论 4 软件的分析模型通常由一组模型组成 包括数据模型 功能模型和行为模型 从 数据字典出发主要通过以下 3 种图来构建该模型的 3 种模型 E R 图 DFD 图 STD 图 5 数据流图由数据流 数据存储 数据项 数据加工组成 6 加工说明的描述工具通常有 3 种 结构化语言 判定表 判定树 1 耦合衡量不同模块彼此间互相依赖 连接 的紧密程度 模块间的耦合性越高 其 模块的独立性就越低 两个模块之间的耦合方式通常有7种 按耦合程度从低到高依次为 非直接耦合 数据耦合 标记耦合 控制耦合 外部耦合 公共耦合和内容耦合 2 耦合衡量不同模块彼此间互相依赖 连接 的紧密程度 模块间的耦合性越高 其 模块的独立性就 越高 两个模块之间的耦合方式通常有7种 按耦合程度从低到高依 次为 偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚 3 数据流有变换型数据流图和事物型数据流图两种基本类型 4 软件设计包括概要设计和详细设计两个阶段 5 模块独立性的概念是模块化 抽象和信息隐蔽的直接结果 6 变换分析是一系列设计步骤的总称 经过这些步骤把变换型数据流图按预先确定的 模式映射为软件结构 7 软件的详细设计可以采用图形 表格和语言三种形式的描述工具表示模块的处理过 程 8 在详细设计阶段的文档是详细设计说明书 它是程序运行过程的描述 9 程序流程图又称为程序框图 它是软件开发者最熟悉的一种算法表达工具 10 影响系统架构设计的因素有很多种 一般主要从两个大的方面考虑 程序的运行 结构和源代码的组织结构 11 三层逻辑架构主要包括 界面表示层 业务层 数据存储层 12 在流行的数据库软件开发模式中 分为三类模式 用户端 服务器 C S B S 模式 混合模式 1 根据用户对项目的使用情况 可把用户分为三类 初级用户 中级用户 高级用 户 2 用户界面设计应该包括用户使用分析 交互设计 界面设计 视觉设计四个方面 的内容 3 Web界面的主要形式一般有下面几种 信息查询类界面 大众媒体类界面 宣传 窗口类界面 电子商务类界面 交流平台类界面 4 常见的服务器端脚本语言有PHP ASP JSP等 5 Web 界面设计工具常用的有 Photoshop Dreamwaver 和 Fireworks 这些工具和 HTML 及各类脚本语言结合使用 可设计出各种功能的 Web 界面 1 计算机语言可分为两大类 面向机器的语言 高级语言 2 计算机语言依据语言的主要特点分类可分为 静态高级语言 动态高级语言 块结 构高级语言 结构化高级语言 系统实现语言等 3 网络系统的安全性主要考虑保证网络设备连接的安全 这需要一组相互重叠的安全 机制 包括防火墙 数据包过滤器 物理安全 审查日志 身份验证和授权等 4 注释的形式有注释段 注释行 语句后注释等 注释内容有序言性注释 语句性注 释 功能性注释 说明性注释等 5 标识符分为两部分 规范标识前缀 含义标识后缀 6 标识的总长度不要超过 32 个字符 7 region 和 endregion 可以实现代码的折叠 8 程序设计说明书的内容包括三部分 程序说明部分 输入输出 数据文件及其定义 处理概要 1 E R 数据模型一般在数据库设计的概念设计阶段使用 2 在数据库领域里 统称使用数据库的各类系统为 数据库 系统 3 数据库实施阶段包括两项重要的工作 一项是数据的 载入 另一项是应用程序的 编码和调试 4 数据库设计的几个步骤是需求分析 概念设计 逻辑设计 物理设计 数据库实现 和运行 5 数据管理技术的发展大致经过了以下三个阶段 人工管理阶段 文件系统阶段 数 据库系统阶段 6 在数据库设计中 把数据需求写成文档 它是各类数据描述的集合 包括数据项 数据结构 数据流 数据存储和数据加工过程等的描述 这通常称为数据字典 7 E R 图向关系模式转化要解决的问题是如何将实体和实体之间的联系转换成关系模 式 如何确定这些关系模式的属性和码 8 数据库设计过程中 一般经过需求分析 概念设计 逻辑设计 物理设计 数据库 实施等五个阶段 9 数据库管理系统的功能基本功能包括以下 4 个方面 数据定义 数据操纵 数据查 询 数据控制 1 在面向对象的设计方法中 对象和传递消息分别是表现事物及事物间相互联系的概 念 2 面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统 并 在系统构造中尽可能运用人类的自然思维方式 3 对象是对现实世界实体的模拟 它是由描述内部状态表示静态属性的数据 以及可 以对这些数据施加的操作 封装在一起所构成的统一体 4 对象之间通过消息通信互相联系 以模拟现实世界中不同事物彼此之间的联系 5 面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型 开发出 尽可能直观 自然地表现求解方法的软件系统 6 对象具有封装性 自治性 通信性 被动性 持久性和暂存性等 7 类的定义是具有相同 属性和方法的一组对象的集合 它为属于该类的全部对象提 供了统一的抽象描述 8 一个类的上层可以有父类 下层可以有子类 形成一种层次结构 9 一个类可以直接继承多个类 这种继承方式称为多重继承 如果限制一个类至多只 能有一个超类 则一个类至多只能直接继承一个类 这种继承方式称为简单继承 10 如果类 A 具有类 B 的全部属性和全部服务 而且具有自己特有的某些属性或服务 则 A 叫做 B 的子类 B 叫做 A 的父类 11 在面向对象的系统中 每个对象都属于一个类 属于某个类的对象称为该类的一 个 实例 12 消息就是向对象发出的服务请求 它应含有提供服务的对象标识 服务标识 输 入信息和回答信息 13 继承性是面向对象程序设计语言不同于其他语言的最主要特点 是其他语言所没 有的 14 在收到消息时对象要予以响应 不同的对象收到同一消息可以产生完全不同的结 果 这一现象叫做多态 15 面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用 它包括面 向对象的分析 对象的设计 对象的编程 对象的测试和面向对象的维护等主要内容 16 用面向对象方法开发软件 通常需要建立三种形式的模型 分别是 对象模型对象模型 动态模型 功能模型模型 17 Booch 方法是面向对象开发方法的倡导者 Booch 认为软件开发是一个螺旋上升的 过程 上升的每个周期有固定的步骤 首先发现应用领域的是对象和类 18 Booch是面向对象方法最早的倡导者之一 他提出了面向对象软件工程的概念 UML 的定义包括 UML 语义和 UML 表示法两个部分 19 UML 适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段 在需 求分析阶段 利用用例来捕获用户需求 分析阶段主要关心问题域中的主要概念 如抽象 类和对象等 和机制 需要识别这些类以及它们相互间的关系 并用 UML 类图来描述 为实现使用实例 类之间需要协作时 UML 动态模型可以描述对象的交互 20 UML 模型可作为测试阶段的依据 系统通常需要经过单元测试 集成测试 系统 测试和验收测试 不同的测试小组使用不同的 UML 模型作为测试依据 单元测试使用类图 和类规格说明 集成测试使用部件图和合作图 系统测试使用用例图来验证系统的行为 验收测试由用户进行 以验证系统测试的结果是否满足分析阶段确定的需求 21 UML 的静态建模机制包括用例图 类图 对象图 包图 构件图 配置图等 使用它们建 立系统的静态结构 22 在 UML 中 用例表示为一个椭圆 方框表示系统边界 小人状图案表示执行者 23 UML 对于整体 部分关联有特殊的表示法 组成和聚集 24 在 UML 中将各种各样的模型元素通过内在的语义关系连在一起 形成一个高内聚 低耦合的整体就叫包 25 UML 动态模型包括行为模型 交互模型和实现模型 1 软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试 用例 即输入数据及其预期结果 并利用这些测试用例去运行程序 以发现程序错误的过 程 2 软件测试的种类大致可以分为人工测试和基于计算机的测试 基于计算机的测试有 两种方法 分别是 白盒测试和黑盒测试 3 软件从编码结束到交付用户使用 需要经过单元测试 组装测试 验收测试和系 统测试 4 个步骤 4 调试的目标在于找到软件错误的原因并加以改正 调试过程中主要采用调试策略有 原始的调试方法 回溯法 归纳法和演绎法 1 实施软件配置管理的目的是保证软件项目的工作产品在整个项目周期中的完整性 2 软件质量可分解成 6 个要素 功能性 稳定性 易用性 效率 易维护性 可移植 性 3 风险管理被认为是 IT 软件项目中减少失败的一种重要手段 4 当不能很确定地预测将来事情的时候 可以采用结构化风险管理来发现计划中的缺 陷 并且采取行动来减少潜在问题发生的可能性和影响 5 软件配置管理是一门应用技术 管理和监督相结合的学科 通过标识和文档来记录 配置项的功能和物理特性 控制这些特性的变更 记录和报告变更的过程和状态 并验证 它们是否与需求一致 6 指令性项目 以项目任务书为依据 合同项目 以合同和招投标文件为依据 非合 同项目 以可行性研究报告或项目前期调研成果为依据 7 进度管理的目的是控制时间和节约时间 8 根据美国项目管理协会的定义 项目的管理过程被划分成 5 个阶段 过程组 建议阶段 启动和计划阶段 实施阶段 控制阶段 收尾阶段 9 ISO9000 标准已经经历了四个版本 即1987 版 1994 版 2000 版和最新版 2008 版 10 CMM 五级标准按由低到高的成熟度分别为 初始级 可重复级 已定义级 已 管理级 优化级 11 软件缺陷的级别 可以概括为以下四种 致命的 严重的 一般的 次要的 12 配置管理工具可以分为 3 个级别 版本控制工具 项目级配置管理工具 企业级 配置管理工具 四 名词解释题四 名词解释题 计算机软件 一系列按照特定顺序组织的计算机数据和指令的集合 包括计算机程序 方法 规则 相关文档资料 以及在计算机上运行时所必需的数据 软件危机 软件危机 是指软件在开发 维护过程中所遇到的一系列极为严重问题 主要是 如何开发软件 以满足人们对软件日益增长的需求 如何维护品种 版本繁多 数量日益增长的软件 软件工程 采用工程的原理 方法来开发 运行 维护 修复和管理软件的系统方法 软件生存周期 软件从产生 直至消亡的整个过程 可行性分析 确定拟开发的项目是否可行 是否值得开发 软件开发 是把用户需要转化为软件需求 把软件需求转化为程序设计 用程序代码 实现程序设计 对程序代码进行测试 并签署确认其可以投入运行 使用的过程 软件文档 软件在生存周期中所生成的所有文件 资料 源程序清单 说明书 使用 手册 维护记录等 瀑布模型 按照软件生存周期的阶段 一步一步的推进 每一步均设置一个完成的标 志 即 里程碑 并以文档形式完整的描述清晰 否则 不能进入 进行 下一阶段的 工作 可行性分析 可行性分析 要决定的问题是 做 还是不做 为避免盲目的软件开 发 相关人员必须对拟开发的软件项目进行可行性调研 考察 分析 研究 项目计划 项目开发计划 要决定的问题是 如何做 怎么做 设计人员在可行性 分析的基础上 如果认为项目有开发意义 就应依据对项目调研 考察 分析的估算数据 制定项目开发计划 技术可行性 对要开发项目的功能 性能 限制条件从技术角度进行分析 确定在现 有资源 技术条件下 技术风险有多大 是否有把握完全满足用户的需求 项目是否能够 顺利完成 经济可行性 进行开发成本估算 对预期效益评估 确定是否值得投资 是否值得开 发 是经济可行性分析的目标 包括成本 效益分析 公司经营策略 开发所需的成本和资 源 潜在的市场前景等 开发成本估算 软件开发的成本 主要依据软件的规模 开发的工作量 人力投入 设备及其他投入等进行估算 其中 开发工作量估算和人力投入估算是成本估算的两大核 心内容 而开发工作量主要受到软件规模 软件复杂度 开发环境以及人员技术水平等诸 多因素影响 结构化分析法 是面向数据流进行需求分析的方法 图形分析法 是以图形形式表示系统数据的结构 数据流 以事先规定好的顺序被读取一次的数据的一个序列 加工 既有输入数据流 又有输出数据流 文件 存储在计算机上的信息集合 文件可以是 文本 图片 程序等等 源点 来源于系统外的实体 可以是人 物或系统 汇点 交汇于系统外的实体 可以是人 物或系统 数据项 也称数据元素 数据项条目包括数据项名 编号 简述 简述该数据项的含 义 单位 该数据项的计量单位 类型 描述该数据项的数据类型 值域 描述该 数据项的取值范围 编辑方式 描述该数据项在输出时的编辑要求 与其他数据项的 关系 有利于数据的合法性检查 和备注等 数据字典 数据字典用于定义数据流图中各个图元的具体内容 为数据流图中出现的 图形元素做出确切的解释 层次方框图 是用树形结构的一系列多层次的矩形框描绘数据的层次结构 E R 图 实体 联系 E R 关系 图 用于描述应用系统的概念结构数据模型 软件测试 指利用人工或自动的方法执行和评价各个模块的过程 白盒测试 也称结构测试或逻辑驱动测试 把测试对象看作一个打开的盒子 测试人 员必须了解程序的内部结构和处理过程 以检查处理过程的细节为基础 对程序中尽可能 多的逻辑路径进行测试 检验内部控制结构和数据结构是否有错 实际的运行状态与预期 的状态是否一致 黑盒测试 又称为功能测试或数据驱动测试 把测试对象看作一个黑盒子 不需测试 软件产品的内部结构和处理过程 只在软件的接口处进行测试 逻辑覆盖 是白盒测试法的最常用的一种测试用例技术 是对一系列测试过程的总称 这组测试过程按照越来越完全的程度进行路径的测试 逻辑覆盖是以程序内部的逻辑结构 为基础 要求测试人员对程序的逻辑结构有清楚的了解 追求程序内部的逻辑结构覆盖程 度 当程序中有循环时 覆盖每条路径是不可能的 要设计覆盖程度较高的或覆盖最有代 表性的路径的测试用例 等价分类法 该方法是一常用的黑盒测试用例设计方法 把所有可能的输入数据 即 程序的输入域划分成若干部分 子集 然后从每一个子集中选取少数具有代表性的数据作 为测试用例 集成测试 集成测试是在模块测试完成后 对由多个模块组装在一起的部件进行测试 又称为 组装测试 其目的是检测程序单元或部件的接口关系是否符合概要设计阶段的 要求 集成测试的重点在于检查模块之间接口的有关问题 发现公共数据与全程变量引起 的模块间的相互干扰作用 回溯法 在小程序中常用的一种有效的调试技术 具体做法是 分析错误表象 确定 症状位置 人工沿着程序的控制流往回追踪源程序代码 直到找到错误原因为止 功能测试 即黑盒测试 依据需求说明书 需要测试软件产品的功能 不需测试软件 产品的内部结构和处理过程 只在软件的接口处进行测试 性能测试 检查和评估系统执行的响应时间 处理速度 网路承载能力 操作方便灵活 程度 运行可靠程度等 安全性测试 检查系统在容错功能 恢复功能 并发控制 安全保密等方而是否达到设 计要求 静态测试 又称静态分析 指被测试程序不在机器上运行 而是采用人工检测和计算 机辅助对被测程序的数据流和控制流等信息进行静态分析 找出系统的缺陷 写出测试报 告 动态测试 指通过运行程序发现错误 一般意义上的测试大多是指动态测试 五 问答题五 问答题 9 试说明软件生存周期的概念 并阐述每个阶段的主要任务与作用 软件产品从诞生到消亡的过程 称为软件产品的生存周期 软件生存周期可分为三个大的阶段 定义阶段 开发阶段 运行与维护阶段 定义阶段主要是进行 1 可行性分析 2 制定开发计划 3 需求分析 开发阶段主要是进行 1 系统设计 2 程序设计 3 软件测试 运行维护阶段主要是进行 1 系统运行 2 系统维护 1 常用的软件开发模型有那几种 常见的软

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论