




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 计算机导论 扬州职业大学 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 第十一章 软件工程 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 学习目标 了解软件的定义和特点 理解软件工程的概念与思想 熟悉软件生命周期的理论与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 任务 1:了解软件的定义与特点 软件的定义 软件: 是计算机系统中与硬件相互依存的另一部分 , 它是包括程序 , 数据及其相关文档的完整集合 。 程序是按事先设计的功能和性能要求执行的指令序列 , 程序是软件的主体 。 数据是使程序能正常操纵信息的数据结构 。 文档是与程序开发 , 维护和使用有关的图文材料 。 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件的特点 抽象性 可复制性 无磨损性 依赖性 复杂性 任务 1:了解软件的定义与特点 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件危机 软件危机主要表现在以下几个方面: 软件的需求不断地增长,用户对系统不够满意。 软件开发的进度和成本难以控制,经常会出现经费超预算、完成期限一再拖延的现象。 软件需求在开发初期不明确,导致矛盾在后期集中爆发。 由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。 任务 1:了解软件的定义与特点 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 任务 2:理解软件工程的概念与思想 软件工程的定义 软件工程是一门研究用工程化方法构建和维护有效的 、 实用的和高质量的软件的学科 。 它涉及到程序设计语言 , 数据库 , 软件开发工具 , 系统平台 , 标准 , 设计模式等方面 。 软件工程是应用于计算机软件的定义 、 开发和维护的一整套方法 、 工具 、 文档 、 实践标准和工序 。 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 对于软件工程的理解可以包含以下几个方面: 软件工程是一门指导计算机软件开发和维护的工程学科 。 软件工程不是传统意义上的工程 , 没有陈述的系统化方法 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件工程的内容 软件工程的主要内容:是软件开发技术和软件工程管理 。 软件开发技术:包含软件开发方法 、 软件工具 、 软件工程环境 。 软件工程管理:包含软件工程经济 、 软件管理 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件工程包括 3个基本要素:方法 、 工具和过程 。 方法:完成软件工程项目的技术手段 、 为软件开发提供 “ 如何做 ” 的技术 , 它涵盖了项目计划 、需求分析 、 系统设计 、 程序实现 、 测试与维护等一系列任务 。 工具:支持软件的开发 、 管理和文档的生成 。 过程:支持软件开发的各个环节的控制和管理 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件工程的主要目标: 合理预算成本 , 降低开发费用 , 提高开发效率; 控制开发进度 , 实现预期功能 , 满足用户需求; 提高软件质量 , 使软件具有可靠性 、 可理解性 、可重用性 、 可适应性 、 可移植性 、 可追踪性和可维护性 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件工程的思想 软件工程的核心思想:把软件产品看成一个工程产品来处理 。 软件开发阶段包含以下基本思想和方法: 抽象化:从编程对象中抽取最基本的属性和行为, 忽略非基本的细节 。 模块化:通过对象 、 类等模块化手段 , 实现系统的模块化和层次化 , 控制软件系统的复杂性 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 局部化:在模块内部保持较强的内聚 , 模块之间保持松散耦合 , 控制软件模块的复杂性 。 隐蔽化:将模块设计成 “ 黑箱 ” , 实现细节隐藏在模块内部, 模块使用者只能通过接口进行访问 , 达到使用与实现的分离 , 保证软件系统的可组装性 。 确定性:软件开发过程中的所有概念表达应是确定的 、 无歧义的 、 规范的 。 一致性:软件系统的各个模块应使用一致的概念 、 符号和术语 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 完备性:软件系统所需要的各个部件应是齐全的 、 完备的 、 正确的 。 可验性:软件系统开发过程中的各个环节应是可检查的 、 可测试的 、 可评审的 。 任务 2:理解软件工程的概念与思想 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 任务 3:熟悉软件生命周期的思想与各阶段的任务 软件生命周期的概念 软件生命周期 , 就是从时间角度对软件开发和维护的复杂问题进行分解 , 把软件生存的周期一次划分为若干阶段 , 每个阶段有相对独立的子任务 , 然后逐步完成每个阶段的任务 。 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件生命周期的划分 软件的生命周期的阶段划分有两种方式: 6个阶段和 3个阶段 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 1、 计划阶段 可行性研究和计划的制定 。 确定待开发系统的总体目标和范围 , 研究系统的可行性和可能的解决方案 , 对资源成本以及进度进行合理的估算 。 2、需求分析阶段 分析整理和提炼所收集到的用户的需求,建立完成的分析模型,编写软件需求规格说明和初步的用户手册,提交评审。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 3、软件设计阶段 系统设计人员和程序设计人员应该在反复理解软件需求的基础上,按照需求规格说明书确定软件的结构、模块的划分、进而确定每个模块的算法,数据结构和结构等,编写概要设计说明书、详细设计说明书和测试计划初稿,提交评审。 4、软件实现阶段 将所设计的各个模块编写成计算机可以接受的程序代码以及实现相关的文档。也就是完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 5、软件测试阶段 在设计测试用例的基础上,测试软件的各个组成部分。然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。 6、软件运行维护阶段 在运行使用过程中多软件产品进行不断地维护工作。维护的是软件过程的一个组成部分,应该在软件的设计和实现阶段充分考虑到其可维护性,维护阶段需要测试是否正确地实现了所要求的修改,并确保在产品维护过程中没有其他无关的改动 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 软件生命周期理论的应用 1、 计划 计划包括问题定义和可行性研究两个方面 。 问题定义:主要确定开发项目要解决的问题是什么 。 可行性研究:要确定的问题是 , 对于问题定义阶段确定的项目是否有行之有效的解决方法 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 一般从以下 3个方面进行分析研究: 技术可行性:使用现有的技术是否能够完成这一项目 。 经济可行性:项目完成后产生的经济效益是否能 超出开发成本 , 并能获得预期的收益 。 操作可行性:项目实现后的运作方式在用户组织内部是否可以实施 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 2、 需求分析 需求分析的目标:是深入描述软件的功能和性能 , 确定软件设计的约束和软件同其他系统元素的接口细节 , 定义软件的其他有效性需求 。 ( 1) 需求分析定义 1997年 用户解决问题或达到目标所需要的条件或权能; 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。 一种反映前两点所描述的条件或能力的文档说明。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 ( 2) 需求分析过程 需求分析阶段的工作,可以分成 4个方面: 需求的获取 需求获取的目的是确定对目标系统的各个方面的需求。 需求分析 需求分析主要是对收集到的需求进行提炼、分析和仔细审查,以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其它不足的地方,形成完整的分析模型。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 编写软件需求规格说明书 软件需求规格说明书是需求开发的最终结果,它精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件。 需求评审 在需求分析的最后,应该对功能的正确性、一致性、完备性、准确性和清晰性,以及其他需求给予评审。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 ( 3) 需求分析方法 常见的需求分析方法有: 面向数据流的结构化分析方法 ( 面 向 数 据 结 构 的 法 ( 面向数据结构的结构化数据系统开发方法 ( 面向对象的分析方法 ( 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 3、 设计 设计工作通常分两个阶段:概要设计 、 详细设计 ( 1) 概要设计的任务:设计软件的系统体系结构以及数据库的相关设计并编写概要设计文档 , 进行概要设计文档评审 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 设计软件体系结构:概要设计阶段将需求分析的结果进一步分解 , 划分为模块和模块的层次结构 。 概要设计首先采用某设计方法 , 将一个复杂的系统按照功能划分成若干个模块 , 确定个模块的功能以及调用关系 , 而后确定模块间的接口 , 最后模块的质量进行评价 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 数据设计:确定软件涉及的文件系统的结构以及数据库的模式 、 子模式 , 进行数据完整性和安全性的设计确定输入 , 输出文件的详细的数据结构结合算法设计 , 确定算法所必需的逻辑数据结构及其操作, 确定对逻辑数据结构所必需的那些操作的程序模块 (软件包 );数据的保护性设计:防卫性设计 、 一致性设计 、 冗余性设计 、 可靠性设计 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 编写概要设计文档:在概要设计阶段 , 要编写概要设计说明书 、 数据库设计说明书 、 用户手册以及制定初步的测试计划 。 概要设计文档评审:在概要设计阶段 , 对设计部分是否完成地实现了需求中规定的功能 、 性能等要求。 对设计方案的实用性 、 技术清晰度 、 可维护性 、质量等问题进行评审 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 具体进行模块设计时 , 一般遵循以下原则: 提高模块的独立性 模块的规模要适中 模块之间的控制以及调用关系要适度 模块的作用域应该在该模块的控制域内 减少模块接口和界面的复杂度 设计成单路口 、 单出口的模块 设计功能可以预测的模块 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 ( 2) 详细设计 详细设计也叫做过程设计或程序设计 , 它不同于编码或编程详细设计 , 是为软件结构图中的各个模块确定实现算法以及数据结构 , 并用相应的描述工具加以细节性表达 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 4、 编码 编码的主要任务:写出正确的容易理解的 、 容易维护的程序模块 。 5、 测试 测试阶段的主要任务:通过各种类型的测试 , 保证项目软件达到预定的要求 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 ( 1) 测试的目的 广义上讲 , 测试是指软件产品生存周期内所有的检查 、评审和确认活动 , 如设计评审 、 系统测试 。 狭义上讲 , 测试是对软件产品质量的检验和评价 , 它一方面检查软件产品质量中存在的质量问题 , 同时对产品质量进行客观的评价 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 ( 2) 测试的原则 软件测试过程中,软件测试人员要遵循一些基本原则: 所有的测试都应该追溯到需求。 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 严格执行测试计划,排除测试的随意性。 充分注意测试中的群集现象。 程序员应避免检查自己的程序。 完全测试程序是不可能的。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 ( 3) 测试的方法 从是否需要执行被测软件的角度来看:可分为静态测试和动态测试; 从测试是否针对系统的内部结构和具体实现算法的角度来看:可以分为白盒测试和黑盒测试 。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 静态测试 静态测试指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括代码检查、静态结构分析、代码质量度量等。 动态测试 动态测试是指基于计算机的测试,通过运行程序发现错误。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 白盒测试 白盒测试也称结构测试或逻辑驱动测试。它是根据软件产品的内部工作过程,在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。 白盒测试主要方法有逻辑覆盖、基本路径测试等。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 黑盒测试 黑盒测试着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。它是根据软件产品的功能设计规格,在计算机上进行测试,以证实每个实现了的功能是否符合要求。 ( 4)测试过程 测试过程一般分为 4个步骤进行: 单元测试、集成测试、确认测试和系统测试。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 单元测试 单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正确实现了规定的功能,从而发现模块在编码中或算法中的错误。 集成测试 集成测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误。 任务 3:熟悉软件生命周期的思想与各阶段的任务 第十一章 软件工程 面向职业 体现系统 重视实践 强化应用 确认测试 确认测试是验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人买卖转让合同标准文本
- 中交一公局采购合同样本
- 修改供用电合同样本
- 土石方工程安全责任书
- 代建房屋租赁合同标准文本
- 2025二手车买卖合同
- 北师大版数学三年级上册《蚂蚁做操》教学设计
- 部编三下数学-第2课时《常用的面积单位》教案
- 企业自如合作合同样本
- 北师大版小学数学六年级上册《比的应用》教案教学设计
- 2023年中国劳动关系学院招聘笔试备考题库及答案解析
- 创造性思维与创新方法Triz版知到章节答案智慧树2023年大连理工大学
- 英语四级仔细阅读练习与答案解析
- 《产业基础创新发展目录(2021年版)》(8.5发布)
- 排水沟土方开挖施工方案
- CAD教程CAD基础教程自学入门教程课件
- 技术合同认定登记培训课件
- 停水停电时的应急预案及处理流程
- 电商部运营助理月度绩效考核表
- DB61∕T 1230-2019 人民防空工程防护设备安装技术规程 第1部分:人防门
- 第12课送你一个书签
评论
0/150
提交评论