《项目质量管理平台的设计与实现》14000字_第1页
《项目质量管理平台的设计与实现》14000字_第2页
《项目质量管理平台的设计与实现》14000字_第3页
《项目质量管理平台的设计与实现》14000字_第4页
《项目质量管理平台的设计与实现》14000字_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

引言当今社会是一个逐步步入信息化的社会,科技发展的速度越来越快。随着科技的发展,对于项目的质量管理也逐渐受人们重视。为了满足大部分人的需求,近些年国内外的各种项目质量管理系统所包含的功能越来越全面,但相对应的系统的构成也越来越复杂,这使项目质量的管理难度越来越高。而一个项目是否能成功,主要在于是否能够在给定的预算和制定好的交付时间内满足用户对其项目质量的要求。本文在分析了国内外几款比较受欢迎的项目质量管理系统,发现呈两极分化,一边是过于简化用户难以上手,另一边是过于庞大繁杂的系统功能,虽能满足大部分用户需求,但系统过于臃肿,两方面都会导致用户的使用成本升高。通过将整个系统模块化设计和一定技术优化系统的页面,来降低用户使用成本,提高用户管理项目效率,这就是本设计的研究目的。为了达成此目的,设计一个简洁高效的项目质量管理平台。用户不需要使用说明即可轻松使用本平台进行创建项目,创建、管理问题并实时管理项目相关文件与文档。本平台中还可以使用评论功能让项目成员能够轻松快捷的与其他成员互相沟通交流。

1绪论1.1研究背景和意义当今社会是一个逐渐步入信息化的社会,科技发展的速度越来越快。随着科技的发展,项目质量管理也逐渐得到了重视。一个项目之所以能成功,在于能够在给定的预算和制定好的交付期限内满足客户对产品质量的要求。在整个开发阶段,因为各种原因,产品会出现各式各样的问题,如果没有对产品的质量进行严格的监察和管理,在交付时就会出现若干问题,不仅会拉长项目时间,还会影响用户对团队的看法,所以项目质量管理在整个生命周期都是重中之重。因此,本设计的目的是设计一个简洁高效的项目质量管理平台,让用户可以短时间、高效率的把控多个项目的质量。1.2国内外研究现状问题作为一个软件开发过程中的伴生物不可避免,有效地追溯和分析以及处理项目中所存在的问题就会显得十分重要。项目开发阶段需要进行妥善地处理各种问题,这将直接影响到过程质量与交付时产品质量。在对于系统问题进行分析与处理时,随着人们对于系统质量的要求不断提高,开发人员需要更高的技术水平。在整个项目开发中决定整个项目成败与否的关键就是软件质量,软件质量难以得到保证的原因一是由于复杂度越高的项目开发系统就越容易出现问题,另一方面则是由于这些软件开发系统所自身是不可见的。在测试工作开始前测试人员根据需求文档编写测试用例并进行功能测试。在执行用例时发现问题并不难,但高效解决问题是一个难点,合理的问题跟踪流程与问题的归档统计功能将大大提高开发与测试人员的工作效率。目前国际上有很多的软件公司已经根据相关的需求开发了一些基于web的质量管理系统,其中比较有名的有:(1)bugify:bugify:这是个异常简易的大型缺陷事件追溯处理系统,功能十分强大。主要的几项功能内容包括:设置缺陷优先级,搜索结果过滤,邮件发送通知,标签,缺陷链接,最突出的一项功能便是可以支持无限的其他语言。(2)JIRA:JIRA是一个缺陷跟踪系统。JIRA已经广泛地运用在了问题追踪、搜集需求、跟踪项目质量等领域。它具有丰富的扩展灵活的配置,能够简单部署且功能全面。(3)禅道:禅道是开源的项目跟踪管理软件。它内置了项目管理和无限扩展机制,用户可以针对自身需求对禅道的二次开发。它也为对应页面提供了API。这些问题跟踪软系统无论是在功能上还是技术上都十分强大,它们都具有良好的可扩展性,并且可以按照不同需求制定项目流程,能够分配权限。但是这类系统在设计和进行研究开发的过程中,复杂度比较高,针对不同的用户需要消耗一定的成本对其进行系统的量身定制和设计,并且对于系统的相关管理人员都需要通过相应的技术培训之后才能熟练地掌握和运用整个系统的所有功能,因此该类系统在实际使用过程中成本颇高。当前我国的问题跟踪管理系统存在的问题主要有以下两点:(1)系统的研究方向单一,大多数系统只注重问题跟踪管理,而忽视了项目进度管理。(2)系统具有较强的局限性,当系统开发出来后往往只适用于当前企业而不适用于其他公司。

