DB43-T 2259-2021 信息技术应用创新工程建设规范 第10部分:应用开发通用技术要求_第1页
DB43-T 2259-2021 信息技术应用创新工程建设规范 第10部分:应用开发通用技术要求_第2页
DB43-T 2259-2021 信息技术应用创新工程建设规范 第10部分:应用开发通用技术要求_第3页
DB43-T 2259-2021 信息技术应用创新工程建设规范 第10部分:应用开发通用技术要求_第4页
DB43-T 2259-2021 信息技术应用创新工程建设规范 第10部分:应用开发通用技术要求_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS

01.140.20CCS

L

43湖 南 省 地 方 标 准DB43/T

2259—2021信息技术应用创新工程建设规范第部分:应用开发通用技术要求Engineering

specification

for

theApplicationInnovation

Project

of

Information

TechnologyPart

10:General

technical

requirements

of

application

developing2021

-

12

-

29

发布

2022

-

-

实施湖南省市场监督管理局

布DB43/T

— 前言

Ⅲ引言

Ⅴ1

12

规范性引用文件

13

术语和定义

14

缩略语

25

25.1编程语言要求

25.2函数命名要求

25.3变量命名要求

25.4国际化要求

35.5变更日志要求

36

36.1 可执行文件存储位置

36.2 动态库存储位置

36.3 配置文件存储位置

36.4 数据文件存储位置

46.5 缓存文件存储位置

47

47.1 系统日志

47.2 应用日志

48

49

软件包要求

59.1 软件打包要求

59.2

包具体要求

59.3

包具体要求

610

710.1 desktop

文件

710.2

710.3 系统及应用服务要求

711

单进程要求

711.1 多用户单进程

711.2 单用户单进程

8DB43/T

2259—11.3特殊访问单进程

······························································································

812 多进程要求···········································································································812.1 进程间通信要求

······························································································

812.2 系统资源限制要求

···························································································

813 兼容性要求···········································································································8附录

A(资料性)

变更日志

changelog

文件格式································································

9附录

B(资料性)

文件格式示例

·······································································

10参考文献··················································································································

11IIDB43/T

2259— 本文件按照

GB/T

—2020《标准化工作导则 第

1

部分:标准化文件的结构和起草规则》的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。《信息技术应用创新工程建设规范》分为以下几个部分:——第

1

部分:台式微型计算机通用技术要求;——第

2

部分:便携式微型计算机通用技术要求;——第

3

部分:服务器通用技术要求;——第

4

部分:操作系统通用技术要求;——第

5

部分:操作系统硬件兼容性通用技术要求;——第

6

部分:操作系统软件兼容性通用技术要求;——第

7

部分:办公套件通用技术要求;——第

8

部分:电子公文通用技术要求;——第

9

部分:驱动开发通用技术要求;——第

10

部分:应用开发通用技术要求;——第

11

部分:迁移适配通用技术要求;——第

12

部分:国产化信息系统建设质量管理规范;——第

13

部分:国产化信息系统运行维护规范;——第

14

部分:国产化信息系统建设验收规范;——第

15

部分:云计算通用技术要求。本部分为第

10

部分。本部分由湖南省国家密码管理局提出。本部分由湖南省工业和信息化厅归口。()司、珠海金山办公软件有限公司、鹏城实验室。月、孙洪桥、付志鹏。IIIDB43/T

2259— 配、工程实施标准等方面提供一般性指引。的必要调整和补充。DB43/T

2259—

10

1

用配置、单进程、多进程、兼容性等提出具体要求,有利于提高应用软件的兼容性。本文件适用于国产操作系统上第三方应用程序的开发,也为第三方应用程序的调试验证提供指导。2

规范性引用文件文件。GB/T

15272—1994 程序设计语言

CDB43/T

1777.6—2020 信息技术应用创新工程建设规范 第

6

部分:操作系统软件兼容性通用技术要求3

术语和定义下列术语和定义适用于本文件。3.1驼峰命名法

case母。3.2匈牙利命名法

notation命名原则是变量名=属性+类型+对象描述。3.3帕斯卡命名法 Pascal

接号(-_)连结,第一个单词首字母采用大写字母,后续单词的首字母亦用大写字母。3.4下划线命名法

