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

下载本文档

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

文档简介

1、1软件工程软件工程(Software Engineering)计算机科学与工程学院计算机科学与工程学院School of Computer Science & Engineering2缺乏项目计划缺乏项目计划项目缺乏过程控制,开发过程没有纳入项目缺乏过程控制,开发过程没有纳入配置管理配置管理项目之间的相互牵扯较多项目之间的相互牵扯较多没有明确的的生命周期模型没有明确的的生命周期模型开发过程不可视开发过程不可视缺乏质量保证意识,缺乏质量保证意识,“专家专家”和和“牛人牛人”支撑企业支撑企业没有需求管理措施没有需求管理措施开发存在的主要问题开发存在的主要问题3关注功能实现,缺乏对可测试性、

2、可维关注功能实现,缺乏对可测试性、可维护性等等质量属性方面的关注护性等等质量属性方面的关注开发规程、规范、模板、检查单较少开发规程、规范、模板、检查单较少缺乏培训体系缺乏培训体系制定了一些规范和标准,但可操作性还制定了一些规范和标准,但可操作性还不强,需要更新和完善不强,需要更新和完善缺乏缺乏ITIT支撑体系支撑体系开发存在的主要问题开发存在的主要问题4不成熟组织软件项目的特征不成熟组织软件项目的特征缺乏确定的软件过程和相应的管理和控制;缺乏确定的软件过程和相应的管理和控制; 即使给出了软件过程,也不严格的执行;即使给出了软件过程,也不严格的执行; 管理是完全被动的,管理者采用的策略是救火管理

3、是完全被动的,管理者采用的策略是救火式的,解决的时候也难以纵观全局,只顾眼前;式的,解决的时候也难以纵观全局,只顾眼前; 由于缺乏有依据的估算,制订软件预算和生产由于缺乏有依据的估算,制订软件预算和生产计划时往往跟着感觉走,实际生产常常超标;计划时往往跟着感觉走,实际生产常常超标; 如果强制在预定期限内完成,那么软件的功能如果强制在预定期限内完成,那么软件的功能和质量肯定是得不到保证;和质量肯定是得不到保证; 缺乏评价软件产品质量和解决产品缺陷和过程缺乏评价软件产品质量和解决产品缺陷和过程问题的客观基础。问题的客观基础。5成熟组织软件项目的特征成熟组织软件项目的特征具有在企业范围内管理、控制软

4、件开发和维护具有在企业范围内管理、控制软件开发和维护过程的能力;过程的能力; 现有人员和新进人员均了解所遵循的软件过程,现有人员和新进人员均了解所遵循的软件过程,且工作活动均按照事先的计划完成;且工作活动均按照事先的计划完成; 在定义好的软件过程中,所有项目和机构中的在定义好的软件过程中,所有项目和机构中的角色和责任分明;角色和责任分明; 制定的计划是有效的且与实际的工作进展一致;制定的计划是有效的且与实际的工作进展一致; 软件过程在必要时可按照一定规则和程序加以软件过程在必要时可按照一定规则和程序加以修改;修改; 软件产品和过程的具有一定的可控性。这主要软件产品和过程的具有一定的可控性。这主

5、要体现在:体现在:6成熟组织软件项目的特征成熟组织软件项目的特征管理者能够监督软件产品的质量和生产过程;管理者能够监督软件产品的质量和生产过程; 具有客观的和定量化的措施来判断产品质量具有客观的和定量化的措施来判断产品质量并分析产品与生产过程中的问题;并分析产品与生产过程中的问题; 计划和预算有章可循,它是基于历史数据的,计划和预算有章可循,它是基于历史数据的,从而是实际可行的;从而是实际可行的; 预算的结果,包括成本、时间表、产品功能预算的结果,包括成本、时间表、产品功能和质量等,通常能够达到;和质量等,通常能够达到; 有关的参与者完全理解遵循软件过程的价值有关的参与者完全理解遵循软件过程的