2相关技术与概念介绍2.1python简介Python,它是一个解释性、编译性的面向对象编程语言,使用Python语言整个软件开发的过程中不需要编译这个环节。与其他主流的编程设计语言,例如c++和java等对比,python以一种极为简单但又十分强大的编程方式完整的实现了面向对象编程。最重要的一点就python具有巨大的标准库,可以用来解决各种难题,包括正则表达式、线程、数据库、网页库和浏览器等等。2.2Django框架简介2.2.1Django简介Django是一个基于Python语言的开源应用框架。在创建网站时可以使用Django框架使整个流程更加轻松,并进一步创造性地开发了高效率的WEB服务。Django的基本结构是基于MVC模型的,使得后续对该程序的更新修改和扩充变得更加简单,并且让某些部分被重复使用成为了可能。它既能够封装网络和线程操作,也有提供HTTP请求和响应、数据库读写管理等一系列功能。功能完善、要素齐全。强大的数据库可以访问API。2.2.2MVC简介MVC模式是一种网络架构模式,它将系统三大部分:模型、视图与控制器。MVC以一种低耦合的方式连接在一起。模型是设计系统应有的数据,负责构建对象并链接数据库服务器。视图主要负责前端页面,具有与用户进行交互的功能。控制器则主要负责有前端向服务端发送请求,并对每一个请求做出相应的处理。MVC模式如图2.1所示:图2.SEQ图\*ARABIC1MVC架构设计图2.3数据库与相关存储设备介绍本设计所研究的轻量化项目质量管理平台重点在于轻量化与简洁高效,所以没有选择将所有数据存储在mysql中,而是根据不同需求将数据存储在不同数据库中,例如验证码存储在Redis之中而文件管理的中的文件则通过腾讯云的对象存储来保存,一方面减少本地服务器的负载,另一方面能够更安全的保存重要数据。以下是程序中所使用的数据库与相关存储设备的介绍。2.3.1SQLite简介SQLite,是严格遵守ACID标准的轻量化的关系型数据库,并且已经在很多嵌入式系统中被广泛的使用,占用系统资源极低,处理速度也是相对于Mysql、PostgreSQL这两款被广大开发者所熟知的数据库都要快。2.3.2Redis简介Redis也是一个被广泛使用的数据库,因为Redis的众多数据都是存储在内存中的,所以在进行读写操作时运行速度很快,因此Redis被广泛应用在缓存上。Redis的主要优点如下:一、它的性能极高,读取速度与写入速度极快,二、它拥有丰富的数据类型,支持列表、哈希表等多种数据类型的操作。三、原子,要么成功地执行或者失败不执行,多个操作也支持事务,即原子性。四、丰富的特性,Redis还支持通知,key过期等等特性。2.3.3对象存储简介对象存储桶是腾讯公司提供的一种基于对象文件信息的分布式云存储服务,用户可以直接通过互联网随时存储。腾讯云对象的存储功能让用户可以使用到一个具有高扩充度、低费用、可靠、安全的大规模数据库存储服务。通过cos我们就可以实现对任意一个格式的文件进行上传、下载及管理。2.4开发工具PyCharmPyCharm是一个基于Python语言的集成开发环境,功能完善可以提高开发者效率,还提供了一些高级开发功能,在Django框架中可以进行更加快速的Web开发。Pycharm还自带有常用的三种编译器,这样就可以能够通过Django框架进行Web开发。所以选取了PyCharm作为本系统的开发工具。

