白盒测试
单元测试
软件维护
维护的事件流
通常维护的事件流如下图所示:
维护记录的内容
1)程序标识; 2)源语句数;
3)机器指令数; 4)使用的程序设计语言;
5)程序安装的日期; 6)自安装以来程序运行次数;
7)自安装以来程序失效次数 8)程序变动的层次和标识;
9)因程序变动而增加的源语句数;10)因程序变动而删除的源语句数;
11)每个改动耗费的人时数; 12)程序改动的日期;
13)软件工程师的名字; 14)维护要求表的标识;
15)维护类型; 16)维护开始和完成的日期;
17)累计用于维护的人时数; 18)与完成的维护相联系的纯效益。
评价维护活动的7个维度
(1) 每次程序运行平均失效的次数;
(2) 用于每一类维护活动的总人时数;
(3) 平均每个程序、每种语言、每种维护类型所做的程序变动数;
(4) 维护过程中增加或删除一个源语句平均花费的人时数;
(5) 维护每种语言平均花费的人时数;
(6) 一张维护要求表的平均周转时间;
(7) 不同维护类型所占的百分比。
90
本关任务:通过了解并学习软件维护的过程以及相关内容,完成右边选择题。
决定软件可维护性的因素
软件可维护性是:维护人员理解、改正和改进软件的难易程度。
一个软件的可维护性,主要由五个因素决定:
决定软件可维护性的最终因素是软件设计阶段所采用的方法,以及软件文档资料的好坏。提高软件的可维护性是软件工程的一个重要目标。
影响维护工作量的因素
1)系统大小。系统越大,功能越复杂,理解掌握起来就越困难,需要的维护工作量越大。
2)程序设计语言。使用功能强的程序设计语言可以控制程序的规模。语言的功能越强,生成程序所需的指令数就越少;语言的功能越弱,实现同样功能所需的语句就越多,程序就越大,维护起来就越困难。
3)系统年龄。老系统比新系统需要更多的维护工作量。许多老系统在当初并未按照软件工程的要求进行开发,没有文档,或文档太少,或者在长期的维护中许多地方与程序不一致,维护起来困难较大。
4)数据库技术的应用。使用数据库工具,可有效地管理和存储用户程序中的数据,可方便地修改、扩充报表。数据库技术的使用可以减少维护工作量。
5)先进的软件开发技术。在软件开发时,如果使用能使软件结构比较稳定的分析与设计技术(如面向对象分析、设计技术),可以减少一定的工作量。
6)其它。如,应用的类型、数学模型、任务的难度、IF嵌套深度等等都会对维护工作量产生一定的影响。
逆向工程和软件再工程的区别
软件再工程(Re-engineering), 再工程不仅能从已有的程序中重新获得设计信息,而且还能使用这些信息改建或重构现有的系统。
逆向工程(Reverse Engineering),用于软件的起始建造阶段,而Re-engineering用于软件后续的修改阶段。
50
任务要求 参考答案 评论
软件质量的概念
国际标准化组织对质量定义:“质量是反映实体(产品、过程或活
国际标准化组织对质量定义:“质量是反映实体(产品、过程或活动等)满足明确和隐含需要的能力特性总和。”在软件项目管理中,软件质量指产品、组织和体系或过程的一组固有特性,是反应能否满足客户或其他相关方给定需要的性质和特性的总体。
质量管理的意图
保障产品、服务以及质量管理过程的实现,满足组织上的和项目上的质量目的,并达到客户的满意。
质量管理目的
(1)定义并实现组织的质量管理策略、目的和规程
(2)建立质量评估准则和方法
(3)为项目提供必要的资源与信息,以支持项目质量保障活动的运行和监控
(4)收集并分析质量管理评价结果
(5)基于项目和组织方面的结果,改进质量管理策略和规程
质量管理计划内容
(1)质量要素分析
(2)质量目标
(3)人员与职责
(4)过程检查计划
(5)技术评审计划
(6)软件测试计划
(7)缺陷跟踪工具
软件质量管理过程
其中,软件过程改进根据实践中对软件过程的使用情况,对软件过程中的偏差和不足之处进行不断优化。
三种常见的参考模型
(1)Bohm 质量模型
(2)McCall 质量模型
(3)ISO软件质量模型
本关任务:了解软件项目质量管理的相关知识,回答右侧问题。
20
任务要求 参考答案 评论
CMM与CMMI
软件能力成熟度模型(Capability maturity model,CMM)由SEI(美国软件工程研究院)于1994年正式发布,它是一种软件生产过程中的行业标准模型,可定义、评价软件开发过程的成熟度,旨在软件工程过程中评估和提高工程管理能力,并对软件质量进行指
导。在CMM的基础上,2001年12月SEI正式发布了能力成熟度模型集成(Capability Maturity Model Integration),即CMMI。CMMI的出现是为了解决大型软件组织或企业使用多个能力成熟的模型过程中遇到的问题。CMMI整合了不同的CMM模型,同覆盖更广的专业领域。
CMMI五大级别
发布GJB 5000A将根据软件研制能力的成熟度等级划分为五个等级 (初始级、已管理级、已定义级、已定量管理级、优化级) , 每一个等级都是在前一个等级基础上对软件过程进行循序渐进的改进过程, 最后达到软件研制过程的迭代更新以及持续改进, 这样可以更加有效地帮助软件研发单位改进与优化软件研制管理, 提高软件产品质量。
(1)初始级
它的软件过程管理处于无序的、混乱的状态, 软件项目的成功完全依赖于个人能力和团队的合作, 软件的进度、质量、预算均不可测。
(2)已管理级
它的主要特征是已经建立了管理软件项目的方针和实施这些方针的
规程。软件组织要对正在实施的和已经实施的软件项目进行经验总结, 从而抽象出软件过程实施当中有效的、具体的、适用的方法, 并将其文档化, 形成规程, 为以后的项目预算、评估和软件过程实施提供依据。通过执行已文档化的规程, 对当前项目形成有效的控制, 产生稳定的软件过程能力。
(3)已定义级
它的主要特征是标准化。已定义级较可重复级更强调软件开发各有关组织的相互协调和作为一个统一的整体参与软件的开发。在这一等级上, 组织开发和维护软件的过程已经文档化, 软件工程过程和软件管理过程被综合为一个有机的整体, 称为标准软件过程。通过剪裁标准化软件过程和适当地修改, 产生文档化的项目的软件过程。这样每一个项目软件过程都是从标准软件过程发展而来, 它们是稳定的、可重复的, 成本、进度及软件质量处于一定的受控状态。
(4)已定量管理级
它的特征是定量化。组织对软件产品和过程设置定量的质量目标, 并限定这些目标的变化范围。整个等级的软件过程有妥善的定义和一致的度量尺度, 组织的软件过程能力可以预测, 对于新领域的软件项目开发工作也可以评测其风险。
(5)优化级
它的特征是对软件过程的不断改进, 从而使软件过程能力不断提高, 软件缺陷得到预防。通过对以往的软件过程分析, 鉴别各种技术革新, 并选择最优的进行推广。
本关任务:学习了解CMMI-软件能力成熟度集成模型,回答右侧问题
40
任务要求 参考答案 评论2
软件项目成本
完成软件项目工作量相应付出的代价,即待开发软件项目所需要的资金。
软件项目成本的构成
(1)软硬件购置成本
(2)人工成本(软件开发、系统集成费用)一般占到项目总成本的80%以上
(3)维护成本
(4)培训费
(5)业务费、差旅费
(6)管理及服务费
(7)其他费用
从财务角度看,可将项目成本构成按性质划分为两种:
(1)直接成本。与具体项目的开发直接相关的成本。
(2)间接成本。不归属于一个具体的项目,是企业的运营成本,分摊到各个项目中。
软件项目成本管理的内容和目标
成本管理的主要目的就是将项目的运作成本控制在预算的范围内,或者控制在可以接受的范围内,通过对项目成本进行估算,预算和控制有效地改变成本超支状况。
20
任务要求 参考答案 评论2
为了完成本关任务,你需要掌握:
成本估算
成本估算的依据
(1)WBS:根据WBS,可将整体成本分解到各工作包中,使成本的估算能够分项进行,各个工作包的成本估算能够做到尽量的准确合理。
(2)资源:是进行成本估算的基础,用来说明所需资源的类型和数量以及分配情况。
(3)进度规划:进度计划中的活动持续时间估计会影响项目成本估计。
(4)历史项目数据:以往项目的数据,包括规模、进度、成本等,是项目估算的主要参考。
成本估算方法
(1)类比估算法
(2)自下而上估算法
(3)参数估算法
(4)专家估算法
(5)“分解-累计”估算方法
软件规模度量
目前评价软件规模的方法主要分为两种:基于业务视角和基于开发视角。基于业务视角的方法是从用户角度出发,与软件开发技术无关,;基于开发视角的方法是从开发者角度出发。基于开发视角的软件规模评价的方法,优点是操作简单、实施容易,但不容易在项目干系人之间达成一致,往往会引起较多的分歧。基于开发视角的评价方法虽然在实际工作中也有着普遍的应用,但更多地局限于软件开发团队内部。
部分软件规模度量方法对比
代码行和功能点法
最常用的度量软件规模的方法是代码行(Lines of Code,LOC)和功能点(Function Point,FP),分别利用代码行数和功能点数来表示软件系统的规模。
代码行(LOC)从软件程序量的角度定义项目规模,要求功能分解足够详细,一般是根据经验数据估计实现每个功能模块所需的源程序行数,然后把源程序行数累加起来,得到软件的整体规模,需要有一定的经验数据(类比和经验方法),且与具体的编程语言有关。
功能点(FP)用系统的功能数量来测量其规模,与实现产品所使用的语言没有关系,对系统的外部功能和内部功能进行计数,并根据技术复杂度因子(权)对它们进行调整,产生产品规模的度量结果。
20
任务要求 参考答案 评论2
为了完成本关任务,你需要掌握:
成本控制
成本控制是指监督项目成本的支出情况,发现实际成本和成本预算的偏差,并找出偏差的原因,以便采取纠正措施,并阻止不正确、
不合理和未经批准的成本变更。
挣值分析法
挣值分析法(Earned Value Analysis,EVA)也称为已获取价值分析法、盈余分析法,是利用成本会计的概念对项目的进度和成本状况进行绩效评估的一种有效方法。
项目成本估算表
项目所需资源表
第三步:根据总工期逆向推算出各活动的最迟开始时间和最迟完成时间。
活动G最迟完成时间为25,工期为6,最迟开始时间为19
活动F最迟完成时间为后置活动G的最迟开始时间,为19,工期为8,最迟开始时间为11
活动E最迟完成时间为后置活动G的最迟开始时间,为19,工期为7,最迟开始时间为12
活动D最迟完成时间为后置活动F的最迟开始时间,为11,工期为7,最迟开始时间为4
活动C最迟完成时间为后置活动E,F的最迟开始时间里的较小时间,为11,工期为6,最迟开始时间为5
活动B最迟完成时间为后置活动C,D的最迟开始时间里的较小时间,为4,工期为4,最迟开始时间为0
活动A最迟完成时间为后置活动C,D的最迟开始时间里的较小时间,为4,工期为3,最迟开始时间为1
第四步:计算各活动的可延迟时间(最迟开始时间-最早开始时间-工期=最迟完成时间-最早完成时间=可延迟时间时间)。
根据以上结果可得
活动A最早开始时间为0,最早完成时间为3,最迟开始时间为1,最迟结束时间为4,可延迟时间为1
活动B最早开始时间为0,最早完成时间为4,最迟开始时间为0,最迟结束时间为4,可延迟时间为0
活动C最早开始时间为4,最早完成时间为10,最迟开始时间为5,最迟结束时间为11,可延迟时间为1
活动D最早开始时间为4,最早完成时间为11,最迟开始时间为4,最迟结束时间为11,可延迟时间为0
活动E最早开始时间为10,最早完成时间为17,最迟开始时间为12,最迟结束时间为19,可延迟时间为2
活动F最早开始时间为11,最早完成时间为19,最迟开始时间为11,最迟结束时间为19,可延迟时间为0
活动G最早开始时间为19,最早完成时间为25,最迟开始时间为19,最迟结束时间为25,可延迟时间为0
第五步:读取关键路径,关键路径即为可延迟时间为0的路径。
所以该项目的关键路径为:B-D-F-G
重庆高校教学管理信息网各活动前导关系及活动工期如表所示:
其中各活动编号如下:A“软件范围规划”,B“需求分析”,C“概要设计”,D“界面设计”,E“数据库设计”,F“组件设计”,G“系统平台开发”,H“应用模块开发”,I“开发人员测试”,J“系统平台测试”,K“应用模块功能测试”,L“压力测试”。
请学习相关知识并利用以上信息画出案例项目网络图结果并计算关键路径,回答右侧题目。
( 3 )观察用户工作流程。直接观察用户在其实际环境中怎样执行工作是一种行之有效的获取需求方法。当产品使用者难以清晰说明他们的需求时,就特别需要通过观察了解他们的工作细节。通常由观察者从外部来观看业务专家如何执行工作,也可由观察者实际执行一个流程或程序,来体验该流程或程序是如何实施的,以便挖掘隐藏的需求。
( 4 )问卷调查。问卷调查是指设计一系列书面问题,向众多受访者收集信息。当需要调查大量人员的意见时,向被调查人分发调查问卷是一个十分有效的做法。经过仔细考虑写出的书面回答可能比被访者对问题的口头回答更准确。调查者应仔细阅读收回的调查表,然后再有针对性地访问一些用户,以便向他们询问在分析调查表时发现的新问题。
( 5 )快速原型法。快速原型法是指在软件开发的早期快速建立目标软件系统的原型,并据此征求用户对需求的反馈。由于原型是可以操作的,它使得用户可以体验最终产品的模型,而不是仅限于讨论抽象的需求描述,从而可以获得更为准确和清晰的需求。快速原型法需要经历从模型创建、用户体验、反馈收集到原型修改的反复循环过程。在经过足够的反馈循环之后,就可以通过原型获得足够
的需求信息。
范围定义
1.范围定义就是制定项目和产品的详细描述,从而定义项目的范围。由于在获取需求过程中识别出的所有需求未必都包含在项目中,所以范围定义过程就是从所获取的需求中选取最终的项目需求,然后制定出项目及其产品的详细描述。
2.在软件项目中,产品范围通常表现为软件需求规格说明书( Software Requirements Specification, SRS ),主要内容如下:
( 1 )功能特征描述。即软件系统向使用者提供什么样的功能。
( 2 )系统接口描述。即描述软件系统与其他软硬件系统之间的接口。在描述系统范围时,明确接口是非常必要的。
( 3 )质量特征描述。主要的质量特征包括性能、可靠性、可移植性、机密性、可维护性等。不同程度的质量要求对项目的工作范围会有很大影响。
范围确认
1.范围确认是指正式验收已完成的项目可交付成果,从而确认项目可交付成果是否可以让项目干系人满意。
2.范围确认工作一般由客户、发起人等关键项目干系人负责。
3.通常在进行范围确认前,项目组需要先进行质量控制工作,如系统测试等工作,以确保范围确认工作的顺利完成。
范围控制
1.范围控制就是指监控项目的范围状态,管理范围变更。范围控制的目的是在出现范围变更需求后,管理相关的计划、资源安排以及项目成果,使得项目各部分可以很好地配合在一起,避免变更带来的负面影响。
2.未经控制的产品或项目范围的扩大被称为范围蔓延。变更是不可避免的,为防止范围蔓延,在每个项目上,都必须强制实施某种形式的变更控制。
3.范围控制通过变更控制系统和配置管理系统来完成。当出现范围变更需求时,通常要执行一个严格的变更控制流程。
1.原案例功能子系统研发目标
(1)资源库管理子系统:该子系统主要实现定义数据源、建立与存储媒体素材库、智能搜索与快速检索资源、自动更新等功能。
(2)项目网络申报子系统:该子系统主要完成项目的网络申报,实现在线提交、实时修改、时间控制、权限控制等功能。
(3)项目网络评审子系统:该子系统主要完成项目的网上评审工作,实现在线评审、评审指标定制、综合数据统计等功能。
(4)数据挖掘处理子系统:采用智能信息系统的处理方法对资源进行数据挖掘和知识获取,从资源中提取出普遍的、共性的知识。提供数据统计分析供决策者或用户使用,不仅能够改良工作方法,提高工作效率,还能进行教育教学改革研究。
(5)系统管理子系统:该子系统主要包括用户管理、代码管理、安全管理、性能管理和故障管理等。
2.需求分析
在重庆高校教学管理信息网建设过程中,根据相关理论知识,对其项目的目标和项目范围进行了编辑与界定。考虑到项目的高性能与灵活部署,本项目采用了.NET 、IIS7.0 、SQL Server 2008等作为项目顺利实施的支撑平台。
在本项目的需求分析阶段,通过对项目方、用户方和市场部对项目的目标需求进行综合分析,确定了本项目的主要功能模块、产品接口和性能指标:
(1) 主要功能模块:教育事务发布、远程项目填报、项目审计、项目中期审核、历史信息管理、系统配置与管理、信息反馈及处理等。
(2) 第三方产品接口:考虑到资源的共享、项目的维护、系统的安全与兼容性、数据的可扩展性和平台的互操作性等方面,本项目提供了大量的与第三方产品集成的接口,如:动态连接库DLL、OLE数据库访问过程、Web Service等。
(3) 系统性能:基于功能强大的Microsoft .NET 框架,结合SQL Server 2008分布式数据库系统,使得项目在具有强大的知识管理、敏捷的工作流引擎、高效数据统计分析的同时,还更加的安全和稳定。