软件开发与文档编制管理程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件开发与文档编制管理程序湖南运算机股份治理标准
QG/PLA 07.02-2002 软件开发和文档编制治理程序
2005-03-25公布 2005-03-28实施
湖南运算机股份公布
湖南运算机股份治理标准
软件开发和文档编制程序
l 范畴
本标准规定了软件产品开发研制过程质量职责及操纵要求。

本标准适用于本公司研制的运算机各类型软件的治理。

2 引用标准
GB8567—88 运算机软件产品开发文件编制指南
3 定义
不需用。

4 职责
4.1 设计部门负责人批准软件开发项目任务书。

4.2 技术进展部负责组织对公司下达的软件项目进行各时期的评审。

4.3 物流部经理负责组织项目的最终检测。

4.4 项目负责人负责组织对软件项目的各时期进行考核、质量操纵、组织接口
和谐文档的公布批准及文档更换审批。

4.5 项目负责人(软件负责人)负责:
a、制定软件课题开发打算和进度安排及资源需求;
b、进行总体设计;
c、提供时期评审资料;
d、和谐技术接口。

4.6 标准档案室治理员负责文档的存贮、保管和处理。

5 工作程序与要求
5.1 公司下达的软件项目立项后,由技术进展部下达[新产品研制任务书]。

5.2 软件项目
5.2.1 公司立项项目由技术进展部负责组织评审。

a、项目负责人〔软件负责人〕于评审前3天填写[评审申请表],并备齐评
审资料,交技术进展部。

b、技术进展部审批判审申请表,并将有关资料提早3-5天下发评审组成员
以供分工批阅,
c、评审组长主持评审会,并填写[评审报告];评审终止,技术进展部负责
收回评审资料交项目组存档。

5.2.2 凡上级下达的项目,假设上级部门〔或系统组织单位〕对评审另有要求
时,那么按其执行;否那么,按5.2.1条执行。

5.2.4 假设项目既有软件开发,又有硬件开发,其评审是分开〔软件、硬件〕
依旧合并进行,由设计部门负责人决定。

5.3 软件项目的检测
5. 3. 1 项目负责人负责组织完成下述工作。

a、测试时期的检测;
b、软件课题的系统检测;
c、软件版本存档前的检测。

对以上测试发觉的问题,由项目组填写[软件测试修改单],经分析缘故和采取纠正措施及回来测试后,由项目负责人审批,方可列入正式版本。

5. 3. 2 物流部经理负责组织软件版本存档前的最终检测,并在[版本送检〔启
用〕通知单]上签署检测结果。

5. 4 设计部门负责人批准软件项目开发打算。

5.5 设计部门负责人审批各项目负责人资格,并负责:
a、考核各时期的进度完成情形;
b、及时和谐开发中组织接口及打算修改;
c、操纵项目开发各时期的设计输入、设计输出、技术状态和各时期的验
证,并对软件的正确性、文档的完整性负责。

5.6 项目负责人(软件负责人)负责组织:
a、制定项目开发打算,假设软件、硬件相结合的,其打算也可合并制定。

开发打算须明确划分各开发时期,并可按开发时期进行自主开发;
b、总体设计;
c、提供各时期文档(包括评审文档),并于鉴定后一周内存入标准档案室;
d、组织软件(版本)检测,并对检测结果负责;
e、和谐技术接口;
f、定期填报工作进度,假设进度打算需修改,应在报表中申述〔进度报表
既可按月也可按项目分时期填报〕。

5.7 软件的交付治理
按[版本启用/存档细那么]执行。

5.8 软件版本治理
5.8.1 应顾客需要进行软件版本升级或修订时,设计部门负责人确定项目负责
人,组织软件人员实施。

5.8.2 软件负责人发出[版本送检〔启用〕通知单]升级的版本由物流部组织检
测合格后,由软件负责人将新版本存入标准档案室;并在[版本档案]中详细记录升级内容,存入项目档案中。

5.8.3 技术人员在为顾客服务的现场,遇到需要版本修订时,应先电告项目负
责人,经认可后,回厂填写[用户服务档案],必要时项目负责人应组织评审和检测。

