您好,欢迎访问三七文档
1第11章软件工程管理管理的目的与内容软件估算模型软件成本估计人员的分配与组织项目进度安排软件知识产权保护2管理的目的与内容目的按预定的时间和费用,完成软件的计划、开发和维护内容费用管理估算软件的开发费用管理开发费用的有效使用质量管理(包括配置管理)项目的其它管理项目进度安排人员的分配与组织3软件估算模型静态单变量资源模型Putnam资源模型COCOMO模型4静态单变量资源模型资源=c1x(估计的软件特征)c2资源开发工作量(E)、开发时间(T)或开发人数(P)估计的软件特征源程序长度(L)或软件工作量(E)c1,c2依赖于开发环境和软件应用领域的常数5Putnam资源模型L=cK1/3T4/3或K=L3/(c3T4)L(行):源程序长度T(年):开发时间K(人-年):全生存期工作量c:与开发环境有关的常数6COCOMO模型COnstructiveCOstMOdel以静态单变量模型为基础将软件分类:组织半独立嵌入增加工作量调节因子7不同类型软件的COCOMO模型软件类别模型方程适用范围组织型E=3.2×L1.05T=2.5×E0.38高级语言应用程序,如科学计算,数据处理企业管理程序等半独立型E=3.0×L1.12T=2.5×E0.35大多数实用程序,如编辑程序、连接程序编辑程序等嵌入型E=2.8×L1.20T=2.5×E0.32与硬件关系密切的系统程序,如操作系统数据库管理系统,实时处理与控制程序等8调节因子和它的值范围属性调节因子调节值范围例13.1中使用的值产品属性要求的可靠性等级数据库规模产品复杂度0.75-1.400.94-1.160.70-1.651.000.941.30计算机属性对程序执行时间的约束对程序占用存储容量的约束开发环境的变动开发环境的响应时间1.00-1.661.0-1.560.87-1.300.87-1.151.111.061.001.00人员属性分析员水平程序员水平对应用领域的熟悉程度对开发环境的熟悉程度对所用语言的熟悉程度1.46-0.711.42-0.701.29-0.821.21-0.901.14-0.950.860.861.001.101.00项目属性开发方法的现代化软件工具的数质量完成时间的限制1.24-0.821.24-0.831.23-1.100.911.101.009软件成本估计自顶向下成本估计由底向上成本估计算法模型估计10自顶向下成本估计首先估算总成本然后在项目内部进行成本分配特尔斐Delphi法多个专家各自填表综合专家意见,摘要通知大家开始新一轮估计多次反复,直到专家意见接近11由底向上成本估算先将开发任务分解为许多子任务子任务分成子子任务估计各个任务单元的成本汇合成项目总成本12算法模型估计算法模型就是资源模型由历史数据导出选择适用的模型模型估计法与自顶向下估计或由底向上估计结合使用13人员的分配与组织Rayleigh-Norden曲线两条重要定律人员组织14Rayleigh-Norden曲线①②③tdt人力①浪费的人力②不足的人力③过晚的人力15两条重要的定律人员-时间权衡定律Brooks定律向一个已经延晚的项目追加开发人员,可能使它完成得更晚E=常数/(T或td)416人员组织层次型组织结构软件经理项目经理开发小组民主开发小组无我程序设计主程序员小组一元化领导主程序员分配工作主程序员决定重大问题17项目进度安排计划评审技术建立PERT图找出关键路径标出最迟开始时间PERT图的使用Gannt图18PERT图例子测试数据2编码4产品测试4测试软件6测试计划2起点分析终点文档2设计419关键路径编码4产品测试4测试软件6测试数据2测试计划2起点终点文档2设计4分析3(0,0)(0,3)(0,2)(3,5)(2,8)(3,7)(7,9)(7,11)(15,15)(11,15)20第12章软件质量管理从质量保证到质量认证质量保证软件可靠性程序正确性证明CMM软件能力成熟度模型ISO9000国际标准软件度量21从软件质量保证到质量认证质量管理的三个阶段质量检验全面质量管理TQC质量认证CMM软件能力成熟度模型ISO9000国际标准22质量保证软件的质量属性功能性可靠性易用性效率可维护性可移植性质量保证的活动内容23质量保证的活动内容复审:计划与开发方法:设计、编码…控制:软件配置软件测试24软件可靠性可靠性的定义和分级定义:在给定的时间内,程序按照规定的条件成功地运行的概率可靠性等级可靠性模型软件容错技术25可靠性分级表分级故障的后果开发工作量比例因子甚低低正常高甚高工作略有不便有损失,但容易弥补弥补损失比较困难重大的经济损失危及人的生命0.750.881.001.151.4026可靠性模型正比于遗留故障数的宏观模型平均故障时间模型(MTTF模型)错误植入模型27软件容错技术容错软件(有抗故障功能的软件)屏蔽错误修复错误减少影响冗余技术结构冗余时间冗余信息冗余容错软件的设计28静态冗余结构和动态冗余结构M1M2M3VM1M2MnIUu1u2u3I主模块备用备用…………29容错软件设计建立需求说明,设计软件的非容错结构分析错误类型确定容错范围确定采用的冗余技术,修改结构评估容错效果30程序正确性证明用数学的方法,证明程序具有某些性质S…P{P}S{R}…R31CMM软件能力成熟度模型CMM的基本概念软件过程关键过程域CMM模型5级,18个关键过程域,52个过程目标,316种关键实践32过程能力等级特点关键过程域1.初始级(Initial)软件过程是无序的,对过程几乎没有定义,成功取决于个人的努力。管理是消防队救火式的。2.可重复级(Repeatable)建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程规则和纪律,能重复早先类似应用项目取得的成功。需求管理软件项目策划软件项目跟踪和监督软件子合同管理软件质量保证软件配置管理3.已定义级(Defined)已将软件管理和工程两个方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经过批准、剪裁的标准软件过程来开发和维护软件。组织过程定义组织过程焦点培训大纲集成软件管理软件产品工程组际协调同行专家评审4.已管理级(Managed)收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。定量的过程管理软件质量管理5.优化级(Optimizing)过程的量化反馈和先进的新思想、新技术促使过程不断改进。缺陷预防技术变更管理过程变更管理33CMM应用能力评估软件过程评估软件能力评价过程改善引用CMM关键实践改善本机构的软件过程34ISO9000国际标准质量术语标准ISO8402-1994质量保证标准ISO9001质量管理标准ISO9004-135软件企业实施ISO9000标准知识准备立法宣传执行监督改进36软件度量项目度量项目度量的内容面向功能的项目度量过程度量37项目度量的基本度量S.R.Schach,1992U.S.AirForce,93M-017报告常用单位Size规模Size规模LOC,KLOCEffort工作量Effort工作量人-月Duration时间Schedule进度月Quality质量Quality质量错误数/KLOCCost成本Rework返工元38第13章软件工程环境什么是软件工程环境CASE环境的组成与结构CASE环境实例RationalSUITEEnterpriseStudio青鸟系统39软件工程环境软件工程环境统一集成机制下的一系列软件工具支持与软件开发相关的过程、活动和任务软件开发环境的特点友善和统一的用户界面集成化的软件工具数据集成界面集成控制集成过程集成平台集成40理想环境模型自动化(A)AUTOMATION方法(M)METHODS过程(P)PROCESS41CASE环境CASE计算机辅助软件工程现代化软件开发环境的总称软件开发环境程序设计支持环境软件支持环境集成化项目支持42CASE环境的组成CASE工具集成化框架为可移植性服务的机构操作系统硬件平台环境体系结构43CASE集成框架的典型结构用户界面层界面工具箱表示协议工具层工具管理服务CASE工具工具管理服务……工具层…………对象管理层集成服务配置管理服务共享中心库层CASE数据库访问控制功能44CASE结构示例45CASE环境–RationalSUITE软件开发过程框架需求管理工具面向对象分析设计工具配置管理工具变更管理工具测试工具46CASE环境–青鸟系统全面支持面向对象软件开发开放性环境集成机制支持多种软件开发方法既是通用性软件工程环境,又能成为特定领域的专用性应用开发平台47第14章软件工程高级课题Web工程基于体系结构的软件开发面向方面的软件开发形式化软件开发48Web工程YogeshDeshpande和SteveHansen在1998年就提出了Web工程的概念。Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统。49Web工程与软件工程Web工程与软件工程的区别WebApp强调信息的含量;传统软件工程则强调系统功能的完善WebApp关注视觉和感觉;传统的软件界面则奉行“简单为美”的原则多数WebApp是数据驱动的;传统的软件开发多是功能驱动的或过程驱动的WebApp能够适应不同的用户;传统的软件系统的用户群体则通常圈定在某个范围之内WebApp必须在短期内开发完成,很难应用传统软件工程中使用的形式化方法和测试技术Web工程要求艺术、技术和科学在更大范围内相互结合50Web开发Web开发团队Web决策人员内容提供人员Web开发人员Web发布人员Web支持人员Web管理员最终用户51Web开发Web工程过程Web工程过程活动贯穿Web生命周期WebApp常常以增量的方式开发;需求经常发生变化;开发期限较短。Web分析内容分析交互分析功能分析配置分析导航关系分析安全分析52Web开发Web设计设计原则和目标设计要尽可能简单布局要尽可能美观整体要尽可能保持一致界面设计设计方法设计中的问题设计人员的检查53Web开发Web测试内容测试:检查内容的正确性、一致性、无歧义等问题;功能测试:查找不符合用户需求的错误;结构测试:确保其结构是符合WebApp的内容和功能的,确保它是可扩展的,支持新的内容或功能;导航测试:确保所有的导航用法和意义都被实现,以便发现导航错误(如空链接、错误链接等);易用性测试:确保每个不同的用户群能被WebApp界面支持,能学会并运用所有需要的导航用法和意义;性能测试:在不同操作条件、配置和负载下进行,确保系统能响应用户的交互操作,能在可接受的性能下降的条件下处理极端的负载量;兼容性测试:在客户机和服务器上设定不同的配置条件下执行WebApp。目的是找出那些只在特定配置下会出现的错误;协同工作测试:确保WebApp能很好地与其他的应用程序和数据库交互;安全性测试:评估潜在的易攻击性,任何一个成功的入侵都认为是安全方面的失败。54基于体系结构的软件开发基于构件和体系结构的软件开发方法正逐渐成为近代软件工程研究的重点应用软件的体系结构程序的体系结构业务的体系结构技术的体系结构信息的体系结构编程范型对体系结构的影响编程范型对复用粒度的影响软件体系结构技术仍在发展55面向方面的软件开发在软件系统的设计过程中,人们首先关注的往往是与系统业务相关的模块,然后也会考虑分布在多个核心模块中的公共行
本文标题:计算机软件工程课件
链接地址:https://www.777doc.com/doc-211240 .html