




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件开发管理及质量控制前言随着市场经济的进一步完善及全球经济一体化进程加快,企事业单位 面临着激烈的市场竞争,企业内部、外部信息交流已成为企业发展、参及 市场经济竞争的迫切需要。企业引入先进的信息处理技术,增加信息共享 程度,不仅会提高工作效率、降低成本,而且也会提高企业管理的科学性 和自动化程度。信息已成为企业生存及发展的基础。计算机和通信技术的迅速发展,特别是技术的发展及普及,为企业 内部、企业及外部提供了快速、准确可靠的信息交流渠道,信息高速公路 改变了企业及企业、企业及客户、企业内部各级决策者及管理人员以及管 理人员之间的信息交流方式,有效地促进了企业各部门之间以客户为中心 的协作,为
2、企业实现经营方式、管理模式的改变奠定了坚实的基础。信息 化企业运作管理系统已成为企事业单位参及全球市场竞争的必备的支持 系统。正是由于这样市场需求及技术发展现状,为我国的行业带来了空前发 展的机遇,特别是软件行业。软件企业能否抓住这样一个难得的发展机会 需要多方面的努力,其中软件开发管理及质量控制在其发展中占有重要的 位置。本文试图在这方面进行初浅的分析,可供业内人士参考。1 .国内软件行业发展概况1.1 发展现状在我国,随着信息技术产业的迅速发展及软件版权意识的提高,软件 越来越受到了人们的关注及重视,越来越多的人把目光投到了充满风险及 利益的软件行业。加之我国风险投资机构的逐渐形成,都将促
3、进软件行业 以比以往更快的速度发展。人们往往把(信息技术)产业看作风险行业,原因可能有几个方面,其一:这是一个飞速发展的行业,说她飞速也并不过分,只有二十 儿年发展历史的行业,在世界500强企业中占有重要的位置,而当今世界 上最具财富的也是类企业。高额的回报吸引大批企业的介入,一个企业要 想在这个行业有所作为没有一个灵活而有利的团队加之一定的规模是难 以生存的。其二:这是一个高科技领域,这个行业的技术的生命周期一般为一 年到二年,高速的技术发展势必要求大量的科研开发经费,而科研开发是 有风险的,成功及失败只是咫尺之遥。一旦失败,无投资残值可言。其三:这是一个知识密集型领域,知识就是财富也意味着
4、笼络一批 人才需要付出一定的代价。但实实在在讲行业确实是一个高速增长的行业,虽然计算机的发明已 有五十几年的历史,做为一个行业的历史也只有二十几年,而当今世界上 最具财富的是类的公司,足见其成长的速度。我国软件行业大约有十年的 发展史,到现在应该说也还是个很小的行业,虽然它在国民经济中所占的 份额很小,但他对我国经济的发展,社会的进步起着很重要的作用。目前已形成一批具有一定规模的软件公司,如以财务软件为代表的“用友”、“金蝶”、“安易”等,及以项目开发型为特色的“东大阿而派”、“联 想系统集成”、“北大方正”等企业。软件收入已占有一定的市场份额。 发展速度惊人。1.2 .存在的问题我国软件行业
5、发展的历史较短,加之行业技术发展速度快,软件开 发工具层出不穷。我国的软件行业自身发展方面确实存在一些问题。归纳 起来,有以下儿方面的问题:* 软件开发管理不规范;* 缺乏高素质的研发管理人员和研发人员;* 缺乏合格的产品经理;* 软件产品孤立、零散,缺乏整合性;* 软件公司规模过小;1) .软件开发管理不规范目前大部分软件公司,无论是产品型公司还是项目型公司,大部分公 司没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软 件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开 发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升 级出现麻烦,同时最终也会损害
6、用户的利益。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向 过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范 每个开发人员、测试人员及支持人员的工作,每个项目组成员按约定的规 则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开 发人员的要求,从而降低产品研发成本。2) .缺乏高素质的研发管理人员和研发人员目前:我国软件市场还处于起步及发展阶段,真正称得上商品的软 件很少,绝大多数的软件公司的规模很小,国内软件开发人员超过100人 的公司很少。软件公司的用户儿乎全是国内用户,加之国内软件专业的学 校教育及实际软件开发脱节严重,开发人员工作不稳定,以及技
7、术的高速 发展以及开发工具的变更,导致软件开发人员缺乏必要的技术积累,表现 为整体素质偏低。同时,由于没有合适的内部及外部环境也很难造就高水 平的研发管理人员,从软件开发到开发管理都不能适应市场的要求。3) .缺乏合格的产品经理产品经理在软件产品的发展过程中起着至关重要的作用,产品经理负 责产品的定位及发展方向。这就要求产品经理对产品市场、用户需求有深 刻的认识及理解,需要有一定的悟性、管理经验及能力。同时,产品经理 必须了解当今技术的发展状况及发展趋势,对相关开发工具及技术应有比 较深刻的理解。对于大型应用软件的产品经理还要求其对网络技术、电子 商务及各种硬件设备有全面的了解。这样才能保证在
8、决定产品特性,产品 框架结构、市场销售策略及服务策略时作出合理决策。从某种程度上讲,产品经理是否称职关系着其产品的存亡。目前软件行业急需而又缺乏正是 这种产品经理。4) .软件产品孤立、零散,缺乏整合性;国产软件目前称得上产品的主要以财务软件、防病毒软件、家庭教学 软件及一些初级的工具软件。总的说来基本为专用型产品、满足特定功能, 即便是专用型产品其各专项子系统大多也缺乏整体考虑。大多厂家产品不 具备构成大型应用系统的整合能力,目前一些公司己开始进行这方面工 作。项目型公司大多以项目为主,产品化程度比较低。不具备推广的条 件,经济效益较差,影响公司的发展。导致软件产品孤立、零散,缺乏整合性在很
9、大程度上也是软件开发管理不 规范;缺乏高素质的研发管理人员和研发人员;缺乏合格的产品经理;三 条原因造成的。5) .软件公司规模过小;目前我国软件市场还处于起步及发展阶段,绝大多数的软件公司的规 模较小,国内软件开发人员超过100人的公司很少。软件公司的用户几乎 全是国内用户。但软件作为一个行业,他需要市场的拖动,也需要外部资 金的介入,外部资金的介入给它带来的不仅仅是金钱,更重要的是也带来 了一种管理及思维方式,这也是国内软件公司需要的。2工程设计及软件开发将软件开发作为工程来对待是有其存在意义的,在谈软件开发管理及 质量控制之前,我们先看一下工程项目的整个过程。2.1 工程设计的阶段划分工
10、程项目从可行性研究到最后项目建成基本包括如下八个阶段。最后 二个阶段主要是考虑及软件开发比较而划分的,在实际的项目实施过程一 般不将其作为独立阶段考虑。因此,一般的工程项目只包括六个阶段。(这 里所指的工程项目可以是新建一间工厂,也可以是一个建筑工程项目)但真正属于工程设计阶段的只是前四部分,以下以化工类工厂设计为 例就属于工程设计的几个阶段的要求做以简单扼要的介绍,希望能软件开 发管理有所帮助。1)可行性研究在可行性研究阶段一般应完成如下几方面的工作:* 项目内容定义* 项目技术分析* 项目市场分析* 项目策略* 投资及回报分析* 已有资源分析* 其它应考虑的因素2)方案设计方案设计可以说是
11、可行性研究中技术可行性的扩展。方案设计级段主 要完成如下几方面的工作:* 确定整个项目的技术实现。主要包括采用的工艺流程,主要及关键 设备参数确定及设备选型。* 基本设备布置方案* 能够确定对建筑物、水、电、气以及采暖通风等方面的要求。* 简单的方案说明* 粗略的项目预算* 技术的可实现性3)初步设计初步设计是详细设计的前提,其目的是要根据具体项目的要求,初步 确定技术实现的一些细节信息,主要完成如下儿方面的工作:* 确定工艺流程中的工艺参数和主体物流及物料平衡;编写工艺流程 说明书* 绝大部分设备的选型以及非标准的确定。并完成设备布置方案。* 建筑、水、电、气以及采暖通风各工种均需确定初步设
12、计方案及基 本的方案说明。* 较为准确的项目预算* 具体的实现技术初步设计是项目设计单位及用户交流的基础。4)详细设计详细设计是以初步设计为基础,完成所有的技术细节工作。* 确定工艺流程中所有的工艺参数,* 完成所有设备的选型以及非标准设备的设计。并完成所有设备及管 道布置等。完成所有工程实施前的准备工作。* 建筑、水、电、气以及采暖通风各工种均需完成详细设计图纸。* 详细的流程说明及使用说明* 准确的项目预算详细设计是项目实施的基础。5)工程实施项目详细设计是工程实施的基础,按照设计要求施工是最基本的要 求。同时,在项目的实施过程中还会发现详细设计中存在的问题,可以通 过向设计单位提出修改设
13、计要求,由设计单位完成设计修改工作。项目工 程实施也可采用项目监理的方式,监督施工单位按设计图纸及施工规范施 工,确保施工质量。6)试运行工程实施完成后便是投产试车,解决其中存在的问题,便可开始项目 的试运行。在以上工程项目的各个阶段中,可行性研究一般由设计单位或用户自行完 成,也可委托具有该类项目评估经验的项目咨询机构完成。方案设计、初 步设计、详细设计由工程设计单位完成,工程实施由工程施工单位完成。2.2 .工程设计的质量控制工程项目设计从设计单位接受用户委托,进行工程项目设计到设计任 务完成,用户在儿个环节均有参及项目质量的控制的机会,同时设计单位 有严格的质量控制体系确保项目设计符合相
14、关的标准及规范。在以上的工程设计质量控制体系中,在每一设计阶段结束时用户均有 机会参及对工程设计质量的监督及控制,设计单位及用户沟通的媒介是工 程设计图纸及相关的设计文档,双方有交换意见的共同基础。设计单位会 根据用户的意见及建议及时调整设计,以便更好的满足用户的需要。多年 的设计经验证明,上述的工程设计质量控制体系是科学合理的。2.3 软件开发及工程设计之比较按照软件工程理论,软件开发过程基本可以划分为如下几个阶段:* 需求分析* 总体设计* 详细设计* 编码设计* 模块集成* 软件测试* 定版发行从上面的软件开发阶段划分不难看出,软件开发及工程项目设计虽然 看上是二类不同的工作,但他们本质
15、上是相同的。不妨将软件开发及工程 设计的阶段加以比较,不难得出上述的结论。9/31由图3不难可以看出软件开发及工程项目设计之间的相似性,因此将 软件开发作为工程来管理是完全可行的。2.4 软件开发及工程设计的差异虽然软件开发及工程设计有其相似之处,但由于其所处的领域不同, 发展历史及人文环境也有一定的差别,完全照搬工程设计的管理模式并不 可取。首先比较一下工程设计及软件开发目前各自的现状。1) .工程设计* 有一套完备设计标准及规范;* 大量的标准化设备可供选择;* 大量的样板设计可供借鉴;* 一批有经验的设计师言传身教;* 客户基础素质良好;2) .软件开发* 历史较短,缺乏必要的开发管理规
16、范;* 技术发展变化快,零部件标准有待形成;* 国内软件产品质量意识差;软件产业化意识淡薄;* 可供借鉴的样板少;* 缺乏高素质软件开发及管理人才;* 客户素质较差;正是由于工程设计及软件开发存在上述背景差异,应此在借鉴工程设 计经验的同时,必须针对软件开发自身的特点,制定出符合企业自身的软件开发管理模式及相应的软件开发管理规范。这样才有利于我国软件行业 的健康发展。3) .软件开发的组织机构无论是项目型公司还是产品型公司,从事软件开发的组织或公司应该 有一定的软件开发组织结构。一个合理的软件开发组织结构是确保软件开 发质量的最基本保证,各个组织各负其责,可以确保软件开发按拟订的质 量控制规则
17、及软件开发计划进行,有利于软件公司软件质量及成本的控 制。3.1 软件开发组织机构设置一般而言,对于产品型软件公司,其公司内部均会有一个类似及产品 管理小组这样的一个组织,一个专门负责产品发展的产品经理部门。而项 目型公司则相对简单一些,主要是针对项目进行定制开发,一般对项目的 发展方向不做控制。但从项目开发演变为可推广产品的另当别论。一般来 讲,下图4是一个典型的软件公司软件开发的组织机构设置。3.2 组织机构的职责分工在上述的组织机构中,各职能组织有各自明确的责权范围,完成各h的 本职工作,各组织相互协调完成相应的软件开发及维护工作。公司产品管理组:对于产品型软件公司而言,软件产品是其生存
18、及发展的基础,公司对新产品立项、现有产品的发展方向及有关产品发展的重大决 定均需由公司产品管理组来决定。公司产品管理组一般由公司的执行总裁、技术总监、市场总监、产品 经理、研发经理及其他必要人员。产品管理部门:产品管理部门是界于研发部及市场部之间的一个桥 梁部门。产品管理部门的主要职责是负责产品发展策略的制定及执行,这 里的执行包括软件开发前期的市场及需求调研,完成可行性分析报告,制 定产品规格。参及软件开发项目组,并完成相关工作。* 软件开发前期:用户需求分析、功能描述、运行平台及环境、市场 定位、销量预测及售价;* 软件开发后期:产品宣传资料、产品培训、促销及支持t;研发部门:研发部是软件
19、开发的主体,主要任务是完成软件或的 项目的开发工作。其工作内容通过各职能组实现。主要包括:* 功能规范:功能规范列表及用户界面,确保写出用户手册;* 开发活动:包括设计、编码、模块集成、测试及文档;* 支持工作:软件配置管理及问题报告数据库;* 项目计划:定义项目里程碑;* 软件定版:,&:是软件开发的质量控制机构,主要职责是负责软件开发过程的 质量控制。在软件开发的各个阶段,根据软件开发设计规范对阶段设计结果进行质量控制。及时发现问题、解决问题,确保进入下一阶段的设计符 合设计规范要求。实现软件开发全程监控。&为非常设机构,主要由研发经理、产品经理、资深系统分析远、 测试经理等人员组成。根据
20、项目进展需要,由研发经理召集进行项目阶段 评审。软件开发组:主要由各种角色的开发人员构成,完成开发任务。:()软件配置管理,对于一个具有一定规模的软件公司都会有一 个软件配置管理机构,对于小型公司一般由项目经理带管,的主要职责是 进行软件开发过程中的软件配置管理,以及软件定版后的维护管理。在软 件开发过程中,由于多个开发人员协同工作,需要对其工作协同管理,确 保协同工作的顺利进行。同时,由专人进行配置管理,使得大部分开发人 员不会得到全部原代码,也有利于软件公司的安全保密工作。在软件定版 后,由于软件的,功能的完善及各种原因导致的对软件的修改,版本的控 制就显得极为重要,软件配置管理可以确保得
21、到不同时间的软件版本。软 件测试 组:软件是软件工程的重要组成部分,软件测试组承 担的工作主要是a测试。测试模块及集成测试由软件开发人员完成。对 于项目软件开发,用户的计算机技术人员参加到软件测试及支持工作组, 使用户参及整个软件的测试工作中。确保交付的应用系统是用户可信赖的 系统。在以上的软件开发组织机构中,不论公司规模的大小,以上的各个职 能应该是健全的。明确的责任分工有利于软件开发的顺利进行于质量控 制,同时,也必将有利于公司的成本控制,降低软件开发风险。3.3 软件开发项目组的角色一般来讲,一个软件开发项目组是由多个不同角色的人员构成,每种 角色在软件开发中起不同的作用,各个不同角色的
22、人员协同工作,完成软 件开发工作。典型的软件开发项目组由下列角色构成,如图5所示在软件开发项目组中一般有六种角色,他们是: .产品管理 .程序开发 .程序管理 .测试及质量保证 .用户培训.后勤支援在大型软件开发项目中,可以将每个角色赋予不同的个人。对小型项 目,一个人可以肩负多个不同的角色。每种角色的人员在项目中起着同等 重要的作用。每种角色都有其特定的任务及技能要求。产品管理:产品经理负责建立及更新项目的商业模型,在确定及设置 项目目标方面起关键作用。产品经理应确保项目成员清楚理解项目商业目 的,并根据商业需求的优先级确定功能规范。同时,产品经理负责高层的 项目沟通,如:商业项目的成本核算
23、、合同洽谈,及向相关人员通报项目 进展等。程序管理:程序经理负责确定软件特色及功能规范,根据软件开发标 准协调口常开发工作确保及时交付开发任务。协助产品经理完成项目需求 文档,并根据需求文档起草软件功能规范。同时负责及系统分析、规范及 框架结构有关的各种活动。管理及协调及外部标准及系统的互操作性,控 制项目进度。程序经理是项目组成员间沟通及协调的核心。程序开发:开发队伍负责交付符合功能规范的软件系统。开发队伍应 积极参及功能规范的制定,在建立项目原型时开发人员及程序经理可以同 步进行并提供技术可行性。在功能规范确立后,开发人员必须及程序经理 就如何解决重大疑难问题达成一致。测试及质量保证:测试
24、及质量保证是保证系统符合功能规范的保证。 为保证“零误码”测试人员应积极参及开发过程,确保开发出交付符合功 能规范的软件系统。测试人员负责准备测试计划、测试用例、自动测试程 序、执行测试工作、管理并跟踪。测试工作及开发工作是独立并行的。用户培训:培训人员负责设计编写离线及在线培训文档,包括演示材 料。用户培训人员应参及用户界面和系统的设计及构造,并参及安装程序及安装过程的设计。参及系统的可用性测试及设计改进,及程序管理及开 发有密切的关系,并确保系统的变化及时反映到文档中去。后勤支援:后勤支援包括确保项目顺利进行的各方面工作。对于一个项目组,建立一个良好的团队氛围是非常重要的,每个角色在项 目
25、中都是不可缺少的,项目的成功是团队成员共同努力的结果。鼓励成员 的积极进取、高效、参及的团队精神,提高成员的责任感,避免造成团队 或项目的成功依赖于少数个人的贡献。3.4 开发组人员构成根据软件开发项目组织的角色划分,对于中等以下规模的软件开发项 目组基本包括如下儿类人员:产品管理人员:(产品管理及用户培训角色)软件开发人员:(程序管理及开发角色)软件测试人员:(测试角色)一般而言,产品管理人员同时担负用户培训的角色。程序管理角色一 般由项目经理承担,而队后勤支持角色一般由研发部和公司统一承担,或 由公司的信息系统管理人员协助完成。图6表示项目组的人员结构及承担 的相关工作。3 . 5开发人员
26、技术结构宏观上讲,软件开发机构基本可分为二种角色,管理角色和技术角色。 不同角色各有其不同的发展方向,如图7所示。不论是走技术路线还是管理路线,不存在那种角色地位更高的问题。 高级架构设计师及部门经理具有同等的地位及待遇。4 .软件开发的阶段划分及目标软件开发进行阶段划分主要有以下三方面优点:1)有利于软件质量控制;2)便于项目进度控制及管理;3)有利于项目成本费用控制;4.1 软件开发的阶段划分虽然软件开发及工程设计有其相似之处,但由于其所处的领域不同, 发展历史及人文环境也有一定的差别,完全照搬工程设计的管理模式也存 在一些弊端。下面就国外流行的软件开发模式及工程设计理论及原始的软 件开发
27、做以简单比较,见图8。原始的软件开发模式很是简单,有些项目连需求分析都不完整,软件 测试只是相当于模块集成一级的测试,没有规范的软件测试。软件质量取 决于编程者个人的技术水平,质量无法保证,也很难控制。在满足用户需 求方面取决于编程者个人的理解,软件交付后经常发生大面积的修改。项 目似乎完成得很快,交付后大面积的修改经常导致延误工期,修改后的软件缺乏必要的测试手段,往往导致极大的售后服务支持成本。造成项目表 面赢利、实际亏损的局面。软件工程理论指导下的软件开发管理模式也存在一定的问题,那就是 有些环节的可操作性较差,主要表现在需求分析到总体设计这个环节。需 求分析是文档性的描述,一般是软件开发
28、人员对用户需求的一种理解,这 种文字描述一般很难精确可视地展现未来软件的情况,而用户也很难说清 楚自己的需求,这就使得用户很难鉴别需求分析的精确性。往往导致软件 交付后的大量修改。有一篇“ /软件开发常犯错误”的文章说得好,“用 户不知自己需要什么样的系统,但知道不要什么样的系统”。为避免软件开发中需求分析到总体设计这个环节的歧异性问题,目 前,国际流行的软件开发模式中增加了(功能规范和用户界面)这个环节, 这个环节不但解决了用户在需求分析理解上的困难,同时也解决了软件开 发过程各种角色人员的并行工作问题,便于软件开发工期的缩短,有利软 件开发质量及成本的控制(功能规范和用户界面)见后面章节o
29、4.2 软件开发各阶段目标以下就软件开发阶段划分的各阶段的任务及目标做以简单描述,这是 软件公司进行质量控制的基础。1)可行性分析可行性分析是软件项目立项的必要阶段,对于项目型软件开发,可行 性分析一般由用户自行完成,软件公司基本在技术上给予必要的支持。对于产品型软件开发,可行性分析是非常重要的一环,产品采用的技术、市 场定位及销售策略等直接关系着产品的生存及发展。可行性分析基本包括如下几个方面的内容,a.项目定义:项目定义主要是对产品定位有一个大致的描述,钩画 出该软件产品的运行环境、产品功能、用户特征以及制约因数进行全面的 描述,以便下一步工作的展开。b.技术分析:此处的技术主要包括软件的
30、开发环境及运行环境所涉 及的各方面技术,在此应对这些技术的发展状况,成熟情况及未来的技术 走势应有细致的阐述。c.市场分析:包括国内外行业发展现状、市场格局、发展趋势,在 市场容量统计数据的基础上,推测我们产品可能的市场占有率及销售情 况。d.产品策略:产品策略包括产品的技术策略及产品的市场策略。e.投资及回报分析:项目投资总额、项目成本核算、项目收益、投 资回报等。f.已有资源分析:包括资金资源、人力资源、技术资源等的分析。g.其它应考虑的因素2)需求分析需求分析是软件项目正式实施开始的第一个阶段,需求分析应该遵循 可行性分析确定的基调,包括技术路线、产品基本功能、产品运行环境及 市场定位。
31、需求分析主要应完成对用户应用流程的描述,即完成商业逻辑 分析。并根据商业逻辑的需要确定软件的功能列表及描述。3)a.总体描述,包括应用平台及应用限制,.b.功能列表c.用户界面的合格及否取决于能否完成以下二方面的工作。完成用户手册的编写!准备测试计划、测试用例及确定验收标准!是产品管理部门及软件开发部门的接口,对于项目型开发是软件开发 商及用户责任划分的重要依据,不同于需求分析,它提供给用户的是一个 清晰可见的用户界面及完整的功能说明,方便用户的理解及确认。软件开 发据此进行下一步工作就有了坚实的基础,避免软件交付后的大量修改工 作,有利于软件质量及进度的控制。同时,便于软件开发并行工作的展开
32、。 是软件总体设计及软件a测试的基础。4)总体设计总体设计的依据是文档,其目的是根据要求,依据具体采用的开发工 具及技术平台确定软件实现的对象关系及数据库结构。并非项目组每个成员均参加总体设计,一般来讲,一般中小项目总体设计为一到二个人,中 大型项目一般为一个总体设计小组,由项目总设计师负责将项目进行分解 为可操作的大小,交由不同设计小组完成相关功能的总体设计,总设计师 负责协调各子项之间的协调关系,从而完成大型的总体设计。总体设计设计深度情况直接影响下一步的详细设计。过细的总体设计 也是不必要的,少量的人员进行过细的设计必然影响整个项目的设计周 期,而过粗的总体设计当然也不利于详细设计设计任
33、务的分配及设计展 开。总体设计是软件详细设计及软件集成测试的基础。5)详细设计详细设计是总体设计的继续,主要目的是完成总体设计完成的对象内 部的商业逻辑的实现设计,在总体设计完成后可以将不同的设计对象交由 不同的设计人员来完成。原则上讲,在开始软件编码之前应完成所有的设 计细节,避免在编码中进行设计工作。详细设计是编码及软件模块测试的基础。6)编码编码是软件详细设计的一种再现,编码中最重要的是要遵从相关开发 工具的设计规范及数据库设计规范,另外,养成一个良好的编程习惯是一 个软件公司和软件编程人员最基本的职业素质。对于软件应用可靠性要求严格的案例,所有软件模块必须通过模块测试, 对一般应用软件
34、中的重要模块也应进行模块测试。7)集成集成是软件开发中重要的一环,集成测试的依据是软件的总体设计。 如果缺乏前期的模块测试,必然会导致集成时间的加长,同时也会加重后 期的a测试及问题处理的工作量。8) a测试a测试是在软件集成结束后软件开发进入的下一个环节,它标志着软 件开发从设计级段进入软件测试阶段。一般情况下,软件开发从设计进入 测试是通过来完成这一过程。为完成q测试,测试部门一般包括如下几个方面的工作。编制测试计划编制测试用例测试执行测试结论(包括问题报告)一般而言,测试工作基本上可以分为如下儿个轮回:a测试是软件公司对自身产品的一次自我测试,a测试结束后,测 试部门会提供一个软件测试评
35、价报告,这个评价报告在某种程度上决定了 该软件是否适应商业销售。一般来讲,软件通过测试并不意味着软件没有任何问题,只是意味 软件通过了可接受测试条件。软件测试的问题报告是软件公司售后服务及 产品升级的重要参考因素之一。9)问题处理及设计文档改进问题处理是软件开发组交付测试后的重要任务之一,及时解决软件测 试过程中发现的问题,以便进行下一轮测试。软件开发人员在交付测试后的另一重要任务就是将编码过程中对设计的 修改及时反映到总体设计文档和详细设计文档中去,确保定版的软件及其 设计文档的一致性。10)内部定版测试合格的软件在软件开发部内部定版,进入产品的组装或b测试, 及产品销售。对项目型软件开发,
36、则进入系统的实施级段。5过程管理及质量控制标准化5.1 软件开发过程管理传统的软件开发一般遵循的是瀑布过程模型,一个阶段的结束是下一 个阶段的开始。这种模型不适合基于对象、分布式的企业应用开发。部件 的开发具有并行性,而非顺序性。另外,瀑布进程模型缺乏灵活性,不适 应快速原型开发工具的要求。基于里程碑的过程模型引进迭代过程模型,允许开发任务的重叠和反 复,可以很好适应基于部件的软件开发。基于里程碑的过程模型便于团队 模型中责权的划分。便于风险评定,鼓励快速交货。1)里程碑过程模型的特征:a.里程碑过程:软件开发过程是由指导开发进程的外内部里程碑所 驱动的。b.明确责权关系:过程模型将每个里程碑
37、及开发组的责任角色相关 联。c.风险驱动的计划安排:高风险部件应尽早完成。d.评估说明:评估说明直接影响着项目的计划及管理,在整个软件 开发过程中致关重要。2)里程碑的制定里程碑也可以称作项目实施计划。对于软件开发项目而言,一但项目 立项确定,需要做的第一件事情就是确定项目实施的里程碑。根据前面我 们确定的软件开发阶段划分,在里程碑中应清楚地定义每一个阶段的开始 时间、结束时间、负责人,阶段的提交成果由各阶段的软件开发规范确定。 里程碑是公司对进行项目控制的主要依据。里程碑一旦确定,各相应负责 人应确保按时交付任务。对于各不同里程碑阶段可以根据需要制定阶段里程碑,阶段里程碑一 般由开发组织内部
38、确定以便于更好管理及控制项目的进程。达到某个里程碑表明对此负有主要责任的角色完策任务。便于明确各个角色责权范围、 有利于按时完成任。软件开发里程碑主要包括如下阶段:3)软件配置管理为确保软件及其文档的一致性,进行软件配置的管理是必要的。5.2 质量控制体系软件开发阶段划分的目的是为了便于形成基于里程碑的软件开发质 量控制体系,每个里程碑都是一个质量控制结点,这些质量控制结点贯穿 于整个软件开发全过程,从而构成软件开发的质量控制体系。基于里程碑的软件开发质量控制体系可以用图11表示。图12表示软件开发阶段目标及质量控制的关系每个具体的里程碑及软件开发组某一具体的角色相关联,不同的角色则 隶属于不
39、同的业务部门,而人员业绩的评估及管理归属各自的业务部门, 因此,基于里程碑的软件质量控制必然会演变成对角色的质量控制,这样 才能真正达到对软件质量的控制。基于角色的质量控制体系详见图13在软件开发的六种角色中,一般规模的软件公司都会将其做以归类,图 13是基于常见的软件开发任务划分方式形成的基于角色的质量控制模型。5.3根据软件开发的阶段划分及基于里程碑的项目管理模式,贯穿于整个软件生命周期中的软件开发规范基本包括如下规范:1)可行性分析规范()2)需求分析规范()3)功能说明规范()4)用户界面规范()5)总体设计规范()6)详细设计规范()7)程序编码规范()8)软件测试规范()以上规范在
40、软件开发阶段划分章节已有简单描述,此处不再介绍。5.4 阶段审核制软件开发阶段审核制是采用基于里程碑管理模式的必然产物。在每个 里程碑结束时公司质量控制机构()根据相应的软件开发管理规范及应用 要求对阶段成果进行评议控制,确保应用开发的顺利进行,及交付的应用 系统能够满足用户的使用需要,确保交付的系统能够代表公司的整体技术 水平。同时也有利于规避软件开发风险。6.软件维护及版本控制无论是项目型软件开发还是产品型软件开发,软件的维护及版本控制 都是必须值得重视的。因为任何一个软件产品或一个应用软件开发项目或 多或少存在一些值得改进的问题,这些问题可能是程序的,也可能是因不 能满足用户需要迫切需要
41、改进的地方,对于交付运行的软件进行后期维护 成为软件公司必不可少的工作。而由于后期维护所造成对已定版软件的修 改的管理是致关重要的。6.1 软件维护及版本控制的意义软件维护及版本控制的目的有三点:1) .解决由于问题处理带来对已定版软件的版本升级等管理问题,确 保可以提供某一特定时间的版本,为用户提供满意的售后服务。2) .解决软件开发过程中的版本控制问题,有利于团队开发的协同工 作问题,也有利于公司对开发项目的版本控制及知识产权的保护。3) .良好的版本控制及管理,有利于新版软件的开发工作的进行。确 保软件产品循环渐进,逐步提高。6 . 2开发过程的版本控制软件开发过程中的版本控制一般都是基于特定的开发工具和特定的 版本控制管理工具,现在绝大部分的软件开发工具均提供这方面的功能。 如(简称), 系列开发工具等,版本控制的原理大同小异,以下以为例介绍软件开发过程的版本控制模型。软件配置管理包括软件开发过程中的文档管理及程序管理,软件开发中 的文档主要包括如下文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司植树节亲子活动方案
- 公司生日感恩策划方案
- 公司烧烤娱乐活动方案
- 城市交通规划与管理的2025年考核试卷及答案
- 2025年心理健康教育课程期末考试试题及答案
- 2025年农村经济与管理综合能力考试卷及答案
- 2025年金融从业资格证考试试题及答案
- 2025年非营利组织管理师职业资格考试试卷及答案
- 保卫科上半年工作总结精彩文章
- 2024年度浙江省护师类之主管护师真题练习试卷A卷附答案
- 城市轨道交通应急处理自然灾害应急处理课件
- 新疆维吾尔自治区2024年普通高校招生普通类国家及地方专项、南疆单列、对口援疆计划 本科二批次投档情况 (理工)
- 基础会计教学质量分析报告
- 《宏观经济学原理》课件
- 2025新人教版七下英语单词默写表
- 2024年保山市小升初英语考试模拟试题及答案解析
- 《急性胰腺炎诊治》课件
- 变压器知识点培训课件
- 《《资本论》第一卷导读》课件
- 池州八中英才班数学试卷
- 老年照护培训课件
评论
0/150
提交评论