




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程概述 2020 1 5 2 2 1软件工程概述 要点 软件危机软件工程定义软件工程的七条基本原理 软件危机的概念 Page 3 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 软件危机产生 个体化软件环境早期 程序通常针对又为一个特定硬件和目的而编制 软件的通用性很有限的 多数使用该软件的个人或机构研制 规模小 个体化的软件环境 使得软件开发没有什么系统的方法可以遵循 软件设计是在某个人的头脑中完成的一个隐藏的过程 除了源代码往往没有软件说明书等文档 案例 我国早期小软件公司的核心人员的决定公司的命运 Page 4 软件危机产生 软件作坊60年代中期到70年代中期 出现了 软件作坊 专职应别人的需求写软件 急剧膨胀随着计算机应用的日益普及 软件的数量急剧膨胀 软件需求日趋复杂 用户有了新的需求是必须相应地修改程序 硬件或操作系统更新时 通常需要修改程序以适应新的环境 上述种种维护工作以令人吃惊的比例耗费资源 更严重的是许多程序的个体化特性使得他们维护的难度越来越大 最终成为不可维护的 Page 5 软件危机产生 软件的规模越来越庞大复杂度越来越高交付时间相对短开发成本令人吃惊地高失败的软件开发项目却屡见不鲜 软件危机 开始了 Page 6 2020 1 5 7 美国IBM公司在1963年至1966年开发的IBM360机的操作系统 这一项目花了5000人一年的工作量 最多时有1000人投入开发工作 写出了近100万行源程序 据统计 这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果 这个项目的负责人F D Brooks事后总结了他在组织开发过程中的沉痛教训时说 正像一只逃亡的野兽落到泥潭中做垂死的挣扎 越是挣扎 陷得越深 最后无法逃脱灭顶的灾难 程序设计工作正像这样一个泥潭 一批批程序员被迫在泥潭中拼命挣扎 谁也没有料到问题竟会陷入这样的困境 IBM360操作系统的历史教训成为软件开发项目的典型事例为人们所记取 软件危机典型案例 2020 1 5 8 软件危机表现 软件成本日益增长开发进度难以控制软件质量差软件维护困难 2020 1 5 9 软件危机表现 软件成本日益增长 20世纪50年代 软件成本在整个计算机系统成本中所占的比例为10 20 到20世纪60年代中期 软件成本在计算机系统中所占的比例已经增长到50 左右 而且 该数字还在不断的递增 下面是一组来自美国空军计算机系统的数据 1955年 软件费用约占总费用的18 1970年达到60 1975年达到72 1980年达到80 1985年达到85 左右 2020 1 5 10 软件危机表现 开发进度难以控制在软件开发过程中 用户需求变化等各种意想不到的情况层出不穷 令软件开发过程很难保证按预定的计划实现 给项目计划和论证工作带来了很大的困难 盲目增加软件开发人员并不能成比例的提高软件开发能力 相反 随着人员数量的增加 人员的组织 协调 通信 培训和管理等方面的问题将更为严重 2020 1 5 11 软件危机表现 软件质量差由于缺乏工程化思想的指导 程序员几乎总是习惯性的以自己的想法去代替用户对软件的需求 软件设计带有随意性 很多功能只是程序员的一厢情愿而已 这是造成软件令人不满意的重要因素 2020 1 5 12 软件危机表现 软件维护困难由于在软件设计和开发过程中 没有严格遵循软件开发标准 各种随意性很大 没有完整的真实反映系统状况的记录文档 给软件维护造成了巨大的困难 特别是在软件使用过程中 原来的开发人员可能因各种原因已经离开原来的开发组织 使得软件几乎不可维护 有资料表明 工业界为维护软件支付的费用占全部硬件和软件费用的40 75 2020 1 5 13 软件生产存在的常见问题 1 需求搞不清楚2 开发周期长3 成本高4 质量低 不能满足用户需要过去应用系统开发中 得到的常见的体会 一直到系统交付 才明白用户的需求是什么 甚至系统运行半年之后 才会发现真正的需求问题 即企业所运行的软件系统伴随社会的不断发展 软件需求就会不断变更 2020 1 5 14 以上的这些问题能够解决吗 问题讨论 如何克服危机 2020 1 5 15 2 1软件工程概述 要点 软件危机软件工程定义软件工程的七条基本原理 分组讨论 分组讨论4 6人一组 时间5分钟 讨论什么是 软件 什么是 工程 随机抽2名同学回答 Page 16 2020 1 5 17 软件工程 一词是来自于1968年北大西洋公约组织 NATO 在联邦德国召开的一次会议上首次提出来的 它的主要思想是 把软件当成一种产品 并要求采用工程化的原理与方法对软件进行计划 开发和维护 软件工程的目标是实现生产高质量的软件产品 软件工程定义 两类软件工程方法 传统软件工程 结构化方法 面向对象软件工程 现实世界 结构化分析结构化设计结构化编程 可执行软件系统 2020 1 5 19 2 1软件工程概述 要点 软件危机软件工程定义软件工程的七条基本原理 2020 1 5 20 软件工程的七条基本原理 自从1968年提出 软件工程 这一术语以来 研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则和信条 美国著名的软件工程专家Boehm综合这些专家的意见 并总结了TRW公司多年的软件开发经验 于1983年提出了软件工程的七条基本原理 2020 1 5 21 1 用分阶段的生命周期计划严格管理统计表明 50 以上的失败项目是由于计划不周而造成的 这条原理意味着 应该把软件生命周期分成若干阶段 并相应制定出切实可行的计划 然后严格按照计划对软件的开发和维护进行管理 Boehm认为 在整个软件生命周期中应指定并严格执行6类计划 项目概要计划里程碑计划项目控制计划产品控制计划验证计划运行维护计划 软件工程的七条基本原理 2020 1 5 22 软件工程的七条基本原理 2 坚持进行阶段评审统计结果显示 大部分错误是在编码之前造成的 大约占63 错误发现的越晚 改正它的代价就越大 3 实行严格的产品控制开发人员最痛恨的事情之一就是需求变动 但是实践告诉我们 需求的改动往往是不可避免的 这就要求采用变更控制 又叫基准配置管理 当需求变动时 其它各个阶段的文档或代码随之相应改变 以保证软件的一致性 2020 1 5 23 软件工程的七条基本原理 4 采纳现代程序设计技术采用先进的软件开发方法 采用先进的技术即可以提高软件开发的效率 又可以减少软件维护的成本 5 结果应能清楚地审查应根据软件开发的总目标及完成期限 尽量明确地规定开发小组的责任和产品标准 使所得到的标准能清楚地审查 2020 1 5 24 软件工程的七条基本原理 6 开发小组的人员应少而精开发人员的素质和数量是影响软件质量和开发效率的重要因素 应该少而精 这一条基于两点原因 高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍 开发工作中犯的错误也要少的多 当开发小组为N人时 最大的交流通道数为N N 1 2 可见随着人数N的增大 交流通道数将急剧增大 2020 1 5 25 软件工程的七条基本原理 7 承认不断改进软件工程实践的必要性遵从上述六条基本原理 并不能保证赶上技术不断前进发展的步伐 因此 Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理 根据这条原理 不仅要积极采纳新的软件开发技术 还要注意不断总结经验 收集进度和消耗等历史数据 进行出错类型和问题报告统计 这些历史数据既可以用来评估新的软件技术的效果 也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术 2020 1 5 26 软件工程知识体系 SWEBOK 了解SoftWareEngineeringBodyofKnowledge 2020 1 5 27 2020 1 5 28 软件工程框架 实现生产高质量的软件产品 选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视开发过程管理 2020 1 5 29 软件工程活动 1 问题定义主要是系统分析员和用户参与明确要解决的问题 形成经双方充分讨论通过的确认文档 问题定义 可行性研究 需求分析 设计和实现 支持 确认 2 可行性研究研究问题定义阶段的问题是否有解决办法 但不具体的解决问题 并进行成本和效益分析 结果是工程是否继续进行的重要依据 2020 1 5 30 软件工程活动 3 需求分析分析为了要解决问题 目标系统必需具备的功能 系统分析员和用户充分交流讨论后形成用户确认的系统逻辑模型 数据流图 数据字典算法等 注意 关于程序员和用户在需求分析中阶段确认的重要性 问题定义 可行性研究 需求分析 设计和实现 支持 确认 2020 1 5 31 软件工程活动 问题定义 可行性研究 需求分析 设计和实现 支持 确认 4 设计总体设计 从概括的层面探讨如何解决问题 抽象概括的提出目标系统的解决方案 详细设计 把解决方案具体化 设计出详细需求规格说明书 5 实现根据需求规格说明书编写程序解决具体的问题 2020 1 5 32 软件工程活动 问题定义 可行性研究 需求分析 设计和实现 支持 确认 6 确认测试目标系统是否达到预定的要求 单元测试集成测试验收测试 7 支持软件的维护 改正性维护 适应性维护 完善性维护 预防性维护 2020 1 5 33 软件工程原则 选取适宜的开发模型采用合适的设计方法提供高质量工程支持重视开发过程管理 2020 1 5 34 软件工程模型 对软件工程活动中的各个活动都必需进行管理 软件项目管理贯穿于软件工程的演化过程 2020 1 5 35 GB8567 88计算机软件产品开发文件编制指南 可行性研究报告 GB8567 88 doc开发进度月报 GB8567 88 doc操作手册 GB8567 88 doc数据库设计说明书 GB8567 88 doc数据要求说明书 GB856T 88 doc文件给制实施规定的实例 GB8567 88 doc概要设计说明书 GB8567 88 doc模块开发卷宗 GB8567 88 doc测试分析报告 GB8567 88 doc测试计划 GB8567 88 doc用户手册 GB8567 88 doc详细设计说明书 GB8567 88 doc软件需求说明书 GB856T 88 doc项目开发总结报告 GB8567 88 doc项目开发计划 GB856T 88 doc 软件工程与管理 Page 36 36 软件项目开发的任务按照预定的进度 成本和质量 开发出满足用户要求的软件产品用户需求确保软件质量成本限制进度限制 软件工程与管理 Page 37 软件工程的解决方法 运用工程化的手段进行软件开发强调过程抽象文档化规范化工具支持 软件工程与管理 Page 38 项目组由许多承担不同角色 承担不同任务的人员组成 这些人员构成了一个团体项目经理 需求分析人员 设计人员 程序员 测试人员 软件开发涉及到许多相互关联的活动 这些活动的实施直接关系到软件项目的成本和进度需求分析 软件设计 编码 测试 在软件项目实施过程中会产生大量软件产品 这些软件产品相互关联 具有不同的抽象层次软件需求规格说明书 软件设计规格说明书 源程序代码 可执行代码 测试用例 软件工程与管理 Page 39 管理软件开发过程明确过程活动估算各个的工作量 成本制定计划 跟踪过程 风险控制管理软件产品有哪些产品 呈什么形式 规范文档 如何保证它们的质量 如何控制它们的变化管理软件开发人员如何组建一个好的团队 调动团队成员的积极性和激情 严明团队的纪律 促进人员之间的协调与合作 什么是软件项目管理 对软件项目开发过程中所涉及的过程 人员 产品 成本和进度等要素进行度量 分析 规划 组织和控制的过程 以确保软件项目按照预定的成本 进度 质量要求顺利完成 Page 40 软件项目管理的主要内容 Page 41 相互关联的管理要素过程管理过程 怎么做 How 人员管理人员 谁来做 Who 产品管理产品
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- xx市地下管网建设及设施更新改造工程环境影响报告书
- 中职金融基础试题及答案
- 绿色纺织新材料生产线项目实施方案
- 学校后勤仓库管理员聘用合同5篇
- 企业员工竞业禁止与商业秘密保护合同范本
- 离婚后未成年子女房产赠与监护责任及教育保障协议
- 离婚协议书范本财产分割版
- 石家庄汽车租赁公司节假日租车合同优惠政策
- 幼儿园教学教案设计:迷路原地等老师
- 全国运动会应急预案
- 视觉障碍老人护理指南
- 宠物医院建设方案(3篇)
- 2025年中学生法治素养竞赛题库及答案
- 《“高效办成一件事”2025年度第二批重点事项清单》知识解读
- 2025年飞行器设计与工程师考试试卷及答案
- 2025年三级律师试题题库及答案
- 智能化系统施工方案及技术措施
- 收费员考试题库及答案
- 计算机视觉技术 课件全套 第1-5章 计算机视觉概述-图像噪声
- 智能课件自动生成技术解析
- 2025至2030全球及中国汽车外饰件行业项目调研及市场前景预测评估报告
评论
0/150
提交评论