当前位置:文档之家› 华为开发文档

华为开发文档

华为开发文档
华为开发文档

软件开发及文档培训

(仅供内部使用)

深圳市华为技术有限公司

版权所有侵权必究

1 软件开发过程介绍

华为公司的软件开发过程基本上由以下几个开发过程组成: ?系统需求分析过程

?系统设计过程

?软件需求分析过程

?软件概要设计过程

?软件详细设计过程

?软件编码和单元测试过程

?软件集成与集成测试过程

?系统集成和系统集成测试过程

?系统验收测试过程

?软件维护过程

图一. 软件开发相关的过程示意图:各软件开发过程中应该输出的文档如下

2. 软件开发过程详细要求

2.1系统需求分析

开发者应该根据以下要求参与系统需求分析。

注:如果一个系统分成多个版本开发,可能直到最后一个版本需求才能完全定义。开发者的计划中应该定义在每个版本中确定的需求子集,每个版本中实现的需求子集。某个版本的需求分析应该理解为定义那个版本的系统需求。

2.1.1 分析用户的输入

开发者应该通过分析用户的输入来理解用户的需求。这个输入的形式可能是需求报告单、调查、问题/修改报告,原型的反馈,访谈或其他用户或反馈。

2.1.2 操作概念

开发者应该参与定义和记录系统的操作概念。结果应该包括在《操作概念描述(OCD)》文档模板中的所有条目。

2.1.3 系统需求

开发者应该参与定义和记录系统应该满足的需求以及验证每个需求已经被满足的方法。结果应在包括《系统/子系统规格说明书(SSS)》中的所有可能的条目。根据实际情况,有关系统接口的需求可以在SSS中规定或者在《接口需求规格说明书(IRSs)》中规定。

注:如果一个系统由子系统组成,系统需求分析)中的活动应该同系统设计中的活动叠代进行。定义系统的需求,设计系统并定义它的子系统,定义这些子系统的需求,设计子系统并定义他们的部件,如此下去。

2.2系统的设计

开发者应该按照下列要求参与系统的设计。

注:如果系统分成多个版本开发,系统的设计可能要等到最后一个版本才完成。开发者的计划中应该定义每个版本中所要完成的设计。一个特定版本的设计应理解为那个版本中应完成的设计内容。

2.2.1 系统范围的设计决定(System-wide design decisions)

开发者应该参与定义和记录系统范围的设计决定(这就是,有关系统运行设计和其它影响到系统部件选择、设计的决定)。结果应该包括《系统/子系统设计说明书(SSDD)》模板中有关系统范围设计决定的所有内容。根据实际情况,有关接口的设计可以包括在SSDD中或者《接口设计说明书》中,有关数据库的设计可以包括在SSDD或者《数据库设计说明书(DBDDs)》中。

注:除非在需求中有明确的规定,设计一般由开发者负责。开发要满足所有的需求并通过系统集成测试来证明需求得到了满足。

2.1.2系统结构设计(System architectural design)

开发者应该参与定义和记录系统的结构设计(定义系统的部件,它们的接口,以及它们之间的运行概念)以及系统部件同系统需求之间的跟踪关系。结果应该包括《系统/子系统设计说明书(SSDD)》中有关结构设计及跟踪性的部分的所有条目。根据需要,有关接口的设计可以包括在SSDDs或《接口设计说明书》中。

2.3 软件需求分析(Software requirements analysis)

开发者应该定义和记录每个CSCI应该满足的软件需求,验证每个需求是否完成的方法,以及CSCI需求同系统需求之间的跟踪关系。结果应该包括《软件需求规格说明书(SRS)》中所有的条目。根据需要,CSCIs接口的需求可以包括在SRS中或《接口需求规格说明书(IRSs)》中。

注:如果一个CSCI分成多个版本开发,需求可能要到最后一个版本才能完全定义。开发者的计划中应该说明每个版本中每个CSCI需求的子集。

2.4 软件设计

开发者应该根据以下要求进行软件的设计。

注意:如果一个CSCI分成多个版本开发,可能需要等到最后一个版本才能完全设计完毕。每个版本的软件设计应该理解为为了实现这个版本的需求而进行的设计。

2.4.1 CSCI范围的设计决定(CSCI-wide design decision).

开发者应该定义和记录CSCI范围的设计决定(这就是,有关CSCI的运行设计和其它影响到构成CSCI的软件单元选择和设计的设计决定)。结果应该包括《软件设计说明书(SDD)》中有关CSCI范围设计决定的所有项目。根据需要,有关接口的设计内容可以包括在SDD中,也可以安排在《接口设计说明书》中。有关数据库的设计可以安排在《数据库设计说明书》中。

2.4.2 CSCI结构设计(CSCI architectural design)。

开发者应该定义和记录每个CSCI的结构设计(定义构成CSCI的软件单元,它们的接口,它们之间的运行概念)以及软件单元CSCI需求的跟踪关系。结果应该包括《软件设计说明书》中有关结构设计及跟踪性的所有项目.根据实际需要,有关接口的设计内容可以包括在《接口设计说明书》中。

注意:如果软件单元又有其它软件单元组成,则CSCI的结构可以根据需要组成多个层次。例如。一个CSCI可以被分成三个软件单元,上述每个软件单元又可以分成其他的软件单元,如此下去。

2.4.2 CSCI的详细设计(CSCI detailed design)

开发者应该开发和记录每个软件单元的设计描述。结果应该包括《软件设计说明书》模板的所有项目。根据需要,接口的内容可以在《接口设计说明书》中,有关数据库访问和操作的软件单元可以安排在《数据库设计说明书》中。

2.5 软件编码与单元测试

开发者应根据以下要求进行软件单元实现和测试。

注意:“软件”的含义即包括计算机程序也包括计算机数据库。“实现"的含义为将软件实现转换为计算机程序和计算机数据库。如果一个CSCI的开发分成多个版本,软件实现、和单元测试可能要到最后一个版本才能完成。每个版本的软件实现和单元测试指在那个版本中需要实现的软件单元或部分软件单元。

2.5.1 软件实现

开发者应该开发和记录CSCI设计中的每个软件单元。这些活动应该包括,编码、数据定义、构造数据库,给数据库或其他数据文件赋值以及其他实现设计所需要的活动。

注意:设计中的软件单元不一定与实现它们的代码和数据实体有一一对应的关系。

2.5.2 单元测试准备

开发者应该建立测试用例(按照输入、预期输出和评价标准)、测试过程和测试数据来测试每个软件单元。测试用例应该覆盖单元详细设计的所有方面。开发者应该将这些信息记录在相应的软件开发文件中。

2.5.3 进行单元测试

开发者应该测试每个软件单元对应的软件。这些测试应该按照单元测试用例和测试过程进行。

2.5.4 修正和回归测试

开发者应该根据单元测试的结果进行所需的修正并进行回归测试,更新相关的软件开发文件。

2.5.5 分析和记录单元测试的结果

开发者应该分析单元测试的结果并将测试和分析结果记录在相应的软件开发文件中。

2.6 单元集成和测试

开发者应该根据以下要求进行单元集成和测试。