5.9 文档要求
5.9.1 各时期需具备的差不多文档及文档格式〔见附录〕
5.9.2 鉴定需具备的文档参见附录。

6 支持文件
7 记录
7.1 质量记录
7.1.1 JL/PLA10.05-2002 版本启用通知单
7.1.2 JL/PLA14.00-2002 用户服务档案
7.1.3 JL/PLA07.06-2002 软件测试修改单
以上记录由标准档案室储存三年。

7.2 工作记录
7.2.3 版本档案
以上记录由标准档案室储存三年。

7.3 附录
附录一:软件产品文件表
附录二:版本启用/存档实施细那么
附录三:概要设计说明书
附录四:需求说明书
附录五:软件开发规范
附录六:程序设计假设干规定
附录一:
软件产品文件表
注:●表示必须编制的文件;○表示可依照产品的需要制定。

湖南运算机股份
用户服务档案
JL/PLA14.00-2002
湖南运算机股份
版本档案
〔工作记录〕
编号:
软件测试修改单
JL/PLA07.06-2002
附录二:
版本启用/存档实施细那么
为了规范版本的治理,减少版本的数量,文档资料的治理和储存,文档的及时更新,以及便于电子化的治理和规范工作流程,特制定该实施细那么。

一、工作流程和任务:
说明:
1. 内部测试:
进行白盒测试,要求对源程序进行检查,分析出可能阻碍的模块,并对相应的模块进行测试。

2. 外部测试:
进行黑盒测试,对整个系统进行测试。

3.
检查文件的完整性和正确性。

4. 资料审查:
检查文件的完整性和格式的正确性。

5.
审查该版本是否能够发行。

委派他人对提交的文档进行抽查,验证其正确性和完备性。

6. 编号、录入数据、刻盘:
光盘的卷标为8位数字的序列号,在根名目下建立以版本编号为名称的子名目,所有提交的文档资料存放在该子名目中。

版 本 启 用 通 知 单
JL/PLA10.05-2002
说明:
附录三:
概要设计说明书
概述
介绍该项目的名称、任务提出者、提出的背景,应用的目标。

功能和性能
对比软件需求说明书,来说明系统是如何满足功能和性能需求的。

开发工具和平台
描述采纳何种操作系统平台、何种编程语言、开发工具进行开发。

总体结构设计
用图表和文字方式说明该系统由几个模块构成,各模块的功能、各模块之间的关系。

用数据流图描述出数据在该系统中的流淌过程,在各模块输入前和输出后数据的变换。

用程序流程图描述出要紧功能的实现方式。

接口设计
外部接口
说明该系统同外部所有的接口安排,包括硬件接口、软件接口、用户接口。

内部接口
说明该系统内部各个模块之间的接口安排。

系统数据结构设计
逻辑数据结构设计
给出该系统内所使用的每个数据项、记录、文件的标识、定义、长度
以及他们之间的相互关系。

物理数据结构设计
给出系统中的数据的储备要求和访问方式、和储备介质。

系统出错处理设计
出错信息
用表格形式列出每种可能的出错或故障情形显现时,系统输出信息的
形式、含义及处理方法。

补救措施
说明故障显现后可能采取的变通措施,如后备技术、降效技术、复原
及再启动技术等。

系统爱护设计
说明为了系统爱护方便而在程序内部设计中作出的安排,如在程序中专门安排用于系统的检查与爱护的检测点和专用模块。

关键的技术和难点
描述开发该系统采纳的关键技术和难点,对关键技术和难点作出风险评估,要求作出相应的解决计策,或提出其他的解决方案。

