软件设计总结报告

2024-06-11

软件设计总结报告(精选6篇)

软件设计总结报告 第1篇

总结性报告

1. 时间

飞Q2012项目从拟定好课题起,经过问题定义,可行性研究,需求分析,概要设计,详细设计,主要编程,分布测试,总体测试,到整体装配完成历时一个半月。

2. 人员

主程序员(组长):王昌帅

辅程序员:司吉峰、王璐、纪晓文、王松松

文档管理员:王璐、纪晓文

3. 遇到的困难

服务器方面:最开始我们选用的登录模式是利用sqlsever从硬盘上的数据库中读取账号密码进行匹配登录,但这种读取机制降低了登录速度,经过修改,改用了将好友账号密码预读入内存中,直接在内存中进行读取,大幅度节省了登录时间。

客户端方面:区别于类似的大多数即时聊天工具的消息传送机制(即向服务器发送消息经服务器转发),我们利用了典型的p2p(点对点)机制,当好友聊天时,服务器避免了接收和转发消息的负荷,减少了线程数量,既减轻了服务器压力同时又提高了好友间消息传送的速度和质量。

4. 系统性总结

本系统具有以下特点:

采用 C/S通信模型设计,有效减轻了服务器的负担,便于后台的管理。将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。

采用了Java语言,因为用Java设计的系统是跨平台的,在任何操作系统上,只要安装了Java虚拟机,就可以运行本系统,不用受平台的限制。

 在客户端都和服务器端都实现了多线程编程技术,以提高系统的效率。使用线程可以把占据长时间的程序中的任务放到后台去处理。

本系统这实现了网络聊天工具所具备的基本功能,即注册、登录、查找好友,添加好友、更改个人资料、查看好友资料、添加删除分组、各分组之间转移好友、发送消息、接收消息、接收系统消息等,还添加了一些特色功能,如隐身,头像的变化,系统管理员可以向每个客户端发送系统消息,上线下线在好友客户端都有提示,密码丢失可以通过密码找回功能通过设置的密保问题找回密码,并可以判断密码的安全等级等。本系统实现了一个与Tencent QQ相似的友好操作界面,简单,易用,适合用户的操作习惯。

该系统具备了网络聊天工具所具备的基本功能,但还有一些功能还没完善,如用户聊天之间的方式仅限于文本通信,还没实现文本传输功能。还没实现修改用户资料的功能等。系统或许存在一些未知的Bug,还需要进一步的改进和测试。在以后的研究中,我们还会研究安全通信协议,保障通信的安全,提高系统的实用性等

本课题需要继续完善的功能有:

设计测试用例,全面、系统地测试该系统所存在的一些缺陷;

 扩展即时消息系统的服务范围,增强系统工作的稳定性和健壮性。

5. 收获与经验

本次课程设计是自大一以来工作量最大的同时也是历时最长的一次大作业任务。与之前大作业不同的在于,这次课程设计所设计的项目课题,所用的编程语言,用到的知识都是以前没有接触过的,完全通过自学掌握。所以工作进度最初进展很慢,不过通过对新知识的学习,和项目实践的锻炼,深入学习java可视化编程,完善操作界面,使其更加适合用户的操作习惯; 设计安全通信机制,保障通信的安全; 加入文件传输功能,丰富用户的信息交流方式;

掌握专业知识的同时,更重要的是项目经验,以及实践中处理各种问题能力的培养。

通过本次项目的复习,我们了解了一个完整的软件开发过程,包括课题定义、可行性研究,需求分析,概要设计,详细设计,测试工作,进一步完善,设计使用说明书,总结提交实验报告。以及其中不同人员和不同的工作,主程序员是一个项目团队的核心,指导整个项目组各个成员的工作,规划整个项目的结构,统一各个部分函数接口,承担着编程过程中最核心的任务,以其为核心各个部分才可以慢慢扩展开来。辅助程序员主要负责各个独立部分的编程设计,对辅助程序员来说,独立性较主程序员的任务更大一些,但是,却要求辅助程序员对自己承担的任务有必须清晰的了解,因为到后期各个部分连接的时候肯定会出现一些问题,修改这些错误要求必须对不同部分有很详细的了解。文档管理员承担着大部分文档编辑工作,但对具体的程序代码也要有一定的了解。

本次课程设计最重要的是让我们收获了一些宝贵的项目开发经验:项目最开始的全局规划,接口统一工作很重要以及数据结构的选择因为这涉及到以后各部分连接时的统一问题,一旦刚开始没有统一好,连接时会有很多问题,导致各部分不能很好的连接,很多功能或属性没有很好的利用。另外,项目后期的bug修改也很重要,因为由不同程序员编写程序在正确性、高效性,和格式上都有很大的不同,自然会在连接时产生一些问题,更改这些问题时便不再是某个部分的问题,而是全局的问题,需要各个程序员协调完成修改工作,而且我们也了解到,工程项目越大,后期产生的bug也会越多,起初我们忽视了后期bug修改的工作量,导致在完成时间上一拖再拖。

总而言之,尽管本次课程设计使我们纠结了很长的时间,遇到了很多困难,但我们真心的为我们所获得工作经验和成果而高兴,截止到完成文档时,我们的飞QQ2012已经实现了局域网内以及校园内网各个客户端的即时聊天,并且速度和质量得到了各用户的好评,我们还将继续完善飞Q2012,让更多人知道了解它,继续学习继续努力。

软件设计总结报告 第2篇

软件开发实训个人总结

软件工程项目实训报告

软件开发专业实训报告

软件设计总结报告 第3篇

1.1 项目开发背景

本项目开发应用以前, 云南省建筑材料产品质量监督检验站及全省的水泥企业的水泥检测数据管理基本上都是靠人为手工进行, 随着各个实验室检测量的增大, 有关水泥检测所涉及的数据量越来越庞大, 而单纯靠增加人力、物力来弥补工作量的大幅度增加很难满足工作需要, 不免捉襟见肘。而且传统人工管理方式存在着效率低、保密性差等诸多缺点, 产生大量的文件和数据, 对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高, 计算机科学日渐成熟, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。作为实验室计算机应用的一部分, 使用计算机数据库软件对检测数据进行管理, 具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。因此, 开发这样一套不仅适用本单位而且适用于其他相关检测实验室和水泥企业的通用水泥检验报告单系统管理系统管理软件则成为很有必要的事情, 笔者结合云南省建筑材料产品质量监督检验站水泥检测工作实践, 具体谈谈该系统软件的开发过程和所涉及到的问题及解决方法。

1.2 项目开发的目标

建立水泥检验报告单系统管理系统, 采用计算机对水泥检测数据进行管理, 进一步提高实验室检测数据效率和现代化水平。此系统的编写目的是完成本实验室主要水泥产品检测项目的计算, 查询, 结果判定以及检验报告单自动生成的功能。帮助广大实验室检测人员提高工作效率, 实现水泥检测数据管理工作流程的系统化、规范化和自动化。

1.3 项目提出的意义

目前我省的水泥产品检测管理水平普遍不高, 有的还仅仅停留在纸介质基础上, 这种管理手段已不能适应时代的发展, 因为它不仅浪费了了许多的人力和物力, 并且不利于长期保存和查询。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。本系统被检测机构和水泥企业所采用, 将会改变以前靠手工管理检测数据的状况, 可以树立单位良好的形象, 提高工作效率。

2 程序实现

2.1 程序大体架构

2.1.1 系统名称:

云南省建筑材料产品质量监督检验站水泥检验报告单系统

2.2.2 系统类型:

数据库开发应用软件 (网络版)

2.2.3 模块的构成

此软件系统, 按照实验室操作功能分类, 包括3大个模块, 办公室、水泥室、分析室。每个大模块又详细分为若干小模块。

