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