《项目组软件开发规范.pdf》由会员分享,可在线阅读,更多相关《项目组软件开发规范.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-工程组工程组软件开发行为规软件开发行为规公司所有仅供工程组使用1 1 概述概述1.11.1 编写目的编写目的为了把公司已经发布的软件开发过程规有效地运作于产品开发活动中, 把各种规“逐步形成工程师的作业规,特制定本软件开发行为规,以到达提高系统质量的目的。在本规中,阐述了根本的开发模式,包括需求验证、设计、编码规、代码审查、单元测试、配置管理等,并明确开发过程中的方法、策略、工具以及环境要求,开发人员都必须遵守本软件开发规。1.21.2 读者对象读者对象本规读者对象为软件开发工程管理者、工程经理、测试经理、开发经理、开发组、测试组所有人员.z.-2 2 需求评审需求评审2.12.1 过程要求
2、过程要求按软件开发过程经历,问题暴露越早越好。因此,在实施设计和编码前,需对工程经理提供的需求说明文档进展充分的验证,在不明确的需求点上,需要和工程经理进一步核实,确保对每个需求点有清晰、一致的认识和理解。在需求验证的过程中,需按以下检查点进展逐项检查包括不限于 :1.所有定义、实现方法是否清楚地表达了用户的原始要求?2.是否清楚、明确地描述了所有的功能?是否没有不能理解或造成误解的描述?3.需求定义是否包含了有关功能、性能、限制、目标、质量等方面的所有需求?4.需否可以验证即是否可以检验软件是否满足了需求?5.是否有术语定义一览表?6.是否标识并定义了在将来可能会变化的需求?7.各个需求之间
3、是否一致?是否有冲突和矛盾?8.是否认义了系统所有的输入、输出及其来源?主要为柜台或者其他外部接口,是否明确定义了输入参数和输出参数?9.是否说明了如何进展系统输入的合法性检查?10. 功能性需否覆盖了所有非正常情况的处理?11. 对异常数据产生的结果是否作了准确的描述?12. 是否充分定义了关于人机界面的需求?.z.-13. 在不同情况下,是否规定了系统的响应时间?14. 界面需否使软硬件系统具有兼容性?15. 是否有对相关日志做明确要求?以满足稽核相关的需要。针对开发过程中的需求变更,以上需求验证点同样适用,并同时评估需求变更给当前工程的设计和开发带来的风险,包括架构、平安、进度等方面,以
4、便工程经理进展方案调整和安排。2.22.2 工具及环境工具及环境1.在此过程中,使用E*cel 对以上检查点进展跟踪和标记。记录文档需check-in 到 svn.2. 评审完成的需求文档需 check-in 到 svn。3.任何需求变更文档需 check-in 到 svn。4.在 PM 上登记相关问题,并跟踪其状态。3 3 系统设计及评审系统设计及评审3.13.1 过程要求过程要求概要设计要以软件需求规格为根底, 必须保证需要实现的需求规格已经被设计。概要设计文档的需涵盖以下几方面:1.涵盖系统的总体构造、功能。系统共包含哪些模块,以及模块之间的关系。使阅读者对系统有了全局观。2.明确系统使
5、用的外部接口和资源。包括外部柜台环境、第三方接口、第三方技术架构等。.z.-3.模块设计的进一步细化,包括具体的输入、输出、处理逻辑、与其他模块之间的接口等。4.数据构造设计,文档中明确数据的物理构造和逻辑构造,包括数据的存储方式、缓存策略、备份策略、清理策略。5.容灾设计,主要指外部资源或接口不可用时,系统如何处理,包括客户提示信息、错误现场记录等。6.监控设计,针对系统中的关键业务,特别是对实时性、准确性要求较高的功能,需考虑其监控指标、监控方法、业务阀值、告警通知的设计。7.平安设计,在系统概要设计中,要充分考虑系统平安方面的设计,包括数据传输、数据存储、网络攻击等方面的情况。具体可参见
6、公司的平安开发规。8.其他情况,未在以上提及的工程其他情况,可进展特别说明。同时,在概要设计过程中,需遵循以下原则:1、当需求规格发生变更时,必须修订相关概要设计文档。2、在概要设计文档,必须记录、验证需求和概要设计的跟踪关系。3、必须保证概要设计文档和代码的一致性。当发生设计更改时,必须修订相应设计文档。4、概要设计过程完毕前,必须通过评审,并保存评审记录。5、设计更改必须经过相关评审,并保存评审记录。在概要设计评审阶段,可按以下检查点进展逐项验证包括但不限于 :1、是否描述了接口的功能特征2、接口是否便于查错.z.-3、接口相互之间、和其他模块、和需求说明书及接口规格书保持一致?4、对接口
7、的数量和复杂度进展了有效的平衡,使接口数量控制在一个较小数量,每个接口具有可承受的复杂度?5、是否所有的接口都能描述了必要的类型、数量、质量等信息?6、操作界面是否考虑了用户例如:提供准确、清晰、有用的提示信息7、是否模块化设计?8、模块遵循高聚、低耦合的原则?9、是否每一局部的设计都可以追溯到需求说明书,接口规格说明书、或其他产品文档?10、 对所继承下来的那些特别和不常用的特性对目前设计的影响是否进展了分析?11、需求规格评审中不完整的需求(TBD)是否都已经解决12、设计是否考虑了检错和恢复措施?例如:输入检查13、是否考虑了异常情况?14、是否完全准确描述了所有的出错情况?15、设计是
8、否能够满足所有系统集成方面的要求?3.33.3 工具及环境工具及环境1. 概要设计文档及其评审文档需 check-in 到 svn 中。2. 概要设计过程中的问题跟踪需在 PM 中记录。.z.-4 4 系统实现系统实现4.14.1 过程要求过程要求编码必须以设计文档为根底, 必须保证所有的设计都被编码实现。当设计发生变更时,必须修改相关代码。同时必须保证设计文档和代码的一致性。当代码的修改已经造成设计更改时,必须修订相应设计文档。在系统实现过程中,需遵循以下规:1.遵照各项编码规。具体见附录。2.所有代码使用 svn 进展统一管理,并使用 maven 做为构建工具,并至少提供开发、测试、生产三
9、种构建脚本。3.在系统开场之前,需在 svn 上创立对应的分支,开发工作统一在分支上进展。4.针对开发任务的分解,需要参照单人单任务在两天以完成的标准。5.开发过程中,单元测试通过的代码需要及时 check-in 到 svn。6.代码进入系统测试前需进展评审, 可以是集中评审或者穿插评审的方式。评审容包括根本编码规、根本逻辑、日志规、出错处理等,具体见附录中的代码评审表。7.单元测试的覆盖率需在 80%以上。具体的单元测试要点如下: 对所测模块的数据流进展测试。 检查不正确或不一致的数据类型说明、使用尚未附值或尚未初始化的变量、错误的初始值或缺省值。 设计测试用例查找由于不正确的计算包括算法错
10、、表达式符号表.z.-示不正确、运算精度不够等 、不正确的比拟或不正常的控制流包括不同数据类型量的相互比拟、不适当地修改了循环变量、错误的或不可能的循环终止条件等而导致的错误。 检查模块有没有对预见错误的条件设计比拟完善的错误处理功能,保证其逻辑上的正确性。 边界检查,注意设计数据流、控制流中刚好等于、大于或小于确定的比拟值的用例。8.开发过程中,需进展持续化构建,保证 check-in 的代码质量。9.可重用的 UI 需 check-in 至组件库。10. 工程中引进的新技术需经过统一评审。4.24.2 工具及环境工具及环境开发过程中用到的工具包括:代码管理工具:svn、maven开发工具:
11、 sts、webstorm、a*ure、photoshop 等。测试工具:JUnit、JMock、SoapUI、Jmeter 等。代码评审工具:Collaborator自动构建工具: Jenkins应用效劳器:apache、weblogic、tomcat其他第三方框架包括但不限于 spring, struts, ibatis, hibernate,bootstrap, jquery,phoneGap,ehcache,vert.*,redis 等。.z.-5 5 测试测试5.15.1 过程要求过程要求在系统交付给测试组进展测试前, 开发人员需在部进展第一轮功能测试,具体测试方法可参照工程经理提供
12、的测试用例。 测试过程中需保持测试代码的准确性和测试环境的独立性。具体测试容包含但不限于以下几方面:1.功能测试。对照需求文档中的功能点,对系统的功能进展测试验证,确保系统完全满足需求文档中的要求。2.平台兼容性测试。在不同的浏览器、硬件配置环境下进展测试,主要浏览器包括Firefo*,safari,IE, chrome。针对移动端,需涵盖三个主流操作系统,iOS, Android 和 Windows Mobile。硬件兼容性则包括不同的智能终端,PC,MAC,IPAD 等其他机型的不同分辨率下的兼容性测试。3不同网络环境下测试。针对移动端的应用,验证不同网络环境下,终端应用功能与性能方面是否
13、正常(数据业务是否会中断,业务模块是否出现异常)。网络环境包含:4G 信号, 3G 信号,2G 强信号。4.安装、卸载测试。针对系统中涉及的控件、第三方插件,或者移动端 APP,需进展安装、卸载的测试。5.25.2 工具及环境工具及环境1. 测试过程中发现的问题需统一记录在 PM 上,并进展跟踪。2. 测试过程可以使用开源的第三方工具,如 Jmeter, Selenium,Robot 等工具。.z.-6 6 配置管理配置管理6.16.1 过程要求过程要求开发过程中的配置管理主要包括两局部, 代码库和组件库,开发过程中需遵循以下规:1.所有代码的开发活动在 Develop 的 svn 库里进展。2.上线验收后,代码合并至 Product 的 svn 库。3.所有组件需打包发布至公司私有仓库。版本号约定为*.*, 从 0.01 开场,并以此递增,当遇到大的版本变更时,可需修改大版本号,如 1.00。4.版本发布时,需填写 release note, 说明版本的变更情况。公司仓库需每周进展定期备份。.z.