办公室分为分样表录入、结果查询、报告单打印, 汇总等四个模块, 水泥室按照检测职能分为稠度室、强度室两个模块, 稠度室模块完成凝结时间、安定性和细度计算的录入、查询、计算、保存和判定功能, 强度室模块完成3d, 28d的抗折强度和耐压强度的录入、查询、计算、保存和判定功能;分析室模块完成三氧化硫;氧化镁;烧失量;氯离子的录入、查询、计算、保存和判定功能。

附程序运行部分截图:

2.2运转流程

各个检验室检验人员录入相应的数据, 计算机自动计算, 修约, 判定后得出结果, 经过确认无误后, 进行保存操作。之后在办公室添加上企业的必要信息, 统一汇总后, 通过单位的内部网络把数据传送到打印室, 把正式检验报告打印出来。

此流程的特点就是计算方便, 查询快捷 (可以通过自己指定的关键字进行查询) , 方便操作, 因为是网络软件, 各个室的内容作为独立模块设立密码, 进行操作, 避免了与检验数据无关的信息流入检验室, 从一定程度上保证了检验数据的客观性。

2.3 运行设计

该系统软件的运行模块组合为程序多窗口的运行环境, 各个模块在软件运行过程中能交换信息, 处理数据。

软件运行时有较友好的界面, 基本能够实现用户的数据处理要求。且系统的运行时间完全可以达到用户所提出的要求。

2.4. 出错处理

2.4.1 出错处理设计

出错输出信息在用户使用错误的数据或访问没有权限的数据后, 系统给出提示:“对不起, 你是非法用户, 请退出!”而且用户的密码管理不允许用户修改自己的密码, 不允许用户的匿名登录。

2.4.1 出错处理对策

由于数据在数据库中已经有备份, 故在系统出错后可以依靠数据库的恢复功能, 并且依靠日志文件使系统再启动, 就算系统崩溃用户数据也不会丢失或遭到破坏。但有可能占用更多的数据存储空间, 权衡措施由使用者和计算机管理人员来决定。

2.5 安全保密设计

系统的系统用户管理保证了只有授权的用户才能进入系统进行数据操作, 而且对一些重要数据, 系统设置为只有更高权限的人员方可读取或是操作。系统安全保密性相对较高。

2.6 该系统维护相关要求

操作人员要做到正确进行操作, 严格遵守账号和密码保护, 及时更新杀毒软件进行杀毒

计算机维护人员应做到安装补丁程序, 设置防火墙, 监测系统日志、定期对服务器数据进行备份。

3 系统开发功能中的若干体会

在桌面数据库方面, 几年来, 笔者先后用FOXBASE、FOXPRO编制了《烧结普通砖检测管理系统》、《路掾石检测系统》、《水泥检测管理系统》等程序软件。在编程过程中, 经历了从低级平台 (DBASE) 到高级平台 (FOXPRO) 、从字符界面 (DOS) 到图形用户界面 (WINDOWS) 的转化, 从中总结出了一些应用经验。

3.1 巧用项目管理器

项目管理器引入项目概念后, 使开发人员从应用系统中各类文件繁琐的管理中解脱出来, 从而有更多的时间用于模块开发:项目管理器有如下优点: (1) 只要将应用系统的主控模块 (通常是菜单) 放入项目管理器中, 在生成项目时, 能将应用系统中几乎所有的文件都纳入其中, 方便程序模块的修改、调试; (2) 通过其可以方便地创建可执行文件, 并且在编译时具有自动更新项目中各组成部分的版本的功能。

在使用项目管理器时应注意: (1) 尽可能地使用“原”文件 (MNX、SCX等) , 而不使用由生成器转换以后的程序文件 (MPR、SPR等) , 以便在菜单、屏幕等更新后, 执行项目管理器中的“BUILD”按钮时能自动作相应的转换;在程序中调用菜单或屏幕时, 调用扩展名为MPX或SPX的文件而不是扩展名为MPR或SPR的文件。 (2) 若一个应用中的大部分模块都已定型, 只是个别模块在使用中变化。如我们编制的《工资管理系统》中的统计模块, 该模块的修改 (二次开发) 较简单, 系统的使用人员也可以胜任。这要求在编译的可执行文件中不含该模块, 实现的方法是:利用FOXPRO“PROJECT”菜单中的“EXCLUDE”菜单条对项目管理器中的该模块作标记, 然后执行“PROJECT”菜单中的“PACK”功能, 再重新编译项目即可。外部模块是FXP类型的文件, 在安装时, 注意将外部模块文件放在应用系统EXE文件所在的目录中。

3.2 应用程序的信息输入

3.2.1 屏幕生成器

屏幕和菜单类似, 都有开始 (SETUP) 、清除 (CLEANUP) 两个代码段, 通过他们可以设置相应的环境或在屏幕 (或菜单) 退出时恢复环境。虽可以通过屏幕生成器中的“ENVIRON-MEXT”按钮中的“SAVE”功能保存开发时的环境, 但此功能有限, 不便于进行复杂的设置, 且其保存的开发时的环境可能与运行时不同, 导致程序运行时出错。所以, 建议编程人员不要用此功能, 而使用前者。

屏幕中编写代码时, 有两个层次, 即屏幕层和屏幕中的对象层。通常的处理均可在对象层次中解决。屏幕层次中通常只使用开始 (SETUP) 、清除 (CLEANUP) 两个代码段, 其他的代码段通常在多窗体、多屏幕中用到。在对象层次中, 通常也只需要编写“VALID”代码。

3.2.2 功能强大的BROWSE

使用过EXCEL的人都习惯对纵横表进行操作, 这样操作直观、自然。在FOXPROW中, 用BROWSE可以实现类似的功能。若要用BROWSE对表进行任意操作, 用下面简单的命令即可:

这样的操作, 表中的数据是不安全的, 有必要对表的浏览操作加以限制。如在BROWSE命令中有选择性的加入NODE-LETE、NOAPPEND、NOMODIFY, 就可以对“加删除标志”或“追加记录”或“修改记录”加以限制。

borwse titile nodelete noappend nomodity

(注:这条命令只能显示表的内容, 不容许对表进行修改)

有时, 表的字段名是西文字段名, 或虽是中文字段, 但表达的意思不易理解时, 在浏览时需要给出易于识别的表头, 这时就需要使用“:H=”的字段名修饰如下所示:

browse field name:h=“姓名”

(注:这里name是西文字段名, 在显示时用“姓名”替换)

在BROWSE命令中加入NOMODIFY将锁定所有的字段, 不容许修改。但通常的情况只要求锁定关键字段、关联字段, 这时就不能用NOMODIFY, 而要用“:W=.F.”字段名修饰功能。

3.3 应用程序的检索的实现

3.3.1 按例关系查询

在开发环境或命令环境中, 进行查询采用功能强大的RQBE是最优的选择, 用他建立单表或多表查询均比较简单, 介绍这方面内容的资料较多, 在此, 限于篇幅, 不再赘述。由于在运行库中未集成RQBE特性, 在开发应用时, 请不要包含该特性。但用RQBE功能生成的SQL语句可用于应用系统中, 减少编制查询模块占用的时间。将SQL语句中的字句的内容设置成变量, 用“宏替换”功能可以构成某种程度上的通用查询模块。

3.3.2 表达式生成器

在运行时能用表达式生成器 (调用方法是GETEXPR TO) 生成过滤条件, 将查询的记录过滤出来, 在浏览窗口或报表中显示输出。

3.3.3 定制查询屏幕

按例关系查询以及表达式生成器均需要用户有一定的FOXPRO运用基础。对于普通用户, 需要构造出傻瓜是样的查询屏幕, 用户填几个字符串或数值等, 就可以找出相应的记录。

3.4 应用程序的结果输出

3.4.1 BROWSE

BROWSE功能强大, 即既可用于信息的录入, 又可作为信息输出的载体。

3.4.2 报表

FOXPRO的报表与FOXBASE中的报表相比增加了表格线的功能, 更符合中文报表的习惯, 制作报表较方便。但报表中的对象的定位稍显麻烦, 编制—个报表所花的时间较多, 并且, 所定制的报表是相刘于某种大小的纸张的, 纸张大小改变后不能自适应。