6、价值并认真地遵循之;并认真地遵循之; 具有支撑软件过程的基础设施,如标准过程具有支撑软件过程的基础设施,如标准过程库、历史数据库等。库、历史数据库等。7不成熟组织软件项目的结果不成熟组织软件项目的结果救火英雄辈出救火英雄辈出错误付出高昂代价错误付出高昂代价员工积极性降低员工积极性降低企业生存压力受到严重挑战企业生存压力受到严重挑战8数数/KLOC软件Bug率对比0.5公司公司SEI7.3Bug率率数据分析数据分析9问题所占百分比问题所占百分比错误类型错误类型XX产品产品XX版本问题按错版本问题按错误分布统计图误分布统计图14.214.814.84.833.118.3接口接口需求需求编码编码逻辑

7、逻辑设计设计其他其他数据分析数据分析10问题所占百分比问题所占百分比错误类型错误类型设计问题分布7.141.119.7设计思想错误设计思想错误设计缺陷设计缺陷更改设计更改设计新增设计新增设计32.1数据分析数据分析11问题所占百分比问题所占百分比错误类型错误类型需求问题分布244需求不明确需求不明确需求不合理需求不合理新增需求新增需求72数据分析数据分析12原微软全球技术中心总经理唐俊会见朱鎔基原微软全球技术中心总经理唐俊会见朱鎔基时分析中国软件企业的不足:时分析中国软件企业的不足:中国软件企业缺乏标准化的研发模式,中国软件企业缺乏标准化的研发模式,缺乏了解正规的软件研发流程的管理人缺乏了解正

8、规的软件研发流程的管理人员,缺乏真正熟悉软件开发流程的高级员,缺乏真正熟悉软件开发流程的高级程序员。程序员。专家言论专家言论13印度软件产业现状:印度软件产业现状: 20022002年软件产值为年软件产值为101101亿美元、出口亿美元、出口76.876.8亿美元,估计在亿美元,估计在20082008年为年为850850亿美元,出口亿美元,出口500500亿美元。全球最大的亿美元。全球最大的500500家公司中有家公司中有200200多家采用印度软件,美国最大的多家采用印度软件,美国最大的100100家公司几家公司几乎乎100%100%把印度作为国外软件的首选地。把印度作为国外软件的首选地。印

9、度成功的经验:印度成功的经验: CMMCMM流程化管理,全球流程化管理,全球CMMCMM五级组织有五级组织有4242家家,CMMCMM四级组织有四级组织有8787家,印度有家,印度有8080多家。多家。印度模式印度模式1415软件发展存在的问题软件发展存在的问题硬件的发展一直超过软件,难以发挥硬件的硬件的发展一直超过软件,难以发挥硬件的潜能潜能建造程序的能力远远不能满足人们对新程序建造程序的能力远远不能满足人们对新程序的需求,不能满足商业和市场的要求。的需求,不能满足商业和市场的要求。软件的可靠性越来越重要。软件失败,会造软件的可靠性越来越重要。软件失败,会造成巨大的经济损失,有可能带来灾难。

10、成巨大的经济损失,有可能带来灾难。拙劣的设计和资源的缺乏难以支持和增强已拙劣的设计和资源的缺乏难以支持和增强已有软件。有软件。16产业的观点产业的观点为什么需要长时间才能结束开发?为什么需要长时间才能结束开发?为什么成本如此之高?为什么成本如此之高?为什么不能在软件交付给客户之前就发现所有为什么不能在软件交付给客户之前就发现所有的错误?的错误?为什么软件开发过程中我们难以度量其进展?为什么软件开发过程中我们难以度量其进展?老化的软件工厂老化的软件工厂软件的竞争软件的竞争这种关注最终导致软件工程实践的出现这种关注最终导致软件工程实践的出现17软件技术面临的问题软件技术面临的问题 规模规模 复杂性

