软件工程第一章课件_第1页
软件工程第一章课件_第2页
软件工程第一章课件_第3页
软件工程第一章课件_第4页
软件工程第一章课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、2教材教材n教材教材l软件工程导论软件工程导论第五版第五版 张海藩编著张海藩编著 清华大清华大学出版社学出版社n参考教材参考教材l软件工程软件工程第八版第八版 (英)(英)ian sommerville 著著 程程成译成译 机械工业出版社机械工业出版社l软件工程软件工程 实践者的研究方法实践者的研究方法第六版第六版 (美)(美)roger s. pressman著著 郑人杰译郑人杰译 机械工业出版社机械工业出版社l实用软件工程实用软件工程 郑人杰编著郑人杰编著 清华大学出版社清华大学出版社3教学与考核教学与考核n必修考试课,共必修考试课,共48学时,其中理论学时,其中理论32学学时,实验时,实

2、验16学时学时n平时(作业、考勤)平时(作业、考勤)20%,实验,实验10%,试卷试卷70%n授课授课 + 课程设计课程设计 2周周4第一个课堂作业第一个课堂作业你的打算:你的打算:l想学到什么知识?想找工作、考研?想过四六想学到什么知识?想找工作、考研?想过四六级?还是想混日子?级?还是想混日子?l你准备找一个什么样的工作?该工作岗位可能你准备找一个什么样的工作?该工作岗位可能需要什么技能?需要什么技能?l你能分清机关、事业和企业性质的单位吗?你能分清机关、事业和企业性质的单位吗?l你估计一下软件工程这门课能教会你什么?你估计一下软件工程这门课能教会你什么?l如果让你寻找一个软件项目你会找什

3、么项目?如果让你寻找一个软件项目你会找什么项目?l你和别人合作可能有什么障碍你和别人合作可能有什么障碍?5例例: : 美国美国ibm公司在公司在1963年至年至1966年开发的年开发的ibm360机的操作系统。这一项目花了机的操作系统。这一项目花了5000人一人一年的工作量,最多时有年的工作量,最多时有1000人投入开发工作,人投入开发工作,写出了近写出了近100万行源程序。万行源程序。.据统计,这个据统计,这个操作系统每次发行的新版本都是从前一版本中操作系统每次发行的新版本都是从前一版本中找出找出1000个程序错误而修正的结果个程序错误而修正的结果. 典型案例典型案例16 这个项目的负责人这

4、个项目的负责人f. d. brooksf. d. brooks事后总结事后总结了他在组织开发过程中的沉痛教训时说:了他在组织开发过程中的沉痛教训时说:“.正像一只逃亡的野兽落到泥潭中做垂正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。脱灭顶的灾难。.程序设计工作正像这样程序设计工作正像这样一个泥潭,一个泥潭,.一批批程序员被迫在泥潭中一批批程序员被迫在泥潭中拼命挣扎,拼命挣扎,.谁也没有料到问题竟会陷入谁也没有料到问题竟会陷入这样的困境这样的困境.”.”。ibm360ibm360操作系统的历史操作系统的历史教训成为软

5、件开发项目的典型事例为人们所记教训成为软件开发项目的典型事例为人们所记取。取。典型案例典型案例171 人员人员n挫伤人员的积极性挫伤人员的积极性n人员素质低人员素质低n对有问题的员工失控对有问题的员工失控n个人英雄主义个人英雄主义n项目后期加入人员项目后期加入人员n办公环境拥挤嘈杂办公环境拥挤嘈杂n开发人员与客户之间产生摩擦开发人员与客户之间产生摩擦n不现实的预期不现实的预期n缺乏有效的项目支持缺乏有效的项目支持n缺乏各种角色的齐心协力缺乏各种角色的齐心协力n缺乏用户介入缺乏用户介入n政治高于物质政治高于物质n充满想象充满想象典型错误典型错误82 过程过程n过于乐观的计划过于乐观的计划n缺乏足