3系统需求分析3.1系统可行性分析系统的可行性分析主要目的是通过对一个项目的主要实施内容以及实施条件,从技术、经济、工程等各个方面对项目进行了深入的研究和综合分析,对项目质量管理平台开发过程完成以后各种阶段可能获取到的社会经济效益和社会经济影响进行了综合预测,为整个项目的决策实施工作提供了重要依据的一种具有较高综合性的管理系统质量分析方法。以下是通过多个方面来论证项目质量管理平台的系统可行性。3.1.1技术可行性技术的可行性就是指企业进行决策技术和决策计划的技术时不能超过目前所掌握的技术资源条件之间的边界。主要应该考虑以下几个重要的方面因素:在一个给定的时间内系统能否完全实现所需要的功能,通过什么去实现该产品以及产品的质量如何。本系统主要是使用Python语言进行编写,后端则是使用Python的Django框架,而在系统中前端所需要使用的就是Bootstrap框架与JavaScript插件来搭建和开发web版本下项目质量管理的平台,Django框架由于采用MVC模式所以功能强大且耦合性低、重用度高、部署速度快、可维修性高等特点,并且Django还有强大的数据库功能、简洁的URL设计。最重要的是Django的文档齐全插件丰富,能够快速开发。作者相对于java更熟悉Python语言,在最近一年编写了不少基于Python的算法脚本,也学习并体验过使用Django框架的程序,对于此方面颇有心得。所以作者可以保证能够做到在一个给定的时间内完成所有需求描述中的各种功能。另外,作者在最近一年主要负责功能测试,也学习过部分项目管理相关的知识,所以能够正确把握项目的质量,保证最后能够产出合格的系统。3.1.2经济可行性经济发展可行性的分析包括成本-收益分析和短期-长远利润分析,从两方面分别评估本设计所研究的项目质量管理平台是否具有经济可行性,是否值得开发。首先由于本系统使用了腾讯云的SMS发送短信功能与COS对象存储桶功能,所以在为用户提供这些服务时需要一定成本,但是腾讯云的短信功能和对象存储有一定的免费额度所以在系统运行初期时,使用腾讯云的服务只需要支付对象存储桶的传输时产生的花费。其次本系统在开发过程中的开发成本较少,只通过一台计算机进行开发。最后还需要将系统部署在本地或云服务器上,由于本系统注重轻量化,所以对服务器的负载要求并不会很高。收益方面本系统提供了会员服务,普通会员只能体验系统功能,实际使用时限制较大,用户可以通过购买会员来享受更好的服务。如此本系统初期只需要支出较少成本即可在短时间内获取一定利益。另外本系统的会员分为三个档次,即普通会员,VIP,SVIP,而用户购买大量会员时会给予一定优惠,这样可以提高一定的用户黏度,将短期利益转换为长远利益。综上所述本设计所研究的项目质量管理系统具有一定的经济可行性,能够带来一定经济收益。3.1.3社会可行性社会可行性主要是在特定环境下进行项目的研究开发和执行,其中包含了一些社会影响因素的可行性,法律的可行性,使用的可行性。本系统能够大大提高了用户在对一个项目进行管理时的工作效率,进而为更多的用户带来了更多的收益,并且本次管理系统将没有任何侵害到任何一个人、集体、国家利益的行为,没有任何违背党和国家政策与法律。因此本设计研究的项目质量管理系统具有社会可行性。3.1.4风险因素及对策本系统在实际运营后可能会出现一定的风险,例如用户固定不在增长或购买会员的用户数量增长缓慢甚至降低等问题。为了应对这些风险,本系统会采取相对应的一些对策,包括但不限于开展邀新奖励活动,让用户邀请新用户来使用本系统并给予老用户一定的奖励。或是开发新功能为用户提供更好的服务,又或者是与能够为项目质量管理提供一定帮助的系统对接,吸引更多用户使用本系统。3.2系统功能性需求分析系统功能性需求分析是整个研究过程中的第一阶段,也是一个直接关系到整个研究过程中系统的开发工作是否成功的重要步骤。准确、全面并且具有规范性的软件需求分析,这对于保证系统研究与开发的成败至关重要。此部分对本设计所研究的项目质量管理平台的各种需求进行了详细的分析。首先是对整体系统进行需求分析,之后对系统中所涉及的各个模块的功能进行需求分析。3.2.1系统主要功能项目质量管理平台主要为用户提供一个平台,让用户能够准确且快捷的管理自己负责项目的质量。核心功能是对项目问题的创建、更新与管理,并围绕此核心功能开发出文件管理,文档管理,数据可视化等功能。以下是各个模块的需求分析。1.问题创建与更新的需求:此需求为本次开发的核心需求,项目的质量管理离不开问题管理,想要把握好项目的质量,就要实时能够实时掌握项目出现的问题,问题的状态分为:新建、处理中、已解决、已忽略、待反馈、已关闭、重新打开七种状态。在创建与更新时可以配置当前问题的问题类型、主题、问题描述、状态、优先级、时间等数据并且能够将问题指派给项目组中的任意一名成员,并且对应的指派动作也会展示在概览页面之中。当项目中已有的问题数量过多时,应该支持分页展示,并且能够根据问题类型、问题状态、问题优先级、指派者与关注着进行筛选当前项目中的问题。除此之外,为了能够让用户直观的看到每个问题的解决过程,需要在问题详细页面展示问题的操作记录,操作记录的展示分为修改记录与回复两大种类,用户进行回复可以插入到对应记录下方。2.文件管理的需求:为了降低本地服务器的负载并且满足当前功能,文件管理需要使用腾讯云的对象存储功能,每个项目单独存储。当用户使用此功能时,可以完成对项目所有文件的管理与单一文件的上传下载。支持文件夹的多层嵌套与级联删除,文件列表上方会展示当前文件夹路径,点击路径中任意文件夹能够跳转到对应文件夹展示文件列表。3.数据可视化的需求:统计中可以统计当前项目的人员工作进度和问题优先级,默认展示当天数据,可以随意更改时间范围,可以快捷选择时间范围例如昨天、最近7天、本月等。4.注册与登录的需求:为了防止用户重复注册账号并且为用户的账号打标,用户在注册时需要提供自身邮箱和手机号以及一些必要信息进行注册,使用腾讯云短信功能对用户手机号进行验证,方便后期用户找回账号。登录时用户可以选择验证码登录或者使用手机验证码登录。项目质量管理平台用例图设计,如图3.1所示:图3.1项目质量管理平台用例图3.2.2业务流程分析业务流程分析主要是对于项目质量管理平台的各种业务和功能进一步的细化,从而建立起来形成一套科学且合理的项目业务流程,定义每种项目的内容,对现行项目的管理方法进行详尽地的回顾和具体描述,从而了解和认知每种项目在业务及其技术方面的特点和具体需求。项目质量管理平台业务流程图分析,如图3.2所示:图3.SEQ图\*ARABIC2项目质量管理平台业务流程分析图3.3系统非功能性需求分析项目质量管理平台本身作为一款能够同时提供给所有的用户进行对项目质量管理的服务系统,系统的安全尤其重要,所以也对系统的一些非功能性的需求进行了分析,虽然对本项目管理系统的功能性基本没有什么影响,但是为了改善和提升系统的用户体验,保证系统的信息安全,需要综合考虑到对系统响应时间的需求、系统安全的需求与系统的易用性要求。3.3.1系统响应时间需求作为以高效率为目标而开发的项目质量管理平台,在用户使用过程中,应该具有快速相应的特性,保证单个用户所感受到的交互式操作的响应时间应小于等于0.1s,而系统响应时间,包括但不限于过滤问题等功能,响应时间应小于等于1s。3.3.2系统可靠性需求系统应该具有较高的可靠性,在系统运行中不会无故出现宕机问题,保证用户在系统中进行正常操作时,所有环节均能够正常运行。在系统运行过程中,应能够防止出现恶意用户直接对服务器发送请求所导致的其他用户数据出错或是未支付成功开通会员等问题。在系统重要部分进行数据验证,保证用户的项目数据不会丢失。3.3.3系统易用性需求项目质量管理平台的用户操作页面设计得应该是简洁易用且灵活,风格统一不突兀,系统帮助信息完善,能够协助用户更好的使用本系统,充分的考虑到本系统的易用性。本系统的所有交互清晰明了,对于首次接触本系统的用户,经过短时间的熟悉即可熟练的使用本系统的所有功能。3.3.4系统可扩展性要求本系统采用模块化设计,可以根据用户的需求阶段性地对系统进行更新设计,可以视情况可以由专业人员部署在windows或Linux中,为用户进一步提供服务。

