华为软件开发规范

华为软件开发规范
华为软件开发规范

软件开发行为规范

第一版

深圳市华为技术有限公司

版权所有不得复制

软件开发行为规范

(第一版)

为了把公司已经发布的软件开发过程规范有效地运作于产品开发活动中,把各种规范“逐步形成工程师的作业规范”,特制定本软件开发行为规范,以达到过程控制的目的。

与软件开发相关的所有人员,包括各级经理和工程师都必须遵守本软件开发行为规范。对违反规范的开发行为,必须按照有关管理规定进行处罚。

本软件开发行为规范的内容包括:软件需求分析、软件项目计划、概要设计、详细设计、编码、需求管理、配置管理、软件质量保证、数据度量和分析等。

本软件开发行为规范,采用以下的术语描述:

★规则:在软件开发过程中强制必须遵守的行为规范。

★建议:软件开发过程中必须加以考虑的行为规范。

★说明:对此规则或建议进行必要的解释。

★示例:对此规则或建议从正或反两个方面给出例子。

本软件开发过程行为规范由研究技术管理处负责解释和维护。

研究技术管理处

目录

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:采用以下检查表检查软件需求规格文档中需求的完备性。

1-3:采用以下检查表检查软件需求规格文档中需求的兼容性。

1-4:采用以下检查表检查软件需求规格文档中需求的一致性。

1-5:采用以下检查表检查软件需求规格文档中需求的正确性。

1-6:采用以下检查表检查软件需求规格文档中需求的可行性。

1-7:采用以下检查表检查软件需求规格文档中需求的易修改性。

1-8:采用以下检查表检查软件需求规格文档中需求的健壮性。

1-9:采用以下检查表检查软件需求规格文档中需求的易追溯性。

1-10:采用以下检查表检查软件需求规格文档中需求的易理解性。

1-11:采用以下检查表检查软件需求规格文档中需求的易测试性和可验证性。

1-12:采用以下检查表检查软件需求规格文档中的性能需求描述。

1-13:采用以下检查表检查软件需求规格文档中功能需求描述。

1-14:采用以下检查表检查软件需求规格文档中的接口需求描述。

1-15:采用以下检查表检查软件需求规格文档中的数据需求描述。

1-16:采用以下检查表检查软件需求规格文档中的可维护性需求描述。

2 软件项目计划

2-1:软件项目计划必须以产品/软件的需求规格为基础。当发生需求更改时,必须修订软件开发计划。

说明:软件项目计划必须依据需求规格进行制定。项目计划中的工作产品和工作任务应保证能完全实现需求规格的定义。当需求更改时,必须考虑需求更改的相关性,修订相应软件开发计划。

2-1:制定软件项目计划的活动制定,必须遵守“软件项目计划规范”。

2-2:软件经理对软件项目计划的制定和结果负责。

2-3:软件经理和相关参与软件项目计划的制定和评审的人员,在参与计划制定之前必须经过软件工程和软件项目计划制定流程的培训。

2-2:对于软件项目计划中各项工作产品和工作任务,必须进行规模和工作量的软件估计,并在软件项目计划文档中记录估计的方法和估计数据。

说明:参考建议2-4到2-8。

2-4:可以使用PERT统计估计、专家判定平均法、经验类比估计、公式计算等方法,或以上方法的组合,进行软件估计。

示例:PERT统计估计和经验类比估计的结合

