文档库 最新最全的文档下载
当前位置:文档库 › 软件开发管理与质量控制1

软件开发管理与质量控制1

软件开发管理与质量控制1
软件开发管理与质量控制1

软件开发管理与质量控制

前言

随着市场经济的进一步完善及全球经济一体化进程加快,企事业单位面临着激烈的市场竞争,企业内部、外部信息交流已成为企业发展、参与市场经济竞争的迫切需要。企业引入先进的信息处理技术,增加信息共享程度,不仅会提高工作效率、降低成本,而且也会提高企业管理的科学性和自动化程度。信息已成为企业生存与发展的基础。

计算机和通信技术的迅速发展,特别是Internet 技术的发展与普及,为企业内部、企业与外部提供了快速、准确可靠的信息交流渠道,信息高速公路改变了企业与企业、企业与客户、企业内部各级决策者与管理人员以及管理人员之间的信息交流方式,有效地促进了企业各部门之间以客户为中心的协作,为企业实现经营方式、管理模式的改变奠定了坚实的基础。信息化企业运作管理系统已成为企事业单位参与全球市场竞争的必备的支持系统。

正是由于这样市场需求与技术发展现状,为我国的IT行业带来了空前发展的机遇,特别是软件行业。软件企业能否抓住这样一个难得的发展机会需要多方面的努力,其中软件开发管理与质量控制在其发展中占有重要的位置。本文试图在这方面进行初浅的分析,可供业内人士参考。

1. 国内软件行业发展概况

1.1 发展现状

在我国,随着信息技术产业的迅速发展及软件版权意识的提高,软件越来越受到了人们的关注与重视,越来越多的人把目光投到了充满风险与利益的软件行业。加之我国风险投资机构的逐渐形成,都将促进软件行业以比以往更快的速度发展。

人们往往把IT(信息技术)产业看作风险行业,原因可能有几个方面,

其一:这是一个飞速发展的行业,说她飞速也并不过分,只有二十几年发展历史的IT行业,在世界500强企业中占有重要的位置,而当今世界上最具财富的也是IT类企业。高额的回

报吸引大批企业的介入,一个企业要想在这个行业有所作为没有一个灵活而有利的团队加之一定的规模是难以生存的。

其二:这是一个高科技领域,这个行业的技术的生命周期一般为一年到二年,高速的技术发展势必要求大量的科研开发经费,而科研开发是有风险的,成功与失败只是咫尺之遥。一旦失败,无投资残值可言。

其三:这是一个知识密集型领域,知识就是财富也意味着笼络一批人才需要付出一定的代价。

但实实在在讲IT行业确实是一个高速增长的行业,虽然计算机的发明已有五十几年的历史,IT做为一个行业的历史也只有二十几年,而当今世界上最具财富的是IT类的公司,足见其成长的速度。我国软件行业大约有十年的发展史,到现在应该说也还是个很小的行业,虽然它在国民经济中所占的份额很小,但他对我国经济的发展,社会的进步起着很重要的作用。目前已形成一批具有一定规模的软件公司,如以财务软件为代表的“用友”、“金蝶”、“安易”等,及以项目开发型为特色的“东大阿而派”、“联想系统集成”、“北大方正”等企业。软件收入已占有一定的市场份额。发展速度惊人。

1.2. 存在的问题

我国软件行业发展的历史较短,加之IT行业技术发展速度快,软件开发工具层出不穷。我国的软件行业自身发展方面确实存在一些问题。归纳起来,有以下几方面的问题:

* 软件开发管理不规范;

* 缺乏高素质的研发管理人员和研发人员;

* 缺乏合格的产品经理;

* 软件产品孤立、零散,缺乏整合性;

* 软件公司规模过小;

1). 软件开发管理不规范

目前大部分软件公司,无论是产品型公司还是项目型公司,大部分公司没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。

同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。

2). 缺乏高素质的研发管理人员和研发人员

目前,我国软件市场还处于起步与发展阶段,真正称得上商品的软件很少,绝大多数的软件公司的规模很小,国内软件开发人员超过100人的公司很少。软件公司的用户几乎全是国内用户,加之国内软件专业的学校教育与实际软件开发脱节严重,开发人员工作不稳定,以及技术的高速发展以及开发工具的变更,导致软件开发人员缺乏必要的技术积累,表现为整体素质偏低。同时,由于没有合适的内部与外部环境也很难造就高水平的研发管理人员,从软件开发到开发管理都不能适应市场的要求。

3). 缺乏合格的产品经理

产品经理在软件产品的发展过程中起着至关重要的作用,产品经理负责产品的定位与发展方向。这就要求产品经理对产品市场、用户需求有深刻的认识与理解,需要有一定的悟性、管理经验与能力。同时,产品经理必须了解当今IT技术的发展状况及发展趋势,对相关开发工具与技术应有比较深刻的理解。对于大型应用软件的产品经理还要求其对网络技术、电子商务及各种硬件设备有全面的了解。这样才能保证在决定产品特性,产品框架结构、市场销售策略与服务策略时作出合理决策。从某种程度上讲,产品经理是否称职关系着其产品的存亡。目前软件行业急需而又缺乏正是这种产品经理。

4). 软件产品孤立、零散,缺乏整合性;

国产软件目前称得上产品的主要以财务软件、防病毒软件、家庭教学软件及一些初级的工具软件。总的说来基本为专用型产品、满足特定功能,即便是专用型产品其各专项子系统大多也缺乏整体考虑。大多厂家产品不具备构成大型应用系统的整合能力,目前一些公司已开始进行这方面工作。

项目型公司大多以项目为主,产品化程度比较低。不具备推广的条件,经济效益较差,影响公司的发展。

导致软件产品孤立、零散,缺乏整合性在很大程度上也是软件开发管理不规范;缺乏高素质的研发管理人员和研发人员;缺乏合格的产品经理;三条原因造成的。

5). 软件公司规模过小;

目前我国软件市场还处于起步与发展阶段,绝大多数的软件公司的规模较小,国内软件开发人员超过100人的公司很少。软件公司的用户几乎全是国内用户。但软件作为一个行业,他需要市场的拖动,也需要外部资金的介入,外部资金的介入给它带来的不仅仅是金钱,更重要的是也带来了一种管理与思维方式,这也是国内软件公司需要的。

2 工程设计与软件开发

将软件开发作为工程来对待是有其存在意义的,在谈软件开发管理与质量控制之前,我们先看一下工程项目的整个过程。

2.1 工程设计的阶段划分

工程项目从可行性研究到最后项目建成基本包括如下八个阶段。最后二个阶段主要是考虑与软件开发比较而划分的,在实际的项目实施过程一般不将其作为独立阶段考虑。因此,一般的工程项目只包括六个阶段。(这里所指的工程项目可以是新建一间工厂,也可以是一个建筑工程项目)

但真正属于工程设计阶段的只是前四部分,以下以化工类工厂设计为例就属于工程设计的几个阶段的要求做以简单扼要的介绍,希望能软件开发管理有所帮助。

1) 可行性研究

在可行性研究阶段一般应完成如下几方面的工作:

* 项目内容定义

* 项目技术分析

* 项目市场分析

* 项目策略

* 投资与回报分析

* 已有资源分析

* 其它应考虑的因素

2) 方案设计

方案设计可以说是可行性研究中技术可行性的扩展。方案设计级段主要完成如下几方面的工作:

* 确定整个项目的技术实现。主要包括采用的工艺流程,主要及关键设备参数确定及设备选型。

* 基本设备布置方案

* 能够确定对建筑物、水、电、气以及采暖通风等方面的要求。

* 简单的方案说明

* 粗略的项目预算

* 技术的可实现性

3) 初步设计

初步设计是详细设计的前提,其目的是要根据具体项目的要求,初步确定技术实现的一些细节信息,主要完成如下几方面的工作:

* 确定工艺流程中的工艺参数和主体物流及物料平衡;编写工艺流程说明书

* 绝大部分设备的选型以及非标准的确定。并完成设备布置方案。

* 建筑、水、电、气以及采暖通风各工种均需确定初步设计方案及基本的方案说明。

* 较为准确的项目预算

* 具体的实现技术

初步设计是项目设计单位与用户交流的基础。

4) 详细设计

详细设计是以初步设计为基础,完成所有的技术细节工作。

* 确定工艺流程中所有的工艺参数,

* 完成所有设备的选型以及非标准设备的设计。并完成所有设备及管道布置等。完成所有工程实施前的准备工作。

* 建筑、水、电、气以及采暖通风各工种均需完成详细设计图纸。

* 详细的流程说明与使用说明

* 准确的项目预算

详细设计是项目实施的基础。

5) 工程实施

项目详细设计是工程实施的基础,按照设计要求施工是最基本的要求。同时,在项目的实施过程中还会发现详细设计中存在的问题,可以通过向设计单位提出修改设计要求,由设计单位完成设计修改工作。项目工程实施也可采用项目监理的方式,监督施工单位按设计图纸及施工规范施工,确保施工质量。

6) 试运行

工程实施完成后便是投产试车,解决其中存在的问题,便可开始项目的试运行。

在以上工程项目的各个阶段中,可行性研究一般由设计单位或用户自行完成,也可委托具有该类项目评估经验的项目咨询机构完成。方案设计、初步设计、详细设计由工程设计单位完成,工程实施由工程施工单位完成。