交付方式
交付的内容
全部的设计文件、发行版本、源程序
交付的媒体介质
纸质文件、电子文件、CD、FLASH、软盘
附录四:
需求说明书
简介
介绍该项目的名称、任务提出者、提出的背景,应用的目标
详细需求
环境需求
硬件环境
●描述运行该软件需要的设备能力
●处理器的速度、数量和内存容量
●储备媒体的容量
●输入、输出设备的种类和数量
●通讯网络
软件环境
运行该软件需要的操作系统、数据库软件、以及相应的其他应用软件人员环境
操作该软件对人员的要求,人员的素养、数量
功能需求
对系统中每一个功能,要求用图示或文字详细描述:
概述——表达功能名称、目标和作用
输入——详述该功能输入的信息
处理——描述该功能作什么,如何对输入信息进行加工并转换成输出
信息
输出——详述该功能输出的信息
内部生成数据——列出用户所关怀的内部生成数据
性能需求
定量的描述该软件系统应满足的具体性能需求
精度
说明该软件系统的精度要求,如:
●数据的精度要求
●数字运算的精度要求
●数据转送的误码率要求
时刻特性
说明该软件系统的时刻要求,如:
●解题时刻
●询问和更新数据文件的响应时刻
●系统各项功能的顺序关系
●由于输入类型的不同和操作方式的变化而引起的优先顺序
●在峰值负载期,与所规定的响应时刻的承诺偏离范畴
灵活性
说明当需求发生某些变化时该软件系统的适应能力,指出为适应
这些变化而需要设计的软件成分和过程
输入和输出
描述输入和输出的每个数据元素,对每个数据元素可列出如下信息:
●数据元素名
●同义名
●定义
●格式
●值域
●度量单位
●数据项名、缩写词和代码
关于输入数据,还要说明时刻要求、优先顺序和输入媒体。

关于输
出数据,亦要说明时刻要求、优先顺序和输出形式,并要描述对专
门输入输出项的保密要求和措施。

数据库特性
详细描述数据库中要用到的每个数据元素,对每个数据元素可列出
如下信息:
●数据元素名
●同义名
●定义
●格式
●值域
●度量单位
●数据项名、缩写词和代码
要依照记录的规模和数量来估量数据储备要求,并要推测数据的增
长率。

故障处理
列出在该系统显现故障时,为满足信息处理要求而可能采取的技术
措施,如:
●后备技术
●低效技术
●再启动技术
接口
说明该软件系统与其他系统和子系统的接口
软件接口和硬件接口
安全和保密
说明该软件系统在安全和保密方面的要求
交付方式
交付的内容
全部的设计文件、发行版本、源程序
交付的媒体介质
纸质文件、电子文件、CD、FLASH、软盘
附录五:
软件开发规范
软件开发的流程和需要的文档资料同项目开发类似,在第章中有详细的描述,在这不再作介绍了,仅介绍与软件紧密相关的常用文档资料的格式模板,以及编程设计中的假设干规定
常用文档的格式模板
流程图
概述
国家标准GB一五26-89«信息处理—数据流程图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约定»规定了信息处理文件使用的各种符号及其使用的具体约定。

要求采纳VISIO或SMARTDRAW软件绘制流程图。

流程图所用符号及其简要说明
使用约定
图的布局
流程图所用的符号应该平均分布,连线保持合理的长度,并尽量少使用长线。

符号标志符
这是给予某个符号的标志符,其作用是便于其他文件中引用该符号。

符号标志符要写在符号的左上角。

符号描述符
它用于交叉引用,表达一个符号的专门用途,或者进一步明白得某个符号的功能。

描述符要写在符号的右上角。

连接的约定
●标准流向
从左至右,自上而下
●箭头的使用
可随时在流线上使用箭头指示方向,当流程不是标准流向时,一定要采纳箭头来指示方向。

●流线的交叉
应当尽量幸免流线的交叉,即使显现,交叉的流线之间没有任何逻辑关系,不对流向产生阻碍。

●流线的聚拢
两根或更多的进入线能够聚拢为一根输出线,各连接点应相互错开以提高清晰度,并在必要时使用箭头表示流向。

●互连
一样情形下,流线应从符号的左边或顶端进入,从右边或底端离开。

它们都应对准符号的中心。

●多出口
一个符号如有多个出口,应按下述方式表示,在每个出口都应标有适当的条件值,以反映它所表示的逻辑路径。

