计算机软件工程课件_第1页
计算机软件工程课件_第2页
计算机软件工程课件_第3页
计算机软件工程课件_第4页
计算机软件工程课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

第11章软件工程管理管理的目的与内容软件估算模型软件成本估计人员的分配与组织项目进度安排软件知识产权保护1管理的目的与内容目的按预定的时间和费用,完成软件的计划、开发和维护内容费用管理估算软件的开发费用管理开发费用的有效使用质量管理(包括配置管理)项目的其它管理项目进度安排人员的分配与组织2软件估算模型静态单变量资源模型Putnam资源模型COCOMO模型3静态单变量资源模型资源=c1x(估计的软件特征)c2资源开发工作量(E)、开发时间(T)或开发人数(P)估计的软件特征源程序长度(L)或软件工作量(E)c1,c2依赖于开发环境和软件应用领域的常数4Putnam资源模型L=cK1/3T4/3或K=L3/(c3T4)L(行):源程序长度T(年):开发时间K(人-年):全生存期工作量c:与开发环境有关的常数5COCOMO模型COnstructiveCOstMOdel以静态单变量模型为基础将软件分类:组织半独立嵌入增加工作量调节因子6不同类型软件的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与硬件关系密切的系统程序,如操作系统数据库管理系统,实时处理与控制程序等7调节因子和它的值范围

