软件项目技术方案
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,实现和前端的数据交换。
(2)命名:按照功能模块划分各层包名,各层一致。
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
风险管理活动检查单
是
配置管理活动
配置管理员
配置状态报告
是
变更请求审批表
是
变更跟踪记录表
是
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)
测试人员、项目经理、开发组成员、需求分析师、系统架构师、QA
否
发布阶段
用户手册
项目总结会议
项目所有成员
是
项目总结报告
项目所有成员
否
5.6质量保证(QA)
QA工作审计产品
文档
责任人
项目计划
项目经理
需求规格说明书
项目经理
概要设计说明书
项目经理
源代码
开发组
系统测试用例
测试组
系统测试报告
测试组
用户手册
项目经理
项目总结报告
项目经理
入最佳实践库的产品
项目经理
QA工作中需要审计的活动
活动
评审时机
项目立项
计划阶段
需求管理活动
需求阶段
设计过程活动
设计阶段
决策分析活动
设计阶段
开发编码活动
编码阶段
集成过程活动
编码阶段
系统测试活动
测试阶段
项目结项
发布阶段
交付与维护
发布阶段
项目跟踪与监控活动
每月一次
风险管理活动
每月一次
配置管理活动
每月一次
评审活动
每月一次
QA审计中的不符合项目问题
对QA审计过程中发现的不符合项问题要写入《不符合项跟踪记录表》,以邮件的方式发给问题的相关人员,做好和项目成员、项目经理、部门经理之间的沟通,问题的上报流程:项目组成员沟通解决——项目经理——部门经理——总经理。QA要对不符合项问题进行跟踪与监控,直到问题解决,QA验证并关闭不符合项。
6.系统测试验收方案
系统测试验收主要包含以下四方面的工作内容,分别是验收测试、系统试运行、系统文档验收以及项目终验。
6.1.验收测试
验收测试即对信息系统进行全面的测试,依照双方合同约定的系统环境,以确保系统的功能和技术设计满足建设方的功能需求和非功能需求,并能正常运行。验收测试阶段应包括编写验收测试用例,建立验收测试环境,全面执行验收测试,出具验收测试报告以及验收测试报告的签署。
6.2系统试运行
信息系统通过验收测试环节以后,可以开通系统试运行。系统试运行期间主要包括数据迁移、日常维护以及缺陷跟踪和修复等方面的工作内容。为了检验系统的试运行情况,甲方可将部分数据或配置信息加载到信息系统上进行正常操作。在试运行期间,甲乙双方可以进一步确定具体的工作内容并完成相应的交接工作。对于在试运行期间系统发生的问题,根据其性质判断是否是系统缺陷,如果是系统缺陷,应该及时更正系统的功能;如果不是系统自身缺陷,而是额外的信息系统新需求,此时可以遵循项目变更流程进行变更,也可以将其暂时搁置,作为后续升级项目工作内容的一部分。
6.3系统文档验收
系统经过验收测试后,系统的文档逐步、全面地移交给客户。客户按照合同或者项目工作说明书的规定,对所交付的文档加以检查和评价;对不清晰的地方可以提出修改要求,在最终交付系统前,系统的所有文档都需要验收合格并经双方签字认可。
6.4项目终验
在系统经过试运行以后的约定时间,双方启动项目的最终验收工作。最终验收的工作包括双方对验收测试文件的认可和接受、双方对系统试运行期间的工作状况的认可和接受、双方对系统文档的认可和接受、双方对结束项目工作的认可和接受。项目最终验收合格后,由双方的项目组撰写验收报告。
7.技术服务与支撑
我公司在合同有效期内提供免费维护期和长期的技术服务,向用户用户相关技术人员免费提供原理和技术上的指导和咨询,使用户能正确熟练地使用本协议的软件开发及测试成果。
根据用户使用系统的相关部门人员现状,一旦系统安装调试完毕投入正常运行后,卓安公司在交付本系统的一段时间内,专门指派若干名专业工程师为用户使用部门进行指导培训和维护,直到用户安排的技术人员能完全接管本系统的操作管理为止。
7.1.现场支持
系统在售后期间,提供7×24小时的技术支持服务。如系统出现故障,将保证30分钟远程响应;影响生产的故障4小时抵达现场,并派出专业工程师在8小时内排出故障;不影响生产的故障8小时内抵达现场,并派出专业工程师在2个工作日内排除故障。如在2个工作日内无法解决,将在2日内向用户方提出详细解决方案及日程安排,交给用户方确认。
7.2.技术支持
长期电话技术咨询和技术服务和远程在线服务。用户可以随时拨打技术支持热线电话或通过远程协助进行有关技术咨询,专业技术人员会耐心解答用户的问题。免费提供需求预测、系统规划等支持。当用户需要对系统扩容、调整时,将免费协助用户准备预算、规范书、工程有关事项。
7.3.常规维护
系统在售后期间,会安排工程师定期对系统进行运行检查。如有功能需求分析范围内的问题,及时进行修改;维护期后发现的在需求规格说明书范围内问题,同样及时进行修改。对用户提出的方便操作和易用等可用性方面的要求,尽可能满足用户要求,并保证在接到要求后两周内解决。用户提出性能要求,如属于软件编制因素导致性能较差,技术人员主动调整软件,以提高性能,保证在一个月内解决。
7.4.变更管理
对系统的应用平台和开发、运行环境以及应用系统的变更和升级的详细资料第一时间提交用户。
8.培训计划
8.1.1.培训工作概述
用户软件系统项目建设完工后,为了使各个使用本系统的部门能熟练的操作系统,利用系统提供的功能来处理日常工作,本公司将对使用系统的相关部门员工进行一次全面的培训。
培训过程按系统使用部门划分,分别培训各部门使用的系统功能点及业务流程。另外为了用户管理需要,将重点培训2名系统管理员,培训系统管理相关功能。
8.1.2.培训规范
由于培训过程涉及到时间、场地、人员等诸多不确定因素,本方案所提及项只作为参考大纲。实际培训安排因由主管部门统一规划,并下文到各系统使用部门。
培训的效果与参与人员的重视程度有很大的关系,客户各部门对参与人员要做好工作,引起重视。主管部门可以考虑是否需要在培训结束并且参与培训人员试用一段时间后,组织一次系统使用测验。
通过系统使用培训,达到以下目标:
Ø
使相关使用部门了解系统运作,熟悉系统功能。
Ø
使系统有效的推广到相关使用部门,让员工积极参与使用系统。
Ø
培训专业系统管理人员,深入了解系统功能,为系统业务功能扩展提供建议。