注意1:单元集成和测试指将两个或多个软件单元集成起来,通过测试保证它们在一起工作正常,继续这个过程直到每个CSCI中的软件单元都集成和测试过。因为一个软件单元可能由其它单元组成,一些集成测试在单元测试过程中就可以完成,这里不要求重复这些测试活动。

如果一个CSCI分成多个版本开发,CSCI的单元集成和测试可能要等到最后一个版本才能完成。

2.6.1 单元集成和测试的准备

开发者应该建立单元集成和测试的测试用例、测试过程和测试数据(按照输入、预期结果和评价标准)。测试用例应该覆盖CSCI范围和CSCI结构设计的所有方面。开发者应该将这些信息记录在相应的软件开发文件中。

2.6.2 进行单元集成和测试

开发者应该进行单元集成和测试,测试应该按照单元集成测试用例和过程进行。

2.6.3 修正和回归测试

开发者应该根据单元集成和测试的结果修正软件并进行回归测试,更新软件开发文件及其他所需的软件产品。

2.6.4 分析、记录单元集成和测试的结果

开发者应该分析单元集成和测试的结果并记录在相应的软件开发文件中。

2.7 CSCI/HWCI的集成和测试

开发者应该根据以下要求参加CSCI/HWCI(软件配置项/硬件配置项)的集成和测试活动。

注意1:CSCI/HWCI集成和测试的含义是将CSCI和与之有接口的HWCI、CSCI结合,通过测试来验证它们在一起工作是否正常。连续进行这个过程,直到系统中所有CSCI和HWCI都已经集成并进行测试过。这个集成测试的最后阶段是开发者内部的系统测试。

注意2:如果一个系统CSCI分成多个版本开发,CSCI/HWCI集成和测试可能要到最后一个版本才完成。某个版本的CSCI/HWCI的含义为此版本中的CSCI和此版本中HWCI进行测试以保证这个版本的系统需求得到了实现。

2.7.1 准备CSCI/HWCI的集成和测试

开发者应该参与开发和记录CSCI/HWCI集成和测试的测试用例(根据输入、预期输出和评价标准)、测试过程。测试用例应该覆盖系统范围设计和系统结构设计的所有方面。开发者应该将软件相关信息记录在软件开发文件中。

2.7.2 进行CSCI/HWCI集成和测试

开发者应该参加CSCI/HWCI的集成和测试。测试应该按照CSCI/HWCI集成测试用例和测试过程进行。

2.7.3 修正和重新测试

根据CSCI/HWCI集成和测试的结果,开发者应该做所需要的修正,参加所有需要的重新测试,更新相应的软件开发文件和其他软件产品。

2.7.4 分析和记录CSCI/HWCI集成和测试的结果

开发者应该参加分析CSCI/HWCI集成测试的结果。软件相关的分析和测试结果应该记录在相应的软件开发文件中。

2.8 系统测试

开发者应该根据以下要求参加系统测试。

注意1:系统测试用来给用户演示系统需求已经得到满足。它覆盖《系统/子系统规格说明书(SSS)》中的系统需求和相关的接口需求。这个测试和集成测试的最后阶段在开发者内部进行的系统测试不同。

注意2:如果系统分成多个版本开发,完整的系统测试可能在最后一个版本才遇到。每个版本的质量测试应该理解为为了验证此版本的需求已经得到满足而进行的测试。

2.8.1 系统测试中的独立性

负责系统测试的人不应该是进行详细设计或软件实现的人。这并不排除负责详细设计或实现的人对这个过程作出贡献,例如:提供需要了解系统内部实现的测试用例。

2.8.2 在目标计算机上的测试

开发者的系统测试应该包括在目标计算机(或其它用户同意的系统)上的测试。

2.8.3 系统测试的准备

开发者应该参加参加开发和记录测试的准备、测试用例、测试过程以及测试用例和系统需求之间的跟踪性。对于软件系统,结果应该包括《软件测试说明书(STD)》中的所有项目。开发者应该参加准备系统测试需要的测试数据以及通知用户测试的时间和地点。

2.8.4 运行(自己动手)系统测试

如果系统测试需要用户见证,开发者应该参加(自己动手)运行系统测试用例和过程以保证其完整性和正确性。开发者应该将这些测试活动的结果记录在相应的软件开发文件中并根据需要对测试用例和过程进行更新。

2.8.5 进行系统测试

开发者应该参加系统测试。测试应该根据测试用例和过程进行。

2.8.6 修正和重新测试

根据系统测试的结果,开发者应该对软件做必要的修正,给用户提供重新测试的建议,参加所有需要的重新测试并更新软件开发文件和其他软件产品。

2.8.7 分析和记录系统测试结果

开发者应该参加分析和记录系统测试结果。对于软件小,这些结果应该包括《软件测试报告(STR)》中的所有项目。

软件需求规格说明书

(SRS)

(仅供内部使用)

深圳市华为技术有限公司版权所有侵权必究

修订记录

目录

1范围 4 1.1标记 4 1.2 系统概论 4 1.3文档概述 4 2参考文献 4 3需求 4 3.1所需的状态和模式 5 3.2CSCI能力需求 5 3.2.1(CSCI 能力) 5 3.3CSCI 外部接口需求 5 3.3.1 接口标识符和示意图 5 3.3.2(项目内部接口唯一的标识符) 6 3.4CSCI内部接口需求7 3.5CSCI内部数据需求7 3.6适应性需求7 3.7安全性需求8 3.8安全和隐蔽性需求8 3.9CSCI的环境需求8 3.10计算机资源需求8 3.10.1计算机硬件需求8 3.10.2计算机硬件资源利用程度需求8 3.10.3计算机软件需求8 3.10.4计算机通讯需求8 3.11 软件质量因素9 3.12设计和实现约束9 3.13人员相关的需求9 3.14培训有关的需求9 3.15后勤相关的需求9 3.16其它需求9 3.17包装的需求9 3.18需求的优先和关键顺序9 4质量保证措施10 5需求跟踪10

6 注释10

7 附录10

软件需求规格说明书

软件需求规格说明书(SRS)规定一个计算机软件配置项(CSCI)的需求,以及验证每个需求是否得到满足的方法。CSCI的外部接口需求可以在SRS中进行规

定,也可以在一个或多个接口需求规格说明书(IRS)中进行规定,在软件需求规格说明书(SRS)对这些文档进行引用。

软件需求规格说明书(SRS)(可能需要IRS的补充)是CSCI设计和测试的基础。

1.范围

这部分将被分为以下几段。

1.标识

这一部分应包含系统、接口实体、被说明接口的完整标识,尽可能包括:标识号码、标题、缩写、版本号、发布号。

1.系统概论

这一部分将简要的阐述文档所说明的系统和软件的目的。它将大概描述系统、软件的本质;总结系统的发展、操作和维护的历史;确定这个方案的发起人、受益人、使用人、开发者和维护机构;确定当前的状况并计划操作地点;最后列出其它相关联的文档。

1.文档概述

这一部分总结了这个文档的目的和内容,并且描述了与文档用处有关的任何安全性及保密性的事项。

1.参考文献

