1、XXXX 公司 技术方案 1 / 15 xxxxxxxx 有限公司 软件开发技术方案 Xxxx 有限 公司 2018 年 6 月 13 日 XXXX 技术有限 公司 2 1. 开发框架 开发的系统中所应用的技术都是基于 JavaEE,技术成熟稳定又能保持先进性。采用 B/S 架构使系统能集中部署分布使用,有利于系统升级维护;采用 MVC的开发模式并参考 SOA 体系架构进行功能设计,使得能快速扩展业务功能而不会影响现有系统功能的正常使用,可根据实际业务量进行部分功能扩容,在满足系统运行要求的同时实现成本最小化。系统采用分布式部署,系统功能隔离运行,保障系统整体运行的稳定性。 图 1.开发框架与
2、体系结构图 1.1. web 端技术栈 ( 1)前端采用 elementUI/jquery/bootstrap/vue 实现, 前端和 Controller 交换数据基于 json 格式。 1.2 业务端技术栈 ( 1) 业务端基于 springboot、 springMVC、 JPA、 SpringData 技术栈构建,对于复杂的系统则采用 springCloud 构建。 ( 2) 四层分隔: controller( Facade) /service/dao/entity,其中 faade 主要用于生成 json,实现和前端的数据交换。 ( 2)命名:按照功能模块划分各层包名,各层一致。 X
3、XXX 技术有限 公司 3 2. 系统安全保障 2.1 访问安全性 权限管理是系统安全的重要方式,必须是合法的用户才可以访问系统(用户认证),且必须具有该资源的访问权限才可以访问该资源(授权)。 我们系统设计权限模型,标准权限数据模型包括 :用户、角色、权限(包括资源和权限)、用户角色关系、角色权限关系。权限分配:通过 UI 界面方便给用户分配权限,对上边权限模型进行增、删、改、查操作。 基于角色的权限控制策略根据角色判断是否有操作权限,因为角色的变化 性较高,如果角色修改需要修改控制代码。 而基于资源的权限控制:根据资源权限判断是否有操作权限,因为资源较为固定,如果角色修改或角色中权限修改不
4、需要修改控制代码,使用此方法系统可维护性很强。建议使用。 2.2 数据安全性 可以从三个层面入手:操作系统;应用系统;数据库;比较常用的是应用系统和数据库层面的安全保障措施。 在操作系统层面通过防火墙的设置。如设置成端口 8080 只有自己的电脑能访问。应用系统层面通过登陆拦截,拦截访问请求的方式。密码不能是明文,必须加密;加密算法必须是不可逆的,不需要知道客户的密码。密码的加密算法 MD5-不安全,可被破 解。需要把 MD5 的 32 位字符串再次加密 (次数只有你自己知道 ),不容易破解;加密多次之后,登录时忘记密码,只能重置密码,它不会告诉你原密码,因为管理员也不知道。 3. 项目计划的
5、编制和管理 本公司项目基于敏捷过程的方式组织,项目计划基于需求和团队反复讨论的过程。在开发系统时都经过 了解需求,开需求分析会议,确定开发任务,推进开发进度,测试,试点,交付 等开发步骤,其中具体内容有: 1,了解需求:跟客户沟通,充分了解对方的需求,然后对需求进行过滤,最后整体成需求文档 2,需求分析会议:也就是项目启动会议之后要做的事情,对 拿来的需求进行讨论,怎么做满足需求。主要对需求进行全面的梳理,让开发,产品,项目都熟悉XXXX 技术有限 公司 4 整个需求。 3,确定开发任务:根据敏捷开发法则,需求变成一个一个功能点之后就是安排开发任务了。根据团队现有的资源合理分配任务,和时间节点
6、 4, 推进开发进度:在 开发的 实际过程中,注意节奏的把控, 注重 功能点 完成的时间点。 5, 每一个功能点完成之后 都会有测试工程师 进行单元测试。 6,试点单位进行试用,然后解决问题。 7,交付 XXXX 技术有限 公司 5 4. 项目进度保障体系 4.1 制度保障 实行项目经理负责制,建立强有力的 开发 指挥机构和 开发 保障体系,投入能保证 开发 进度如期实现的足够的 开发 队伍,实行专业化 开发 。建立从项目经理到各 开发人员 的 开发任务 ,全面、及时掌握并迅速、准确地处理 开发过程中遇到的各种问题。对 开发过程中遇到的需求变更进行 协调 管理 ,对重大关键问题超前研究,制定措
7、施,及时调整 开发的公共类 保证 开发过程的 连续性和 高效性 。强化 开发过程的时间点把控问题 ,对 开发任务 实行动态管理 。保证在时间点内完成开发任务。 实行内部经济承包责任制。使责任和效益挂钩,个人利益和完成工作量挂钩,做到多劳多得,调动 开发团队 、个人的积极性。编制科学合理的总体 开发 进度计划,运用专业管理软件,对 开发 计划进行动态控制;并在总计划的基础上分解明确的月及旬计划,项目经理抓住主要 技术难点 ,严格按计划安排组织 开发 ,重点抓好关键 技术 的 开发 。定期检查 开发 计划的执行情况,及时对 开发 进度计划进行调整;在 开发 过程中,根据 开发 进展和各种因素的变化
8、情况,不断优化 开发的 方案,保证各 开发有条不紊的执行。 4.2 开发进度开发工期保证措施 任务分发 将利用一流的 开发 策划、高效的组织、科学的领导和动态的控制,用一流的运作与协调、一流的 技术框架与技术 、一流的 团队 素质等来实现一流的管理,从而通过过程控制实现 最终产品的精品,满足 客户 对工期、质量等各方面的要求。 完善的 开发 计划保证体系是保证 项目 工期的纲要,掌握 开发 管理主动权,全面而宏观的控制整个 开发的 过程,是保证 开发 进度的关键。通过完善的 开发 计划保证体系,采用先进的 开发 计划计算、设计软件,制定出科学合理的 开发 进度计划。 1 编制三级网络计划 在
9、开发过程中 中我单位将分级编制网络计划来控制整个 项目 的 开发 。 ( 1)一级网路计划 根据 项目 总工期控制 项目 各阶段里程碑目标。 ( 2)二级网路计划 XXXX 技术有限 公司 6 根据各阶段分项 业务 的工期目标控制分解成分部目标。 ( 3)三级网路计划 主要 技术使用 控制周计划和日计划。通过对关键 技术开发 编制标准 业务 ,建立计划统计数据库,利用项目管理信息系统对工期进行全方位管理。 2.制定派生计划 根据总控工期、阶段工期和分项 业务 工作量制定出技术保障、商务合同、物资采购、设备定货、 人 力资源等派生计划,是进度管理的重要组成部分,按照最迟完成或最迟准备的插入时间原
10、则,制定各类派生保障计划,作到各项工作有备而来,有章可循。 工期保证体系框技术保证体系 综合保证体系 组织保证体系 技术总监 开发 组织设计 技术总监 开发人员 测试人员 试验室 项目经理 制 度 保 证 奖惩制度 岗位责任制 经济责任制 开发团队 单元测试 技术培训 测试用例 开发 进度计划保证 月度计划 季度计划 年度计划 技术工作责任制 技术标准 设计文件 招标文件 技术规范 技术工作标准化 开发团队 实现工期目标 XXXX 技术有限 公司 7 4.3 施工进度三阶段控制措施 (一) 开发 进度“事前控制” 1.积极做好业务需求,业务流程等准备工作,为自己尽早投入开发创造好条件,把准备工
11、作做细做充分,确保按时无障碍开发。 2.编制详细的开发进度计划,包括需求文档,业务分工计划,业务流程等。 3.关键技术或特殊技术编制相应的开发进度计划,制定相应的节点,编制节点控制计划。 4.编制开发节点实施细则,明确搭接和流水的节拍。 (二)开发进度“事中控制” 1.严格审核开发人员的进度计划、季度计划、月计划,并监督各人员按照已制定的开发进度计划进行开发。 2.在本项目开发期间,按开发进度需要,配备充足的开发人员,确保时间点的正常运行。 3.在开发期间,每周结束前,组织召开一次碰头会,协商解决当周开发过程中和第二周开发中将会发生的问题,应解决的问题决不拖延。 4.狠抓开发进度与质量,加强技
12、术培训。只有在确保技术过关、质量的前提下才能求速度、讲进度、抓工期。 5.根据开发的实际情况,及时修改和调整开发进度,并定期向客户通报系统开发进展情况。 (三)施工进度“事后控制” XXXX 技术有限 公司 8 1.根据开发进度计划,及时组织测试人员通过事先编写的测试用例进行分项测试与系统测试。 2.定期整理有关开发进度的资料,汇总编目,建立相应的档案。 5. 项目质量保障体系 5.1 过程中的保证 依据项目的软件特点、合作方的项目实施要求,采取需求分析,系统设计,软件项目计划,软件需求分析,软件模型设计,软件详细设计,单元测试设计,编写单元测试,系统培训,系统测试等一些列的措施在过程中保证项
13、目的质量。 5.2 技术方面的保证 公司研发人员均为国内高校分子计算机专业或招聘的高级技术人才,专业基础和工作经验扎实丰富,整个团队具有高级工程师、博士的人才搭配,具备强大的持续研发能力。 5.3 软件质量管理责任分配 角色 职责 配置管理员 制定、创建和维护配置库,提供文档规范,并传达到各个部门。 QA(质量保证) 参与项目各个阶段的评审,进行过程评审和产品审计,检查文档和代码的规范执行情况 QC(质量控制) 软件测试是质量控制的主要手段,测试人员进行软件的测试设计和执行工作 5.4 工作产品和活动 活动 责任人 工作产品 是否可裁剪 项目立项 项目经理 项目计划 否 配置管理员 配置管理计
14、划 是 QA 质量保证计划 是 测试人员 系统测试计划 否 XXXX 技术有限 公司 9 需求管理活动 项目经理 需求调研报告 是 需求规格说明书 否 用户、项目经理 用户确认书 是 QA 评审报告 是 设计过程、决策分析活动 设计组 概要设计说明书 否 界面设计图 是 详细设计说明书 是 项目经理 决策分析评议表 是 QA 评审报告 是 开发编码、集成过程活动 项目经理 版本发布记录 否 QA 评审报告 是 开发人员 程序代码 否 系统测试活动 测试人员 测试用例、测试报告 否 QA 评审报告 是 项目结项、交付与维护活动 项目经理 培训教材 是 用户手册 是 安装手册 是 项目总结报告 否
15、 项目经理、客户 用户验收报告 是 QA 评审报告 是 项目跟踪与监控活动 项目经理 项目问题跟踪日志 是 QA 不符合项问题跟踪记录表 否 项目跟踪与监控活动检查单 是 风险管理活动 项目经理 风险管理列表 是 QA 风险管理活动检查单 是 配置管理活动 配置管理员 配置状态报告 是 变更请求审批表 是 变更跟踪记录表 是 XXXX 技术有限 公司 10 QA 配置管理活动检查单 是 评审活动 项目成员 评审报告 否 QA 评审活动检查单 是 5.5 评审 评审是以一种正式的形式进行,如有正式的、事先定义好的有关职责的各种角色,并遵循组织规定的流程。 对于任何工作产品的审计,都会组建与之对应
16、的专门评审组,包括作者、主持人、记录员以及陪审员若干。评审组的成员可以包括 PPQA、项目组成员,但不能有作者的直接领导或者管理者。 评审小组先召开一个预备,作者会针对工作产品向大家做个总体的介绍,例如讲解一下本工作产品的目标是什么,以及其相关的实现 细节、开发标准等。应该允许甚至鼓励评审组成员动手查看工作产品,或者查看开发过程中所用到的检查单。 评审小组的主持人负责确定什么 时间开始真正的评审会议,在预备会和正式评审会议之间,评审小组成员对工作产品进行彻底检查,并依据相关标准和准则评审工作产品。 在预定时间,评审小组成员以会议形式聚在一起,依次对产品进行检查,主持人负责对整个会议的进展进行控制,记录员记录下这个过程。 在工作产品中发现的每一个缺陷都会被认真记录下来,并被适当分类。 会议结束后,负责人需要分析相关缺陷,找出产生此缺陷的原因并加以修正。 主持人应确保所有的缺陷都会得到解决和修正。如果过程需要加以变更的话,应将相关问题移交相关的质量保证人员。 阶段 评审内容 评审时机 参加人员 是否可裁剪 计划阶段 项目计划 项目启动会议 项目所有成员 否 配置管理计划 项目所有成员 是 质量保证计划 项目所有成员 是