4系统总体设计系统总体设计是根据需求分析说明说得出的系统逻辑和模型来决定一个合理的软件系统的总体结构,其中包括划分整个系统的各个模块,模板间的相互调用关系和软件所使用的数据库结构。下面将对项目质量管理系统进行系统总体设计。4.1系统架构设计本管理系统因为需要直接部署在网页终端所以使用的是B/S架构MVC模式,B/S架构也就是一种浏览器/服务员架构的模式,是对C/S网站架构的一种重新改进。在B/S架构下的用户可以直接通过浏览器直接进入系统的界面,一小部分的逻辑可以在前端执行,其余的逻辑则可以在服务端执行。B/S网络架构把系统功能所实现的核心组成部分都集中到后端服务器上,降低了系统的维护与使用费用,而且当用户在使用本管理系统时只需要自己安装任意一个浏览器,用户就可以通过网络浏览器直接与服务端之间进行交互,通过这种方法可以降低用户在使用本系统是电脑的负载,减轻系统维护与安装升级的费用。B/S架构如图4.1所示:图4.1B/S架构设计图4.2系统总体架构项目质量管理平台主要采用的模式是MVC的模式,把系统分为三个组成部分:控制器、视图以及模型。MVC以一种简单的、低耦合的技术形式紧密地相互联系着。模型能够完成具体的业务操作。视图可以将信息展示在前端。控制器,不做具体操作,只是中转用户输入的信息。从前端获取数据,引导用户输入并向模型发送用户输入的数据,负责管理前后端与用户的交互控制。使用MVC模式能让系统的耦合性变低,使其方便维护,能够更好地针对不同模块开发而互不影响,并且重用性高,但是使用MVC后会导致项目架构变复杂,开发过程的难度会提升。4.3系统功能模块划分项目质量管理系统的功能模块主要分为项目管理、问题管理、文件管理与用户管理。1.项目管理包括创建项目、删除项目以及对项目的规划,在项目详情页面可以看到当前项目的大部分数据概览,包括新增问题趋势、问题概览、项目成员、项目详细信息与项目动态。用户可以生成邀请链接邀请非项目组成员进入项目。2.问题管理包括创建问题、更新问题和过滤问题列表,问题会根据当前问题状态展示不同颜色,点击对应问题进入问题详情,在问题详情中可以实时展示不同项目参与者对当前问题的更新记录并且用户可以对其中任意一条记录进行评价。在统计中可以观察不同时间段该项目的问题状态与优先级可视化数据。3.文件管理分为两种,一是大文件管理,另一个是文章管理,大文件管理可以创建多级文件夹来实现对较大文件的存储功能,点击对应文件夹即可跳转,文件夹不支持下载但可以修改名字,文件支持上传下载功能。文章管理能够新建、修改或删除文章,使用markdown文档编辑器使页面更加简洁。4.个人管理包括注册登录与会员功能等,注册需要用户通过手机号获取验证码注册,登录可以选择验证码登录或手机验证码登录,会员功能能够为用户提供更好的服务。系统功能模块如图4.2所示:图4.2系统功能模块图4.4系统数据库设计4.4.1E-R模型本设计所研究的项目质量管理系统在存储用户数据时,可能会出现一些大型文件,这时若将数据存储在本地服务器将会对本地服务器造成一定影响,为了解决此问题,本次将系统涉及到的所有数据依据其数据特性分为三种存储方式,常规的数据存储在sqlite数据库中,一些特殊数据根据其特殊性存储在redis中或是对象存储桶中。当用户进行注册、登录或购买会员时,有服务器为用户创建验证码或者订单号,这种数据存在时间限制,所以将其存储在redis中并设置过期时间。当用户进行上传下载任意文件时,服务器将会调用腾讯云对象存储功能,完成文件上传下载功能,并将文件基础信息存储在sqlite中,除此之外的常规数据会存储在sqlite中,当用户发送指令调用数据时,服务器将会从数据库中获取数据并以json格式返回给前端展示。本系统E-R图如图4.3所示:图4.3项目质量管理平台E-R图4.4.2数据库表设计在数据库设计阶段完成后,得到系统E-R图,根据实际情况将E-R图中属性转换为数据库表的键名,完成数据库表的设计工作。本系统的数据库各个表详细信息如下所示:用户信息表UserInfo:包含用户名、邮箱、手机号、密码表4.1用户信息表UserInfo序号字段名数据类型长度字段提示是否主键1idint主键是2usernamevarchar32用户名3emailvarchar32邮箱4mobile_phonevarchar32手机号5passwordvarchar32密码价格策略表PricePolicy:包含收费类型、标题、价格、项目数、项目成员数、单项目空间、单文件大小、创建时间表4.2价格策略表PricePolicy序号字段名数据类型长度字段提示是否主键1idint主键是2categorysmallint收费类型3titlevarchar32标题4priceint价格5project_numint项目数6project_memberint项目成员数7project_spaceint单项目空间8per_file_sizeint单文件大小9create_datetimedatetime创建时间交易记录表Transaction:包含状态、订单号、用户、价格策略、数量、实际支付价格等数据表4.3交易记录表Transaction序号字段名数据类型长度字段提示是否主键1idint主键是2statussmallint状态3ordervarchar64订单号4userForeignKey用户外键5price_policyForeignKey价格策略外键6countint数量(年)7priceint实际支付价格8start_datetimedatetime开始时间9end_datetimedatetime结束时间10create_datetimedatetime创建时间项目表Project:包含项目名、颜色、项目描述、项目已使用空间、参与人数、创建者、COS桶等数据表4.4项目表Project序号字段名数据类型长度字段提示是否主键1idint主键是2namevarchar32项目名3colorsmallint颜色4descvarchar255项目描述5use_spacebigint项目已使用空间6starboolean星标7join_countsmallint参与人数8creatorForeignKey创建者外键9create_datetimedatetime创建时间10bucketvarchar128COS桶11regionvarchar32COS区域项目参与者表ProjectUser:包含用户、项目、星标、加入时间表4.5项目参与者表ProjectUser序号字段名数据类型长度字段提示是否主键1idint主键是2userForeignKey用户外键3projectForeignKey项目外键4starBoolean星标5create_datetimedatetime加入时间wiki表:包含项目、标题、内容、父文章、深度表4.6wiki表序号字段名数据类型长度字段提示是否主键1idint主键是2projectForeignKey项目外键3titlevarchar32标题4contenttext内容5parentForeignKey父文章6depthint深度文件库表FileRepository:包含项目、类型、名称、文件大小、文件路径、父级目录、最近更新这等数据表4.7文件库表FileRepository序号字段名数据类型长度字段提示是否主键1idint主键是2projectForeignKey项目外键3file_typesmallint类型4namevarchar32文件夹名称5keyvarchar128文件储存在COS中的KEY6file_sizebigint文件大小7file_pathvarchar255文件路径8parentForeignKey父级目录外键9update_userForeignKey最近更新者外键10update_datetimedatetime更新时间问题表Issues:包含项目、问题类型、模块、主题、问题描述、优先级、状态、指派等数据表4.8问题表Issues序号字段名数据类型长度字段提示是否主键1idint主键是2projectForeignKey项目外键3issues_typeForeignKey问题类型外键4moduleForeignKey模块外键5subjectvarchar80主题6desctext问题描述7priorityvarchar12优先级8statussmallint状态9assignForeignKey指派外键10attentionForeignKey关注者外键11start_datedate开始时间12end_datedate结束时间13modesmallint模式14parentForeignKey父问题外键15creatorForeignKey创建者外键16create_datetimedatetime创建时间17latest_update_datetimedatetime最后更新时间模块表Module:包含项目、模块名称表4.9模块表Module序号字段名数据类型长度字段提示是否主键1idint主键是2projectForeignKey项目外键3titlevarchar32模块名称问题类型表IssuesType:包含项目、类型名称表4.10问题类型表IssuesType序号字段名数据类型长度字段提示是否主键1idint主键是2projectForeignKey项目外键3titlevarchar32类型名称问题回复表IssuesReply:包含类型、问题、描述、创建者、创建时间、回复表4.11问题回复表IssuesReply序号字段名数据类型长度字段提示是否主键1idint主键是2reply_typeint类型3issuesForeignKey问题外键4contenttext描述5creatorForeignKey创建者外键6create_datetimedatetime创建时间7replyForeignKey回复外键项目邀请码表ProjectInvite:包含项目、邀请码、限制数量、已邀请数量、有效期等数据表4.12项目邀请码表ProjectInvite序号字段名数据类型长度字段提示是否主键1idint主键是2projectForeignKey项目外键3codevarchar64邀请码4countint限制数量5use_countint已邀请数量6periodint有效期7create_datetimedatetime创建时间8creatorForeignKey创建者外键4.5系统硬件运行环境本系统硬件运行环境表如下所示表4.13运行环境表配置详细信息CPUAMD八核R7-4800H显卡GTX-1650内存16g硬盘512g固态+1T机械显示器1920*1080分辨率操作系统Windows10数据库sqlite+redis开发工具pycharm-django浏览器版本IE90.0.818.51