这一部分列出了一些文档中引用的所有文档的号码、名称、修订本和数据。

1.需求

本部分应该分成以下段落来描述CSCI的需求,它们是CSCI为了被接受而必须具有的特性。CSCI的需求是为了满足分配到本CSCI的系统需求而产生的软件需求。需要给每个需求分配一个项目唯一的标识符以支持需求的测试和跟踪,对需求的描述必须能够达到可以设计针对性测试的程度。如果在以后的4、5节没有说明,在这里每个需求都要注明相应的测试方法(见4节)及与系统需求间的追溯关系(见5节)。需求描述的详细程度应该依照以下原则:包括CSCI达到可接受的标准所必须具有的特征,避免进行设计描述,这些是开发者的工作。如果在某一

段中没有需求,只需要写“无”即可。如果一个需求在多个段落中出现,它只需描述一次即可,在其它地方进行引用。

1.所需的状态和模式

如果CSCI工作在不同的状态和模式中,并且在不同的工作状态和模式有不同的需求,本段应定义每一个状态和模式。状态和模式的例子如下:等待、待命、行动、事后分析、训练、降级、紧急、备份、战时、和平时期。状态和模式间的区别时灵活的。一个CSCI可以只按照状态描述,只按照模式描述,按照模式中的状态描述,按照状态中的模式描述或按照任何其他有用的顺序描述。如果系统没有任何状态和模式的特别要求,按照实际情况描述即可,没有必要“人工创造”不同。如果需要按照模式或状态描述,那么每个需求或者需求集合都要和状态或模式相关。这些相关性可以通过段落或附录中的一个表格进行说明,也可以对需求进行注释。

1.CSCI能力需求

本段应该分成以下子段落以逐条说明CSCI的每个能力需求。一个“能力”定义成一组相关的需求。名词“能力”可以用“功能”、“题目”、“目标”等有助于表达需求的名词替代。

1.(CSCI 能力)

本段定义CSCI的一个能力并罗列有关此能力的需求。如果此能力分成几个组成部分描述更清楚些,这些子能力应在各子段落中描述。需求规定CSCI的动态行为并包括可能的参数,例如:反映时间、吞吐时间、其他时间约束、顺序、准确度,能力(多少)、优先级、连续操作的需求,不同操作条件下允许的偏差。需求应尽可能包括:在异常情况下、越界情况下所需的动态行为,错误处理的需求,紧急情况下提供连续操作能力的需求。3.3段规定了描述CSCI有关输入输出需求时需要考虑的一系列题目。

1.CSCI 外部接口需求

本段应该分成以下几个子段落来规定CSCI的外部接口需求,本段可能引用一个或多个接口需求规格说明书或其它相关文档。

1.接口标识符和示意图

本段应该定义CSCI所需的外部接口(它们是和其他外部实体之间涉及共享、提供或交换数据的关系)。每个接口的标识包括一个项目内部唯一的标识符以及接口实体(系统、配置项、用户、等),对接口实体的说明尽量包括以下内容:名称、编号、版本、参考文档。定义应该说明那个接口实体具有固定的接口特性(因

此对相应的接口实体提出接口要求),那些正在被开发或修改(因此被赋予接口需求)。应该提供一个或多个示意图以对接口进行说明。

1.(接口的标识符)