PERT统计估计值= (最大估计+4×期望估计+最小估计〕/ 6

估计记录如下:

期望估计值是根据XX版本的话统模块设计的数据获得。

2-5:对某项工作产品和任务的软件,同时采用两种或以上的方法进行估计,以避免一种方法的偏差。

2-6:尽量采用历史经验数据进行软件估计。

2-7:参照“软件估计指导书”进行软件估计。

2-8:软件估计对应项目的任务分解结构进行。

说明:软件估计对于项目的任务分解结构对应得越清晰、越细致,相应的估计越准确。

2-9:在“软件项目计划”中必须包括项目管理活动的计划。

2-10:在“软件项目计划”中包括软件重用计划。包括重用软件部件的计划和开发可重用软件部件的计划。

2-11:在“软件项目计划”包括人员的培训计划。

说明:项目人员计划包括需要的人员类型、数量和技术等级的要求,相关人员的开始工作时间、工作周期、接受培训的计划等。

2-12:对软件项目进行风险分析与评估。

说明:可能存在的风险领域含:需求的不明确和变更、外部的限制与对外的依赖、人力资源的到位情况、人力资源的技术等级满足要求状况、技术问题等。

对风险的分析与评估实践包括:

从已知的情况推导出潜在风险;

对风险进行分析,得出:潜在风险可能引发的问题的影响、潜在风险发生的可能性大小、风险发生的时间段等;

排列风险的重点次序;

对风险记录成文件(属于软件项目计划中的一部分);

风险经受风险影响人审核,并取得他的同意;

根据需要,在开发过程中对风险文档进行维护和修订。

2-3:对应工作任务,制定项目的文档计划。

2-4:软件项目计划中应该包括正规检视活动计划、软件质量保证计划、软件配置管理计划。软件质量保证计划和软件配置管理计划可以和软件项目计划在同一份文档中,也可以分开为三份文档。

说明:参考建议2-13。

2-13:软件质量保证计划和软件配置管理计划作为独立的计划文档。

2-14:软件项目计划必须是整个项目开发过程的计划,包括测试。

2-15:测试经理对照整个开发计划建立软件验证与确认计划。软件验证与确认计划可作为独立的计划文档。

2-5:必须对项目工作进行分解,确定项目的工作任务,任务的责任人、资源要求、时间要求、项目的进度。

2-6:必须分析任务之间的依赖性,确定并明确标识项目的关键路径。

2-7:“软件项目计划”必须按照文档模板的要求编写。项目组可根据项目的实际情况,对文档模板中的内容进行裁减。项目组对文档模板内容的裁减必须得到上级管理部门(包括产品计划处、软件工程组SEPG)的审核批准。

2-8:软件项目计划必须经过评审。

说明:参考建议2-16,。

2-16:软件项目计划的评审采用以下检查表。

2-17:参加“软件项目计划”评审的人员,除软件经理和项目组人员外,必须有产品经理、上级管理部门(包括软件工程组SEPG)、SQA人员。

2-18:“软件项目计划”通过评审后,软件经理组织相关人员对任务进行承诺,签定工作任务书。

2-9:必须对“软件项目计划”进行配置管理,“软件项目计划”的更改必须经过评审。

2-10:在开发活动中,必须按照项目跟踪与监控计划和体制,对照“软件项目计划”,跟踪项目开发的实际结果和性能。

2-11:当实际结果和“软件项目计划”发生偏离时,必须进行分析,根据分析结果标明纠正措施。必要的情况下,要及时修订“软件项目计划”。

2-12:在软件项目跟踪监控活动中,必须定期进行总结和评审,撰写开发状态报告。

2-19:根据项目的特点,报告的周期可以为周、双周、月。

2-13:在软件开发各里程碑阶段结束前,必须进行阶段评审,对软件项目进行重估计,必要的情况下修订“软件项目计划”。

2-20:必须提供相应资源,包括工具和人员等,进行软件项目计划和项目跟踪监控活动。

2-14:在软件项目计划和项目跟踪监控过程活动中,必须进行数据度量和分析。

说明:参见“9. 数据度量和分析”。

3 概要设计

3-1:概要设计要以软件需求规格为基础,必须保证需要实现的需求规格已经被设计。

3-2:当需求规格发生变更时,必须修订相关概要设计文档。

3-3:在概要设计文档或需求管理文档中,必须记录、验证需求和概要设计的跟踪关系。

说明:需求和概要设计的跟踪关系可参考建议3-1。

3-1:采用需求、子系统、模块的跟踪矩阵表记录需求和概要设计的跟踪关系。

3-4:必须保证概要设计文档和代码的一致性。当发生设计更改时,必须修订相应设计文档。3-5:必须对概要设计文档进行正规检视。

3-6:概要设计过程结束前,必须通过评审,并保存评审记录。

3-7:设计更改必须经过相关评审,并保存评审记录。

3-8:对概要设计文档的正规检视或评审,必须检查概要设计文档的清晰性、完备性、规范性、一致性、正确性、数据、功能性、接口、详细程度、可维护性、性能、可靠性、可测试性、可追溯性。

说明:参考建议3-2。

3-2:采用以下检查表检查概要设计文档的清晰性。

3-3:采用以下检查表检查概要设计文档的完备性。

3-4:采用以下检查表检查概要设计文档的规范性。

3-5:采用以下检查表检查概要设计文档的一致性。

3-6:采用以下检查表检查概要设计文档的正确性。

3-7:采用以下检查表检查概要设计文档的数据描述。

3-8:采用以下检查表检查概要设计文档的功能性要求。

3-9:采用以下检查表检查设计的接口描述。

3-10:采用以下检查表检查设计的详细程度。

3-11:采用以下检查表检查设计的可维护性。

3-12:采用以下检查表检查设计的性能。

3-13:采用以下检查表检查设计的可靠性。

3-14:采用以下检查表检查设计的可测试性。

3-15:采用以下检查表检查设计的可追溯性。

4 详细设计

4-1:详细设计要以软件需求规格和概要设计为基础,必须保证需要实现的需求规格已经被设计,必须保证概要设计定义的所有模块已经被详细设计。

4-2:当需求规格或概要设计发生变更时,必须修订相关详细设计文档。

4-3:在详细设计文档或需求管理文档中,必须记录、验证需求、概要设计、详细设计的跟踪关系。

说明:需求、概要设计、详细设计的跟踪关系可参考建议4-1。

4-1:采用需求、子系统、模块、函数的跟踪矩阵表记录需求、概要设计、详细设计的跟踪关系。

4-4:必须保证详细设计文档和代码的一致性。当发生设计更改时,必须修订相应设计文档。

4-5:必须对重要的详细设计文档进行正规检视。

说明:参考建议4-2。

4-2:根据模块的复杂度、规模和在软件系统中的重要程度,选择重要的详细设计文档进行正规检视。在产品中,进行正规检视的详细设计文档比例要达到60%。

4-6:详细设计过程结束前,必须通过评审,并保存评审记录。

4-7:设计更改必须经过相关评审,并保存评审记录。

4-8:对详细设计文档的正规检视或评审,必须检查详细设计文档的清晰性、完备性、规范性、一致性、正确性、数据、功能性、接口、详细程度、可维护性、性能、可靠性、可测试性、可追溯性。

说明:参考建议4-3。

4-3:采用以下检查表检查详细设计文档的清晰性。

4-4:采用以下检查表检查详细设计文档的完备性。

4-5:采用以下检查表检查详细设计文档的规范性。

4-6:采用以下检查表检查详细设计的一致性。

4-7:采用以下检查表检查详细设计的正确性。

4-8:采用以下检查表检查详细设计的数据描述。

4-9:采用以下检查表检查详细设计的功能性要求。

4-10:采用以下检查表检查详细设计的接口描述。

4-11:采用以下检查表检查详细设计的详细程度。

4-12:采用以下检查表检查详细设计的可维护性。

4-13:采用以下检查表检查详细设计的性能。

4-14:采用以下检查表检查详细设计的可靠性。

4-15:采用以下检查表检查详细设计的可测试性。

4-16:采用以下检查表检查详细设计的可追溯性。

5 编码

5-1:编码必须以设计文档为基础,必须保证所有的设计都被编码实现。当设计发生变更时,必须修改相关代码。

5-2:必须保证设计文档和代码的一致性。当代码的修改已经造成设计更改时,必须修订相应设计文档。

5-3:必须对重要的代码进行正规检视。

说明:参考建议5-1。

5-1:根据模块、函数/单元/进程的复杂度、规模和在软件系统中的重要程度,选择重要的代码进行正规检视。在产品中,进行正规检视的代码比例要达到40%。

5-4:在代码已经基线化后,对代码的更改必须通过评审,并保存评审记录。

5-5:代码必须遵守相关的编程规范规定。

5-6:对代码的正规检视和评审,必须依照相关编程规范规定检查编程规范符合情况。

6 需求管理

6-1:产品项目必须安排人员负责需求管理的职责。

说明:职责参见建议6-1。

6-1:需求管理的职责至少应包括以下内容:

6-2:必须建立文档标识分配到软件中的产品系统需求。

说明:文档的内容参见建议6-2。

6-2:标识分配到软件中的产品系统需求的文档至少应包含以下内容:

6-3:相关人员必须接受需求管理活动方面的培训。

说明:参见建议6-3。

6-3:培训至少包括以下内容:

6-4:必须对对经过评审和批准的需求文档进行管理和控制。

说明:参见建议6-4。

6-4:对经过评审和批准的需求至少应采用以下方法进行管理和控制:

6-5:必须对需求变更采用严格的变更控制流程控制。

说明:参见建议6-5。

华为软件编程规范

华为软件编程规范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));

