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

下载本文档

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

文档简介

1、2022-5-121软软 件件 工工 程程Software Engineering主讲:刘宏主讲:刘宏华中科技大学计算机学院医学图像信息研究中心华中科技大学计算机学院医学图像信息研究中心http:/ 2022-5-122教教 材材软软 件件 工工 程程张海藩张海藩 人民邮电出版社人民邮电出版社2022-5-123 2022-5-124参考书目参考书目实用软件工程实用软件工程 赵池龙赵池龙 电子工业出版社电子工业出版社 软件工程软件工程 -实践者的研究方法实践者的研究方法 (英文版(英文版 第四版)第四版)Roger S. Pressman 机械工业机械工业出版社出版社2022-5-125软件工

2、程软件工程课程介绍课程介绍课课 时:时: 上课课时上课课时2424,上机课时,上机课时1616,共,共4040学时学时上课时间:上课时间: 周日:周日:1 14 4,(,(6 6次次: 5: 51010周)周)C5-120C5-120上机安排:上机安排: 周日:周日:9-12, 9-12, (4 4次次: 7- 10: 7- 10周)周)N1-804N1-804考核形式:考核形式: 平时成绩试验报告平时作业(平时成绩试验报告平时作业(3030) 期末考试(期末考试(7070)课程名称:课程名称: 软件工程软件工程2022-5-126目的目的掌握软件工程的概念和基本原理掌握软件工程的概念和基本原

3、理了解并深刻体验软件工程各阶段(从软了解并深刻体验软件工程各阶段(从软件的定义、开发到维护)的主要工作件的定义、开发到维护)的主要工作2022-5-127主要内容(教材前五篇)主要内容(教材前五篇)软件工程与软件过程软件工程与软件过程 (2-4)l软件工程软件工程l软件过程软件过程传统方法学传统方法学 (16-18)l结构化分析结构化分析l结构化设计结构化设计l结构化实现结构化实现2022-5-128结构化实现结构化实现 (4-6)l软件编码软件编码l软件测试技术软件测试技术l调试与软件可靠性估计调试与软件可靠性估计习题讲解、总结复习习题讲解、总结复习 (2)上机实践并完成文档上机实践并完成文

4、档 (16)主要内容(教材前四篇)主要内容(教材前四篇)2022-5-129课课 程程 基基 础础数据结构数据结构程序设计方法学程序设计方法学已经开发过的系统已经开发过的系统互动性互动性发邮件发邮件2022-5-1210第一章第一章 软件危机与软件工程软件危机与软件工程2022-5-1211文档的重要性文档的重要性开发过程中文档之间开发过程中文档之间的关系示意图的关系示意图目标程序目标程序源程序源程序软件合同软件合同(软件任务书)(软件任务书)详细设计说明书详细设计说明书概要设计说明书概要设计说明书需求规格说明需求规格说明书书用户需求报告用户需求报告2022-5-1212软件的特点软件的特点2

5、022-5-1213软件的特点软件的特点2022-5-1214软件的特点软件的特点2022-5-1215软件的发展历程(软件的发展历程(P1-2P1-2)程序设计阶段(上世纪程序设计阶段(上世纪50-60年代中)年代中)程序系统阶段(上世纪程序系统阶段(上世纪60中中-70年代中)年代中)软件工程阶段(上世纪软件工程阶段(上世纪70年代中年代中- ) 软件软件 = = 程序;程序; 规模小规模小 无计划、无管理无计划、无管理 个体手工劳动;个体手工劳动; 机器机器/ /汇编语言;程序难读、难懂、难汇编语言;程序难读、难懂、难 修改修改 软件软件 = = 程序程序 + + 说明书说明书 作坊式的

6、小集团合作生产;高级语言;软件应用领域扩作坊式的小集团合作生产;高级语言;软件应用领域扩 大,软件规模扩大,软件难以维护;上世纪大,软件规模扩大,软件难以维护;上世纪6060年代末年代末 开始出现软件危机开始出现软件危机2022-5-1216软件工程阶段(上世纪软件工程阶段(上世纪70年代中年代中- )l软件软件 = 程序程序 + 数据数据 + 文档文档l70-80年代年代:程序:程序 = 算法算法 + 数据结构;数据结构; 结构化思想的提出结构化思想的提出l80年代年代:OO技术,技术,AI软件,关系数据库的软件,关系数据库的 C/S模式模式l90年代年代:网络,:网络,Internet,J

7、ava,分布对象,分布对象 技术,组件技术技术,组件技术l未完全摆脱软件危机未完全摆脱软件危机2022-5-1217软件危机的含义(软件危机的含义(P2P2)软件危机(软件危机(Software Crisis)l指在开发和维护计算机软件的过程中所遇到的一指在开发和维护计算机软件的过程中所遇到的一系列严重问题系列严重问题。主要包括两方面的问题:主要包括两方面的问题:l如何开发如何开发软件,以满足对软件日益增长的需求软件,以满足对软件日益增长的需求l如何维护如何维护数量不断膨胀的已有软件数量不断膨胀的已有软件2022-5-1218产生软件危机的原因(产生软件危机的原因(P3-4P3-4)与软件本身

8、的特点有关与软件本身的特点有关与软件开发与维护的方法不正确有关与软件开发与维护的方法不正确有关 软件是逻辑产品,而非物理产品。因此,管理和控制软件是逻辑产品,而非物理产品。因此,管理和控制 软件开发过程相当困难软件开发过程相当困难 软件开发和硬件开发不同,更依赖于人因素软件开发和硬件开发不同,更依赖于人因素 (包括:软件人员的业务素质、组织、合作和管理)(包括:软件人员的业务素质、组织、合作和管理) 软件不存在用坏、磨损、消耗等问题,一旦发现错误,软件不存在用坏、磨损、消耗等问题,一旦发现错误, 维护工作非常困难维护工作非常困难 忽视软件需求分析的重要性,认为软件软件开发就是忽视软件需求分析的

9、重要性,认为软件软件开发就是 写程序并使之运行,轻视软件维护等写程序并使之运行,轻视软件维护等2022-5-1219经费预算经常突破,完成时间一再拖延经费预算经常突破,完成时间一再拖延(软件开发(软件开发无计划性,工作量、开发的难度和进度估计不准)无计划性,工作量、开发的难度和进度估计不准)开发的软件不能满足用户要求开发的软件不能满足用户要求(闭门造车)(闭门造车)开发的软件可靠性差开发的软件可靠性差(无质量保证措施,测试不充分)(无质量保证措施,测试不充分)开发的软件可维护性差开发的软件可维护性差(无统一规范,无完整文档)(无统一规范,无完整文档)软件成本逐年软件成本逐年(美国在(美国在85

10、年软件成本大约已占计算机年软件成本大约已占计算机系统总成本的系统总成本的90)软件可移植性、重用性差软件可移植性、重用性差软件危机的表现(软件危机的表现(P3P3)2022-5-1220软件危机的软件危机的例子例子IBM 360操作系统l开发时间:1963-1966年l投入人力:5000人/年l代 码 量:近100万行l新 版 本:从上一版本中找出1000个错误修订而成l结 果:软件质量非常糟糕,软件几乎无法维护l负责人总结:“正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷的越深,最后无法逃脱灭顶的灾难,程序设计工作就像这样一个泥潭,一批批程序员被泊在泥潭中拼命挣扎,谁也没有料到问题竟

11、会陷入这样的困境”。2022-5-1221消除软件危机的途径消除软件危机的途径(P5)首先应对软件有一个正确的认识l软件软件 程序程序 数据数据 文档文档(三者概念看教材P5)用“软件工程”的思想来开发工程项目从危机的表现和产生原因,人们经过不断实践和总结,最后探索出:用现代工程学的概念、原理、技术和方法进行软件开发、管理和维护工作是摆脱软件危机的一个主要出路。“软件工程”就这样应需而生了。2022-5-1222解决问题的想法解决问题的想法软件工程 Better management Different team organizations Better languages & too

12、ls Uniform coding conventions 必须意识到:必须意识到:“软件软件”不等于编程,它有自己的不等于编程,它有自己的生生命周期命周期 (life cycle)。大型软件系统的开发与其它工程项。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发有相同道理。目如建造桥梁、制造飞机、轮船等的开发有相同道理。“软件工程软件工程”(Software Engineering)NATO Conference , Garmisch , Germany , 1968.解决问题的想法:解决问题的想法:2022-5-1223什么是软件工程什么是软件工程(P6)提出l1968年

13、,Fritz Bauer正式提出SE概念定义l软件工程是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。2022-5-1224软件工程定义软件工程定义2022-5-1225软件工程的基本原理软件工程的基本原理(P6-8)1.用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理六类重要计划:项目概要、里程碑、项目控制、六类重要计划:项目概要、里程碑、项目控制、 产品控制、验证、运行维护产品控制、验证、运行维护2.坚持进行阶段评审(坚

14、持进行阶段评审(必须遵循的重要原则)3.实行严格的产品控制(基线配置管理)实行严格的产品控制(基线配置管理)4.采用现代程序设计技术采用现代程序设计技术5.结果应能清楚地审查结果应能清楚地审查6.开发小组的人员应少而精开发小组的人员应少而精7.承认不断改进软件工程实践的必要性,承认不断改进软件工程实践的必要性,是确保软件产品质是确保软件产品质量和开发效率的重要因素量和开发效率的重要因素2022-5-1226二八定律二八定律1.2 软件工程软件工程2022-5-1227软件工程三要素软件工程三要素方法方法l为软件开发提供“如何做”的技术。包括多方面的任务,如项目计划与估算、软件系统需求分析、数据

15、结构、系统总体结构的设计、算法的设计、编码、测试以及维护等。l常采用某种特殊的语言或图形的表达方法及一套质量保证标准工具工具 (如,Rational Rose)l为软件工程方法提供了自动的或半自动的软件支撑环境。过程过程l将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。l过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各阶段完成的里程碑(基线)2022-5-1228面向过程分析面向过程分析面向过程设计面向过程设计面向过程编程面向过程编程面向过程测试面向过程测试面向过程维护面向过程维护面向过程管理面向过程管理结构化分析结构化分析

16、结构化设计结构化设计结构化程编程结构化程编程结构化测试结构化测试结构化维护结构化维护面向功能分析面向功能分析面向功能设计面向功能设计面向功能编程面向功能编程面向功能测试面向功能测试面向功能维护面向功能维护1 1、u程序的执行过程程序的执行过程完全由程序控制完全由程序控制,不由用户控制,不由用户控制u简单易学实用,但维护困难,自顶向下,逐步求精简单易学实用,但维护困难,自顶向下,逐步求精u适合开发适合开发大型工程计算、实时数据跟踪处理、各种大型工程计算、实时数据跟踪处理、各种自动化控制系统、系统软件自动化控制系统、系统软件u编程语言为高级语言编程语言为高级语言软件工程的方法(传统程序设计方法学方

17、法)软件工程的方法(传统程序设计方法学方法)1.2 软件工程软件工程2022-5-1229软件工程的方法软件工程的方法 (面向对象的设计方法)(面向对象的设计方法)2 2、u由由ROSEROSE所支持的所支持的UML方法方法u完全由用户交互控制程序的执行过程,完全由用户交互控制程序的执行过程,不由程序员不由程序员控制控制u容易维护,编程效率高,但复杂繁琐,难学难懂容易维护,编程效率高,但复杂繁琐,难学难懂u适合开发互联网时代的系统软件和应用软件适合开发互联网时代的系统软件和应用软件u编程语言为编程语言为JavaJava、C+C+、PowerBuilderPowerBuilder、DelphiD

18、elphi、VBVB等等面向对象需求分析面向对象需求分析面向对象设计面向对象设计面向对象编程面向对象编程面向对象测试面向对象测试面向对象维护面向对象维护面向对象管理面向对象管理Object-Oriented = Object + Classification + Inheritance+Communication with Message1.2 软件工程软件工程2022-5-1230面向对象方法学面向对象方法学(OOM)对象对象 (object) 类类 (class) 继承继承 (inheritance) 消息通信消息通信 ( Communication with MessageCommuni

19、cation with Message)对象对象Object = 数据Attribute + 操作Method四个要点:四个要点:1.2 软件工程OOM = Object + Class + Inheritance + Communication with Messages2022-5-1231杭杭 州州北北 京京Post-officeMessageSend by method对象对象ObjectObject= 数据数据AttributeAttributes: location; employee; + 操作操作MethodMethods: send; sell; 注意:注意:Object内部

20、的内部的attributes不允许外部用户直接改动,只有当它不允许外部用户直接改动,只有当它提供了相应的服务提供了相应的服务method时,用户才能通过发送时,用户才能通过发送message来来提请它执行。提请它执行。我想把邮局搬到我想把邮局搬到我家门口,多加几个我家门口,多加几个邮递员,邮递员,24小时都开门小时都开门对不起,对不起,本邮局不提供本邮局不提供此类服务此类服务唉,那就先送束花吧唉,那就先送束花吧 Post_office.Send (request, payment)面向对象方法学概述面向对象方法学概述2022-5-1232我国软件业的现状我国软件业的现状2001年我国软件销售总额963亿美元,软件企业约5000家,从业人员29万。2001年我国软件的出口额仅为7.2亿美元。 2001年印度软件销售总额1023亿美元,软件企业约6000家,从业人员40万。而2001年印度软件出口额为778亿美元,已经占到了印度全部出口总额的10.5。2022-5-1233我国软件业的现状我国软件业的现状到2008年,印度软件业的产值将达到870亿美元左右,其中出口占50O亿美元。 中国软件业产值不到国民生产总值的1,成规模具国际竞争力的软件公司凤毛麟角,而软件出口还不足印度的10%。 2022-5-1234 他山

温馨提示

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

评论

0/150

提交评论