11、复杂性 生产率生产率Exchange2000Windows20002000项目经理项目经理2525人人约约250250人人开发人员开发人员140140人人约约17001700人人测试人员测试人员350350人人约约32003200人人 Windows95Windows95有有10001000万行代码万行代码Windows2000Windows2000有有50005000万行代码万行代码 Exchange2000Exchange2000和和 Windows2000Windows2000开发人员结构开发人员结构18软件危机的主要特征软件危机的主要特征 软件开发周期大大超过规定日期软件开发周期大大超

12、过规定日期; ; 软件开发成本严重超标软件开发成本严重超标; ; 软件质量难于保证软件质量难于保证19改正一个问题需付出的代价改正一个问题需付出的代价需需求求分分析析结结构构设设计计详详细细设设计计编编码码集集成成测测试试系系统统测测试试现现场场改正改正一个一个问题问题的估的估计费计费用用改正改正一个一个问题问题估计估计的工的工作量作量202020020020002000100010005.05.02.52.50.050.050.50.5( (美元美元) )( (人天人天) )20成功没有那么轻易到来成功没有那么轻易到来31%53%16%SuccessfullyChallengedCancel

13、ed21成功与失败成功与失败成功的标准:成功的标准:s 用户在用用户在用s 用户可很容易做完要做的事用户可很容易做完要做的事失败的根本原因:失败的根本原因:s 开发人员写出的东西达不到用户要求开发人员写出的东西达不到用户要求( (人的人的问题问题. .技术问题技术问题) )22处在十字路口的中国软件产业处在十字路口的中国软件产业s 主权大国必须建立基于自主技术的、完整的主权大国必须建立基于自主技术的、完整的软件产业体系。软件产业体系。 软件本国提供率:中国软件本国提供率:中国1/31/3左右,美国左右,美国97%97%s “印度模式印度模式”还是还是“中国模式中国模式”s 软件人才结构不合理,

14、缺乏中高级软件人才,软件人才结构不合理,缺乏中高级软件人才,软件人员缺乏软件工程化的概念。软件人员缺乏软件工程化的概念。23软件工程的定义软件工程的定义1 1 IEEEIEEE【IEE83IEE83】给出的软件工程定义:给出的软件工程定义: “软件工程是开发、运行、维护和修复软件工程是开发、运行、维护和修复软件的系统方法。软件的系统方法。”24 IEEE IEEE【IEE93IEE93】给出了一个更加综合的给出了一个更加综合的定义:定义: “将系统化的、规范的、可度量的方将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,法应用于软件的开发、运行和维护的过程,即将工程化应用于软

15、件中。即将工程化应用于软件中。”软件工程的定义软件工程的定义2 25软件工程是应用计算机科学、数学及管理软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为程的原则、方法,以提高质量,降低成本为目的。目的。 软件工程的定义软件工程的定义3 3 26软件工程是一门交叉学科软件工程是一门交叉学科软件工程的主要研究内容软件工程的主要研究内容: :软件开发技术软件开发技术: :软件开发方法学软件开发方法学 软件开发过程软件开发过程 软件工具和软件工程环境软件工具和软件工程环境软件工程管理软件工程管理: :

16、软件管理学软件管理学 软件经济学软件经济学 软件心理学软件心理学软件工程所包含的内容不是一成不变的,随着软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。发展的眼光看待它。27质量焦点质量焦点软件工程软件工程 一种层次化技术一种层次化技术Software engineering layers软件工程三个要素:软件工程三个要素:过程、方法、工具过程、方法、工具过程过程方法方法工具工具28三要素:三要素: 方法、工具和过程方法、工具和过程软件工程方法包括了多方面的任务,如项目计划与软件工程方法包括了多方面的

17、任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结估算、软件系统需求分析、数据结构、系统总体结构的设计、算法的设计、编码、测试以及维护等。构的设计、算法的设计、编码、测试以及维护等。软件工具为软件工程方法提供了自动的或半自动的软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。如软件支撑环境。如CASECASE、ISEEISEE等。等。软件工程过程则是将软件工程的方法和工具综合起软件工程过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、过程定义了方法使用