本段(从3.3.2开始〕应该给CSCI的一个外部接口定义一个项目唯一的标识符,简要描述接口实体。为了描述一个或者多个接口实体的需求,可以划分为子段落。如果一个接口实体未被本文档覆盖(例如一个外部系统),但是描述接口需要提到它时,应该以假定的方式说明,或者以“当[未被覆盖的实体]这样作,[系统中说明的实体]将........" 样的方式说明。本段可能会引用其他文档(例如:数据字典、标准协议、用户接口标准)。设计描述应该尽可能包括以下信息,可以用任何适合需求的顺序提供,应该注明这些特征从接口实体角度看的任何区别(例如:对数据元素的大小、频率或其他特征的不同理解):

?接口实体必须赋予接口的优先级。

?接口类型的需求(例如:实时数据传送,存储-检索,等等)。

?接口实体提供、存储、发送、访问、接收的每个数据元素的特征。例如:

1.名称/标记

1.项目唯一的标记

2.自然语言的名称

3.国防部标准数据元素名称

4.技术名称(例如,代码或数据库中的变量名和域名)

5.缩写词或同义词

2.数据类型(字符型、整型等)

3.大小和格式(例如字符串的长度和分隔符号〕

4.测量单位(例如米、美元、微秒)

5.可能的数值范围(例如:0-99)

6.准确度(正确的程度)和精确度(有效数字的位数)

7.优先级、时序、频率、数量、顺序和其他约束,例如:是否更新数

据成员,是否应用行业标准。

8.安全和隐蔽性的约束

9.源头(设置/发送实体)和接受(使用/接收实体)

?数据元素集(纪录,消息,文件,数组,显示,报告)的特性。

11.名称/标记

1.项目唯一的标记

2.自然语言的名称

3.技术名称(例如,代码或数据库中的变量名和域名)

4.缩写词或同义词

12.装配中的数据元素及其类型(编号,顺序,分组)

13.媒介(如磁盘)和在媒介上的元素/装配的结构

14.输出的视觉和听觉特性,其他输出(颜色,字体,布局,图标,亮

度,蜂鸣等)

15.数据集合之间的关系,如排序/存取特性

16.优先级、时序、频率、数量、顺序和其他约束,例如:是否更新数

据成员,是否应用行业标准。

17.安全和隐蔽性的约束

18.源头(设置/发送实体)和接受(使用/接收实体)

?接口使用的通讯方法

?项目唯一的标识符

?通讯链接、波段、频率、媒质和特性。

?消息格式

?流控(例如:顺序号和分配缓冲)。

?数据传输数率,是周期性还是突发性,传送的间隔。

?路由、地址、和命名约定。

?传送服务,包括:优先和分级

?安全和隐蔽性的考虑,例如:加密、用户验证、隔离和审计。

?接口中使用的协议特性需求

?项目唯一的标志符

?协议的优先级和层次

?包操作,包括拆分、组装、路由和寻址

?合法性检查,出错控制,恢复过程。

?同步过程,包括:建立连接,保持,结束。

?状态、标志、任何其他的报告特性。

?其他特性,例如:接口实体的物理兼容性(体积、公差、负荷、电压、插头兼容性等)

36.CSCI内部接口需求

本段定义CSCI内部接口需求。如果内部接口情况由开发者决定,这里说明即可。如果需要定义内部接口需求,请参照3.3的题目进行说明。

1.CSCI内部数据需求

本段定义CSCI内部数据的需求,内部数据库和数据文件的需求。如果所有的设计由开发者决定,这里只要说明即可。如果具有这方面的需求,本段的3.3.x.c 和3.3.x.d提供了需要考虑的条目。

1.适应性需求

本段规定CSCI和安装数据有关的需求(例如:和安装地点有关的经纬度,或和安装有关的州税务码)以及不同操作下可能不同的操作参数需求(例如:指示和操作有关的目标变量或数据记录的参数)。

1.安全性需求

本段应该描述CSCI有关避免或减少对人员、财产、环境的意外伤害的需求。例如:必须提供一些保证措施来避免一些无意中的行为(例如:无意中发出一个关

闭自动驾驶仪的命令)和“不行为”(例如:没有按要求发出“关掉自动驾驶”命令)。

1.安全和隐蔽性需求

本段规定有关保持系统安全和隐蔽性的需求。这些需求包括,CSCI操作必须的安全和隐蔽环境,需要满足的安全和隐蔽性级别。CSCI需要面对的安全/隐蔽性风险,减少这些风险所需的安全性措施,必须满足的安全/隐蔽性策略,CSCI必须提供的安全/隐蔽性责任,通过安全/隐蔽性检验所必须满足的标准。

1.CSCI的环境需求

本段规定CSCI有关操作环境的需求。例如:CSCI所必须运行的操作环境、计算机硬件。(有关计算机资源的详细需求在下段描述)。

1.计算机资源需求

1.计算机硬件需求

本段规定CSCI必须使用的计算机硬件资源的需求。需求包括:每种设备的数量,体积,能力,其它对处理器、存储器、输入输出设备、辅助存储器、通讯网络设备和其它所需设备的需求。

1.计算机硬件资源利用程度需求

本段说明有关CSCI的计算机硬件资源使用方面的需求,例如:允许最大限度占用的处理器、存储器、输入输出设备、通讯网络设备能力。需求(例如以每种资源所允许的占用百分比说明)应说明测量条件和环境。

1.计算机软件需求

本段规定CSCI运行使用到或者需要合作的计算机软件。例如:操作系统、数据库管理软件、通讯网络软件,设备软件,输入和设备模拟器,测试软件,制造软件等等。应该说明每种软件的正确名称、版本、参考文档。

1.计算机通讯需求

本段规定CSCI必须使用的计算机通讯需求。例如:需要相互连接的地理位置;配置和网络拓扑;

传送技术;数据传送速率;网关;需要的系统使用次数;传送和接收数据的类型和容量;传送/接收/反馈的时间界限;数据量的峰值;诊断特点;

1.软件质量因素

本段应该规定CSCI的软件质量需求。例如:有关CSCI功能性(完成所有的所需功能的能力),可靠性(提供正确、连续操作结果的能力),可维护性(能够很容易修正的能力),可用性(在需要时候能够很容易访问和操作),灵活性(适应变化环境的能力),可测试性(容易和全面测试的能力),重用性(应用在多个应用中的能力),易用性(容易学习和使用的能力),以及其它属性。

1.设计和实现约束

本段应说明CSCI设计和实现的约束。这些需求可能需要对民用和军用标准进行引用。例如:

1.使用专门的CSCI结构或对结构的需求,例如:数据库或其他软件单元;

标准、现有部件的使用。

2.特别设计和实现标准的使用;特别数据标准的使用;特别编程语言的使用

3.为了支持预期增长的技术、威胁和目标所必须提供的灵活性和可扩展性。

1.人员相关的需求

本段应该规定对使用或支持本CSCI所需的人员需求,包括:数量、熟练程度、责任链、培训需求或者其他信息。例如对同时进行操作者数量的要求,内部帮助和培训特征。同时也应包括工程需求的人的因素。这些需求应该包括:对人的能力及限制的考虑;在一般情况下和极端环境中可预见的人的错误;人为错误将造成特别严重后果的区域。例如:错误信息显示的颜色和时段,关键指示器和开关的物理位置,声音信号的使用。

1.培训有关的需求

本段应该包括CSCI有关培训的需求。例如:CSCI中应该包括的训练软件。

1.后勤相关的需求

本段应该规定CSCI与后勤相关的需求,例如:系统维护、系统支持、系统运输、支持系统的需求,对原有设施的影响,对现有设备的影响。

1.其它需求

本段应该包括在上述段落中没有包括的其它需求。

1.包装的需求

本部分应该说明CSCI包装、标签、发行的需求。

1.需求的优先和关键顺序

本段应该通过优先顺序、关键程度、权重来说明规格中需求的相对重要程度。例如:要注名那些需求对安全性、保密性或隐蔽性上非常关键,以便进行特殊处理。如果所有需求具有相同的权重,本段这样据实描述即可。

1.质量保证措施

本段应说明一系列的质量保证措施,并说明对3节中每个需求所采用的质量保证方法。可以用表格的形式提供这方面的信息,或者在3节中对需求进行说明时加上相关的注释。

1.演示:该接口实体的运作依赖于明显的功能性操作,并且不需要使用仪器、特殊测试装备、或是事后的分析。

2.测试:接口实体的运作需要使用仪器、测试装备,来收集数据,用于事后的分析。

3.分析:处理使用其它的判定方法获取的数据,例如简约、译码、或是推断。

4.检视:对接口实体、文档的正规检视。

5.特殊合格性判定方法:所有的特殊合格性判定方法,如专用的工具、技术、过程、设备和容忍极限。

1.需求跟踪

1.本文档中的需求到系统(或子系统)需求的跟踪。(这种跟踪也可以由第三节中的需求的注释表明。)

注释:每一层次的系统求精可能会导致需求无法直接跟踪到高层的需求。例如,有一项系统构结构设计产生了多个软件配置项(CSCIs),这有可能产生了如何划分接口的需求,然而这些需求并没有包括在系统需求之中。这种需求可能会跟踪到一般性的需求,象“系统实现”,或是跟踪到导致他们产生的系统设计决定上。

2. 从每个系统(子系统)需求到CSCI需求间的跟踪。与CSCI有关的所有需求都应该被说明。如果有些跟踪涉及到的CSCI需求在接口需求说明书中(IRS),应该对这些文档进行引用。

1.注释

本段包括对理解文档有帮助的其他一般信息(例如:背景、词汇表、原理)。本部分应该包括所有专有名词、缩写词、术语、定义及其含义。

1.附录

附录用来提供为了文档维护方便而进行独立发行的信息(例如,图表,分类数据)。如果可能,在文档主体中需要相关数据的地方提供对文档的索引。为了便于处理,

接口需求说明书(IRS)

(仅供内部使用)

深圳市华为技术有限公司

版权所有侵权必究

修订记录

目录

接口需求描述说明书 4 1 范围: 4 1.1 标志 4 1.2 系统概述 4

1.3 文档的概述 4

2 参考文献 4

3 需求

4 3.1 接口定义和图示 4 3.2(项目内部唯一的接口标识符) 5

3.3 需求的优先级和紧急程度 6

4 合格性规定(qulification provisions) 7

5 需求跟踪7

6 注释7

7 附录7

华为软件编程规范

华为软件编程规范Revised on November 25, 2020

目录 1 排版 6 2 注释11 3 标识符命名18 4 可读性20 5 变量、结构22 6 函数、过程28 7 可测性36 8 程序效率40 9 质量保证44 10 代码编辑、编译、审查50 11 代码测试、维护52 12 宏53

1 排版 11-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: + STAT_SIZE_PER_FRAM * sizeof( _UL ); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state( stat_item ); report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid (stat_item)) && (act_task_table[taskno].result_data != 0));

