软件工程Chapter学习

上传人:无*** 文档编号:158515463 上传时间:2022-10-05 格式:PPTX 页数:56 大小:245.11KB
收藏 版权申诉 举报 下载
软件工程Chapter学习_第1页
第1页 / 共56页
软件工程Chapter学习_第2页
第2页 / 共56页
软件工程Chapter学习_第3页
第3页 / 共56页
资源描述:

《软件工程Chapter学习》由会员分享,可在线阅读,更多相关《软件工程Chapter学习(56页珍藏版)》请在装配图网上搜索。

1、1可行性分析 在软件项目早期,需要对软件问题进行高层架构分析,以确定项目的可行性 根据可行性分析的结果制定出有效的项目实施计划,以指导软件项目的顺利展开第1页/共56页2可行性分析的意义 通过少量费用,对项目能否实施尽早做出决断,以避免开展以后所带来的浪费 根据项目所受到的条件限制,对有待开发的系统在体系构造、工作模式等方面做出高层选择,以利于项目今后的实现 可以把可行性分析看作软件定义时期需要进行的前导性工作,其结果可以作为一个高层框架被用于软件需求分析之中,以便今后软件规格定义工作的顺利开展第2页/共56页3可行性分析内容 技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进

2、行评价 通过技术可行性的分析,将为新系统提交技术可行性评估,以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等第3页/共56页4可行性分析内容 经济可行性:进行成本效益分析,评估项目的开发成本基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用第4页/共56页5可行性分析内容 应用可行性:从法律角度考虑:赌博软件,非法网站 从市场推广、应用前景的角度考虑 从用户操作规程的角度考虑第5页/共56页6可行性分析过程1.建立系统模型:研究现有的模型导出现有模型的逻辑模型设想新的逻辑模型提出新系统的物理模型

3、第6页/共56页7可行性分析过程 做什么 抽象化 导 出 怎么做 实例化 当前 系统 目标 系统 物理模型 物理模型 逻辑模型 逻辑模型 模型化具体化建立系统模型的步骤 第7页/共56页8可行性分析过程2.进行可行性评估(三个评估结论)3.撰写可行性分析报告第8页/共56页9提纲 可行性分析 项目计划简介 项目估算 项目计划的制定与提交第9页/共56页10项目计划简介 常用的项目计划书:项目开发计划、验收计划、质量计划、维护计划、配置管理计划、人员计划等,涉及的内容包括:开发团队的组织,人员及分工 项目成本预算 软硬件资源需求 项目任务分解及每项任务里程碑标志 基于里程碑的进度计划与人员配置计

4、划 项目风险计划 项目监督计划第10页/共56页11项目计划简介 制定项目目标,要遵循的原则(SMART):Specific:具体的、清晰的、简明的,能够理解 Measurable:可以测量的 Achievable:可以实现的,也就是目标不能过低和偏高 Realistic:实实在在、切实可行(Relevant:与其他目标是相关的、与工作职责是相关的)Time-based:有时限的(开始和结束日期)第11页/共56页12项目计划简介 高层次的计划,为后续过程活动建立框架预测未来(不确定性)目的:估计项目所需要的资源和完成项目所需要的时间,从而管理和控制项目 估算是基础:从客户、团队成员处收集到的

5、项目信息(定性)过去完成的项目的度量数据(定性+定量)第12页/共56页13项目计划简介 影响项目估算的因素:项目复杂性:越复杂越难估算 项目规模:规模越大越难估算,常使用分解方式 结构的不确定性:需求被固定的程度、功能被分解的容易程度等 历史信息可用性:若有相当经验并充分总结,则能提供很好的借鉴,复杂性再高也游刃有余 不确定性是绝对存在的第13页/共56页14项目计划简介 软件范围的确定:软件项目计划的第一个任务,应该是无歧义的、有边界的 可能包括:将被处理的数据和控制、功能、性能、约束、接口、可靠性等 功能界定是基础 主要方法:与用户交流第14页/共56页15项目计划简介 项目所需资源:开