2.2. 工程设计的质量控制

工程项目设计从设计单位接受用户委托,进行工程项目设计到设计任务完成,用户在几个环节均有参与项目质量的控制的机会,同时设计单位有严格的质量控制体系确保项目设计符合相关的标准与规范。

在以上的工程设计质量控制体系中,在每一设计阶段结束时用户均有机会参与对工程设计质量的监督与控制,设计单位与用户沟通的媒介是工程设计图纸及相关的设计文档,双方有交换意见的共同基础。设计单位会根据用户的意见与建议及时调整设计,以便更好的满足用户的需要。多年的设计经验证明,上述的工程设计质量控制体系是科学合理的。

2.3 软件开发与工程设计之比较

按照软件工程理论,软件开发过程基本可以划分为如下几个阶段:

* 需求分析

* 总体设计

* 详细设计

* 编码设计

* 模块集成

* 软件测试

* 定版发行

从上面的软件开发阶段划分不难看出,软件开发与工程项目设计虽然看上是二类不同的工作,但他们本质上是相同的。不妨将软件开发与工程设计的阶段加以比较,不难得出上述的

结论。

由图3不难可以看出软件开发与工程项目设计之间的相似性,因此将软件开发作为工程来管理是完全可行的。

2.4 软件开发与工程设计的差异

虽然软件开发与工程设计有其相似之处,但由于其所处的领域不同,发展历史与人文环境也有一定的差别,完全照搬工程设计的管理模式并不可取。首先比较一下工程设计与软件开发目前各自的现状。

1). 工程设计

* 有一套完备设计标准与规范;

* 大量的标准化设备可供选择;

* 大量的样板设计可供借鉴;

* 一批有经验的设计师言传身教;

* 客户基础素质良好;

2). 软件开发

* 历史较短,缺乏必要的开发管理规范;

* 技术发展变化快,零部件标准有待形成;

* 国内软件产品质量意识差;软件产业化意识淡薄;

* 可供借鉴的样板少;

* 缺乏高素质软件开发与管理人才;

* 客户素质较差;

正是由于工程设计与软件开发存在上述背景差异,应此在借鉴工程设计经验的同时,必须针对软件开发自身的特点,制定出符合企业自身的软件开发管理模式与相应的软件开发管理规范。这样才有利于我国软件行业的健康发展。

3 . 软件开发的组织机构

无论是项目型公司还是产品型公司,从事软件开发的组织或公司应该有一定的软件开发组织结构。一个合理的软件开发组织结构是确保软件开发质量的最基本保证,各个组织各负其责,可以确保软件开发按拟订的质量控制规则与软件开发计划进行,有利于软件公司软件质量与成本的控制。

3.1 软件开发组织机构设置

一般而言,对于产品型软件公司,其公司内部均会有一个类似与产品管理小组这样的一个组织,一个专门负责产品发展的产品经理部门。而项目型公司则相对简单一些,主要是针对项目进行定制开发,一般对项目的发展方向不做控制。但从项目开发演变为可推广产品的另当

别论。一般来讲,下图4是一个典型的软件公司软件开发的组织机构设置。

3.2 组织机构的职责分工

在上述的组织机构中,各职能组织有各自明确的责权范围,完成各自的本职工作,各组织相互协调完成相应的软件开发与维护工作。

公司产品管理组:对于产品型软件公司而言,软件产品是其生存与发展的基础,公司对新产品立项、现有产品的发展方向及有关产品发展的重大决定均需由公司产品管理组来决定。

公司产品管理组一般由公司的执行总裁、技术总监、市场总监、产品经理、研发经理及其他必要人员。

产品管理部门:产品管理部门是界于研发部与市场部之间的一个桥梁部门。产品管理部门的主要职责是负责产品发展策略的制定与执行,这里的执行包括软件开发前期的市场及需求调研,完成可行性分析报告,制定产品规格。参与软件开发项目组,并完成相关工作。

* 软件开发前期:用户需求分析、功能描述、运行平台与环境、市场定位、销量预测与售价;

* 软件开发后期:产品宣传资料、产品培训、促销与支持t;

研发部门:研发部是软件开发的主体,主要任务是完成软件或的项目的开发工作。其工作内容通过各职能组实现。主要包括:

* 功能规范:功能规范列表及用户界面,确保写出用户手册;

* 开发活动:包括设计、编码、模块集成、Alpha测试与文档;

* 支持工作:软件配置管理与问题报告数据库;

* 项目计划:定义项目里程碑;

* 软件定版:IRL,

Architecture & QA:是软件开发的质量控制机构,主要职责是负责软件开发过程的质量控制。在软件开发的各个阶段,根据软件开发设计规范对阶段设计结果进行质量控制。及时发现问题、解决问题,确保进入下一阶段的设计符合设计规范要求。实现软件开发全程监控。

Architecture & QA为非常设机构,主要由研发经理、产品经理、资深系统分析远、测试经理等人员组成。根据项目进展需要,由研发经理召集进行项目阶段评审。

软件开发组:主要由各种角色的开发人员构成,完成开发任务。

CMO:(Configuration Management Officer)软件配置管理,对于一个具有一定规模的软件公司都会有一个软件配置管理机构,对于小型公司一般由项目经理带管,

CMO的主要职责是进行软件开发过程中的软件配置管理,以及软件定版后的维护管理。在软件开发过程中,由于多个开发人员协同工作,需要对其工作协同管理,确保协同工作的顺利进行。同时,由专人进行配置管理,使得大部分开发人员不会得到全部原代码,也有利于软件公司的安全保密工作。在软件定版后,由于软件的Bugs,功能的完善及各种原因导致的对软件的修改,版本的控制就显得极为重要,软件配置管理可以确保得到不同时间的软件版本。

软件测试组:软件是软件工程的重要组成部分,软件测试组承担的工作主要是α测试。测试模块与集成测试由软件开发人员完成。对于项目软件开发,用户的计算机技术人员参加

到软件测试与支持工作组,使用户参与整个软件的测试工作中。确保交付的应用系统是用户可信赖的系统。

在以上的软件开发组织机构中,不论公司规模的大小,以上的各个职能应该是健全的。明确的责任分工有利于软件开发的顺利进行于质量控制,同时,也必将有利于公司的成本控制,降低软件开发风险。

3.3 软件开发项目组的角色

一般来讲,一个软件开发项目组是由多个不同角色的人员构成,每种角色在软件开发中起不同的作用,各个不同角色的人员协同工作,完成软件开发工作。

典型的软件开发项目组由下列角色构成,如图5所示

在软件开发项目组中一般有六种角色,他们是:

①.产品管理

②.程序开发

③.程序管理

④.测试及质量保证

⑤.用户培训

⑥.后勤支援

在大型软件开发项目中,可以将每个角色赋予不同的个人。对小型项目,一个人可以肩负多个不同的角色。每种角色的人员在项目中起着同等重要的作用。每种角色都有其特定的任务及技能要求。

产品管理:产品经理负责建立及更新项目的商业模型,在确定及设置项目目标方面起关键作用。产品经理应确保项目成员清楚理解项目商业目的,并根据商业需求的优先级确定功能规范。同时,产品经理负责高层的项目沟通,如:商业项目的成本核算、合同洽谈,及向相关人员通报项目进展等。

程序管理:程序经理负责确定软件特色及功能规范,根据软件开发标准协调日常开发工作确保及时交付开发任务。协助产品经理完成项目需求文档,并根据需求文档起草软件功能规范。同时负责与系统分析、规范及框架结构有关的各种活动。管理与协调与外部标准与系统的互操作性,控制项目进度。程序经理是项目组成员间沟通与协调的核心。

程序开发:开发队伍负责交付符合功能规范的软件系统。开发队伍应积极参与功能规范的制定,在建立项目原型时开发人员与程序经理可以同步进行并提供技术可行性。在功能规范确立后,开发人员必须与程序经理就如何解决重大疑难问题达成一致。

测试与质量保证:测试与质量保证是保证系统符合功能规范的保证。为保证“零误码”测试/QA人员应积极参与开发过程,确保开发出交付符合功能规范的软件系统。测试/QA人员负责准备测试计划、测试用例、自动测试程序、执行测试工作、管理并跟踪Bug。测试工作与开发工作是独立并行的。

用户培训:培训人员负责设计编写离线及在线培训文档,包括演示材料。用户培训人员应参与用户界面和系统的设计与构造,并参与安装程序与安装过程的设计。参与系统的可用性测试及设计改进,与程序管理与开发有密切的关系,并确保系统的变化及时反映到文档中去。

后勤支援:后勤支援包括确保项目顺利进行的各方面工作。

对于一个项目组,建立一个良好的团队氛围是非常重要的,每个角色在项目中都是不可缺少的,项目的成功是团队成员共同努力的结果。鼓励成员的积极进取、高效、参与的团队精神,提高成员的责任感,避免造成团队或项目的成功依赖于少数个人的贡献。

3.4 开发组人员构成

根据软件开发项目组织的角色划分,对于中等以下规模的软件开发项目组基本包括如下几类人员:

①产品管理人员:(产品管理与用户培训角色)

②软件开发人员:(程序管理与开发角色)

③软件测试人员:(测试角色)

