软件开发管理规定
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.目的
公司软件产品的开发流程,保障开发过程的顺利实施。为公司提供安全和有冗余的软件开发环境,保障软件开发过程的安全性、完整性、可用性。通过加密和权限管理,有效的保护程序源代码,防止恶意代码和网络攻击的发生。
2.范围
适用公司软件开发全过程。
3.职责
资讯科技部:负责公司软件产品的开发过程、软件加密和权限管理负责软件开发环境的维护。
4.工作流程
根据软件产品开发的标准流程,结合公司的实际情况对软件项目分三个主要阶段进行组织管理,分别为项目立项阶段、项目实施阶段和项目验收总结阶段。
4.1.软件项目立项阶段
4.1.1.公司项目组负责项目的立项审批;
4.1.2.项目组由公司总经理或指定负责人召集,成员为公司管理层人员,包括但不限于:公司常
务副总、营销总监、研发总监、财务总监;
4.1.3.业务需求作为项目申请人,按照外部需求或公司发展需要填写《软件设计需求说明书》;
4.1.4.项目申请人填写《项目建议书》向项目组提出项目立项申请,主要说明项目的背景、目的、
预计效益及成本、资源(软/硬件等)需求等方面,并由资讯科技部提供支持和技术说明。
4.1.
5.项目组收到《项目建议书》组织召开立项评审会议,给出项目评审结论。批准立项交公司
资讯科技部组织开发,如果不批准,给出理由后项目中止。中止后的项目可根据情况重新申请。
4.2.软件项目实施阶段
4.2.1.公司批准立项的项目交由资讯科技部负责组织实施。
4.2.2.资讯科技部根据资源情况和项目需求组织相关技术人员进行项目启动会议,任命项目经理,
组建项目开发团队,并制定《项目计划书》,确定项目周期、具体开发目标等,提交项目组做反馈确认。
4.2.3.《项目计划书》经项目组确认后,项目经理根据研发任务编制《项目计划书》,项目正式
启动后,项目经理根据《项目计划书》的进度对项目进展情况进行管控,并定期定性项目状态分析和汇报。
4.2.4.《项目计划书》必须按照软件项目实施过程分解为需求分析、系统设计、开发编码和测试
提交几个控制过程。
4.3.项目需求分析过程
4.3.1.项目需求分析由研发总监、项目经理、部分软件工程师和项目申请人共同完成。
4.3.2.需求分析应在《项目计划书》审核通过后召开,需求的不足之处应有项目申请人负责完善。
责组织变更评审,并确认是否进行变更,更新项目计划。
4.4.项目系统设计过程
4.4.1.项目过程:
4.4.1.1.项目系统设计过程由项目经理负责组织,技术主管、高级软件工程师共同完成。
4.4.1.2.项目设计过程中,项目经理负责定期对项目进展状态进行总结汇报,如出现已确认的变
更,项目经理负责更具实际情况更新《项目计划书》并提交项目组审查备案。
4.4.1.3.系统设计过程完结的标志是形成《系统设计说明书》。
4.4.2.安全管理
4.4.2.1.通用要求
1)命名规范:规范变量、函数的命名;规范程序的书写格式等。
2)SQL语句:如果应用程序需要连接后端数据库,使用存储过程而不能在代码中使用SQL
语句。
3)注释代码:当应用程序在实际环境中开始应用时,应该删除所有的注释代码。
4)错误信息:所有为用户显示的错误信息不应暴露任何关于系统、网络或应用程序的敏感
信息。
5)URL内容:对于web应用,不能在URL上暴露任何重要信息,如密码、服务器名称、IP
地址或者文件系统路径等。
4.4.2.2.版本控制
1)程序清单:项目经理应在任何时候对于程序清单必须进行严格的控制并且及时地进行更
新;对软件开发源程序的相关资料都要进行控制,纸质的文件应当保存在一个安全的环
境下,如受控的文件柜等,电子文档则应进行一定的加密;
2)版本升级控制:当软件的版本由于更新,修改等操作需要升级时,必须先向相关负责人
员提交申请;项目经理经组织相关人员对升级的应用系统进行测试,确认系统的各种安
全特性,确认当前的版本为最新版本,旧的版本需进行归档;
4.4.2.3.权限设置:必须具有基于人员职责的用户授权管理以确保每个用户可以访问到其权利范
围内的应用系统部分,也要确保每个用户无法访问其权限范围以外的应用系统部分。4.4.2.4.保护敏感软件系统的安全性:通过将应用软件中敏感信息保存在服务器端以进行集中的
加密安全管理,确保客户端本身并不能存储任何信息敏感的数据。
4.4.2.
5.确保访问层的安全性:软件系统在要确保模块本身安全性的同时,还需考虑模块与模块
之间的通讯的安全性。模块与模块之间的安全性包括:应用系统内部模块之间的安全、
应用系统内部模块和外部模块之间的安全性,如主机和客户端之间通讯的安全性,服务
器和服务器间通讯的安全性,本地系统和异地系统之间通讯的安全性。
4.5.项目开发编码过程
4.5.1.项目开发编码过程由项目经理负责,技术主管、软件工程师共同完成。
4.5.2.项目开发编码团队根据《项目计划书》及《系统设计说明书》的要求进行编码过程的工作
细分,项目经理对细分后的编码过程进行管控。
4.5.3.项目经理负责做好开发编码的版本管理工作。
4.5.4.开发编码过程进行同时应同步开展软件测试工作。
4.5.5.开发编码阶段完成的标志为测试人员接受测试版本后,项目经理召开提交和阶段总结会,
开发人员的所有代码转交给项目经理管理。
4.6.测试提交过程
4.6.1.过程管理:
4.6.1.1.项目测试过程由项目经理负责,技术主管及测试工程师共同完成。
4.6.1.2.测试工程师在开发编码阶段的同时应该编制好《软件使用说明书》,并根据设计需求编
制测试计划和测试用例,接收测试版本后按照测试计划进行测试。
4.6.1.3.测试工程师完成对应版本的《软件测试报告》发现问题,交项目经理负责修改完善。
4.6.1.4.测试工程师测试完成版本的《软件测试报告》后,提交项目经理签字,并将对应测试版
本定义为发布版本。
4.6.2.过程安全:
4.6.2.1.测试前安全检测:项目经理应组织开发人员进行代码审核,检查、消除程序代码潜在的
安全漏洞。
4.6.2.2.测试负责人应设计详细的测试计划,测试范围,测试方法和测试工具。
4.6.2.3.项目经理应在测试软件功能正常运行的基础上,还需测试模块和模块之间、功能和功能
之间的接口的正确性、负载能力及水平、系统承受压力及峰值、测试环境等。
4.6.3.环境安全:
4.6.3.1.项目经理应对项目文档、代码的存储进行备份,以确保在发生意外时,可有效恢复。
4.6.3.2.项目经理应对项目文档和代码版本管理和访问控制。
4.6.3.3.IT管理部门应对用于开发的服务器、个人电脑的配置做好严格的安全防护措施。
4.6.4.源代码安全
4.6.4.1.项目经理应做好源代码的管理,源代码管理应保存所有的历史版本,以便查阅。
4.6.4.2.项目经理应对所有的程序源代码及设置支持文件等打包进行安全检查并存档。
4.6.4.3.软件开发过程应使用公开并且经过验证和测试的加密方法;应避免向算法传递明文数据,
并避免修改存储该数据;应确保所使用的密钥长度和密钥空间能提供足够的安全级别;
对于大量数据加密,应使用对称的加密,提高加密的速度并减少资源消耗;对于少量存
储的敏感数据使用非对称加密,确保数据的安全性;应对密钥的存储进行严格保护。
4.6.
5.测试安全
4.6.
5.1.测试人员需明确记录测试目的、安全要点、测试参与人员、测试流程,并编写测试大纲,
包括对应用软件的账号、口令的安全测试;