数据结构
数据字典
数据字典和数据结构图可形成交互参照关系
项目打算表
要求采纳PROJECT软件制作,大致格式如下:
函数/过程接口
函数名:必须与源程序中的一致,包括大小写
功能:简要说明该函数/过程实现的功能,以及要紧的算法,对重要的函数/过
程可采纳伪语言进行描述
入口参数:对入口参数作简要的说明,利用全局变量,那么也要说明
出口参数:对出口参数作简要的说明,改变了全局变量,那么也要说明
返回值:对函数的返回值说明其类型和作用
程序设计的假设干规定
那个地点例举了C语言和汇编语言的规定,其他编程语言应参照这些规定编写C语言
见附录六
汇编语言
见附录六
附录六:
程序设计假设干规定
引言
本文档描述了项目开发中的编程标准,其目的是提供一个编程的严格规那么,使得程序有统一的风格,以便于明白得和爱护,项目要紧由C语言和汇编语言编写.
C语言
产生新代码
图D-1描述了产生C语言新代码的格式,在写新代码之前,程序员必需第一将std.c拷贝到新文件中,然后编辑新文件以提供以下信息.
目的
提供一个关于程序的简要描述.
版本状态
给出当日的日期,程序员姓名,创建或修改.
输入
列出及描述所有该程序将输入的变量,描述应简要而完全,有必要要描述一个组中不同的元素,或者一个词的字节或位,假如没有输入变量,那么键入"none".
输出
列出及描述所有该函数的输出变量,同时描述副作用,假如有的话.
限制
简要说明程序的限制,例如数组长度,算法等等,同时给出对以后版本的建议,假如没有限制,给出〝none〞
错误信息
描述出错信息或在出错时变量的置值,假如没有的话给出〝none〞.
方法
简单描述程序中所有调用的算法及方法,假如方法专门明显,那么删去这一项,假如应用了复杂的算法或方程式,请给出说明及参考.
外部变量描述
仅列出及描述那些一样不为人所知的变量,假如该函数不用任何外部变量,给出〝none〞.
局部、静态、寄存器变量描述
列出及描述局部,静态寄存器变量,假如一个变量的用途可从其它变量名中明显地看到,那么不必给出说明,变量名按字典顺序列出.
/***********************************************************
* 本程序属于XXXXXXXXX(公司名).作为商品隐秘*
* x,未经许可不得公布或使用. *
************************************************************
. 目的------
函数的功能描述
. 版本状态----
11-7-90(程序员姓名)新代码
. 输入-----
列出所有输入变量和说明
. 输出-----
列出所有输出变量/参数/返回值及说明
. 限制-----
给出使用的算法和处理方法
. 错误信息----
描述错误信息
. 方法----
该函数中用的算法和处理方法
. 函数调用----
列出调用的函数
. 外部变量-----
描述所有使用的外部变量
. 局部变量----
描述局部变量
. */
图 D-1 C标准格式(in 〝std.c〞)
改旧代码
在函数头上的所有必要的信息必须修改, 版本状态必须包含版本日期, 程序员姓名, 以及版本的简要描述, 这种描述必须规格化, 而且要包含足够的信息, 以便于对这些修改进行回溯. 版本状态列出的顺序必须使得最
新的版本列在最上边. 所有其它的信息包括输入、输出、限制、以及函数调用等等, 必须与最新的版本保持一致.
编程常规
下面说明了C语言指令中的标准结构:
程序设计风格
###通过空格和空行, 使程序有层次感, 便于阅读.
###提倡使用C++的语法和程序结构.
###所有代码必须是小写字符, 以下的例外:
1。

