




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程技术 1 全权自动化科学与电气工程学院北京航空航天大学 3 21 2020 1 2020 3 21 2 图灵奖2008 2008年 美国计算机协会 ACM 宣布Barbara为当年年度图灵奖获得者 以表彰其在程序设计语言与系统设计 特别是在数据抽象 容错和分布式计算领域的实践和理论基础方面的贡献 Barbara在程序设计语言方面的成就使软件变得更加可靠 同时对消费者和企业用户而言更加易于维护 她的研究成果现已成为各个重要程序设计语言的基础 包括ADA C Java和C 最深刻的就是 没有专心致志的精神就不会成功 创造性偶尔会出现 但这不是人所能计划的 BarbaraLiskov 2020 3 21 3 图灵奖2009 CharlesThacker 现代个人电脑之父 曾发明了第一台具有内置鼠标工作站的现代个人计算机Alto Thacker对个人电脑原型所作出的先驱性设计和创作 为惠及全球的PC产业奠定了基础 泰克上世纪七十年代在施乐著名的帕洛阿尔托研究中心 PARC 工作时 领导阿尔托硬件开发 研究创新性显示技术和其它技术 为新一代计算机开发提供帮助 现年67岁的泰克还是以太网技术的联合发明人 本节课内容 概述软件生存期和软件开发模型软件测试与测试方法 3 21 2020 4 1 概述 3 21 2020 5 1 概述 如果你组织一场晚会 3 21 2020 6 1 概述 需要怎样的节目 需要多少成本 在节目制作和演出过程中我们怎样控制时间 在演出之前怎样尽可能发现不周全的地方 3 21 2020 7 1 概述 需要怎样开发 需要多少成本 在软件交付之前怎样尽可能发现设计的错误 在开发过程中我们怎样度量其进展 3 21 2020 8 2020 3 21 9 误解 1 概述 1 概述 软件危机 1968年软件业界和科学工作者提出了软件工程的思想 任何软件都应当和其它产业的产品一样 由专业人员制作 软件中是系统分析员 高级程序员 程序员 以系统的 工程的方法开发 并提供全方位的售后服务管理 不能因开发者离开调走而无人管 3 21 2020 10 1 概述 软件危机 软件危机 在软件开发与维护中出现的问题 主要表现 软件质量难以保证 出错率高 软件维护困难 甚至不可维护 软件开发进度难以控制 程序之间接口混乱 软件工程 60年代末开始 为了解决软件危机而形成的一门新兴学科 强调采用工的概念 原理 技术和方法指导软件开发和维护 目的 提高软件的生产率和软件的质量 增加软件的可维护性 减少软件维护所需要的工作量 3 21 2020 11 1 概述 软件危机 事故 在软件工程界被大量引用的案例是Therac 25的意外 在1985年六月到1987年一月之间 六个已知的医疗事故来自于Therac 25错误地超过剂量 导致患者死亡或严重辐射灼伤 3 21 2020 12 1 概述 软件危机 现状 CapersJones曾对美国软件组织的绩效做过评估 所得到结论是 软件工程的专业分工不足 是造成质量低落 时程延误 预算超支的最关键因素 2003年 TheStandishGroup年度报告指出 在他们调查的13522个专案中 有66 的软件专案失败 82 超出时程 48 推出时缺乏必需的功能 总计约550亿美元浪费在不良的计划 预算或软件估算上 解决之道 布鲁克斯在 人月神话 软件专案管理之道 TheMythicalMan Month 提到 开发软件的困难是内生的 只能渐进式的改善 整体环境没有改变以前 唯一可能的解 是依靠人的素质 培养优秀的工程师 3 21 2020 13 1 概述 软件工程的定义 软件工程与计算机科学差别 3 21 2020 14 1 概述 软件工程的定义 3 21 2020 15 1 概述 软件工程的定义 哲学家进餐问题 3 21 2020 16 1 概述 软件工程的定义基本思想 其主要思想是按工程化的原则和方法来组织和规范软件开发过程 解决软件研制中面临的困难和混乱 软件工程 的定义 运用系统的 规范的和可定量的方法来开发 运行和维护软件 1983年美国 IEEE软件工程标准术语 对软件工程下的定义为 软件工程是开发 运行 维护和修复软件的系统方法 其中 软件 的定义为 计算机程序 方法 规则 相关的文档资料以及在计事机上运行时所必需的数据 3 21 2020 17 1 概述 软件工程的定义核心知识包括 软件需求 Softwarerequirements 软件设计 Softwaredesign 软件建构 Softwareconstruction 软件测试 Softwaretest 软件维护与更新 Softwaremaintenance 软件构型管理 SoftwareConfigurationManagement 软件工程管理 SoftwareEngineeringManagement 软件开发过程 SoftwareDevelopmentProcess 软件工程工具与方法 Computer AidedSoftwareEngineering CASE 软件质量 SoftwareQuality 3 21 2020 18 1 概述 软件工程的基本原则 1 严格管理分阶段的项目计划软件工程按软件开发活动步骤应制定以下计划 1 项目实施总计划 2 软件配置管理计划 3 软件质量保证计划 4 测试计划 5 安全保密计划 6 系统安装计划 7 运行和维护管理计划 3 21 2020 19 1 概述 软件工程的基本原则 2 进行阶段评审据统计 软件大部分错误是在编码之前造成的 设计错误占63 编码错误只占37 并且由于软件特点的因素 错误发现和改正的越晚 所付出的代价越高 因此 在各个阶段都要进行严格的评审 以便尽早发现 进而尽早改正错误 3 21 2020 20 1 概述 软件工程的基本原则 3 采用现代化程序设计技术如何提高软件产品的生产效率 一直是软件界人士追求的目标 采用先进的程序设计技术不仅可以提高软件的开发效率 还可以提高软件的维护效率 4 实行严格的产品控制在软件开发过程中不应随意修改需求 但在某些特殊情况下 也要对原需求进行适当的修改 任何修改的内容必须记录并入档备案 3 21 2020 21 1 概述 软件工程的基本原则 5 编制软件文档1 作为开发人员在一定阶段内承担任务的工作结果和结束标志 2 向管理人员提供软件开发工作的进展情况 把软件开发过程中一些 不可见 的事物转换程 可见 的文字资料 以便管理人员在各个阶段检查开发计划的实施情况 使之能够对工作结果进行清晰的审计 3 21 2020 22 1 概述 软件工程的基本原则 5 编制软件文档3 记录开发过程中的技术信息 以便协调工作 并作为下一阶段工作的基础 4 提供有关软件维护 培训 流通和运行的信息有助于管理人员 开发人员 操作人员和用户之间的相互了解 5 向未来用户介绍软件的功能和能力 以判断该软那是否适合使用者的需要 3 21 2020 23 1 概述 软件工程的基本原则 6 开发小组的人员应该少而精实践证明 一方面 素质高的开发人员的开发效率高 可能高几倍甚至几十倍 而错误明显少 另一方面 开发小组人员越多 管理 协调的难度也就越大 成本代价也急剧增加 3 21 2020 24 1 概述 软件工程的基本目标软件工程的目标是 在给定成本 进度的前提下 开发出具有可修改性 有效性 可靠性 可理解性 可维护性 可重用性 可适用性 可移植性 可追踪性 可互操作性 10性 和满足用户需求的软件产品 追求这些目标有助于提高软件产品的质量和开发效率 减少维护的困难 3 21 2020 25 1 概述 软件工程的基本目标 a 可修改性 允许对系统进行修改而不增加原系统的复杂性 它支持软件的调试和维护 是一个难以达到的目标 b 有效性 软件系统能最有效地利用计算机时间和空间资源 很多场合 在追求时间有效性和空间有效性时会发生矛盾 这时不得不牺牲事件有效性换取空间有效性或牺牲空间有效性换取事件有效性 事件 空间折中是经常采用的技巧 c 可靠性 防止因概念 设计和结构等方面的不完善造成的软件系统失效 具有挽回因操作不当造成软件系统失效的能力 d 可理解性 系统具有清晰的结构 能直接反映问题的需求 可理解性有助于控制软件复杂性 并支持软件的维护 移植或重用 e 可维护性 软件交互使用后 能够对它进行修改 以改正潜在的错误 改进性能和其他属性 使软件产品适应环境的变化等 可维护性使软件工程中一项十分重要的目标 3 21 2020 26 1 概述 软件工程的基本目标 f 可重用性 把概念或功能相对独立的一个或一组相关模块定义为一个软部件 可组装在系统的任何位置 降低工作量 g 可适用性 软件在不同的系统约束条件下 使用户需求得到满足的难易程度 h 可移植性 及软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度 i 可追踪性 根据软件需求对软件设计 程序进行正向追踪 或根据软件设计 程序对软件需求进行逆向追踪的能力 j 可互操作性 多个软件元素相互通信并协同完成任务的能力 3 21 2020 27 2 软件生存期和软件开发模型 软件生存期和软件开发模型软件生存期如同任何其他事物一样 软件也有一个孕育 诞生 成长 成熟 衰亡的生存过程 一般称之为计算机软件的生存期 一般说来 软件生命期由软件定义 软件开发和软件维护三个时期组成 每个时期又可进一步划分成若干个阶段 3 21 2020 28 2 软件生存期和软件开发模型 软件生存期 1 软件定义时期1 问题定义 这是软件生存期的第一个阶段 主要任务是弄清用户要计算机解决的问题是什么 2 可行性研究 任务是为前一阶段提出的问题寻求一种或数种在技术上可行 且在经济上有较高效益的解决方案 3 21 2020 29 2 软件生存期和软件开发模型 软件生存期 2 软件开发时期1 需求分析 弄清用户对软件系统的全部需求 主要是确定目标系统必须具备哪些功能 2 总体设计 概要设计 设计软件的结构 即确定程序由哪些模块组成以及模块间的关系 3 详细设计 针对单个模块的设计 4 编码 按照选定的语言 把模块的过程性描述翻译为源程序 5 测试 通过各种类型的测试 及相应的调试 使软件达到预定的要求 3 21 2020 30 软件开发模型 如何按时间组织软件开发 软件开发包括 需求分析 总体设计 概要设计 详细设计编码 测试 2 软件生存期和软件开发模型 3 21 2020 31 软件开发模型 生命型模型的优点 每个阶段的工作结果用书面形式描述出来 使得 不可见 的软件变成了 可见 的文档资料 使得开发过程分阶段按步骤进行 以交付某种特定规格的文档作为标志某个阶段完成的里程碑 2 软件生存期和软件开发模型 3 21 2020 32 2020 3 21 33 1 瀑布模型 计划期 开发期 运行期 瀑布模型 将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作 形如瀑布流水 最终得到软件产品 2020 3 21 34 这是最早存在的开发模型 并且现在使用的也比较多 优点 a 强调开发的阶段性 b 强调早期计划及需求调查 c 强调产品测试 缺点 a 依赖于早期进行的唯一一次需求调查 不能适应需求的变化 b 由于是单一流程 开发中的经验教训不能反馈应用于本产品的过程 c 风险往往迟至后期的开发阶段才显露 因而失去及早纠正的机会 1 瀑布模型 2020 3 21 35 2 螺旋模型 四个象限分别表示四个方面的内容 2020 3 21 36 大型软件开发采用 2 螺旋模型 优点 a 强调严格的全过程风险管理 b 强调各开发阶段的质量 c 提供机会检讨项目是否有价值继续下去 缺点 a 引入非常严格的风险识别 风险分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶艺中级知识考试题库及答案
- 相遇问题试讲题目及答案
- 2025年九年级数学秋季开学摸底考(江苏专用)含答案
- 2025年G1工业锅炉司炉证考试题库及答案
- 2025年5月计算机文化基础模拟考试题与答案
- 2025物业服务合同管理规范范本
- 2025年4月肿瘤专科练习题库(含参考答案)
- 2025年4月基础医学概论模拟习题(含参考答案)
- 2025-2026学年七年级语文上册第五单元检测培优卷( 含答案)
- 2025年沪教版八年级英语上册预习Unit1【含答案解析】
- 施工项目部会议管理制度
- 欢迎一年级新生入学课件
- 译林版七年级上册英语阅读理解专项练习题100篇含答案
- 职业技术学院《汽车维修接待》课程思政标准
- 夫妻婚内财产协议书(2024版)
- 定制家具工厂外包合同模板
- 污水处理厂风险清单
- (正式版)JTT 1495-2024 公路水运危险性较大工程安全专项施工方案审查规程
- 19R505-19G540室外管道钢结构架空综合管廊敷设
- 机械制造基础说课市公开课一等奖省赛课微课金奖课件
- 智慧建筑评价标准
评论
0/150
提交评论