
在分析现有软件质量数学模型的基础上,提出了软件项目开发三维模型框架,建立了软件质量最优化数学模型。模型将有限的成本和时间资源合理地分配到软件开发过程的各阶段,并使软件质量达到最优化,为项目管理者建立计划和分配资源提供量化依据,通过实例数据验证了建立的数学模型的正确性和有效性。
论文关键词:软件质量数学模型;软件项目管理;软件项目开发方法模型
软件项目与其他项目一样,成功的3要素是范围(质量)、时间和成本,只有在三者同时达到要求后,软件项目才算成功。
在日常软件项目中,通常时间和成本是固定的且有界定的,即在确定的时间内,投人一定资金前提下完成某一软件项目。项目干系人期望在既定的成本和时间下,实现软件质量的最优化,将有限的时间和成本资源在软件项目各阶段进行合理分配,是进行项目计划和开发的基础。通过软件质量指标的分解,建立最大化软件质量的函数和条件,求解软件质量最优化的模型,即可得出各种资源(通常是时间和成本)在各阶段的最佳分配值,为科学管理软件项目,特别是进行计划和成本管理提供重要的依据。
1软件项目实施方法模型框架
基于以上背景,将软件项目的开发方法作为研究对象,着眼于软件开发过程与软件项目管理结合而形成开发方法体系。①提出软件开发方法的三维模型,这三维分别为过程维、管理维和技术实现维。②从过程维度对软件开发过程进行抽象。基于软件工程的软件生命周期理论,项目的过程可分成需求分析、系统设计、程序设计、程序编码、单元/集成测试、系统和验收测试、运行和维护(含培训、数据准备和初始化等上线准备工作)等阶段,它们组成项目连续且相对独立的过程。③从管理维度分析软件项目管理的各层面管理(范围管理、时间管理、费用(成本)管理、质量管理、人力资源管理、沟通(交流)管理、风险管理、采购管理和综合管理)J。④技术实现维度包括物理平台(通常包括网络系统、服务器和PC等物理层面的条件)、软件技术平台(通常包括操作系统、数据库和开发工具等)和项目管理辅助工具。软件项目开发方法模型如图1所示。
2软件质量最优数学模型
2.1软件质量指标模型
20世纪90年代早期,软件工程组织试图将质量的诸多方面统一到一个模型中,把这个模型作为度量软件质量的一个世界范围的标准,这个结果就是ISO9126。它是一个分层模型,有6个影响质量的主要因素,图2说明了其层次结构。
2.2模型建立的基本假设
在整个软件项目的开发过程中,始终有两种投入:一种是成本投入,含技术实现维的平台建设和项目管理工具投人,还包括推销的固定成本、项目管理的各类变动成本,如项目奖金、办公费用、人员培训费用和外聘顾问咨询费用等;另一种是时间投入,即项目开发的周期。项目管理目标,要求在投资一定的情况下,收益最大化,或在收益一定的情况下,投资最小。在软件项目中,目标分两种情形:①在既定的时间和成本等资源投入下,达到最优的项目效果,即软件质量最优;②在确定软件项目最终质量目标的情况下,时间及成本的投入达到最小值,从而节约成本,缩短项目周期。
在现实软件项目中,第一种情况占绝大多数,也是笔者讨论的模型目标。在构建软件质量最优化的数学模型时,要建立模型的假设(条件),忽略次要的影响因素,包括:①软件项目的开发过程是个连续的过程,不考虑各种外界因素导致整个项目的暂停、取消或延迟情况,在整个项目开发的过程中,各阶段的技术工作都是可以实现的。②项目管理者能理性且客观选择物理平台、软件技术平台和项目辅助管理工具,被授权分配和调动项目资源,且在合理的时间投人成本下进行平台的搭建和工具的选用。③项目的成功是以时间、质量和成本3要素同时满足为基础的,投入的总成本不能超过C,项目开发时间总共不能超过,同时以软件质量最优为目标。④外界客观的环境,如相应的法律、制度和文化等稳定,在项目开发过程中,不考虑产生意外的成本和时间投入。⑤按软件工程原则,各阶段的任务相对独立,它们都采用好的技术方法,而且在每个阶段结束之前都进行严格的审查,合格之后才开始下一阶段的工作。项目每一阶段都达到基本的质量指标,使该阶段总体结果对下一阶段产生好的影响,即对软件质量产生正面的作用。⑥假设时间是与成本相互独立的投入要素,即不考虑因时间变动带来的成本变动。
2.3通用最优模型及算法
从软件项目开发方法模型的过程维角度,整个软件项目过程分为多个阶段(假设分n个阶段),各个阶段中分配不同的成本和时间资源,假定个阶段分配的时间和成本资源为t和c(i=1,2,…,n)。项目开发最长时间为;项目各阶段
从软件项目开发方法模型的管理维角度,各管理维的各元素,如风险管理、沟通管理和成本管理等,其投入资源也是时间和成本,且各项目管理元素融人并贯穿到过程维的各阶段中去。项目管理投入的所有成本和时间总和等于各阶段分配的成本和时间资源的总和,项目的各项管理越到位,管理越细化,须投入的管理成本也越大。
从软件项目开发方法模型的技术实现维角度,技术实现维仅发生成本的投入,以实现平台的构建和工具的选用。因此,可设技术实现维的投入为一确定数Ct,Ct与n个阶段发生的成本是相对独立的。项目投入的总成本C=Cn+Ct。模型和符号说明如下:
(1)项目实现软件质量的量化值F。在第阶段投入ti和ci的资源后,该阶段对第j个质量因素(或者指标,比如功能性或可靠性,按软件质量模型的第一层分成m个因素)产生的量化贡献数值为通常情况下,与时间和成本的投入有直接关系,投入的ti和ci越大,也越大,在一定的范围内可把它们看成是线性关系。因此,可将表示为=H(ti,ci)= 其中,和分别为成本和时间对的影响权重系数,为修正数。此外,1,2,…,m),其中,为该因素必须达到的基本值或最小值;为须投人的最大值,即再投入时间和成本,增加值不会再增加。
(2)同一阶段的不同质量因素 (i=1,2,…,n;=1,2,…,m)对F的影响权重是不一样的,且各阶段对应的质量因素权重标准都相同。因此,可设第i阶段的第j个质量因素对F所占的权重比例为
(3)按软件工程理论和上述假设,软件生命周期第i阶段质量因素将对i+1,i+2,…,n各阶段产生一定影响,且第i阶段产生的质量影响将被i+1之后的各阶段继承,直至最终完成的项目质量F。因此,设项目第i阶段的完成质量值(i=1,2,…,n)对后续阶段的影响度系数为(i=1,2,…,n-1)。
综合以上分析,建模目标就是:在不超过既定的成本预算C和在规定的时间T内,达到预期最好的软件质量,可得最优化目标函数模型为:
3实证研究
以某一集团企业自行开发的“客户关系管理”软件为例,该软件项目预算总成本为170万元(其中构建软件技术平台和物理网络平台等技术实现的成本为30万元),项目要求半年内完成(以180天计)。
ISO9126有6个软件质量影响因素,即m=6。按软件工程的软件生命周期理论,项目划分为7个阶段,即n=7,各质量因素权重系数为:b1=0.3,b2=0.1,b3=0.25,b4=0.15,b5=0.12,b6=0.08,
按历史数据统计分析和笔者的工作经验,各阶段成本投人和时间投入对软件质量影响评估值如表1所示。
通过对各阶段影响工作的关联性分析,估算出各阶段对下阶段的影响度系数如下:
使用LindoSystemsInc.发布和研制的Lindo高级版软件系统,编制程序求解该数学模型,并做模型结论的灵敏性分析,可得出以下结果:从结果报告可得:
t1=12,t2=12,t3=6,t4=12,t5=25,t6=73,t7=40;总时间为180天。
C1=10,C2=10,C3=5,C4=10,C5=20,C6=60,C7,=25;总成本为140万元。
时间和成本结果接近实际发生值,,的最优值为1381.255。
从灵敏性分析报告可以得出如下两点:
(1)保持不变的系数范围。在最优解不变的条件下,目标函数系统的允许变化范围:的系数为(1,1+1.622234);F2的系数为(1,1+0.117702);其余变量、约束条件的系数类似。
(2)从对偶价格分析得出,时间和成本都是紧约束资源,每增加1个时间单位,即增加1d,则F的值提高4.195575,其限制值为178.2,即再增加成本不会带来F值的增加。同理,每增加1个成本单位,则F的值提高5.423400,其限制范围为185.5。这可为资源控制和调整提供量化参考。
4结论
笔者研究如何建立模型,分配有限的软件项目成本和时间资源,使项目开发的软件质量最优化,可以帮助软件项目管理者更合理地制定项目计划和评估各阶段成本使用和控制情况。同时,模型的运行结果,也能帮助项目管理者量化分析出项目各阶段与质量因素间的关系。文中实际的时间投入、成本和各阶段的花费时间,与模型中计算出的值基本吻合,特别是测试工作投入比重大,约占整个工作量的50%。
成本投入和时间投入对软件质量影响的评估值是模型的基础数据,其与软件本身的大小、开发环境(平台和开发工具等)和项目管理方法等相关,是历史数据和经验值相结合的结果。如何更科学和更准确地得出影响评估值和它们之间的关系是更好地使用该模型尚需深入研究的课题。
随着Internet的不断发展,伴随而来的网络信息安全问题越来越引人关注。计算机信息一旦遭受破坏,将给单位造成严重的损失。就网络信息安全问题,对可能产生的安全因素进行剖析,并采取一定的措施。 一、信息安全的概念 目前,我国《计算机信息安全保护条例》的权威定义是:通过计算机技术和网络技术手段,使计算机系统的硬件、软件、数据库等受到保护,最大可能不因偶然的或恶意的因素而遭破坏、更改或泄密,系统...
软件项目管理有利于将程序员的个人开发能力转化成企业的开发能力。而且,软件工程强调软件开发过程的工程性,把软件的设计、开发、测试、维护和管理工作当做一项系统工程来抓,表明软件不仅仅是编写代码的工作,而需要各个学科的综合应用,才能形成真正的产业化。 随着信息技术的飞速发展,软件产品的规模也越来越庞大。我们知道,软件开发是一个带有一定风险的工作,为了把风险降到最低,项目经理一定要进行严格的项目管理。软...
传统的高级英语教学模式以教师为中心,以课本为依托,学生通过教师的传授被动的接受知识。本文主要探讨如何在建构主义学习理论指导下,建立基于多媒体网络技术的高级英语教学模式,使课堂教学更具趣味性和真切性,扩展学生的知识面,提高学生发现问题、分析问题、解决问题的能力以及语言实际应用和交际的能力。一、建构主义学习理论指导下的高级英语信息时代的外语教学改革应将当代外语教学理念和实践与最前沿的多媒体和网络技术结...
深入分析了软件项目实施中影响进度的主要原因,根据软件开发过程中不同阶段进度管理的特点,将软件项目进度管理划分为4个主要的工作阶段:计划阶段、需求阶段、实施阶段及收尾阶段。结合各阶段进度管理工作的特点,说明进度管理需要解决的关键问题及相应的解决办法。 论文关键词:进度管理;项目计划;软件工程;软件项目管理 随着计算机应用的日益普及和深入,软件产品的规模越来越大,复杂性越来越高,传统个人作坊式的开...
文章针对计算机网络具有联结形式多样性、终端分布不均匀性和网络的开放性、互连性等特征,致使网络易受黑客、怪客、恶意软件和其他不轨的攻击的安全和保密问题,归纳并提出了一些网络信息安全防护的方法和策略。 近年来,伴随着互联网技术在全球迅猛发展,人们在提供了极大的方便,然而,信息化在给人们带来种种物质和文化享受的同时,我们也正受到日益严重的来自网络的安全威胁,诸如网络的数据窃贼、黑客的侵袭、病毒发布者...
软件能力成熟度模型(C印abilityMatuirtyModel,CMM)4~为衡量一个软件企业的软件开发能力己经被大多数软件企业所接受。在论述CMM与CMMI的基础上,介绍了国防专用软件CMM的概念、框架以及CMM二级的目标和要求。及其在软件开发中的应用。 论文关键词:软件能力成熟度模型;软件项目管理 1软件项目管理概述 1.1软件项目管理的概念 从概念上讲,软件项目管理是为了使软件项目能够...
计算机基础课的教学不同于现代化教育体系中的那些传统的课教学,它的教学是一种极其复杂的过程。建构主义教学理论恰好提供了一种与传统的教学理论不同的学习理论;利用建构主义学习理论指导计算机基础课的实践教学我认为是现代化计算机教学的一个改革的方向。 论文关键词:计算机基础教学;传统教学;建构主义;意义建构;协作学习 0、引言 随着计算机科技遵循”摩尔定律”飞速发展的事实,以及...
介绍了软件项目风险管理的重要性,探讨了软件项目风险管理的主要过程和步骤以及常用的工具和方法,详细分析了软件项目中常见的风险类型和风险成因,最后给出了经典的风险管理模型和常用的风险应对措施. 论文关键词:项目管理;风险分析;风险管理;风险应对;模型 0引言 随着信息技术的飞速发展,软件产品的规模也越来越大,各软件企业在开发活动中都为了使软件项目能够按照预定的成本、进度和质量顺利完成而进行有效的...
区域创新网络是一个非常复杂的动态的网络系统,它是由核心网络系统、支持网络系统和环境网络系统组成,且这三层次子系统之间是相互耦合和相互增强的,共同作用于区域创新网络创新能力的形成。1区域创新网络及其研究的兴起20世纪80年代以来,区域创新网络已成为区域经济发展的一道风景线,如美国的硅谷、中国台湾的新竹、日本的筑波及英国的剑桥等。国内外学者从不同的角度对区域创新网络进行了研究,人们深刻地认识到区域创新...
本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。 论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网 1前言 2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件...