case命名原则是由二个或二个以上单词连结在一起,每个单词用下划线隔开并且单词都是小写。3.5动态库

link

library一种不可执行的二进制程序文件,允许程序共享执行特殊任务所必需的代码和其他资源。DB43/T

2259—3.6环境变量

variables指在操作系统中用来指定操作系统运行环境的一些参数,如临时文件夹位置和系统文件夹位置等。3.7系统日志 system

log记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。3.8软件包

指具有特定的功能,用来完成特定任务的一个程序或一组程序。3.9变更日志 changelog是对项目所作更改的详细记录,通常包括修复和新功能。4

缩略语下列缩略语适用于本文件:PNG:可移植的网络图形(Portable

)SVG:可缩放的矢量图形(Scalable

)UTF:通用字符组/编码转换格式(Universal

Character

)5

编码要求5.1 编程语言要求应用软件开发应使用符合

GB/T

15272—1994

要求的

C

语言,宜使用

、Java、Python

等语言实现。5.2 函数命名要求法、帕斯卡命名法和下划线命名法中任意一种。5.3 变量命名要求法、帕斯卡命名法和下划线命名法中任意一种。变量命名还应遵守以下规则:a)

在单独的代码行中声明每个变量;b)

尽量避免使用简短或无意义的名称,例如“a”,“rbarr”;c)

单字符变量名称只在临时变量或循环的计数中使用;d)

在真正使用变量的时候定义变量;e)

变量名称中的每个连续单词均以大写字母开头;f)

避免使用缩写;g)

类名以大写开头,公有类以

Q

开头,公有函数通常以

q

开头;DB43/T

—h)

含首字母缩写的变量使用驼峰命名法,例如“QUkuiWindowManager”。5.4 国际化要求编码中应遵守以下国际化规则:a)

BIG5、UTF-8

编码格式的字符集;b)

宜在源码中标识需要翻译的文本信息,使用

生成.ts

文件,使用翻译工具

Linguist对.ts

文件进行翻译,发布生成.qm

二进制文件,通过在源码中加载

文件实现国际化。5.5 变更日志要求每个版本应对应一条变更日志,变更日志中记录当前版本基于上一个版本改动的内容,变更日志changelog

文件的格式应符合附录

A

的规定。6

存储位置要求6.1 可执行文件存储位置可执行文件的存储位置应符合以下要求:a)

系统的可执行文件放在“/bin”目录下;b)

系统软件的可执行文件放在“/usr/bin/”目录下;c)

用户的可执行文件放在“/usr/local/bin”目录下;d)

应用软件的可执行程序放在“/opt/应用名”目录下。6.2 动态库存储位置动态库的存储位置应符合以下要求:a)

系统软件的动态库放在“/usr/lib”目录下;b)

应用软件的动态库放在“/opt/应用名/lib”目录下:1)

/opt/应用名/lib”加入到

2)

应用软件不应在运行时添加环境变量

来指定自定义的搜索路径。c)

“/lib/usr/lib的搜索路径通过以下两种方式:1)

在“”文件中添加库的搜索路径,添加路径后运行/sbin/ldconfig

更新“/etc/ld.so.cache”文件来设置库的搜索路径;2)

中指明库的搜索路径。6.3 配置文件存储位置配置文件的存储位置应符合以下要求:a)

应用软件的全局配置文件放在“/etc/”目录下,如果一个应用软件有多个配置文件,则应建立“/etc/应用名/b)

应用软件的用户配置文件应统一放在“/home/用户名/.config/应用名/目录”下;c)

件不得直接修改系统配置按照系统提于以下配置:DB43/T

—1)

登录后的环境变量配置,应放在“”目录下,以“应用名.sh”命名;2)

bash

补全脚本,应放在“”目录下,以“应用名”命名;3)

新建用户时的模板文件,应放在“/etc/skel/”目录下;4)

AppArmor

的配置文件,应放在“”目录下;5)

cron

定时配置,应放在“/etc/cron.d/”目录下,以“应用名”命名,如果应用开发提供多个定时配置,则按照“应用名-功能名”命名。6.4 数据文件存储位置数据文件的存储位置应符合以下要求:a)

系统软件的数据文件存储路径应为“/var/lib/b)