在FOXBASE以及在DOS下的FOXPRO中, 要打印报表, 通常是用“@.……SAY.……”语句编制程序实现, 所生成的报表为文字型的报表。这种报表可以直接送往打印机输出, 也可以存入一文本文件中, 经其他字处理程序处理后输出。在早期, 编制程序生成报表是非常麻烦的, 系统开发中, 大量的时间是用来编制报表程序。为了加快报表程序的编制, 我们在实践中用DELPHI编制了自动生字符报表程序的工具。这些工具中, 既有简单报表的快速生成接口, 也有生成复杂纵横表头报表程序的工具。

由于CCED2000使得在WINDOWS图形用户界面输出字符型的报表非常方便, 并且用我们自己的工具生成文字制表符型的报表的速度要比FOXPRO生成的图形报表的速度快得多, 所以即便是现在, 我们大量的报表仍采用的是字符型的报表。若文字报表已存入文件AUTOPRN.PRN中, 用CCED2000打开文字报表的方法如下所示:

3.4.3 图表

在FOXPROW中, 可以直接从数据库中提取数据生成柱状图、饼图等图表。方法是用COPY命令将图表中要用到的字段复制到一个临时数据库中, 然后调用FOXGRAPH向导即可。例如数据库ABC.DBF中含有“28天强度”、“凝结时间”等10个字段, 要求用“28天强度”、“凝结时间”字段的值生成一柱状图。完成要求所需的代码如下所示:

4 程序完成后的几点思考

4.1 学习计算机的编程的一点体会

学习方法因人而异, 我的学习方法遵循以下4个原则:

4.1.1“循序渐进”——要求应注重基础, 切忌好高骛远, 急于求成。循序渐进的原则体现为:一要打好基础。二要由易到难。三要量力而行。

4.1.2“精读精思”——要广泛阅读和精读, 善于提出问题和解决问题。

4.1.3“自求自得”——就是要充分发挥学习的主动性和积极性, 自求自得的原则要求不要为读书而读书, 应当把所学的知识加以消化吸收, 变成自己的东西。

4.1.4“知行统一”——就是要根据认识与实践的辩证关系, 把学习和实践结合起来, 切忌学而不用。因此, 知行统一要注重实践:一是要善于在实践中学习, 边实践、边学习、边积累。二是躬行实践, 即把学习得来的知识, 用在实际工作中, 解决实际问题。

4.2 网络条件下的实验室数据处理与应用发展方向

随着高新技术的迅速发展, 实验室的测试技术、设备与数据应用也同样得到飞速发展, 实验室信息化管理也成为必不可少的支撑条件。

4.2.1 数据的获取是实验室的“瓶颈”

对多数行业来说, 数据的测试占用了大量时间, 包括仪器的标定、调整、自动与人工记录。实验过程实质上是实验人员不断调整仪器的集成, 改变系统的输入以获取实验系统输出的过程, 一系列数据就是实验过程的记录。除了类似扫频仪这样的专用测试系统, 能够自动调整参数并记录全频道的数据之外。相当多的仪器只能依靠人工调节输入参数, 同时自动输出和打印测试记录, 包括直接输出测试结果。一般说来, 凡是被测对象种类多, 牵涉的时间、温度、频率等数值在较大范围中变化时, 就有必要考虑构成自动多道采集和传输子系统。当前广泛地采用了手持电脑或是与仪器配套的自动数据接口, 在为测试带来便捷的同时, 也面临了设备昂贵和参数不易调节的困难。因此, 在网络条件下, 实验室的数据接口总是构建信息管理系统的首要问题。

4.2.2 统一的接口标准提供了万能应用

以建筑材料的现场辐射测试来说, 现有携带式设备从材料的体积和测试的操作过程来说都是比较复杂的, 如果只在现场采用辐射传感器和通信接口, 远程使用实验室中电脑的处理程序就可以灵活地完成不同条件下的材料辐射。应用统一的数字信道接口标准, 会为实验室建材检测带来意想不到的便捷。

4.2.3 网络化通过软件提高了仪器智能化

一般说来, 单机接口所面临的问题正是整个系统构成和调试的关键问题, 原因是在缺乏零部件和接口软件的情况下, 单机的输入、输出很难进行调节、替代。而在网络支持下的系统, 可以通过软件方便地对所有仪器的输入, 特别是输出数据进行调整、变换。例如, 进口水泥搅拌设备要依靠打印配方控制生产进程, 一旦专用打印机损坏, 就是要寻找与之相匹配的插头也不是一件容易的事, 否则很难得到现场数据的输出。而类似问题是我国基层单位实验室经常面临的问题。

因此, 为现有的仪器接口提供通用的板卡和接口软件, 并使之与主流电脑系统配套是现代实验室的重要任务。这项工作应当得到行业和地区性科技条件市场的关注, 最好能够提出软硬件接口规范和提供商品化产品。

5 结束语

软件设计总结报告 第4篇

关键词:企业实践 Java软件项目开发岗位 职业能力 教学改革

笔者积极响应学校号召,暑期期间到济南维库软件科技有限公司进行了一个月的企业实践,顺利完成企业的工作任务,现将一个月的实践收获总结如下。

一、转化角色,虚心、耐心、专心做一线有责任心的企业员工

1.遵守企业制度,认真承担并履行责任

在一个月的企业实训中,笔者谨记学校领导的嘱托,严格要求自己,认真遵守企业制度,从未发生迟到、请假、早退现象,进入公司后将自己由受人尊重的老师转变为一名初到公司的企业员工,做到慎独、慎微、慎初,强化工作责任心,主动处理好分内与分外的相关工作,勤奋扎实地工作,不敷衍应付,认真对待工作中的每一个问题,完成企业交给的每一个工作任务。

2.不畏工作困难,耐心解决项目开发中的各种问题

企业实训为真实软件开发项目:山东高速集团采购系统。由于项目庞大复杂,涉及知识点琐碎,项目开发工作困难重重,笔者认真细致学习企业教师讲解的知识点,分析需求说明书,钻研软件算法和代码的实现,面对项目中遇到的各种错误代码和异常,耐心查错排错,认真解决软件开发过程中出现的各种错误,并及时记录解决方案和问题,为下一步软件开发工作和教学实训积累了丰富的经验。

3.放下教师架子,虚心向企业有经验老师请教

学校主要工作是教书育人,企业工作是开发高质量软件产品。工作任务的不同,使笔者慢慢放下了教师的架子,主动地向实践操作能力较强的“小兄弟”请教。虽然他们年龄较小,学历不高,却有丰富的项目开发经验。笔者向他们虚心请教,反复讨教工作中不明白的问题,从他们那里学到了课本上没有的工作技巧和技术,更领略了他们一丝不苟、沉着耐心和认真细致的工作作风。

二、企业实践锻炼内容

企业实训内容主要基于目前软件公司的热点需求——Java软件开发岗位进行设计和选取,包括相关知识内容的培训和山东高速集团采购系统项目的实训两部分内容,具体知识包括:Java知识(JDK的安装配置、Myeclipse开发工具使用、数据类型和运算符、流程控制、面向对象开发)、HTML知识、MYSQL知识和SSM知识(JSP应用、Sevlet应用、Spring-MVC应用、Spring依赖注入、Mybats框架应用及整合)。

三、企业实践锻炼收获与心得

1.课程设置应与岗位需求相匹配

高等职业院校人才培养模式定位于技术技能型人才的培养,为地方区域经济服务,为地方社会经济发展提供人才保障和智力支持,因此专业课程的设置应该以岗位工作任务和岗位能力需求为出发点。以Java软件开发岗位为例,目前学校开设的都是传统的数据库知识和web前端知识课程,但是IT技术发展迅速,真正的软件开发大多通过相关框架实践,如SSM框架、SSH框架等,因此,学校要适应目前社会的需求,与时俱进,及时更新课程标准和授课内容。

2.教师实践操作水平是培养高素质技术技能性人才的重要因素之一