6、发环境:硬件+软件 软件构件:可复用的构件(组件、中间件等)成品构件:购买、已商品化的构件 具有完全经验的构件:完善和文档化的工件、修改风险小 具有部分经验的构件:实质性修改,风险较大 新构件:专门开发(有时新建比修改成本更小)开发人员第15页/共56页16提纲 可行性分析 项目计划简介 项目估算 项目计划的制定与提交第16页/共56页17项目估算 主要指项目开发成本的估算,其取决于项目工作量的估算 方法:基于已经完成的类似项目进行估算(小项目)分解法把项目分解成容易估算的若干任务(大项目,结合经验模型)一个或多个经验模型进行估算第17页/共56页18项目估算 软件规模估算方法:推理法:分解+

7、个人经验+历史数据 标准构件法:集成多个通用标准构件 修改法:已有软件模块的修改 结果可能是乐观估计、可能估计和悲观估计第18页/共56页19项目估算 经验估算模型:代码行LOC和功能点FP测量 估算模型 COCOMO模型 Putnam软件方程式第19页/共56页20项目估算代码行和功能点测量 由经验导出 把工作量作为代码行或功能点的函数,其中:代码行LOC:对非过程语言不适用 功能点FP:分解成基本功能点,然后进行加权计数 这种估算模型计算较困难,很难准确得出结果第20页/共56页21项目估算代码行 面向规模的度量,是对软件和软件开发过程的直接度量 可以建立一个面向规模的数据表格来记录项目的

8、某些信息,表格列出了在过去几年完成的每一个软件开发项目和关于这些项目的相应面向规模的数据第21页/共56页22项目估算代码行 项目aaa-01:规模为 12.1 KLOC、工作量用了24个人月、成本为168,000元、文档页数为365、在交付用户使用后第一年内发现了29个错误、有3个人参加了开发工作第22页/共56页23项目估算代码行 根据数据表格可以对所有的项目计算出平均值:生产率KLOCPM(人月)质量错误数KLOC 成本元LOC 文档文档页数KLOC第23页/共56页24项目估算面向规模度量的争议 大多数争议是:是否使用代码行数(LOC)做为度量的依据 支持者认为:LOC是所有软件开发项

9、目的必然产物,它能够很容易地被计算 现在许多既存的软件估算模型都是使用LOC或者KLOC做为关键输入的 大量以LOC为根据的文献和数据已经存在第24页/共56页25项目估算面向规模度量的争议 反对者们认为:LOC度量与程序设计语言有关,它们不适用于设计很好且较短的程序,也不适合于非过程型语言 若在估算中使用,很难达到要求的详细程度(计划者必须在分析和设计远未完成之前就要估算出需要生产的LOC)第25页/共56页26项目估算功能点测量 面向功能的度量,是对软件和软件开发过程的间接度量,主要考虑程序的“功能性”和“实用性”,而不是对LOC计数第26页/共56页27项目估算功能点测量 基本功能点包括