一般而言,产品管理人员同时担负用户培训的角色。程序管理角色一般由项目经理承担,而队后勤支持角色一般由研发部和公司统一承担,或由公司的信息系统管理人员协助完成。图6表示项目组的人员结构及承担的相关工作。

3.5 开发人员技术结构

宏观上讲,软件开发机构基本可分为二种角色,管理角色和技术角色。不同角色各有其不同的发展方向,如图7所示。

不论是走技术路线还是管理路线,不存在那种角色地位更高的问题。高级架构设计师与部门经理具有同等的地位与待遇。

4. 软件开发的阶段划分及目标

软件开发进行阶段划分主要有以下三方面优点:

1) 有利于软件质量控制;

2) 便于项目进度控制与管理;

3) 有利于项目成本费用控制;

4.1 软件开发的阶段划分

虽然软件开发与工程设计有其相似之处,但由于其所处的领域不同,发展历史与人文环境也有一定的差别,完全照搬工程设计的管理模式也存在一些弊端。下面就国外流行的软件开发模式与工程设计理论及原始的软件开发做以简单比较,见图8。

原始的软件开发模式很是简单,有些项目连需求分析都不完整,软件测试只是相当于模块集成一级的测试,没有规范的软件测试。软件质量取决于编程者个人的技术水平,质量无法保证,也很难控制。在满足用户需求方面取决于编程者个人的理解,软件交付后经常发生大面积的修改。项目似乎完成得很快,交付后大面积的修改经常导致延误工期,修改后的软件缺乏必要的测试手段,往往导致极大的售后服务支持成本。造成项目表面赢利、实际亏损的局面。

软件工程理论指导下的软件开发管理模式也存在一定的问题,那就是有些环节的可操作性较差,主要表现在需求分析到总体设计这个环节。需求分析是文档性的描述,一般是软件开发人员对用户需求的一种理解,这种文字描述一般很难精确可视地展现未来软件的情况,而用户也很难说清楚自己的需求,这就使得用户很难鉴别需求分析的精确性。往往导致软件交付后的大量修改。有一篇“Client / Server软件开发常犯错误”的文章说得好,“用户不知自己需要什么样的系统,但知道不要什么样的系统”。

为避免软件开发中需求分析到总体设计这个环节的歧异性问题,目前,国际流行的软件开发模式中增加了FS+UI(功能规范和用户界面)这个环节,这个环节不但解决了用户在需求分析理解上的困难,同时也解决了软件开发过程各种角色人员的并行工作问题,便于软件开发工期的缩短,有利软件开发质量与成本的控制[ FS+UI(功能规范和用户界面)见后面章节]。

4.2 软件开发各阶段目标

以下就软件开发阶段划分的各阶段的任务与目标做以简单描述,这是软件公司进行质量控制的基础。

1) 可行性分析

可行性分析是软件项目立项的必要阶段,对于项目型软件开发,可行性分析一般由用户自行完成,软件公司基本在技术上给予必要的支持。对于产品型软件开发,可行性分析是非常重要的一环,产品采用的技术、市场定位与销售策略等直接关系着产品的生存与发展。

可行性分析基本包括如下几个方面的内容,

A. 项目定义:项目定义主要是对产品定位有一个大致的描述,钩画出该软件产品的运行环境、产品功能、用户特征以及制约因数进行全面的描述,以便下一步工作的展开。

B. 技术分析:此处的技术主要包括软件的开发环境与运行环境所涉及的各方面技术,在此应对这些技术的发展状况,成熟情况及未来的技术走势应有细致的阐述。

C. 市场分析:包括国内外行业发展现状、市场格局、发展趋势,在市场容量统计数据的基础上,推测我们产品可能的市场占有率及销售情况。

D. 产品策略:产品策略包括产品的技术策略与产品的市场策略。

E. 投资与回报分析:项目投资总额、项目成本核算、项目收益、投资回报等。

F. 已有资源分析:包括资金资源、人力资源、技术资源等的分析。

G. 其它应考虑的因素

2) 需求分析

需求分析是软件项目正式实施开始的第一个阶段,需求分析应该遵循可行性分析确定的基调,包括技术路线、产品基本功能、产品运行环境及市场定位。需求分析主要应完成对用户应用流程的描述,即完成商业逻辑分析。并根据商业逻辑的需要确定软件的功能列表及描述。

3) FS+UI

A. 总体描述,包括应用平台及应用限制,...

B. 功能列表

C. 用户界面

FS+UI的合格与否取决于能否完成以下二方面的工作。

①完成用户手册的编写!

②准备测试计划、测试用例及确定验收标准!

FS+UI是产品管理部门与软件开发部门的接口,对于项目型开发是软件开发商与用户责任划分的重要依据,FS+UI不同于需求分析,它提供给用户的是一个清晰可见的用户界面与完整的功能说明,方便用户的理解与确认。软件开发据此进行下一步工作就有了坚实的基础,避免软件交付后的大量修改工作,有利于软件质量与进度的控制。同时,便于软件开发并行工作的展开。

FS+UI是软件总体设计及软件α测试的基础。

4) 总体设计

总体设计的依据是FS+UI文档,其目的是根据FS+UI要求,依据具体采用的开发工具与技术平台确定软件实现的对象关系与数据库结构。并非项目组每个成员均参加总体设计,一般来讲,一般中小项目总体设计为一到二个人,中大型项目一般为一个总体设计小组,由项目总设计师负责将项目进行分解为可操作的大小,交由不同设计小组完成相关功能的总体设计,总设计师负责协调各子项之间的协调关系,从而完成大型的总体设计。

总体设计设计深度情况直接影响下一步的详细设计。过细的总体设计也是不必要的,少量的人员进行过细的设计必然影响整个项目的设计周期,而过粗的总体设计当然也不利于详细设计设计任务的分配与设计展开。

总体设计是软件详细设计及软件集成测试的基础。

5) 详细设计

详细设计是总体设计的继续,主要目的是完成总体设计完成的对象内部的商业逻辑的实现设计,在总体设计完成后可以将不同的设计对象交由不同的设计人员来完成。原则上讲,在开始软件编码之前应完成所有的设计细节,避免在编码中进行设计工作。

详细设计是编码及软件模块测试的基础。

6) 编码

编码是软件详细设计的一种再现,编码中最重要的是要遵从相关开发工具的设计规范及数据库设计规范,另外,养成一个良好的编程习惯是一个软件公司和软件编程人员最基本的职业素质。

对于软件应用可靠性要求严格的案例,所有软件模块必须通过模块测试,对一般应用软件中的重要模块也应进行模块测试。

7) 集成

集成是软件开发中重要的一环,集成测试的依据是软件的总体设计。如果缺乏前期的模块测试,必然会导致集成时间的加长,同时也会加重后期的α测试及问题处理的工作量。

8) α测试

α测试是在软件集成结束后软件开发进入的下一个环节,它标志着软件开发从设计级段进入软件测试阶段。一般情况下,软件开发从设计进入测试是通过CMO来完成这一过程。

为完成α测试,测试部门一般包括如下几个方面的工作。

①编制测试计划

②编制测试用例

③测试执行

③测试结论(包括问题报告)

一般而言,测试工作基本上可以分为如下几个轮回:

α测试是软件公司对自身产品的一次自我测试,α测试结束后,测试部门会提供一个软件测试评价报告,这个评价报告在某种程度上决定了该软件是否适应商业销售。

一般来讲,软件通过测试并不意味着软件没有任何问题,只是意味软件通过了可接受测试条件。软件测试的问题报告是软件公司售后服务与产品升级的重要参考因素之一。

9) 问题处理与设计文档改进

问题处理是软件开发组交付测试后的重要任务之一,及时解决软件测试过程中发现的问题,以便进行下一轮测试。

软件开发人员在交付测试后的另一重要任务就是将编码过程中对设计的修改及时反映到总体设计文档和详细设计文档中去,确保定版的软件与其设计文档的一致性。

10) IRL内部定版

测试合格的软件在软件开发部内部定版,进入产品的组装或β测试,及产品销售。对项目型软件开发,则进入系统的实施级段。

5 过程管理与质量控制标准化

5.1 软件开发过程管理

传统的软件开发一般遵循的是瀑布过程模型,一个阶段的结束是下一个阶段的开始。这种模型不适合基于对象、分布式的企业应用开发。部件的开发具有并行性,而非顺序性。另外,瀑布进程模型缺乏灵活性,不适应快速原型开发工具的要求。

基于里程碑的过程模型引进迭代过程模型,允许开发任务的重叠和反复,可以很好适应基于部件的软件开发。基于里程碑的过程模型便于团队模型中责权的划分。便于风险评定,鼓励快速交货。

1) 里程碑过程模型的特征:

A. 里程碑过程:软件开发过程是由指导开发进程的外内部里程碑所驱动的。

B. 明确责权关系:过程模型将每个里程碑与开发组的责任角色相关联。

C. 风险驱动的计划安排:高风险部件应尽早完成。

D. 评估说明:评估说明直接影响着项目的计划与管理,在整个软件开发过程中致关重要。

2) 里程碑的制定

里程碑也可以称作项目实施计划。对于软件开发项目而言,一但项目立项确定,需要做的第一件事情就是确定项目实施的里程碑。根据前面我们确定的软件开发阶段划分,在里程碑中应清楚地定义每一个阶段的开始时间、结束时间、负责人,阶段的提交成果由各阶段的软件开发规范确定。里程碑是公司对进行项目控制的主要依据。里程碑一旦确定,各相应负责人应确保按时交付任务。