18、的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。各个阶段完成的里程碑。29软件工程过程特性软件工程过程特性易理解性易理解性可见性可见性可支持性可支持性可接受性可接受性可靠性可靠性健壮性健壮性可维护性可维护性速度速度30 工程是对技术(或社会)实体的分析、设计、建造、验证和工程是对技术(或社会)实体的分析、设计、建造、验证和管理。因此工程须回答下列问题:管理。因此工程须回答下列问题: 要解决的问题是什么?要解决的问题是什么? 要用于解决该问题的实体具有什么特点?要用于解决该问题的实体具有什么特点? 如何实现

19、该实体(解决方案)?如何实现该实体(解决方案)? 如何建造该实体?如何建造该实体? 采用什么方法去发现该实体设计和建造过程中产生采用什么方法去发现该实体设计和建造过程中产生的错误?的错误? 当该实体的用户要求修改、适应和增强时,如何支当该实体的用户要求修改、适应和增强时,如何支持这些活动?持这些活动?软件工程的一般视软件工程的一般视图图31与一般软件工程相关的三个阶段:与一般软件工程相关的三个阶段:定义阶段集中于定义阶段集中于“做什么做什么”: 涉及所要处理的信息、所需完成的功能和性能、所拟具有的涉及所要处理的信息、所需完成的功能和性能、所拟具有的系统行为、所想建造的界面、设计约束以及系统的评

20、价标准系统行为、所想建造的界面、设计约束以及系统的评价标准等。等。 包括三个主要任务:系统或信息工程;软件项目计划;需求包括三个主要任务:系统或信息工程;软件项目计划;需求分析。分析。开发阶段集中于开发阶段集中于“如何做如何做”: 涉及数据如何结构化、功能如何转换为软件体系结构、过程涉及数据如何结构化、功能如何转换为软件体系结构、过程细节如何实现、界面如何表示、设计如何转换成程序设计语细节如何实现、界面如何表示、设计如何转换成程序设计语言(或非过程语言)、测试如何执行。言(或非过程语言)、测试如何执行。 包括三个主要任务:软件设计;代码生成;软件测试。包括三个主要任务:软件设计;代码生成;软件

21、测试。软件工程的一般视图软件工程的一般视图32与一般软件工程相关的三个阶段:与一般软件工程相关的三个阶段:维护阶段集中于维护阶段集中于“改变改变”: 涉及纠正原有错误、为新环境而做的适应性修改和用户需求涉及纠正原有错误、为新环境而做的适应性修改和用户需求变化的增强性修改。变化的增强性修改。 包括四类修改:纠错、适应、增强和预防。包括四类修改:纠错、适应、增强和预防。 软件项目追踪和控制;软件项目追踪和控制; 正式的技术复审;正式的技术复审; 软件质量保证;软件质量保证; 软件配置管理;软件配置管理; 文档的准备和产生;文档的准备和产生; 可复用管理可复用管理 测试测试 风险管理风险管理软件工程

22、的一般视图所涉及的保护性活动软件工程的一般视图所涉及的保护性活动:软件工程的一般视图软件工程的一般视图33软件工程与一般工程的差异软件工程与一般工程的差异v软件是逻辑产品而不是实物产品软件是逻辑产品而不是实物产品v软件的功能依赖于硬件和软件的运行环境以软件的功能依赖于硬件和软件的运行环境以及人们对它的操作及人们对它的操作v软件设计的复杂性软件设计的复杂性v软件特征:功能的多样性软件特征:功能的多样性 实现的多样性实现的多样性 能见度低能见度低 软件结构合理性差软件结构合理性差v智力密集及知识产权保护智力密集及知识产权保护34软件工程知识结构软件工程知识结构 软件配置管理软件配置管理 软件工程管理软件工程管理 软件工程过程软件工程过程 软件工程工具和方法软件工程工具和方法 软件

温馨提示

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

评论

0/150

提交评论