件的数据文件存储路径应为“/opt/应用名/”及其子目录,具体路径不做强制要求,可为“/opt/应用名”。6.5 缓存文件存储位置软件运行过程中产生的保存状态的缓存文件,应符合以下要求:a)

系统软件的缓存文件存储路径应为“软件名/”;b)

用软件安装路径为“/opt/应用名//opt/应用名/”目录及其子目录,具体路径不做强制要求,可为“/opt/应用名”;c)

如果应用软件安装路径为“应用名/”,则应用软件的缓存文件存储路径应为“/var/cache/应用名”目录及其子目录。7

日志要求7.1 系统日志系统日志应符合以下要求:a)

日志输出不应影响系统正常运行;b)

日志输出不应产生安全问题,不应输出敏感信息;c)

日志使用应符合安全审计要求,支持备份和保密机制;d)

日志可供系统开发和运维人员定位问题的原因;e)

日志分为普通级、调试级、警告级、错误级和警报级

5

7.2 应用日志应用日志应符合以下要求:a)

Info

日志;b)

打印日志打码,不应发生异常;c)

不应使用字符串拼接,宜使用占位符;d)

日志文件至少保存

天。8

安全管理要求应用开发的安全管理应符合以下要求:DB43/T

—a)

具有前端交互逻辑的应用可执行程序,一般应以普通用户权限运行,不应使用

sudo、pkexec等命令直接提权运行;b)

要特权态执行某些操作,应使用前后端分离的方式实现,前端含有交互逻辑的二进制程序使用普通用户权限运行,通过

dbus

等技术与后端具有管理员权限的服务端通讯,实现相关功能;c)

如果前端应用使用

dbus

等技术与后端具有管理员权限的服务端通讯,应进行身份鉴别,用于确定用户是否具备该项行为的权限。9

软件包要求9.1 软件打包要求应用软件的打包方式,应按照

1777.6—

节要求执行。9.2

包具体要求9.2.1 版本号要求版本号的唯一性应适用于源码包和二进制包,在任何源码包下,二进制包不能重复使用。9.2.2 控制文件

UTF-8

据/值组成。一个段落不应出现一个字段有多个实例的情况。9.2.3 软件包描述每个

文件中包括

应描述关键依赖和其它软件包的冲突信息。Description

版权说明。9.2.4 包变更日志每个源码包中均应包含变更日志文件(

UTF-8

编码,包的变更应在

changelog

以及软件包的更新信息,变更日志

changelog

文件格式应符合附录

A

9.2.5 编译脚本编译脚本是一个可执行的

makefile

文件,应以

开头,便于使用名称调用而不是直接调用

make。9.2.6 重复构建要求为了实现重复构建,源码包的构建应符合以下要求:a)

在指定路径解压源码包;DB43/T

—b)

已安装的构建依赖项版本;c)

指定的环境参数值;d)

确定构建架构;e)

CPU

指令架构。9.2.7 软件包维护者除了孤立软件包外,每个软件包都应有维护者,软件包的维护者应符合以下要求:a)

文件的

Maintainer

字段中给出,包括名称和邮件地址;b)

字段中统一格式;c)

字段应指定至少一个人的私人邮箱地址;d)

如果软件包不再使用或者不可维护,则应将软件包删除。9.2.8 维护者脚本维护者脚本文件应以#!符号开头,这些脚本应是可读的、可被任何人执行的且不能是全局可写的。维护者脚本调用的程序不应在其前面添加路径,这些程序的路径应在

PATH

环境变量中。维护者脚本执行过程中,应符合以下要求:a)

幂等性要求,一次或多次请求调用,确保不会因为崩溃而导致调用没有完成;b)

如果维护者脚本与控制终端没有一起运行,则维护者脚本应回退到无交互行为状态;c)

维护者脚本运行成功应返回

0,运行失败应返回一个非零值;d)

安装、升级和移除到新版本软件包中的脚本名称以

开头,升级和移除的旧版本软件包中的脚本名称以

开头。9.3

包具体要求9.3.1版本号要求版本号的唯一性应适用于源码包和二进制包,在任何源码包下,二进制包不能重复使用。命名应符合

Name-Version-Release.{arch

类型}.rpm

规范,Name

为软件包名称,

为软件版本号,

