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