对于各不同里程碑阶段可以根据需要制定阶段里程碑,阶段里程碑一般由开发组织内部确定以便于更好管理与控制项目的进程。达到某个里程碑表明对此负有主要责任的角色完策任务。便于明确各个角色责权范围、有利于按时完成任。

软件开发里程碑主要包括如下阶段:

3) CMO 软件配置管理

为确保软件及其文档的一致性,进行软件配置的管理是必要的。

软件项目质量控制体系

****软件项目质量控制体系 1. 项目开发过程与实施进度计划 1.1.项目开发过程管理 项目管理框架 项目管理模式 依据项目的软件特点、合作方的项目实施要求,在继承****软件以往软件项目管理的工程实践经验基础上,软件开发项目中我们将采用如下模式组织、控制项目的过程管理:双经理与双过程的项目管理模式; 透明过程,两级管理(项目组级和公司级)的模式; 1.2. 项目过程监控 外包软件项目的成功通常受到三个核心层面的影响,即项目组内环境、项目所处的组织环境、客户环境。这三个环境要素直接关系到软件项目的可控性。项目组管理模型与项目过

程模型、组织支撑环境和项目管理接口是上述三个环境中各自的核心要素。 软件项目监控的目的是通过建立对软件项目过程的可视性,使项目管理者在软件项目性能与软件计划出现偏差时采取有效的纠正措施,以确保软件过程的质量满足要求。 一般软件项目的监控按照如下的步骤执行:获取项目过程信息、分析判断、采取纠偏措施、验证。这一过程以获得真实、实时的项目一手数据为基础,建立过程的可视性,通过过程可视实施项目目标管理与过程管理的统一。 ****软件在组织实施软件项目的过程中,对项目的监控从三个个角度着手实施: 1)建立符合软件工程和软件项目管理流程要求的实用的软件项目运行环境。包括:明确的过程流程、项目策划、组织支撑环境。 2)优秀的项目经理和质量保证经理构成项目的第一责任人。 ****软件采用双过程经理制,项目经理和软件质量保证经理构成软件项目的灵魂人物。 3)项目沟通 项目计划、进度和项目范围必须能够被项目成员方便地得到,以确保大家是在统一的平台上朝着同一个目标前进。为此,在软件开发项目实施过程中****软件从三个方面展开工作以建立项目组内部、公司全局、项目组与项目方的沟通机制: 采用适当的图表和模版增强项目组内沟通效果和沟通的一致性; 采用协同开发软件工具内部统一的消息平台; 项目策划中必须包括与项目方的适当沟通并建立沟通渠道。 2. 系统测试计划及验收程序 2.1.软件系统测试环境 根据软件开发项目的技术设计方案和系统软件需求规格说明书中对系统环境的要求,该系统的测试环境将在模拟系统实际的运行环境的基础上配置测试环境。对于有些测试项目,还将在系统交付前,在用户的真实运行环境中进行测试,如环境测试、稳定性测试、仿真测试、安全保密测试等。 一个软件系统测试环境的模板如下:客户端浏览器:IE5.0 语言环境: windows98&windows2000中文版, windows98&windows2000英文版,支持多语种显示、输入和存储的能力。 硬件环境: 平台选择为:HP Solaris 8

软件开发质量控制过程

软件开发控制与评审控制 作者: 完成日期: 签收人: 签收日期: 修改情况记录:

1.目的 2 2.适用范围 2 3.角色与职责 2 4.项目过程控制 2 5.版本控制 3 6.软件测试 4 7.产品交付控制 4 1.目的 对软件设计和开发过程进行监控,使设计输出不断满足顾客和有关标准、法令、法规的要求。 2.适用范围 本程序适用于本公司应用软件设计、软件升级等。

3.角色与职责 部门领导:负责整个质量控制过程。 项目经理:编制软件开发计划,组织实施设计软件评审与监控过程。 开发人员:负责软件评审及评审结果的修改与处理。 质量保证工程师:根据软件开发过程, 4.项目过程控制 4.1项目经理组织软件的立项评审。质量保证工程师参与并监督 整个评审过程。评审完成后,输出《软件产品立项评审记录》。 4.2项目经理制定软件开发过程的评审计划,输出《软件开发评 审计划》,此计划明确在项目的立项、需求、概要设计、详细设计、测 试等各开发阶段的时间点及输出项; 4.3质量保证工程师根据《软件开发评审计划》、《项目开发时间 进度表》;在每个里程碑点,提出阶段评审。项目经理主持评审。具体 的阶段包括:需求评审、概要设计评审、测试方案评审。 4.4质量保证工程师参与、监督整个评审过程。评审包括但不限 于:需求、开发计划、设计文档、代码、测试计划。评审完成后,输 出〈〈项目评审记录〉〉。 4.5质量保证工程师对评审的处理内容、结果进行监督;并对实 施的结果进行检查。检查结果输出〈〈评审检查实施表〉〉 4.6质量保证工程师定期跟踪项目的开发情况,每月/每个项目 节点,定期出〈〈项目质量报告〉〉。 4.7项目开发完成后,质量控制工程师对整个项目质量控制的情 况进行总结。对项目的输出内容进行检查,输出〈〈结项评审〉〉。包括:

软件项目质量控制

项目质量控制 1、软件质量管理 质量管理是管理者在对软件质量进行一系列度量之后做出的各种决策,促使软件产品符合标准。在软件项目质量管理中,质量管理总是围绕着质量保真该过程和质量控制过程两方面。质量保证是在项目过程中实施的有计划、有系统的活动,确保项目满足相关的标准。质量控制是采取适当的方法监控项目结果,确保结果符合质量标准,还包括跟踪缺陷的排出情况。质量控制是确保项目结果与质量标准是否相符,同时确定消除不负的原因和方法,控制产品的质量,及时纠正缺陷的过程。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据。软件质量控制主要是发现和消除软件产品的缺陷。质量控制的方法有技术评审、走查、测试、返工、控制图、趋势分析、抽样统计、缺陷追踪等。 质量保证的三个要点是: 1)在项目进展过程中,定期对项目各方面的表现进行评价。 2)通过评价来推测项目最后是否能够达到相关的质量指标。 3)通过质量评价来帮助项目相关的人建立对项目质量的信心。 2、软件管理系统质量计划 2.1导言 教务管理系统的质量计划是确定哪种质量标准适合该项目并决定如何达到这些标准的过程。说明了该项目管理小组具体执行它的质量策略,该计划可以作为软件质量工作指南,帮助项目经理确保所有工作按计划完成。 2.2项目组织机构 在项目实施期间成立项目质量保证组织,该组织由质量保证人员和项目经理等组成。项目经理负责质量监督工作及项目进展过程中各环节的质量把关,开发经理负责质量控制的工作,质量保证人员负责质量保证的工作。组织结构如下图所示:

2.3项目质量保证组织职责 2.3.1高层管理 高层管理是公司负责质量的高级管理,其质量职责如下: 1)受理项目内不能解决的不符合问题,必要时与项目经理协调。 2)负责听取质量保证组的工作报告,评审质量保证活动和结果。 3)参加有关质量保证过程改进的评审。 2.2.2项目经理 项目经理的质量职责如下: 1)评审质量计划。 2)与质量保证人员一起协商不符合项问题的纠正措施,并安排资源实施纠正措施。 3)定期或事件驱动地评审质量保证活动和结果。 2.3.3项目质量保证人员 质量保证人员的质量职责如下: 1)负责项目实施过程中对项目实施情况进行监督,包括对项目实施过程和工作产品进行监督检查。 2)实施项目组成员的质量保证培训。 3)制定质量保证计划。 4)按计划实施审计活动,依照质量保证计划执行评审/审计,并记录执行中发现的不符合项。

软件质量控制保障方案

项目实施保证 为确保项目的顺利开展与实施,我们分别制定了项目组人员保证方案与软件开发质量保证方案以及项目进度保证方案。 1项目组人员保证方案 为确保项目的顺利开展与实施,项目组的人员配备既有高层次的技术带头人,也有中坚力量,还有一般工作人员,并实行项目经理、技术负责人质量负责制,加强技术管理的有效性与研发过程的科学性、准确性。 2软件开发质量保证方案 2、1质量管理内容 2、1、1 编制与评审质量计划 制定质量保证计划:依据项目计划及项目质量目标确定需要检查的主要过程与工作产品,识别项目过程中的干系人及其活动,估计检查时间与人员,并制定出本项目的质量保证计划。 质量保证计划的主要内容包括:例行审计与里程碑评审,需要监督的重要活动与工作产品,确定审计方式,根据项目计划中的评审计划确定质量保证人员需要参加的评审计划。明确质量审计报告的报送范围。 质量保证计划的评审:质量保证计划需要经过评审方能生效,以确保质量保证计划与项目计划的一致性。经过批准的质量保证计划需要纳入配置管理。当项目计划变更时,需要及时更改与复审质量保证计划。 2、1、2 “过程与工作产品”的质量检查 根据质量保证计划进行质量的审计工作,并发布质量审计报告。 审计的主要内容包括:就是否按照过程要求执行了相应的活动,就是否按照过程要求产生了相应的工作产品。本项目中对质量的控制主要体现在不同阶段的审计当中。 2、1、3 不符合项的跟踪处理