常量或宏(用#define 或 #typedef 在include文件中定义的)必须用大写字母.
2。

在编译或连接器中要求大写的标识符或库函数名.
3。

该文本中说明的其它必须大写的字母.
###代码尽可能写得简单、清晰、将复杂语句切成几个简单的语句以增加可读性.
###一样将子程序限制在100行以内.
###关于一个程序只承诺一个入口和出口〔在有出错处理等情形下可能承诺有假设干个出口〕.
###设计的子程序必须有一个完整定义的输出、输入同时完成一个任务.
###将紧密相关的子程序存放在一个文件中.
###程序中尽量不使用直截了当数, 即尽量不在源程序中显现某个具体的数值, 相应的数值最好用#define语句定义成宏, 以便于修改和爱护.
###使用统一的工作环境, 建立子名目, 各名目存放指定的内容:
src (源程序存放名目)
doc (文档存放名目)
bin (可执行程序存放名目)
lib (库函数存放名目)
test (测试用名目)
inc (引用文件存放名目)
personal (各人自用名目)
###使用make, Makefile进行编译, 更新目标文件和可执行文件.
C 库函数
###仅使用Unix System V、Microsoft C、Lattic C及Turbo C 编译器中的库函数.
###在用"malloc"或"calloc"申请空间之后, 建议测试一下不为空指针,假设使用空指针,通常会导致系统的崩溃,或莫名其妙的错误。

###在用"malloc"或"calloc"申请空间之后, 必须牢记在不需要它们的时候调用free开释空间以便于今后使用空间.
类型说明
###类型说明的顺序是由短到长:
char
short
long
float
double
###尽量不使用int, 用short或long取代, 以免不同硬件环境的阻碍.
###仅仅使用var_style.h中用typedef定义的宏以便共享.
变量名
变量名的长度没有限制. 但各个变量的前31个字符必须唯独.(各系统的状态会有变化,尽可能在开始时区分变量名). 建议用英文语句的一样风格命名变量名, 英文单词的首字母大写,后面的字母小写。

关于外部(公共)变量或函数名, 在第一个字符之前加"_", 对局部的变量名, 建议遵照以下格式: bxxx_或 xxxx_b 字节变量
cxxx_或 xxxx_c 字符变量
ixxx_或 xxxx_i 数变量
sxxx_或 xxxx_s 字变量
lxxx_或 xxxx_l 长变量
fxxx_或 xxxx_f 浮点变量
dxxx_或 xxxx_d 精变量
fpxxx 或 xxxx_fp 文件指针
xpxxx 或 xxxx_xp 指针变量(例:ipxxxx 或 xxxx_ip)
注意:变量名不应该和当前系统采纳的编译器,以及与的其他编译器中已定义的函数名或C的库函数相同,也不应与同C的关键字相同。

比如:class 不是C编译器的关键字,然而C++的关键字,在用C编译器开发的系统中,不能采纳class作为变量名,否那么将阻碍移植性。

寄存器变量
在程序中找一个频繁使用的变量(int或指针类型),将其定义成寄存器类以加快运行速度,专门适用于循环变量中。

外部变量
###外部变量必须在函数中以extern语句说明 .
###假如外部变量是数组,在外部说明中,第一维必须为空.
###假如不同类型的变量要组在一起,用结构取代数组.
###将外部变量说明成static类, 假如它们在一个文件中共享而不被其它文件访问.
常量
###对公共使用的常量,引用com_cons.h中定义的宏.
for 循环
关于数组的处理,循环的终止用"<"取代"<=".例:
int a[9];
for (i=0;i<9;i++)
...;
...;
if_else
有 else if的语句,应将if提上一行,例如:
if( )
{
……….
}
else if
{
……….
}
标号
所有标号应在第一列开始
goto
除非绝对必要, 幸免使用goto
default
在switch语句中将default放在case的最后
break
###在switch语句之外尽量少用break.
###在某些循环中为减少代码层次可有限地使用break 和continue.
返回 return
###即使不返回任何值, 也应在函数的出口处写上return以示函数出口
###尽量在一个函数中使用一个return, 个别情形例外(如有多个错误处理时).
大括号
用大括号将一些语句组在一起
小括号
用"〔〕"幸免操作顺序的纷乱.专门要注意以下两点的应用〔通过例子来说明〕,也是程序设计中经常不注意而犯的错误:
1、#define x y+3 (1)
#define x (y+3) (2)
按(1)的定义 z=x/3---〉z=y+3/3=y+1
按(2)的定义 z=x/3---> z=(y+3)/3=y/3=1
2、char *buf;
long *plong;
plong=(long *)buf+2; (1)
plong=(long *)(buf+2); (2)
假如buf=0;那么在(1)中plong=8,(2)中plong=2;
注释
###在需要明确程序含义的地点应勤于使用注释, 所有注释写成:/*... ...*/或 //
###在语句后的注释必须与语句在同一行:
statement /*..._ ..*/
statement /*..._ ..*/
###假如注释太长, 超出一行,应将其按如下格式放在语句之前:
/*...
...
...
...*/
###假如变量需要注释, 它们必须一行行地进行说明, 例如:
int i; /*... ...*/
汇编语言
产生新模块代码
图D-2描述了产生汇编语言新模块代码的格式, 在写新代码之前,程序员必需第一将model.asm拷贝到新文件中.然后编辑新文件以提供以下信息.
目的
提供一个关于程序模块的简要描述.
版本状态
给出当日的日期,程序员姓名,版本号。

COMMENT %
***********************************************************
* 本程序属于XXXXXXXXX(公司名).作为商品隐秘 *
* x,未经许可不得公布或使用. *
***********************************************************
. 目的------
模块的功能描述
. 版本状态----
11-7-90(程序员姓名)新代码
图 D-2 ASM标准格式(in 〝model.asm〞)
产生新的子过程代码
图D-3描述了产生汇编语言新的子过程代码的格式,在写新子过程代码之前,程序员必需第一将Pro.asm拷贝到新子过程前.然后编辑新文件以提供以下信息.
子过程名称
给出子过程的名称
功能描述
用语言或伪C代码提供一个关于该子过程的简要描述,同时简要说明子过程的限制。

版本状态和历史
给出当日的日期,程序员姓名.
入口参数
列出及描述所有该子过程将输入的变量和寄存器,描述应简要而完全, 有必要描述一个组中不同的元素, 或者一个词的字节或位. 假如没有输入变量,那么键入〝none〞.
出口参数
列出及描述所有该子过程的输出变量和寄存器, 同时描述对全局变量的阻碍和被破坏的寄存器, 假如有的
话. 同时还要描述出错信息或在出错时变量的值, 假如没有的话给出〝none〞.
默认的段寄存器和段名
用ASSUME指出在该子过程中,默认的段寄存器和段名的关系。

COMMENT
. 子过程名称----
给出子过程的名称
. 功能描述----
提供一个关于子过程的简要描述,同时简要说明子过程的限制.
. 版本状态和历史----
给出当日的日期,程序员姓名.
. 入口参数----
列出及描述所有该子过程将输入的变量和寄存器.
. 出口参数----
列出及描述所有该子过程的输出变量和寄存器, 并列出被破坏的寄存器.
. 默认的段寄存器和段名----
用ASSUME指出在该子过程中,默认的段寄存器和段名的关系。

%
图 D-3 标准格式(in 〝pro.asm〞)
修改旧代码
在过程头上的所有必要的信息必须修改, 版本状态必须包含版本日期, 程序员姓名, 以及版本的简要描述, 这种描述必须规格化, 而且要包含足够的信息, 以便于对这些修改进行回溯. 版本状态列出的顺序必须使得最
新的版本列在最上边. 所有其它的信息包括输入、输出、限制、以及过程调用等等, 必须与最新的版本保持一致.
编程常规
下面说明了汇编语言指令中的标准结构:
程序设计风格
###应该遵照 MIRCOSOFT MASM 5.0~6.0和TURBO ASMBLE 2.0~3.0的语言规范。

建议不用简写方式.
###在同一子过程中所有代码必须是统一的小写字符和大写字母,以下的例外:
(1) 宏必须用大写字母.
(2) 在编译或连接器中要求大写的标识符或库函数名.
(3) 该文本中说明的其它必须大写的字母.
###关于一个程序只承诺一个入口和出口〔在有出错处理等情形下可能承诺有假设干个出口〕.
###设计的子程序必须有一个完整定义的输出、输入同时完成一个任务.
###将紧密相关的子程序存放在一个文件中.
###程序中尽量不使用直截了当数, 即尽量不在源程序中显现某个具体的数值, 相应的数值最好用EQU语句定义成宏, 以便于修改和爱护.
###使用统一的工作环境, 建立子名目, 各名目存放指定的内容:
src (源程序存放名目)
doc (文档存放名目)
bin (可执行程序存放名目)
lib (库函数存放名目)。

相关文档
最新文档