软件工程学36135.pptx
《软件工程学36135.pptx》由会员分享,可在线阅读,更多相关《软件工程学36135.pptx(218页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程学软件工程学中国科学技术大学网络学院中国科学技术大学网络学院11.1 11.1 项目管理过程项目管理过程11.2 11.2 软件生产率和质量的度量软件生产率和质量的度量11.3 11.3 软件项目的估算软件项目的估算11.4 11.4 软件项目计划的目标软件项目计划的目标11.5 11.5 软件成本和工作量估算软件成本和工作量估算11.6 11.6 进度进度计划计划安排安排11.7 11.7 软件项目的组织与计划软件项目的组织与计划11.8 11.8 软件过程与软件过程与能力能力成熟度模型成熟度模型第11章 软件项目管理 11.1项目管理过程软件项目管理的对象是软件项目管理的对象是软件
2、工程软件工程项目项目。它所涉及的范围。它所涉及的范围覆盖了整覆盖了整个软件工程过程个软件工程过程。为使软件项目开发获得成功,为使软件项目开发获得成功,关关键问题键问题是必须对软件项目的是必须对软件项目的工作工作范围范围、可能风险可能风险、需要资源需要资源(人人、硬件硬件软件软件)、要实现的任务要实现的任务、经经历的里程碑历的里程碑、花费工作量花费工作量(成本成本)、进度安排进度安排等做到心中有数。等做到心中有数。启动一个软件项目在制定软件项目计划之前,必须在制定软件项目计划之前,必须 明确项目的目标和范围明确项目的目标和范围 考虑候选的解决方案考虑候选的解决方案 标明技术和管理上的要求标明技术
3、和管理上的要求有了这些信息,才能确定有了这些信息,才能确定合理合理、精确的成本估算精确的成本估算,实际可行的任实际可行的任务分解务分解以及以及可管理的进度安排可管理的进度安排。软件人员和用户是在软件人员和用户是在系统工程步系统工程步骤骤中中确定项目的目标和范围确定项目的目标和范围。目标目标标明了标明了软件项目的目的软件项目的目的但不但不涉及如何去达到这些目的。涉及如何去达到这些目的。范围范围标明了标明了软件要实现的基本功软件要实现的基本功能能,并尽量以定量的方式界定这,并尽量以定量的方式界定这些功能。些功能。当明确了软件项目的目标和范围当明确了软件项目的目标和范围后,就应考虑后,就应考虑候选的
4、解决方案候选的解决方案。有了方案,管理人员和技术人员有了方案,管理人员和技术人员就能够据此选择就能够据此选择一种一种“好的好的”方方法法,给出诸如,给出诸如交付期限交付期限、预算预算、个人能力个人能力、技术界面技术界面及其它许多及其它许多因素所构成的限制。因素所构成的限制。度量进行度量工作,是为了进行度量工作,是为了了解产品了解产品开发的技术过程开发的技术过程和和产品本身产品本身。度量度量开发过程开发过程的目的是为了的目的是为了改改进过程进过程,度量度量产品产品的目的是为了提高的目的是为了提高产产品的质量品的质量。度量的作用是为了度量的作用是为了有效地定量地有效地定量地进行管理进行管理。为有效
5、地度量,常常需要考虑:对为有效地度量,常常需要考虑:对于于过程过程和和产品产品,合适的度量是什么?合适的度量是什么?所收集的数据如何使用?所收集的数据如何使用?用于比较个人、过程或产品的度用于比较个人、过程或产品的度量是否合理?量是否合理?管理人员和技术人员可利用这些度管理人员和技术人员可利用这些度量来了解软件工程过程的实际情况量来了解软件工程过程的实际情况和它所生产的产品质量和它所生产的产品质量。估算在在软件项目管理过程软件项目管理过程中关键的活中关键的活动就是动就是制定项目计划制定项目计划。在做计划时必须就在做计划时必须就需要的人力需要的人力(以人月为单位以人月为单位)、)、项目持续时项目
6、持续时间间(以年份或月份为单位以年份或月份为单位)、)、成成本本(以元为单位以元为单位)做出估算。)做出估算。这种估算大多是这种估算大多是利用以前的花费利用以前的花费做为参考做为参考而做出的。而做出的。如果新项目与以前的一个项目在如果新项目与以前的一个项目在大小大小上和上和功能功能上十分上十分类似类似,则新,则新项目需要工作量、开发持续时间、项目需要工作量、开发持续时间、成本大致与那个老项目相同。成本大致与那个老项目相同。假使项目背景完全生疏,只凭过假使项目背景完全生疏,只凭过去的经验做出估算可能就不够了。去的经验做出估算可能就不够了。现在已有了许多用于软件开发的现在已有了许多用于软件开发的估
7、算技术估算技术。其共同特点是:。其共同特点是:事先建立软件范围事先建立软件范围 以软件度量(以往的度量)为以软件度量(以往的度量)为基础,以做出估算基础,以做出估算 项目被分解为可单独进行估算项目被分解为可单独进行估算的小块的小块管理人员大多使用不止一种估算管理人员大多使用不止一种估算技术,并用一种估算技术做为另技术,并用一种估算技术做为另一种估算技术的交叉检查。一种估算技术的交叉检查。风险分析每当新建一个程序时,总是存在每当新建一个程序时,总是存在某些不确定性。某些不确定性。用户要求是否能确切地被理解用户要求是否能确切地被理解?在项目最后结束之前要求实现在项目最后结束之前要求实现的功能能否建
8、立?的功能能否建立?是否存在目前仍未发现的技术是否存在目前仍未发现的技术难题?难题?在项目出现严重误期时是否在项目出现严重误期时是否 会发生一些变更会发生一些变更?等等。?等等。风险分析风险分析对于软件项目管理对于软件项目管理是决是决定性的定性的,然而现在还有许多项目,然而现在还有许多项目不考虑风险就着手进行。不考虑风险就着手进行。所谓所谓风险分析风险分析实际上就是一系列实际上就是一系列风险管理步骤风险管理步骤,其中包括,其中包括风险识风险识别别、风险估计风险估计、风险优化风险优化、风险风险管理策略管理策略、风险解决风险解决和和风险监督风险监督。这些步骤贯穿在软件工程过程中。这些步骤贯穿在软件
9、工程过程中。进度安排每一个软件项目都要求制定一个每一个软件项目都要求制定一个进度安排进度安排,但不是所有的进度都,但不是所有的进度都得一样安排。得一样安排。对于进度安排,需要考虑的是:对于进度安排,需要考虑的是:预先对进度如何计划?预先对进度如何计划?工作怎样就位?工作怎样就位?如何识别定义好的任务?如何识别定义好的任务?管理人员对管理人员对结束时间如何掌握结束时间如何掌握?如何如何识别识别和和监控关键路径监控关键路径以以确保确保结束结束?对进展如何度量?对进展如何度量?如何建立如何建立分隔任务的里程碑分隔任务的里程碑。软件项目的进度安排与任一个工程软件项目的进度安排与任一个工程项目的进度安排
10、基本相同。首先项目的进度安排基本相同。首先识识别一组项目任务别一组项目任务,再,再建立任务之间建立任务之间的相互关联的相互关联,然后,然后估算各个任务的估算各个任务的工作量工作量,分配人力分配人力和和其它资源其它资源,制制定进度时序定进度时序。追踪和控制一旦建立了一旦建立了开发进度安排开发进度安排,就可以,就可以开始着手开始着手追踪和控制活动追踪和控制活动。由由项目管理人员负责追踪在进度安项目管理人员负责追踪在进度安排中排中标明的每一个任务。标明的每一个任务。如果任务实际完成日期滞后于进度如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自安排,则管理人员可以使用一种自动的项目进度安排
11、工具来确定在项动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成目的中间里程碑上进度误期所造成的影响。的影响。还可还可对资源重新定向对资源重新定向对对任务重新安排任务重新安排(做为最坏的结果做为最坏的结果)可以修改交可以修改交付日期以调整已经暴露的问题付日期以调整已经暴露的问题。用这种方式可以较好地控制软件用这种方式可以较好地控制软件的开发。的开发。11.2软件生产率和质量的度量生产率与质量的度量是生产率与质量的度量是以投入工作以投入工作量量为依据的为依据的软件开发活动软件开发活动的度量和的度量和开发成果开发成果质量的度量。质量的度量。为什么要对软件进行度量为什么要对软件进行度量 面
12、向规模的度量面向规模的度量 面向功能的度量面向功能的度量 软件质量的度量软件质量的度量 在软件工程过程中使用度量在软件工程过程中使用度量为什么要对软件进行度量 表明表明软件产品的质量软件产品的质量;弄清弄清软件开发人员的生产率软件开发人员的生产率;给出使给出使用了新的软件工程方法和用了新的软件工程方法和工具工具所得到的(在生产率和质量两所得到的(在生产率和质量两方面)的方面)的效益效益;建立建立项目估算项目估算的的“基线基线”;帮助帮助调整对新的工具调整对新的工具和和附加培训附加培训的要求的要求。度量的方式 在物理世界中的度量有两种方式。在物理世界中的度量有两种方式。直接度量(例如,度量一个螺
13、直接度量(例如,度量一个螺栓的长度);栓的长度);间接度量(例如,用次品率来间接度量(例如,用次品率来度量生产出的螺栓质量)。度量生产出的螺栓质量)。软件度量也同样分为两类:软件度量也同样分为两类:直接直接度量度量与与间接度量间接度量。软件工程过程的直接度量包括软件工程过程的直接度量包括所投所投入的成本入的成本和和工作量工作量。软件产品的直接度量包括软件产品的直接度量包括产生的代产生的代码行数码行数(LOC)、)、执行速度执行速度、存储量存储量大小大小、在某种时间周期中所报告的在某种时间周期中所报告的差错数差错数。软件产品的间接度量包括软件产品的间接度量包括功能性功能性、复杂性复杂性、效率效率
14、、可靠性可靠性、可维护性可维护性和和许多其它的质量特性许多其它的质量特性。软件度量域的分类面向规模的度量面向规模的度量面向规模的度量是对是对软件软件和和软件开软件开发过程发过程的直接度量。的直接度量。可以建立一个可以建立一个面向规模面向规模的的数据表格数据表格来记录项目的某些信息。来记录项目的某些信息。该表格列出了该表格列出了在过去几年完成的每在过去几年完成的每一个软件开发项目一个软件开发项目和和关于这些项目关于这些项目的相应面向规模的数据的相应面向规模的数据。面向规模的数据表格根据数据表格可以对所有的项目计根据数据表格可以对所有的项目计算出平均值:算出平均值:生产率生产率 KLOCPM(人月
15、)(人月)质量质量 错误数错误数KLOC成本成本 元元LOC文档文档 文档页数文档页数KLOC面向功能的度量面向功能的软件度量是对面向功能的软件度量是对软件软件和和软软件开发过程件开发过程的的间接度量间接度量。面向功能度量主要考虑面向功能度量主要考虑程序的程序的“功功能性能性”和和“实用性实用性”,而不是对而不是对 LOC计数计数。该度量是一种叫做该度量是一种叫做功能点方法功能点方法的生的生产率度量法,利用产率度量法,利用软件信息域软件信息域中的中的一些计数一些计数和和软件复杂性估计软件复杂性估计的的经验经验关系式关系式而导出而导出功能点功能点 FP。面向功能的数据表格功能点计算确定确定五个信
16、息域五个信息域的特征,并在表格的特征,并在表格中相应位置给出计数。中相应位置给出计数。(1)用户输入数:用户输入数:各个用户输入是各个用户输入是面向不同应用的输入数据面向不同应用的输入数据。(2)用户输出数:用户输出数:各个用户输出是各个用户输出是面向应用的输出信息面向应用的输出信息,包括,包括报告报告,屏幕信息屏幕信息,错误信息错误信息等。等。在在报告报告中中的各个数据项不应再分别计数的各个数据项不应再分别计数。(3)用户查询数:用户查询数:查询是一种联机查询是一种联机的交互操作,每次询问的交互操作,每次询问/响应具备应响应具备应计数。计数。(4)文件数:文件数:每一个逻辑主文件都每一个逻辑
17、主文件都应计数。逻辑主文件是指逻辑上的应计数。逻辑主文件是指逻辑上的一组数据,可以是一个大数据库的一组数据,可以是一个大数据库的一部分,可以是一个单独的文件。一部分,可以是一个单独的文件。(5)外部接口数:外部接口数:与系统中其他设与系统中其他设备通过外部接口读写信息次数均应备通过外部接口读写信息次数均应计数。计数。一旦收集到上述数据,就可以计算一旦收集到上述数据,就可以计算出出与每一个计数相关的复杂性值与每一个计数相关的复杂性值。一个信息域是一个信息域是简单的简单的、平均的平均的还是还是复杂的复杂的,由使用功能点方法的机构,由使用功能点方法的机构自行确定,从而计算出加权计数。自行确定,从而计
18、算出加权计数。计算功能点,使用如下的关系式计算功能点,使用如下的关系式:FP 总计数总计数(0.65 +0.01SUM(Fi)总计数是所有加权计数项的和总计数是所有加权计数项的和Fi(i1.14)是)是复杂性校正值复杂性校正值,它,它们应通过逐一回答如下提问来确定。们应通过逐一回答如下提问来确定。Fi的取值的取值0.5:0 没有影响没有影响 1 偶然的偶然的2 适中的适中的 3 普通的普通的4 重要的重要的 5 极重要的极重要的SUM(Fi)是求和函数。)是求和函数。复杂性校正值 Fi1.系统是否需要系统是否需要可靠的备份可靠的备份和和恢复恢复?2.是否需要是否需要数据通信数据通信?3.是否有
19、是否有分布处理的功能分布处理的功能?4.是否是否性能成为关键性能成为关键?5.系统是否系统是否运行在既存的高度实用化运行在既存的高度实用化的操作环境中的操作环境中?6.系统是否需要系统是否需要联机数据项联机数据项?7.联机数据项是否需要联机数据项是否需要建立多重窗口建立多重窗口 显示和操作显示和操作,以处理输入处理以处理输入处理。8.主文件是否主文件是否联机更新联机更新?9.输入输入、输出输出、文件文件、查询查询是否是否复杂复杂?10.内部处理过程内部处理过程是否是否复杂复杂?11.程序代码程序代码是否是否可复用可复用?12.设计中是否包括了设计中是否包括了转移转移和和安装安装?13.系统是否
20、设计成可以系统是否设计成可以重复安装在不重复安装在不同机构中同机构中14.系统是否设计成系统是否设计成易修改易修改和和易使用易使用?一旦计算出一旦计算出功能点功能点,就可仿照,就可仿照LOC的方式的方式度量软件的生产率、质量和度量软件的生产率、质量和其它属性:其它属性:生产率生产率 FPPM(人月)(人月)质量质量 错误数错误数FP成本成本 元元FP文档文档 文档页数文档页数FP功能点度量功能点度量是为了是为了商用信息系统应商用信息系统应用用而设计的。而设计的。特征点度量特征点度量(Feature Points)可以)可以用于用于系统系统和和工程软件应用工程软件应用特征点度量适合于特征点度量适
21、合于算法复杂性高算法复杂性高的的应用。而实时处理、过程控制、嵌应用。而实时处理、过程控制、嵌入式软件应用的算法复杂性都偏高,入式软件应用的算法复杂性都偏高,因此适合于特征点度量。因此适合于特征点度量。为了计算特征点,可以象为了计算特征点,可以象功能点计功能点计算算那样,那样,对对信息域值信息域值进行计数和加进行计数和加权权。此外,。此外,特征点度量要对一个新特征点度量要对一个新的软件特征的软件特征“算法算法”进行计数进行计数。计算特征点可使用一个计算表格。计算特征点可使用一个计算表格。对于每一个度量参数只使用一个权对于每一个度量参数只使用一个权值,并且使用值,并且使用 FP总计数总计数(0.6
22、50.01SUM(Fi)来计算总的特征点值。来计算总的特征点值。特征点度量计算表格软件质量的度量质量度量贯穿于软件工程的全过程质量度量贯穿于软件工程的全过程中中以及以及软件交付用户使用之后软件交付用户使用之后。在在软件交付之前软件交付之前得到的度量可作为得到的度量可作为判断设计和测试质量好坏的依据。判断设计和测试质量好坏的依据。这一类度量包括程序复杂性、有效这一类度量包括程序复杂性、有效的模块性和总的程序规模。的模块性和总的程序规模。在在软件交付之后软件交付之后的度量则把注意力的度量则把注意力集中于还未发现的差错数和系统的集中于还未发现的差错数和系统的可维护性方面。可维护性方面。使用得最广泛软
23、件质量的事后度量使用得最广泛软件质量的事后度量包括包括正确性正确性、可维护性可维护性、完整性完整性和和可使用性可使用性。(1)正确性:正确性:一个程序必须一个程序必须正确地运正确地运行行,并,并为它的用户提供某些输出为它的用户提供某些输出。正确性要求软件执行所要求的功能。正确性要求软件执行所要求的功能。正确性的度量正确性的度量是是每千代码行每千代码行(KLOC)的差错数的差错数,其中,其中将差错定义为已被将差错定义为已被证实是不符合需求的缺陷证实是不符合需求的缺陷。(2)可维护性:可维护性:软件维护比其它的软软件维护比其它的软件工程活动需要更多的工作量。还件工程活动需要更多的工作量。还没有一种
24、方法可以直接度量可维护没有一种方法可以直接度量可维护性,因此性,因此必须采取间接度量必须采取间接度量。有一种简单的面向时间的度量,叫有一种简单的面向时间的度量,叫做做平均变更等待时间平均变更等待时间MTTC。这个时间包括这个时间包括分析变更要求分析变更要求、设计设计适当的修改适当的修改、实现变更并测试实现变更并测试、及、及把变更发送给所有的用户把变更发送给所有的用户。一个可维护的程序与不可维护的程一个可维护的程序与不可维护的程序相比,应有较低的序相比,应有较低的MTTC。(3)完整性:完整性:完整性完整性度量一个系统度量一个系统抗拒对它的安全性攻击抗拒对它的安全性攻击(事故的和(事故的和人为的
25、)人为的)的能力的能力。软件的所有三个。软件的所有三个成分成分程序程序、数据数据和和文档文档都会遭到攻都会遭到攻击。击。度量度量完整性完整性,需要定义两个附加的,需要定义两个附加的属性:属性:危险性危险性和和安全性安全性。危险性危险性是是特定类型的攻击将在一给特定类型的攻击将在一给定时间内发生的概率定时间内发生的概率,安全性安全性是是排排除特定类型攻击的概率除特定类型攻击的概率。一个系统的完整性可定义为一个系统的完整性可定义为完整性完整性(1危险性危险性(1安全性安全性)其中,对每一个攻击的其中,对每一个攻击的危险性危险性和和安全性安全性都进行累加。都进行累加。(4)可使用性:可使用性:如果一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 工程学 36135
限制150内