第三章 系统分析
3.1可行性分析
可行性分析从时间,经济以及操作和技术上面进行调查和研究,确保合理利用信息资源,避免在进行程序设计过程中因为考虑不周到所带来的困扰,帮助我们更好的进行程序设计。
3.1.1时间可行性
本次进行系统开发,我预留了两个月时间来完成,从系统的需求分析,功能结构设计,功能详细设计以及系统测试等环节,两个月时间是可以完成程序开发操作的,我打算每天早中晚都进行程序的编写操作,这期间也包括查阅各种资料信息,加上同学以及老师的帮助和指点,相信程序开发的时间也会缩短不少。所以时间上是可行的。
3.1.2 经济可行性
项目申报管理系统的开发平台是IDEA,数据库选用MySQL数据库,使用的浏览器都是大众浏览器,这些软件是不需要收费就能进行下载安装操作的。在系统开发的硬件选择上面,我使用的是自己的笔记本进行开发操作。因此在进行系统开发时,经济上面无需额外支出。开发出来的程序可以提高办公效率,带来的经济效益比较高,系统开发的投入产出比很可观。
3.1.3 操作可行性
项目申报管理系统的界面设计比较简单,界面布局根据用户日常使用习惯进行设计,网站各个功能在导航栏里面清晰可见,网站的数据操作可视化,用户操作网站不需要培训就能上手,只需要跟着网站功能提示进行操作就行。
3.1.4 技术可行性
作为计算机专业学生,在学校期间就学习到许多关于编程方面的知识,像SSM技术,还有MySQL数据库等知识,我对IDEA开发平台以及MySQL数据库的操作也比较熟练,所以技术上面还是有一定把握。
3.1.5 法律可行性
自己本人开发的软件和用到的资料来源都是图书馆以及百度文库和百度网页等渠道,并不涉及违法。在个人毕业设计上面,无论源代码还是论文编写内容不存在抄袭行为。
从上面的经济,操作以及时间上面进行的分析,得出结论就是这次开发的项目申报管理系统在开发上面是能够进行的,系统开发出来能创造更大的经济效益,越早开发升值空间越大。
3.2系统流程分析
项目申报管理系统的开发也是有对应的流程,开发之前必须要进行用户功能需求的分析,最后根据功能需求进行网站设计还有数据库相关数据的设计工作,此次开发的项目申报管理系统开发流程如图3.1所示。
图3.1 系统开发流程图
系统开发完成之后会给用户提供登录入口,在这个界面用户输入的信息会得到验证,通过验证之后才能进去项目申报管理系统的访问主界面,系统登录执行流程如下:
图3.2 系统执行流程图
3.3系统功能需求分析
系统的开发离不开前期的需求分析,这个阶段就是让程序员知道自己该做什么事情,在进行需求分析的时候,着重点就是用户对系统的功能要求,这个阶段要是分析得很到位,系统开发出来投入使用时,用户就会发现系统的功能跟用户需求保持一致,程序稳定性也是达标的,可以说需求分析是决定系统开发成败的关键,它主要就是把现实世界进行抽象化,然后把抽象化的对象用来构建模型。
项目申报管理系统的受益群体主要是工作人员,该网站能够方便使用者进行数据信息的查找和管理工作,本次开发的网站我们设计的界面展示主要分为管理员界面以及用户界面,具体界面的功能分布如下。
项目申报管理系统管理员可以管理用户的基本信息,可以管理公告信息,可以管理公告信息等。
3.4 系统非功能需求分析
(1)完整性需求
本次开发的项目申报管理系统里面记录的数据信息不能保持为空,并且数据信息一定要核对正确才行,系统里面数据之间存在的联系不能出错,不能够张冠李戴,数据表里面同一数据在不同数据表里面的显示内容要一样。
(2)性能需求
用户在操作项目申报管理系统的各个部分内容时,弹出的页面响应时间不能太长,最好控制在三秒钟以内,最大限制值就是四秒,这个是给用户一个好的程序体验。并且系统还要能够承载多人同时在线进行项目申报管理系统的访问操作。
(3)界面需求
项目申报管理系统界面设计上面应该考虑到用户日常操作习惯,比如导航栏的设计不能在右边,这个完全违背了用户使用网站的操作习惯,同时功能导航的字体以及颜色应该比较显眼,方便用户容易找寻,避免用户在进行功能操作上面浪费太多时间。
(4)安全性需求
项目申报管理系统的安全性要有保证,给用户一种可靠,可以信赖的感觉,系统在运行过程中,不能总是出错,与用户进行功能界面交互时,要及时给出反馈信息,另外系统要设置登录窗口,让不是系统的用户不可以进行系统功能界面的访问操作。系统用户也要经过用户名密码的填写操作,才可以进入系统主界面,这样就可以保障系统数据信息处于一种安全状态。
第四章 系统设计
4.1 总体功能
项目申报管理系统是根据需求定制开发,开发软件选用IDEA平台配合MySQL数据库进行开发环境的搭建操作,网站采用WEB应用程序中最流行的B/S结构进行开发,用户访问系统数据仅仅需要在客户端安装谷歌浏览器或者是当下常用浏览器就可以访问网站内容。
4.2 系统模块设计
项目申报管理系统系统在进行系统中功能模块的划分时,采用层次图来进行表示。层次图具有树形结构,它能使用矩形框来描绘数据信息。顶层代表的数据结构很完整,顶层下面的矩形框表示的数据就是子集数据,当然处于最下面的矩形框就是不能再进行细分的数据元素了,使用层次方框图描述系统功能能让用户一目了然,能够明白系统的功能,以及对应功能板块下面的子功能都可以清楚领会。项目申报管理系统分为管理员和用户两部分操作角色,下面将对他们的功能进行阐述。
管理员可以管理用户的基本信息,可以管理等功能。管理员功能结构图如下:
图4.1 管理员功能结构图
4.3 数据库设计
4.3.1 数据库设计
数据库设计它是建立在数据库还有它对应的应用系统的一门技术,只要是信息系统开发还有系统建设,都会用到数据库设计,但是这个数据库设计并不是很简单就可以完成的,设计期间会遇到很多麻烦事,在设计期间需要考虑再考虑,逐步完善。主要内容也就是把数据库里面的对象还有对象之间的联系进行系统规划操作,还有把他们结构化的过程。
4.3.2 数据库E-R 图
E-R 图分成三部分内容,分别是实体,实体的属性以及实体之间的关系这三个部分的内容,通常长方形表示的就是实体,椭圆形表示的就是属性,菱形表示的就是关系了。在E-R 图里面,实体就是对象,比如学生,人,音乐等都能代表实体,实体都具备自己的成员,比如张三就是学生实体里面的成员。一个学生会具有自己的姓名,年龄,出生日期等信息,这些信息就是学生这个实体的属性,因此E-R 图属性代表的就是数据对象具备的属性,E-R 图的关系就是实体跟实体之间的关系了,比如学生跟课程会存在一定的关系,这种关系使用菱形进行表示。
(1)下图是成果评估实体和其具备的属性。
成果评估实体属性图
(2)下图是用户实体和其具备的属性。
用户实体属性图
(3)下图是公告实体和其具备的属性。
公告实体属性图
(4)下图是项目实体和其具备的属性。
项目实体属性图
(5)下图是评审专家实体和其具备的属性。
评审专家实体属性图
4.3.3 数据库表设计
数据库里面的数据表存放的就是各种数据记录,我们在进行系统增删改查操作时,其实也是在对应数据表里面进行的增删改查操作,一个好的数据库能够缩短信息处理时间,所以说数据库的设计工作不容小觑,数据库里面设置哪些表,表里面的字段设计以及字段类型和字段长度等信息都要考虑周到才行,比如时间这个字段,它的数据类型就不能是int型,不然在系统操作中就会弹出输入数据格式不符合要求的报错提示。下面简单介绍项目申报管理系统的一些数据表。
表4.1成果评估表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | xiangmu_id | Integer | 项目 | 是 |
3 | pingshenzhuanjia_id | Integer | 评审专家 | 是 |
4 | insert_time | Date | 录入时间 | 是 |
5 | chengguopinggu_content | String | 评估意见 | 是 |
6 | pinggu_defen | BigDecimal | 评估得分 | 是 |
7 | chengguopinggu_types | Integer | 评估结果 | 是 |
8 | update_time | Date | 评估时间 | 是 |
9 | create_time | Date | 创建时间 | 是 |
表4.2字典表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | dic_code | String | 字段 | 是 |
3 | dic_name | String | 字段名 | 是 |
4 | code_index | Integer | 编码 | 是 |
5 | index_name | String | 编码名字 | 是 |
6 | super_id | Integer | 父字段id | 是 |
7 | beizhu | String | 备注 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.3公告表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | gonggao_name | String | 公告名称 | 是 |
3 | gonggao_types | Integer | 公告类型 | 是 |
4 | insert_time | Date | 公告发布时间 | 是 |
5 | gonggao_content | String | 公告详情 | 是 |
6 | create_time | Date | 创建时间 | 是 |
表4.4评审专家表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | pingshenzhuanjia_name | String | 评审专家姓名 | 是 |
3 | pingshenzhuanjia_phone | String | 评审专家手机号 | 是 |
4 | pingshenzhuanjia_id_number | String | 评审专家身份证号 | 是 |
5 | pingshenzhuanjia_photo | String | 评审专家头像 | 是 |
6 | pingshenzhuanjia_email | String | 电子邮箱 | 是 |
7 | yanjiufangxiang_types | Integer | 研究方向 | 是 |
8 | pingshenzhuanjia_content | String | 专家介绍 | 是 |
9 | create_time | Date | 创建时间 | 是 |
表4.5项目表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_id | Integer | 用户 | 是 |
3 | xiangmu_uuid_number | String | 项目编号 | 是 |
4 | xiangmu_name | String | 项目名称 | 是 |
5 | laiyuan_types | Integer | 课题来源 | 是 |
6 | xiangmu_types | Integer | 项目类型 | 是 |
7 | kaishi_time | Date | 项目开始时间 | 是 |
8 | jieshu_time | Date | 项目结束时间 | 是 |
9 | huafei_jine | BigDecimal | 项目花费 | 是 |
10 | yanjiufangxiang_types | Integer | 所属方向 | 是 |
11 | yanjiufangxiang_file | String | 附件 | 是 |
12 | xiangmu_content | String | 项目内容 | 是 |
13 | xiangmu_chengguo_content | String | 项目成果 | 是 |
14 | insert_time | Date | 申请时间 | 是 |
15 | xiangmu_yesno_types | Integer | 申请状态 | 是 |
16 | xiangmu_yesno_text | String | 审核意见 | 是 |
17 | xiangmu_shenhe_time | Date | 审核时间 | 是 |
18 | create_time | Date | 创建时间 | 是 |
表4.6用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_name | String | 用户姓名 | 是 |
3 | yonghu_phone | String | 用户手机号 | 是 |
4 | yonghu_id_number | String | 用户身份证号 | 是 |
5 | yonghu_photo | String | 用户头像 | 是 |
6 | yonghu_email | String | 电子邮箱 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.7管理员表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | username | String | 用户名 | 是 |
3 | password | String | 密码 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增时间 | 是 |
第五章 系统实现
5.1 管理员功能模块的实现
5.1.1 项目列表
如图5.1显示的就是项目列表页面,此页面提供给管理员的功能有:查看项目、新增项目、修改项目、删除项目等。
图5.1 项目列表页面
5.1.2 公告信息管理
管理员可以对公告信息进行管理,可以新增公告信息,修改公告信息,删除无效的公告信息。公告信息管理界面如图5.2所示。
图5.2 公告信息管理页面
5.1.3 公告类型管理
公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。下图就是公告类型管理页面。公告类型管理界面如图5.3所示。
图5.3公告类型管理界面
第六章 系统测试
程序软件一旦被开发完成之后,在真正投入日常生活中进行运行使用之前,是必须要经历测试这一个重要的操作环节,因为开发期间注重的是每个单独功能模块的开发,尽管每次开发完成一个单独功能模块时,会通过单元测试进行检验,检验合格才会让程序员继续开发下一个子功能模块,以此类推,当程序员完成所有的系统子功能模块的开发时,这个时候就需要引进系统测试,系统测试就是把所有的子功能模块集成到一起,构建成整个系统,在指定的运行环境下进行运行,主要就是测试系统的所有功能模块在一起是否良好运行,一旦程序软件通过了系统测试这一环节,就意味着它可以进行最终的验收测试了,这个测试步骤的操作用户是程序面向的客户或者是最终用户了。
6.1软件测试
软件测试包括的对象有详细设计,开发出来的软件的运行环境,软件的需求以及软件的源代码内容等,软件测试也包括了五个要素,分别是软件的质量,技术,人员还有流程以及资源这几个要素。软件测试的目标包含了测试的覆盖率信息还有测试效率信息。一般来说,软件测试主要分成了单元测试,集成测试以及系统测试和验收测试这四个阶段的内容,下面将分别进行相关阐述。
单元测试:这个部分需要涉及到程序的代码方面的知识,这个操作环节是程序的开发者进行的,当程序开发者通过代码编写程序的子功能模块时,就会进行单元级别的测试,通常这个环节的测试也会被称作是白盒测试。
集成测试:这个步骤的前提是程序的所有功能模块都已完成开发,这个时候需要把程序所有的子功能模块集成到一起,形成一个完整的系统,此测试的主要目的就是检查这些功能模块集成在一起时的兼容性,也就是检测它们是否按照预期正常运行。
系统测试:当程序测试进入到这个环节时,就意味着程序测试工作已经进行到一半了,这个部分的测试也有另外一个名字,称作是黑盒测试,主要用于测试系统的功能是否按照预期进行运行。
验收测试:开发的程序已经通过了前面的单元测试,集成测试,以及系统测试环节时,就需要进行验收了,这个环节的操作用户就是程序面临的最终用户或者是客户。测试主要目的就是验证开发完成的程序是不是能够符合用户对其的期望,以及程序的所有功能是否符合用户的真正需求。
6.2测试环境
项目申报管理系统的测试选用的测试平台是IDEA平台环境,测试时首先需要用户打开MySQL数据库进行数据库文件的附加操作,然后打开IDEA,选择文件打开网站,把项目申报管理系统的程序添加进入IDEA平台中,接着把文件部署到tomcat服务器里面,最后运行程序,这时用户可以操作系统里面的各个功能,看看程序有没有达到用户的要求。
6.3 测试用例
6.3.1 用户登录测试
用户登录需要的信息包含登录名称还有对应密码,输入数据信息都正确了才能进行系统访问处理。用户登录测试过程如表6.1所示:
表6.1 用户登录测试表
测试目的 | 操作流程 | 测试用例 | 预测结果 | 测试结果 |
---|---|---|---|---|
用户登录 | 填写用户名密码,点击首页登录按钮 | 错误填写用户名还有密码 | 登录失败 | 提示错误信息 |
正确填写用户名和密码 | 登录成功 | 登录成功 |
6.4.2 添加公告类别测试
管理员可以在添加公告类别界面输入公告类别名称信息,如果数据信息为空,系统会给出相应提示。只有所有的数据信息都合理输入,管理员才能完成公告类别的添加操作。测试数据见下表:
表6.2添加公告类别测试表
测试项目 | 操作流程 | 测试用例 | 预测结果 | 测试结果 |
---|---|---|---|---|
添加公告类别 | 管理员登陆后点击添加公告类别按钮,添加公告类别信息 | 类别名称为空 | 添加失败,弹出提示按钮 | 添加失败,提示请填写内容 |
合理填写类别名称 | 添加成功 | 添加成功 |
6.5测试结果
经过此次对项目申报管理系统的综合性测试,我们不难发现程序的功能并没有出现明显的逻辑性错误,用户在进行功能操作时,程序基本能根据用户操作情况给出相应的反馈。程序质量以及可靠性在系统的反复测试中都经过了严格检验,程序投入生活使用完全没有问题。
结 论
项目申报管理系统的开发制作,从题目确定到成品完成,自己投入的精力与心血是非常多的。从项目申报管理系统的前台页面实现,到项目申报管理系统的后台代码的编辑,我用到的软件包括了数据库软件Mysql,Java开发工具IDEA,办公软件Office,浏览器软件Fireworks,图像处理软件Photoshop等,这也是我第一次使用Java语言,开发的这个比较简单的项目申报管理系统。
开发项目申报管理系统让我明白知识理论与现实实践的差距还是挺大的,很多时候,我们在学习课程知识的时候,都感觉书本上的内容,老师一点就通,然而这次毕设就真正考验了我,原来理论知识和现实实践完全是两码事,开发项目申报管理系统一方面让我对在校学习的知识起了一个巩固作用,另一方面让我明白独立学习知识的重要性。在毕设作品完成期间,我才知道要开发一款软件需要经历很多繁琐的步骤,从开始的选题到系统需求分析以及功能板块的设计,还有系统详细实现以及系统测试,每个环节看似简单,其实暗藏很多知识点,这些都需要自己去网上或者是学校的图书馆查阅相对应的资料。每个环节都需要认真对待,要是系统需求分析没有做好,那么在系统设计与实现过程中就会出现很多错误,要么功能不全,要么就是程序开发出来根本不符合用户要求,所以程序的开发是一个知识再造的过程,一个人独自开发完一款软件也就深知这其间的各种不易了。
本次开发的系统整体界面还是比较清晰简明,功能上面考虑得比较全,几乎可以满足用户使用要求。尽管我对这次的毕设付出了许多的努力,但是程序还是有很多不足的地方,系统界面整体感觉还行,但是字体字号的选取上面还是有些不符合现实审美,在程序的CSS样式编码上面,我还有许多不熟悉的地方,虽然经过反复的测试与调试选中了现在这样的程序界面,但是我还是明显感觉到自己对一些常用CSS样式的不熟悉,编码过程中,我还要多次进行资料查看才知道。另外我编写的代码写作不是很规范,可读性比较差,幸运的是,我最终还是实现了系统中所要求的功能。
实践出真知,但是知识也是通过实践变得更加深刻,这次作品制作,让自己的专业知识水平与解决问题的能力得到了提高。也让自己更加明白活到老学到老的真正含义。
总的说来,这次编写毕业设计作品,我真正锻炼了自己的实际操作能力,以前只知道理论知识,现在通过实践,我对理论知识的认识变得更加深刻,由于编写程序时间比较短暂,程序开发期间遇到过很多坎坷,但最后都通过老师还有同学帮忙解决了,可以说这次的毕设作品进展得还算顺利。