5系统详细设计与实现系统详细架构设计是整个软件开发过程的一个重要组成步骤,是对整个系统进行更为精致和详细化的架构设计,针对整个系统每个核心功能模块也都进行详细设计并且实现算法结构。在系统的详细架构设计实施阶段,通过对需求进行详细分析来设计出能够满足每个客户实际需要的产品。5.1项目质量管理平台注册登录的设计与实现首次进入本平台,会进入首页展示页,可以看到一些系统相关介绍,若用户希望体验本系统的相关功能,需要先进入注册页面进行注册。注册示意图如图5.1所示。用户在注册时点击发送验证码会调用send_sms函数校验手机号合法性并接入腾讯云的短信功能用来给用户发送手机验证码,同时为当前用户生成一个有效期一分钟的验证码存储在redis中。当用户点击注册时调用RegisterModelForm函数对表单进行验证,主要验证表单中的邮箱、手机号合法性以及其他信息的输入格式。当用户注册成功后给予用户免费版权益,调用md5函数对密码进行加密并与其他数据一同存储在数据库中。用户注册流程如图5.2所示。图5.1用户注册示意图 图5.2用户注册流程图在用户注册完成后页面直接跳转到验证码登录页面,验证码登录示意图如图5.3所示。可以使用图形验证码或点击右下角按钮切换为手机短信验证码来进行登录。图形验证码登录调用check_code函数自动生成对应的图形验证码,图形展示在前端,校验用验证码存储在数据库中,通过login函数调用loginform函数进行相应的表单验证,将用户输入的密码经过md5调用md5方法加密后即可进行相应的表单验证,验证通过后即可登陆成功。手机短信验证码登录调用注册时的发送短信方法,短信登录示意图如图5.4所示,表单验证通过后即可登陆成功。注册与登录流程如图5.5所示:图5.3图形验证码登录示意图图5.4短信登录示意图 图5.5用户登录流程图5.2项目质量管理平台文档管理的设计与实现当用户进入某一个项目中时,点击wiki按钮调用wiki方法展示当前项目的文档首页,页面左侧调用wiki_catalog方法展示当前项目的文章目录,文章目录如图5.6所示,对应文章的子文章会展示在父文章下方并缩进两格。图5.6文章目录示意图右侧默认展示新建文章按钮,当点击左侧某一文章时,右侧展示对应文章,如图5.7所示。页面右上角展示新建按钮,点击调用wiki_add方法,添加文章调用封装好的editormd包使用户可以使用markdown文档编辑器。在markdown文档编辑器中能够调用wiki_upload方法完成上传图片,图片存储在对象存储桶中并生成一个访问链接存储在数据库中,用户访问时自动通过访问链接将图片展示在文章中。同时可以通过wiki_edit方法获取文章数据编辑文章或调用wiki_delete方法删除对应文章。文章管理流程图如下所示:图5.7文章正文示意图图5.8文件管理流程图5.3项目质量管理平台文件管理的设计与实现用户处于项目中时点击文件按钮进入文件管理页面,默认展示文件库根目录,如图5.9所示。图5.9文件列表示意图点击新建文件夹调用file方法在根目录下新建文件夹并更新目录,新建文件夹模态框如图5.10所示。图5.10新建文件夹示意图点击上传文件弹出模态框选择文件,为了防止临时凭证过期,在点击上传的同时调用cos_credential方法获取cos上传临时凭证保证文件上传对象存储桶成功,当存储成功时调用file_post方法将上传成功的文件写入数据库。列表中文件点击下载按钮调用file_download方法从数据库获取对应文件信息并去对象存储桶获取文件内容,获取到后返回给浏览器提示下载框。点击删除按钮调用file_delete方法判断是否为文件夹,若是文件夹则对文件夹中的内容一并在数据库中进行删除并访问对象存储桶删除文件内容,为防止删除未完成时系统出问题导致删除失败,本系统在前一个文件删除成功后才会开始删除下一个文件。文件管理流程图如下图所示:图5.11文件管理流程图5.4项目质量管理平台问题管理的设计与实现问题管理为本平台核心功能,用户处于项目中时,点击问题按钮展示问题页面,问题页面如图5.12所示,左侧为筛选栏,通过前端插件select2与封装好的SelectFilter类和CheckFilter类完成对问题的筛选。SelectFilter类实现下拉框功能,CheckFilter类实现选择框功能。右侧展示新建问题按钮与邀请成员按钮。图5.12问题页面示意图点击新建问题按钮弹出模态对话框进行新建问题,其中问题描述同样适用markdown文档编辑器,点击确定后调用issues方法进行表单验证,表单验证通过后将问题存储进数据库。点击邀请成员按钮弹出模态对话框配置邀请链接详情,如图5.13,点击确定调用invite_url生成邀请链接,当项目外用户访问此链接时调用invite_join方法判断用户是否注册、用户是否在项目中、邀请链接是否到达邀请上限,当验证通过后用户成功加入项目。图5.13邀请成员示意图点击某一问题进入编辑问题页面,如图5.13所示,用户编辑除问题描述之外其他数据时调用issues_change方法更新问题并在页面右侧展示更新记录,而当用户修改问题描述时因为markdown的原因,需要调用issues_detail方法进行编辑,在更新问题描述后同样在页面右侧最下方展示更新记录,更新记录与评论如图5.14所示。用户可以在问题右侧对当前问题进行评论或回复,调用issues_record方法判断问题是否存在,验证问题存在后更新问题记录。图5.14问题编辑示意图图5.15更新记录与评论示意图图5.16问题管理流程图用户点击统计按钮可查看当前问题统计图,图表使用highcharts的堆叠柱状图与基础饼图,前端使用daterangepicker获取用户选择时间范围并将时间范围传给static_priority方法与statistics_project_user方法分别从数据库中获取问题优先级和问题类型配比,并以优先级饼图和人员工作进度柱状图的形式展示在页面上。问题管理流程图如下图所示:图5.17问题统计流程图5.5项目质量管理平台项目管理的设计与实现用户在进入管理中心后,首先调用project_list展示用户所有参与的项目。创建的项目与参与的项目均可以点击星标调用project_star方法将对应项目移入星标项目中,再次点击调用project_unstar方法取消星标。页面左上显示了创建项目的按钮,点击该按键后弹出了创建项目的模态对话框。点击确定调用project_list方法创建项目,创建项目的同时为项目创建一个对象存储桶并为项目初始化问题类型。图5.18项目列表示意图在进入项目详情后进入设置页面可以删除此项目,如图5.19,调用delete方法判断用户是否为当前项目的创建者、输入的项目名是否合法,验证通过后才可以删除项目。图5.19删除项目示意图项目管理流程图如图5.20所示:图5.20项目管理流程图5.6项目质量管理平台会员的设计与实现用户在首页点击价格按钮进入会员购买页面,调用price方法从数据库中获取所有价格策略并展示,如图5.21,选定套餐与购买数量后点击确定,调用payment方法计算原价支付金额并计算用户已购买的套餐,并遍历用户订单判断其订单是否符合抵扣规则,若用户支付过的订单中存在订单满足抵扣规则,展示支付金额有抵扣后的优惠金额,否则展示原价。如图5.22。图5.21价格策略示意图图5.22会员购买示意图点击立即支付调用pay方法将用户数据、应用公钥与私钥和支付宝公钥、返回url以及订单数据一起打包后转换为json格式发送给支付宝沙箱环境接口,使用支付宝支付功能,当支付流程完成后,支付宝端返回给系统回调函数,系统接收回调函数并解析其中的sign,判断支付流程是否完成,若支付完成返回首页。会员流程图如下图所示:图5.23会员流程图

6系统测试6.1系统测试说明测试工作是系统软件开发过程中的一个重要基本组成环节,是直接贯穿于整个软件系统开发生命周期的一个重要过程,也是对整个产品进行最终确认的方式。测试是为了尽快尽早的发现当前产品中存在的诸如系统问题或是与需求文档不一致的问题。本次测试工作在进行测试时主要使用了黑盒测试的方法,并辅以白盒测试对系统进行测试。6.2测试目的与环境本次测试的目标主要是为了检验项目质量管理系统的各个模块在功能上是否正常,是否满足需求文档的要求。根据软件需求文档自行设计完整的测试用例,通过测试用例以黑盒的方式对系统各个模块进行了各种功能性的用例测试,并根据用例测试后的结果初步完善了本软件系统各个模块的基本功能。本次测试将系统部署在本地,并通过本地IE浏览器直接访问,本地测试系统环境为:处理器AMD八核R7-4800H,内存16G,硬盘512G,操作系统windows10,浏览器版本IE90.0.8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论