6、够的风险管理缺乏足够的风险管理n承包人导致的失败承包人导致的失败n缺乏计划缺乏计划n在压力下放弃计划在压力下放弃计划n在模糊的项目前期浪费时间在模糊的项目前期浪费时间n前期活动不合要求前期活动不合要求n设计低劣设计低劣n缺少质量保证措施缺少质量保证措施n缺少管理控制缺少管理控制n太早或过于频繁的集成太早或过于频繁的集成n项目估算是遗漏了必要的任务项目估算是遗漏了必要的任务n追赶计划追赶计划n鲁莽编码鲁莽编码典型错误典型错误93 产品产品n需求的镀金需求的镀金n功能蔓延功能蔓延n开发人员镀金开发人员镀金n又推又拉的交易又推又拉的交易n研究导向的开发研究导向的开发典型错误典型错误104 技术技术n

7、 使用不成熟的技术使用不成熟的技术n 使用不适合的技术使用不适合的技术n 不恰当的使用不恰当的使用典型错误典型错误 处在十字路口的中国软件产业n 主权大国必须建立基于自主技术的、 完整的软件产业体系。 软件本国提供率:中国1/3左右,美国97%n “印度模式”还是“中国模式”n 软件人才结构不合理结构不合理,缺乏缺乏中中高级高级软软 件人才件人才,软件人员缺乏软件工程化的概念。,软件人员缺乏软件工程化的概念。 “软件工程”课程 “ “软件工程软件工程”课程教学与实践课程教学与实践的目标的目标u 转变对软件的认识: 上升 程序 系统u 转变思维定式: 上升 程序员 系统工程师 (系统分析员)n

8、工程化训练系统分析员的地位系统分析员的地位用户用户分析员分析员程序员程序员软件软件工程与一般工程的差异工程与一般工程的差异u软件是逻辑软件是逻辑产品产品而不是而不是实物实物产品产品u软件的功能依赖于硬件和软件的运行环境以及人软件的功能依赖于硬件和软件的运行环境以及人们对它的操作们对它的操作u软件设计的复杂性软件设计的复杂性u软件特征:功能的多样性软件特征:功能的多样性 实现的多样性实现的多样性 能见度低能见度低 软件结构合理性差软件结构合理性差u智力密集及知识产权保护智力密集及知识产权保护软件工程知识结构“一个好的工业,应有一套一个好的工业,应有一套良好的标准来配套良好的标准来配套”软件的工业

9、化生产过程应具备的特点:n明确的工作步骤n详细具体的规范化文档n明确的质量评价标准软件工程技术的明显特点软件工程技术的明显特点u 强调规范化u 强调文档化19图书管理系统202122应提交的文档n软件需求规格说明书n软件设计规格说明书n用户安装及使用手册n确认测试计划n程序测试计划n演示程序23第第1章章 软件工程学概述软件工程学概述evolution of software 早期 第二阶段 第三阶段 第四阶段 面向批处理 多用户 分布式系统 强大的桌面系统 有限的分布 实时 嵌入“智能” 面向对象技术 自定义软件 数据库 低成本硬件 专家系统统 软件产品 消费者的影响消费者的影响 人工神经网

10、络 并行计算 网络计算机195019601970198019902000 软件技术面临的问题n 复杂性n 生产率 n例:windows95有1000万行代码 windows2000有5000万行代码exchange2000和windows2000开发人员结构exchange2000windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人 软件危机的主要特征n 软件开发周期大大超过规定 日期;n 软件开发成本严重超标;n 软件质量难于保证。改正一个问题需付出的代价改正一个问题需付出的代价需求分析结构设计详细设计编码集成测试系统测试现场改正一个问题的估

11、计费用改正一个问题估计的工作量20200200010005.02.50.050.5(美元)(人天) 成功的标准:成功的标准:s 用户在s 用户可很容易做完要做的事 失败的根本原因:失败的根本原因:开发人员写出的东西达不到用户要求(人的问题.技术问题)301.1 软件危机软件危机n“软件危机” 成为计算机系统发展瓶颈。n为了更有效地开发与维护软件,消除软件危机,从而形成了一门新兴的工程学科软件工程学。n1968年由nato (北大西洋公约组织)在德国garmish召开的学术会议上,feitz bauer首先提出了“软件工程”概念。31软件危机典型表现软件危机典型表现32软件危机典型表现软件危机典