华为软件编程规范.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、有射频产品开发经验优先。 云计算研发工程师:

华为软件编程地要求规范

软件编程规范 (仅供内部使用) 北京世纪百合科技有限公司 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));

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设计。

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

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)

华为软件开发行为规范

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

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

目录 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:采用以下检查表检查软件需求规格文档中需求的完备性。

华为软件开发规范

华为软件开发规范

软件开发规范 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

华为软件编码规范

华为软件编程规范和范例 〔一〕=====[排版] ]=======. 〔二〕======[注释]=======. 〔三〕=====[标识符命名]=======. 〔四〕=====[可读性]======. 〔五〕=====[变量、结构]=====. 〔六〕=====[函数、过程]=====. 〔七〕=====[可测性]=====. 〔八〕=====[程序效率]=====. 〔九〕=====[质量保证]=====. 〔十〕=====[代码编辑、编译、审查]=====. 〔十一〕=====[代码测试、维护]=====. 〔十二〕=====[宏]=====. 〔一〕========[ 排版]========== 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

华为程序开发规范

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_,

华为软件编程规范总则

目录 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)) { ... // program code } repssn_ind = 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 ); 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)

342 华为软件测试类技术任职资格标准

华为技术有限公司 软件测试类技术任职资格标准 版本号:2.0 拟制单位:测试业务部/技术干部部 二○○一年十一月

目录 概述 .............................. 3页 第一部分级别定义................. 5页第二部分资格标准................ 8页

概述 任职资格管理的目的 ?规范人才的培养和选拔,推动做实的人不断提高水平,引导有水平的人做实,按做实给予评价。 ?激励员工不断提高其职位胜任能力,以职业化的员工队伍参与国际竞争。?树立有效培训和自我学习的标杆,以资格标准牵引员工不断学习、不断改进,保持公司的持续性发展。 任职资格认证原则 ?以关键行为和核心技能为中心 ?以工作实绩为导向 ?标准公开、程序公正 ?测试、评议相结合 任职资格标准体系 ?软件测试类任职资格标准由工作经验、必备知识、技能标准、工作绩效、行为标准等五个部分组成。 软件测试类任职资格认证对象

从事软件测试类工作的人员

第一部分级别定义 根据软件测试类的实际情况,将技术任职资格等级分为一至六级,如下图所示。 级别定义描述了各级人员的工作定义、工作内容、工作性质、主要职责及影响范围。 级别代码:T0401(01) 级别名称:软件测试类一级工程师 要点:有一定系统特性的测试实践经验,参与测试方案和测试用例的设计,能够独立完成测试代码实现、测试环境搭建、测试执行等工作。承担华为某一产品领域或特定产品技术领域中一般系统特性的测试、质量保证活动等工作。在二级及以上工程师的指导下按计划要求完成任务并保证其质量。

华为软件开发规范标准

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

华为系统程序开发规范

My_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",命名约定不变;

华为软件开发规范

目录 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)) { ... // program code } repssn_ind = 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 ); 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)

相关文档
最新文档