10、:用户输入数:各个用户输入是面向不同应用的输入数据 用户输出数:各个用户输出是面向应用的输出信息,包括报告、屏幕信息、错误信息等 文件数:每一个逻辑主文件都应计数 外部接口数:与系统中其他设备通过外部接口读写信息次数均应计数 用户查询数:查询是一种联机的交互操作,每次询问/响应都应计数 计算每个模块的相应基本功能点数,根据其复杂程度给出复杂度系数,进行加权计数,最后总计出模块的功能点数第27页/共56页28项目估算功能点测量第28页/共56页29项目估算功能点测量 FP总计数(0.65+0.01SUM(Fi)Fi(i114)是复杂性校正值,它们应通过逐一回答14个问题来确定 Fi的取值05:0

11、-没有影响、1-偶然的、2-适中的、3-普通的、4-重要的、5-极重要的第29页/共56页30项目估算功能点测量 1.系统是否需要可靠的备份和恢复?2.是否需要数据通信?3.是否有分布处理的功能?4.是否性能成为关键?5.系统是否运行在既存的高度实用化的操作环境中?6.系统是否需要联机数据项?7.联机数据项是否需要输入处理以建立多重窗口显示和操作?第30页/共56页31项目估算功能点测量 8.主文件是否联机更新?9.输入、输出、文件、查询是否复杂?10.内部处理过程是否复杂?11.程序代码是否可复用?12.设计中是否包括了转移和安装?13.系统是否设计成可以重复安装在不同机构中?14.系统是否

12、设计成易修改和易使用?第31页/共56页32项目估算功能点测量 一旦计算出功能点,就可仿照LOC的方式度量软件的生产率、质量和其它属性:生产率FPPM(人月)质量错误数FP 成本元FP 文档文档页数FP第32页/共56页33项目估算面向功能度量的争议 功能点度量的支持者认为FP与程序设计语言无关,它所依据的是在项目评估早期就可能知道的数据 反对者认为这种方法需要某些“魔术手法”:在其计算中依赖的是主观因素而不是客观实际 信息域的数据事后很难收集,而且FP没有直接的物理意义,它只不过是一个数字第33页/共56页34项目估算估算模型 对以前项目中收集到的数据的回归分析 典型模型:E=A+B(ev)

13、c,其中:A,B和c是由经验导出的常数,ev是估算变量LOC或FP,E是以人月为单位的工作量 大多数估算模型都有项目调整因子第34页/共56页35项目估算COCOMO模型 Barry Boehm在软件经济学中提出的层次体系,称为构造成本型模型(COnstructive COst MOdel),演化为COCOMOII COCOMOII是一个估算模型层次体系,包括:应用组装模型:软件早期阶段,原型开发 早期设计阶段模型:需求已经稳定 体系结构后阶段模型:用于软件构造中第35页/共56页36项目估算COCOMO模型 基本规模估算单元:对象点、功能点和代码行 将软件分类,软件开发项目的总体类型:组织

14、半独立 嵌入第36页/共56页37项目估算COCOMO模型 COCOMO模型按其详细程度分成三级:基本COCOMO模型 中间COCOMO模型 详细COCOMO模型 基本COCOMO模型是一个静态单变量模型,它用源代码行数(LOC)为自变量的(经验)函数来计算软件开发工作量第37页/共56页38项目估算COCOMO模型 中间COCOMO模型则在用LOC为自变量的函数计算软件开发工作量(此时称为名义工作量)的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算 详细COCOMO模型包括中间COCOMO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过

15、程中每一步骤(分析、设计等)的影响第38页/共56页39项目估算基本COCOMO模型软件类别软件类别模型方程模型方程组织型MM=2.4KDSI1.05TDEV=2.5MM0.38半独立型MM=3.0KDSI1.12TDEV=2.5MM0.35嵌入型MM=3.6KDSI1.20TDEV=2.5MM0.32n DSI(源指令条数),KDSI1000DSIn MM(度量单位为人月)表示开发工作量n TDEV(度量单位为月)表示开发进度,它由工作量决定第39页/共56页40项目估算中间COCOMO模型 进一步考虑15种影响软件工作量的因素,通过定下乘法因子,修正COCOMO工作量公式和进度公式,可以更

16、合理地估算软件(各阶段)的工作量和进度第40页/共56页41项目估算中间COCOMO模型软件类别软件类别模型方程模型方程适用范围适用范围组织型MM=3.2KDSI1.05TDEV=2.5MM0.38高级语言应用程序(如科学计算,数据处理),企业管理程序等半独立型MM=3.0KDSI1.12TDEV=2.5MM0.35大多数实用程序(如编辑程序、连接程序)嵌入型MM=2.8KDSI1.20TDEV=2.5MM0.32与硬件关系密切的系统程序(如操作系统)、数据库管理系统,实时处理与控制程序等n DSI(源指令条数),KDSI1000DSIn MM(度量单位为人月)表示名义工作量n TDEV(度量

17、单位为月)表示开发进度,它由工作量决定第41页/共56页42项目估算中间COCOMO模型第42页/共56页43项目估算中间COCOMO模型 此时,实际工作量公式改成:例:一个32KDSI的声音输入系统是一个输入原型,或是一个可行性表演模型,所需可靠性非常低,把此模型看做半独立型软件。则名义工作量MM3.0(32)1.12146,又查表知 f10.75,其它 fi1.00,则实际工作量MM1460.75110第43页/共56页44项目估算中间COCOMO模型 例:一个规模为10KDSI的商用微机远程通信的嵌入型软件,使用中间COCOMO模型进行成本估算。则程序名义工作量MM2.8(10)1.20

18、44.38,程序实际工作量MM44.381.1651.5第44页/共56页45项目估算中间COCOMO模型 影响工作量因素影响工作量因素 fi 情情 况况 取取 值值 1 软件可靠性软件可靠性 只用于局部地区,恢 复问题不严重 1.00(正常)2 数据库规模数据库规模 20000字节 0.94(低)3 产品复杂性产品复杂性 用于远程通信处理 1.30(很高)4 时间限制时间限制 使用70%的CPU时间 1.10(高)5 存储限制存储限制 64K中使用45K 1.06(高)6 机器机器 使用商用微处理机 1.00(额定值)7 周转时间周转时间 平均2小时 1.00(额定值)8 分析员能力分析员能

19、力 优秀人才 0.86(高)9 工作经验工作经验 远程通信工作3年 1.10(低)10 程序员能力程序员能力 优秀人才 0.86(高)11 工作经验工作经验 微型机工作6个月 1.00(正常)12 语言使用经验语言使用经验 12个月 1.00(正常)13 使用现代程序设计技术使用现代程序设计技术 1年以上 0.91(高)14 使用软件工具使用软件工具 基本的微型机软件 1.10(低)15 工期工期 9个月 1.00(正常)第45页/共56页46项目估算中间COCOMO模型 开发所用时间TDEV2.5(51.5)0.328.8(月);如果分析员与程序员的工资都按每月6,000美元计算,则该项目的

20、开发人员的工资总额为51.56,000309,000(美元)第46页/共56页47项目估算详细COCOMO模型 分层、分阶段给出工作量因素分级表 针对每一个影响因素,按模块层、子系统层、系统层,有三张不同的工作量因素分级表,供不同层次的估算使用 每一张表中工作量因素又按开发各个不同阶段给出软件可靠性工作量因素分级表(子系统层)第47页/共56页48项目估算Putnam软件方程式 一个动态多变量模型,适用于大型项目,但也可以应用在一些较小的软件项目中 E=LOCB0.333/P(1/t4),其中:E是以人月/人年为单位的工作量,t是以月或年表示的项目持续时间,B为“特殊技能因子”,P为“生产率参

21、数”更通用的形式:Imin=8.14(LOC/P)0.43,以月表示 E=180Bt3,以人月表示第48页/共56页49项目估算Putnam软件方程式 Putnam模型假定在软件开发的整个生存期中工作量有特定的分布 大型软件项目的开发工作量分布可以用Rayleigh-Norden曲线表示 这个曲线把已交付的源代码行数与工作量和开发时间联系起来第49页/共56页50项目估算Putnam软件方程式第50页/共56页51提纲 可行性分析 项目计划简介 项目估算 项目计划的制定与提交第51页/共56页52项目计划的制定与提交 软件工程项目概述 工程的主要工作内容,软件的功能和性能 为完成任务应具备的条

22、件和限制 主要参加人员的技术水平 项目完成后应移交的程序,文件,非移交的产品 应提供的服务及开始日期和期限 验收标准 完成项目的最迟期限 本计划的批准者和批准日期 用户应承担的工作,对用户的要求等第52页/共56页53项目计划的制定与提交 软件工程实施计划 本项目任务的分解,任务之间的相互关系和各项任务的责任人 各类人员的组成结构和数量 项目开发工作的进度计划,每阶段任务的开始时间和结束时间 项目成本预算和来源,各阶段的费用支出预算 关键问题及支持条件 项目最后完工交付的日期等第53页/共56页54项目计划的制定与提交 最重要的项目计划:进度计划(定义了所有项目成员的路标和沟通基石)项目计划面向所有项目成员、用户和管理人员,应包括:在相关人员之间传达项目范围 定义风险,并提出风险管理建议 为评审定义成本和进度 提供软件开发的整体方法 概述如何保证质量和管理变更 项目计划是一个动态文档,不断更新修订和补充第54页/共56页55完!第55页/共56页56感谢您的观看!第56页/共56页

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!