对审计中发现的不符合项,要求项目组及时处理,质量保证人员需要确认不符合项的状态,直到最终的不符合项状态为“完成”为止。 2、2质量管理责任分配 我公司在开发项目上按照规范化软件的生产方式进行生产。每个项目除配备了项目开发所需角色外,还专门配备了质量保证小组、配置管理小组、测试小组来确保质量管理的实施,下面针对这三种角色进行说明: 2、2、1 质量保证小组职责 质量保证小组作为质量保证的实施小组,在项目开发的过程中几乎所有的部门都与质量保证小组有关。质量保证小组的主要职责就是:以独立审查方式,从第三方的角度监控软件开发任务的执行,分析项目内存在的质量问题,审查项目的质量活动,给出质量审计报告。就项目就是否遵循已制定的计划、标准与规程,给开发人员与管理层提供反映产品与过程质量的信息与数据,使她们能了解整个项目生存周期中工作产品与过程的情况,提高项目透明度,从而支持其交付高质量的软件产品。 质量保证人员依据质量保证计划,通过质量审计报告向项目经理及有关人员提出已经识别出的不符合项,并跟踪不符合项的解决过程,通过审计周报或者审计月报向项目经理提供过程与产品质量数据,并与项目组协商不符合项的解决办法。 质量保证小组的检测范围主要包括:项目的进度就是否按照项目计划执行,用户需求就是否得到了用户的签字确认,软件需求就是否正确的反映了用户的需求,就是否将每一项用户需求都映射到软件需求;系统设计就是否完全反映了软件需求;实现的软件就是否正确的体现了系统设计;测试人员就是否进行了较为彻底的与全面的测试;客户验收与交接清单就是否完备;对于系统运行中出现的问题,维护人员就是否记录了详细的维护记录;配置管理员就是否按照配置管理计划建立了基线,就是否严格控制变更过程,就是否对配置库进行了维护。 2、2、2 配置管理小组职责 配置管理活动的目的就是通过执行版本控制、变更控制、基线管理等规程,借助配置管理工具的使用,来保证整个生命周期过程产生的所有配置项的完整性、一致性与可追溯性。配置管理就是对工作成果(阶段工作成果与产品成果、进展状态成果)的一种有效保护形式,就是反映项目及其工作产品的过去、现在、动态的资料与数据集中管理体现。

大型软件开发过程的质量管理体系

大型软件开发过程的质量管理体系  韩思音 弋陪余    国信朗讯科技网络技术有限公司是中国电信和朗讯科技合资的专业从事通信网络管理软件开发的高科技企业,公司位于上海浦东,注册资金2 980万美元,员工达150人,本科以上学历超过95%。公司在1999年成立后就开展了ISO9001贯标活动,并于2000年8月通过了ISO9001认证。公司以贝尔试验室的大型软件开发管理流程为基础,建立了自己的ISO9001质量管理体系。三年来已经开发了“传输网络集中监控系统NetGuard”、“电信网络资源管理系统NetMaster”两个大型软件系统。通过ISO9001的贯标活动,加强了公司全体员工的质量意识,强化了软件开发过程的规范性,改进了软件开发过程,保证了软件开发的质量,对加强公司实力、提高市场形象起了很好的推动作用。  通过了ISO9001认证后,审核机构每年要进行一次复查,即监督审核。如果公司质量体系运行得不好,就可能被暂停证书;如发生重大事故,证书可能被撤消。除此以外,公司每年还进行一次内审,即公司内部对质量体系运行是否符合ISO9001标准进行的检查,各部门对内审发现的不符合项进行认真整改,由质量管理部验收。各部门对本部门的工作定期提出改进措施,由质量管理部对其进行验证,使质量体系不断改进。所以ISO9001的认证对企业的质量体系是有严格管理的,是有保证的。  1 软件产品质量的特点  按照ISO9126的定义,软件的质量通常可以从以下六个方面去衡量(定义)。  1)功用性(Functionality),即软件是否满足了客户功能要求。  2)可靠性(Reliability),即软件是否能够一直在一个稳定的状态上满足可用性。  3)可用性(Usability),即衡量用户能够使用软件需要多大的努力。  4)效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源。  5)可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力。  6)可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中。  可见,同其它产品相比,软件产品的质量有其明显的特殊性。

软件项目质量控制(1)

项目质量控制 2.6.1软件质量管理 质量管理是管理者在对软件质量进行一系列度量之后做出的各种决策,促使软件 产品符合标准。在软件项目质量管理中,质量管理总是围绕着质量保真该过程和质量 控制过程两方面。质量保证是在项目过程中实施的有计划、有系统的活动,确保项目 满足相关的标准。质量控制是采取适当的方法监控项目结果,确保结果符合质量标准,还包括跟踪缺陷的排出情况。质量控制是确保项目结果与质量标准是否相符,同时确 定消除不负的原因和方法,控制产品的质量,及时纠正缺陷的过程。质量控制是对阶 段性的成果进行检测、验证,为质量保证提供参考依据。软件质量控制主要是发现和 消除软件产品的缺陷。质量控制的方法有技术评审、走查、测试、返工、控制图、趋 势分析、抽样统计、缺陷追踪等。 质量保证的三个要点是: 1)在项目进展过程中,定期对项目各方面的表现进行评价。 2)通过评价来推测项目最后是否能够达到相关的质量指标。 3)通过质量评价来帮助项目相关的人建立对项目质量的信心。 2.6.2教务管理系统质量计划 1、导言 教务管理系统的质量计划是确定哪种质量标准适合该项目并决定如何达到这些标 准的过程。说明了该项目管理小组具体执行它的质量策略,该计划可以作为软件质量 工作指南,帮助项目经理确保所有工作按计划完成。 2、项目组织 2.1组织机构

在项目实施期间成立项目质量保证组织,该组织由质量保证人员和项目经理等组成。项目经理负责质量监督工作及项目进展过程中各环节的质量把关,开发经理负责质量控制的工作,质量保证人员负责质量保证的工作。组织结构如下图所示: 2.2职责 在本项目中,质量保证组织的职责如下 2.2.1高层管理 高层管理是公司负责质量的高级管理,其质量职责如下: 1)受理项目内不能解决的不符合问题,必要时与项目经理协调。 2)负责听取质量保证组的工作报告,评审质量保证活动和结果。 3)参加有关质量保证过程改进的评审。 2.2.2项目的质量保证人员 质量保证人员的质量职责如下: 1)负责项目实施过程中对项目实施情况进行监督,包括对项目实施过程和工作产品进行监督检查。

软件开发质量保证方案

1软件开发质量保证方案 1.1质量管理内容 1.1.1编制和评审质量计划 制定质量保证计划:依据项目计划及项目质量目标确定需要检查的主要过程和工作产品,识别项目过程中的干系人及其活动,估计检查时间和人员,并制定出本项目的质量保证计划。 质量保证计划的主要内容包括:例行审计和里程碑评审,需要监督的重要活动和工作产品,确定审计方式,根据项目计划中的评审计划确定质量保证人员需要参加的评审计划。明确质量审计报告的报送范围。 质量保证计划的评审:质量保证计划需要经过评审方能生效,以确保质量保证计划和项目计划的一致性。经过批准的质量保证计划需要纳入配置管理。当项目计划变更时,需要及时更改和复审质量保证计划。 1.1.2“过程和工作产品”的质量检查 根据质量保证计划进行质量的审计工作,并发布质量审计报告。 审计的主要内容包括:是否按照过程要求执行了相应的活动,是否按照过程要求产生了相应的工作产品。本项目中对质量的控制主要体现在不同阶段的审计当中。专业资料

1.1.3不符合项的跟踪处理 对审计中发现的不符合项,要求项目组及时处理,质量保证人员需要确认不符合项的状态,直到最终的不符合项状态为“完成”为止。 1.2质量管理责任分配 我公司在开发项目上按照规范化软件的生产方式进行生产。每个项目除配备了项目开发所需角色外,还专门配备了质量保证小组、配置管理小组、测试小组来确保质量管理的实施,下面针对这三种角色进行说明: 1.2.1质量保证小组职责 质量保证小组作为质量保证的实施小组,在项目开发的过程中几乎所有的部门都与质量保证小组有关。质量保证小组的主要职责是:以独立审查方式,从第三方的角度监控软件开发任务的执行,分析项目内存在的质量问题,审查项目的质量活动,给出质量审计报告。就项目是否遵循已制定的计划、标准和规程,给开发人员和管理层提供反映产品和过程质量的信息和数据,使他们能了解整个项目生存周期中工作产品和过程的情况,提高项目透明度,从而支持其交付高质量的软件产品。 质量保证人员依据质量保证计划,通过质量审计报告向项目经理及有关人员提出已经识别出的不符合项,并跟踪不符合项的解决过程,通过审计周报或者审计月报向项目经理提供过程和产品质量数据,并与项目组协商不符合项的解决办法。专业资料 质量保证小组的检测范围主要包括:项目的进度是否按照项目计划执行,用户需求是否得到了用户的签字确认,软件需求是否正确的反映了用户的需求,是否将

(研发管理)软件研发质量管理层次模型