华为JAVA编程规范

1 Java 编程规范 1.1 排版 1.1.1 规则 规则1程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进。(1.42+) 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具。 规则2分界符(如大括号…{?和…}?)应各独占一行,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序 或者static、,synchronized等语句块中都要采用如上的缩进方式。(1.42+) 示例: if (a>b) { doStart(); } 规则3较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐, 语句可读。(1.42+) 示例: if (logger.isDebugEnabled()) { logger.debug("Session destroyed,call-id" + event.getSession().getCallId()); } 规则4不允许把多个短语句写在一行中,即一行只写一条语句(1.42+) 说明:阅读代码更加清晰 示例:如下例子不符合规范。 Object o = new Object(); Object b = null; 规则5if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while,switch等语句的执行语句无论多少都要加括号{},case 的执行语句中如果定义变量必须加括号{}。 (1.42+) 说明:阅读代码更加清晰,减少错误产生 示例: if (a>b) { doStart(); }

华为Java语言编码规范标准

Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd

Revision Record 修订记录

Table of Contents 目录 1. 范围 (4) 2. 规范性引用文件 (4) 3. 术语和定义 (4) 4. 排版规范 (5) 4.1. 规则 (5) 4.2. 建议 (7) 5. 注释规范 (9) 5.1. 规则 (9) 5.2. 建议 (15) 6. 命名规范 (17) 6.1. 规则 (17) 6.2. 建议 (18) 7. 编码规范 (20) 7.1. 规则 (20) 7.2. 建议 (24) 8. JTEST规范 (26) 8.1. 规则 (26) 8.2. 建议 (27)

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

华为软件编程规范.doc

文档编号产品版本受控状态 DC-SB-2003-1005V 1.0 内部 产品名称:软件编程规范共页 软件编程规范 (仅供内部使用) 北京世纪百合科技有限公司 Beijing Centurial Lily Technology Co.,Ltd. 版权所有不得复制

文档修改记录

目录 1.引言 (4) 1.1 目的 (4) 1.2 范围 (4) 2.规范 (4) 2.1 文件 (4) 2.2版面风格 (8) 2.3 标识符命名 (12) 2.4 函数与宏 (14) 2.5 代码的可靠性 (18) 3.附录:通用类型的公共定义 (23)

1.引言 1.1目的 本规范的目的在于增加源代码的可读性,减少程序员对代码理解上的偏差,使程序员能够编写出可靠的代码,降低代码维护成本。 1.2范围 本规范内容涉及范围包括:文件、版面、注释、标识符、变量和结构、函数、宏以及可理解性等。本规范适用于公司开发的所有软件产品。在新软件的编码过程中本规范必须执行。 2.规范 2.1文件 2.1.1头文件的名称一律为小写,格式为“子系统名_文件名.h”。例如: ipf_protocol.h等。 2.1.2头文件的格式如下: ?注释头,格式参见软件编程规范; ?头文件预编译开关开始,格式为: #ifndef 预编译开关 #define 预编译开关 其中预编译开关格式为:“ _文件名_H”,其中文件名一律大写 ?头文件内容; ?头文件预编译开关结束,格式为: #endif 用来和头文件预编译开关的开始对应。 例如:以下为ipf_ip.h头文件的内容: /************************************************************ Copyright (c) Lily Of The Century Technology Co., LTD. ALL RIGHTS RESERVED Description: // 用于详细说明此程序文件完成的主要功能 *************************************************************/ #ifndef _IPF_IP_H #define _IPF_IP_H ...

华为公司招聘职位要求

华为公司招聘条件要求 软件研发工程师: 工作职责 : 负责通信系统软件模块的设计、编码、调试、测试等工作,参与相关质量活动,确保设计、实现、测试工作按时保质完成 职位要求: 1、计算机、通信或相关专业本科以上学历 2、熟悉C/C++、JAVA底层驱动软件编程,熟悉 TCP/IP 协议、 Internet 网的基本知识 3 、对通信知识有一定基础 4、能够熟练阅读和理解英文资料 2、硬件研发工程师 : 工作职责 : 从事单板硬件、光技术、逻辑、射频、装备、 机电、CAD器件可靠性等模块开发工作,参与相关质量活动, 确 保设计、实现、测试工作的按时保质完成。 职位要求: 1、电子、计算机、通信、自控、自动化相关专业本科以上学历 2、具备良好的数字、模拟电路基础 3、熟悉C/嵌入式系统开发/底层驱动软件编程/逻辑设计 4、能 够熟练阅读和理解英文资料芯片设计工程师: 工作职责 :