属性调节因子调节值范围例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.008软件成本估计自顶向下成本估计由底向上成本估计算法模型估计9自顶向下成本估计首先估算总成本然后在项目内部进行成本分配特尔斐Delphi法多个专家各自填表综合专家意见,摘要通知大家开始新一轮估计多次反复,直到专家意见接近10由底向上上成本估估算先将开发发任务分分解为许许多子任任务子任务分分成子子子任务估计各个个任务单单元的成成本汇合成项项目总成成本11算法模型型估计算法模型型就是资资源模型型由历史数数据导出出选择适用用的模型型模型估计计法与自自顶向下下估计或或由底向向上估计计结合使使用12人员的分配配与组织Rayleigh-Norden曲线线两条重要定定律人员组织13Rayleigh-Norden曲线线①②③tdt人力①浪费的人人力②不不足的人力力③过晚晚的人力14两条重要的的定律人员-时间间权衡定律律Brooks定律向一个已经经延晚的项项目追加开开发人员,,可能使它它完成得更更晚E=常数/(T或td)415人员组织层次型组织织结构软件经理项项目经理理开开发发小组民主开发小小组无我程序设设计主程序员小小组一元化领导导主程序员分分配工作主程序员决决定重大问问题16项目进度安安排计划评审技技术建立PERT图找出关键路路径标出最迟开开始时间PERT图图的使用Gannt图17PERT图图例子测试数据2编码4产品测试4测试软件6测试计划2起点分析终点文档2设计418关键路径编码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)19第12章软软件质量量管理从质量保证证到质量认认证质量保证软件可靠性性程序正确性性证明CMM软件件能力成熟熟度模型ISO9000国国际标准软件度量20从软件质量量保证到质质量认证质量管理的的三个阶段段质量检验全面质量管管理TQC质量认证CMM软件能力成成熟度模型型ISO9000国际标准21质量保证软件的质量量属性功能性可靠性易用性效率可维护性可移植性质量保证的的活动内容容22质量保证的的活动内容容复审:计划与开发方法:设计、编码…控制:软件配置软件测试23软件可靠性性可靠性的定定义和分级级定义:在给给定的时间间内,程序序按照规定定的条件成成功地运行行的概率可靠性等级级可靠性模型型软件容错技技术24可靠性分级级表分级故障的后果开发工作量比例因子甚低低正常高甚高工作略有不便有损失,但容易弥补弥补损失比较困难重大的经济损失危及人的生命0.750.881.001.151.4025可靠性模型型正比于遗留留故障数的的宏观模型型平均故障时时间模型((MTTF模型)错误植入模模型26软件容错技技术容错软件((有抗故障障功能的软软件)屏蔽错误修复错误减少影响冗余技术结构冗余时间冗余信息冗余容错软件的的设计27静态冗余结结构和动态态冗余结构构M1M2M3VM1M2MnIUu1u2u3I主模块备用备用…………28容错软件设计计建立需求说明,设计软件的非容错结构分析错误类型确定容错范围确定采用的冗余技术,修改结构评估容错效果29程序正确性证证明用数学的方法法,证明程序序具有某些性性质S…P{P}S{R}…R30CMM软件能能力成熟度模模型CMM的基本本概念软件过程关键过程域CMM模型5级,18个个关键过程域域,52个过过程目标,316种关键键实践31过程能力等级特点关键过程域1.初始级(Initial)软件过程是无序的,对过程几乎没有定义,成功取决于个人的努力。管理是消防队救火式的。

2.可重复级(Repeatable)建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程规则和纪律,能重复早先类似应用项目取得的成功。需求管理软件项目策划软件项目跟踪和监督软件子合同管理软件质量保证软件配置管理3.已定义级(Defined)已将软件管理和工程两个方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经过批准、剪裁的标准软件过程来开发和维护软件。组织过程定义组织过程焦点培训大纲集成软件管理软件产品工程组际协调同行专家评审4.已管理级(Managed)收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。定量的过程管理软件质量管理5.优化级(Optimizing)过程的量化反馈和先进的新思想、新技术促使过程不断改进。缺陷预防技术变更管理过程变更管理32CMM应用能力评估软件过程评估估软件能力评价价过程改善引用CMM关关键实践改善本机构的的软件过程33ISO9000国际际标准质量术语标准准ISO8402-1994质量保证标准准ISO9001质量管理标准准ISO9004-134软件企业实施施ISO9000标准知识准备立法宣传执行监督改进35软件度量项目度量项目度量的内内容面向功能的项项目度量过程度量36项目度量的基基本度量S.R.Schach,1992U.S.AirForce,93M-017报告常用单位Size规模Size规模LOC,KLOCEffort工作量Effort工作量人-月Duration时间Schedule进度月Quality质量Quality质量错误数/KLOCCost成本Rework返工元37第13章软软件工程环境境什么是软件工工程环境CASE环境境的组成与结结构CASE环境境实例RationalSUITEEnterpriseStudio青鸟系统38软件工程环境境软件工程环境境统一集成机制制下的一系列列软件工具支持与软件开开发相关的过过程、活动和和任务软件开发环境境的特点友善和统一的的用户界面集成化的软件件工具数据集成界面集成控制集成过程集成平台集成39理想环境模型型自动化(A)AUTOMATION方法(M)METHODS过程(P)PROCESS40CASE环境境CASE计算算机辅助软件件工程现代化软件开开发环境的总总称软件件开开发发环环境境程序序设设计计支支持持环环境境软件件支支持持环环境境集成成化化项项目目支支持持41CASE环环境境的的组组成成CASE工具集成化框架为可移植性服务的机构操作系统硬件平台环境体系结构42CASE集成框框架的典典型结构构用户界面层界面工具箱表示协议工具层工具管理服务CASE工具工具管理服务……工具层…………对象管理层集成服务配置管理服务共享中心库层CASE数据库访问控制功能43CASE结构示示例44CASE环境––RationalSUITE软件开发发过程框框架需求管理理工具面向对象象分析设设计工具具配置管理理工具变更管理理工具测试工具具45CASE环境––青鸟鸟系统全面支持持面向对对象软件件开发开放性环环境集成成机制支持多种种软件开开发方法法既是通用用性软件件工程环环境,又又能成为为特定领领域的专专用性应应用开发发平台46第14章章软件件工程高高级课题题Web工工程基于体系系结构的的软件开开发面向方面面的软件件开发形式化软软件开发发47Web工工程YogeshDeshpande和SteveHansen在1998年就提提出了Web工工程的概概念。Web工工程作为为一门新新兴的学学科,提提倡使用用一个过过程和系系统的方方法来开开发高质质量的基基于Web的系系统。它它"使用合理理的、科科学的工工程和管管理原则则,用严严密的和和系统的的方法来来开发、、发布和和维护基基于Web的系系统"。48Web工工程与软软件工程程Web工工程与软件工工程的区区别WebApp强强调信息息的含量量;传统统软件工工程则强强调系统统功能的的完善WebApp关关注视觉觉和感觉觉;传统统的软件件界面则则奉行““简单为为美”的的原则多数WebApp是数数据驱动动的;传传统的软软件开发发多是功功能驱动动的或过过程驱动动的WebApp能能够适应应不同的的用户;;传统的的软件系系统的用用户群体体则通常常圈定在在某个范范围之内内WebApp必必须在短短期内开开发完成成,很难难应用传传统软件件工程中中使用的的形式化化方法和和测试技技术Web工工程要求求艺术、、技术和和科学在在更大范范围内相相互结合合49Web开开发Web开开发团队队Web决决策人员员内容提供供人员Web开开发人员员Web发发布人员员Web支支持人员员Web管管理员最终用户户50Web开开发Web工工程过程程Web工工程过程程活动贯贯穿Web生命命周期WebApp常常常以增增量的方方式开发发;需求经常常发生变变化;开发期限限较短。。Web分分析内容分析析交互分析析功能分析析配置分析析导航关系系分析安全分析析51Web开开发Web设设计设计原则则和目标标设计要尽尽可能简简单布局要尽尽可能美美观整体要尽尽可能保保持一致致界面设计计设计方法法设计中的的问题设计人员员的检查查52Web开开发Web测测试内容测试试:检查查内容的的正确性性、一致致性、无无歧义等等问题;;功能测试试:查找找不符合合用户需需求的错错误;结构测试试:确保保其结构构是符合合WebApp的内容容和功能能的,确确保它是是可扩展展的,支支持新的的内容或或功能;;导航测试试:确保保所有的的导航用用法和意意义都被被实现,,以便发发现导航航错误((如空链链接、错错误链接接等);;易用性测测试:确确保每个个不同的的用户群群能被WebApp界界面支持持,能学学会并运运用所有有需要的的导航用用法和意意义;性能测试试:在不不同操作作条件、、配置和和负载下下进行,,确保系系统能响响应用户户的交互互操作,,能在可可接受的的性能下下降的条条件下处处理极端端的负载载量;兼容性测测试:在在客户机机和服务务器上设设定不同同的配置置条件下下执行WebApp。。目的是是找出那那些只在在特定配配置下会会出现的的错误;;协同工工作测测试::确保保WebApp能很很好地地与其其他的的应用用程序序和数数据库库交互互;安全性性测试试:评评估潜潜在的的易攻攻击性性,任任何一一个成成功的的入侵侵都认认为是是安全全方面面的失失败。。53基于体体系结结构的的软件件开发发基于构构件和和体系系结构构的软软件开开发方方法正正逐渐渐成为为近代代软件件工程程研究究的重重点应用软软件的的体系系结构构程序的的体系系结构构业务的的体系系结构构技术的的体系系结构构信息的的体系系结构构编程范范型对对体系系结构构的影影响编程范范型对对复用用粒度度的影影响软件件体体系系结结构构技技术术仍仍在在发发展展54面向向方方面面的的软软件件开开发发在软软件件系系统统的的设设计计过过程程中中,,人人们们首首先先关关注注的的往往往往是是与与系系统统业业务务相相关关的的模模块块,,然然后后也也会会考考虑虑分分布布在在多多个个核核心心模模块块中中的的公公共共行行为为前者者称称为为核核心心关关注注点点,,后后者者称称为为横横切切关关注注点点面向向对对象象的的编编程程技技术术((OOP))技技术术可可以以很很好好地地完完成成对对核核心心关关注注点点的的设设计计与与开开发发,,而而对对横横切切关关注注点点却却有有些些力力不不从从心心横切切关关注注点点会会跨跨越越多多个个模模块块,,是是多多维维的的,,而而OOP的的设设计计方方法法却却是是一一维维的的,,把把多多维维的的需需求求映映射射到到一一维维上上,,便便产产生生了了许许多多需需要要探探讨讨的的问问题题。。55面向向方方面面的的软软件件开开发发面向向方方面面编编程程((Aspect-OrientedProgramming,,AOP)是是对对软软件件工工程程的的一一种种革革新新性性思思考考,,是是由由施施乐乐公公司司帕帕洛洛阿阿尔尔托托研研究究中中心心(XeroxPaloAltoResearchCenter)的的GregorKiczales等等在在1997年年提提出出的的,,主主要要用用来来解解决决横横切切关关注注点点问问题题AOP开发环环境AspectJAOP为开发发者提供了一一种描述横切切关注点的方方法,人们可可以通过它单单独实现横切切模块AOP提供了了一种机制,,使得核心模模块和横切模模块能够融合合在一起,从从而构造出最最后的实际系系统56面向方面编程程1.关注点(Concem)关注点也就是是要考察或解解决的问题。。2.方面(Aspect)方面是一个抽抽象的概念,,从软件的角角度来说是指指在应用程序序不同模块中中的某一个领领域或方面。。从程序抽象象的角度来说说,可以对照照OOP中的的类来理解。。3.连接点(Joinpoint)连接点也就是是运用程序执执行过程中需需要插入方面面模块的某一一点。连接点点主要强调的的是一个具体体的“点”概概念。这个点点可以是一个个方法、一个个属性、构造造函数、类静静态初始化块块,甚至一条条语句。4.织入(weaving)织入是指把解解决横切问题题的方面模块块,与系统中中的其它核心心模块通过一一定策略或规规则组合到一一起的过程。。57AOP语言规规范AOP语言的的两个方面关注点的实现现织入规则规范范AOP设计的的开发步骤::(1)方面分分解:分解需需求提取出横横切关注点和和一般关注点点。这一步把把核心模块级级关注和系统统级的横切关关注点分离开开来。(2)关注点点实现:各自自独立的实现现这些关注点点。(3)方面的的重新组合::在这一步,,方面集成器器通过创建一一个模块单元元——方面来来指定重组的的规则。重组组过程(也叫叫织入或结合合)则使用这这些信息来构构建最终系统统。58AOP和OOP比较OOP和AOP的关系OOP是AOP的技术基基础AOP是对OOP的继承承和发展区别可扩展性可重用性易理解性和易易维护性59面向方面的软软件开发面向方面的软软件开发过程程60形式化的软件件开发形式化方法的的定义形式化方法的的基本含义是是借助数学的的方法来研究究计算机科学学中的有关问问题用于开发计算算机系统的形形式化方法是是描述系统性性质的基于数数学的技术,,这样的形式式化方法提供供了一个框架架,可以在框框架中以系统统的而不是特特别的方式刻刻画、开发和和验证系统狭义地,形式式化方法是软软件规格(Specification)和验验证(Verfication)的的方法

温馨提示

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

评论

0/150

提交评论