第1章 软件开发方法(二)软件工程(1).ppt





《第1章 软件开发方法(二)软件工程(1).ppt》由会员分享,可在线阅读,更多相关《第1章 软件开发方法(二)软件工程(1).ppt(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1 1章章 软件开发方法软件开发方法(二)软件工程(二)软件工程计算机教学实验中心计算机教学实验中心 下一页上一页停止放映问题的提出什么是软件工程?什么是软件工程?为什么提出软件工程?为什么提出软件工程?主要研究哪些问题?主要研究哪些问题?软件工程的目标、原理软件工程的目标、原理软件开发活动软件开发活动2 2下一页上一页停止放映1 1了解软件工程的基本概念、基本原则了解软件工程的基本概念、基本原则2 2理解软件工程的主要定义理解软件工程的主要定义3 3理解软件过程及模型理解软件过程及模型4 4了解软件工程方法学了解软件工程方法学3 3下一页上一页停止放映一、软件工程概述一、软件工程概述什么
2、是软件工程?什么是软件工程?为什么要学习软件工程?为什么要学习软件工程?软件工程包括哪些内容?软件工程包括哪些内容?4 4下一页上一页停止放映“软件工程是一种描述规范软件工程是一种描述规范。”Michael Jackson软件工程?软件工程?下一页上一页停止放映软件工程的定义软件工程的定义软件工程专家软件工程专家BoehmBoehm定义定义IEEEIEEE给出的定义给出的定义教科书给出的定义教科书给出的定义6 6下一页上一页停止放映软件工程专家软件工程专家BoehmBoehm定义定义著名软件工程专家著名软件工程专家B BW WBoehmBoehm为软件工为软件工程的定义是:程的定义是:运用现代
3、科学技术知识来设计并构造运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。些程序所必需的相关文件资料。7 7下一页上一页停止放映IEEEIEEE给出的定义给出的定义19831983年年IEEEIEEE给出的定义为:给出的定义为:以优质、高效、低成本为目标,研究以优质、高效、低成本为目标,研究开发、运行和维护软件以及使之退役开发、运行和维护软件以及使之退役的系统方法。的系统方法。其中,其中,“软件软件”的定义为:计算机程序、方法、的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时规则、相关的文档资料以及在
4、计算机上运行时所必需的数据。所必需的数据。8 8下一页上一页停止放映教科书给出的定义教科书给出的定义教科书中定义为:教科书中定义为:运用系统的、规范的和可定量运用系统的、规范的和可定量的方法来开发、运行和维护软的方法来开发、运行和维护软件。件。9 9下一页上一页停止放映关于软件工程学软件工程是一门交叉学科,涉及到计算机软件工程是一门交叉学科,涉及到计算机科学、管理科学、工程学和数学。科学、管理科学、工程学和数学。软件工程的理论、方法、技术都是建立软件工程的理论、方法、技术都是建立在计算机科学的基础上;在计算机科学的基础上;它是用管理学的原理、方法进行软件生它是用管理学的原理、方法进行软件生产管
5、理;产管理;用工程学的观点进行费用估算、制定进用工程学的观点进行费用估算、制定进度和实施方案;度和实施方案;用数学方法建立软件可靠性模型以及分用数学方法建立软件可靠性模型以及分析各种算法。析各种算法。10 10下一页上一页停止放映 了解并掌握软件的开发步骤、方了解并掌握软件的开发步骤、方法、准则。为了:法、准则。为了:克服、解决克服、解决“软件危机软件危机”改进改进“软件生产软件生产”方法、工方法、工具具提高软件的生产率提高软件的生产率为什么学习软件工程?为什么学习软件工程?下一页上一页停止放映软件工程的目标软件工程的目标开发生产尽可能多的软件产品;开发生产尽可能多的软件产品;提高软件的生产效
6、率;提高软件的生产效率;满足应用的功能需要和具有较好的软件性能;满足应用的功能需要和具有较好的软件性能;能按时、按质完成软件开发任务;能按时、按质完成软件开发任务;降低软件开发成本。降低软件开发成本。12 12下一页上一页停止放映目标的实现是矛盾的目标的实现是矛盾的在实际开发过程中,企图让以上几个目标都在实际开发过程中,企图让以上几个目标都达到理想的程度是非常困难的。达到理想的程度是非常困难的。例如,如果过于追求提高软件的性能,可能例如,如果过于追求提高软件的性能,可能造成开发出的软件对硬件有较大的依赖,从造成开发出的软件对硬件有较大的依赖,从而直接影响到软件的通用性和可移植性。而直接影响到软
7、件的通用性和可移植性。实际上软件工程就是要解决如何在用户要求实际上软件工程就是要解决如何在用户要求的功能、质量、成本、进度之间取得平衡,的功能、质量、成本、进度之间取得平衡,才能真正满足应用的实际需要。才能真正满足应用的实际需要。13 13下一页上一页停止放映软件工程具体目标软件工程具体目标保护公众安全、健康和幸福保护公众安全、健康和幸福建立、健全开发软件产品的学科建立、健全开发软件产品的学科识别新软件或修改现行软件的需求风险识别新软件或修改现行软件的需求风险避免开发失败的软件避免开发失败的软件鼓励寻求开发和采购软件产品的替代方法鼓励寻求开发和采购软件产品的替代方法促进软件生存期所有方面生产率
8、的改进促进软件生存期所有方面生产率的改进通过不断更新软件,发现新的用途通过不断更新软件,发现新的用途便于开发具有便于开发具有“鲁棒性鲁棒性”的软件的软件通通过过对对引引起起故故障障或或有有影影响响的的元元素素的的不不断断检检测测以促进软件过程和产品的改进。以促进软件过程和产品的改进。14 14下一页上一页停止放映软件工程的本质特征软件工程的本质特征1.1.软件工程关注于大型程序的构造软件工程关注于大型程序的构造2.2.软件工程的中心课题是控制复杂度软件工程的中心课题是控制复杂度3.3.软件经常变化软件经常变化4.4.开发软件的效率非常重要开发软件的效率非常重要5.5.和谐地合作是开发软件的关键
9、和谐地合作是开发软件的关键6.6.软件必须有效地支持它的用户软件必须有效地支持它的用户7.7.在软件工程领域中是由具有一种文化背在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造景的人替具有另一种文化背景的人创造产品产品15 15下一页上一页停止放映软件工程原理软件工程原理自自19681968年提出年提出“软件工程软件工程”的概念以来,的概念以来,专家学者又陆续提出了专家学者又陆续提出了100100多条关于软件工多条关于软件工程的准则。程的准则。著名软件工程专家著名软件工程专家B.W.BoehmB.W.Boehm于于19831983年发表年发表的一篇论文中提出了软件工程的七条
10、基本的一篇论文中提出了软件工程的七条基本原理。他认为这七条原理是确保软件产品原理。他认为这七条原理是确保软件产品质量和开发效率的最小准则集合。质量和开发效率的最小准则集合。16 16下一页上一页停止放映软件工程软件工程七条七条基本原理基本原理用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理坚持进行阶段评审坚持进行阶段评审实行严格的产品控制实行严格的产品控制采用现代程序设计技术采用现代程序设计技术结果应能清楚地审查结果应能清楚地审查开发小组人员少而精开发小组人员少而精承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性17 17下一页上一页停止放映用分阶段生命周期计划严格
11、管理用分阶段生命周期计划严格管理据据统统计计发发现现:不不成成功功软软件件项项目目中中半半数数是是因因计计划划不周造成的。不周造成的。在在软软件件的的整整个个生生命命周周期期中中应应该该制制定定并并严严格格执执行行六六类类计计划划:项项目目概概要要、项项目目进进度度表表、项项目目控制、产品控制、验证控制、产品控制、验证及及运行维护计划运行维护计划。不不同同层层次次的的管管理理人人员员必必须须严严格格按按照照计计划划各各尽尽其其职职地地去去管管理理软软件件开开发发与与维维护护工工作作,绝绝不不能能受客户或上级的影响而擅自背离预定计划。受客户或上级的影响而擅自背离预定计划。18 18下一页上一页停
12、止放映坚持进行阶段评审坚持进行阶段评审软软件件的的质质量量保保证证工工作作不不能能等等到到编编码码阶阶段段结结束束之后再进行。这是因为:之后再进行。这是因为:大大部部分分错错误误是是在在编编码码之之前前造造成成的的(根根据据BoehmBoehm统统计计,设设计计错错误误占占软软件件错错误误的的63%63%,编码错误占编码错误占37%37%)。)。错错误误发发现现与与改改正正得得越越晚晚,所所付付出出的的代代价价也也越高。越高。因因此此,在在每每个个阶阶段段进进行行严严格格的的评评审审,尽尽早早发发现现并并修修正正各各个个阶阶段段中中所所犯犯的的错错误误是是一一条条必必须须遵循的重要原则。遵循的
13、重要原则。19 19下一页上一页停止放映示意图关于阶段评审作用示意图关于阶段评审作用 2020下一页上一页停止放映实行严格的产品控制实行严格的产品控制在在软软件件开开发发过过程程中中不不应应随随意意改改变变需需求求,但但不不能能禁禁止止更更改改需需求求。当当必必须须修修改改时时,为为了了保保持持软软件件各各配配置置成成分分的的一一致致性性,必必须须实实行行严严格格的的产产品品控控制。制。一一切切有有关关修修改改软软件件的的建建议议都都必必须须按按照照严严格格的的规规程进行评审,获准后才能实施修改。程进行评审,获准后才能实施修改。绝对不能谁想修改就随意进行修改的行为。绝对不能谁想修改就随意进行修
14、改的行为。21 21下一页上一页停止放映采用现代程序设计技术采用现代程序设计技术以以前前的的结结构构化化程程序序设设计计技技术术,如如今今的的面面向向对对象象程程序序设设计计技技术术都都被被实实践践证证明明是是各各个个不不同历史阶段的优秀程序设计技术和方法。同历史阶段的优秀程序设计技术和方法。采采用用先先进进的的技技术术既既可可以以提提高高软软件件开开发发的的效效率,又可以提高软件维护的效率。率,又可以提高软件维护的效率。2222下一页上一页停止放映结果应能清楚地审查结果应能清楚地审查软软件件产产品品是是看看不不见见、摸摸不不着着的的逻逻辑辑产产品品,软件开发人员的工作进展情况可见性差。软件开
15、发人员的工作进展情况可见性差。为为了了提提高高开开发发过过程程的的可可见见性性,应应根根据据软软件件开开发发项项目目中中的的目目标标完完成成期期限限,规规定定开开发发组组织织的的责责任任和和产产品品标标准准,使使得得到到的的结结果果能能够够清楚的审查。清楚的审查。2323下一页上一页停止放映开发小组人员少而精开发小组人员少而精开发小组成员的素质应该高,人员不宜过开发小组成员的素质应该高,人员不宜过多。人员素质和数量是影响产品质量和开多。人员素质和数量是影响产品质量和开发效率的重要因素。发效率的重要因素。素质高的人开发效率比低的人高几倍甚至素质高的人开发效率比低的人高几倍甚至几十倍,而错误则明显
16、得少;几十倍,而错误则明显得少;人数增加,管理难度也增加。人数增加,管理难度也增加。2424下一页上一页停止放映承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性要要积积极极主主动动地地采采纳纳新新的的软软件件技技术术,要要不不断断总总结结经经验验;不不能能自自以以为为是是,固固步步自自封封,唯唯我独好。我独好。大大千千世世界界,错错综综复复杂杂,只只有有不不断断学学习习,才才能不断进取,不断进步。能不断进取,不断进步。2525下一页上一页停止放映软件开发活动软件开发活动软件工程过程是由一系列软件工程的阶段任软件工程过程是由一系列软件工程的阶段任务和活动组成。务和活动组成。199
17、51995年年ISOISO将软件生存周期的活动和任务划分将软件生存周期的活动和任务划分为为3 3个过程:个过程:主要过程主要过程(需求、设计、构造、测试和维护)(需求、设计、构造、测试和维护)支持过程支持过程(软件配置、软件工程管理、软件过程和(软件配置、软件工程管理、软件过程和软件质量)软件质量)组织过程组织过程(基础设施建设、工具和方法、改进、培(基础设施建设、工具和方法、改进、培训)训)2626下一页上一页停止放映主要过程主要过程主要过程包括的软件开发活主要过程包括的软件开发活动和任务是:动和任务是:软件需求软件需求软件设计软件设计软件构造软件构造软件测试软件测试软件维护软件维护2727
18、下一页上一页停止放映1 1、软件需求、软件需求任务任务:收集、分析、理解、确定用户的要求;然:收集、分析、理解、确定用户的要求;然后把用户的要求精确、完整地描述表达出来。后把用户的要求精确、完整地描述表达出来。目的目的:要回答:要回答“要解决什么问题?要解决什么问题?”,既系统既系统”做什么?做什么?“。分两步骤:分两步骤:可行性研究、制定软件开发计划可行性研究、制定软件开发计划结果结果:可行性报告、软件计划、需求说明书可行性报告、软件计划、需求说明书需求说明书是让用户理解需求说明书是让用户理解:“什么是他们真正需要的什么是他们真正需要的”。2828下一页上一页停止放映了解用户需求有关的问题了
19、解用户需求有关的问题什么是需求?什么是需求?希望,功能,限制,必需品,任何必要的东西;希望,功能,限制,必需品,任何必要的东西;什么时候什么时候?从确定方案开始;从确定方案开始;为什么为什么?用户的需求是开发需要的依据;用户的需求是开发需要的依据;来自哪里来自哪里?来自用户,工业标准,和实践经验;来自用户,工业标准,和实践经验;如何实现?如何实现?使所有相关的人参与需求分析活动,通过有效的交流使所有相关的人参与需求分析活动,通过有效的交流实现;实现;谁来做谁来做?用户,工程管理人员,开发人员,维护人员。用户,工程管理人员,开发人员,维护人员。2929下一页上一页停止放映用户参与需求分析的重要性
20、用户参与需求分析的重要性根据根据Standish Group 1994Standish Group 1994年发表的一份研年发表的一份研究报告统计,延迟的、超出预算的、未完究报告统计,延迟的、超出预算的、未完成的工程的最普遍的原因是:成的工程的最普遍的原因是:缺少用户参与;缺少用户参与;不完备的需求规范;不完备的需求规范;改变需求规范。改变需求规范。3030下一页上一页停止放映需求分析的难点需求分析的难点 问题的复杂性。问题的复杂性。涉及因素多而;如运行环境和系统功能等。涉及因素多而;如运行环境和系统功能等。交流障碍。交流障碍。涉及不同类型人员较多,知识背景、角度、角色的不同;涉及不同类型人员
21、较多,知识背景、角度、角色的不同;不完备性和不一致性。不完备性和不一致性。用户对问题的陈述有矛盾、片面性等造成。用户对问题的陈述有矛盾、片面性等造成。需求易变性。需求易变性。需求是变化的。需求是变化的。31 31下一页上一页停止放映需求工作的重要性需求工作的重要性IBMIBM公司有关研究的结果表明:公司有关研究的结果表明:有效的需求管理可以降低开发成本。有效的需求管理可以降低开发成本。通常改正需求错误需要付出改正其他错误通常改正需求错误需要付出改正其他错误1010倍以上的代价。倍以上的代价。需求错误通常导致软件工程中全部错误的需求错误通常导致软件工程中全部错误的25-40%25-40%。改正很
22、少的需求错误可以避免大量耗费在改正很少的需求错误可以避免大量耗费在返工上的成本和时间。返工上的成本和时间。3232下一页上一页停止放映需求活动需求活动 识别问题识别问题 通过调研和收集资料,了解用户的确切需求,并将用通过调研和收集资料,了解用户的确切需求,并将用户提出的功能行为和特殊要求等用双方都能理解的表达户提出的功能行为和特殊要求等用双方都能理解的表达方式逐条列出。在整个分析期间要和用户充分协商。方式逐条列出。在整个分析期间要和用户充分协商。可行性研究可行性研究 对于大型复杂问题,要对用户的要求及实现环境从技对于大型复杂问题,要对用户的要求及实现环境从技术、经济和社会因素三个方面进行可行性
23、研究,以确定术、经济和社会因素三个方面进行可行性研究,以确定问题是否可解。问题是否可解。分析建模分析建模 建立软件求解模型;信息、行为和表示。建立软件求解模型;信息、行为和表示。需求规格化及编写文档需求规格化及编写文档 需求规格说明书、初步用户使用手册等。需求规格说明书、初步用户使用手册等。3333下一页上一页停止放映2 2、软件设计、软件设计任务任务:给出实现系统的实施蓝图。:给出实现系统的实施蓝图。目的目的:要回答:要回答“如何解决该问题?如何解决该问题?”,既系统既系统“怎样做?怎样做?”。步骤步骤:概要设计:解决系统的模块划分、模块的层次概要设计:解决系统的模块划分、模块的层次结构及数
24、据库设计。结构及数据库设计。详细设计:解决每个摸块内部算法和数据结构。详细设计:解决每个摸块内部算法和数据结构。结果结果:系统设计说明书和模块功能说明书系统设计说明书和模块功能说明书 3434下一页上一页停止放映软件设计工作软件设计工作软件设计要做的工作总的可以归结为软件设计要做的工作总的可以归结为:软件软件系统结构系统结构(软件结构软件结构)设计、数据设计、界设计、数据设计、界面设计和过程设计。面设计和过程设计。设计办法是功能分解,包括:设计办法是功能分解,包括:采用某种设计方法,将一个复杂的系统采用某种设计方法,将一个复杂的系统按功能划分成模块;按功能划分成模块;确定每个模块的功能;确定每
25、个模块的功能;确定模块之间的接口,即模块之间传递确定模块之间的接口,即模块之间传递的信息;的信息;评价模块结构的质量。评价模块结构的质量。3535下一页上一页停止放映软件设计准则软件设计准则(1 1)软件结构准则;分层结构、便于控制;软件)软件结构准则;分层结构、便于控制;软件结构的深度和宽度要适中;具有合理的扇出和扇结构的深度和宽度要适中;具有合理的扇出和扇入数。入数。(2 2)模块化准则;分解复杂问题;)模块化准则;分解复杂问题;(3 3)模块独立性准则;应使模块之间和与外部环)模块独立性准则;应使模块之间和与外部环境之间接口的复杂性尽量地减小;模块应具有低境之间接口的复杂性尽量地减小;模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 软件开发方法二软件工程1 软件 开发 方法 软件工程

限制150内