1、负责数字 / 模拟芯片开发和设计、验证、实现工作; 2、按照模块规格和芯片总体方案的要求,严格遵循开发流程、模板、标准和规范,承担 模块的详细设计和实施工作,确保开发工作按时按质完成; 3、及时编写各种设计文档和标准化资料,实现资源、经验共享。 职位要求: 1、微电子、计算机、通信工程等相关专业 2、了解或实际应用过 VHDL/Verilog 语言编程,掌握数字电路设计,或具有FPGA设计经验,或熟悉综合(SYN”时序分析(STA /布局布线(Place and routing ) /可测性设计(DFT,有相关工具应用的经验;或具有模拟 IC 设计项目经验 射频开发工程师: 工作职责 : 负责通讯设备射频模块的开发、设计和优化工作;从事无线基站通信设备天馈及其解决方案方面的研究和开发工作。 职位要求: 1、电子、通信、电磁场与微波、微电子半导体等专业本科及以上学历; 2、能够熟练阅读和理解英文资料; 3、掌握并有RF仿真经验(如ADS优先; 4、有射频产品开发经验优先。 云计算研发工程师:

华为代码规范文档

代码规范文档

目录 1 概述 (5) 1.1 编写目的 (5) 1.2 文档约定 (5) 1.3 预期的读者和阅读建议 (5) 1.4 参考文献 (5) 2 排版要求 (5) 2.1 程序块缩进 (5) 2.2 程序块之间空行 (5) 2.3 长语句和长表达式 (6) 2.4 循环、判断等长表达式或语句 (7) 2.5 长参数 (7) 2.6 短语句 (8) 2.7 条件、循环语句 (8) 2.8 语句对齐 (8) 2.9 函数、过程和结构等语句块 (9) 2.10 程序块分界符 (9) 2.11 操作符前后空格 (10) 2.12 其他 (11) 3 注释 (11) 3.1 有效注释量 (11) 3.2 公司标识 (11) 3.3 说明性文件 (12) 3.4 源文件头 (13) 3.5 函数头部说明 (13) 3.6 注释与代码一致 (14) 3.7 注释内容 (14) 3.8 注释缩写 (14) 3.9 注释位置 (14) 3.10 变量、常量注释 (15) 3.11 数据结构的注释 (15) 3.12 全局变量 (16) 3.13 注释缩排 (16) 3.14 注释与代码之间空行 (17) 3.15 变量定义、分支语句 (17) 3.16 其他 (19) 4 标识符命名 (20) 4.1 命名清晰 (20) 4.2 特殊命名需注释 (21) 4.3 命名风格保持一致 (21) 4.4 变量命名 (21) 4.5 命名规范与系统风格一致 (21) 4.6 其他 (22) 5 可读性 (23) 5.1 运算符优先级 (23)

5.2 避免直接使用数字作为标识符 (23) 5.3 其他 (24) 6 变量、结构 (25) 6.1 公共变量 (25) 6.2 公共变量说明 (25) 6.3 公共变量访问说明 (25) 6.4 公共变量赋值 (26) 6.5 防止局部变量与公共变量同名。 (26) 6.6 严禁使用未经初始化的变量作为右值。 (26) 6.7 其他 (26) 7 函数、过程 (34) 7.1 对所调用函数的错误返回码要仔细、全面地处理。 (34) 7.2 明确函数功能,精确(而不是近似)地实现函数设计。 (34) 7.3 局部变量 (34) 7.4 全局变量 (34) 7.5 接口函数参数 (35) 7.6 其他 (35) 8 可测性 (44) 8.1 调测开关 (44) 8.2 打印信息 (45) 8.3 单元测试 (45) 8.4 集成测试 (45) 8.5 断言使用 (45) 8.6 设置与取消有关测试手段时,不能影响软件功能功能 (48) 8.7 版本维护 (48) 8.8 其他 (48) 9 程序效率 (50) 9.1 编程时要经常注意代码的效率。 (50) 9.2 提高代码效率 (50) 9.3 全局效率高于局部效率 (51) 9.4 提高代码空间效率 (51) 9.5 循环体内工作量最小化 (52) 9.6 其他 (53) 10 质量保证 (56) 10.1 在软件设计过程中构筑软件质量。 (56) 10.2 代码质量保证优先原则 (56) 10.3 只引用属于自己的存贮空间。 (56) 10.4 防止引用已经释放的内存空间。 (56) 10.5 内存及时释放 (57) 10.6 文件句柄及时关闭 (57) 10.7 防止内存操作越界 (58) 10.8 认真处理程序所能遇到的各种出错情况 (59) 10.9 初始化变量 (59) 10.10 数据一致性检查 (59) 10.11 严禁随意更改其它模块或系统的有关设置和配置 (59) 10.12 不能随意改变与其它模块的接口 (59)

华为软件编程地要求规范

软件编程规范 (仅供内部使用) 北京世纪百合科技有限公司 Beijing Centurial Lily Technology Co.,Ltd. 版权所有不得复制

文档修改记录

目录 1.引言 (6) 1.1 目的 (6) 1.2 范围 (6) 2.规范 (6) 2.1 文件 (6) 2.2版面风格 (4) 2.3 标识符命名 (9) 2.4 函数与宏 (11) 2.5 代码的可靠性 (15) 3.附录:通用类型的公共定义 (21)

1.引言 1.1目的 本规范的目的在于增加源代码的可读性,减少程序员对代码理解上的偏差,使程序员能够编写出可靠的代码,降低代码维护成本。 1.2范围 本规范内容涉及范围包括:文件、版面、注释、标识符、变量和结构、函数、宏以及可理解性等。本规范适用于公司开发的所有软件产品。在新软件的编码过程中本规范必须执行。 2.规范 2.1文件 2.1.1头文件的名称一律为小写,格式为“子系统名_文件名.h”。例如: ipf_protocol.h等。 2.1.2头文件的格式如下: 注释头,格式参见软件编程规范; 头文件预编译开关开始,格式为: #ifndef 预编译开关 #define 预编译开关 其中预编译开关格式为:“ _文件名_H”,其中文件名一律大写 头文件内容; 头文件预编译开关结束,格式为: #endif 用来和头文件预编译开关的开始对应。 例如:以下为ipf_ip.h头文件的内容: /************************************************************ Copyright (c) Lily Of The Century Technology Co., LTD. ALL RIGHTS RESERVED Description: // 用于详细说明此程序文件完成的主要功能 *************************************************************/ #ifndef _IPF_IP_H #define _IPF_IP_H ...

华为软件开发规范

软件开发规范 1 排版 11-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 if (!valid_ni(ni)) { ... epssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof( _UL ); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false

= SYS_get_sccp_statistic_state( stat_item ); report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid (stat_item)) && (act_task_table[taskno].result_data != 0));

华为JAVA编码规范

1.程序块采用缩进风格,空格为4个. 说明: 对于开发工具自动生成的代码可以不一致 2.分界符(如大括号{和})应各自占一行并且在同一列,同时与引用它们的语句左 对齐,在方法的开始,类和接口的定义,以及if,for,do,while,switch,case语句都要采用上述缩进 说明: for(…) { …//your code } 3.较长(>80字符)的语句,表达式和参数要分多行,长表达式要在低优先级操作符 划分新行,操作符放在行首,新行要适当缩进,整齐,语句可读. 说明: if(filename != null && new File(logPath+filename).length() < logConfig.getFileSize()) { …//your code } 4.一行只写一条语句 说明: LogFilename wow = null; LogFilename that = null; 5.if,for,do,switch,while,case,default各占一行,它们的执行语句无论多少都要加{} 说明: if(writeToFile) { writeFileThread.interrupt(); } 6.相对独立的程序块,变量,说明要加空行 说明: if(log.getLevel() < log.getRecord()) { return ; } //空行

LogWrite writer; 7.对齐只用空格键,不用TAB键 说明: 以免使用不同的编辑器阅读程序时,因TAB键所设置的空格数不同而造成程序布局不整齐,JBuildr,UltraEdit等编辑环境,支持行首TAB替换成空格,应将该选项打开 8.两个以上的关键字,变量,常量进行对等操作时,操作符之前,之后或前后要加空 格,进行非对等操作时,如果是关系密切的立即操作符,后面不加空格(如.操作符) 说明: 采用这种松散方式编写代码目的是让程序更加清晰,由于空格所产生的清晰性是相对的,所以在已经很清晰的语句中没有必要留空格,如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为java中括号已经是很清晰的标志了.在长句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部中不加空格,给操作符留空格时不要连续留两个以上空格 9.类属性和方法不要交叉放置,不同存取范围的属性和方法也不要交叉放置 说明: 类定义:{ 类公有属性定义; 类保护属性定义; 类私有属性定义; 类公有方法定义; 类保护方法定义; 类私有方法定义; } 10.源程序的有效注释量必须在30%以上 11.包的注释写入一个名为package.html的html格式的说明文件放入当前路径 12.包的注释内容:本包作用,详细描述本包内容,产品模块名称及版本,公司版本 说明: 一句话描述 详细描述 产品模块
公司版本信息

PCB设计规范-华为

华为PCB设计规范 1..1 PCB(Print circuit Board):印刷电路板。 1..2 原理图:电路原理图,用原理图设计工具绘制的、表达硬件电路中各种器件之间的连接关系的图。 1..3 网络表:由原理图设计工具自动生成的、表达元器件电气连接关系的文本文件,一般包含元器件封装、网络列表和属性定义等组成部分。 1..4 布局:PCB设计过程中,按照设计要求,把元器件放臵到板上的过程。深圳市华为技术有限公司1999-07-30批准,1999-08-30实施。 1..5 仿真:在器件的IBIS MODEL或SPICE MODEL支持下,利用EDA设计工具对PCB的布局、布线效果进行仿真分析,从而在单板的物理实现之前发现设计中存在的EMC问题、时序问题和信号完整性问题,并找出适当的解决方案。深圳市华为技术有限公司1999-07-30批准,1999-08-30实施。 II. 目的 A. 本规范归定了我司PCB设计的流程和设计原则,主要目的是为PCB设计者提供必须遵循的规则和约定。 B. 提高PCB设计质量和设计效率。 提高PCB的可生产性、可测试、可维护性。 III. 设计任务受理 A. PCB设计申请流程 当硬件项目人员需要进行PCB设计时,须在《PCB设计投板申请表》中提出投板申请,并经其项目经理和计划处批准后,流程状态到达指定的PCB设计部门审批,此时硬件项目人员须准备好以下资料: ⒈经过评审的,完全正确的原理图,包括纸面文件和电子件; ⒉带有MRPII元件编码的正式的BOM; ⒊PCB结构图,应标明外形尺寸、安装孔大小及定位尺寸、接插件定位尺寸、禁止布线区等相关尺寸; ⒋对于新器件,即无MRPII编码的器件,需要提供封装资料; 以上资料经指定的PCB设计部门审批合格并指定PCB设计者后方可开始PCB设计。

华为JAVA编程规范试题

JAVA编程规范试题 一、判断题(每题2分,共28分) 1、if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while, switch, case等语句的执行语句无论多少都要加括号{}。 2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块 名称和版本、公司版权、生成日期等。 3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事 项,每次修改后增加作者、新版本号和当天的日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。4、对于方法内部用throw语句抛出的异常,必须在方法的注释中标明;对于所 调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。 5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其 余字母使用小写的大小写混合法。 6、com.huawei.四级部门名称.项目名称,符合包命名规范。 7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效 率比条件分支低,而且异常的跳转流程难以预测。 8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样 化。 9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异 常根据分类组织成继承关系。 10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊 的需要要在switch语句中定义case以外的标签,需要在注释中说明。 11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。 12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者 instanceof()。 13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。

华为钢网设计规范(网络软件)

DKBA 华为技术有限公司企业技术规范 钢网设计规范 华为技术有限公司发布

版权所有侵权必究

目次 前 言 ................................................................................. .. (3) 1 范围 6 2 规范性引用文件 6 3 术语和定义 6 4 材料、制作方法、文件格式 6 4.1 网框材料 6 4.2 钢片材料 6 4.3 张网用丝网及钢丝网 6 4.4 张网用的胶布,胶 6 4.5 制作方法7 4.6 文件格式7 5 钢网外形及标识的要求7 5.1 外形图7 5.2 PCB居中要求8 5.3 厂商标识内容及位置8 5.4 钢网标识内容及位置8 5.5 钢网标签内容及位置8 5.6 MARK点8 6 钢片厚度的选择9 6.1 焊膏印刷用钢网9 6.2 通孔回流焊接用钢网9 6.3 BGA维修用植球小钢网9 6.4 贴片胶印刷用钢网9 7 焊膏印刷钢网开孔设计9 7.1 一般原则9 7.2 CHIP类元件10 7.2.1 0603及以上10 7.2.2 0402 11 7.3 小外形晶体11

7.3.1 SOT23-1、SOT23-5 11 7.3.2 SOT89 11 7.3.3 SOT143 12 7.3.4 SOT223 12 7.3.5 SOT252,SOT263,SOT-PAK 12 7.4 VCO器件12 7.5 耦合器元件(LCCC) 13 7.6 表贴晶振13 7.7 排阻14 7.8 周边型引脚IC 14 7.8.1 Pitch≤0.65mm的IC 14 7.8.2 Pitch>0.65mm的IC 14 7.9 双边缘连接器14 7.10 面阵型引脚IC 14 7.10.1 PBGA 14 7.10.2 CBGA,CCGA 15 7.11 其它问题15 7.11.1 CHIP元件共用焊盘15 7.11.2 大焊盘15 7.12 通孔回流焊接器件16 7.12.1 焊点焊膏量的计算16 7.12.2 钢网开口的设计17 7.12.3 钢网开口尺寸的计算17 7.13 BGA 植球钢网开口设计18 7.14 特例18 8 印胶钢网开口设计18 8.1 CHIP元件18 8.2 小外形晶体管19 8.2.1 SOT23 19 8.2.2 SOT89 19 8.2.3 SOT143 19 8.2.4 SOT252 19 8.2.5 SOT223 20

华为fpga设计规范(Verilog Hdl)

FPGA设计流程指南 前言 本部门所承担的FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。编写本流程的目的是: ●在于规范整个设计流程,实现开发的合理性、一致性、高效性。 ●形成风格良好和完整的文档。 ●实现在FPGA不同厂家之间以及从FPGA到ASIC的顺利移植。 ●便于新员工快速掌握本部门FPGA的设计流程。 由于目前所用到的FPGA器件以Altera的为主,所以下面的例子也以Altera为例,工具组合为modelsim + LeonardoSpectrum/FPGACompilerII + Quartus,但原则和方法对于其他厂家和工具也是基本适用的。

目录 1. 基于HDL的FPGA设计流程概述 (1) 1.1 设计流程图 (1) 1.2 关键步骤的实现 (2) 1.2.1 功能仿真 (2) 1.2.2 逻辑综合 (2) 1.2.3 前仿真 (3) 1.2.4 布局布线 (3) 1.2.5 后仿真(时序仿真) (4) 2. Verilog HDL设计 (4) 2.1 编程风格(Coding Style)要求 (4) 2.1.1 文件 (4) 2.1.2 大小写 (5) 2.1.3 标识符 (5) 2.1.4 参数化设计 (5) 2.1.5 空行和空格 (5) 2.1.6 对齐和缩进 (5) 2.1.7 注释 (5) 2.1.8 参考C语言的资料 (5) 2.1.9 可视化设计方法 (6) 2.2 可综合设计 (6) 2.3 设计目录 (6) 3. 逻辑仿真 (6) 3.1 测试程序(test bench) (7) 3.2 使用预编译库 (7) 4. 逻辑综合 (8) 4.1 逻辑综合的一些原则 (8) 4.1.1 关于LeonardoSpectrum (8) 4.1.1 大规模设计的综合 (8) 4.1.3 必须重视工具产生的警告信息 (8) 4.2 调用模块的黑盒子(Black box)方法 (8) 参考 (10) 修订纪录 (10)

Java语音编码规范华为

Java语音编码规范(华为) Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by Date yyyy-mm-dd

Revisi on Record 修订记录

1.范围................................... 2.规范性引用文件............................... 3.术语和定义................................ 4.排版规范.................................. 4.1. 规则................................... 4.2. 建议..... 5. 注释规范 5.1. 规 则........ 5.2. 建议..... 6. 命名规范 6.1. 规 则........ 6.2. 建议..... 7. 编码规范 7.1. 规 则........ 7.2. 建议..... 8. JTEST规 范8.1. 规 则........ 8.2. 建议 ....................................

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文 件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释示例:对此规范或建议从正、反两个方面给出例子。

华为软件开发行为规范

软件开发行为规范 第一版 深圳市华为技术有限公司 版权所有不得复制

软件开发行为规范 (第一版) 为了把公司已经发布的软件开发过程规范有效地运作于产品开发活动中,把各种规范“逐步形成工程师的作业规范”,特制定本软件开发行为规范,以达到过程控制的目的。 与软件开发相关的所有人员,包括各级经理和工程师都必须遵守本软件开发行为规范。对违反规范的开发行为,必须按照有关管理规定进行处罚。 本软件开发行为规范的内容包括:软件需求分析、软件项目计划、概要设计、详细设计、编码、需求管理、配置管理、软件质量保证、数据度量和分析等。 本软件开发行为规范,采用以下的术语描述: ★规则:在软件开发过程中强制必须遵守的行为规范。 ★建议:软件开发过程中必须加以考虑的行为规范。 ★说明:对此规则或建议进行必要的解释。 ★示例:对此规则或建议从正或反两个方面给出例子。 本软件开发过程行为规范由研究技术管理处负责解释和维护。 研究技术管理处

目录 1 软件需求分析 5 2 软件项目计划9 3 概要设计11 4 详细设计14 5 编码18 6 需求管理19 7 软件配置管理21 8 软件质量保证23 9 数据度量和分析25

1 软件需求分析 1-1:软件需求分析必须在产品需求规格的基础上进行,并保证完全实现产品需求规格的定义。 1-2:当产品的需求规格发生变更时,必须修订软件需求规格文档。软件需求规格的变更必须经过评审,并保存评审记录。 1-3:必须对软件需求规格文档进行正规检视。 1-4:软件需求分析过程活动结束前,必须经过评审,并保存评审记录。 1-5:在对软件需求规格文档的正规检视或评审时,必须检查软件需求规格文档中需求的清晰性、完备性、兼容性、一致性、正确性、可行性、易修改性、健壮性、易追溯性、易理解性、易测试性和可验证性、性能、功能、接口、数据、可维护性等内容。 说明:参考建议1-1到1-16。 1-1:采用以下检查表检查软件需求规格文档中需求的清晰性。 1-2:采用以下检查表检查软件需求规格文档中需求的完备性。

华为软件编码规范

华为软件编程规范和范例 〔一〕=====[排版] ]=======. 〔二〕======[注释]=======. 〔三〕=====[标识符命名]=======. 〔四〕=====[可读性]======. 〔五〕=====[变量、结构]=====. 〔六〕=====[函数、过程]=====. 〔七〕=====[可测性]=====. 〔八〕=====[程序效率]=====. 〔九〕=====[质量保证]=====. 〔十〕=====[代码编辑、编译、审查]=====. 〔十一〕=====[代码测试、维护]=====. 〔十二〕=====[宏]=====. 〔一〕========[ 排版]========== 11-1:程序块要采用缩进风格编写,缩进的空格数为4个 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行 示例:如下例子不符合规范。 Int ni; if (!valid_ni(ni)) { ... // program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 Int ni; if (!valid_ni(ni)) { ... // program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读 示例: perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN

华为软件开发规范

华为软件开发规范

软件开发规范 1 排版 11-1:程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 11-2:相对独立的程序块之间、变量说明之后必须加空行。 示例:如下例子不符合规范。 if (!valid_ni(ni)) { ... // program code } repssn_ind = 仅供内部使用2

ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; 应如下书写 if (!valid_ni(ni)) { ... // program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; 11-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 示例: perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof( _UL ); 仅供内部使用3

act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state( stat_item ); report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid (stat_item)) && (act_task_table[taskno].result_data != 0)); 仅供内部使用4

Java语音编码规范 华为

Java语音编码规范(华为) 【最新资料,WORD文档,可编辑修改】

Java语言编码规范 Prepared by 拟制Date 日期 yyyy-mm-dd Reviewed by 评审人Date 日期 yyyy-mm-dd Approved by 批准Date 日期 yyyy-mm-dd

Revision Record 修订记录

Table of Contents 目录

1.范围 本规范规定了使用Java语言编程时排版、注释、命名、编码和JTEST的规则和建议。 本规范适用于使用Java语言编程的产品和项目。 2.规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 3.术语和定义 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 格式:对此规范格式的说明。 说明:对此规范或建议进行必要的解释。 示例:对此规范或建议从正、反两个方面给出例子。

4.排版规范 4.1.规则 4.1.1.*程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。 4.1.2.*分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列, 同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 示例:如下例子不符合规范。 for (...) { ... .) { ... . .) { ... .) { ... . ength() < ()) { 4.1.3.... ,后不应加空格。 说明:采用这种松散方式编写代码的目的是使代码更加清晰。 由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已经是最清晰的标志了。 在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。 示例: (1)逗号、分号只在后面加空格。 int a, b, c; (2)比较操作符, 赋值操作符"="、"+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域

华为程序开发规范

Panorama系统程序开发规范之二 1.匈牙利命名规则 变动前缀类型 a Array b Boolean by Byte c Char //有符号型字符 cb Char Byte //无符号型字符(没多大用处) cr ColorRef //颜色参考值 cx,cy Length of x,y (ShortInt) //坐标差(长度) dw Double Word fn Function h Handle i Integer m_ Member of a class n Short Integer np Near Pointer p Pointer lp Long Pointer ×(str) s String sz String with Zero End //以字符'\0'结尾的字符串 tm Text //文本内容 w Word x,y Coordinate //坐标

2.Panorama系统的命名约定 2.1 VC中变量命名时的前缀约定 Array a... //例:CStringArray saText BOOL b... UINT n... int i... short n... long l... WORD w... DWORD dw... float f... char c... char* psz... TCHAR* psz... LPCTSTR lpsz... CString str... COLORREF cr... LPLOGPALETTE lp... (包括LP开头的类型都是这样) POINT pt... CPoint pt... HANDLE h... HGLOBAL h... (包括H开头的类型都是这样) 说明: 1.如果是指向上述类型的指针,就在上面规范前加"p" ; 2.如果是指向上述类型的双重指针,就在上面规范前加"pp" ; 3.如果是类成员变量,则在上面规范前加"m_"; 4.全局变量,则在上面规范前加"g_"; 5.在类型前加了"const",命名约定不变; 2.2 VC中变量命名时的后缀约定 1.MFC类 CWnd* p...Wnd 省去的地方一般为该类的用途(如果是某一个类的成员,则还应该在前加"m_")又如:CView* p...View 2.3 局部变量应尽量易懂简洁,使用常见的变量,如Num,nCount,i,j,k,n,len,pos, offset,nReadNum,index,nRet,ret, string,filename临时变量,如ltmp,ftmp,tmpStr,tempStr 。。。 2.4 函数命名也应该见名知意。如CalcAllDataStyle(),ReadDocDataFromTime(),GetIndexInfo() 常见的函数Init_, Open_, Create_, Get_, Set_, Read_, Load_, Write_, Start_, Stop_, Check_,

相关主题
文本预览
相关文档 最新文档