精华内容
参与话题
问答
  • 软件开发技术文档编写规范

    万次阅读 多人点赞 2017-12-29 09:40:14
    在项目开发过程中,应该按要求编写好十三种文档文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。  ◇可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述...

    在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。

      ◇可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。

      ◇项目开发计划:为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。

      ◇软件需求说明书(软件规格说明书):对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。

      ◇概要设计说明书:该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。

      ◇详细设计说明书:着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。

      ◇用户操作手册:本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。

      ◇测试计划:为做好集成测试和验收测试,需为如何组织测试制订实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。

      ◇测试分析报告:测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。

      ◇开发进度月报:该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。

      ◇项目开发总结报告:软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。

      ◇软件维护手册:主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。

      ◇软件问题报告:指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。

    ◇ 软件修改报告:软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。

    1    可行性分析报告

    1引言

    1.1编写目的:阐明编写可行性研究报告的目的,提出读者对象。

    1.2项目背景:应包括

      ● 所建议开发软件的名称

      ● 项目的任务提出者、开发者、用户及实现软件的单位

      ● 项目与其他软件或其他系统的关系。

    1.3定义:列出文档中用到的专门术语的定义和缩写词的原文。

    1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括

      ● 项目经核准的计划任务书、合同或上级机关的批文

      ● 与项目有关的已发表的资料

      ● 文档中所引用的资料,所采用的软件标准或规范

     

    2可行性研究的前提

    2.1要求:列出并说明建议开发软件的的基本要求,如

      ● 功能

      ● 性能

      ● 输入/输出

      ● 基本的数据流程和处理流程

      ● 安全与保密要求

      ● 与软件相关的其他系统

      ● 完成日期

    2.2目标:可包括

      ● 人力与设备费用的节省

      ● 处理速度的提高

      ● 控制精度或生产力的提高

      ● 管理信息服务的改进

      ● 决策系统的改进

      ● 人员工作效率的提高

    2.3条件、假定和限制:可包括

      ● 建议开发软件运行的最短寿命

      ● 进行显然方案选择比较的期限

      ● 经费来源和使用限制

      ● 法律和政策方面的限制

      ● 硬件、软件、运行环境和开发环境的条件和限制

      ● 可利用的信息和资源

      ● 建议开发软件投入使用的最迟时间

    2.4可行性研究方法

    2.5决定可行性的主要因素

     

    3对现有系统的分析

    3.1处理流程和数据流程

    3.2工作负荷

    3.3费用支出:如人力、设备、空间、支持性服务、材料等项开支

    3.4人员:列出所需人员的专业技术类别和数量

    3.5设备

    3.6局限性:说明现有系统存在的问题以及为什么需要开发新的系统

     

    4所建议技术可行性分析

    4.1对系统的简要描述

    4.2与现有系统比较的优越性

    4.3处理流程和数据流程

    4.4采用建议系统可能带来的影响

      ● 对设备的影响

      ● 对现有软件的影响

      ● 对用户的影响

      ● 对系统运行的影响

      ● 对开发环境的影响

      ● 对经费支出的影响

    4.5技术可行性评价:包括

      ● 在限制条件下,功能目的是否达到

      ● 利用现有技术,功能目的是否达到

      ● 对开发人员数量和质量的要求,并说明能否满足

      ● 在规定的期限内,开发能否完成

     

    5所建议系统经济可行性分析

    5.1支出

    5.2效益

    5.3收益/投资比

    5.4投资回收周期

    5.5敏感性分析:指一些关键性因素,如:

      ● 系统生存周期长短

      ● 系统工作负荷量

      ● 处理速度要求

      ● 设备和软件配置变化对支出和效益的影响等的分析

     

    6社会因素可行性分析

    6.1法律因素:如

      ● 合同责任

      ● 侵犯专利权

      ● 侵犯版权

    6.2用户使用可行性:如

      ● 用户单位的行政管理

      ● 工作制度

      ● 人员素质等能否满足要求

     

    7其他可供选择的方案

      逐个阐明其它可供选择的方案,并重点说明未被推荐的理由。

    8结论意见

      ● 可着手组织开发

      ● 需等待若干条件具备后才能开发

      ● 需对开发目标进行某些修改

      ● 不能进行或不必进行

      ● 其它

    2    项目开发计划

    1引言

    1.1编写目的:阐明编写可行性研究报告的目的,提出读者对象

    1.2项目背景:应包括

      ● 项目的委托单位、开发单位和主管部门;

      ● 该软件系统与其他系统的关系。

    1.3定义:列出文档中用到的专门术语的定义和缩写词的原文

    1.4参考资料:可包括:

      ● 项目经核准的计划任务书、合同或上级机关的批文

      ● 文档所引用的资料、规范等

      ● 列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源;

     

    2项目概述

    2.1工作内容:简要说明项目的各项主要工作,介绍所开发软件的功能、性能等;若不编写可行性研究报告;则应在本节给出较详细的介绍;

    2.2条件与限制: 阐明为完成项目应具备的条件、开发单位已具备的条件以及尚需创造的条件。必要时还应说明用户及分合同承担的工作、完成期限及其他条件与限制。

    2.3产品

    2.3.1程序:列出应交付的程序名称、使用的语言及存储形式。

    2.3.2文档:列出应交付的文档。

    2.4运行环境:应包括硬件环境、软件环境。

    2.5服务:阐明开发单位可向用户提供的服务。如人员培训、安装、保修、维护和其他运行支持。

    2.6验收标准

     

    3实施计划

    3.1任务分解:任务的划分及各项任务的负责人。

    3.2进度:按阶段完成的项目,用图表说明开始时间、完成时间。

    3.3预算

    3.4关键问题:说明可能影响项目的关键问题,如设备条件、技术难点或其他风险因素,并说明对策。

     

    4人员组织及分工

     

    5交付期限

     

    6专题计划要点

      如测试计划、质量保证计划、配置管理计划、人员培训计划、系统安装计划等。

     

     

    3    软件需求说明书

    1引言

    1.1编写目的:阐明编写需求说明书的目的,指明读者对象。

    1.2项目背景:应包括

      ● 项目的委托单位、开心单位和主管部门;

      ● 该软件系统与其他系统的关系。

    1.3定义:列出文档中所用到的专门术语的定义和缩写词的愿文。

    1.4参考资料:可包括

      ● 项目经核准的计划任务书、合同或上级机关的批文

      ● 文档所引用的资料、规范等

      ● 列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源

     

    2任务概述

    2.1目标

    2.2运行环境

    2.3条件与限制

     

    3数据描述

    3.1表态数据

    3.2动态数据:包括输入数据和输出数据。

    3.3数据库描述:给出使用数据库的名称和类型。

    3.4数据词典

    3.5数据采集

     

    4功能需求

    4.1功能划分

    4.2功能描述

     

    5性能需求

    5.1数据精确度

    5.2时间特性:如响应时间、更新处理时间、数据转换与传输时间、运行时间等。

    5.3适应性:在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。

     

    6运行需求

    6.1用户界面:如屏幕格式、报表格式、菜单格式、输入输出时间等。

    6.2硬件接口

    6.3软件接口

    6.4故障处理

     

    7其他需求

      如可使用性、安全保密、可维护性、可移植性等。

     

     

    4    概要设计说明书

    1引言

    1.1写目的:阐明编写概要设计说明书的目的,指明读者对象。

    1.2项目背景:应包括

      ● 项目的委托单位、开发单位和主管部门

      ● 该软件系统与其他系统的关系。

    1.3定义:列出本文档中所用到的专门术语的定义和缩写词的愿意。

    1.4参考资料:

      ● 列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源

      ●项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;测试计划(初稿);用户操作手册

      ● 文档所引用的资料、采用的标准或规范。

     

    2任务概述

    2.1目标

    2.2需求概述

    2.3条件与限制

     

    3总体设计

    3.2总体结构和模块外部设计

    3.3功能分配:表明各项功能与程序结构的关系。

     

    4接口设计

    4.1外部接口:包括用户界面、软件接口与硬件接口。

    4.2内部接口:模块之间的接口。

     

    5数据结构设计

     

    6逻辑结构设计

      所有文档的统一封面格式如下页所示。

     

    7物理结构设计

     

    8数据结构与程序的关系

     

    9运行设计

    9.1运行模块的组合

    9.2运行控制

    9.3运行时间

     

    10出错处理设计

    10.1出错输出信息

    10.2出错处理对策:如设置后备、性能降级、恢复及再启动等。

     

    11安全保密设计

     

    12维护设计

      说明为方便维护工作的设施,如维护模块等。

    5    详细设计说明书

    1引言

    1.1编写目的:阐明编写详细设计说明书的目的,指明读者对象。

    1.2项目背景:应包括项目的来源和主管部门等。

    1.3定义:列出本文档中所用到的专门术语的定义和缩写词的愿意。

    1.4参考资料:

      ● 列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源

      ●项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;测试计划(初稿);用户操作手册

      ● 文档所引用的资料、软件开发的标准或规范。

     

    2总体设计

    2.1需求概述

    2.2软件结构:如给出软件系统的结构图。

     

    3程序描述

    3.1逐个模块给出以下说明:

      ● 功能

      ● 性能

      ● 输入项目

      ● 输出项目

    3.2算法:模块所选用的算法。

    3.3程序逻辑:详细描述模块实现的算法,可采用:标准流程图;PDL语言;N-S图;判定表等描述算法的图表。

    3.4接口

      ● 存储分配

      ● 限制条件

    3.5测试要点:给出测试模块的主要测试要求。

     

     

    6    用户操作手册

    1引言

    1.1编写目的:阐明编写手册的目的,指明读者对象。

    1.2项目背景:说明项目的来源、委托单位、开发单位及和主管部门。

    1.3定义:列出手册中使用的专门术语的定义和缩写词的愿意。

    1.4参考资料:

      ● 列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源

      ● 项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;概要设计说明书;详细设计说明书;测试计划

      ● 文档中所引用的其他资料、采用的软件工程标准或软件工程规范。

     

    2软件概述

    2.1目标

    2.2功能

    2.3性能

    2.4数据精确度:包括输入、输出及处理数据的精度。

    2.5时间特性:如响应时间、处理时间、数据传输时间等。

    2.6灵活性:在操作方式、运行环境需做某些变更时软件的适应能力。

     

    3运行环境

    3.1硬件

      ● 列出软件系统运行时所需的硬件最小配置,如计算机型号、主存容量

      ● 外存储器、媒体、记录格式、设备型号及数量

      ● 输入、输出设备

      ● 数据传输设备及数据转换设备的型号及数量。

    3.2支持软件

      ● 操作系统名称及版本号

      ● 语言编译系统或汇编系统的名称及版本号

      ● 数据库管理系统的名称及版本号

      ● 其他必要的支持软件

     

    4使用说明

    4.1安装和初始化:给出程序的存储形式、操作命令、反馈信息及其做含意、表明安装完成的测试实例以及安装所需的软件工具等。

    4.2输入:给出输入数据或参数的要求。

      ● 数据背景:说明数据来源、存储媒体、出现频度、限制和质量管理等。

      ● 数据格式:如长度、格式基准、标号、顺序、分隔符、词汇表、省略和重复、控制。

      ● 输入举例。

    4.3输出:给出每项输出数据的说明。

      ● 数据背景:说明输出数据的去向、使用频度、存放媒体及质量管理等。

      ● 数据格式:详细阐明每一输出数据的格式,如首部、主体和尾部的具体形式。

      ● 举例

    4.4出错和恢复:给出出错信息及其含意;用户应采取的措施,如修改、恢复、再启动。

    4.5求助查询:说明如何操作。

     

    5运行说明

    5.1运行表:列出每种可能的运行情况,说明其运行目的。

    5.2运行步骤:按顺序说明每和运行的步骤,应包括:

    5.3运行控制

    5.4操作信息:运行目的、运行目的、操作要求、启动方法、预计运行时间、操作命令格式及说明、其他事项;

    5.5输入/输出文件:给出建立或更新文件的有关信息,如:文件的名称及编号;记录媒体;存留的目录;文件的支配:说明确定保留文件或废弃文件的准则,分发文件的对象,战胜硬件的优先级及保密控制等。

    5.6启动或恢复过程

     

    6非常规过程

      提供应急戒非常规操作的必要信息及操作步骤,如出错处理操作、向后备系统切换操作及维护人员须知的操作和注意事项。

     

    7操作命令一览表

      按字母顺序逐个列出全部操作命令的格式、功能及参数说明。

     

    8程序文件(或命令文件)和数据文件一览表

      按文件名字母顺序或按功能与模块分类顺序逐个列出文件名称、标识符及说明。

     

    9用户操作举例

     

    7    测试计划

    1引言

    1.1编写目的:阐明编写测试计划的目的并指明读者对象。

    1.2项目背景:说明项目的来源、委托单位及主管部门。

    1.3定义:列出测试 计划中所用到的专门术语的定义和缩写词的原意。

    1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目的计划任务书、合同或批文;项目开发计划;需求规格说明书;概要设计说明书;详细设计说明书;用户操作手册;本测试计划中引用的其他资料、采用的软件开发标准或规范。

     

    2任务概述

    2.1目标

    2.2运行环境

    2.3需求概述

    2.4条件与限制

     

    3计划

    3.1测试方案:说明测试方法和选取测试用例的原则。

    3.2测试项目:列出组装测试和确认测试中每一项测试的内容、名称、目的和进度。

    3.3测试准备

    3.4测试机构及人员:测试机构名称、负责人和职责。

     

    4测试项目说明

    4.1按顺序逐个对测试项目做出说明

      4.1.1 测试项目名称及测试内容

      4.1.2 测试用例

      4.1.3 输入:输入的数据和输入命令。

      4.1.4 输出:预期的输出数据。

    4.2步骤及操作

    4.3允许偏差:给出实测结果与预期结果之间允许偏差的范围。

    4.4进度

    4.5条件:给出项测试对资源的特殊要求,如设备、软件、人员等。

    4.6测试资料:说明项测试所需的资料。

     

    5评价

    5.1范围:说明所完成的各项测试说明问题的范围及其局限性。

    5.2准则:说明评论测试结果的准则。

     

    8    测试分析报告

    1引言

    1.1编写目的:阐明编写测试分析报告的目的并指明读者对象。

    1.2项目背景:说明项目的来源、委托单位及主管部门。

    1.3定义:列出测试分析报告中所用到的专门术语的定义和缩写词的原意。

    1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目的计划任务书、合同或批文;项目开发计划;需求规格说明书;概要设计说明书;详细设计说明书;用户操作手册;测试计划;测试分析报告所引用的其他资料、采用的软件工程标准或工程规范。

     

    2测试计划招待情况

    2.1机构和人员:给出测试机构名称、负责人和参与测试人员名单。

    2.2测试结果:按顺序给出每一测试项目的:实测结果数据;与预期结果数据的偏差;该项测试表明的事实;该项测试发现的问题。

     

    3软件需求测试结论

      按顺序给出每一项需求测试的结论。包括:证实的软件能力;局限性(即项需求未得到充分测试的情况及原因。

     

    4评价

    4.1软件能力:经过测试所表明的软件能力。

    4.2缺陷和限制:说明测试所揭露的软件缺陷和不足,以及可能给软件运行带来的影响。

    4.3建议:提出为弥补上述缺陷的建议。

    4.4测试结论:说明能否通过。

    9    开发进度月报

    1报告时间及所处的开发阶段

     

    2工程进度

    2.1本月内的主要活动

    2.2实际进展与计划比较

     

    3所用工时

      按不同层次人员分别计时。

    4所用机时

      按所用计算机机型分别计时。

    5经费支出

      分类列出本月经费支出项目,给出支出总额,并与计划比较。

    6工作遇到的问题及采取的对策

    7本月完成的成果

    8下月的工作计划

    9特殊问题

     

    10       项目开发总结报告

    1引言

    1.1编写目的:阐明编写总结报告的目的并指明读者对象。

    1.2项目背景:说明项目的来源、委托单位、开发单位及主管部门。

    1.3定义:列出报告中所用到的专门术语的定义和缩写词的原意。

    1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目的计划任务书、合同或批文;项目开发计划;需求规格说明书;概要设计说明书;详细设计说明书;用户操作手册;测试计划;测试分析报告;本报告引用的其他资料、采用的开发标准或开发规范。

     

    2开发结果

    2.1产品:可包括列出各部分的程序名称、源程序行数(包括注释行)或目标程序字节数及程序总计数量、存储形式;产品文档名称等。

    2.2主要功能及性能

    2.3所用工时:按人员的不同层次分别计时。

    2.4所用机时:按所用计算机机型分别计时。

    2.5进度:给出计划进度与实际进度的对比。

    2.6费用

     

    3评价

    3.1生产率评价:如平均每人每月生产的源程序行数、文档的字数等。

    3.2技术方案评价

    3.3产品质量评价

    4经验与教训

     

    11       软件维护手册

    1引言

    1.1编写目的:阐明编写手册的目的并指明读者对象。

    1.2项目背景:说明项目的提出者、开发者、用户和使用场所。

    1.3定义:列出报告中所用到的专门术语的定义和缩写词的原意。

    1.4参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,及保密级别,可包括:用户操作手册;与本项目有关的其他文档。

     

    2系统说明

    2.1系统用途:说明系统具备的功能,输入和输出。

    2.2安全保密:说明系统安全保密方面的考虑。

    2.3总体说明:说明系统的总体功能,对系统、子系统和作业做出综合性的介绍,并用图表的方式给出系统主要部分的内部关系。

    2.4程序说明:说明系统中每一程序、分程序的细节和特性。

    2.4.1程序1的说明

      ● 功能:说明程序的功能。

      ● 方法:说明实现方法。

      ● 输入:说明程序的输入、媒体、运行数据记录、运行开始时使用的输入数据的类型和存放单元、与程序初始化有关的入口要求。

      ● 处理:处理特点和目的,如:用图表说明程序的运行的逻辑流程;程序主要转移条件;对程序的约束条件;程序结束时的出口要求;与下一个程序的通信与联结(运行、控制);由该程序产生并茶馆处理程序段使用的输出数据类型和存放单元;程序运行存储量、类型及存储位置等。

      ● 输出:程序的输出。

      ● 接口:本程序与本系统其他部分的接口。

      ●表格:说明程序内部的各种表、项的细节和特性。对每张表的说明至少包括:表的标识符;使用目的;使用此表的其他程序;逻辑划分,如块或部,不包括表项;表的基本结构;设计安排,包括表的控制信息。表目结构细节、使用中的特有性质及各表项的标识、位置、用途、类型、编码表示。

      ● 特有的运行性质:说明在用户操作手册中没有提到的运行性质。

    2.4.2程序2的说明

      与程序1的说明相同。以后的其他各程序的说明相同。

     

    3操作环境

    3.1设备:逐项说明系统的设备配置及其特性。

    3.2支持软件:列出系统使用的支持软件,包括它们的名称和版本号。

    3.3数据库:说明每个数据库的性质和内容,包括安全考虑。

    3.3.1总体特征:如标识符、使用这些数据库的程序、静态数据、动态数据;数据库的存储媒体;程序使用数据库的限制。

    3.3.2结构及详细说明

      ● 说明该数据库的结构,包括其中的记录和项。

      ● 说明记录的组成,包括首部或控制段、记录体。

      ● 说明每个记录结构的字段,包括:标记或标号、字段的字符长度和位数、该字段的允许值范围。

      ● 扩充:说明为记录追加字段的规定。

     

    4维护过程

    4.1约定:列出该软件系统设计中所使用全部规则和约定,包括:程序、分程序、记录、字段和存储区的标识或标号助记符的使用规则;图表的处理标准、卡片的连接顺序、语句和记号中使用的缩写、出现在图表中的符号名;使用的软件技术标准;标准化的数据元素及其特征。

    4.2验证过程:说明一个程序段修改后,对其进行验证的要求和过程(包括测试程序和数据)及程序周期性验证的过程。

    4.3出错及纠正方法:列出出错状态及其纠正方法。

    4.4专门维护过程:说明文档其他地方没有提到的专门维护过程。如:维护该软件系统的输入输出部分(如数据库)的要求、过程和验证方法;运行程序库维护系统所必需的要求、过程和验证方法;对闰年、世纪变更的所需要的临时性修改等。

    4.5专用维护程序:列出维护软件系统使用的后备技术和专用程序(如文件恢复程序、淘汰过时文件的程序等)的目录,并加以说明,内容包括:维护作业的输入输出要求;输入的详细过程及在硬设备上建立、运行并完成维护作业的操作步骤。

    4.6程序清单和流程图:引用或提供附录给出程序清单和流程图。

     

    12       软件问题报告

    1登记号

      由软件配置管理部门为该报告规定一个唯一的、顺序的编号。

    2登记日期

      软件配置管理部门登记该报告的日期。

    3问题发现日期

      发现该问题的日期和时间。

    4活动

      在哪个阶段发现的问题,分为单元测试、组装测试、确认测试和运行维护。

    5状态

      在软件配置记录中维护的动态指示,状态表示有:正在复查"软件问题报告",以确定将采取什么行动;"软件问题报告"已由指定的人去进行处理;修改已完成,并经过测试,正准备交给主程序库;主程序库已经更新,主程序库修改的重新测试沿未完成;做了重新测试,问题再现;做了重新测试,所做的修改无故障,"软件问题报告"被关闭;留待以后关闭。

    6报告人

      填写"软件问题报告"人员的姓名、地址、电话。

    7问题属于什么方面

      区分是程序的问题,还是模块的问题,或是数据库的问题,文件的问题。也可能是它们的某种组合。

    8模块/子系统

      出现的模块名。如果不知是哪个模块,可标出子系统名,尽量给出细节。

    9修订版本号

      出现问题的模块版本。

    10磁带

      包含有问题的模块的主程序库的磁带的标识符。

    11数据库

      当发现问题时所使用数据库的标识符。

    12文件号

      有错误的文件的编号。

    13测试用例

      发现错误时所使用测试用例的标识符。

    14硬件

      发现错误时所使用的计算机系统的标识。

    15问题描述/影响

      问题症兆的详细描述。如果可能,则写明实际问题所在。也要给出该问题对将来测试、接口软件和文件等的影响。

    16附注

      记载补充信息。

     

    13       软件修改报告

    1登记号

      由软件配置管理部门为该报告规定的编号。

    2登记日期

      软件配置管理部门登记"软件修改报告"的日期。

    3时间

      准备好"软件修改报告"的日期。

    4报告人

      填写该报告的作者。

    5子系统名

      受修改影响的子系统名。

    6模块名

      被修改的模块名。

    7"软件问题报告"的编号

      被"软件修改报告"处理或部分处理的"软件问题报告"的编号。如果某"软件问题报告"的问题只是部分被处理,则在编号后附以p,如1234p。

    8修改

      包括程序修改、文件更新、数据库修改或它们的组合。

    9修改描述

      修改的详细描述。如果是文件更新或数据库修改,还要列出文件更新通知或数据库修改申请的标识符。

    10批准人

      批准人签字,正式批准进行修改。

    11语句类型

      程序修改中涉及到的语句类型,包括:输入/输出语句类、计算语句类、逻辑控制语句类、数据处理语句类(如数据传送、存取语句类)。

    12程序名

      被修改的程序、文件或数据库的名字。

    13老修订版

      当前的版本/修订本标识。

    14新修订版

      修改后的版本/修订本标识。

    15数据库

      如果申请数据库修改,则给出数据库的标识符。

    16数据库修改报告

      数据库修改申请号。

    17文件

      如果要求对文件进行修改,则给出文件的名字。

    18文件更新

      文件更新通知单的编号。

    19修改是否已测试

      指出已对修改做了哪些测试,如单元、子系统、组装、确认和运行测试等,并注明测试成功与否。

    20"软件问题报告"是否给出问题的准确描述

      回答'是'或'否'。

    21问题注释

      准确地叙述要维护的问题。

    22问题源

      指明问题来自于哪里,如软件需求说明书、设计说明书、数据库、源程序等。

    23资源

      完成修改所需资源的估计,即总的人时数和计算机时间的开销。

    展开全文
  • 软件开发规范(国标)-全文档,项目亲用模板,符合国家标准
  • 开发规范详细文档

    2018-06-07 17:06:56
    培养良好开发习惯,致力成就合格开发人才,一切从熟悉开发规范开始
  • 开发文档规范

    2019-04-17 11:42:11
    前端的开发规范 1. 目录构建的规范 命名原则: 简洁 比如: src 源代码 img 图片资源 js JavaScript脚本 dep 第三方依赖包 不使用复数 比如: 不使用 imgs docs 根目录(root)结构按职能划分 比如: src 源...

    开发文档规范

    前端的开发规范

    1. 目录构建的规范

    命名原则:
    1. 简洁
      比如: src 源代码 img 图片资源 js JavaScript脚本 dep 第三方依赖包
    2. 不使用复数
      比如: 不使用 imgs docs
    • 根目录(root)结构按职能划分
      比如:
    1. src 源代码(逻辑)
      src
      common 公共资源
      img
      logo.png
      sprites.png
      css
      reset.css
      js
      conf.js 项目的配置文件

      public/static 静态资源
      js
      css
      tpl
      index.html
      shopcar.html
      img
      component 组件
      home
      shopcar
      login
      register
      user
      list
      detail
      view/tpl 项目模板 tpl 是 template的缩写
    2. doc 文档
    3. dep 第三方依赖包
    4. test 测试
    • 根据业务逻辑进行文件夹的划分

    • 总结:
      以上目录开发规范有两种使用途径

    1. 纯手动打造
    2. 快速构建工具做 —》 改造

    2. 前端命名规范

    BEM && OOCSS 针对的都是 css 命名规范
    jslint eslint js使用规范
    BEM规范

    1. 概念:
      Block Element Modifier,它是一种前端命名方法,旨在帮助开发者实现模块化、可复用、高可维护性和结构化的CSS代码。
    2. BEM是定义了一种css class的命名规范,每个名称及其组成部分都是存在一定的含义。
    3. 由拉丁字母, 数字, -组成css的单个名称.
      Block Element Modifier
      独立且有意义的实体, e.g. header, container, menu, checkbox, etc. Block的一部分且没有独立的意义, e.g. header title, menu item, list item, etc. Blocks或Elements的一种标志,可以用它改变其表现形式、行为、状态. e.g. disabled, checked, fixed, etc.
      Naming
      由拉丁字母, 数字, -组成css的单个名称.
      Block
      使用简洁的前缀名字来命名一个独立且有意义的抽象块或组件。
      e.g.
      .block
      .header
      .site-search
      Element
      使用__连接符来连接Block 和 Element。
      e.g.
      .block__element
      .header__title
      .site-search__field
      Modifier
      使用–连接符来连接Block 或 Element 和 Modifier。
      e.g.
      .block–modifier
      .block__element–modifier
      .header–hide
      .header__title–color-red
      .site-search__field–disabled
      实例
      HTML
    <form class="form form--theme-xmas form--simple">
    <input class="form__input" type="text" />
    <input class="form__submit form__submit--disabled" type="submit" />
    </form>
    CSS
    .form {
    }
    .form--theme-xmas {
    }
    .form--simple {
    }
    .form__input {
    }
    .form__submit {
    }
    .form__submit--disabled {
    }
    Buttons实例
    buttons
    

    HTML

    <button class="button">
    Normal button
    </button>
    <button class="button button--state-success">
    Success button
    </button>
    <button class="button button--state-danger">
    Danger button
    </button>
    

    CSS

    .button {
    display: inline-block;
    border-radius: 3px;
    padding: 7px 12px;
    border: 1px solid #D5D5D5;
    background-image: linear-gradient(#EEE, #DDD);
    font: 700 13px/18px Helvetica, arial;
    }
    .button--state-success {
    color: #FFF;
    background: #569E3D linear-gradient(#79D858, #569E3D) repeat-x;
    border-color: #4A993E;
    }
    .button--state-danger {
    color: #900;
    }
    

    OOCSS规范

    1. 概念
      Object Oriented CSS,面向对象的CSS,旨在编写高可复用、低耦合和高扩展的CSS代码。
      OOCSS是以面向对象的思想去定义样式,将抽象和实现分离,抽离公共代码。
    2. 总结:
      将重用的东西当做一个对象来看, 然后将不同的属性 放到另一个类名去
      举例:
      .list{
      background: #fff;
      }
      .list–width{
      width: 300px;
      }
      jslint eslint规范
      js代码的编写习惯

    3. 前端工作规范

    日报、周报
    日报:
    今天
    上午你做什么
    下午你做了什么
    遇到什么问题?是否有解决?
    明天的计划?(明天准备做什么)
    周报:
    2016.07.25-2016.07.29周报:
    1.本周工作主要内容:
    A:完成了宏视云h5播放器升级及大数据上报;
    B:修复xk-h5播放器bug:在三星手机自带浏览器无法进行滑动seek;
    C:admin-console后台管理系统初步完成终端访问页面和数据统计概览页面的制作;
    2.工作中存在的主要问题:
    A:webserver大数据展示页面移植到admin-console后台管理系统存在bootstrap与jquery.easyui冲突等几个兼容性问题;
    B:解决这个问题的思路可能不是最有效的方法,可能使用iframe会快些;使用iframe存在如何在easyui页面控制iframe页面及如何在浏览器窗口改变时,iframe也跟着改变等问题;
    3.下周工作计划:
    A:完成上周未完成的admin-console大数据展示页面的制作;
    B:完成工作以后,如果有时间的话尝试下用iframe解决;
    C:询问师兄有没有可以帮忙做的工作;
    邮件的发送
    1. 明确邮件发送谁?
    参与者: 一定要想清楚, 如果不清楚, 记得问一下你直接上司(同事)
    2. 邮件的主题:
    * 主题必须有且仅有一个
    * 必要时, 可以添加: 【请批阅】 、 等字眼
    3. 邮件正文
    * 称呼要明确:
    * 条理分明
    举例:
    各位老师好:
    一下内容是xxx 请xxx
    4. 署名:
    什么部分 什么职位 什么姓名 什么时间
    5. 附件
    需要说明附件是做什么的?
    6. 转发;
    需要对原邮件进行说明。,然后写清楚自己的意图
    

    4. 开发文档的书写规范

    1. html规范
    2. 标签上属性的顺序建议如下:
      class ( class 是为高可复用组件设计的,所以应处在第一位)
      id name (id 更加具体且应该尽量少使用,所以将它放在第二位)
      data-*
      src for type href value
      placeholder title alt
      aria-* role
      required readonly disabled
    3. id/class 命名规则: BEM OOCSS SMACSS(扩展)
    4. 注释规范(最好用英文)
    <div class="container">
    <!-- 头部--start -->
    <header></header>
    <!-- 头部--end -->
    <!-- 内容--start -->
    <div class="content">
    </div>
    <!-- 内容--end -->
    <!-- 底部--start -->
    <footer>
    </footer>
    <!-- 底部--end -->
    </div>
    
    1. css规范

    1. 属性顺序

    位置属性 ( position top right z-index display float etc.)
    大小 ( width height padding margin etc.)
    文字系列 ( font line-height letter-spacing color text-align ect.)
    背景 ( background border etc.)
    其他 ( animation transition etc.)
    以及注释的写法
    举例:

    .go--top{
    position: fixed;
    right:20px;
    bottom: 50px;
    z-index: 1000;
    display:block;
    width: 50px;
    height: 200px;
    font-size: 16px;
    background: #ccc;
    opactiy: 0.5;
    transition: all 0.5s;
    <!-- 注释 -->
    }
    
    2. 尽量不使用选择器 (css3选择器)

    .content.first-child
    举例:

    <div class="content">
    <ul>
    <li>
    <a href=""></a>
    <a href=""></a>
    <a href=""></a>
    </li>
    </ul>
    <ul>
    <li>
    <a href=""></a>
    <a href=""></a>
    <a href=""></a>
    </li>
    </ul>
    </div>
    
    1. 属性使用缩写:
      举例:
      body{ margin: 10px 0; background: url('./img.png') center; }
    2. 去掉小数点前面的 0
      body{ margin: 10px .8px; background: url('./img.png') center; }
    3. js规范
    4. 语言规范
    • 声明变量必须加上 let 关键字.不要再使用 var
    • 优先使用箭头函数
    • 使用模板字符串取代连接字符串
    1. 使用分号
      如果仅依靠语句间的隐式分隔,有时会很麻烦,使用分号更能清楚哪里是语句的起止,而且有些情况下,漏掉分号会出 BUG
    2. 块内函数声明
      不要在块内声明一个函数,e.g.
      if (x) { function zxm() {} }
      如果确实需要,使用函数表达式来初始化变量
      if (x) { let foo = function() {} }
    3. 循环注意
      forEach map filter every some for…in for…of for循环 while do…while
    4. 命名规范:
      camel 表示驼峰名明发 pascal表示 首字母大写
      变量名: 必须使用 camel 命名法
      参数名: 必须使用 camel 命名法
      函数名: 必须使用 camel 命名法
      方法/属性: 必须使用 camel 命名法
      私有 ( 保护 ) 成员: 必须以下划线开头
      常量名: 必须使用全部大写的下划线命名法,e.g. XTEP_HOST_API
      类名: 必须使用 pascal 命名法
      枚举名: 必须使用 pascal 命名法
      枚举的属性: 必须使用全部大写的下划线命名法,e.g. XTEP_HOST_API
      命名空间: 必须使用 camel 命名法
      语义: 命名同时还需要关注语义
    5. 声明:
      var let const 应该放在function 已进入函数的时候
      注释变量的功能及代表的含义,且应以字母顺序排序.每个变量单独占一行以便添加注释
      举例:
      var totalPrice = 1; //totalPrice表示商品购物车的总价 √
      var num = 10,totalNum = 100 ; 不建议
    6. 回调函数规范:
      回调函数统一使用 Promise 函数,回调成功的参数统一为 res,错误参数为 err
    let callback = new Promise((resolve, reject) => {
    if (/* 异步操作成功 */){
    resolve(value);
    } else {
    reject(err);
    }
    });
    callback.then((res) => {
    console.log('成功回调!', res);
    }).catch((err) => {
    console.log('失败回调!', err);
    });
    
    1. 标点规范
      js中统一使用反引号(``)或是单引号(’’), 不使用双引号("")
    2. 函数默认值
      函数默认值写在其他参数后面
      function zxm(a,b,name = 'zxm'){ console.log(name) }
    展开全文
  • 前端开发文档规范

    千次阅读 2018-12-11 16:03:06
    文章目录前端开发规范文档一、WXML 规范1. 属性顺序(不必要的情况下)2. `id` / `class` 命名规则3. WXML 注释规范二、`CSS` 规范属性顺序选择器属性使用缩写去掉小数点前面的 0三、 `JS` 规范1. 语言规范2. 使用分号...

    前端开发规范文档

    一、WXML 规范

    1. 属性顺序(不必要的情况下)

    • class ( class 是为高可复用组件设计的,所以应处在第一位)
    • id name (id 更加具体且应该尽量少使用,所以将它放在第二位)
    • data-\*
    • src for type href value
    • placeholder title alt
    • aria-\* role
    • required readonly disabled

    2. id / class 命名规则

    • 首先根据内容命名,如 header footer
    • 若根据内容无法找到合适的命名,再结合行为表现进行辅助, e.g. col-main blue-box
    • 名字一律小写,多个单词用 - 连接,不能使用下划线和 camel1 命名法, e.g. main-title 可基于最近的父元素名称作为前缀
    • 在不影响语义的情况下,可适当使用缩写,但是缩写只用来表示结构, e.g. col nav btn etc. , 别给我自编.
    • 避免广告拦截词汇 e.g. ad ads adv banner sponsor gg guangg guanggao etc.

    3. WXML 注释规范

    <!-- 头部 -->
    <view class="header">
      <!-- LOGO -->
      <image class="logo"></image>
      <!-- /LOGO -->
      <!-- 详情 -->
      <view class="detail"> </view>
      <!-- /详情 -->
    </view>
    <!-- /头部 -->
    

    二、CSS 规范

    属性顺序

    • 位置属性 ( position top right z-index display float etc.)
    • 大小 ( width height padding margin etc.)
    • 文字系列 ( font line-height letter-spacing color text-align ect.)
    • 背景 ( background border etc.)
    • 其他 ( animation transition etc.)
    • 以及注释的写法
        /* Button */
        button {
        /* Positioning */
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 100;
    
        /* Box-model */
        display: block;
        float: right;
        width: 100px;
        height: 100px;
    
        /* Typography */
        font: normal 13px "Helvetica Neue", sans-serif;
        line-height: 1.5;
        color: #333;
        text-align: center;
    
        /* Visual */
        background-color: #f5f5f5;
        border: 1px solid #e5e5e5;
        border-radius: 3px;
    
        /* Misc */
        opacity: 1;
        }
        /* End Button */
    

    选择器

    • 尽量不用选择器。

    属性使用缩写

    • 尽量使用简写 e.g. padding margin font background border border-radius etc.
    • 颜色代码尽量也简写 e.g. 白色 #fff

    去掉小数点前面的 0

    • 0.8 => .8

    三、 JS 规范

    1. 语言规范

    • 声明变量必须加上 let 关键字.不要再使用 var
    • 优先使用箭头函数
    • 使用模板字符串取代连接字符串
        // worst
        let url = "pages/index/index?id=" + id + "&title=321GO"
    
        //best
        let url = `pages/index/index?id=${id}&title=321GO`
    

    2. 使用分号

    • 如果仅依靠语句间的隐式分隔,有时会很麻烦,使用分号更能清楚哪里是语句的起止,而且有些情况下,漏掉分号会出 BUG

    3. 块内函数声明

    • 不要在块内声明一个函数,e.g.
        if (x) {
            function zxm() {}
        }
    
    • 如果确实需要,使用函数表达式来初始化变量
        if (x) {
            let foo = function() {}
        }
    

    4. 关于循环

    4.1 forEach

    • forEach 是用来循环数组的
        let zxmArray = [3,2,1,"GO"];
        Array.prototype.sex = "男";
        Array.prototype.address = function () {
            let tempArr = this;
            tempArr.push("Xtep")
            return tempArr
        };
        //correct
        zxmArray.forEach(function (value, index) {
            console.log(value);//3 2 1 GO
        });
        //correct
        for (var i = 0; i < zxmArray.length; i++) {
            console.log(zxmArray[i]);//3 2 1 GO
        }
        //correct
        let zxmMap = new Map();
        zxmMap.set("a", 3);
        zxmMap.set("b", 2);
        zxmMap.set("c", 1);
        zxmMap.set({
            d: "address"
        }, "GO");
    
        zxmMap.forEach(function (value, key, mapObj) {
            console.log(value);
            console.log(key)
            console.log(mapObj)
        });
    
    
        //Not recommended
        for (var i in zxmArray) {
            console.log(zxmArray[i]);//3 2 1 GO 男 f(){}
        }
    
    
    • forEach 不支持 break continue
        let zxmArray = [3,2,1,"GO"];
        zxmArray.forEach(function(value) {
            console.log(value);
                // 不能使用break
                break;
                //不能使用continue
                continue;
        });
    
    • forEach 过程中 arr.push() arr.pop() arr.shift() arr.unshift() arr.reverse() arr.sort() arr.concat() 都可以使用,但是arr.push() 不会改变输出顺序.

    4.2 map

    • map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组
        let zxmArray = [3,2,1,"GO"];
        let tempArr = zxmArray.map((value,index)=>{
            console.log(value, index);
            return "zxm" + value
        })
        console.log(tempArr)​​​​​// [ 'zxm3', 'zxm2', 'zxm1', 'zxmGO' ]​​​​​
    
        function add(num) {
            return num + 10
        }
        let zxmAdd = [3,2,1];
        let tempAdd = zxmAdd.map(add);
        console.log(tempAdd)//​​​​ ​[ 13, 12, 11 ]​​​​​
    

    4.3 for-in

    • for-in 循环实际是为循环 enumerable2 对象而设计的
    • configurable3 writable4 enumerable5 value6
        let zxmObj = {
            a: 3,
            b: 2,
            c: 1,
            d: "GO"
        };
    
        Object.defineProperty(zxmObj, 'address', {
            configurable: false,
            writable: true,
            enumerable: true,
            value: 'Xtep'
        })
    
        Object.defineProperties(zxmObj, {
            sex: {
                value: '男',
                enumerable: false
            },
            age: {
                value: 23,
                enumerable: false
            }
        })
    
        for (var prop in zxmObj) {
            console.log("zxmObj." + prop + " = " + zxmObj[prop]);//​​​​​zxmObj.a = 3 ​​​​​zxmObj.b = 2​​​​​ zxmObj.c = 1​​​​​ ​​​​​zxmObj.d = GO zxmObj.address = Xtep
        }
    
    • for–in 是用来循环带有字符串 key 的对象的方法

    4.4 for-of

    墙裂推荐使用 for-of 既比传统的 for 循环简洁,同时弥补了 forEachfor-in 循环的缺点

    • for-of 循环数组
        let zxmArray = [3,2,1,"GO"];
        for (var value of zxmArray) {
            console.log(value);// 3 2 1 GO
        }
    
    • for-of 循环字符串
        let zxmString = "321GO";
    
        for (let value of zxmString) {
            console.log(value);// 3 2 1 G O
        }
    
    • for-of 循环类型化的数组
        let zxmArray = new Uint8Array([0x00, 0xff]);
    
        for (let value of zxmArray) {
        console.log(value);// 0 255
        }
    
    • for-of 循环 Map
        let zxmMap = new Map();
        zxmMap.set("a", 3);
        zxmMap.set("b", 2);
        zxmMap.set("c", 1);
        zxmMap.set({
            d: "address"
        }, "GO");
    
        for (let [key, value] of zxmMap) {
            console.log(value);// 1 2 3 GO
        }
    
        for (let entry of zxmMap) {
            console.log(entry);// ["a", 1] ["b", 2] ["c", 1] [{d:"address"}, "GO"]
        }
    
    • for-of 循环 set
        let zxmSet = new Set([1, 1, 2, 2, 3, 3]);
    
        for (let value of zxmSet) {
            console.log(value);
        }
    
    • for-of 循环拥有 enumerable 属性的对象,但是并不能直接使用在普通的对象上,如果我们按对象所拥有的属性进行循环,可使用内置的 Object.keys()7 方法
        let zxmObj = {
            a: 3,
            b: 2,
            c: 1,
            d: "GO"
        };
    
        Object.defineProperty(zxmObj, 'address', {
            configurable: false,
            writable: true,
            enumerable: true,
            value: 'Xtep'
        })
    
        for (var prop of Object.keys(zxmObj)) {
            console.log("zxmObj." + prop + " = " + zxmObj[prop]);//​​​​​zxmObj.a = 3 ​​​​​zxmObj.b = 2​​​​​ zxmObj.c = 1​​​​​ ​​​​​zxmObj.d = GO zxmObj.address = Xtep
        }
    
    
    • for-of 循环生成器 ( generators ) 然鹅微信小程序并不支持 async await 也不支持
        function* fibonacci() { // a generator function
        let [prev, curr] = [0, 1];
        while (true) {
            [prev, curr] = [curr, prev + curr];
            yield curr;
        }
        }
    
        for (let n of fibonacci()) {
        console.log(n);
        // truncate the sequence at 1000
        if (n >= 1000) {
            break;
        }
        }
    

    5. 命名规范

    • 变量名: 必须使用 camel 命名法
    • 参数名: 必须使用 camel 命名法
    • 函数名: 必须使用 camel 命名法
    • 方法/属性: 必须使用 camel 命名法
    • 私有 ( 保护 ) 成员: 必须以下划线开头
    • 常量名: 必须使用全部大写的下划线命名法,e.g. XTEP_HOST_API
    • 类名: 必须使用 pascal8 命名法
    • 枚举名: 必须使用 pascal 命名法
    • 枚举的属性: 必须使用全部大写的下划线命名法,e.g. XTEP_HOST_API
    • 命名空间: 必须使用 camel 命名法
    • 语义: 命名同时还需要关注语义
      • 变量名应当使用名词
      • boolean 类型的应当使用 is has 等起头,表示其类型
      • 函数名应当用动宾短语 e.g. DrawBox()
      • 点击事件命名方式为 tap + 事件名 e.g. onClick()
      • 类名应当用名词

    6. 声明

    • 在函数的开始应先用 var let 关键字声明函数中要使用的局部变量
    • 注释变量的功能及代表的含义,且应以字母顺序排序.每个变量单独占一行以便添加注释

    7. 回调函数规范

    • 回调函数统一使用 Promise 函数,回调成功的参数统一为 res,错误参数为 err
        let callback = new Promise((resolve, reject) => {
            if (/* 异步操作成功 */){
                resolve(value);
            } else {
                reject(err);
            }
        });
    
        callback.then((res) => {
            console.log('成功回调!', res);
        }).catch((err) => {
            console.log('失败回调!', err);
        });
    
    • 私有函数以及回调函数统一放置在生命周期函数后,每个函数之间用一个空行分离结构,删除 js 文件中未用到的生命周期函数,保持代码的整洁,精简
        Pages({
            data:{
    
            },
    
            onLoad:function(event){
    
            },
    
            _self:function(){
    
            }
        })
    

    8. 数据绑定变量定义规范

    • 所有涉及到数据绑定的变量均需在 data 中初始化.禁止在不定义的情况下直接 setData,或者出现 undefined
    • 涉及到数据绑定的变量写 data 中,页面内传递的写在 page

    9. 函数默认值

    • 所有的函数参数的默认值要写在参数后面
        function zxm(name = 'zxm'){
            console.log(name)
        }
    

    三、组件规范

    1. 组件名命名规范

    • 组件在使用时命名以 " x- " 为开头的组件名,若组件名称为多个单词名拼接而成,采用 " - " 连接.
    • 组件标签在 page 页面使用时推荐使用单闭合标签,包含 slot的组件除外

    2. 触发事件规范

    • 组件点击触发事件建议用冒号分隔开
        <x-component-tag-name bind:myevent="onMyEvent" />
    

    3. externalClasses 命名规范

    • 命名格式采用如下形式: x-class-{name}

    4. 组件样式规范

    • 命名必须以 x- 开头

    四、标点规范

    • JS 中一致使用反引号 ` 或单引号 ‘’ , 不使用双引号
    • WXML CSS JSON 中均应使用双引号。

    五、注释规范

    • TODO: + 说明:

      如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。

    • FIXME: + 说明:

      如果代码中有该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。

    • XXX: + 说明:

      如果代码中有该标识,说明标识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。

    • HACK:+ 说明:

      如果代码中有该标识,说明标识处代码我们需要根据自己的需求去调整程序代码。

    • UNDONE: + 说明:

      如果代码中有该标识,说明在标识处有功能代码未写完,未写完的功能在说明中会简略说明。

    • NOTE: + 说明:

      如果代码中有该标识,用来解释说明这个功能的作用。

    • BUG: + 说明:

      如果代码中有该标识,用来标识此处代码有一个问题,问题会简略说明。


    1. 骆驼式命名法( Camel-Case )又称驼峰式命名法,是电脑程式编写时的一套命名规则(惯例).正如它的名称 CamelCase 所表示的那样,是指混合使用大小写字母来构成变量和函数的名字. ↩︎

    2. 可枚举性 enumerable 用来控制所描述的属性,是否将被包括在 for…in 循环之中.如果一个属性的 enumerablefalse , for-in Object.keys JSON.stringify 将不会取到该属性. ↩︎

    3. 表示能否通过 delete 删除此属性,能否修改属性的特性,或能否修改把属性修改为访问器属性,如果直接使用字面量定义对象,默认值为 true ↩︎

    4. 表示该属性是否可枚举,即是否通过 for-in 循环或 Object.keys() 返回属性,如果直接使用字面量定义对象,默认值为 true ↩︎

    5. 能否修改属性的值,如果直接使用字面量定义对象,默认值为 true ↩︎

    6. 该属性对应的值,默认为 undefined ↩︎

    7. 返回一个所有元素为字符串的数组,其元素来自于从给定的 object 上面可直接枚举的属性.这些属性的顺序与手动遍历该对象属性时的一致 ↩︎

    8. 单字之间不以空格断开或连接号或下划线连结,第一个单字首字母采用大写字母,后续单字的首字母亦用大写字母.例如: FirstName LastName ↩︎

    展开全文
  • 项目开发文档编写规范

    万次阅读 多人点赞 2018-05-13 17:41:08
    开发项目的过程中,我深刻的意识到,文档存在的意义并不是无用的报告,简洁明了的文档不光能记录你当下所做的,还能在繁重的工作中分神思考下一步该做什么时为你节约精力,并且在项目周期内,使整个项目保持一致性...

    前言

    在开发项目的过程中,我深刻的意识到,文档存在的意义并不是无用的报告,简洁明了的文档不光能记录你当下所做的,还能在繁重的工作中分神思考下一步该做什么时为你节约精力,并且在项目周期内,使整个项目保持一致性。所以,软件开发文档的编写是很有必要的。我参考网上的资料,结合自己项目开发时的心得,分享一些经验。

    文档类型

    在项目开发过程中,应该按要求编写好十三种文档,文档编写要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。同时依照项目人员的角色划分,完成不同类型的文档。以下排序并未严格按照时间排序。

    类型说明

    可行性分析报告(产品人员)

    可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理达到开发目标而可能选择的各种方案;实施方案的利弊;说明并论证所选定的方案。

    项目开发计划(产品人员)

    软件项目开发计划即为软件项目实施方案制定出的具体计划。项目开发计划应提前给管理部门,并作为开发阶段评审的基础。编写项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度、所需经费预算、所需的软硬条件等问题做出的安排记载下来,以便根据本计划开展和检查项目的开发工作。

    软件需求说明书(产品人员)

    软件需求说明书也称为软件规格说明。该说明书对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。软件需求说明书的编写目的就是为了使用户和软件开发者双方对该软件的初需求有一个共同的理解,并使之成为整个开发工作的基础。

    概要设计说明书 (开发人员)

    概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。编写的目的是说明对程序系统的设计考虑,包括程序系统的基本处理。流程、程序系统的组织结构、模块划分、功能分配、接口设计。运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。

    详细设计规格说明书(开发人员)

    详细设计说明书又可称程序设计说明书。编写目的是说明一个软件系统各个层次中的每一个程序(每人模块或子程序)的设计考虑。如果项目比较简单,层次较少,本文件可以不单独编写,有关内容合并入概要设计说明书。

    用户操作手册(产品人员)

    用户操作手册的编写是要使用非专门术语的语言,充分地描述该软件系统所具有的功能及基本的使用方法,提供该软件每一个运行的具体过程和有关知识,包括操作方法的细节。使用户(或潜在用户)通过本手册能够了解该软件的用途,并且能够确定在什么情况下,如何使用它。

    测试计划(测试人员)

    测试计划是软件项目实施计划中的一项重要的内容,应当在软件开发初期、即需求分析阶段制订。测试计划应当定义被测试对象和测试目标,确定测试阶段和测试周期的划分;制订测试人员、软硬件资源和测试进度等方面的计划,规定软件测试方法,测试标准以及支持环境和测试工具。针对子系统在特定的测试阶段所要进行的测试工作制订详细计划,它详细说明规定了测试小组的各项测试任务,测试策略、任务分配和进度安排等。

    测试分析报告(测试人员)

    测试工作完成以后,应当提交测试计划情况说明书,对测试结果加以分析,并提出测试的结论性意见。

    开发进度月报(开发人员)

    开发进度月报的编写目的是及时向有关部门汇报项目开发的进度和情况,以便及时发现和处理开发过程中出现的问题,一般,开发进度月报是以项目组单位每月编写的。如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目驵承担,开发进度月报将以分项目为单位每月编写。

    项目开发总结报告(产品人员)

    软件项目开发完成之后,应当与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力。此外,还需对开发工作做出评价,总结经验和教训。项目开发总结报告的编写是为了总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。

    软件维护手册(开发人员)

    主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护 过程的说明,便于软件的维护。

    软件问题报告(测试人员)

    指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。

    软件修改报告(开发人员)

    软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。

    总结

    根据项目的规模大小,以及人员构成,对所需要的文档进行编写,将大大提高项目开发的效率及规范程度。

    参考资料

    1. 软件开发相关文档刘米雪
    2. 软件开发文档总集Recode_的专栏
    3. 软件开发文档编写规范zhanghui962623727的博客
    展开全文
  • 前端开发规范文档

    千次阅读 2019-01-09 00:49:46
    一、html编码规范 ... 属性的值一定要用双引号("")括起来,且一定要有值,属性与属性之间空格... 表现和结构分离,代码中尽量不涉及任何表现元素,如style,font,border,bgcolor等属性,只写入文档的结...
  • Java开发规范文档

    千次阅读 2018-08-21 22:43:47
    1.唯品会java开发手册 https://vipshop.github.io/vjtools/#/standard/ 2.阿里巴巴Java开发手册(详尽版).pdf 下载地址 https://pan.baidu.com/s/1eeijgPHC0Wzy6p-ZNQv9EQ 密码 :ggfl...
  • 服务端开发规范文档

    千次阅读 2018-04-27 15:08:20
    xxx项目服务端开发规范文档 前言 技术选型 服务端:NodeJS(使用ThinkJS框架) 客户端:vuejs(ElementUI)/webpack 数据库:MySQL 接口规范 Http通信 - 通信数据格式:JSON - HTTP请求:统一使用...
  • JAVA_阿里开发规范文档1.3.1

    千次阅读 2018-01-29 13:10:55
    链接: https://pan.baidu.com/s/1gfW9S4N 密码: bsef
  • 文档为阿里巴巴开发规范,网上即可找到。闲时看的话做不到学以致用,吸收效率低;在开发途中研究此文档将事半功倍,但是开发的时候时间紧,任务重,没有时间去看这种文档,真是悖论啊。本博主按照比较适用的方式...
  • 目录规范   1.目录概述   组件文件 所有组件相关文件统一放在components目录下。   图片文件 项目图片文件放置于根目录的images文件夹下,组件独有的图片放在当前组件images目录下   模型文件 模型...
  • Vue项目开发最新、最全代码规范文档

    千次阅读 多人点赞 2019-02-21 10:43:49
    一、 目录结构 |— build 构建脚本目录 |— build.js 生产环境构建(编译打包)脚本 |— check-versions.js 版本验证工具 |— utils.js 构建相关工具方法(主要用来处理css类文件的loader) ...
  • 小程序开发文档规范

    千次阅读 2019-02-18 15:30:48
    目录规范 1.目录概述 组件文件 所有组件相关文件统一放在components目录下。 图片文件 项目图片文件放置于根目录的images文件夹下,组件独有的图片放在当前组件images目录下 模型文件 模型文件主要用于编写...
  • 移动Android开发-规范文档

    千次阅读 2018-09-10 17:40:22
    Android规范文档 本手册以开发者为中心视角分为 Java 语言规范, Android 资源文件命名与使用,Android 基本组件,UI 与布局,进程、线程与消息通信, 文件与数据库,Bitmap、Drawable 与动画,安全,其他等九大...
  • 国家标准软件开发文档模板

    千次下载 热门讨论 2009-12-02 09:51:47
    国家标准软件开发文档模板,包括:操作手册(GB8567——88)、测试分析报告(GB8567——88)、测试计划(GB8567——88)、概要设计说明书(GB8567——88)、开发进度月报(GB8567——88)、可行性研究报告(GB8567...
  • 1. 前端的开发规范 目录构建的规范 命名原则: 简洁 比如: src 源代码 img 图片资源 js JavaScript脚本 dep 第三方依赖包 不使用复数 比如: 不使用 imgs docs 根目录(root)结构按职能划分 比如: 1. src 源...
  • 软件开发文档编写规范

    万次阅读 多人点赞 2016-08-19 11:17:10
    为了控制好软件产品质量和规范,就必须用大量的文档约束软件工程的进度和状态。浩大的软件工程对于缺少工作和项目经验的人来说,必然是摸不着头脑不知从何开始。为了让大家能够快速适应标准的软件开发过程,今天我为...
  • mysql开发规范文档

    千次阅读 2013-02-27 18:56:13
    mysql开发规范文档   1.mysql数据库命名规范 2.表结构设计、数据类型选择 3.开发注意事项   1.mysql数据库命名规范 1.1 命名规范: Table/view/procedure/function/package: object类型简称+功能模块...
  • Mysql数据库规范文档

    2018-04-27 14:41:10
    以下规范仅供参考,请以实际开发需求进行调整。 规范说明 数据库名称:database_name 数据库字符集:utf8mb4 数据库版本:5.7+ 排序规则:utf8mb4_general_ci 存储引擎:innoDB 表命名:dn_ + 小写字母单词 +...

空空如也

1 2 3 4 5 ... 20
收藏数 292,924
精华内容 117,169
关键字:

开发规范文档