目前企业对参加职业技能大赛获奖学生毕业生比较青睐,所以企业高职院校的评价主要通过高职院校技能大赛进行,而学生技能大赛成绩的结果反映了教师的实践操作水平。俗话说“老师要给学生一杯水,自己首先要有一桶水”,因此教师应首先提高个人实践操作水平,而提高教师实践操作水平的主要方式之一就是通过企业实践锻炼。据悉,山东省在不久的将来将启动高职院校教师职业技能大赛,因此教师要将提高实践操作水平作为自己以后工作的努力方向。

四、未来的努力方向

1.基于企业岗位需求进行教学改革

(1)教学模式和教学方法遵循职业发展规律。高职院校推行“工学结合、知行合一”的人才培养模式,因此要基于企业工作岗位和工作任务进行教学改革。

第一,推行教、学、做一体化教学模式。在教学中,应该以培养学生的职业能力为主,师生双方边教边学边做,理论和实践交替进行,直观和抽象交错出现,理中有实,实中有理,突出学生动手能力和专业技能的培養,充分调动和激发学生学习的兴趣,使学生真正变成学习的主人。要培养学生的终生学习和持续发展能力,推行教、学、做一体化教学模式对加强学生的动手操作能力和解决实际问题的能力有很大好处。

第二,推行翻转课堂教学方法。为提高学生的主动性和创新能力,在教学过程中,推行翻转课堂的教学方法,将学习任务布置给学生课下完成。学生利用信息化技术查阅需要的材料,还可以在网络上与别的同学讨论,完成老师分配的任务,并在课上分享任务完成过程和心得体会。由老师进行评论,师生间还可以进行充分的交流,这样可以满足学生的个性需要,有利于学生创新能力的培养。

(2)教学过程基于软件开发工作过程。将教学过程与企业软件开发过程相结合,教学过程围绕企业真实的软件开发项目展开,将要学习和掌握的知识技能,转化为一项项工作任务,学生分组按照行动导向的六个步骤(资讯-计划-决策-实施-检查-评估)进行,使学习任务既是一个完整的学习过程,又是一个工作过程,教师成为学生学习的引导者和促进者。

2.技能操作的提升与社会岗位前沿技术的了解

(1)技能操作的提升。以后,笔者将会继续积极参加企业实践锻炼,参加省级培训,完成每5年必须累计不少于6个月到企业或生产服务一线实践的目标,通过企业真实工作过程提高自己的实践操作水平和职业能力,并将其应用到教学过程、实验实训过程和学生技能大赛中。

(2)社会岗位前沿技术的了解。为推导社会技术的变化和教学知识的更新,在以后的工作中要经常深入企业,了解企业的生产组织方式、工艺流程、产业发展趋势等基本情况,熟悉企业岗位职责、操作规范、技能要求、用人标准、管理制度、企业文化等,学习所教专业在生产实践应用中的新知识、新技术、新工艺、新材料、新设备、新标准等,及时更新人才培养方案、课程标准,适应社会岗位对教学知识的需求。

五、小结

软件设计开题报告 第5篇

题目:基于无线传感器网络的水资源监测系统的设计上位机

1.毕业设计(论文)综述(题目背景、国内外相关研究情况及研究意义)

1.1 题目背景

水资源监测是水资源管理与保护的重要手段,我国水资源紧缺、水污染严重,如何高效、实时地获取水环境参数、研究开发水环境监测新方法,已成为水环境管理与保护的一项重要任务。无线传感器网络 WSN(Wireless Sensor Network)是将有感知能力、计算能力和通信能力的微小传感器节点采用规则或随机方式部署在监控区域,通过无线自组织和多跳的方式构成的分布式网络。它集传感器技术、嵌入式技术、现代网络技术、无线通信技术和分布式信息处理技术于一体,以数据处理为中心,协作地感知、采集、处理和传输目标区域的监测信息并报告给用户。它具有可快速部署、无人值守、功耗低和成本低等优点。

1.2 国内外相关研究情况

在世界上我国属于水资源贫乏国家, 对水资源的优化使用对我国实施可持续发展战略具有十分重要的意义。强化对水资源环境的监控是一个长期的任务。常规水资源环境监测方法主要分为以下两种:(1)利用便携式水质监测仪人工采样、实验室分析的方式。该方式仅限于对河流、湖泊的几个断面采样,采样频率从每月数次到每日数次。(2)采用由一个中央控制室和若干个监测子站组成的水环境自动监测系统对水环境参数进行自动连续监测, 数据远程自动传输, 可以实时查询所设站点的水环境参数[1]。前者由于无法对水环境参数进行远程实时监测, 存在水质监测周期长、劳动强度大、数据采集速度慢等问题, 不能很好地反映水环境的连续动态变化, 不易及早发现污染源并预警。后者能很好地解决水质监测周期长、劳动强度大、数据采集和传输速度慢等问题, 但由于有铺设电缆和建立监测子站的施工要求, 因而存在对监测地点原有的生态环境影响大、系统投资成本高、监测水域范围有限的缺点, 同时无法进行大面积布设监测子站、对每个小水域实施多点远程实时监测。基于无线传感器网络的水资源实时监测系统, 比较典型的国外代表有美国Heliosware公司的EMNET系统和澳大利亚CSIRO 的Fleck系统[2、3]。上述两种系统可采集参数种类较少、不提供对水资源的视频监测功能且通信速率低、产品体积较大、功耗较高, 目前仅适合用作研究, 尚不能作为实用系统在现场使用。国内已对基于无线传感器网络的水资源实时监测系统的一些关键技术进行了研究[4]。与传统的监测法相比, 无线传感器网络具有对生态环境影响小、系统成本低等优点。

近些年来,无线传感器网络是国际上非常关注的、涉及到多个学科高度交叉、知识高度集中的热点研究领域。目前,无线传感器网络的研究经过了两个阶段。第一阶段主要是采用MEMS技术设计微型节点,代表性的研究成果是智能埃及SmartDus无线集成网络传感器WINS。第二阶段是研究网络问题。国外设计了很多套演示系统取得了一系列重大的理论研究成果。在国外,Intel公司于发布了基于无线传感器网络的新型计算机发展战略,主要研究无线传感器网络在医学、森林防火、环境监测等方面的应用。在国内,很多科研机构和大学队无线传感器网络都进行了相关方面的研究。有业内专家指出,中国掌握了物联网(WSN的实际应用)的世界话语权,不仅表明我国在该领域上的技术领先,同时也在于中国式世界上少数能将WSN实现产业化的国家之一。

1.3 研究意义