软件研发质量管理层次模型 摘要: 本文对软件研发质量管理的层次进行了初步的划分,形成了软件研发质量管理层次模型,并对模型中的各个层次内涵做了简要说明。 关键字: 质量管理、软件研发、层次。 正文: 概述 质量:一组固有特性满足需求的程度,指产品或服务满足规定或潜在需要的特征和特性的总和。他既包括有形产品也包括无形产品;既包括产品内在的特性、也包括产品外在的特性。即包括了产品的适用性和符合性的全部内涵。 软件质量:和软件产品满足明确或隐含需求的能力有关的特征和特征的总和。有四个含义:1、能满足给定需要的特性之全体;2、具有所希望的各种属性的组合的程度;3、顾客或用户认为能满足其综合期望的程度;4、软件的组合特性,他确定软件在使用中将满足顾客预期需求的程度。 从用户最感兴趣的的角度来说,软件质量能从三个不同的角度来看待:怎么使用软件、使用效果怎么、软件性能怎么;从软件研发的团队的角度来说,不仅要生产出满足质量需求的软件,也对中间产品的质量感兴趣,也对怎么运用最少的的资源、最快的进度生产出质量最优的产品感兴趣;从软件维护者的角度看,对软件维护方面的特性感兴趣;对企业的管理层来说,注重的是总体效益和长远利益,就是说质量好的软件一般能帮助企业扩大市场;反之,质量差的软件一般会造成企业市场萎缩。 软件质量特性:根据《GB/T16260-1996(idt ISO/IEC9126:1991)信息技术软件产品评价质量特性及其使用指南》软件的质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性等六个方面,每个方面都包含若干个子特性: 功能性:适合性、准确性、互操作性、依从性、安全性; 可靠性:成熟性、容错性、易恢复性; 易用性:易理解性、易学性、易操作性; 效率:时间特性、资源特性; 可维护性:易分析性、易改动性、稳定性、易测试性; 可移植性:适应性、易安装性、遵循性、易替换性;

加强软件项目管理 提高软件开发质量

加强软件项目管理提高软件开发质量 软件质量与项目管理的关系 软件质量的高低,由符合软件质量要素要求的程度来决定。软件的质量要素包括功能性、可靠性、易用性、效率、可维护性、可移植性等六个方面: (1)功能性:软件的功能要满足用户的要求,在预定环境下能够完成预期的功能。 (2)易用性:用户容易理解和使用功能,操作方便,符合用户业务习惯。 (3)可靠性:软件按照设计要求,在规定时间和条件下不出故障,具有异常捕获功能并提供异常处理与恢复功能。 (4)效率:降低系统资源的开销,响应时间快,提高用户工作效率。 (5)可维护性:遵从统一的标准和规范,编码具有良好的可读性。为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,能够对一个已投入运行的软件进行相应诊断和修改。 (6)可移植性:一个软件(或软件的部分功能模块)能再次用于其它相关联的应用。 由以上软件质量要素相对应的要求可以看出,软件开发过程中从需求、设计、编码、测试到上线验收的任何一个环节,都将对软件质量产生重要影响,因此为了开发出符合软件质量要素要求的软件产品,必须加强对软件开发全过程的项目管理。 软件项目的建设按软件工程的生命周期法可分为项目立项、启动、需求分析、系统设计、系统开发、系统测试、系统上线、项目验收和上线后评估等9个阶段进行。加强软件项目管理,就是以软件工程的各个环节为管理主线,将动态项目管理贯穿其中,通过对软件开发的项目范围、项目进度、项目质量、项目沟通、人力资源、项目成本六大核心要素的集成管理,实现软件开发管理效能的最大化,从而大大提高软件开发质量。 把握需求,准确立项 软件开发项目的提出,应由迫切的业务需求来驱动。很多不成功的软件项目,

软件质量控制保障方案

项目实施保证 为确保项目的顺利开展和实施,我们分别制定了项目组人员保证方案和软件开发质量保证方案以及项目进度保证方案。 1项目组人员保证方案 为确保项目的顺利开展和实施,项目组的人员配备既有高层次的技术带头人,也有中坚力量,还有一般工作人员,并实行项目经理、技术负责人质量负责制,加强技术管理的有效性和研发过程的科学性、准确性。 2软件开发质量保证方案 2.1质量管理内容 2.1.1 编制和评审质量计划 制定质量保证计划:依据项目计划及项目质量目标确定需要检查的主要过程和工作产品,识别项目过程中的干系人及其活动,估计检查时间和人员,并制定出本项目的质量保证计划。 质量保证计划的主要内容包括:例行审计和里程碑评审,需要监督的重要活动和工作产品,确定审计方式,根据项目计划中的评审计划确定质量保证人员需要参加的评审计划。明确质量审计报告的报送范围。 质量保证计划的评审:质量保证计划需要经过评审方能生效,以确保质量保证计划和项目计划的一致性。经过批准的质量保证计划需要纳入配置管理。当项目计划变更时,需要及时更改和复审质量保证计划。 2.1.2 “过程和工作产品”的质量检查 根据质量保证计划进行质量的审计工作,并发布质量审计报告。 审计的主要内容包括:是否按照过程要求执行了相应的活动,是否按照过程要求产生了相应的工作产品。本项目中对质量的控制主要体现在不同阶段的审计当中。 2.1.3 不符合项的跟踪处理

对审计中发现的不符合项,要求项目组及时处理,质量保证人员需要确认不符合项的状态,直到最终的不符合项状态为“完成”为止。 2.2质量管理责任分配 我公司在开发项目上按照规范化软件的生产方式进行生产。每个项目除配备了项目开发所需角色外,还专门配备了质量保证小组、配置管理小组、测试小组来确保质量管理的实施,下面针对这三种角色进行说明: 2.2.1 质量保证小组职责 质量保证小组作为质量保证的实施小组,在项目开发的过程中几乎所有的部门都与质量保证小组有关。质量保证小组的主要职责是:以独立审查方式,从第三方的角度监控软件开发任务的执行,分析项目内存在的质量问题,审查项目的质量活动,给出质量审计报告。就项目是否遵循已制定的计划、标准和规程,给开发人员和管理层提供反映产品和过程质量的信息和数据,使他们能了解整个项目生存周期中工作产品和过程的情况,提高项目透明度,从而支持其交付高质量的软件产品。 质量保证人员依据质量保证计划,通过质量审计报告向项目经理及有关人员提出已经识别出的不符合项,并跟踪不符合项的解决过程,通过审计周报或者审计月报向项目经理提供过程和产品质量数据,并与项目组协商不符合项的解决办法。 质量保证小组的检测范围主要包括:项目的进度是否按照项目计划执行,用户需求是否得到了用户的签字确认,软件需求是否正确的反映了用户的需求,是否将每一项用户需求都映射到软件需求;系统设计是否完全反映了软件需求;实现的软件是否正确的体现了系统设计;测试人员是否进行了较为彻底的和全面的测试;客户验收和交接清单是否完备;对于系统运行中出现的问题,维护人员是否记录了详细的维护记录;配置管理员是否按照配置管理计划建立了基线,是否严格控制变更过程,是否对配置库进行了维护。 2.2.2 配置管理小组职责 配置管理活动的目的是通过执行版本控制、变更控制、基线管理等规程,借助配置管理工具的使用,来保证整个生命周期过程产生的所有配置项的完整性、一致性和可追溯性。配置管理是对工作成果(阶段工作成果和产品成果、进展状态成果)的一种有效保护形式,是反映项目及其工作产品的过去、现在、动态的资料和数据集中管理体现。

软件开发质量保证体系

软件开发质量保证体系来自https://www.wendangku.net/doc/0b3740799.html, 1. 使用范围 2. 引用标准 3. 定义 4. 质量体系框架 4.1 管理职责 4.2 质量体系 4.3 评审 4.4 纠正措施 5. 质量体系生存周期 5.1 合同评审 5.2 需方需求规格说明 5.3 开发计划 5.4 质量计划 5.5 设计和实现 5.6 测试和确认 5.7 验收 5.8 复制、交付和安装 5.9 维护

软件开发质量保证体系 公司内部标准 本标准参照ISO9000-3 《质量管理和质量保证标准第三部分:在软件开发、供应和维护中的使用指南》。 1、使用范围 本标准作为本公司在软件项目开发、供应和维护时的质量要求,以保证产品的质量,防止不合格产品。 以下详细描述了软件开发各阶段的控制手段和要求。要求质量保证贯穿各个阶段,始终保证严格实施。2、引用标准 本标准制定考虑本公司的实际情况,因此本标准仅用于本公司内部控制产品质量。 使用本文档时,请尽量参照最新版本。 3、定义 产品:以下指软件产品,即交付给用户的一整套计算机程序、规程及相关的文档和数据。 开发:创作软件产品的所有活动。 供方:指本公司。 需方:指具体项目的需求方,即客户。 质量体系:质量要素、各要素需要达到的目标以及在开发过程中必须采取的措施。 4、质量体系框架 4.1管理职责 4.1.1 供方(及具体的项目开发组)负责以下职责

