




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程基础部分知识点总结软件工程基础部分知识点总结 知识点一知识点一 软件工程的基本概念软件工程的基本概念 1 软件定义软件定义 是计算机系统中与硬件相互依存的另一部分 是包括 程序 数据以及相关文档的完整集合 1 程序是软件开发人员根据用户需求开发的 用程序设计语言描述 的 适合计算机执行的指令 语句 序列 2 数据是使程序能够正常操作信息的数据结构 3 文档是与程序开发 维护和使用有关的图文资料 国标 GB 计算机软件的定义 与计算机系统的操作相关的计算机 程序 规程 规则以及可能有的文件 文档及数据 2 软件特点软件特点 1 软件是一种逻辑实体 而不是物理实体 具有抽象性 是计算机 的无形部分 2 软件的生产与硬件不同 它没有明显的制作过程 3 软件在运行 使用期间不存在磨损 老化问题 4 软件的开发 运行对计算机系统具有依赖性 受计算机系统的限 制 这导致了软件移植的问题 5 软件复杂性高 成本昂贵 6 软件开发涉及诸多的社会因素 3 软件的分类软件的分类 按照功能可以分为 应用软件 系统软件 支撑软件 或工具软 件 1 应用软件是为解决特定领域的应用而开发的软件 2 系统软件是计算机管理自身资源 提高计算机使用效率并为计算 机用户提供各种服务的软件 3 支撑软件是介于系统软件和应用软件之间 协助用户开发软件的 工具软件 4 软件危机软件危机 是指在软件的开发和维护过程中所遇到的一系列严重 问题 软件危机主要体现在以下几个方面 软件开发的实际成本和进度估计不准确 开发出来的软件常常不能使用户满意 软件产品的质量不高 存在漏洞 需要经常打补丁 大量已有的软件难以维护 软件缺少有关的文档资料 开发和维护成本不断提高 直接威胁计算机应用的扩大 软件生产技术进步缓慢 跟不上硬件的发展和人们需求增长 5 软件工程软件工程 此概念的出现源自软件危机 软件工程是指应用计算 机科学 数学及管理科学等原理 以工程化的原则和方法来开发与 维护软件的学科 1 研究软件工程的主要目的就是在规定的时间 规定的开发费用内 开发出满足用户需求的高质量的软件系统 高质量是指错误率低 好 用 易用 可移植 易维护等 2 软件工程的三个要素 方法 工具和过程 方法 完成软件工程项目的技术手段 工具 支持软件的开发 管理 文档生成 过程 支持软件开发的各个环节的控制 管理 3 软件工程的核心思想 把软件产品看作是一个工程产品来处理 知识点二知识点二 软件的生命周期软件的生命周期 1 软件生命周期概念软件生命周期概念 将软件产品从提出 实现 使用维护到停止 使用退役的过程称为软件生命周期 2 软件生命周期一般划分为定义 开发和维护 3 个阶段 1 定义阶段定义阶段 可行性研究 需求分析 2 个阶段 软件定义阶段 包括制定计划和需求分析 制定计划 确定总目标 可行性研究 探讨解决方案 制定开发 计划 需求分析 对待开发软件提出的需求进行分析并给出详细的定义 方法 1 结构化需求分析方法 2 面向对象的分析方法 任务 导出目标系统的逻辑模型 解决 做什么 的问题 步骤 需求分析一般分为需求获取 需求分析 编写需求规格说 明书和需求评审四个步骤进行 2 开发阶段开发阶段 概要设计 详细设计 编码实现和测试 4 个阶段 软件设计 分为概要设计和详细设计两个部分 软件实现 把软件设计转换成计算机可以接受的程序代码 软件测试 在设计测试用例的基础上检验软件的各个组成部分 3 维护阶段维护阶段 使用 维护 退役阶段 软件运行维护阶段 软件投入运行 并在使用中不断地维护 进行 必要的扩充和删改 软件生命周期中所花费最多的阶段是软件运维护阶段 软件生命周期中所花费最多的阶段是软件运维护阶段 4 软件工程原则软件工程原则 抽象 信息隐蔽 模块化 局部化 确定性 一 致性 完备性和可验证性 5 软件工具软件工具就是帮助开发软件的软件 它们对提高软件生产率 促 进软件生产的自动化都有重要的作用 6 软件开发环境软件开发环境 或称软件工程环境 是全面支持软件开发全过程的 软件工具的集合 这些软件工具按照一定的方法和模式组合起来 共同支持软件生命周期内的各个阶段和各项任务的完成 知识点三知识点三 软件设计基本概念软件设计基本概念 1 软件工程过程软件工程过程 问题定义 可行性研究 需求分析 软件设计 软件编码 软件测试 软件维护 2 软件设计分为总体设计和详细设计软件设计分为总体设计和详细设计 1 总体设计 目的 要解决的问题是 怎样实现目标系统 任务 确定软件的总体结构 进行模块划分 确定每个模块的功 能 接口及模块之间的调用关系 并对全局数据结构进行设计 同同 时产生概要设计说明书时产生概要设计说明书 2 详细设计 目的 要解决的问题是 应该怎样具体实现目标系统 任务 在概要设计的基础上 设计每个模块实现的细节及对局部 数据进行设计 包括模块的数据结构和所需的算法 同时产生详细同时产生详细 设计说明书设计说明书 3 软件编码软件编码 目的 产生能在计算机上执行的程序 任务 根据系统的要求和开发环境 选用合适的程序设计语言 把详细设计的结果翻译成用该程序设计语言编写的程序代码 源程序 4 软件测试软件测试是为了发现程序中的错误而执行程序的过程 目的和任务 通过在计算机上执行程序来尽可能多地发现软件产 品中的错误和缺陷 并改正程序中的错误 以保证程序的可靠运行 5 软件维护阶段软件维护阶段是长期的过程 因为 经过测试的软件还可能有错 用户的要求还会发生变化 软件运行的环境也可能变化等等 因此 交付使用的软件仍然需要继续排错 修改和扩充 这就是软件维护 软件维护的目的目的是满足用户对已开发产品的性能与运行环境不断提 高的需要 进而达到延长软件的寿命 软件维护就是在软件交付使用之后 为了改正错误或满足新的需软件维护就是在软件交付使用之后 为了改正错误或满足新的需 要而修改软件的过程 要而修改软件的过程 软件维护的类型类型有如下几种 1 改正性维护 诊断和改进错误的过程 2 适应性维护 为与变化的环境适当配合而进行的修改软件的活动 3 完善性维护 为了满足用户提出的增加新功能或修改已有功能的 建议而进行维护 4 预防性维护 为了改进未来的可维护性和可靠性 软件开发时期要完成设计和实现两大任务 其中设计任务用需求分 析和软件设计两个阶段完成 实现任务用编码和测试两个阶段完成 开发任务完成的好与坏 关系到软件产品的质量 完成开发任务的 关键是选择好的软件开发方法 目前 软件开发方法主要有结构化开发方法和面向对象开发方法目前 软件开发方法主要有结构化开发方法和面向对象开发方法 知识点知识点 4 4 软件设计的基本原理软件设计的基本原理 软件设计的基本原理包括 抽象 模块化 信息隐蔽和模块独立性 软件设计的基本原理包括 抽象 模块化 信息隐蔽和模块独立性 1 模块化 模块化 指解决问题时自顶向下的方法逐层把软件系统划分成若 干个模块的过程 2 抽象 抽象 认识复杂过程中使用的思维工具 即抽出事务的本质的共 同的特性而暂不考虑它的细节和其他因素 3 信息隐蔽 信息隐蔽 旨在设计和确定模块式的时候 是的一个模块内包含 的信息 对于不需要这些信息的其他模块来说不可访问 4 模块独立性 模块独立性 指每个模块只完成系统要求的独立的功能 并且与 其他模块联系最少且接口简单 模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标 1 内聚性 是对模块功能强度的度量 即对一个模块内部各个元素 语句之间 程序段 间彼此结合的紧密程度的度量 2 耦合性 是模块间互相连接的紧密程度的度量 模块之间联系越 紧密 其耦合性就越强 模块的独立性则越差 一个设计良好的软件系统应具有高内聚 低耦合高内聚 低耦合的特征 在结构化程序设计中 模块划分的原则是 模块内具有高内聚度 模块内具有高内聚度 模块间具有低耦合度 模块间具有低耦合度 软件设计有两个步骤 1 概要设计 又称结构设计 是将软件需求转化为软件体系结构 确定系统级接口 全局数据结构或数据库模式 2 详细设计是确定每个模块的实现算法和局部数据结构 通过对 结构表示进行细化 得到软件的详细数据结构和算法 知识点知识点 5 5 结构化分析方法结构化分析方法 结构化方法的软件开发过程 结构化分析结构化设计结构化程序设计 软件计划后 编码并测试 面向对象方法的软件开发过程 软件测试软件计划后 面向对象分 析 面向对象设计 面向对象编程 1 结构化分析结构化分析 简称 SA 方法是面向数据流进行需求分析的方法 2 结构化分析方法的常用工具常用工具 数据流图 数据字典 结构化语言 判定树 判定表 3 SA 的基本步骤基本步骤如下 自顶向下对系统进行功能分解 画出分层的数据流图 由后向前定义系统的数据和加工 编制数据字典和加工说明 写出需求规格说明书 SRS 4 数据流图数据流图是以图形的方式描绘数据在软件系统中流动和处理的过 程 由于它只反映系统必须完成的逻辑功能 所以它是一种功能模 型 数据流图由数据流 加工 又称数据处理 数据存储 又 称文件 数据源点或终点四种基本成分组成 数据流图 简称 DFD 图形元素 数据流 是数据在系统内传播的路径 使用箭头代表数据的 流向 数据名称标在箭头的边上 加工 输入数据经过加工变换产生输出 使用圆框代表加工 数据存储 指处理过程中存放各种数据 使用双杠 或单杠 表示数据文件或数据库 文件与加工之间用箭头线连接 单向表 示只读或只写 双向表示可读可写 数据源点或终点 指软件系统外部环境中的实体 包括人员 组织或其他软件系统 统称为外部实体 使用方框表示数据的 源点和终点 5 建立数据流图的步骤 建立数据流图的步骤 第一步 由外向里 先画系统的输入输出 然后画系统的内部 第二步 自顶向下 顺序完成顶层 中间层 底层数据流图 第三步 逐层分解 6 DFDDFD 图的数据流可分为两种类型 变换流和事务流图的数据流可分为两种类型 变换流和事务流 变换流 信息沿着输入通路进入系统 同时将信息的外部形式转 换成内部形式 通过变换中心处理之后 再沿着输出通路转换成 外部形式输出 事务流 信息沿着输入通路到达一个事务中心 事务中心根据输 入信息的类型在若干个动作序列中选择一个来执行 这种信息流 称为事务流 7 数据字典数据字典就是用来定义数据流图中的各个成分的具体含义和详细 的描述 它和数据流图共同构成了系统的逻辑模型 是需求规格说 明书的主要组成部分 是结构化分析方法的核心 数据字典是为分 析人员查找数据流图中有关名字的详细定义而服务的 数据字典有四类条目 数据流 数据项 数据存储和基本加工 8 SDSD方法的中心任务方法的中心任务就是把用DFD图表示的系统分析模型方便地转 换为软件结构的设计模型 识点识点 6 6 软件测试的目的和准则软件测试的目的和准则 1 软件测试是保证软件质量的重要手段 其主要过程涵盖了整个软 件生命周期的过程 包括需求定义阶段的需求测试 编码阶段的单 元测试 集成测试以及后期的确认测试 系统测试 验证软件是否 合格 能否交付给用户使用 软件测试就是使用人工或自动手段来 运行或测定某个系统的过程 其目的目的在于检验它是否满足规定的需 求或是弄清预期结果与实际结果之间的差别 2 软件测试的原则原则 1 所有测试都应追溯到需求 2 严格执行测试计划 排除测试的随意性 3 避免由软件开发人员测试自己的程序 4 充分注意测试中的群集性现象 5 除了很小的程序外 彻底 的穷举测试是不可能的 6 妥善保存测试计划 测试用例 出错统计和最终的分析报告 为维护提供方便 软件测试的每一次测试都需要准备好一些测试数据 与被测程序 一起输入到计算机中执行 知识点知识点 7 7 软件测试的方法和实施软件测试的方法和实施 1 测试测试是对软件规格说明 设计和编码的最后的复审 所以软件测 试贯穿在整个软件开发期的全过程 对于软件测试方法和技术 可 以从不同的角度加以分类 从是否需要执行被测软件的角度 软件测试分为静态分析和动态 测试 按照功能划分 动态测试又分为白盒测试和黑盒测试 2 静态测试静态测试一般是指人工评审软件文档或程序 借以发现其中的错 误 由于被评审的文档或程序不必运行 所以称为静态的 静态测试包括代码检查 静态结构分析 代码质量度量等 3 动态测试动态测试是指通过运行软件来检查软件中的动态行为和运行结果 的正确性 也就是常说的上机测试 动态测试一般包括两个基本要素 被测程序和测试数据 4 测试能否发现错误取决于测试用例的设计 测试能否发现错误取决于测试用例的设计 动态测试的设计测试用例的方法一般分为黑盒测试和白盒测试 白盒测试也称结构测试 它与程序内部结构相关 要利用程序结 构的实现细节设计测试用例 它涉及程序风格 控制方法 源程序 数据库设计和编码细节 黑盒测试是测试者已经知道被测程序的功能 而对程序内部的逻 辑结构和处理过程完全不用考虑 只是对它的每一个功能进行测试 将测试后的结果与期望的结果进行分析比较 检查程序的功能是否 符合规格说明书的要求 黑盒测试是在程序接口进行的测试 5 测试用例测试用例是由测试数据和期望结果组成 设计测试用例的目的就 是用尽可能少的测试数据 达到尽可能大的程序覆盖面 发现尽可 能多的软件错误和问题 6 用白盒法设计测试用例常用以下几种技术 用白盒法设计测试用例常用以下几种技术 语句覆盖 判定覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖 路径覆盖 7 用黑盒法设计测试用例常用以下几种技术 用黑盒法设计测试用例常用以下几种技术 等价类划分法 边界值分析法 错误推测法 因果图法 8 软件测试的软件测试的实施实施 单元测试 是对每一个编制好的模块进行测试 其目的在于 发现和排除各模块内部可能存在的差错及详细设计中产生的错误 进行单元测试时 根据程序的内部结构设计测试用例 主要采用 白盒测试法 集成测试 是在单元测试的基础上 将所有模块按照设计要求 组装成为系统而进行的测试 它的任务是检查模块间的接口和通 信 各子功能的组合能否达到预期要求的功能 全程数据结构是 否有问题等 集成测试主要发现设计阶段产生的错误 通常采用 黑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三一轮复习练习试题(提高版)数学第一章1.1集合
- 置业顾问基础专业知识培训课件
- 部编版三年级语文阅读兴趣计划
- 电工知识学习培训课件
- 2025年三年级科学下册新苏教教学计划
- 马勇中央银行学课件
- 教科版小学二年级科学能力提升计划
- 马克思主义新闻观课件
- 马克思主义原理课件
- 骨干教师培训知识更新心得体会
- 儿童眼保健健康讲座课件
- 2024年呼伦贝尔农垦集团有限公司招聘笔试真题
- 安防报警信息系统项目投资可行性研究分析报告(2024-2030版)
- 人教版三年级上数学第二单元《含括号的混合运算》课时练习卷(含答案)
- 炸鸡店铺活动方案
- 钢制压力管道防腐层厚度检测新技术
- 高中化学必修二1.2《物质结构-元素周期律》
- 湖南美术出版社二年级美术上册学期教学计划
- 2025年上海市中考语文试题含解析
- 化工厂产品品质管理制度
- 2024-2030年中国钢纤维混凝土行业市场全景分析及投资前景展望报告
评论
0/150
提交评论