软件过程管理总结(共8篇)
1.软件过程管理总结 篇一
浅谈软件项目管理过程
班级:——
学号:——
姓名:——
软件项目管理是为了使软件项目能够按照预定的成本,进度,质量顺利完成,而对人员,产品,过程和项目进行分析和管理的活动。根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析,设计,编码到测试,维护全过程)都能在管理者的控制之下,以预定成本按期,按质完成软件交付用户使用。
——序
当今世界,IT技术对于一个企业的重要性是毋庸置疑的。在很多领域,计算机技术都得到了非常广泛的应用,IT技术已经普遍地服务于社会的各行各业,在很多的领域都形成了推动力。但同时我们也看到一个非常严重的问题,那就是软件危机。为什么会发生“软件危机”。据总结,主要产生的原因是:(1)由于缺乏软件开发的经验和有关软件开发数据的积累,以致经常出现超出经费预算,无法遵循进度计划。(2)软件需求在开发的初期阶段不够明确,或是未能得到确切的表达。开发工作开始后,软件人员和用户又未能及时交换意见,造成矛盾在开发期几种暴露。(3)未能在测试阶段做好充分的检测工作,提交至用户的软件质量差,在运行过程中暴露出大量的问题。归结起来,我们说的软件危机是一种矛盾,就是弱的软件生产力能力与强的业务发展需求之间的矛盾。要能够迎接业务发展所带来的挑战,从事软件生产的组织迫在眉睫要去做的一件事就是软件生产力的改造。在“应用就是业务”的今天,软件生产力的改造是决定企业能否获得并长久保持竞争优势的一个决定性因素,所以,关注并启动软件生产力的提升是一项战略性的决策,是一个系统工程,它将决定企业能否获得并长久保持竞争优势。而项目管理则是提升生产力的一项重要任务。
然而,项目管理在我们的软件生产中的应用是那么的重要。那么我们应该怎么样才能更好的掌握项目管理,我们的项目流程是怎么样的。
首先,项目管理的第一流程是项目的启动。
项目的启动就是确定项目的目标范围,它主要包括开发和被开发双方的合同(或是协议),软件要完成的主要功能以及这些功能的量化范围,项目开发的阶段周期等。尤其是启动信息技术(IT)的项目,我们做软件的必须了解企业组织内部在目前和未来主要业务发展方向,这些主要业务将使用什么技术及相应的使用环境是什么。启动信息技术(IT)的项目的理由很多,但能够使项目成功的最合理的理由一定是为企业现有业务提供更好的运行平台,而不是展示先进的IT技术。在项目启动的过程中,我们还要注意将项目的范围进行明确定义才能进行很好的项目规划。项目目标必须是可实现可度量的。如果这一步管理得不好或是做得不好,直接导致的是项目的最终失败。
其实,第二就是项目的规划
项目的规划其实就与项目的计划意义差不多。它是一项复杂的,自始至终不断迭代的一个过程。而且为项目的运作提供可靠的实施基础。在整个项目中,项目规划是指项目的估算,风险的分析,进度的规划,人员的选择与配置,产品质量的规划等。然而,在项目管理的过程中,计划的编制是整个项目规划中最为复杂的阶段。项目计划工作涉及九个项目管理知识领域。也就是说我们要知道九个项目管理知识领域中哪些是重要的,哪些是必要的和熟悉它们之间的关系。而且在计划编制的过程中,我们还可看到后面各阶段的输出文件。所以说它是指导项目的进程发展。规划建立软件项目的预算,提供一个控制项目成本的尺度,也为将来的评估提供参考,它是项目进度安排的依据。最后,形成的项目计划书将作为跟踪控制的依据。
第三:项目的实施及控制
一旦建立起基准计划就必须按照计划执行,这包括按计划执行项目和控制项目,以使项目在预算内,按进度,使顾客满意的完成。在这个阶段,项目管理过程包括:测量实际的进程,并与计划进程相比较。同时,发现计划的不当之处。为了测量实际的进程,掌握实际上已经开始或结束的是哪些任务,已经花了多少钱,这些都是很重要的。如果实际进程与计划进程的比较显示出现项目落后于计划,超出预算或是没有达到技术要求,就必须立即采取纠正措施,以使项目能恢复正常轨道,或是更正计划的不合理之处。然而,项目的监控,也是为项目能正常回到轨道上的一个重要步骤。俗话说:“没有跟踪就不算完成”,在软件项目中,有太多的工作需要我们去完成,如果有时计划做得不够周密,或是计划赶不上变化。我们怎么办,置之不理?还是去跟踪监控一下,然后及时改正错误。为什么我们用的那么多的软件是要不定时的安装补丁,原因也就是因为这个。在跟踪监控中我们发现问题,然后去修补它,使得软件的性能,功能更好。总得来说。项目的实施及监控最终的目的就是保证项目能够安装预先设定的计划轨道上行驶,使得项目不要偏离预定的发展进程,尽快完成软件项目。
最后就是软件的项目结束
项目管理的最后环节就是软件项目的结束过程。因为项目的特征之一就是它的一次性。有起点也有终点,进入项目结束期的主要工作是适当地做出项目终止的决策,确认项目实施的各项成果,进行项目的交接和清算等,同时对项目进行最后评审,并对项目进行总结。这个也代表着项目将进入后续的维护期。项目最后执行的结果是有两种状态,要不就是成功要不就是失败。然而,一旦我们决定终止一个项目,项目就要有计划,有序的分阶段停止。当然,这个过程可以简单地执行也可以详细认真的执行。在这里项目总结是项目结束中的最后一个环节也是一个我们不能忽视的一个环节。很多项目没有能进行很好的总结,比如说项目总结时项目人员已经不全了,有新的项目要做,没有时间去写等等的理由让项目的总结没做好。所以,这也是软件项目那么多漏洞的原因之一。所以,项目的结束之前的工作我们也要好好认真的完成。
软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程)。另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述的特点,软件项目管理与其他项目管理相比,有很大的独特性。所以,软件项目开发管理过程中,不仅要努力实现项目的范围、时间、成本和质量等目标,还必须协调整个项目过程,以满足项目参与者及其他利益相关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难。纵观所有失败的软件项目,基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制与管理不仅可以在每个阶段回顾和纠正项目的偏差,识别软件项目的风险甚至果断中止项目,而且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。
最后,总结一下项目管理过程。软件项目管理不同于其他的项目管理,它有很多的特殊性。软件是一个特殊的领域,远远没有建筑工程等领域那么规范化、软件目前有很大的发展空间,经验在项目管理中发挥着很重要的作用,理论和标准还在发展中,它体现软件的“软”的特殊。合同启动了一个软件项目,同时贯穿项目的始终;根据合同进行软件的需求分析,获得需求规格;根据需求规格进行任务分解,任何分解的目的是可以很好得规划和管理项目;根据任何分解的结果,给出项目需要的资源,以便于估计活动的历时,最终编制项目计划以及项目的预算等。这样便可以形成项目的三个核心的基准计划:项目范围基准,成本基准,时间基准计划等。
以上的是软件项目管理的过程,我们知道项目管理既是一个科学,也是一门艺术,不同的项目,不同的项目经理,会有不同的管理方法和技巧。
2.软件过程管理总结 篇二
1.1 软件设计过程的内涵
软件的设计过程是指软件工程人员为了获得特定功能与性能的软件产品, 而在一系列软件的支持下所进行的软件开发工程活动。简而言之, 软件设计过程就是将需求转变为软件表达的过程。
那么如何将需求转变为了软件表达呢?这里首先要明确的是什么是需求。这里所说的需求, 主要包含功能需求和性能需求, 在一些特定的软件项目开发过程中, 可能还需要进行数据需求的分析。只有明确了软件系统的功能需求、性能需求和数据需求, 才能够有针对性地进行软件项目的开发设计。其次, 还需要明确的是软件设计过程一般分为两步, 第一步是初步设计。所谓初步设计就是将之前所分析的软件系统的性能需求、功能需求和数据需求转换为数据表或者软件框架只有确定了数据表或者将软件框架, 才能够在此基础上进行有针对性的特定功能开发与实现;第二步是详细设计。所谓详细设计, 就是指将之前所建立起来的数据表和软件框架, 逐步求精和细化, 最终实现软件系统所要求的功能或者性能转变为具体的数据结构或者软件算法, 而且其中每一个细化过程中出现的数据结构或者软件算法, 都需要配以合适的软件界面进行显示, 以提供良好的人机交互桌面, 并且要将软件界面和数据结构、软件算法时刻保持统一, 以提高软件项目的整体一致性和系统性。
1.2 软件设计流程
要想做好对软件项目的过程管理, 首先必须明确软件的设计流程。因此, 这里首先对软件项目开发的流程进行简要分析。
软件设计过程一般很难用文字语言表述完整清楚, 目前也没有统一的表达能够说清楚软件开发的过程, 但是结合以往的开发经验, 现在的软件工程师都已经清楚认识到, 目前开发出来的支持数据流图、层次式输入输出结构图等相较于传统的流程图能够更加精确、清晰地反映出软件项目开发的需求和框架细化精确的层次步骤。
概括来说, 软件设计的一般流程可以分为以下几个步骤:
(1) 需求分析。首先需要对软件系统进行需求分析, 正如上文所分析, 需要进行功能需求分析、性能需求分析和数据需求分析。
(2) 子系统分离。在明确系统需求的基础上, 需要对整个软件系统进行子系统的划分, 只有对一个大型软件项目系统进行合理的分割, 甚至是分割成若干软件算法或者数据结构等, 才能简化软件设计系统的复杂性。
(3) 层次优化设计。为分割后的每一个子系统进行层次设计, 并且需要明确不同子系统之间的层次关系, 为各个层次之间的数据流进行导向设计。
(4) 软件框架结构设计。根据系统的层次关系, 确定软件系统的框架结构, 并在此基础上确立数据表的结构, 为整个软件系统的功能实现和数据表达奠定技术基础。
(5) 数据表设计 (包含算法设计) 。结合系统的功能需求, 为数据表达设计合适的算法, 既要实现系统指定的功能, 同时还要满足系统的相关性能要求和质量验收标准。
(6) 界面设计 (包含操作设计) 。为整个软件系统设计合理的人机交互界面, 包括人机操作交互设计及其操作响应的设计, 都包含在此步骤中。通过界面设计完成数据表达和软件算法的外封装, 将封装接口留给用户自行使用或者进行二次开发。
(7) 整体测试。根据所设计的软件框架结构、数据表结构、软件算法以及界面操作功能, 结合系统需要实现的功能需求和性能需求, 对整个软件进行白盒测试与黑盒测试, 确保整体质量达到预期的设计要求。这里需要说明的是, 设计阶段的测试主要是功能性单步调试, 需要待软件整体功能完成后才能够进行各功能的单元测试及系统集成测试。
2 软件项目设计过程的管理建议与措施
2.1 对软件项目的进度、质量和成本进行全过程跟踪管理
软件项目开发最在乎无非是项目的进度、质量和成本, 因此要实现对软件项目的过程管理, 就必须以软件项目的进度、质量和成本作为突破口, 对软件项目的进度、质量和成本实施全过程监控管理, 才能够实现对软件项目的全过程管理。具体来说, 对软件项目的进度、质量和成本实施全过程监控管理, 可以从以下几个方面着手:
2.1.1 合理设置软件项目的里程碑标志
按照软件开发计划的进度安排, 为软件项目的开发进度设置阶段性里程碑标志, 也可以进一步细化为大里程碑和小里程碑。确定了里程碑, 软件开发的每一阶段也就确定下来了, 可以依据每一阶段的软件开发, 为软件项目配备合适的人力资源、软件开发资源以及必要的技术支撑等, 就能够按阶段实现软件的开发设计工作。按照软件开发计划的进度, 细化分配到每个编程人员软件模块完成时间表。由项目负责人监督项目进度, 并与开发小组上报的日报、周报进行核对, 及时更正项目进度偏差。倘若由于某一环节时间发生偏差, 项目负责人也可以对里程碑适当进行调整, 从而保证进度管理的灵活性, 也从另一个方面保证软件项目开发的质量。
2.1.2 进行阶段性单元测试
为了保证软件开发的质量, 需要在开发的过程中进行阶段性测试, 包括功能测试、性能测试、容错测试以及安全测试等等。这里所说的阶段性测试主要是指单元测试。要按照软件设计开发的进度进行相应的单元测试, 因为每一阶段都有不同的测试内容和测试目的, 应该在软件开发设计的相应阶段之前就确定好测试的手段、方法以及相关测试报表。如果测试成功, 则可以顺利进入到下一里程碑阶段;如果测试失败, 则应当详细分析导致失败的原因, 指出功能测试或者性能测试的缺陷, 同时完成测试报表, 以供后向通道的测试。如有必要, 应当对系统发生失败的测试项目逐条语句进行单步调试, 直至完成阶段性测试。
2.1.3 对软件开发费用进行控制
一般而言, 当软件系统的功能需求和性能需求分析完毕后, 只要确定好系统的里程碑标志, 即可确定软件系统开发的相关资源, 严格来说软件系统的开发成本基本也已经明确了, 因此对于软件开发的可预见性成本的控制是不难的, 关键是在开发过程中, 需要对一些不可预见性的成本开支进行严格控制, 如设计更改、人员调整等等, 这些因素都有可能导致软件系统开发的成本大幅上升。因此, 软件系统的成本管理重点是要控制不可预见性的成本费用。
项目经理或者项目负责人正确的决策是减少项目不可预见费用的重要因素, 错误的决策会导致项目部分返工, 甚至于项目方案变动, 造成人力物力的浪费。
2.2 对软件设计过程进行监理, 重在沟通
过去软件系统的开发过程管理存在着一个误区, 就是重管理轻监理。在这样的管理方针下, 很多软件工程师在实际开发设计过程中会感觉束手束脚, 最后不是质量打了折扣, 就是开发周期一拖再拖, 管理效果差强人意。因此, 要加强对软件设计过程的管理, 就必须改变这一传统的管理手段, 对设计过程重在监理, 强调沟通, 发挥效率, 真正为软件设计的过程去服务, 而不是去管理。
沟通主要包括跟用户进行沟通和开发团队内部的沟通。开发团队与用户沟通在需求分析阶段要做到最大可能的到位, 用户方的技术人员和用户方的高层在需求理解上经常会不一致, 在项目开发过程中会提出需求变更或者添加功能需求, 用户方的高层之间也会有不同的意见。因此正确全面地把握用户需求, 才能做出最正确的决策, 拿出最经济有效的方案。
开发团队的沟通管理重在监理, 对软件设计过程的人力、周期、质量、资金等等进行监理, 当发生偏差时就进行自上而下的沟通, 再自下而上进行信息反馈, 这样既不会束缚软件工程师的手脚, 同时对于软件设计本身而言, 其质量、进度和成本在经过有效的沟通和反馈之后, 依然在项目管理轨道上行进。
需要说明的是, 这里强调的沟通并不是指出现问题, 大家坐下来讨论问题出现的原因, 然后提出解决的办法和措施, 这样无疑是耽误了软件设计的周期。这里所强调的沟通, 实际上是指当监理人员发现软件设计开发过程中某一指标或者某些指标发生了偏离, 与项目协调员或者项目专员进行沟通, 由项目专员与软件工程师进行沟通协调, 在进行设计的过程中实现自下而上及自上而下的双向信息流通。
2.3 对软件设计过程中产生的设计文档严格要求, 对开发过程记录严加管理
软件设计过程中产生设计文档、记录, 必须按照软件工程开发规范, 与实际的代码一一对应。一套高水平的规范文档, 可以将在项目中的开发人员由于各种原因离岗带来的项目进度损失、人力资源损失都记录在内, 这样新来的开发人员看着文档就可以接替这个岗位的工作。对软件设计开发过程实行文档管理, 不仅仅是为了防范岗位接替带来的损失, 更重要是依靠完善的文档管理, 能够对软件开发设计过程中的任意一个环节都可以进行回顾、监测;在强调弱化管理、加强监控的软件过程管理模式的同时, 只有依靠文档管理, 才能够最终实现对软件开发设计过程细致入微的管理。
2.4 软件设计模型选取和注意项目积累
开发团队在经过一段时期的开发后, 有了一定项目经验和技术积累。当新的项目需求与以前的项目需求很接近时, 可以采用原型法开发, 列出需求变化的部分和新增的功能、要删掉的功能, 这样可以沿用前项目的开发文档 (当然要根据项目修改) 和开发方案、思路、技术, 进行快速有效的开发。新开发的项目成功后又可以作为以后项目的原型, 这也是软件构件重用的基本思路, 这样能够利用积累下来的软件模型、程序代码和开发经验, 实现高效的组装式的软件开发程式, 大大降低后续软件开发的出错率, 极大地提高后续软件开发的稳定性与可靠性。
2.5对软件设计过程中的部分软件功能模块化以供复用
软件模块复用是软件快速高效开发中经常用到的, 对某特定行业、特定需求, 特别约定俗成的软件功能需求尽量提出来设计成软件模块。将软件开发设计重复使用的一部分称之为软件构件, 这是近几年来逐步盛行的一种高效、低成本的软件开发模式。重复使用某一软件构件, 首先需要明确该软件构件定义中所使用的技术标准和规范, 倘若连技术标准语规范都无法明确, 那么很难保证利用该软件构件开发出来的软件具有全局统一的技术规范, 从而软件的可靠性也无法得到保证。因此, 确定构件使用的技术标准与规范, 对于软件构件的应用也是基础技术保障。
3结束语
软件的开发设计已经逐渐成为第三产业中越来越重要的分支, 同时软件开发设计水平也标志着一个国家的计算机自主知识创新能力和水平。因此, 我国目前也逐步加大了对软件产业的投资, 从目前全国各地普遍兴建软件产业园就可以看出软件产业的强劲发展势头。要想做大做强软件产业, 质量是关键, 管理是根本。因此本文详细探讨了软件项目开发的过程管理, 给出了具体的过程管理建议与措施, 对于进一步提高软件开发设计的过程管理水平具有较好的指导借鉴意义。当然, 更多的软件过程管理措施还有待于广大软件工程师在实际开发设计过程中共同努力才能够最终得以落实, 并实现我国软件产业的快速、健康发展。
参考文献
[1]王长峰.IT项目管理案例与分析[M].北京:机械工业出版社, 2008.
[2]唐毅鸿, 杨朝晖, 刘倩羽.软件性能工程[M].北京:机械工业出版社, 2003.
[3]张文清.软件开发过程项目管理的研究[D].北京:首者经济贸易大学, 2005.
[4]吴吉义.软件研发中的项目质量管理过程研究[J].微型机与应用, 2007 (6) .
3.软件过程管理总结 篇三
关键词 高校管理 教务管理信息系统 发展
中图分类号:TP3 文献标识码:A
1教务管理信息系统的初形和功能
社会在发展,科技在创新,计算机已成为人类进步的关键技能和因素。教务管理软件的发展是随着计算机的发展而发展的,它是从原有单一的程序到可实现多个功能的程序集合,即教务管理子系统的初形。因此,我们可以从计算机的操作系统和相关数据库系统软件的发展来分析教务管理软件的演变过程。
1.1教务管理信息系统的初形
1987年2月,在数据库系统软件应用方面,美国FOX公司推出了多用户关系型数据库管理系统,FOXBASE+系统,由于其性能优越,很快在我国得到广泛的应用和普及。由于我国计算机发展的滞后,在90年代中,教务管理人员提出把实现单一功能的程序集合起来的要求,很快程序开发人员把这些实现单一功能的程序进行分类集结,形成可实现多个功能的程序集合,此时的教务管理软件功能开始增强,处理的数据也增多了,开始形成教务管理子系统的初形。
1.2教务管理信息系统的功能
我国的计算机发展相对比西方慢,在90年代初,才利用数据库管理系统进行编程,应用到教务管理上,当时的教务管理信息系统算不上是系统,只是一些实现单一功能的程序。这些程序有:学生学籍数据录入程序,打印学生名单、打印各类成绩单等。
2教务管理信息系统的形成过程
教育事业正在高速发展,高校和高职院校的数量显著增长,学校办学规模不断扩大,学生人数不断增长,这些变化对原有高校的教务管理信息系统提出了更多的要求和功能。随着计算机技术的不断发展,开发教务管理信息系统所采用的操作平台、开发工具和后台的数据库管理系统有很多。该系统主要是由各子系统组合而成的,已实现多种功能为主,同时达到远程数据传送效果。这个阶段采用DOS操作系统,数据库软件方面有更高版本的FOXPRO。如FOXPRO 2.6 FOR DOS,它是一套关联型数据库管理系统程序,其功能完整,用户界面比较友好,便利阅读的表格来编排数据元素的,使用户轻易地储存、组织、管理及打印平日工作上的各种数据,因此用这套软件开发教务管理系统的学校很多,并且有计算机公司开始参与开发,专业技术开发人员介入到教务管理信息系统的开发中。
操作平台方面有Windows、UNIX、Linux。作为一个处理数据量相对不算大的教务管理信息系统,采用Windows操作系统已基本足够了。计算机网络技术的快速发展,以及为了满足应用软件在网络上的使用,微软公司在2000年推出了构建于客户机/服务体系结构的Windows2000系列操作系统,实现用户应用软件的网上操作,数据共享。前台开发工具方面,采用Power Builder、Delphi、ASP.NET、FrontPage等,而采用Power Builder作为前台开发工具的用户比较多,它是目前较流行的开发工具。后台数据库管理系统应用方面也有很多,如规模较大的采用SQL Server、Oracle、Sybase等大型数据库,规模较小的采用Acces、Foxpro等小型数据库。
3教务管理信息系统的发展趋势
为了落实教育部的《面向21世纪教育振兴行动计划》安排,推动教学资源建设,推广现代化教育技术在教学和教学管理中的应用,促进教育整体质量和办学效益的提高。从教育主管部门,到各高校以及计算机技术开发公司都积极面对,通过多方技术支持参与和开发教务软件,到两方面的发展势头。
3.1教育部门的推动力量
国家教育部信息中心作为全国高校管理软件的推广、培训部门,一直致力于高校教务管理软件系统的开发工作,它所开发的《高等院校教务综合管理系统》,从教务管理的实际流程出发,将所有数据处理集成在一起,实现真正数据共享,彻底解决数据安全性问题,为教务管理人员解决了很多烦琐的工作,减轻工作的负担。
3.2学校的研发力量
随着学校办学规模的不断扩大,管理水平不断提高,原有的管理模式和手工处理方式已很难跟上形势发展的步伐,只有运用信息技术进行科学管理,才会有助于提高教育管理工作效率。因此,很多高校根据自己的实际,充分利用学校的人才资源和技术资源,自行开发适合自己学校管理的教务管理信息系统。为各级学校开发校园网,开发教务管理信息系统以及办公自动化系统,大大提高学校的教育和教学管理的效果。
总之,学校的主要工作重点是教学工作,如何科学高效的落实教学工作,为教学工作做好统筹、规划和服务。计算机的教务管理信息系统是当今学校提高教务管理工作效率的重要手段,只有科学高效的灵活运用教务管理系统,才能使学校更加重视系统内容,也有效的助推了系统的应用和研发,从而加快了学校信息化管理的进程。
参考文献
[1] 吴企渊,梁燕等.计算机操作系统[M].北京:清华大学出版社,2000.
[2] 陶志穗等.计算机应用初级教程[M].广州:广东高等教育出版社 ,2003.
[3] 朱爱民等.Power Builder9.0与系统开发[M].北京:清华大学出版社,2003.
4.软件项目管理总结 篇四
软件项目管理的对象是软件工程项目。涉及的范围覆盖了整个软件工程过程。
项目管理是指“在项目活动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和期限。”
项目的核心知识是范围、时间、成本和质量。辅助知识是人力资源管理、风险管理和采购管理。项目启动
接受项目的第一步工作就是界定项目。项目启动应做如下工作:
1)设定目标:收集事实、信息、意见、需求;探讨假设情况;确定应包括的内容和应排除的东西。
2)SWOT分析:S(优势)W(劣势)
O(机会)
T(威胁)
3)确定需要进行的主要工作及需要的技能和资源,即明确项目的资源和范围。4)考虑可能的解决方案,标明技术上和管理上的限制。
2.1 制定计划工作:度量
什么是度量? IEEE 定义度量是 “对一个系统、构件或过程具有的某个给定属性的一个定量测量”。进行度量工作,是为了了解产品开发的技术过程和产品本身。(1)度量开发过程的目的是为了改进过程;(2)度量产品的目的是为了提高产品质量。度量的作用是为有效地定量地进行管理。
2.2 制定计划工作:估算
在软件项目管理过程中关键的活动就是制定项目计划。在做计划时必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)做出估算。
(1)在软件项目管理过程中关键的活动就是制定项目计划。(2)在做计划时必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、(3)成本(以元为单位)做出估算。
2.3 制定计划工作:风险分析
所谓风险分析实际上就是一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督。这些步骤贯穿在软件工程过程中。2.4 制定计划工作:进度安排
每个软件项目都要求制定一个进度安排,但不是所有进度都得一样安排。2.5 追踪和控制
一旦建立了开发进度安排,就可以开始着手追踪和控制活动。由项目管理人员负责追踪在进度安排中标明的每一个任务。如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成的影响。
(1)可对资源重新定向
(2)对任务重新安排(做为最坏的结果)可以修改交付日期以调整已经暴露的问题。用这种方式可以较好地控制软件的开发。
软件生产率和质量的度量
生产率与质量的度量是以投入工作量为依据的软件开发过程的度量和软件产品质量的度量。面向规模的度量面向功能的度量软件质量的度量 软件度量分为两类:直接度量与间接度量。
软件过程的直接度量包括所投入的成本和工作量。软件产品的直接度量包括产生的代码行数(LOC)、执行速度、存储量大小、在某种时间周期中报告的差错数。
软件产品的间接度量包括功能性、复杂性、效率、可靠性、可维护性和许多其他质量特性。
3.1 面向规模的度量
面向规模的度量是对软件和软件开发过程的直接度量。3.2 面向功能的度量
面向功能的软件度量是对软件和软件开发过程的间接度量,主要考虑程序的 “功能性” 和 “实用性”,而不是对 LOC计数。
该度量是一种叫做功能点方法的生产率度量,利用软件信息域中的一些计数和软件复杂性估 功能点度量是为信息系统应用而设计的。
特征点度量(Feature Points)可以用于系统和工程软件应用。特征点度量适合于算法复杂性高的应用,如实时处理、过程控制、嵌入式软件。
3.4 软件质量的度量
质量度量贯穿于软件工程的全过程中以及软件交付用户使用之后。
使用得最广泛软件质量的事后度量包括正确性、可维护性、完整性和可使用性。
(1)正确性:一个程序必须正确地运行,并为它的用户提供某些输出。正确性要求软件执行所要求的功能。正确性的度量是每千代码行(KLOC)的差错数,其中将差错定义为已被证实是不符合需求的缺陷。
(2)可维护性:软件维护比其它的软件工程活动需要更多的工作量。还没有一种方法可以直接度量可维护性,必须采取间接度量。
一种简单的面向时间的度量:
平均变更等待时间MTTC。这个时间包括分析变更要求、设计适当修改、实现变更并测试、把变更发送给所有用户。一个可维护的程序与不可维护的程序相比,应有较低的MTTC。
(3)完整性:完整性度量一个系统抗拒对它的安全性攻击(事故的和人为的)的能力。程序、数据和文档都会遭到攻击。
度量完整性,需要定义两个附加的属性:危险性和安全性。危险性是特定类型的攻击将在一给定时间内发生的概率,安全性是排除特定类型攻击的概率。
一个系统的完整性可定义为
完整性=∑(1-危险性×(1-安全性))(4)可使用性:如果程序不具有用户友好性,即使它所执行的功能很有价值也常常会失败。
4.2 软件开发成本估算方法
对于绝大多数项目,主要的成本是工作成本。
软件成本计算的目的是要精确地、客观地预测软件承包商的开发成本。软件的开发成本是以一次性开发过程所花费的代价来计算的。要进行一系列的估算处理。主要靠分解和类推。
1.自顶向下的估算方法
这种方法的主要思想是从项目的整体出发,进行类推。
估算人员根据以前已完成项目所消耗的总成本(或总工作量),推算将要开发的软件的总成本(或总工作量),然后按比例将它分配到各开发任务单元中去,再来检验它是否能满足要求。
2.自底向上的估算方法
这种方法的主要思想是把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量。它的优点是估算各个部分的准确性高。缺点是缺少各项子任务之间相互联系所需要的工作量,还缺少许多与软件开发有关的系统级工作量.3.差别估计法
这种方法综合了上述两种方法的优点,其主要思想是把待开发的软件项目与过去已完成的软件项目进行类比,从其开发的各个子任务中区分出类似的部分和不同的部分。类似的部分按实际量进行计算,不同的部分则采用相应方法进行估算。
4.专家判定技术
由多位专家进行估算,取得多个估算值。再把这些估算值合成一个估算值。
一种合成方法是求各估算值的中值或平均值。其优点是简便。缺点是可能会由于受一、二个极端估算值的影响而产生严重的偏差。另一种合成方法是召开小组会,使各位专家们统一于或至少同意某一个估算值。优点是可以摈弃蒙昧无知的估算值,缺点是一些组员可能会受权威或政治因素的影响。
5.标准Deiphi技术
A组织者发给每位专家一份软件系统规格说明书和一张记录估算值的表格,请他们估算。B专家详细研究软件规格说明书的内容,对该软件提出三个规模的估算值,即:ai(最小), mi(可能), bi(最大), 无记名地填写表格。C组织者整理专家们填在表格中的答复:
(1)计算各专家估算的期望值 Ei
Ei =(ai+4mi+bi)/6(2)对专家的估算结果分类摘要。
D在综合专家估算结果的基础上,组织专家再次无记名地填写表格。比较两次估算的结果。若差异很大,要通过查询找出差异的原因。
E上述过程可重复多次。最终可获得一个得到多数专家共识的软件规模(源代码行数)。
.最后,通过与历史资料进行类比,根据过去完成软件项目的规模和成本等信息,推算出该软件每行源代码所需要的成本。然后再乘以该软件源代码行数的估算值,就可得到该软件的成本估算值。
4.3 软件开发成本估算的经验模型
软件开发成本估算是依据开发成本估算模型进行估算的。
1.IBM模型(Walston-Felix)静态单变量模型
2.其他静态单变量模型 3.Putnam 模型
动态多变量模型。
4.COCOMO模型 结构型成本估算模型是一种精确、易于使用的成本估算方法。软件开发项目的总体类型: 组织型
不涉及硬件的开发
嵌入型
完全与硬件结合的开发
半独立型
介于上述两者之间
COCOMO模型按其详细程度分成三级:
基本COCOMO模型
中间COCOMO模型
详细COCOMO模型
基本COCOMO模型是静态单变量模型,用源代码行数(LOC)为自变量的经验函数计算软件开发工作量。
中间COCOMO模型在用LOC为自变量的函数计算软件开发工作量(称为名义工作量)的基础上,用涉及产品、硬件、人员、项目等方面的影响因素调整工作量估算。详细COCOMO模型包括中间COCO MO模型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中每一步骤(分析、设计等)的影响。15种影响软件工作量的因素 fi:
产品因素:软件可靠性、数据库规模、产品复杂性
硬件因素:执行时间限制、存储限制、虚拟机易变性、环境周转时间
人的因素:分析员能力、应用领域实际经验、程序员能力、虚拟机使用经验、程序语言使用经验
项目因素:现代程序设计技术、软件工具的使用、开发进度限制
6.1 软件范围
软件范围包括功能、性能、限制、接口和可靠性。估算开始时应对软件功能进行评价,对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常采用某种程度的功能分解。性能的考虑包括处理和响应时间的需求。
约束条件则标识产品成本、外部硬件、可用存储或其它现有系统对软件的限制。现成的用以支持软件开发的工具(硬件工具及软件工具);最基本的资源(人);通常,对每一种资源,应说明以下四个特性:资源的描述、资源的有效性说明、资源在何时开始需要、使用资源的持续时间。最后两个特性统称为时间窗口。
6.4 风险分析
风险分析的主要活动有风险识别、风险估算、风险评价和风险管理。
风险分项目风险、技术风险和商业风险。
5.软件项目质量管理实战总结 篇五
第一章 引言
许多IT项目开发的系统应用在生死攸关的场合。例如,1981年,由计算机程序改变而导致的1/67的时间偏差,使航天飞机上的5台计算机不能同步运行,这个错误导致了航天飞机发射失败。1986年,1台Therac25机器泄露致命剂量的辐射,致使两名医院病人死亡。造成惨剧的原因是一个软件出现了问题,导致这台机器忽略了数据校验。这些惨痛的教训说明,在软件开发项目中认真抓好质量管理,并加强有关软件项目质量管理的研究是摆在我们面前的重要课题。
软件项目质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。
第二章 对软件项目质量管理理论的认识
软件项目的质量管理指的是保证项目满足其目标要求所需要的过程,它包括编制质量计划、质量控制、质量保证等过程。
2.1 质量计划编制
现代质量管理的基本宗旨是:“质量出自计划,而非出自检查”。只有做出精准的质量计划,才能指导项目的实施、做好质量控制。
编制项目的质量计划,首先必须确定项目的范围、中间产品和最终产品,然后明确关于中间产品和最终产品的有关规定、标准,确定可能影响产品质量的技术要点,并找出能够确保高效满足相关规定、标准的过程方法。编制质量计划通常采用流程图、因果分析图等方法对项目进行分析,确定需要监控的关键元素,设置合理的见证点(W点)、停工待检点(H点),并制定质量标准:
1)流程图:
显示系统的各种成分是如何相互关系的,帮助我们预测在何处可能发生何种质量问题,并由此帮助开发处理他们的办法。
2)因果分析图(也称鱼刺图):
对于复杂的项目,编制质量计划时可以采用因果分析图,描述相关的各种原因和子原因如何产生潜在问题或影响,将影响质量问题的“人员、设备、参考资料、方法、环境”等各方面的原因进行细致的分解,方便地在质量计划中制定相应的预防措施。其次,质量计划中还必须确定有效的质量管理体系,明确质量监理人员对项目质量负责和各级质量管理人员的权限。戴明环(又名PDCA循环法)作为有效的管理工具在质量管理中得到广泛的应用,它采用计划——执行——检查——措施的质量环,质量计划中必须将质量环上各环节明确落实到各责任单位,才能保证质量计划的有效实施。
2.2 按照质量计划实施有效的质量控制
质量计划确定后,按照其建立的质量管理体系,各责任单位就必须按照PDCA质量环的要求,实施有效的质量控制。质量控制应贯穿于项目的整个过程,它可分为监测和控制两个阶段:监测的目的就是收集、记录和汇报有关项目质量的数据信息;控制就是使用质量监测提供的数据,进行控制,确保项目质量与计划保持一致。
在质量监测过程中,对于质量计划中设置的见证点、停工待检点,质量监测人员要按照作业程序及时进行测量检查(其中对于停工待检点必须由监理人员签字认可后才能进入下一道工序),以确定项目成果(或阶段成果)是否符合相关的质量标准。对于见证点或停工待检点要防止跳过检查,因为避免错误的成本总是大大低于补救错误的成本。对质量监测的结果应采用相应的统计方法进行分析,如帕累托图法(按发生频率排序的直方图,它显示了可识别原因的种类和所造成的结果的数量)等。通过统计分析对人员、设备、参考资料、方法、环境等影响项目质量的因素进行监控,确定项目实施过程是否在控制之中,同时进行趋势分析,对一些偏向于不合格的趋势及早进行控制。质量控制阶段应根据验收数据做出验收决定,确定是否进入下一步工序。对于质量监测中发现的不合格,应及时利用“因果分析图”等方法分析原因,并进行适宜的处置,保证不合格得到识别和有效的控制。不合格处置包括返工、返修、降级、让步放行、报废等形式。
质量监测分析时,对于已发现的不合格或潜在不合格,应制定相应的纠正措施或预防措施,以消除不合格或潜在不合格的原因,防止不合格的发生。纠正措施或预防措施制定后,应对质量计划进行相应的调整,保证项目的顺利实施。
项目收尾包括项目评估和项目终止两个阶段。项目收尾阶段的质量控制是一个非常重要而又容易忽视的内容。
项目质量评估不仅仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估。项目质量评估看起来属于事后控制,但它的目的不是为了改变那些已经发生的事情,而是试图抓住项目质量合格或不合格的精髓,以使将来的项目质量管理能从中获益。
项目终止阶段,是在决策项目终止后,检查项目文件资料完备,包括项目施工质量验评表、竣工报告等,同时进行项目总结。项目总结是一个把实际运行情况与项目计划不断比较以提炼经验教训的过程。通过项目质量计划和总结,项目过程中的经验和教训将得到完整的记录和升华,成为“组织财富”。
四、项目质量管理的难点
每个项目的实施总是拥有同样的总体目标:质量、时间和成本。三者是一个相互制约、相互影响的统一体,其中任一项目标变化,都会引起另两个目标变化,并受其制约。如何合理的保证项目质量,正确处理质量与时间、成本之间的矛盾是项目质量管理的一个难点,这需要整合项目所有方面的内容,保证按时、低成本地实现预定的质量目标。
根据侧重点不同,项目可分为质量倾斜型、工期倾斜型及成本倾斜型体系。我们在编制项目计划时,一般而言是时间、成本、质量标准均已确定,在项目实施过程中就需在从客观因素、具体情况出发,根据将要采取的行动和可能导致的后果进行综合分析研究;按切合实际的原则,使项目进展平衡有节奏地进行,以求达到预期目标。避免出现工期紧张或成本减少,导致质量降低的现象,而质量下降又往往造成返工等后果而导致延长工期和增加成本。
2.3 对软件质量保证的认识
2.3.1 有关SQA的理论
我们都知道一个项目的主要内容是:成本、进度、质量;良好的项目管理就是综合三方面的因素,平衡三方面的目标,最终依照目标完成任务。项目的这三个方面是相互制约和影响的,有时对这三方面的平衡策略甚至成为一个企业级的要求,决定了企业的行为,我们知道 IBM的软件是以质量为最重要目标的,而微软的“足够好的软件”策略更是耳熟能详,这些质量目标其实立足于企业的战略目标。所以用于进行质量保证的SQA 工作也应当立足于企业的战略目标,从这个角度思考SQA,形成对SQA的理论认识。
软件界已经达成共识的:影响软件项目进度、成本、质量的因素主要是 “人、过程、技术”。首先要明确的是这三个因素中,人是第一位的。
现在许多实施 CMM的人员沉溺于CMM的理论过于强调“过程”,这是很危险的倾向。这个思想倾向在国外受到了猛烈抨击,从某种意义上各种敏捷过程方法的提出就是对强调过程的一种反思。“XP”中的一个思想“人比过程更重要” 是值得我们思考的。我个人的意见在进行过程改进中坚持“以人为本”,强调过程和人的和谐。
根据现代软件工程对众多失败项目的调查,发现管理是项目失败的主要原因。这个事实的重要性在于说明了 “要保证项目不失败,我们应当更加关注管理”,注意这个事实没有说明另外一个问题“良好的管理可以保证项目的成功”。现在很多人基于一种粗糙的逻辑,从一个事实反推到的这个结论,在逻辑上是错误的,这种错误形成了更加错误的做法,这点在SQA的理解上是体现较深。
如果我们考证一下历史的沿革,应当更加容易理解 CMM的本质。CMM首先是作为一个“评估标准”出现的,主要评估的是美国国防部供应商保证质量的能力。CMM关注的软件生产有如下特点:
(1)质量重要
(2)规模较大
这是 CMM产生的原因。它引入了“全面质量管理”的思想,尤其侧重了“全面质量管理”中的“过程方法”,并且引入了“统计过程控制”的方法。可以说这两个思想是CMM背后的基础。
上面这些内容形成了我们对软件过程地位、价值的基本理解;在这个基础上我们可以引申讨论 SQA。
2.3.2 生产线的隐喻
如果将一个软件生产类比于一个工厂的生产。那么生产线就是过程,产品按照生产线的规定过程进行生产。SQA的职责就是保证过程的执行,也就是保证生产线的正常执行。
抽象出管理体系模型的如下,这个模型说明了一个过程体系至少应当包含 “决策、执行、反馈”三个重要方面。
QA的职责就是确保过程的有效执行,监督项目按照过程进行项目活动;它不负责监管产品的质量,不负责向管理层提供项目的情况,不负责代表管理层进行管理,只是代表管理层来保证过程的执行。
2.3.3 SQA和其他工作的组合
在很多企业中,将 SQA的工作和QC、SEPG、组织级的项目管理者的工作混合在一起了,有时甚至更加注重其他方面的工作而没有做好SQA的本职工作。
国内现在基本有三种QA(按照工作重点不同来分):一是过程改进型,一是配置管理型,一是测试型。个人认为是因为SQA工作和其他不同工作组合在一起形成的。
下面根据经验对它们之间的关系进行一个说明。
QA和QC ,两者基本职责;
QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;
QA:审计过程的质量,保证过程被正确执行;是过程质量审计者;
注意区别检查和审计的不同,检查:就是我们常说的找茬,是挑毛病的;
审计:来确认项目按照要求进行的证据;仔细看看CMM中各个KPA中SQA的检查采用的术语大量用到了“证实”,审计的内容主要是过程的;对照CMM看一下项目经理和高级管理者的审查内容,他们更加关注具体内容。
对照上面的管理体系模型,QC进行质量控制,向管理层反馈质量信息;QA则确保QC按照过程进行质量控制活动,按照过程将检查结果向管理层汇报。这就是QA和QC工作的关系。
在这样的分工原则下,QA只要检查项目按照过程进行了某项活动没有,产出了某个产品没有;而QC来检查产品是否符合质量要求。
如果企业原来具有 QC人员并且QA人员配备不足,可以先确定由QC兼任QA工作。但是只能是暂时的,独立的QA人员应当具备,因为QC工作也是要遵循过程要求的,也是要被审计过程的,这种混合情况,难以保证QC工作的过程质量。
QA 和SEPG,两者基本职责。SEPG:制定过程,实施过程改进;QA:确保过程被正确执行。SEPG应当提供过程上的指导,帮助项目组制定项目过程,帮助项目组进行策划;从而帮助项目组有效的工作,有效的执行过程。如果项目和QA对过程的理解发生争持,SEPG作为最终仲裁者。为了进行有效过程改进,SEPG必须分析项目的数据。QA本也要进行过程规范,那么所有QA中最有经验、最有能力的QA可以参加SEPG,但是要注意这两者的区别。
如果企业的 SEPG人员具有较为深厚的开发背景,可以兼任SQA工作,这样利于过程的不断改进;但是由于立法、执法集于一身也容易造成SQA过于强势,影响项目的独立性。
管理过程比较成熟的企业,因为企业的文化和管理机制已经健全,SQA职责范围的工作较少,往往只是针对具体项目制定明确重点的SQA计划,这样SQA的审计工作会大大减少,从而可以同时审计较多项目。
另一方面,由于分工的细致化,管理体系的复杂化,往往需要专职的 SEPG人员,这些人员要求了解企业的所有管理过程和运作情况,在这个基础上才能统筹全局的进行过程改进,这时了解全局的SQA人员就是专职SEPG的主要人选;这些SQA人员将逐渐的转化为SEPG人员,并且更加了解管理知识,而SQA工作渐渐成为他们的兼职工作。这种情况在许多 CMM5企业比较多见,往往有时看不见SQA人员在项目组出现或者很少出现,这种SEPG和SQA的融合特别有利于组织的过程改进工作。SEPG确定过程改进内容,SQA计划重点反映这些改进内容,从保证有效的改进,特别有利于达到CMM5的要求。从这个角度,国外的SQA人员为什么高薪就不难理解了,也决定了当前中国SQA人员比较被轻视的原因;因为管理过程还不完善,我国的SQA人员还没有产生这么大的价值。
2.3.4 QA和组织级的监督管理
有的企业为了更好的监督管理项目,建立了一个角色,我取名为 “组织级的监督管理者”,他们的职责是对所有项目进行统一的跟踪、监督、适当的管理,来保证管理层对所有项目的可视性、可管理性。为了有效管理项目,“组织级的监督管理者”必须分析项目的数据。他们的职责对照上图的模型,就是执行 “反馈”职能。
QA本身不进行反馈工作,最多对过程执行情况的信息进行反馈。SQA职责最好不要和“组织级的项目管理者”的职责混合在一起,否则容易出现SQA困境:一方面SQA不能准确定位自己的工作,另一方面过程执行者对SQA人员抱有较大戒心。
如果建立了较好的管理过程,那么就会增强项目的可视性,从而保证企业对所有项目的较好管理;而 QA来确保这个管理过程的运行。
2.3.5 SQA的工作内容和工作方法
2.3.5.1 计划
针对具体项目制定 SQA计划,确保项目组正确执行过程。制定SQA计划应当注意如下几点:
有重点:依据企业目标以及项目情况确定审计的重点。
明确审计内容:明确审计哪些活动,那些产品。
明确审计方式:确定怎样进行审计。
明确审计结果报告的规则:审计的结果报告给谁。
2.3.5.2 审计/证实
依据 SQA计划进行SQA审计工作,按照规则发布审计结果报告。注意审计一定要有项目组人员陪同,不能搞突然袭击。双方要开诚布公,坦诚相对。审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。
2.3.5.3 问题跟踪
对审计中发现的问题,要求项目组改进,并跟进直到解决。
2.3.5.4 SQA的素质
过程为中心:应当站在过程的角度来考虑问题,保证了过程,QA就尽到了责任。
服务精神:为项目组服务,帮助项目组确保正确执行过程。
了解过程:深刻了解企业的工程,并具有一定的过程管理理论知识。
了解开发:对开发工作的基本情况了解,能够理解项目的活动。
沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。第三章 软件项目质量管理在实际中的具体做法
3.1 质量管理责任分配
笔者曾在美国TAJ Technologies公司任软件工程师工作。TAJ Technologies公司(位于美国明尼苏达州,有约200名员工)在开发项目上按照规范化软件的生产方式进行生产,在生产流程上采用ISO9000 的标准进行。每个项目除配备了项目开发所需角色外,还专门配备了配置管理小组、测试小组和质量保证小组确保质量管理的实施,下面针对这三种角色进行说明:
3.1.1 配置管理小组职责
配置管理小组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。配置管理小组的主要职责包括: 完善各个部门发送需要存档和进行版本控制的代码、文档(包括外来文件)和阶段性成果;对代码、文档等进行单向出入的控制;对所有存档的文档进行版本控制;提供文档规范,并传达到开发组中。
3.1.2 测试小组职责
测试小组作为质量控制的主要手段,负责软件的测试设计和执行工作。如同软件开发一样,测试在执行之前,同样需要进行测试计划和测试策略的设计,通常情况下测试可以分为如下几种类型,如:正确性测试、功能性测试、性能测试、安全测试和系统测试等。而这些测试均需要在测试计划和测试策略中进行描述用以指导测试小组成员进行测试用例编写和测试执行。程序员在交给测试人员之前是进行过一定的单元测试,确保程序编译、运行正确。
测试人员根据详细设计的文档对软件要实现的功能进行一一测试,保证软件的执行正确的实现设计要求,在此也只证明了软件正确的反映了设计思想,但是否真正反映了用户的需求仍需要进一步的功能性测试。
测试人员只有根据软件需求规格说明书所提及的功能进行检测,才能确保项目组开发的软件产品满足用户需求。在正确性测试完成之后,需要测试的是软件的性能,软件的性能在本项目中占有重要的地位,性能要求有可能改变软件的设计,为避免造成软件的后期返工,测试在性能上需要较大的侧重。如果有必要的话,测试小组还需要做安全测试,以确保系统使用安全可靠。
3.1.3 质量保证小组职责
质量保证小组作为质量保证的实施小组,主要职责是保证软件透明开发的主要环节。在项目开发的过程中几乎所有的部门都与质量保证小组有关。质量保证小组对项目经理提供项目进度与项目真正开发时的差异报告,提出差异原因和改进方法。
在项目进度被延滞或质量保证小组认为某阶段开发质量有问题时,提请项目经理、项目负责人等必要的相关人员举行质量会议。解决当前存在的和潜在的问题。质量保证是建立在文档的复审基础之上,因而文档版本的控制,特别是软件配置管理,直接影响软件质量保证的影响力和力度。质量保证小组的检测范围包括:系统分析人员是否正确的反映了用户的需求;软件执行体是否正确的实现了分析人员的设计思想;测试人员是否进行了较为彻底的和全面的测试;配置管理员是否对文档的规范化进行的比较彻底,版本控制是否有效。
3.2 质量管理实施
有了良好的资源配备,又如何在项目全生命周期内实施质量保证,让我们从以下几个方面来看质量保证的实施过程:
3.2.1 项目进度的质量保证
项目进度是项目进行是否顺利的最直观表现。显然在项目开始之前,项目开发计划是必须的。如果项目开发计划的制定的是完全合理的,那项目进度也就真正表达了项目与最终的交付使用之间的距离,然而要制定完全合理的项目开发计划几乎不太可能。可见要保证项目进度,首先要保证项目开发计划尽可能合理。
项目计划的合理程度与项目计划制定者从事类似规模和类似业务的项目的经验有直接关系,通过经验往往能够预见潜在的阻碍,这样要求项目计划制定者需要集众人之力来完善计划。
当项目计划制定初期,由质量保证小组组织召开的项目计划评审会,邀请公司技术专家、用户以及项目组小组成员一起讨论项目计划的可行性,会议通常采用头脑风暴法,各抒己见,会后由指定的记录员形成质量记录,发送给相关人员,对其计划中不合理的地方进行修改完善,并由质量保证人员对其结果跟踪,以确保项目计划完整性、可行性,完善后的计划交由配置管理人员进行版本控制。
然而在计划实施过程中,计划不是“固定化”。常有人道,“计划赶不上变化”,但“要跟上变化”。项目计划以里程碑为界限,将整个开发周期划分为若干阶段。根据里程碑的完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间,这种方式非常有利于整个项目计划的动态调整。也利于项目质量保证的实施。
实际运作中,当质保小组发现计划实施的差异后,报告项目经理,由项目经理组织负责对计划进行周期性维护,对于已经变动的计划由质保小组协助配置管理小组完成版本控制。
项目开发各阶段的质量保证
a、需求分析
需求分析是开发人员对系统需要做什么和如何做的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。
解决系统分析错误的方法。TAJ Technologies公司通常采用邀请用户参与进行需求评定,然后对其用户的意见由质保成员跟踪检测是否纳入需求规格说明书,同时与用户签字确认形成需求基线,交由配置管理员放入配置管理库。
虽然尽早的邀请用户参与,仍然避免不了项目进行中用户的需求变更请求。对于开发过程存在的需求变动,我们要求用户填写变更申请单发送给项目配置管理员,在通过配置配置员转交质保小组,负责组织专家小组和项目组成员一起讨论实施变更的可行性及实施后所带来的影响,小的变更则直接记录入变更记录原因分析项和风险项栏,大的变更则需要形成正式的变更报告,无论那种变更都需要对相应的文档实施同步变更(包括需求规格说明书、详细设计文、安装手册、操作手册等)。但是对于无法实现或是变更会带来巨大的影响而将导致进度的延期,这时,我们将变更报告提交给用户或邀请用户进行协调会议,讨论变更取舍问题或是项目进度变更问题。
决定变更之后,由项目经理组织实施变更,测试人员检测变更结果,而质保小组成员监督变更实施过程并协助配置管理员对变更后的成果物进行版本控制。变更实施完后,上线前还需要指定人员协助用户一同测试并由用户签字后同意方可上线。
b、系统设计
优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,自然设计选型成为了系统设计首要的工作,究竟是采用哪种设计方法好呢?
对于设计选型不能一概而论,需要针对项目的结构、项目的特征和用户的需求来分析,同样也要考虑到参与项目小组成员的素质,如果其中大部分都没有从事过面向对象的设计且项目进对紧迫,这样没有多余的时间来培训小组成员来掌握面向对象的设计方法,尽管众所周知面向对象设计方法的优势,我们还是不如采用面向过程的方式(除用户指定开发设计方式外)可以减少项目承担的技术风险。
TAJ Technologies公司有过一个项目,用户指定需要采用面向对象分析、设计和开发,且开发周期短,在无赖的情况下,项目小组只能选用面向对象的软件开发过程,由于项目小组很少从事过面向对象的开发,经验缺乏,导致项目上马后项目进度延误,项目没有达到预期的效果。
针对此次开发,我们分析其原因,发现小组成员在开发过程中对于新技术互相交流少,各自有各自的理解和想法,造成理解上的不一致性,导致工作重复性高,滞后项目进度。建议解决方法是项目组成员采用集中办公,分块学习,学习的成果马上向项目相关人员发布,再由配置管理员对其发布的文档进行整理、规类放入配置库以供大家共享。这样方便大家的互相学习,减少重复的工作。在这次开发中我们公司从管理人员、设计人员到开发人员都汲取了很多教训,同时经过此次项目的开发,小组成员也积累了丰富的面向对象的开发经验。
除设计选型,还有一个容易被忽视的问题,就是公共类开发。公共类开发可以减少工作中的重复工作,降低开发成本。这要求我们再设计阶段通过对用户需求的仔细研究,尽可能的识别出公共类,并进行定义指定专人负责设计通知其它设计人员,以减少重复工作。对于项目组提供的设计文档,由质保小组组织技术专家、项目组设计人员、开发人员和测试人员对其设计文档的评审,检测设计文档对其下一阶段工作的可行性,及时发现设计中可能存在的错误,降低项目开发风险,同时确保设计文档能为开发人员、测试人员提供切实的指导。对于可复用的设计进行提取作为公共库设计和开发,提供项目组或整个公司重用。最后交由配置管理员进行设计文档的版本控制。
c、实现
实现也就是代码的生产过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。
d、文档管理
文档维护主要是配置管理小组的工作。文档从用途上分主要分为内部文档和外部文档。
内部文档包括: 项目开发计划;需求分析;体系结构设计说明;详细设计说明;构件索引;构件成分说明;构件接口及调用说明;组件索引;组件接口及调用说明;类索引;类属性及方法说明;测试报告;测试统计报告;质量监督报告;源代码;文档分类版本索引;软件安装打包文件。
外部文档主要包括: 软件安装手册;软件操作手册;在线帮助;系统性能指标报告;系统操作索引。
如何保证文档的全面性,使其真正为项目的进度提供保证,又不因为文档的写作而耽误项目的进度,这仍然是一个比较难解决的问题。解决此问题,其核心仍然是个“ 度”的问题。
在本项目的开发中,配置管理小组的一个非常重要的任务还是书写文档规范和文档模板。当有文档模板后需要书写文档的人员只剩下“填空”的工作,从某种意义上讲,书写文档的速度会加快。如果书写文档的人员认为文档的更细致的部分可以由他人帮助完成,则该文档即交由他人完成,但此时文档并不算被正式提交,当他人书写完毕之后,必须由文档的初写者进行复审,复审通过后方可以正式提交,进入软件配置管理的循环中。
配置管理小组真正核心的工作是对文档的组织管理。根据文档的不同,文档的来源也不同,有些是通过质量保证小组经过复审之后转交给配置管理小组,有些则会直接从文档的出处到达配置管理小组。文档的管理是一个非常烦琐的工作,但是长远来看它不仅使项目的开发对单个主要人员的依赖减少,从而减少人员流动给项目的带来的风险,更重要的是在项目进行到后百分之十的时候起到拉动项目的作用。
从以往做大项目的经验来看,写作文档在项目开发的早期可能会使项目的进度比起不写文档要稍慢,但随着项目的进展,各个部门需要配合越来越多,开发者越来越需要知道其他人员的开发思路和开发过程,才能使自己的开发向前推进。一个明显的例子就是系统整合,或者某些环节是建立在其他环节完成的基础之上时,就更显现出文档交流的准确性和高效性。
3.2.2 系统维护质量保证
在TAJ Technologies公司,维护小组的任务一方面是保证对项目客户的跟踪服务,另一方面是确保该项目其它的开发人员从项目中尽快的解脱出来以便投入到下一个项目的开发中。所以通常项目维护小组成员主要由项目组的少部分开发人员承担完成。他们不仅了解软件的核心内容,而且与客户也不陌生,以便能够以最快的速度修正错误。对于一般性的错误,如操作不当等引起的问题,全部由维护小组执行完成,但需要用户测试确认上线。如果较大的修改则需要走变更控制流程,用户或者维护人员填写变更申请,经专家会议讨论分析可行方案在由维护小组实施,通过测试后方可提交用户。
维护小组的人员基本上是按项目跟进的。当一个项目刚刚交付用户时,在维护小组有较多的人员进行跟进,随软件的稳定,跟进的人逐步减少,并转移到其它项目中去。
6.软件过程管理总结 篇六
个人总结报告
设计题目:图书管理系统 总结汇报: 指导老师:
2013年6月15日
1.引言
1.1编写目的
现代软件工程中图书馆管理系统的开发与汇报已结束,关于系统开发的总结报告,已以整个团队的角度,在《项目开发总结报告》中陈述。我作为“非常2+3”小组组长,即图书管理系统项目负责人,也许由于身处位置的特殊,所见、所想与所得也与其他队员颇有差异,现总结之。
预期读者:XX老师。
1.2背景
软件系统的名称:图书管理系统 本项目的任务提出者:现代软件工程 开发者:XX 用户及实现该软件的计算机中心或计算机网络:互联网 该软件系统同其他系统或其他机构的基本的相互来往关系:无
2.项目概述
2.1项目简介
图书馆管理系统面向读者、图书管理员、系统管理员及游客提供服务。其中,读者可查询、借阅、预定、归还图书及留言;图书管理员可完成图书的上下架、现有库存图书的借还管理等;在此基础上,系统管理员可以实现对注册读者及图书管理员的管理、通知公告的发布、系统数据管理及留言管理等。
2.2开发环境
该系统在.NET平台、利用C#在Visual Studio 2010 IDE中完成开发,并采用Sql Server2008作为后台数据库。解决方案整体采用C/S结构,架构在.NET Framework 4 及MVC3.0之上。3.个人总结
3.1所见
(1)因小组成员来自不同专业、程序设计基础不等,具体开发工作展开后致使部分同学无法很好的融入进来。具体表现在:程序设计逻辑不清晰、编码不规范、效率低下、文档编写不规范等。
(2)由于作业跨度较长,且小组成员间作业时间不易统一,导致团队成员间沟通不够及时、有效。
(3)团队成员间对项目开发重视程度不同,导致工程进度、开发质量及文档编写规范不尽人意。
3.2所想
(1)因是课程设计,故不同专业同学参与统一项目开发在所难免,相反,不同的专业背景在开发过程中会突破传统的教条,提出意想不到的建议。在需求分析阶段,他们可以更好的充当客户的角色,从用户角度提出需求;在测试阶段,可以更“海阔天空”的编写测试用例,更全面的测试代码。总之,合理的利用资源,将更有利于项目整体的进行。
(2)在实际项目开发中(尤指公司内),项目成员间沟通是很重要的,及时有效的沟通可以使得接口定义的更加契合,模块衔接更加无缝。那时的成员都没有课业压力,有的只是为资本榨取的权利,故在每天8小时的工作日内,交流的及时行可以保证,是否有效还要看个人的功力了!
(3)我承认我的脾气有时会暴一点,不少要求在别人眼里会是“苛求”。但这无非是我想带领我的小组能取得最好的成绩。虽然我承担了大部分的编码、编写了全部管理文档及相当部分的开发文档、审阅并汇总所有上交资料,但我觉得自己很有担当。尤其是组员都很支持我的工作,也许因为大家基础不一,工作量存在较大悬殊,但我看到了每个人的努力,我想这也够了。
3.3所得
(1)项目中有两个非计算机专业同学,在项目开发过程中,在我看来均表现得非常认真。虽然专业知识的相对欠缺,文档用语不够准确、逻辑不够清晰等有待加强。但积极参与项目开发的各项工作,尤其在文档编写、整理等工作量很大的方面的工作十分出色。没有丝毫输给计算机专业同学的意思嘛。
(2)小组会议基本每月一次,但完全满足不了需求!如何为团队创造更好的沟通环境,也许是项目负责人最大的责任。
(3)通过小组汇报来看,开发工作总体令人满意。通过文档的汇总结果来看,应该基本涵盖了项目开发的方方面面。如此,面对小组,面对成绩,无愧于心矣!
4.致谢
之所以在个人总结里要添加“致谢”一章,因为我深知团队合作的重要性。经过这次项目开发,让我看到了XX同学的细心严谨,文档的整理很统一、规范,参与工作相当积极;XX虽然话很少,但交给任务后不含糊,尽己所能,相当仗义(作为上交的个人总结,措辞也许欠考虑啦);XX也比较认真,任务完成较好;XX参与编码中,完成了相当的工作量,值得肯定。作为项目负责人,再次感谢大家,谢谢大家对我工作的肯定与支持!
不得不说回到现代软件工程,不得不承认这是我研究生阶段最累的一门课,投入时间、精力最多、但无疑也是收获最多的一门课。感谢XX老师,虽然有时会抱怨您,但谢天谢地,我也稍学会了您的“苛刻”。很庆幸遇到XX老师,我相信,对自己要求再严格也不过分,而且我相信未来的我,会变得更加强大。
4.结束语
很高兴,在最终汇报时,项目开发基本达到预期,文档的整理也比较完备。总体而言,较好的完成现代软件工程作业的要求。
在项目开发过程中,作为项目负责人,我深刻认识到团队协作的重要性;作为代码工程师,我不得不承认个人的力量还是有限的;作为文档编辑及审阅者,我得说完备详尽的文档是必须的,但是需下工夫的。在以后的工作学习中,希望能将暴露出的问题逐一改正。
7.软件开发过程质量的项目管理 篇七
关键词:问题管理,DevTrack,软件项目过程质量
引言
目前, 计算机软件的规模和复杂度在不断增长, 国内软件企业也纷纷引入软件项目管理的理念。但国内软件企业对于软件项目的认知, 在一定程度上盲目多于理性、理论多于实践。在软件项目开发过程中, 从项目立项到推出完整产品, 需求的控制和软件缺陷的管理都直接影响到软件的进度和质量。软件项目管理为了监督和跟踪项目, 一般都会要求引入需求变更控制流程和缺陷跟踪管理流程。一般大型软件项目都会为这两个流程制定专门的管理规范, 并引入专门的工具, 例如Rational的系列工具。在中小型软件项目中, 通常都会引入缺陷管理工具, 但是对需求控制一般要求不会太严格, 管理流程也相对放松, 通常都是通过文档管理来控制需求变化。而缺陷管理主要用来确保每个被发现的缺陷都能够被有效处理, 使用得比较好的才会有目的地用工具进行缺陷数据的收集和分析。实际使用中, 在跟踪项目计划时, 需求变更工具和缺陷跟踪管理提供的数据也是项目管理人员用来确定项目状态的重要依据。在项目时间有一定跨度、需求变化较大的情况下, 项目计划会需要不断修改, 最后是项目计划跟在实际情况后面修订, 原来制定的项目计划难以细化和落实, 只能停留在纸面上, 失去了计划的意义。而开发项目中隐藏的缺陷也随着需求的变动不断增加。软件产品即使最终推出, 也难以保证其达到预期质量, 更不用提获得足够的客观数据来提升软件项目过程质量。
1 软件项目现状分析
该公司面对的是特殊客户, 整个研制过程按照客户规定, 在研制合同确立以后, 要经过方案论证、初样研制、正样研制阶段, 经过客户试验合格, 最终才能实现设计定型。尽管每一步都有完整的评审过程, 评审也都要邀请外部专家参与, 但由于时间和环境等原因, 往往难以达到客户和公司期望的效果。这样控制质量完全依赖大节点的评审, 让软件缺陷难以提前得到验证和修订, 一直到试验阶段才会比较集中地暴露出来, 这时修正, 工作量比设计前期增大, 而其它成本也大大上升。而对项目管理人员来说, 由于节点时间长, 对项目的动态和实际进展, 主要是通过项目会议来把握项目计划。这样, 除了依靠经验以外, 很难有什么合适的手段, 更难以做到精确掌握。对于项目开发过程中的项目需求和缺陷的控制, 很难进行有效管理。尤其是随着这两年公司业务的快速发展, 公司总部分成本部和新园区办公, 又新增多处外地研发中心, 对项目管理方式的改进有着迫切的需求。经过分析, 同一般商业软件项目相比, 该公司软件项目具有以下一些特点:
(1) 项目数目多, 而大部分项目规模较小, 但是对研制过程必须经过的阶段要求严格, 时间较长, 全部流程完成平均时间在两年以上;
(2) 项目起始阶段, 除了硬件样机性能指标, 客户其他需求一般都不清晰, 公司也缺乏一个有效的需求开发和控制机制。由于开发过程时间长, 中间其它需求变化会比较大, 有时客户需求变化有一些随意性, 并且客户需求基本都要遵从;
(3) 一般应用于嵌入式环境, 调试环境比较差, 对于界面等要求相对较低, 但是和硬件紧密结合;
(4) 在产品定型以前, 一般样机很少, 通常只能满足开发调试和现场试验需要, 难有条件做系统的黑盒测试。
2 软件项目管理改进
基于公司的软件项目现状, 提出一种新的思路。一个软件项目源头就在需求, 整个项目开发过程就是为了有效地实现这些软件需求。在出现实际设计不符合需求时, 就要通过缺陷管理来解决问题, 使设计和需求相符合。而需求变更和新增需求过程, 也是由于需求变化, 导致设计不能和需求相一致, 给软件项目带来新的设计变化要求。如果把项目按照需求分解成一系列问题, 实际的软件设计也就是把这些需求问题细化, 软件编码就是对需求问题做出具体化解答。因此, 如果把需求当作一系列需要解决的问题, 整个项目开发过程就是这样一个问题求解的过程, 项目管理就是合理地调配资源, 来配合实现问题求解。缺陷管理工具针对发现的具体程序缺陷, 都有一套完整的闭环流程, 一般都包含从“缺陷提交”, 到“缺陷分配”, 再到“缺陷解决”, 最后到“回归验证”的过程。工具还会提供强大的统计和报表输出功能, 对历史过程也会有完整的记录保留。缺陷管理工具在流程追踪上的优势是很明显的。而从问题管理的角度来看, 和需求问题相比, 缺陷就是一类范围定义得很清晰的问题。如果能够通过缺陷管理工具实现问题的分解和关联, 一个项目软件设计的进度管理、需求管理、故障—管理等都可以在缺陷管理工具上结合起来控制完成。
3 DevTrack功能简介
为了实现上述基于问题的管理模式在对目前比较流行的商用和开源软件进行多方比较后, 最终选择了TechExcel公司的DevTrack来实施。DevTrack的基本理念就是基于问题驱动, 和我们的上述想法非常吻合。在DevTrack中, 可以把开发过程组织成项目, 项目可以分解成一系列任务, 这些任务又由工作流程有效地组织起来。对于复杂的项目, 可以分解成几个子项目, 然后对子项目执行任务分解。任务是项目管理中最小单位, 可以分成三类:基于新需求的任务;需求修正类型的任务;产品缺陷类型的任务。这样一个软件系统设计要解决的问题, 就和软件项目管理中的一个个任务对应起来, 可以通过DevTrack这样一个工具来实现底层的结合。
软件系统设计需求和DevTrack中软件项目分解任务的对应关系DevTrack可以基于状态或基于事件跃迁触发工作流程的流转。不只是处理任务, 流程中发生的各种事件, 如状态改变、增加附加信息、任务延迟预警、任务延迟等, 都可以设置为触发源。所有事件都有多种灵活的告知机制可选。DevTrack的功能都基于灵活定制来设计, 项目相关的内容都可以由管理员根据需要定制。和软件项目过程密切相关的主要有两项:
(1) 定义项目的成员结构, 对成员组别和相关的权限、技能、成本等信息实行管理, 还可以根据工作任务动态计算工作负荷。
(2) 定制项目的工作流程, 对于复杂的项目, 可以分解成几个子项目, 对每个子项目定义自己的工作流程。此外, DevTrack还提供了和多种配置管理软件的接口, 可以实现无缝连接。出于费用方面的考虑, 试点项目选择了开源的Subversion。利用DevTrack的集成接口, 在Subversion上进行的操作, 和DevTrack的内部动作一样, 可以方便地触发内部流程。
4 项目实践
公司挑选了一个典型项目来作为试点, 项目主要开发人员在新园区, 而测试人员、客户代表以及项目管理人员位于本部, 硬件服务器和网络配置等主要设施也在本部。管理员首先配置了项目工作流程, 对项目设置了任务处理流程、故障处理流程。为与公司管理制度配合, 增加了工作的月计划流程, 月计划流程通过和前述任务处理及故障处理流程关联来实现。在项目执行过程中, 按照如下模式来执行:
(1) 项目管理员设置项目基本内容、项目成员。在本项目中, 项目人员划分成项目经理、测试经理、项目管理员、开发人员和测试人员五种角色组, 每组设置恰当人选, 其中部分人同时属于两个组;并对应不同开发阶段设置了项目状态, 对每种角色, 在不同状态设置了不同的权限。
(2) 在项目起始阶段, 对应系统需求文档, 没有设立子项目, 直接分解出不同的项目任务, 并下达给对应的开发人员组的责任人。
(3) 开发人员通过配置管理工具提交设计文档和设计代码的同时, 测试人员会得到通知, 并可以启动测试流程。
(4) 测试人员如果认为设计有问题, 可以提出故障, 启动一个新任务, 通过故障处理流程和项目经理指配给责任开发人员。
(5) 开发过程中间经过评估, 发现需要新增需求, 项目经理就通过任务处理流程来处理。出现需求变更的情况, 在工具中对原任务做出说明后, 任务提前返回项目经理处, 在变更以后, 重新进行处理。整个过程会通过DevTrack自动记录下来。
(6) 项目运行过程中, 项目管理员随时通过DevTrack报表统计项目状态、任务处理、需求变化等状况, 并产生报告。还可以按照任务和缺陷的数目、变化趋势、处理情况等, 设置各种预警条件, 自动产生各种项目状态提示。
结束语
目前试点项目已经基本完成, 这种模式得到了成功应用, 取得了预期的效果:
(1) 由于需求和任务对应关联增强, 对于需求变化情况和需求变更评估变得更为有效;
(2) 细化了控制节点, 项目管理人员也对项目状态有了更清晰的掌握;
(3) 相比过去的方式, 项目运转的流程更清晰, 获取了更多有效的项目流程信息, 对提升后续的项目软件流程控制有借鉴作用;
(4) 更丰富的报表和项目流程与电子邮件的紧密结合, 提升了项目内部人员之间以及项目内外人员之间的沟通效率。
实际中发现这种方式在项目成员绩效和项目人员工时考核上也有一定作用, 但在资源管理和成本控制等方面, 必须和项目管理计划等结合才能更好地发挥作用。
参考文献
[1][美]凯西·施瓦贝乐.IT项目管理, 王金玉时郴译[M].北京:机械工业出版社, 2002.
[2]AlanM Davis.Using RequirementManagement To Speed Delivery of HigherQualityApp lica-toins[Z].Rational Soft2ware Corporation, 1995.
[3]TechExcel Incorporation.DevTrack6User Guide[Z].Te2chExcel Incorporation, 2005.
8.软件过程管理总结 篇八
摘 要:随着计算机的迅猛发展,网络技术的不断进步,在自身硬件组成与软件设计方面取得了突破性的成就,极大地便利了人们的工作与生活。计算机在发展的过程中,除了重视自身硬件性能的提升之外,逐渐将系统软件的开发作为一项重要的内容,以此从系统软件构成方面来满足多样化的使用需求,为了保证计算机系统软件的科学开发,该文旨在从软件工程技术的角度出发,在相关科学理论的指导下,对其在系统软件开发过程中的科学高效运用进行全面探索,以期提升系统软件开发的质量与水平,促进计算机产业的健康发展。
关键词:系统软件开发 软件工程技术 原则 运用方式
中图分类号:TP311.52 文献标识码:A 文章编号:1674-098X(2016)06(c)-0083-02
计算机技术以及互联网技术的快速发展,使得计算机应用的范围日益广泛,逐渐成为现阶段社会生产与生活中重要的工具。系统软件作为计算机软件系统的核心构成,通过自身的逻辑语言与数学算法,在很大程度上满足了计算机使用者的使用需求,实现了经济生产与社会生活的智能化[1]。为了进一步提升系统软件开发的质量与水平,使得系统软件能够满足越来越多样化与专业化的使用需求,我们将软件工程技术引入到系统软件的开发过程中,通过这种方式促进系统软件开发的效率,实现系统软件开发的人性化与信息化。因此在现有的技术条件下,探究软件工程技术在系统软件开发中的科学高效应用就有着十分重大的现实意义。
1 传统软件应用程序与软件开发分析
对传统软件应用程序与软件开发的客观分析,能够帮助参与系统软件设计的相关工作人员进一步厘清传统软件应用程序中存在的不足,并以此为基础为软件工程技术在系统软件开发中的运用准备条件。
1.1 传统软件应用程序开发工程分析
在传统软件应用程序开发工程中,为了保证程序开发有序进展,在软件应用程序开发之前需要进行模型的构建,并根据软件应用程序的设计需求与使用环境,在相关软件开发理论的指导下,对软件开发模型进行多次计算与修改,形成生存期模型,而生存期模型在实际的开发过程中又产生了诸如演化型、螺旋型以及增量型等多种形式[2]。从实际情况来看,无论是何种形式,这些模型在软件应用程序开发的实际操作中,都表现出一定的不足,存在缺陷。例如演化型模型能够对软件开发流程进行科学的优化与调整,从而便于软件应用程序的有效管理,大大降低了软件应用程序开发过程中出现错误的几率,但是如果其中的某一个环节出现了差错,将会造成整个软件开发流程的紊乱,对软件应用程序开发的稳定性带来极为消极的影响。随着社会经济的不断发展,互联网技术以及计算机技术的日益成熟,虽然现阶段大多数的软件程序仍是以WWW为构建进行设计与开发,但是为了满足经济快速发展的要求,相关企业不断进行软件开发与管理流程的优化,以期使得软件开发工作能够适应国民经济发展与社会生活的客观要求。但是我们必须看到传统软件应用程序的开发模式已经越来越难以满足实际要求,这就要求相关企业要立足于软件应用程序设计开发的实际,进行全新模式的科学探索。
1.2 软件应用系统分析
传统软件的开发周期较长,应用程序日益复杂,在很大程度上难以满足社会经济发展对软件应用程序更新换代速度的客观要求。系统软件开发作为一种新的软件开发模式,以软件作为构建的基础,对于数据信息有着较强的处理能力,并且以页面作为主要的展现形式,在一定程度上满足了不同软件应用程序使用者的不同使用需求,并且凭借着自身对各类技术与软件功能的科学整合,其能够在很大程度上缩短软件应用程序开发周期,提升应用程序的简洁性与使用性[3]。
2 系统软件工程技术在系统软件开发运用中应遵循的原则
(1)系统软件工程技术在系统软件开发中的运用必须要遵循科学性的原则。系统软件工程技术在系统软件开发中应用目标的实现,要充分体现科学性的原则,只有从科学的角度进行系统软件工程技术重要性、系统软件开发流程以及相关工作人员的职业素质与技能进行细致而全面的考量,才能够最大限度地保证系统软件工程技术在系统软件开发中的应用满足实际的系统设计需求与企业应用的要求,只有在科学精神、科学手段、科学理念的指导下,我们才能够以现有的技术条件为基础,进行系统软件工程技术在系统软件开发过程中的科学高效运用。
(2)系统软件工程技术在系统软件开发中的运用必须要遵循实用性的原则。系统软件开发相关工作的科学高效运行,需要雄厚资金的支持,从实际来看,资金的稳定供应与否直接影响到系统软件开发工作的质量与水平,因此系统软件开发在进行系统软件工程技术应用的过程中,必须要遵循实用性的原则,最大限度降低系统开发企业在设计与构建过程中系统软件的开发建设与应用成本,降低系统软件开发企业在软件开发方面的资金投入,从而能够将更多的资金利用于其他方面,促进系统软件开发企业自身的健康快速发展,提升其经济收益。
3 软件工程技术在系统软件开发过程中运用的途径与方法
软件工程技术在系统软件开发过程中的运用是一个复杂的过程,需要相关软件设计人员充分认识到传统软件应用程序开发中存在的不足,并在相关原则的指导下,从多个方面入手,采取多种方式,实现软件工程技术在系统软件开发过程中的科学高效运用。
3.1 软件开发模型的科学构建
软件工程的特殊性使得软件应用系统的设计与开发与传统的软件开发工作有着极为明显的区别。而为了保证软件工程技术在系统软件开发中的科学高效运用,就需要进行软件开发模型的科学构建,通过对整个系统软件应用程序的科学解读,对开发周期、基本流程以及软件开发管理工作的重点进行梳理,以此为基础进行软件开发模型的构建,同时为了保证模型构建的质量与效果,还需要进行项目管理模型以及组织公共模型的建立,通过这种方式及时发现软件开发模型中存在的不足,并对其原因进行考察,找出应对差错的方式,从而保证开发流程的有序进行[4]。
3.2 软件应用程序的开发
通常情况下,软件应用程序的开发会以系统软件的迭代升级作为自身的组织框架,在软件一次次地更新中,对软件的性能以及潜在的发展方向进行准确判断,也就是说软件应用程序涵盖了软件开发的各个方面。所以为了充分发挥软件应用程序开发的作用,就需要对软件使用者的使用需求进行客观分析,并以此为基础,组织相关技术人员对相关数据进行分析,从而为下一阶段的软件应用程序的使用需求、设计重点以及性能测试提供有效参考[5]。同时我们也必须看到软件应用程序开发的最终目的在于满足用户的使用需求,因此在进行软件的开发设计中,要对软件应用界面进行科学的优化,并在这一原则的指导下,对用户的使用习惯进行全面了解,对于用户感兴趣的内容、重要资讯以及核心内容安排应用界面的合理位置,通过这种优化能够让用户在满足使用需求的同时,充分满足自身的审美体验,从而大大提升用户使用软件的频率,实现高效开发与合理利用。
3.3 软件工程管理的有效运用
立足于计算机硬件加速升级的趋势,以硬件为支撑,不断提升软件工程管理的效率。软件工程管理与软件开发技术有着较为密切的联系,因此软件工程管理水平的提升,就需要不断进行软件开发技术的完善与调整,使其能够满足实际的管理需求。
参考文献
[1]邱恩海.软件工程技术在系统软件开发过程的应用[J].信息化建设,2016(4):129-130.
[2]王楠.系统软件开发过程中的软件工程技术[J].中国科技博览,2015(45):90.
[3]周敏.系统软件开发过程中的软件工程技术[J].电子制作,2015(8):85-86.
[4]郑彦平.系统软件开发过程中的软件工程技术[J].电子测试,2014(24):122-123.
【软件过程管理总结】推荐阅读:
物业公司工作过程管理09-12
营销战略和管理过程09-16
过程目标管理方案10-30
人事管理软件-人力资源管理软件06-23
质量管理体系过程方法10-09
简述项目管理的过程10-22
全过程安全管理透视06-19
过程质量检验管理制度06-20
工程全过程质量管理07-01
人民银行支付结算管理过程07-08