水资源是生命生存不可替代的自然资源,是生命支持系统之一,也是重要的`环境要素。楼兰古城的兴起是由于丰富的罗布泊湖水的滋润,富庶的楼兰11万平方米,人口达万人,是楼兰国的首邑,是我国古代一重镇,也是丝绸之路南线必经之地。后来由于种种原因导致水资源衰竭,繁华的古城衰落,直至湮没在茫茫的荒漠之下。

水资源危机究竟始于何时,目前学术界尚无公论。但是水资源危机引起了世界各国的关注与不安。我国是一个人口众多,水资源绝对数量较高而相对数量较低的缺水国家。1988年7月1日《中华人民共和国水法》正式实施后,确立了每年水法宣传周(简称为水周),其目的就是通过这一活动,向公众集中灌输有关水资源开发利用与保护方面的知识和政策法规,以增强公众节约水资源的意识。

我国的水资源价值理论受水资源是取之不尽,用之不竭的传统价值观念影响,造成了水资源长期被无偿地开发利用,不仅造成了巨大的宝贵水资源浪费和对水资源非持续开发利用,同时对人类的生存及国民经济的健康发展产生了严重的威胁。尽管近几年来对此有所认识,采取了相应的行政或法律手段扭转这种被动局面,但是,由于对水资源价值理论的研究不够深入,致使所采取的措施缺乏广泛的经济社会基础,最终结果是政府干预行为过于集中和强硬,市场行为和经济杠杆的作用又过于薄弱,导致期望与现实相差甚远。因此,水资源价值研究在持续利用水资源过程中具有重要的地位,是实现持续发展战略一个组成部分,开展此方面的研究是十分必要的。

2.本课题研究的主要内容和拟采用的研究方案、研究方法或措施

2.1 研究的主要内容

根据无线传感器网络的基本理论和水资源监测的实际需求,设计基于无线传感器网络的水资源实时自动监测系统,能够在线实时测量温度、PH 值、电导率、浊度等参数的水资源监测系统,此系统在监测区域内采集相关数据,利用监测区域协调器节点和远程监测中心(PC 机)之间的通信,把经过处理的测量结果动态地显示出来。本课题完成系统上位机的软件设计,由串口接收协调器节点送来的水资源监测数据,进行数据解析,提取出各个传感器采集的数据并通过界面动态的显示出来。

2.2 研究方案

关于本次研究的课题,基于无线传感网络的水资源监测系统的设计,主要可分为三个部分,由于本次课题的研究只涉及上位机部分,即图一中的虚线部分,主要设计上位机的软件界面的设计部分,其中包括有串口接收数据,解包数据,以及显示部分,其中的解包部分包括,将PH值,浊度,在线实时温度,电导率和它们各自对应的数值一一对应起来,这部分主要涉及用Visual C++语言将其用软件编程,并实现功能,其流程图为图2:

实现过程为:先初始化软件,再设置软件编辑界面,设置好界面后,开始接收由协调器经串口发送过来的数据,进而解包数据,接着处理数据,将PH值、实时测量温度、浊度以及电导率的各组数据按照一定的要求计算好,显示各组数据,最后结束程序。

在这个过程中,实现了串口接收数据,解包数据,处理数据以及最后将数据动态的显示出来,完成了本次研究的要求。

3.本课题研究的重点及难点,前期已开展工作

要完成这次课题,即基于无线传感器网络的水资源监测系统的设计上位机,需要完成的内容有:系统上位机的软件设计、接收由串口协调器节点发送过来的水资源监测数据、进行接收数据的解析、提取出各个传感器采集的数据并且通过界面动态的显示出来。其中重点以及难点有:系统上位机的软件设计,由于对上位机不是很了解,以前也没有接触过上位机,对它的功能,使用不了解,也没有接触过Visual C++语言,属于初学者,会有一定的难度,既是重点也是难点;把接收到的数据进行数据分析,要进行合理的、有效的数据分析,是一个关乎本次课题成败的重点;将提取出的数据通过界面动态的显示出来,要通过一定的平台来显示,即要通过一定的硬件设施显示,这就需要能够正确的,有效的连接到所用的平台,是研究的最后一道门槛,也是重点。

目前为止,已经开展的工作有,通过查询相关资料以及通过互联网了解到上位机的功能,以及它所需要的编辑工具-----Visual C++,对我来说这是一种新的语言,现在已经开始看有关C++方面的书,开始学习使用它一些简单的使用方法。

4.完成本课题的工作方案及进度计划

第1-3周:查找借阅相关书籍资料,确定系统的总体方案,完成开题报告;

第4-9周:进行上位机软件编程学习,软件界面设计

第10-11周:进行软件设计、进行数据解析;

第12-15周:系统调试,验证系统功能;

第16-17周:完成毕业论文,准备答辩

5.参考文献

1、任丰原,黄海宁,林闯.无线传感器网络.软件学报,,14(7) 1282--1291

2、于海滨,曾鹏.分布式无线传感器网络协议研究.通信学报,,25(10).

3、Jesse Liberty Pogers Cadenhead 著,袁国忠,朱永正译,C++入门经典(第五版)北京:人民邮电出版社 10月

4、武万峰, 徐立中, 徐鸿. 水质自动监测技术综述[ J]. 水利水文自动化, 2004, 22( 1) : 14-18.

5、吴金平等编著 Visual C++编程与实践 北京:中国水利水电出版社,2004

6、龚道礼 基于无线传感器网络的环境监测系统研制 硕士学位论文 北京

7、赵丽花、樊俊青 计算机与现代化 基于无线传感器网络的水资源监测系统关键技术研究 第八期

8、高峰,俞丽,张文安等 农业工程学报 基于无线传感器网络的作物水分状况监测系统研究与设计 2月第25卷第2期

9、高峰,俞丽,王涌等 农业工程学报 无线传感器网络作物水分状况监测系统的上位机软件开发 205月第26卷第6期

10、武万峰,徐立中,徐鸿 水质自动监测技术综述[ J]. 水利水文自动化, 2004, 22( 1) : 14--18.

11、但德忠 我国环境监测技术的现状与发展 中国测试技术 31(5):157--161

12、孙利民,李建中,陈瑜等 无线传感器网络 北京:清华大学出版社 2005 15--16

软件设计总结报告 第6篇

详细设计说明书

1、引言: 1、1编写目的:

在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。

在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的 程序语言书写的程序。主要的工作有:根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)

在以下的各个阶段中,《用户操作手册》将与本阶段的工作紧密结合,努力作到 让用户易懂易学。《测试报告》和《维护报告》也将参考本说明书,检验本系统的各项性能指标,及时发现纰漏及时修补,一定要把功能强大、稳定可靠、便于维护的机票预定系统交到用户手中。1、2项目背景:

在本即时聊天工具项目的前一阶段,也就是需求分析阶段,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对不同用户所提出的不同功能,实现的各种效果做了调研工作,并在需求规格说明书中得到详尽得叙述及阐明。

本 飞Q即时聊天系统项目主要由两部分形成:

1、客户端;

2、数据库服务器端;

山东科技大学 王昌帅 wangchangshuai0010.iteye.com 1、3文中特殊的定义和缩写:

1.3.1定义

SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。SQL: 一种用于访问查询数据库的语言

事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。

外部主键:数据库表中与其他表主键关联的域。ROLLBACK: 数据库的错误恢复机制。

1.3.2 缩写

系统:若未特别指出,统指本机票预定系统。

SQL: Structured Query Language(结构化查询语言)。ATM: Asynchronous Transfer Mode(异步传输模式)。1、4参考资料:

1. 以下列出在概要设计过程中所使用到的有关资料: 2. 需求规格说明书

飞Q软件开发小组

3. 概要设计说明书 飞Q软件开发小组

4. 用户操作手册(初稿)

飞Q软件开发小组 5. 软件工程及其应用 周苏、王文等 天津科学技术出版社 6. 软件工程

张海藩 清华大学出版社

7. Computer Network A.S.Tanenbaun Prentice Hall

8.网络上的资料

文档所采用的标准是参照《软件工程导论》沈美明著 的“计算机软件开发文档编写指南”。

山东科技大学 王昌帅 wangchangshuai0010.iteye.com 2.总体设计: 2、1需求概要:

应广大用户的要求,要求做一个性能更高更人性化的即使聊天工具,我飞Q软件设计小组努力为大家写一个更好的即时聊天工具。

飞Q2012聊天系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的飞Q2012聊天系统,实现添加好友,删除好友,相互聊天系统,为人们聊天提供准确、精细、迅速的信息。

根据可行性研究的结果和客户的要求,分析现有情况及问题,采用Client/Server结构,将飞Q2012聊天系统划分为两个子系统:客户端子系统,服务器端子系统。

要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要单明了,易于操作,服务器程序利于维护。2、2 软件结构:

各模块之间的关系已由概要设计给出

下面介绍详细的设计

登陆模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

登录找回密码输入错误输入飞Q帐号和密码申请帐号输入格式是否正确正确进入找回密码界面点击登录进入申请界面密码正确?密码正确进入飞Q聊天主界面密码错误登录失败结束 申请模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

开始输入基本信息N点击新用户注册信息是否完整Y显示已申请的QQ帐号,密码点击登录QQ进入QQ登陆界面结束

安全模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

开始点击安全概述点击修改密码点击常见欺骗点击修改密保常见欺诈立即完成是否设置密保Y判断安全状况隐患危险N密保是否正确Y提交输入验证密保设置密保N密保问题是否正确提交Y提交N是否设置密保Y输入原密保问题输入密保问题N修改密码修改密保输入新密保提交良好结束

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

聊天模块聊天窗口1聊天窗口2窗口1窗口2发送发送窗口2信息转换站窗口1信息转换站

服务器端:

1、申请模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动线程将可申请帐号预读到内存中等待用户申请。。返回继续监听客户端返回申请到的QQ用户请求启动线程调用子线程次数过多此ip是否申请次数过多取出一个可申请的qq返回申请到的QQ在数据库中建立此人的基本信息档案结束c

2、登录模块山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动线程将密码预读到内存中等待用户申请。。返回继续监听该帐号另一客户端客户端返回申请到的QQ用户请求启动线程调用子线程重复则发送终止命令判断是否是重复登录不重复密码错误判断密码是否正确给其他好友发送登录信息、读取系统消息读取系统消息所以在线好友返回申请到的QQ返回用户的好友列表读取好友列表数据库结束

3、添加好友模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动接收添加好友同意与否信息线程10

等待用户。。返回继续监听客户端发送同意与否信息启动子线程调用子线程读取同意与否信息不同意同意否?同意写入数据库数据库客户端同意信息子线程结束 10 山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动接收添加好友请求线程11

等待用户申请。。返回继续监听客户端用户请求启动子线程调用子线程不允许任何人加入判断要添加的用户的添加权限允许任何人加入数据库需要验证结束 11 山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动接收添加好友验证线程12

等待用户申请。。返回继续监听客户端用户请求启动子线程调用子线程读取验证信息判断要添加的用户是否在线发送同意与否不在线数据库在线子线程结束要添加的用户同意的同时数据库相应添加

4、删除好友模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动删除好友请求线程13

等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程删除成功读取要删除的人在双方数据库中删除对方数据库发送刷新界面命令另一客户端结束

5修改好友昵称模块山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动修改好友昵称请求线程等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取要修改的人在数据库中修改数据数据库结束

6、查找用户模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动查找用户请求线程15

等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取要删除的人判断是精确查找还是按条件按条件精确构造SQL语句构造SQL语句返回结果列表数据库构造搜索结果列表返回结果结束

7、安全模块

7.1、设置密保模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动监听用户设置密保请求线程等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取此用户的信息,及密保设置信息返回成功信息构造SQL语句写入数据库数据库写入数据库完成后结束

7.2、判断是否设置密保模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动监听用户请求线程等待用户请求。。返回继续监听客户端用户请求没有设置密保启动子线程调用子线程判断是否设置密保读取密保问题返回密保问题信息数据库得到该用户密保问题结束 山东科技大学 王昌帅 wangchangshuai0010.iteye.com 7.3、判断密保答案是否正确模块

启动接收用户密保答案线程等待用户请求。。返回继续监听客户端用户请求启动子线程错误调用子线程获得密保答案读取密保问题及答案数据库返回数据判断密保答案是否正确返回正确信息子线程结束

山东科技大学 王昌帅 wangchangshuai0010.iteye.com 7.4、修改密保模块

启动接收用户密保答案线程等待用户请求。。返回继续监听客户端用户请求启动子线程错误调用子线程获得密保答案读取密保问题及答案数据库返回数据判断密保答案是否正确返回正确信息子线程结束

7.5、修改密码模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动接收用户重设密码线程等待用户请求。。返回继续监听客户端用户请求调用子线程启动子线程读取密码信息返回成功信息重设密码在数据库中重写此用户密码数据库子线程结束

7.6、找回密码

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动监听用户请求线程等待用户请求。。返回继续监听客户端用户请求没有设置密保启动子线程调用子线程读取密保问题判断是否设置密保旧密码不正确判断旧密码是否正确返回重设成功信息数据库重设密码写入数据库子线程结束

8、移动好友模块 山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动移动好友昵称请求线程等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取基本信息在数据库中修改数据数据库结束

9、组操作模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动组操作请求线程23

等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取基本信息判断是对组的什么操作赠加组删除组修改组的名称生成SQL语句在数据库中修改数据数据库结束

10、发送系统消息模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

开始服务器线程产生的不通的发送消息要求判断是发哪种类型的系统消息用户1用户3用户2用户4给相应的用户发送相应的系统消息。。结束

11、更新个人信息模块

启动修改个人信息请求线程等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取信息生成SQL语句在数据库中修改数据数据库结束

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

12、请求ipPort 模块

启动修改个人信息请求线程等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取信息读取ip和port读取另一用户ip和portHashmap返回此人ip和chatport判断ipport是否为空返回不在线信息结束、心跳模块

13.1、用户心跳接收处理模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动修改个人信息请求线程26

等待用户请求。。返回继续监听客户端用户请求启动子线程调用子线程读取信息读取ip和port读取另一用户ip和portHashmap返回此人ip和chatport判断ipport是否为空返回不在线信息结束

13.2、服务器定时检测超时模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动循环检测用户是否在线的线程得到hashmap中的一个用户是否超时?是推拉检测模块否得到hashmap中的下一个用户

13.3、服务器推拉检测在线模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

启动循环检测用户是否在线的线程客户端是否在线我在线向用户询问是否在限定时间得到用户客户端响应是更新记录接收用户心跳时刻的hashmap否在数据库中相应修改从记录接收用户状态的hashmap删除此用户从记录接收用户在线信息的hashmap删除此用户从记录接收用户心跳时刻的hashmap删除此用户数据库此线程结束

14、添加可利用飞Q号

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

开始否读取数据库中可申请的帐号数Sleep 一小时判断数量是否过少否是添加一些可利用的帐号添加到内存中的可申请帐号arraylist中

3、程序描述:

客户端总模块:

山东科技大学 王昌帅 wangchangshuai0010.iteye.com 30

登陆模块 登录过程

对在飞Q登录信息界面中输入的各项信息进行初步检验。若发现错误,输入数据全部清空,以让用户重新输入一次。若未发现错误,转入主界面。其中的错误种类有:

输入数据不匹配

帐号 数据库没有该帐号

密码 与对应账号的密码不匹配 2 输入数据不能为空 if(账号为空){ 请输入账号再登陆 } else if(账号长度小于6或对于20){ 请输入正确的账号,账号可以位数字或Email地址。

} else if(密码为空){ 请输入密码后再登陆 } else { 通知服务器 账号为:xxx 密码为:xxx的请求登陆 } 2申请过程

对之前没有申请飞Q的用户,不能登录飞Q,而必须点击申请,成为飞Q大家庭点击之后转入申请界面

寻找忘记密码过程

对之前申请飞Q的用户,如果忘记密码,请不要担心,点击界面上的“忘记密码”,点击之后转入寻找密码界面

1.的一员。

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

2申请模块

对在飞Q申请信息界面中输入的各项信息进行账号申请。若发现错误,输入数据全部清空,以让用户重新输入一次。若未发现错误,转入账号申请成功界面。

if(昵称为空){ 请输入昵称 } else if(密码格式错误(小于6或大于20)){ 密码必须6-20个字符!

密码框清空,重新输入 } else if(两次密码输入不匹配){ 两次密码输入不一致

密码框清空,重新输入 } else { 获取注册信息

点击新用户注册,向服务器传输注册信息 }

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

3 增删改查模块

3.1 查找好友模块

对在飞Q查找好友界面中选择查找类型(精确查找或条件查找),输入各项查找信息进行好友查找。若发现错误,输入数据全部清空,以让用户重新输入一次。若未发现错误,转入查找结果界面。在查找结果界面中选择要添加的好友,双击,查看该好友的详细资料,点击添加,转入好友信息验证界面。在好友信息界面,输入验证信息,完成好友的添加。

Search类

if(查找联系人){ if(精确查找){

if(查询条件为空)

{

请至少填一个查询条件

}

else { 获取查找信息

点击查找把查找信息传递给服务器 } }

else if(条件查找)

{ 获取查找信息

点击查找把查找信息传递给服务器

} Search_rasult类 if(点击添加好友){ if(添加好友选择的是自己)

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

{

对不起,自己不能加自己为好友!

重新选择

} else { 把选择的好友发送给服务器

} } else if(关闭){ 放弃添加为好友

} Addfriends类

if(确定添加为好友){ 把选择的好友信息发送给服务器 } else if(取消){ 放弃添加为好友 } 3.2 删除好友模块

找到你要删除的对象所在的用户组,展开,找到该用户,右击,点击好友删除,然后刷新好友列表;

3.3.3 修改个人资料模块

点击自己头像,转入个人资料界面,更新你所需要的信息选项;确定更新点击确定,如果不想更新,点击取消即可;

更改头像:点击更换头像,即可转入更换头像界面,界面中陈列了各种头像,点击你想要的头像,即可显示该头像的不同样式,一供你参考。思考之后确实想更换,点击确定,立刻刷新所有界面,确保头像更换。如果不想更换,点击取消即可。

3.4 好友移动模块

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

找到你要移动的对象所在的用户组,展开,找到该用户,右击,点击移动,在弹出框中选择移动的组对象,向服务器发送相应的数据,然后刷新好友列表;

3.5 组操作模块 <1> 修改

找到你要修改的用户组,右击点击重命名,向服务器发送该账号的修改组信息,刷新好友列表,即可看见修改成果.<2> 删除

找到你要删除用户组,展开,右击,点击删除分组,向服务器发送该账号的删除组信息,然后刷新好友列表;

如果,要删除的是默认分组“我的好友”,系统不提供删除权限。<3> 添加

在好友列表中右击,点击添加分组,输入分组名,点击确定,向服务器发送该账号的组信息,不想添加,点击取消。安全模块

对在飞Q安全界面中,分为“安全概述”,“常见欺诈”,“修改密码”,“修改密保”; <1> 安全概述

安全概述 概述了你当前飞Q的安全状况 if(设置密保并且密码等级为良好以上){

安全状况良好请继续保持良好的习惯

可立即完成设置密码 } else if(设置密保并且密码等级为中等以下){ 安全状况存在隐患请定期修改密码

立即完成设置密码 } else { 安全状况危险请立刻设置密保问题

立即完成设置密保 } <2> 常见欺诈

常见的集中欺诈方式:钓鱼网址,视频欺诈,中奖欺诈,冒充好友欺诈;

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

<3> 修改密码

修改密码之前请确保设置密保;

如果没有设置密保问题,请先设置密保问题,以确保该账户的安全性。如果设置了密保问题,请先输入原密保问题,核对用户身份。密保正确才可以修改,如果错误,对不起,不能修改密码。

if(三个密保问题有空){ 对不起,密保问题回答不能为空!

没填写的须不完整

} else { 向服务器获取对应密保问题的答案

If(回答错误){ 提示:对不起,密保问题回答不能正确

全部清空,重新输入 }

else { 修改密码

输入旧密码

if(输入的旧密码正确){

if(新密码为空)

{

提示:密码不能为空

}

else if(两次密码输入不一致)

{

提示:两次密码输入不一致

}

else if(两次密码输入一致并且不空){ 向服务器发送该账号的新密码

} }

else

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

{ 提示:密码有误,请重新输入

} } } <4> 修改密保

如果没有设置密保问题,设置密保问题。

如果设置了密保问题,请先输入原密保问题,核对用户身份。密保正确才可以修改,如果错误,对不起,不能修改密保。

if(没有设置密保){ 选择密保问题回答

If(选择的密保问题重复){ 提示:选择的密保问题重复

重新选择密保问题 }

Else if(修改密保时验证密保问题为空){ 提示:修改密保时验证密保问题为空 } Else { 服务器发送该账号的新密保问题和新密保问题对应的答案 }

} else { 已经设置设置密保

向服务器获取对应密保问题的答案

输入密保问题答案(用户)If(回答错误){ 提示:对不起,密保问题回答不能正确

全部清空,重新输入 }

else { 修改密保

选择密保问题回答

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

If(选择的密保问题重复){ 提示:选择的密保问题重复

重新选择密保问题 }

Else if(修改密保时验证密保问题为空){ 提示:修改密保时验证密保问题为空 } Else { 服务器发送该账号的新密保问题和新密保问题对应的答案 } } } 聊天模块

所有的聊天窗口的即时聊天信息 只要点击发送,聊天信息会发送到服务器中信息中转站中;在信息中转站中判断该发送的对象,再由服务器发送给对。

服务器模块:

1、申请模块

将用户发送过来的申请信息写入临时变量对象中并存入数据库中 在数据库中建立如下信息

在main数据库的各表中插入申请的号码

在users 数据库中建立该帐号的档案,包括好友列表、添加好友验证表、历史记录表等等

2、登录模块

接收数据并存入loginpot中

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

判断接收的密码和服务器中的密码是否相同,相同则返回登录成功,并发送一系列信息(见下),不相同则返回登录失败,3、添加好友模块

1、发送添加好友请求:

用户发送添加好友请求包,服务器解析出要添加的好友,然后从数据库中查找出该用户的添加好友权限jugde 然后进行一下判断: switch(judge){ case 1://假如统一任何人加入

在双方数据库中分别添加对方,并且向被添加的的用户发送的界面刷新命令

break;

case 2: 对方需要验证信息,通知客户端

break;

case 0: 对方不允许任何人加入,通知客户端

break;

}

2、发送验证信息:

用户发送验证信息包,服务器解析出数据,判断要发送验证信息的用户是否在线

If(在线){

在线的话,就把验证信息发送到该用户客户端上并显示 } Else {

不在线的话,就把验证信息存入要发送的用户的数据库中,等到该用户下次登录时候并会提示该用户有添加好友验证信息 }

3、发送同意以否信息

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

用户发送同意与否信息包,服务器解析出数据,判断要发送同意与否信息的用户是否在线,判断同意与否信息是否

If(同意){

写入数据库相应 的信息。} Else {

不对数据库进行操作。}

If(在线){

在线的话,就把同意与否信息发送到该用户客户端,同时把此人的基本信息发送到客户端 } Else {

不在线的话,就把同意与否信息存入要发送的用户的数据库中,等到该用户下次登录时候并会提示该用户有添加好友成功与否信息 }

4、删除好友模块

删除好友模块设计思路比较简单,如下

用户发送删除好友信息包,服务器解析出基本数据,删除发送请求用户的数据库中要删除的好友的信息,同时在对方的数据库中也相应的删除此人信息,并且将删除成功与否信息发送回去,同时给要删除的用户发送刷新界面命令,当然得先判断该用户是否在线

If(在线){

在线的话,给要删除的用户发送刷新界面命令,删除点发送请求的用户的信息 } Else {

不在线的话,不用再进行任何操作 }

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

5修改好友昵称模块

同样,修改好友昵称模块,也很简单明了,不需要进行复杂的逻辑判断,详细过程如下:

用户发送修改好友昵称信息包,服务器解析成基本数据,在数据库中找到该好友的好友列表,修改该用户要修改的好友的昵称,然后子线程就可以终止了

6、查找用户模块

用户发送修改好友昵称信息包,服务器解析成基本数据,首先判断该用户用的是什么搜索模式,If(搜索模式是精确查找模式){

根据内容构造出SQL语句,在数据库中查找出相应的用户,构造出列表发回客户端 }

Else if(搜索模式是按条件查找模式){

根据内容构造出SQL语句,在数据库中查找出相应的用户,构造出列表发回客户端 }

7.1、设置密保模块

用户发送修改好友昵称信息包,服务器解析成基本数据,在数据库中找到该用户的的信息,将密保问题和答案写入该用户的数据库中,假如已有密保问题则转到重设密保模块

7.2、判断是否设置密保模块

用户发送请求后,服务器解析出数据,在数据库中找到该好友,查看该好友是否设置密保,If(设置了密保){

返回密保问题

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

Else if(没有设置密保){

发送回去没有设置密保的标识 }

7.3、判断密保答案是否正确模块

用户发送给服务器密保答案信息,服务器解析出相应的数据,从数据库中查找该用户的信息,得到密保问题和答案,进行判断三个问题是否全部回答对

If(三个密保问题全回答对)

向该用户客户端发送验证成功的消息 }

Else(三个问题不全对或全不对){

向该用户客户端发送验证失败信息 }

7.4、修改密保模块

这里说明一下,修改密保的模块是在验证密保答案正确的前提下才能进入的,所以此模块仅仅是覆盖掉该用户的,特此声明,呵呵,声明有点晚了。

没有复杂逻辑判断,思路如下:

用户发送给服务器新密保信息,服务器解析出相应的数据,从数据库中查找该用户,在数据库中重写此人的密保问题和答案,然后子线程接收。

7.5、修改密码模块

声明如7.4所示,不再重复 思路如下:

用户发送给服务器新密码信息,服务器解析出相应的数据,从数据库中查找该用户,在数据库中重写此人的密码,同时将新设置的密码加入内存中用户密码hashmap中,然后子线程接收。

7.6、找回密码

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

找回密码其实和重设密保有什么相识的地方,都是先验证信息密保信息是否正确,然后根据正确与否做出相应的处理

用户发送请求后,服务器解析出数据,在数据库中找到该好友,查看该好友是否设置密保,If(设置了密保){

返回密保问题

。。

判断接受的密保答案是否正确

If(三个问题都回答正确){

返回验证成功信息,通知客户端转入重设密码模块

} Else {

返回验证失败信息

} }

Else if(没有设置密保){

发送回去没有设置密保的标识,通知该用户由于没有设置密码,通过此方法不能找回密码。

8、移动好友模块

移动好友模块设计思路比较简单,如下

用户发送移动好友信息包,服务器解析出基本数据,在数据库中查到该用户的用户列表信息,更新列表信息,在数据库中做相应的修改

9、组操作模块

由于基本的几个组操作有很多相似之处,所以将几个组操作划为一个模块,设计思路如下:

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

用户发送组操作 信息包,服务器解析出基本数据和命令,判断要进行的组操作是什么操作,然后进行相应的操作,具体设计思路如下:

If(组操作命令为增加组){ 在users数据库中找到此用户的groupsList表,在此表中添加相应的组 } Else if(组操作为删除组){

1、在users数据库中找到此用户的friendsList表,把相应组的好友的组属性改为 我的好友,即将要删除组中的好友放到我的好友 中,而不是直接将他们删除,2、在users数据库中找到此用户的groupsList表,在此表中删 除相应的组

} Else if(组操作为修改组的名称){

1、在users数据库中找到此用户的friendsList表,把相应组的 好友的组属性改为 要修改的组名

2、在users数据库中找到此用户的groupsList表,在此表中删 找到相应的组,修改此组的名称为要修改的名称

}

10、发送系统消息模块

发送系统消息模块是由服务器直接调用的,来完成一些必须的用户响应,此模块发送消息的不同是由器构造函数决定的,其构造函数共有7种,如下:

//

public sendSystemMessageThread(String qq, int status)throws SQLException {

1、发送改变状态

}

public sendSystemMessageThread(String text)throws SQLException { 43 山东科技大学 王昌帅 wangchangshuai0010.iteye.com

2、发送系统消息(全部人)

}

public sendSystemMessageThread(String qq, int sign, String ip_od, String t)throws SQLException {

3、发送上次登录信息(登陆者)

}

public sendSystemMessageThread(String qq, String text)throws SQLException {

4、发送系统消息(对登录者)

}

public sendSystemMessageThread(String qq, systemMessage sys)throws SQLException {

5、发送添加好友请求信息

}

public sendSystemMessageThread(int sign, String qq)throws SQLException {

6、当在其他地方登录时给另一个QQ发送下线通知

}

public sendSystemMessageThread(String qq, systemMessage sys, int agree){

7、给该用户发送好友状态改变

}

由服务器根据不同的需要构造不同 的发送系统消息线程,实现相应的响应

11、更新个人信息模块

用户发送给服务器新个人信息信息,服务器解析出相应的数据,从数据库中查找该用户,在数据库中重写已经更改了的此人的信息

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

12、请求ipPort 模块

此模块是服务器中唯一和聊天相关的监听线程,此种设计方法极大的降低了服务器的压力,获取ip 和聊天port 是聊天中很重要的一个环节,设计思路如下:

用户发送给服务器请求另一个人的port的信息包,服务器解析出相应的数据,从内存中查找另一个用户的ip 和聊天 port,判断是否得到此人信息

If(查询到此人的在线信息){

给客户端返回找到的在线信息 } Else {

给客户端返回没有找到此人信息,也就是此人不在线,客户端

然后做出相应地相应

}

13、心跳模块

心跳相互协作的工作组及即时聊天领域发挥着详单重要的角色,通过发送心跳报,来判断各个部分工作是否正常,以防某个部分运作异常发现不了,造成严重错误。

心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。

用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于检测TCP的异常断开。基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端是长时间在空闲,还是已经掉线的情况。所谓的心跳包就是客户端定时发送简单的信息给服务器端告诉它我还在而已。代码就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开。

比如有些通信软件长时间不使用,要想知道它的状态是在线还是离线就需要心跳包,定时发包收包。发包方:可以是客户也可以是服务端,看哪边实现方便合理,一般是客户端。服务器也可以定时发心跳下去。一般来说,出于效率的考虑,是由客户端主动向服务器端发包,而不是服务器向客户端发。客户端每隔一段时间发一个包,使用TCP的,用send发,使用UDP的,用sendto发,服务器收到后,就知道当前客户端还处于“活着”的状态,否则,如果隔一定时间未收到这样的包,则服务器认为客户端已经断开,进行相应的客户端断开逻辑处理。

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

13.1、用户心跳接收处理模块

客户端发送心跳包,服务器心跳接收模块解析出此用户的状态,判断此人的状态与上一次心跳的状态是否相同

If(状态相同){ 将系统此时的时间写入内存中此用户的hashmap节点 } Else if(状态不同){

将系统此时的时间写入内存中此用户的hashmap节点

If(是下线信息){

删除此人的在线信息

} 给其好友发送状态改变信息

}

13.2、服务器定时检测超时模块

此模块用于定时检测用户心跳超时与否,设计详细如下:

While(true){ 从内存中的hashmap 中的第一个用户到最后一个用户,进行如下操作:

If(此用户心跳超时){

超时意味着此用户极有可能已经掉线了,但是不确定,所以此时要调用推拉检测用户在线模块,来确认此人到底在不在线

} Else {

不执行操作

} 休眠5秒后,继续 }

山东科技大学 王昌帅 wangchangshuai0010.iteye.com

13.3、服务器推拉检测在线模块

此模块是服务器中很特殊的模块,是主动联系客户端 的模块,在次模块中,服务器会主动询问客户端是否在线,形象的描述如下:

服务器问:******你在线吗? 客户端答:我在线。或者客户端没反应

这里就要判断在规定的时间内客户端是否返回响应 If(在规定的时间能收到相应){ 证明此用户是活着的,将系统此时的时间写入内存中此用户的 hashmap节点

} Else { 此用户已经意外掉线,所以应删除此人的所有在线信息 }

14、添加可利用飞Q号

添加可利用的帐号就是,假如可申请的号码低于规定的个数时,服务器添加帐号现在立即自动添加适当的帐号,保持适当数量的可利用的帐号,描述如下

While(ture){

If(数据库中的可申请的帐号数量小于某个值){

向数据库中添加适当数量的帐号,同时向内存中的可申请帐号

hashmap表中添加这些帐号

} Else {

不执行操作

} 线程休眠1小时

}

上一篇:母爱作文作文下一篇:网络攻防课程设计大纲