软件开发及 培训
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发及文档培训
(仅供内部使用)
深圳市华为技术有限公司
版权所有侵权必究
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 单元测试准备