组织机构 本公司内部专门设立部门质量保证部门,由部门负责人及专门经过培训的人员组成。具体项目开发组,设立质量保证组,或委托公司质量保证部门协助开展工作。 质量保证部门负责以下工作: 建立并维护公司内部的质量保证体系。 对可能导致产品不合格的问题予以识别,采取措施予以避免。 发现并记录产品的质量问题。 提出、采取或推荐问题解决办法。 验证解决办法的实施效果。 对不合格产品的处理、交付过程进行控制,确保最终问题得以纠正。 质量保证部门的评审活动应由与被评审工作无直接责任的人员组成。 制定质量方针和质量目标 确保项目组成员均理解质量方针并能坚持贯彻执行。 公司内部制定一般性的质量方针及对软件产品的质量目标,作为各项目组的参照,各项目组可根据具体客户期望及需求作出具体质量目标及质量承诺,具体质量目标及承诺,特别是超出公司目标的部分,提交给质量保证部门,以便提交给质量保证部门充分理解并协助实施。 《质量方针和质量目标》见附录 管理评审 质量保证部门负责人应每月对质量体系进行评审,主要是对内部质量审核结果的评定,以保证质量体系持续有效,保存评审记录。 4.1.2 需方(客户)应负的职责 在项目中,应向需方(客户)提出具体要求,明确其需要承担的职责,以便相互配合,共同保证项目的顺利实施。 需方应明确指定项目相关负责人,应具有足够的权力处理以下问题: 向供方提出需求 回答供方提出的某些相关问题 认可供方的提案 与供方签订协议并能确保遵守签订的协议 规定验收准则和规程 向供方提供必要的信息,提供有利的环境并解决项目中一些障碍。 4.1.3 共同评审 双方定期地交流,并联合评审软件是否满足已经商定的需求规格说明书。 4.2 质量体系

软件开发管理与质量控制

软件开发管理与质量控制 前言 随着市场经济的进一步完善及全球经济一体化进程加快,企事业单位面临着激烈的市场竞争,企业内部、外部信息交流已成为企业发展、参与市场经济竞争的迫切需要。企业引入先进的信息处理技术,增加信息共享程度,不仅会提高工作效率、降低成本,而且也会提高企业管理的科学性和自动化程度。信息已成为企业生存与发展的基础。 计算机和通信技术的迅速发展,特别是Internet 技术的发展与普及,为企业内部、企业与外部提供了快速、准确可靠的信息交流渠道,信息高速公路改变了企业与企业、企业与客户、企业内部各级决策者与管理人员以及管理人员之间的信息交流方式,有效地促进了企业各部门之间以客户为中心的协作,为企业实现经营方式、管理模式的改变奠定了坚实的基础。信息化企业运作管理系统已成为企事业单位参与全球市场竞争的必备的支持系统。 正是由于这样市场需求与技术发展现状,为我国的IT行业带来了空前发展的机遇,特别是软件行业。软件企业能否抓住这样一个难得的发展机会需要多方面的努力,其中软件开发管理与质量控制在其发展中占有重要的位置。本文试图在这方面进行初浅的分析,可供业内人士参考。 1. 国内软件行业发展概况 1.1 发展现状 在我国,随着信息技术产业的迅速发展及软件版权意识的提高,软件越来越受到了人们的关注与重视,越来越多的人把目光投到了充满风险与利益的软件行业。加之我国风险投资机构的逐渐形成,都将促进软件行业以比以往更快的速度发展。 人们往往把IT(信息技术)产业看作风险行业,原因可能有几个方面, 其一:这是一个飞速发展的行业,说她飞速也并不过分,只有二十几年发展历史的IT行业,在世界500强企业中占有重要的位置,而当今世界上最具财富的也是IT类企业。高额的回报吸引大批企业的介入,一个企业要想在这个行业有所作为没有一个灵活而有利的团队加之一定的规模是难以生存的。 其二:这是一个高科技领域,这个行业的技术的生命周期一般为一年到二年,高速的技术发展势必要求大量的科研开发经费,而科研开发是有风险的,成功与失败只是咫尺之遥。一旦失败,无投资残值可言。

软件开发过程的质量管理体系

软件开发过程的质量管理体系 一、软件产品质量的特点 按照ISO 9126的定义,软件的质量通常可以从以下六个方面去衡量(定义) 。功用性(Functionality),即软件是否满足了客户功能要求;。可靠性(Reliability),即软件是否能够-直在-个稳定的状态上满足可用性;。可用性(Usability),即衡量用户能够使用软件需要多大的努力;。效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源;。可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力;。可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中。 可见,同其它产品相比,软件产品的质量有其明显的特殊性。 第一,很难制定具体的、数量化的产品质量标准,所以没有相应的国际标推、国家标准或行业标淮。对软件产品而言,无法制定诸如"合格率"、"一次通过率"、"PPM"、"寿命"之类的质量目标。每千行的缺陷数量是通用的度量方法,但缺陷的等级、种类、性质、影响不同,不能说每千行缺陷数量小的软件,一定比该数量大的软件质量更好。至于软件的可扩充性、可维护性、可靠性等,也很难量化,不好衡量。软件质量指标的量化手段需要在实践中不断总结。 第二,软件产品质量没有绝对的合格/不合格界限,软件不可能做到"零缺陷",对软件的测试不可能穷尽所有情况,有缺陷的软件仍然可以使用。软件产品的不完善可通过维护和升级问题来解决。 第三,软件产品之间很难进行横向的质量对比,很难说这个产品比那个产品好多少。不同软件之间的质量也无法直接比较,所以没有什么"国际领先"、"国内领先"的提法。 第四,满足了用户需求的软件质量,就是好的软件质量。如果软件在技术上很先进,界面很漂亮,功能也很多,但不是用户所需要的,仍不能算软件质量好。客户的要求需双方确认,而且这种需求一开始可能是不完整、不明确的,随着开发的进行不断调整。 第五,软件的类型不同,软件质量的衡量标准的侧重点也不同。例如,对于实时系统而言,效率(Efficiency)会是衡量软件质量的首要要素,对于一些需要软件使用者(用户)与软件本身进行大量交互的系统,对可用性(Usability)就提出了较高的要求。 二、软件产品质量管理的特点 1.软件质量管理应该贯穿软件开发的全过程,而不仅仅是软件本身 软件质量不仅仅是一些测试数据、统计数据、客户满意度调查回函等等,衡量一个软件质量的好坏,应该首先考虑完成该软件生产的整个过程是否达到了一定质量要求。在软件开

软件开发过程的质量管理

大型软件开发过程的质量管理体系 一、软件产品质量的特点 按照ISO9126的定义,软件的质量通常可以从以下六个方面去衡量(定义)。功用性(Functionality),即软件是否满足了客户功能要求;。可靠性(Reliability),即软件是否能够-直在-个稳定的状态上满足可用性;。可 用性(Usability),即衡量用户能够使用软件需要多大的努力;。效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源;。可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力;。 可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环 境中。 可见,同其它产品相比,软件产品的质量有其明显的特殊性。 第一,很难制定具体的、数量化的产品质量标准,所以没有相应的国际标推、国家标准或行业标淮。对软件产品而言,无法制定诸如"合格率"、"一次通过率"、"PPM"、"寿命"之类的质量目标。每千行的缺陷数量是通用的度量方法,但缺 陷的等级、种类、性质、影响不同,不能说每千行缺陷数量小的软件,一定比 该数量大的软件质量更好。至于软件的可扩充性、可维护性、可靠性等,也很难 量化,不好衡量。软件质量指标的量化手段需要在实践中不断总结。 第二,软件产品质量没有绝对的合格/不合格界限,软件不可能做到"零缺陷",对软件的测试不可能穷尽所有情况,有缺陷的软件仍然可以使用。软件产 品的不完善可通过维护和升级问题来解决。 第三,软件产品之间很难进行横向的质量对比,很难说这个产品比那个产 品好多少。不同软件之间的质量也无法直接比较,所以没有什么"国际领先"、" 国内领先"的提法。 第四,满足了用户需求的软件质量,就是好的软件质量。如果软件在技术上 很先进,界面很漂亮,功能也很多,但不是用户所需要的,仍不能算软件质量好。客户的要求需双方确认,而且这种需求一开始可能是不完整、不明确的,随着开 发的进行不断调整。 第五,软件的类型不同,软件质量的衡量标准的侧重点也不同。例如,对 于实时系统而言,效率(Efficiency)会是衡量软件质量的首要要素,对于一 些需要软件使用者(用户)与软件本身进行大量交互的系统,对可用性(Usability)就提出了较高的要求。 二、软件产品质量管理的特点

软件开发各阶段的质量管理