为发布序列号。版本号一般有如下要求:a)

仅当软件包比以前有较大改动时才增加

号;b)

软件开发者对软件包打补丁时应将

1;c)

Source

语句中包含任何路径。9.3.2 SPEC

SPEC

文件应满足如下要求:a)

UTF-8

编码,各段落之间应空一行;b)

Summary

开始,说明软件包基本信息等内容;c)

每个不同段落之间都以%作为开头;d)

、Name、Version、Release、、Group,Source

等必要信息。9.3.3 包变更日志源码包的变更日志在

changelog

DB43/T

—的具体内容等。changelog

文件的格式应符合以下要求:a)

星期、月份均用英文形式的前

3

个字母,不应使用中文;b)

changlog

之间应有一空行。变更日志

changelog

文件格式应符合附录

A

9.3.4 源码包构建原则源码包构建应遵循以下规则:a)

只要存在

spec

文件,开发者应在系统现有的

文件上修改更新;b)

任何人无权删除其他人的

changelog

和原始打包者的信息,但可追加自己的信息;c)

spec

文件应使用系统标准的宏定义;d)

spec

里完成打补丁操作,一个补丁只解决一个问题,任何补丁的授权方式应和被修改源代码保持一致。10

桌面应用配置要求10.1 desktop

文件桌面应用开发应使用

文件应符合以下要求:a)

应以应用安装后软件包管理工具可查询的软件名为

.desktop

为文件后缀;b)

Linux

desktop

文件编写格式,

B;c)

应用安装时,应将

文件放在“”目录下。10.2 icon

桌面应用开发应使用

icon

icon

文件应符合以下要求:a)

icon

文件名应为应用标识,图标文件格式为

,其中

PNG

图标大小要求

128x128px

及以上或全尺寸;b)

icon

文件放在“/usr/share/icons/hicolor”对应尺寸的目录下;c)

icon

mimetypes/”目录下。10.3 系统及应用服务要求系统及应用服务应符合以下要求:a)

系统级服务应提供

的服务配置文件,并将其放在“/lib/systemd/system/”目录下;b)

用户级服务应提供

/usr/lib/systemd/user/11

单进程要求11.1 多用户单进程多用户单进程情况下,应用宜使用文件锁的形式实现单进程,文件锁放到“/run/”目录下,并使DB43/T

—用“应用名.pid”方式命名,文件锁内容为应用的进程号。11.2 单用户单进程单用户单进程情况下,应用宜使用文件锁的形式实现单进程,文件锁放到“/run/user/用户

ID/”目录下,并使用“应用名.pid”方式命名,文件锁内容为应用的进程号。11.3 特殊访问单进程特殊访问单进程情况下,应用宜使用文件锁的形式实现单进程,文件锁放到“/run/”目录或者“/run/user/

ID/”目录下,并使用“应用名-特殊条件.pid”方式命名,文件锁内容为应用的进程号。12

多进程要求12.1 进程间通信要求进程间可使用信号、管道、套接字、消息队列、信号量、共享内存等方式实现通信。12.2 系统资源限制要求系统在<limits.h>文件中设置默认的应用资源限制,每个进程都有一组资源限值。每个资源都有软限制和硬限制

2

软限制设置为

0

进程可使用

getrlimit()

setrlimit()函数修改自身的资源限制。13

兼容性要求除基础

C

库以外,应用不应依赖操作系统提供的任何动态链接库。优先级配置文件来进行配置覆盖,新增的配置文件以“两位数字-应用名”的形式命名。DB43/T

—附

录 A(资料性)变更日志

changelog

文件格式1、

包变更日志

文件的格式定义如下:package

(version)

distribution(s);

urgency=<选项值>*

change

details more

change

details*

even

more

change

--

maintainer

name

address>[two

date其中,package

(version)是安装包的名字和版本号;distribution(s)代表要发行的软件版本在上传时需要安装在哪里;urgency

是为了表示这个版本比上一个版本的重要程度,它的选项有low,medium,high,emergency,critical;change

details,至少要有

2

个空格开始,而且要以*号和分隔符[一般是空格]开始,下一行要和上一行对齐,建议这里不要写太多;maintainer

name,是安装包的维护人员的名字;Email,邮箱地址;Date,day-of-week,dd

y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论