
(提纲)
信息产业部电子六所 戴 彤
1概述………………………………………1
1.1软件…………………………………1
l.2软件产品……………………………1
1.3软件质量……………………………1
1.4软件产品的特点……………………l
1.5软件产品的质量特性………………1
2软件生存期过程…………………………1
3媒体控制…………………………………3
4文档资料控制…………………………3
5版本管理………………………………3
6环境、工具和技术……………………3
7有关软件的标准和法规………………4
8软件企业的审核………………………4
8.1软件开发过程是一个“特殊过程”4
8.2标准条款在软件企业的具体体现…4
9CMM简介………………………………6
l 概述
1.1软件:
特指计算机软件。
软件的提供形式可能有:软盘、光盘、磁带、半导体存贮器、硬盘等。
1.2软件产品:计算机程序、以及相关的文档和数据。
1.3软件质量:软件产品满足明确或隐含需求能力的一系列特性的总和
1.4软件产品的特点
·软件的质量缺陷不可能完全避免
·技术上解决软件质量的效果有限
·软件企业管理者要在市场(用户)需求和软件成熟性之间进行权衡。
1.5软件产品的质量特性
·功能性:就是软件所实现的功能是否满足顾客要求(明示的和隐含的)。
·可靠性:包括:成熟性、容错性和易恢复性。
软件的可靠性与硬件不同。从理论上说,软件不会“老化”。
·易用性:包括:易理解性、易学性和易操作性,还包括友好的用户界面。
·效率:包括:时间特性、资源特性。
·维护性:易分析性、易改变性、稳定性和易测试性。
·可移植性:包括:适应性、易安装性、易替换性
2软件生存期过程
1)确定需求:
确定外部用户需求(包括上级或公司确定的需求):
·上级下达的软件开发课题;
·本公司根据市场需要确定的开发课题;
·用户合同要求的软件开发任务。
输出有:
·可行性分析报告;
·合同及评审记录。
2)开发策划
内容包括:
·确定开发目标; 点和确认点)及其实施的责任
·确定项目开发的技术路线(开发 人、实施方式等;
的出发基线、对现有产品的复 ·设计项目开发进度;
用、委托开发等); ·确定开发人员并分配职责;
·确定应遵循的标准、法律和法 ·提出开发所需资源(软件、硬件
规; 开发环境及工具软件、设备、
·选任开发项目经理; 资金等)要求并予以落实;
·划分开发阶段; ·制定配置管理计划和质量保证
·确定各阶段的输入和输出文件; 计划。
·确定质量控制点(评审点、验证
输出有:
·策划报告; ·配置管理计划;
·开发项目实施计划; ·质量保证计划。
等
3)需求分析
·确定设计输入;
·编制内部需求规格(说明)书。
4)概要设计;
包括:
·总体方案设计 ·现有产品软件的选用
·逻辑框图; ·边界(约束)条件的设计
·接口及通讯协议选用 ·运行环境设计
等。
输出为“概要设计说明书”
5)详细设计;
包括:
·算法设计 ·人机界面设计
·数据格式设计 ·测试用例设计
·实现流程设计 ·操作设计
等。
输出为:
·“详细设计说明书” ·安装手册(初稿)
·软件组装计划 ·使用说明书(初稿)
·测试计划及测试用例 ·产品标准(初稿)
6)编码与调试:
根据待开发软件的规模、控制点及人员安排,可细分为多个小阶段
此阶段还包括部分软件模块的局部测试、集成与联调
输出为:
·软件(源代码、目标代码、可执行代码及相关数据文件)
·文档(帮助文件等)
7)软件集成、联调:
应按计划对所开发的软件模块进行组装并与硬件一起联调。
根据需要,规定应填写的调试记录。
8)测试;
按测试发生的顺序划分,有:模块测试、单元测试、组装测试、集成测试、系统测试、出厂测试、验收 测试等。
另外,还有些与顺序无关的测试。包括:联合测试、回归测试、专项测试等。
应根据开发规模.尽可能进行测试。
为了保证测试的可信性,被测试的软件应以源代码的形式提交,同时说明生成可执行代码的环境和方法。由测试人员生成可执行代码,进行测试。
9)内部确认:对测试结果、文档的齐套性、正确性进行评审,达到确认
10)复制、交付、安装:
·软盘复制、光盘刻录
·交付时的版本标识和登记:
·安装(派技术人员安装或由用户自行安装)
11)试运行、用户验收:以用户验收的方式进行最终确认
12)运行、维护:针对运行中出现的问题。按设计更改程序进行控制
13)退役。
3媒体控制
1) 对软件存放介质(媒体)的要求和规定;
2) 软件的复制(软件的生产过程);
3) 媒体的标识:规则、执行者;
4) 媒体的贮存(防潮、防火、防磁、防静电、防病毒);
5) 媒体的包装、运输。
4文档资料控制
1) 各开发阶段应形成的文档.对其拟、审、批的规定;
2) 编制文档资料所依据的标准和规范;
3) 开发过程中应形成的质量记录;
4) 文档与软件之间的一致性检查;
5) 文档资料的归档与发放。
5版本管理
一般有开发过程中的版本管理和交付软件产品的版本管理两种。
可按ISO9000-3要求的配置管理执行。
管理对象包括:软件、文档和为该产品开发的工具软件。
具体实现时.可考虑采用管理软件。安排一名配置管理人员,配备一台计算机(或服务器).开设开发库、受控库和产品库.规定每个库的访问权限(禁止、只读和读写).以达到对入库和出库软件的控制。
开发库存放正在开发(编写)或调试(修改)、自测的软件和文档。
受控库存放开发各阶段测试通过的软件、文档和工具软件的版本并给以标识。转入下一阶段时.从此处发放用作下一阶段开始工作的初始版本。
产品库存放可交付及已交付软件、文档及支持文件的版本.
各库内所存放的软件和文档,应定期备份,以防止开发成果的意外丢失(文件重写、介质损坏、意外事故、非法访问病毒,黑客,故意破坏等)并保证可追溯性.
6环境、工具和技术
一个软件开发项目,应规定其所需要的开发环境和各种工具软件,使参与该项工作的所有人遵守执行。
1)开发、测试所需的硬件环境;
2)测试所需的硬件环境(包括模拟用户环境所必要的输入、输出设备);
3)开发平台软件(操作系统、编程语言、编译环境、调试工具等);
4)管理软件;
5)诊断软件;
6)测试软件;
7)辅助性软件(防病毒软件等)。
7有关软件的标准和法规
目前,有关软件的各种国家或行业标准都是推荐标准。而且,由于软件技术发展极快.各类标准往往不能适应软件开发的现状。绝大部分企业都是参照执行。
与软件有关的法规有:《软件产品管理办法》。《计算机软件保护条例》《北京市软件开发生产企业和软件产品认证及管理办法(试行)》,《计算机信息系统集成资质管理办法(试行)》《北京市计算机信息系统集成资质管理暂行办法》等。
有关标准见附表。
| 序号 | 标准名称(中) | 序号 | 标准名称(中) |
| l | 信息技术软件生存周期过程 | l2 | 计算机软件著作权登记文件格式 |
| 2 | 软件过程评估 | l3 | 计算机软件产品开发文件编制指南 |
| 3 | 软件工程术语 | l4 | 计算机软件需求说明编制指南 |
| 4 | 计算机软件质量保证计划规范 | l5 | 计算机软件测试文件编制规范 |
| 5 | 计算机软件配置管理计划规范 | l6 | 软件文档管理指南 |
| 6 | 计算机软件分类与代码 | l7 | 软件支持环境 |
| 7 | 软件维护指南 | l8 | 信息技术软件产品评价质量特性及其使用指南 |
| 8 | 计算机软件可靠性和可维护性 | l9 | 软件开发与文档编制 |
| 9 | 计算机软件单元测试 | 20 | 计算机过程控制软件开发规程 |
| l0 | 软件工程标准分类法 | 2l | 软件产品设计文件的组成和编制 |
| ll | 质量管理和质量保证标准第3部分: |
8.1软件开发过程是一个“特殊过程”
对软件企业的审核应循软件生存期过程来进行。
由于软件测试的不完善性.使得其质量特性难以进行完全的验证,所以说软件开发过程本身就是一个特殊过程。企业应按特殊过程的要求实施控制。即在开发工作之初,通过周密的策划以保证:
·开发人员应具备一定的资格或能力;
·开发环境(软件和硬件平台)是适用的;
·编制足够的控制程序和工作规范(例如开发过程控制程序、变量命名规则、代码书写规范、注释规范等);
·编制测试用例并在使用前对用例本身进行验证;
·编制各阶段测试计划,明确规定测试方法以及测试结果的记录要求、评价方式和接收准则;
·实施配置管理,控制软件产品(代码和文档)版本和更改过程。
需要说明的是:标准中所说的“特殊过程”,主要还是针对硬件的生产过程而言的。这里其所以把软件开发过程作为“特殊过程”,则是相对于其他产品的开发过程而言。
8.2 标准条款在软件企业的具体体现
软件生存周期的第1~9阶段,以及交付后的软件更改,均应按IS09001—2000版标准的7.3进行审核。而第10~12阶段则应按IS09001.2000版标准的7.5.1进行审核。
标准第7、8章条款要求与软件企业主要过程的关系见下表(未标出特殊性的条款表示无特殊要求)。
9 CMM简介
CMM是美国软件工程研究所于80年代末推出的一种软件能力的评估方法。中文称为:“软件能力成熟度模型”。CMM是一种分级的评估方法,它把软件过程从无序到有序的进化过程分成5个阶段,形成—个逐层提高的平台。前一级的过程能力将成为达到下一级平台的基础。这5个级别的名称是:
l级:初始级, 2级:可重复级, 3级:已定义级, 4级:定量管理级, 5级:优化级
CMM1.1与IS09001的关系
· IS09001是合格评定,而CMM则是等级评估;
· IS09001是通用的,而CMM是专门针对软件的;
· 通过IS09001认证。大约相当于达到CMM2.5级(介于2级与3级之间);
· 但,通过了IS09001认证的软件企业,未必能达到CMM2级的要求;
· 通过了CMM3级评估的软件企业,未必一定会满足IS09001的全部要求。
戴彤个人网址:http://dai_tong.home.chinaren.com, 有标准和一些法规文件,欢迎访问并批评指正。
| 条款 | 标题 | 软件的特殊性 |
| 7 | 产品实现 | |
| 7.1 | 产品实现的策划 | |
| 7.2 | 与顾客有关的过程 | |
| 7.2.1 | 与产品有关的要求的确定 | 1) 应尽可能详尽的了解顾客的要求 2)顾客的潜在要求 3)法律法规要求 4) 产品安全性要求 |
| 7.2.2 | 与产品有关的要求的评审 | 1) 顾客履行合同的的能力、义务和资源; 2) 名词、术语的准确性; 3) 接收准则; 4) 顾客提供所需资料的责任; 5) 顾客对开发过程中评审、验证和确认的参与程度 6) 验收后发现问题的处理; 7) 产品安全使用的约定; 8) 产品知识产权方面的约定; 9) 产品升级的承诺。 |
| 7.2.3 | 顾客沟通 | 1) 与顾客建立经常性的联系渠道.或双方指定固定的联系人 2)在开发的每一阶段完成后,都征求顾客意见,以免问题积累 3)及时向顾客通报开发进度 |
| 7.3 | 设计和开发 | |
| 7.3.1 | 设计和开发策划 | 1)应制定详细的设计开发计划 2)对需要测试的部分,应明确责任人和测试方法并规定通过条件 |
| 7.3.2 | 设计和开发输入 | |
| 7.3.3 | 设计和开发输出 | |
| 7.3.4 | 设计和开发评审 | 1)尽可能邀请顾客参加 |
| 7.3.5 | 设计和开发验证 | 1)软件各阶段的测试即是验证 2第三方的评测可根据测试目的和内容列入验证或确认 |
| 7.3.6 | 设计和开发确认 | 1) 模拟实际使用环境运行,对照合同或任务书的要求,对运行情况作出评价; 2) 文件齐全性,与软件的符合性检查; 3) 内部确认、请专家评审、请第三方评测、与顾客共同验收等 |
| 7.3.7 | 设计和开发更改的控制 | 1) 按配置管理进行控制 |
| 7.4 | 采购 | |
| 7.4.1 | 采购过程 | 1) 从正规软件供应商中选评合格供方 2) 软件的外包(委托)开发(单位或个人) 3) 与软件提供者保持经常的联系,以保证得到及时的服务 |
| 7.4.2 | 采购信息 | l) 对外购软件,应对其适用性尽可能详细了解,必要时可要求供方进行实用演示;确定软件的版本号和序列号 2)对外包或委托开发,应要求明确的合同,规定功能、性能、文档、服务、验收准则以及交货期 |
| 7.4.3 | 采购产品的验证 | 1) 软件产品的验证是极其困难的。 2)一般可通过“适用”的方法,并与供方一起验证 |
| 条款 | 标题 | 软件的特殊性 |
| 7.5 | 生产和服务提供 | |
| 7.5.1 | 生产和服务提供的控制 | 1) 软件的复制 2) 交付的形式(是否需要派人安装、设置、现场交接及共同验收) 3) 软件的安装(允许的安装次数或口令) 4) 对顾客的培训(包括售前培训和演示) 5) 验收后的服务(问题解答、故障排除、升级服务、文档更新等) |
| 7.5.2 | 生产和服务提供过程的确认 | 1) 现场紧急事故(死机、数据丢失等)处理 |
| 7.5.3 | 标识和可追溯性 | 1) 软件和文档的版本标识(规则、方法、执行者) 2)建立开放库、受控库和产品库。标识和隔离 3)设置配置管理员,规定访问权限 4)定期备份 |
| 7.5.4 | 顾客财产 | 1)属于顾客的软件(开发和运行平台等) 2)顾客提的数据文件(测试或运行数据) 3)顾客提供的接口资料 4)硬件(开发和运行平台、测试设备等) 5)顾客的专利和其他知识产权 |
| 7.5.5 | 产品防护 | 1) 软件产品的损坏意味着代码的改变,不一定是物理损坏; 2) 受病毒感染或被黑客攻破的软件应看作受损; 3) 软件不会“老化”,但介质可能会损坏; 4) 软件的存贮应进行控制,并定期备份; 5) 软件介质的封装可能包括压缩、加密等; 6) 软件一般以介质的形式提交,应考虑包装、运输要求(防磁、防霉、防震、防火等),通过网络传送时应考虑网络的安全性. |
| 7.6 | 监视和测量装置的控制 | 1) 测试用的软件工具 2) 测试用例 3) 自编或从外部得到的诊断软件 4) 防火墙软件 |
| 8 | 测量、分析和改进 | |
| 8.1 | 总则 | |
| 8.2 | 监视和测量 | |
| 8.2.1 | 顾客满意 | |
| 8.2.2 | 内部审核 | |
| 8.2.3 | 过程的监视和测量 | l) 软件开发过程主要通过各阶段的评审、验证的方式进行 |
| 8.2.4 | 产品的监视和测量 | 1) 软件产品通常以测试或演示的方式进行监测 2) 软件介质复制的正确性可通过与原文件比较、与母盘比较或检查校验码的方式监测 |
| 8.3 | 不合格品控制 | 1) 软件除非开发全面失败,一般不会出现不合格品。事实上,很难说某一个软件不存在BUG。 2 )使用“不合格项”表示。例如测试时发现的BUG以及在使用中出现的非预期现象等 3) 开发人员习惯于自作主张对发现的BUG进行修改,而实际上应对重要的BUG进行分析、评审并提出处理措施,经过批准,再予以实施,并进行验证。 |
| 条款 | 标题 | 软件的特殊性 |
| 8.4 | 数据分析 | l) 软件产品是单件生产,很难使用传统制造业所采用的数据分析方法寻找产品存在的问题。 2) 可针对下述软件特性进行分析: ·可测试性; ·过程成熟度; ·易用性; ·过程输出中的缺陷类型和数目; ·可靠性; ·缺陷排除效率; ·维护性; ·里程碑偏离度. ·可用性; 数据的来源可能有: ·测试结果; ·服务记录; ·评审结论; ·顾客意见. ·开发人员工作记录; |
| 8.5 | 改进 | |
| 8.5.1 | 持续改进 | 1)软件开发人员往往不愿意在其他开发人员所做工作的基础上继续开发,这多少失去了持续改进的机会 |
| 8.5.2 | 纠正措施 | |
| 8.5.3 | 预防措施 |