软件开发各阶段的质量管理 提到软件开发,我们的脑海里总是浮现出这样的情景:开发组的每一位成员都在辛苦的工作,有的加班加点,甚至通宵达旦是常有的事,虽然项目经理修改了一次又一次的进度计划,而实际的开发情况却总是很令人担忧,以至于每次向领导汇报工作的时候总是觉得以前制定的计划没有很好的完成,总是觉得人力资源不够,总是觉得我们没有太多的时间。等到代码终于开发完成了,测试进度却又非常令人担忧,每一个小BUG都要花很长的时间去查找,改了某一个小错误却又引起了很多错误,结果产品发布遥遥无期,而项目组里的每一位成员已经筋疲力尽。 怎样摆脱这样的困境呢?为何软件开发项目管理这么困难呢?为何我们做的计划总是不能按时完成呢?为何软件开发不能像硬件开发那样可以控制呢?原因在于软件开发完全靠人的大脑思维产生出产品,而每个人的大脑思维是不一样的,因此在软件开发过程中有太多不确定的、可以变化的因素,我们怎样把握住这些变化因素呢?就像我们题目所说的一样,软件开各阶段的成果质量管理,如果我们能够很好的控制软件生命周期每一个阶段的质量,也就很好的控制了整个软件开发的整个过程。 软件产品的质量是个很大的概念,因为软件产品完全是人们大脑思维的产物,就是将大脑里无形的看不见摸不着的思维变成一个可以看到的,可以解决实际问题的一组界面或者组件。这样的一个复杂的过程,质量应该如何保证呢?有人想到了ISO9000、CMM,也有人很反对,说应该用敏捷开发。其实,不管用什么样的开发过程,关键是找到这些过程的真谛,有些人说,ISO和CMM到中国来就变了味了,为什么变味儿了呢?其实我们只学到了该做什么,却不知道怎样去做,为什么要这样做?大家都知道做软件开发需要写需求规格说明书和设计文档,为什么要写,文档的重要性有多高?没有资深开发和管理经验的人员可能很难理解其重要性,如果只是简单的形式上去写一篇这样的文档,对后面的编码和测试没有实际的指导作用,甚至起了“ 误导”作用,同样会引起大量返工,那么这些文档除了负担之外就没有其他用途了,要知道写这些文档是需要消耗项目组资源的(进度、成本...)。 很多人又想到了测试,觉得是我们测试的力度不够,所以我们产品质量不过关,其实,软件开发的质量保证从开发最初就应该开始了,如果到了测试阶段才重视就已经晚了。软件产品开发过程,不管采用瀑布式还是迭代式,都离不开需求、设计、编码、测试这几个阶段,在迭代式开发中,这几个阶段也是周期性出现的。怎样把握好每个阶段的质量,确实不是一件容易的事,本期重点介绍一下需求、设计和编码阶段的成果质量,当然以后会共享一些过程质量方面的知识。 1、需求 我们知道人与人的交流总是会存在一些误会,同样一句话,心情不好与心情好的时候听起来的感觉可能会截然相反,正是因为人们之间存在着理解上的偏差,在描述需求的语言上就应该注意尽量避免歧义的产生。如果对UML比较熟悉的话,需求分析可以利用UML工具进行,这样可以减少一些自然语言引起的歧义,但是UML可能与用户沟通起来有一些障碍,因为并不是所有的用户都了解UML各种图形的意思。除了工具之外,我们可以从以下几个方面来保证需求描述的质量。

软件开发质量管理和控制措施

为了开发出符合质量要求的软件产品,在软件开发生存期过程中始终贯彻着质量管理和控制。 公司从技术、方法体系、社会因数等三个层次对软件质量进行管理和控制。 其中,技术层次方面又细化为对数据质量、编程质量、文档质量三个方面的管理和控制。利用人工比对、程序比对、统计分析等手段来保证数据质量的完整性全面性等。通过检查源码的逻辑、属性、对象命名标准、语言代码布局等内容,验证和确认代码的编译、链接、集成和构建,提高编程质量。通过多种技术手段,如:黑盒测试、灰盒测试、白盒测试、编译检查、编程规范、编程逻辑、编程优化等来确保软件程序代码的质量。同时,针对开发过程中产生的各种文档,努力做到文档规范,各种文档语法、文档语义、文档逻辑要求严格按照规范编写,进一步通过文档美学、文档优化等方法,确保软件需求的准确完整性、设计的合理性、过程的可追溯性,从而对软件系统的质量控制起到决定性作用。 在方法体系方面通过措施质量管理、项目质量管理、过程质量管理等方法来实施对软件研发过程的管理和控制,通过质量检查、质量保证、预防不合格品等措施,通过优越的设计质量来满足客户需要,并从供应商到客户形成一个优化的管理流程。将软件开发按照项目的形式来完成,通过组织资源、组建团队、设定目标、确定范围、确定优先级、管理风险、建立沟通机制等内容,来完成相关项目。在软件生存周期的各个过程(即基本生存周期过程、支持生存周期过程、组织生存周期过程)进行管理,通过保证每个环节的工作质量,来保证最终的软件质量。 社会因素主要是通过塑造良好的企业形象提高自身核心竞争力。同时建立了完善的质量制度,包括质量管理体系、与质量相关的配套管理、教育、激励制度。在长期的质量管理中形成的具有本企业特色的管理思想和精神理念。

软件开发中软件质量控制研究

龙源期刊网 https://www.wendangku.net/doc/0b3740799.html, 软件开发中软件质量控制研究 作者:袁春霞王改梅徐莎莎 来源:《考试与评价》2016年第09期 【摘要】随着现代科学技术发展,计算机技术的应用越来越广泛,设备系统中软件成分 不断增加,软件质量以及软件质量控制日益成为人们关注的焦点。本文首先阐述了软件的特点;其次分析了软件开发中存在的主要问题;最后研究了在软件开发的各个阶段对的软件质量控制和管理手段。 【关键词】设备系统软件软件安全开发质量管理软件质量 随着信息化建设的持续深入发展,目前设备系统软件无论其规模还是数量都得到空前增长,软件在设备系统中的地位和重要性越发突出,成为设备系统质量和功能的关键因素。因此,加强设备系统软件的质量控制,提高软件的质量,对全面提升设备系统的质量有着重要的意义。 一、软件的特点 软件是与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据,它是程序加文档的集合体。软件一般具有以下的特点:(1)软件是无形的,没有物理形态,只能通过运行状况来了解功能、特性和质量。(2)软件渗透了大量的脑力劳动,人的逻辑思维、智能活动和技术水平是软件产品的关键。(3)软件不会像硬件一样老化磨损,但存在缺陷维护和技术更新。(4)软件的开发和运行必须依赖于特定的计算机系统环境,对于硬件有依赖性。(5)软件具有可复用性,软件开发出来很容易被复制,从而形成多个副本。 同时设备系统软件因为规模巨大管理困难,同时还具有高互操作性。 二、软件在质量方面存在的主要问题 由于设备系统软件在整个系统中所起的作用,使软件已不再是硬件的附属物,而成为与硬件并列的、独立的技术状态管理项目。但是,由于受多种因素的影响和制约,软件的质量和可靠性问题一直没有引起人们足够的重视。⑴透明度差。由于软件大多由开发者自己设计、自己编程、自己测试、自己维护,造成软件的可读性较差,因此软件出现故障只能由开发者自己去维护,其他人难以介入。⑵没有严格按软件的配置管理对软件质量进行控制。由于未对软件的更改标识、更改控制、更改检查等进行严格控制,从而造成软件的管理混乱,产品的软件错误较多。⑶软件通用性差。同类型系统之间的软件通用性和继承性比较差,甚至软件模块的标准化系数不高,造成经费和时间的浪费以及可靠性的降低。⑷软件测试不够。因为缺乏测试软件和测试工具,并且测试标准、规范和管理制度不健全,使得软件的测试不充分。 三、软件开发过程中对软件质量控制管理

软件代码质量控制

也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长。在我发表“如何提高代码质量”的这一系统文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量。我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题: 软件项目普遍存在的问题 1)新手。任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学 毕业的学生。这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯,所以编写代码质量较差,问题很多。他们常常成为项目组的“鸡肋”,用多了项目质量无法得到保证,不用则又人手不够。 2)人员变动。一个维护时间稍长一点儿的软件项目,人员变动是在所难免的。老员工被调动到其它项目去了,由新员工来接替他们的工作。在我的项目组中,人员调动达到了90%,唯一没有调走的就是我自己。新员工在接替老员工进行代码维护,甚至继续进行新的开发的时,由于对原有代码以及设计思路理解的偏差,也会出现大量的低劣代码。 3)不规范的代码编写。即使除去以上两个问题的影响,项目组成员编写的 代码同样会出现问题。在项目开发之初,我们往往会制定一个代码编写的规范,但在项目开发过程中,许多成员往往会忽视这些代码规范而进行随意的编写。随意地代码编写会降低代码的可读性、可维护性和易变更性。那么,我们应当采用什么样的管理措施,保证代码的规范,提高代码的质量呢? 以上问题,也是我在项目开发中不断摸索和思考的问题,而一些有经验的项目经理给出了他们的解决之道,那就是“代码复查”。 什么是代码复查 代码复查(Code Review),又叫“代码审查”,其基本思想就是,在开发人员编写完自己的代码后,由其他人来复查他写的代码,从而有效地发现代码中存在的缺陷。代码复查的一个基本理论就是,当我们越早发现代码存在的缺陷,我们解决缺陷的代价就越低。代码复查往往分成以下一个方面进行审查:1)代码风格。在项目开发之初,我们往往会制定一个代码编写的规范,实 际上,这个代码规范就包含了整个项目组的代码风格。由于软件开发人员的设计习惯不同,如果不统一代码风格,一个项目中的代码将五花八门,如变量和常量的命名、接口与实现类的注释、何时回车、怎样缩进等等。一个五花八门的设计风格,必将为日后的维护与改进带来困难。我们通过代码复查,一方面督促开发人员按照规范编写代码,另一方面也使开发人员自身形成良好的编程习惯。代码

相关文档