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