12、型表现33产生软件危机的原因产生软件危机的原因34软件危机的原因软件危机的原因35消除软件危机的途径消除软件危机的途径n彻底消除彻底消除 “软件就是程序软件就是程序”的错误观念。的错误观念。n一个软件必须由一个完整的配置组成,软件是一个软件必须由一个完整的配置组成,软件是程序、数据及相关文档的完整集合。程序、数据及相关文档的完整集合。n使用在实践中总结出来的开发软件的成功的技使用在实践中总结出来的开发软件的成功的技术和方法。术和方法。n应该开发和使用更好的软件工具。应该开发和使用更好的软件工具。n组织良好、管理严密、各类人员协同配合、共组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

13、同完成的工程项目。361.2 软件工程软件工程 软件工程的定义软件工程的定义概括地说,软件工程是指导计算机软件开发和概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。量的软件并有效地维护它,这就是软件工程。软件工程的定义fritz bauer在n

14、ato会议上给出的定义: “软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。” 软件工程的定义 ieee【iee83iee83】软件工程的定义ieee【iee93iee93】给出了一个更加综合的定义: “将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。” 软件工程的定义 软件工程是一门交叉学科软件工程的主要研究内容软件工程的主要研究内容u软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 u软件工程管理:软件管理学 软件经济学 软件心理学42软件工程的本质特征软件工程的本质特征43软件

15、工程的基本原理软件工程的基本原理44软件工程的基本原理软件工程的基本原理软件工程方法学三个要素软件工程方法学三个要素工具工具方法方法过程过程质量焦点质量焦点software engineering layers461. 传统方法学传统方法学472. 面向对象方法学面向对象方法学481.3 软件生命周期软件生命周期49各阶段基本任务各阶段基本任务50各阶段基本任务各阶段基本任务511.4 软件过程软件过程521.4.1 瀑布模型瀑布模型53瀑布模型特点瀑布模型特点54改进的瀑布模型改进的瀑布模型551.4.2 快速原型模型快速原型模型56571.4.3 增量模型(渐增模型)增量模型(渐增模型)5

16、8增量模型增量模型159增量模型增量模型2601.4.4 螺旋模型螺旋模型61简化的螺旋模型简化的螺旋模型62完整的螺旋模型完整的螺旋模型1.4.5 1.4.5 喷泉模型喷泉模型进一步开发进一步开发实现和集成阶段实现和集成阶段运行状态运行状态实现阶段实现阶段面向对象设计阶段面向对象设计阶段计划阶段计划阶段面向对象分析阶段面向对象分析阶段需求阶段需求阶段维护期维护期喷泉模型特点喷泉模型特点 主要用于支持面向对象开发过程体现了软件创建所固有的迭代和无间隙的特征。651.4.6 rational统一过程统一过程 1. 最佳实践最佳实践n迭代式开发迭代式开发n管理需求管理需求n基于构件的体系结构基于构

17、件的体系结构n可视化建模可视化建模n验证软件质量验证软件质量n控制软件变更控制软件变更2. rup软件开发生命周期软件开发生命周期66rup软件开发生命周期软件开发生命周期671.4.7敏捷过程与极限编程n敏捷过程敏捷过程轻量级软件工程轻量级软件工程l个体和交互胜过过程和工具个体和交互胜过过程和工具l可工作的软件胜过面面俱到的文档可工作的软件胜过面面俱到的文档l客户合作胜过合同谈判客户合作胜过合同谈判l相应变化胜过遵循计划相应变化胜过遵循计划68极限编程n 有效实践有效实践l客户是开发团队的成员客户是开发团队的成员l短交付周期短交付周期l验收测试验收测试l结对编程结对编程l测试驱动开发测试驱动开发l集体所有集体所有l持续集成持续集成l可持续的开发速度可持续的开发速度l及时调整计划及时调整计划l简单的设计简单的设计l重构重构l使用隐喻使用隐喻69xp项目的整体开发过程70xp迭代开发过程711.4.8 微软过程n微软过程准则微软过程准则 n微软软件生命周期微软软件生命周期72微软过程的生命周期模型微软过程的生命周期模型 可重用部件组装模型使用重用技术的软件工程模型构件( (components) ): :可重用的软件成份可复用性(reusability) (可重用性)集成化软件开发环境(isee)可重用部件

温馨提示

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

评论

0/150

提交评论