《软件工程实践幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程实践幻灯片.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程实践第1页,共37页,编辑于2022年,星期三课程目的n面向软件工程的工程应用n了解软件工程的基本概念n了解软件工程过程n掌握基本的软件工程技术方法n掌握基本的软件工程管理方法第2页,共37页,编辑于2022年,星期三课程安排n60学时(20周,每周3学时),20讲n参考教材:软件工程实践者的研究方法,(美)Roger S.Pressman著,第四版,黄柏素、梅宏 译,北京:机械工业出版社,1999年10月第3页,共37页,编辑于2022年,星期三课时n每周二晚上6:40开始n二号楼106多媒体教室n每节课45分钟,休息10分钟n第一节课6:40-8:00n休息15分钟(8:00-8:
2、15)n第二节课8:15-9:10第4页,共37页,编辑于2022年,星期三课程内容(旧)第一讲 软件工程原理第二讲 软件过程第三讲 结构化方法概论第四讲 需求分析第五讲 需求分析方法第六讲 软件设计第七讲 软件设计方法第八讲 软件编码和调试第九讲 软件可靠性安全性设计指南第十讲 软件测试策略 第十一讲 软件测试方法第十二讲 软件维护和软件重用第十三讲 软件项目策划第十四讲 项目控制和风险管理第十五讲 软件配置管理和需求管理第十六讲 软件质量保证和软件评审与审查第十七讲 SW-CMM介绍第十八讲 新发展热点第十九讲 复习第二十讲 考试 第5页,共37页,编辑于2022年,星期三课程内容(新)第
3、一讲 软件工程原理第二讲 软件过程第三讲 结构化方法概论第四讲 需求分析第五讲 软件设计第六讲 软件编码和调试第七讲 软件可靠性安全性设计指南第八讲 软件测试第九讲 软件维护和软件重用第十讲 项目管理概念和资质评估第十一讲 软件项目策划第十二讲 项目控制和风险管理第十三讲 配置管理和需求管理第十四讲 质量保证和评审与审查第十五讲 SW-CMM介绍第十六讲 SPI和SW-CMM评估第十七讲 A5案例第十八讲 新发展热点第十九讲 复习第二十讲 考试第6页,共37页,编辑于2022年,星期三第一讲软件工程原理第7页,共37页,编辑于2022年,星期三内容和目的n为什么要实施软件工程?n实施软件工程的
4、益处?n软件工程的基本内容?第8页,共37页,编辑于2022年,星期三计算机系统工程概念系统分析和定义硬 件软 件系统(总体)设计硬件工程软件工程第9页,共37页,编辑于2022年,星期三计算机软件n计算机软件定义(GB):n a.与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。n b.与计算机系统的操作有关的程序、规程、规则及任何与之有关的文档。第10页,共37页,编辑于2022年,星期三软件危机.n计算机硬件性能价格比和质量稳步提高n软件成本逐年上升,质量没有可靠的保证n软件已成为限制计算机系统发展的关健因素n将软件开发和维护过程中遇到的一系列严重问题统称为“
5、软件危机”n在年代后期开始认真研究解决软件危机的方法,逐步形成了新兴的计算机软件工程学第11页,共37页,编辑于2022年,星期三.软件危机n什么是软件危机?n软件危机是指在计算机软件的开发和维护中所遇到的一系列严重问题。n几乎所有软件都不同程度地存在这些问题n概括地说软件危机包含两方面问题:n如何开发软件,怎样满足对软件的日益增长的需求n如何维护数量不断膨胀的已有软件第12页,共37页,编辑于2022年,星期三软件危机主要表现对软件开发成本和进度的估计很不准确用户对“已完成的”软件不满意的现象经常发生软件产品的质量靠不住软件不可维护软件没有适当的文档资料软件成本占计算机系统总成本的比例逐年上
6、 升软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势第13页,共37页,编辑于2022年,星期三产生软件危机的原因n一方面与软件本身的特点有关n在软件运行前,软件开发过程的进展难衡量,质量难 评价,因此管理和控制软件开发过程相当困难;n在软件运行中,软件维护意味着改正或修改原来的设计,较难维 护;n软件的显著特点是规模庞大,复杂度超线性增长。要保证高质量 大型软件的开发,极端复杂困难,不仅涉及技术问题(如分析方 法、设计方法、版本控制),更重要的是必须有严格而科学的管理。n另一方面与软件开发和维护方法不正确有关,这是主要原因。n特别是忽视软件需求分析的重要性第14页,共37页,编
7、辑于2022年,星期三忽视软件需求分析的重要性n对用户要求没有完整准确的认识就匆忙着手编写程序n软件开发与编程等同n忽略文档n软件定义不明n轻视维护第15页,共37页,编辑于2022年,星期三对软件开发的错误认识(1)n已经有了关于建造软件的标准和规程n使用了吗?n开发者知道吗?n适用吗?n完整吗?n已经有了很好的软件开发工具n还需要计算机辅助软件工程(CASE)工具第16页,共37页,编辑于2022年,星期三对软件开发的错误认识(2)n如果计划落后,可以增加人员赶回来n给一个已经延迟的软件项目增加人手只会使其更加延迟n原有人员需要抽实践训练新手n有了目标的一般描述就可以开始写程序n不完善的系
8、统定义是项目失败的主要原因第17页,共37页,编辑于2022年,星期三对软件开发的错误认识(3)n项目需求不断变化,但软件很灵活,变化能够很容易地得到满足n软件需求的变化确实是经常的,但其产生的影响随着引入的时间不同而不同n写出程序并使其正常运行,工作就结束了n越早开始写程序,就要花越长时间才能够完成第18页,共37页,编辑于2022年,星期三对软件开发的错误认识(4)n在程序真正开始运行前,无法评估其质量n正式的技术评审n质量过滤器n成功项目唯一应该提交的就是运行程序n软件=程序+文档+数据n文档是成功开发的基础n文档为维护提供指导第19页,共37页,编辑于2022年,星期三解决办法.n全
9、面解决软件危机需要一 系列综合措施:n在软件研制的各个阶段采用好的工具;n对软件的实现提供有效的构件块;n为保证软件质量提供自动设计技术;n以及为协调、控制、管理提供基本理论和技术软件工程。第20页,共37页,编辑于2022年,星期三.解决办法n软件工程这一要素将驾驭前面的工具、构件决和技术n软件工程把管理、控制、评审等方法与分析、设计、编码、测试、维护等技术结合起来n没有坚实的软件开发方法学,即使最先进的工具和技术也不能使软件危机有所减轻第21页,共37页,编辑于2022年,星期三软件工程工程化方法n用于解决任何产品开发的一种工程化方法是:n要求在定义、开发和维护阶段的每一步中都采用经过验证
10、的方法n要求一系列的复查,以便在产品开发中保证质量n规定在每一步中要产生的特定的文档n鼓励能够加速开发的各种工具和方法的使用与研制n提供从原始产品概念到最后产品制造的一个可追溯的途径n软件工程是使计算机软件走向工程科学的途径第22页,共37页,编辑于2022年,星期三软件工程软件工程定义n软件工程是为了经济地经济地获得可靠的可靠的和能在实际机器上高效高效运行的软件而建立和使用的好的工程原则好的工程原则。(Fritz Bauer 1969)n软件工程是应用于计算机软件的定义、开发和维护的 一整套方法、工具、文档、实践标准和工序。(GB)n软件工程:(1)将系统化的、规范的、可度量的方法应用于软件
11、的开发、运行和维护的过程,即将工程化应用于软件中。(2)(1)中所述方法的研究。(IEEE93)n软件工程是模仿在硬件研制中行之有效的一套计划、管理、技术、方法,基于软件的生存期概念而建立起来的。第23页,共37页,编辑于2022年,星期三软件工程视图1.质量焦点质量焦点过程过程方法方法工具工具第24页,共37页,编辑于2022年,星期三.软件工程视图1n质量焦点:任何工程方法必须以有组织的质量保证为基础。质量的理念刺激不断过程改进,导致出现更加成熟的软件工程方法。它是软件工程的根基。n过程:软件工程的基础是过程。软件工程过程是将技术层结合在一起的凝聚力,使得软件能够合理地和及时地开发出来。n
12、方法:软件工程方法层提供了建造软件在技术上需要“怎么做”。n工具:在工具层对过程和方法提供了自动和半自动的支持。第25页,共37页,编辑于2022年,星期三软件工程生存期概念n计算机软件生存期中有三个阶段:定义阶段、开发阶段、维护阶段。n定义阶段:为软件项目做出计划、预算资金和进度,分析并规定详细的需求做什么做什么n开发阶段:用经过验证的各种设计、编码和测试方法把软件需求转变为一个可执行的程序怎么做怎么做n维护阶段:纠正所遇到的各种问题,修正软件使之适合于不同的工作环境,增强功能要求改变改变n每一个阶段都有一系列的工程步骤,每一步都以能加以 复查并可移交才作为结束第26页,共37页,编辑于20
13、22年,星期三软件工程的基本原理软件工程的基本原理nB.W.Boehm(1983)1)用分阶段的生命周期计划严格管理;2)坚持进行阶段评审;3)实行严格的产品控制;4)采用现代程序设计技术;5)结果应能清楚地审查;6)开发小组的人员应该少而精;7)承认不断改进软件工程实践的必要性。第27页,共37页,编辑于2022年,星期三计划管理n缺乏科学而周密的计划是软件开发普遍现象n不成功软件项目一半以上由于计划不周造成n应把软件生存期划分为若干阶段,制定科学周密、切实可行的计划,并严格按计划进行管理,这是软件项目取得成功的先决条件n计划所做的和按计划去做计划所做的和按计划去做n计划一般包括:项目开发计
14、划、软件配置管理计划、软件质量保证计划、软件测试计划等第28页,共37页,编辑于2022年,星期三评审n在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则n质量保证工作不能等到程序编制完成后才进行:n1.程序中的大部分错误是在编码之前造成的n2.错误的检测与改正时间越晚,所付出的代价也就越高。n3.错误还会被“放大”第29页,共37页,编辑于2022年,星期三配置管理.n软件研制各阶段产生的文档、报告、程序清单和数据等,构成软件配置n全部软件配置是一个软件产品的真正代表,必须使其保持精确和一致n为了保持软件配置的一致性,必须实行严格的产品控制,对变更进
15、行严格的控制和管理第30页,共37页,编辑于2022年,星期三.配置管理n配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。它包括对软件配置的标识、控制、审计、记录等一系列的活动n在软件研制过程中,由业已经过正式审核与同意,可用作下一步开发的基础,并且只有通过正式的修改管理步骤方能加以修改的规格说明或产品形成了配置管理的基线第31页,共37页,编辑于2022年,星期三软件开发方法和工具n软件工程鼓励研制和采用各种先进的软件开发方法和工具n各种软件开发方法的出现和采用大大改善了软件的开发效率和维护效率n
16、软件工程辅助工具、计算机辅助软件工程()环境n工具和环境的使用进一步提高了软件的开发效率、维护效率和软件质量第32页,共37页,编辑于2022年,星期三文档.n软件研制是脑力劳动,具有不可见性n为了实现对软件研制过程的管理,在软件研制的每个阶段,都应按规定的格式编写出完整准确的文档n文档是软件中不可缺少的组成部分第33页,共37页,编辑于2022年,星期三.文档的作用1)作为阶段工作成果和结束标志;2)向管理人员提供软件开发过程中的进展和情况,把软件开发过程中的一些“不可见的”事物转换成“可见的”文字资料;3)记录开发过程中的技术信息,便于协调以后的软件开发、使用和修改;4)提供对软件的有关运
17、行、维护和培训的信息,便于各类人员之间相互了解彼此的工作;5)向潜在用户报告软件的功能和性能,使他们能判定该软件能否服务于自己的需要。第34页,共37页,编辑于2022年,星期三开发小组n软件开发小组的组成人员的素质应该好,而人数则不宜过多n开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素n随着开发人员数目的增加,因为交流情况讨论问题造成的通信开销也急剧增加n组成少而精的开发小组是一条基本原理第35页,共37页,编辑于2022年,星期三不断改进n仅有前面六条基本原理并不能保证软件开发和维护的过程能赶上时代前进的步伐、跟上技术的不断进步nBoehm 提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理n不仅要积极地采纳新的软件技术,而且要注意不断总结经验第36页,共37页,编辑于2022年,星期三谢谢!68389085(O)68389504(H)第37页,共37页,编辑于2022年,星期三
限制150内