软件工程课程设计报告

2024-05-20

软件工程课程设计报告(精选6篇)

篇1:软件工程课程设计报告

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

详细设计说明书

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小时

}

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

篇2:软件工程课程设计报告

海天一色网上书店

《软件工程》课程设计个人报告

题 目 网上书店

学 院 名

称 :信息科学与工程学院 专 业 班

级 :计算机09-2 班

报 告 人姓名 :

梁宏

报 告 人学号 : 200901051413

承 担 角

色 : 网页设计员

同 组 组

长 :

安文龙

同组其他成员 : 李金闪、吕颖、孙娜

指 导 教 师 : 孙红梅

完成起止日期:2011-10-17至2011-12-20 软件工程课程设计报告

海天一色网上书店

一、课程设计实验概述

1.目的与任务

1)通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,为适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识创造实践机会,为学生提供主动学习、积极探索与大胆创新的机会。

2)学习研究课程设计指导书,进行分组并且明确每个人在开发小组中扮演的角色及承担的职责,确定目标、初步方案,准备、试用开发环境与工具,以及学习与搜集素材,借阅、购置必要的书籍与材料,做好小组与个人的开发记录、总结,做好小组内外的交流与互助。

2.开发环境

本项目采用客户机/服务器原理,客户端和用户端的程序是建立在Windows XP/Win7 系统上。

3.参考资料

1)《软件工程》钱乐秋、赵文耕、齐治昌 等清华大学出版社郑人杰等 2)覃剑锋 张钢编著,ASP网站建设专家,机械工业出版社,2001 3)武延军 赵彬编著,精通ASP网络编程,人民邮电出版社,2000 4)李赫雄等,SQL SERVER 2000应用程序开发,邮电出版社,2001 5)刘育楠著,动态网页设计培训教程,清华大学出版社,2001 4.任务完成的一般过程

学习课程设计指导书—>分组并明确角色—>对项目进行分析确定目标、初步确定方案,选择开发环境及工具—>进行课程设计—>进行总结

5.软件配置

以Microsoft Visual Studio 2008为开发软件的应用程序,是采用SQL Server Management Studio Express的为开发软件的数据库服务程序。

6.个人完成的程序模块和文档清单 参与各个文档的讨论及修改母版、首页的设计,网页整体设计,角色划分及 软件工程课程设计报告

海天一色网上书店 权限的设计,参与小组课程设计报告的完成。

二、本小组个人承担部分的主题、构思与创意 1.小组选题特色:

小组内承担着网页设计员的职责。首先我们网站主要提供的基本服务项目有:用户的注册,登录;用户的分级浏览或图书选购;店主对进书、售书、库存、帐目、客户的管理;以及网站的日常维护(比如,网上书店简介;网上书店信息发布;客户留言及对客户留言的反馈)。这些都是需要大量网页来呈现的,网站的前台就是我们程序的脸面,因为它是我们程序唯一能与执行者关联的模块,所以我认为网站的设计员同样也是一个软件开发团队里不可缺少的一部分。

经过我们小组讨论,网页首先用的动态的,所以这就要求我作为网站设计员必须熟练的运用ASP和C#的一部分内容,尽我最大的能力把网也弄的符合人们现在的观赏能力,让我们的用户能喜欢而不是讨厌我们的网站,让用户能在使用我们网站的时候有个愉快的购物体验,让他们能记住我们的网站。

2. 个人贡献:

本人承担的角色是网页设计员,参与各个文档的讨论及修改母版、首页的设计,网页整体设计,角色划分及权限的设计,参与小组课程设计报告的完成。软件工程课程设计报告

海天一色网上书店

三、本人实现项目的过程与步骤以及遇到的困难

1、因为以前没有做过这个大规模的程序,也没有动态网页设计的经验,好在以前自己为了满足自己的好奇心做过静态的网页,对html网页语言和Dreamweaver,photoshop软件的使用都有一定的了解,但是这些知识的积累还不足以满足我们这次项目的要求,所以我是边学习边应用。

首先在网上了解了网页设计的基本步骤:

一、用“原型法”细化网站设计需求

二、网页链接的深度、广度和耦合程度

三、网页基本布局

四、网页空间中的视觉导向

五、网页空间的秩序及运动趋势

六、网页中的留白

七、文字信息的设计和编排

八、图片和动画

九、网页空间中的运动趋势线

十、使用Web标准设计网页

因为我的主要角色是网页设计,所以要把我的网页框架思路介绍给同组中负责编码的成员,因此,为了实现网页设计,我还参与了网页模板的设计。

母版的设计要综合考虑各方面的因素,不能过于简单,因为过于简单不能体现母版的使用价值,也不能过于复杂,因为过于复杂会影响其他页板页的设计,使其影响面板设计的灵活性,有的页面因为特殊的需要甚至不用继承模板页。

2、首页的设计要注重对整个网站的引导作用,网页版面设计要力求简单但是有特色,具有良好的网络购书界面,读者可以通过分类查找方式选择自己所需购买的图书。一个网站,能否吸引顾客的经常光顾,界面的美观也显得非常重要。本书店系统通过精心打造,让书店的设计充分体现软件的时尚、大众化。

1)首页中拥有显示进入各个模块的导航按钮,用户可以直接点击进入相应的模块。

海天一色网上书店首页如下图所示: 软件工程课程设计报告

海天一色网上书店

2)要在本网上书店进行购书,首先要注册为网站会员,填写详细个人信息。通过会员注册提取用户基本信息。注册内容包括登录名,密码,真实姓名,E—ail等信息。

会员注册页面如下:

3)为了便于对网上书店进行管理,以及从网站的安全性考虑,我们将科大书店首页与后台管理系统进行了分离,以防不法分子进行攻击。海天一色书店的内部管理系统的界面: 软件工程课程设计报告

海天一色网上书店

对于有关图片编辑的地方,因为对于Photoshop掌握的并不好,所以选取了另一款简易的软件:ACDSee,具有多照片叠加等功能,更有50余种照片特效,数秒即可制作出影楼级的专业照片。因此相对于Photoshop来说,ACDSee更加容易上手。

3、网站设计过程中遇到的大问题不多但小问题还真得挺多的,光是网页设计就费了很长时间,起初为了接触网页,翻阅了很多资料,最终确定的方就是边查资料边学习。

网页页面的设计中最主要的就是页面风格的设计,为了使客户在登陆网站之后又一个舒适的页面,单纯的依靠自己的喜好设计页面鲜艳不合乎情理,为此,我专门登陆了一项大型公司的网站做了相应的比较和分析,例如,东软和华维的网站,他们的首页想对于一些娱乐网站来说都是比较简单,给我一种简单的舒适的感觉。结合我们网站的特点,经过和其他组员的商定最终确定了现在的网页格式。

四、实验个人小结

因为以前没有做过这个大规模的程序,也没有动态网页设计的经验,好在以前自己为了满足自己的好奇心做过静态的网页,对html网页语言和Dreamweaver,photoshop软件的使用都有一定的了解,但是这些知识的积累还不足以满足我们这次项目的要求,所以我是边学习边应用。由于自己一开始的不自信,觉着这样的任务也许自己并不能很好的完成,也许会拖累自己组的人。但是当我做完整个项目回过头看时,才发现自己一开始的想法是错误的,其实并没 软件工程课程设计报告

海天一色网上书店 有自己想象的那么困难。

通过此次课程设计,使我更加扎实的掌握了有关软件工程方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

篇3:软件工程课程设计教学模式探讨

软件工程是计算机科学、信息技术、软件工程等专业的教学计划中一门重要专业必修课[1], 而软件工程课程设计是针对软件工程这门课程展开的一项理论与实践相结合的重要教学活动;它不同于毕业设计, 更不同于简单的实验过程。它是软件工程教学的一个重要实践环节, 为学生综合能力的运用、技术思维的形成、创造能力的培养搭建了一个平台, 使学生除了掌握软件工程理论和方法外, 还能够综合运用已学过的程序设计、数据结构、计算机网络、管理学和经济学等课程的技能、工具解决与其相关的理论或实际问题。

在软件工程课程设计中, 很多本学科的学者与施教者总结了不错的经验, 比如“激励机制”[2]、面向对象的自主实验教学[3]、课程相关体系研究[4]及相关的案例法教学实践设计[5]等, 这些方法各有所长。我取其所长, 结合亲身教学实践, 从课程设计的目标要求, 设计内容, 设计的具体实施, 学生成绩评价体系等方面, 对软件工程课程设计教学模式作了系统的探讨。

二、软件工程课程设计的教学现状

长期以来, 很多高校培养的学生存在着“什么都学过, 却什么都不会”的尴尬局面, 专业教育、教材与实际应用需求严重脱节[6]。传统的软件工程课程设计虽然也有设计的要求, 但一般只是停留在组织学生编写软件项目若干设计文档这个单一环节上, 忽略了对教学方法和内容的更新。目前, 大多数院校软件工程课程设计课程教学中普遍存在的问题有以下几点。

1.课程设计目标不够明确, 实验和设计不加区别。把软件工程实验和设计的要求同等对待, 从而使设计内容偏少, 验证性实验内容和方法偏多, 实验过程变成了重复的复制和操作的过程, 实验教学效果不理想, 达不到培养学生独立思考和创新能力的目的。

2.课程设计内容比较陈旧, 不能与时俱进。很多从事软件工程课程设计教学的教师本身缺乏项目开发的实战经验, 对课程设计的内容往往从一些参考书籍的实例中拿过来让学生去做, 有的甚至多年不更新设计内容, 这样很容易给学生抄袭的机会, 达不到课程设计的要求;同时, 很多学生对设计的内容也不一定感兴趣, 因此也容易扼杀学生的积极性和创新能力。

3.在项目组划分确定方面, 缺乏对学生专业基础, 性格和技能的分析与匹配, 导致没有凝聚整组成员的合作精神和团队的开发能力。组长的核心作用很重要, 但在具体的设计中, 一般就是简单的按学号自然的分化, 或者学生的自由组合分组, 前者失去了团队能力的柔化组合与应用, 后者导致少数技能较差的学生不能分到组中去而处于孤军作战的局面。

4.教师制定课程设计的指导要求目的不明确、不详细, 监管力度不到位, 导致项目开发团队在执行的过程中出现安排任务不合理, 出现某些成员任务过重或者过轻的情况。

5.学生成绩的评分结果过于单一, 评价体系不够科学合理。对学生的设计成绩的评价往往是指导老师根据学生提交的报告和设计结果来评分, 这样容易忽略对学生综合能力 (包括学生的口头表达能力, 组织能力, 团队协调能力等各方面) 的评价。

因此, 为了培养高素质的综合型软件人才, 高等学校探索良好的软件工程课程设计教学模式就显得十分必要。

三、软件工程课程设计教学模式的探讨

针对当前多数院校软件工程课程设计课程教学中普遍存在的一些问题, 我根据多年的教学经验, 对该课程的教学模式作了如下探讨。

1. 指导老师根据软件工程教学的特点, 制定出软件工程课程设计的目标与通过该课程设计后可取得预期的收获。下面是我对软件工程课程设计制定的目标和可能的预期收获。

(1) 通过本课程设计的实践及其前后的准备与总结, 复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识, 比如, 软件项目的完整设计与开发过程、结构化技术、快速原型法和面向对象方法, 等等。

(2) 为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识 (例如, 软件工程、程序设计语言、操作系统、数据库、网络编程等) 创造实践机会。为学生提供主动学习 (比如, 对Web网页设计、ASP.NET或ASP交互网页技术、Java开发环境、网站构架如Struts, Hibernate, Spring, 商用数据库应用、电子商务、客户机/服务器技术、Visio与Rational Rose, Sybase powerdesigner软件工具等内容的学习) 、积极探索与大胆创新的机会。

(3) 使学生通过参加小组团队的开发实践, 了解项目管理、团队协作、与客户交流、文档编写、口头与书面表达的重要性。

(4) 使每个学生了解软件工具与环境对于项目开发的重要性, 并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术、技能。

(5) 通过“稍大的”富有挑战性的软件设计项目开发实践, 提高学生的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力, 提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。

2. 课程设计内容选择应该具有科学性和与时俱进性。课程设计内容选择十分重要, 既要体现时代性, 又要体现科学性和难度的适当性, 因此要求指导老师对当前软件开发领域的整个动态有总体掌握。下面是我对当前软件开发领域进行的大致归类。

(1) 网站开发类:包括休闲娱乐 (音乐, 影视, 聊天, 休闲运动, 旅游景点等) 网站;工商经济网站 (摄影, 日用家居, 玩具等) ;文学网站 (诗词/韵文, 港台文学, 民间文学, 科幻文学等) ;体育与健身网站 (极限运动, 球类, 健美/健身, 运动常识, 网球, 乒乓球等) ;卫生与健康网站 (医学理论, 医疗器械, 保健/养生, 论坛等) ;国家地区网站 (北京, 上海, 广东, 江苏, 天津等) ;教育培训网站 (小学/中学教育, 职业教育, 高等教育, 教育软件, 培训机构等) ;其他等类型网站。

(2) 应用软件类:如信息管理系统, 汉字输入, 转换翻译, 文字处理, 压缩解压, 电子阅读, 文档管理, 字体工具, 数据恢复等。

(3) 系统软件类:如系统管理, 内存管理, 文件管理, 系统测试工具等。

(4) 游戏娱乐类:如网络游戏, Flash游戏, 牌和棋游戏等。

(5) 其他:如安全病毒, 桌面工具等。

这样, 课程设计的内容可以根据学生的兴趣和爱好从以上几方面进行选择, 也可以由学生自己选择设计内容, 指导老师把握学生选择的项目难易程度, 同时提出所要达到的要求 (包括完成日期, 演示时间, 学生所要提交的成果, 文档资料, 等等) 。

3. 课程设计项目具体实施

(1) 确定开发团队。指导老师在班长和学习委员的协助下充分了解学生的兴趣、爱好、基本技能和未来学生的就业意向, 学生在教师的指导下, 有选择性地进行分组, 一般3至5人为一组, 并选定好组长。

(2) 确定开发项目。指导老师给小组成员分配好开发任务, 组长写好开发计划进程安排并提交指导老师检查以便及时修进。

(3) 中期检查与指导。指导老师根据各个团队提交的开发计划, 对各团队开发项目进程定期进行中期检查, 检查各团队的项目进展情况, 包括各个小组的开会记录, 所查阅的资料, 当前所遇到的困难, 协助与指导小组面对困难所要采取的解决方法等。

(4) 成果提交与演示。课程设计结束时指导老师要求按时提交项目的相关成果, 并组织小组团队进行演示与简短的答辩。演示过程要求学生用5—10分钟时间叙述设计原理、过程、系统运行的情况和体会, 叙述完毕后由指导老师或其他小组成员提问, 指导老师和小组成员记录该学生演示情况和回答问题的情况, 并以此作为下一阶段评定该学生成绩的一部分。

4.建立合理, 科学公正的评价体系。为了对每个开发团队中的成员成绩有个公正、公平和合理的成绩, 因此必须建立合理、科学、公正的评价体系, 本文建立的评价体系包括:学生提交成果, 学生演示与答辩, 学生自评与互评, 教师评分。学生提交成果根据表1学生所承担的角色来交付;学生演示与答辩重点体现对系统的原理、过程、结论, 以及开发体会进行表述;学生自评和互评体现了学生的自我认同和互相认同感;最后是教师的评分, 教师的评定从以下几方面全面考虑: (1) 学习态度是否端正, 总体表现; (2) 项目组织是否有条理, 协作程度; (3) 软件系统文档资料表达格式是否规范、符合要求, 表达是否准确、完整、简单明了; (4) 系统结构是否合理, 功能是否正确, 人机界面是否友好;除了符合上列基本要求具体评定可以参见下表1。最后学生的总评定成绩为:0.4×教师评定分+0.2×学生互评分+0.2×学生演示与答辩评分+0.2×学生自评分。

四、结语

软件工程课程设计是一门理论与实践相结合的应用性很强课程, 我结合自身从事软件开发的经验和多年的教学, 从以上几个方面探索了该课程的教学模式, 在实践工作中虽然取得了一定的成效, 获得了学生的认可与好评, 但仍处于尝试和探索阶段。在实际指导过程中还存在不少问题, 例如:个别学生的积极主动性不够, 存在抄袭设计成果现象, 等等。这些都需要继续努力, 尤其是随着软件产业的飞速发展, 如何培养高素质软件人才, 对教师来说更是一种挑战。因此, 教师应不断学习新的知识, 提升自身的能力, 把握学科的最新发展动态, 探索新的教学模式, 深化实践教学改革, 为我国教育事业作出更大的贡献。

参考文献

[1]张海藩.软件工程导论 (第5版) [M].北京:清华大学出版社, 2008:55-73.

[2]张引, 杨小虎, 陈越.“软件工程”课程实践中激励机制的探索[J].计算机教育, 2007, (5) :30-32.

[3]江颉, 石晓耀.面向对象的软件工程自主实验教学改革[J].实验技术与管理, 2007, 24 (7) :112-114.

[4]王薇.软件工程课程体系研究[J].计算机教育, 2007, (8) :31-32.

[5]巫华芳.软件工程教学案例设计初探[J].教育与职业, 2007, (11) :139-140.

篇4:软件工程课程设计实践教学探索

【关键词】实践教学 课程设计 科技竞赛

【中图分类号】G642 【文献标识码】A 【文章编号】2095-3089(2014)02-0243-02

一、软件工程课程实践教学现实情况

长期以来,由于软件工程课程偏重于方法学理论的讲授,其中心是软件生命周期的工程技术方法。然而这些技术和方法,对于缺乏工程开发经验和管理知识的在校学生来说非常难以理解。在实践教学中学生感觉软件工程理论对软件开发的帮助作用不大[1]!尽管实践教学对学生有严格的要求,但是他们往往为了能完成任务的考核,只能按照要求粗略地完成或者收集现成的文档来充数,而未能通过实践对所学的知识进行理解与消化。此外,靠死记硬背的知识、概念常常未能得到有效理解,从而难以转化为软件工程技能。多年来,各个学校在不断地探索和改进其实践教学方法,当前也有些对传统实践教学改进的方法并且取得了一些效果[2][3]。经过对这些方法的分析,可知其大致可分为两类:一类是直接套用软件工业界的要求,但学生缺乏技能和实践条件对任务根本无法完成,只能敷衍了事,达不到对软件工程知识理解和应用的目的;而另一类则是要求不明确且缺乏规范,因要求过于简单而无法达到增强对软件工程理论应用的目的。

鉴于这样的情况,学校迫切需要对软件工程实践教学加以改革,逐步建立实践与理论紧密结合的教学方法,着力培养学生的工程化开发能力,进而形成一个融基础理论、实践教学和参加软件科技竞赛的一种培养机制。因此,使课程设计成为对课堂教学的有效补充是实践教学改革的一个重要任务[4]。

二、“课程设计与科技竞赛”相结合的实践教学方法

课程设计与科技竞赛相结合就是要打破传统实践教学法的不足,充分调动学生学习的积极性和主动性,极大地激发学生的学习兴趣,以实践教学活动带动软件工程理论的学习。这样实践教学就能改变成为对理论知识的巩固应用和对工程实践能力培养的主动学习方式,从而使教学出现可喜的变化。它能把教师要求转变为以学生自主要求,把常规工程文档写作转变为以任务为驱动的分析、设计和实现的学习。

该实践教学是在教师的指导下由学生实施的一个较为完整的“项目”而进行的实践教学活动。参照科技竞赛题目的特点,并依据软件工程理论、方法的特点,制定了本课程设计的知识要求结构如图1所示。在软件工程理论知识的基础上,挑选某种易于扩展、应用的工程技术方法,在软件工程规范文档的要求下进行课程设计。从而使其按需求分析、总体设计、详细设计、实现和测试的流程来开发软件。这样,经过课程设计较为完整的项目训练,能有助于对学生工程技能的培养和对工程理论的理解,最终使学生在有限的时间内,对软件工程的核心理念有较好的把握。它能帮助学生有效地参与各级软件类科技竞赛,提高自己就业时的信心和社会竞争力,使其毕业后能够顺利过渡到实际的软件应用开发中,并在实践中对软件工程理论加以检验和完善并逐步锻炼成为社会急需的各类软件人才。

课程设计与科技竞赛相结合的教学方法是以学生为主体,教师为辅助,在课程设计实践中加深对软件工程理论的理解,培养学生在工程实践中发现知识与分析、解决问题的能力。要达到这样的实践教学目的,软件工程课程设计要做到以下的要求。首先,关于课程设计与科技竞赛相结合的教学内容的设计上,要以学生兴趣为中心自由选择题目。针对实践教学要求,学生选择合适的题目是保证该实践教学顺利开展的关键。因此,题目要以理论教学内容为依据,同时要考虑学生的知识结构特点和实践教学的要求。此外,题目要注重以解决身边的软件需求为背景,充分使其既包含教学知识点,又能激发学生软件开发的兴趣,达到培养学生软件工程能力的目的。其次,实践指导老师要提供合适的示范案例,并不断地引导学生向正确的方向前进。由此,在课程设计的准备阶段需要对为完成设计所需的基本知识进行明确且扼要地讲透。这样学生在遇到困难时,才知道行进的方向而不至于迷茫和不知所措!在课程设计中,要使学生明确课程设计的要求,并尽快地掌握工程的基本方法和使用工具的基本技能。同时,应尽量使学生独立地解决设计中所遇到的问题,而教师则需要对学生进行全程的指导和监督。再次,应确定合适评价标准,客观考核学生的学习效果。主要方法是以学生完成课程设计的情况来评价学生的学习效果,要求各课程组定时汇报开展的进度和情况,并及时地对各阶段性成果进行评价。

三、课程设计的教学实施

根据实践教学的具体要求,对课程设计与科技竞赛相结合的教学方法开展了研究,并总结出该方法的大致流程如图2所示。其基本指导思想是以案例示范为核心,不断地引导学生对其选定的课程设计进行改进,使其能满足掌握需求分析、软件设计与实现以及测试的基本技能,并把不断改进贯穿到整个设计中。由此,课程设计应从课程设计准备,精选小项目案例文档示范,课程设计题目的选定,课程项目的设计与改进,教师和学生一起对设计结果的评价与改进进行精心地组织。因此,准备阶段就是对训练内容所涉及的工程知识进行精炼概括与总结,使学生知道如何去应用这些知识。此外,示范的项目案例要进行精心的选择,使其能够覆盖课程设计实践教学要求,又要精干有效,易于参照与模仿学习,切忌过于庞杂。教师应把课程设计准备知识与项目案例进行参照讲解,让学生彻底了解训练的要求。在题目的选择上,可以适当地提供一些精选的小应用软件题目,让学生参照选择或根据生活经验自拟题目。并在项目设计中进行全程的监督和引导,并随时指出其设计和参照示范项目和实践要求的差距。对各阶段结果,应组织一些志愿学生和做得好的学生对各阶段结果进行评价并给出改进建议。如此不断地迭代改进,能够使学生较好地掌握软件工程的基本技能,并巩固对应的软件工程理论知识,从而取得举一反三的示范效果。这样就能够使学生理解并掌握一些基本的需求获取与分析、系统分析与设计等软件生命周期的技能,并学会软件工程规范文档的编写与应用。

在与科技竞赛相结合的问题上,可根据学院、学校和省市以及全国举办的一些科技竞赛题目来进行课程设计。通过小组成员的共同努力,把课程设计完成的作品,加以整理、改进并完善作为参赛作品,这样参赛作品往往在各类软件竞赛中具有较强的竞争力。而且,获奖对于学生在就业市场上信心的形成具有巨大的影响力,而且对于他们今后走向社会,对自己的发展定位有着较好促进和帮助作用!

篇5:材料工程课程设计报告

模具服役条件及失效分析………………………………………………2

选材及材料介绍…………………………………………………………3

零件加工及热处理 ……………………………………………………4

分析讨论…………………………………………………………………8

课程设计心得体会……………………………………………………13

参考文献………………………………………………………………14

选材及材料介绍

为了满足要求也就是说要求硬度,强度和韧性都较好,减少以上失效的发生,延长模具寿命,减低生产成本经综合考虑选用Cr12MoV作为加工该模具的材料。

其化学成份为:碳C:1.45~1.70、硅Si:≤0.40、锰Mn:≤0.40、硫S:≤0.030、磷P:≤0.03、铬Cr:11.00~12.50、镍Ni:允许残余含量≤0.25、铜Cu:允许残余含量≤0.30、钒V:0.15~0.30、钼Mo:0.40~0.60

其力学性能为:硬度:退火,255~207HB,压痕直径3.8~4.2mm;淬火,≥58HRC。Cr12MoV 钢是目前国内广泛使用的冷作模具钢之一也是国际上较广泛采用的模具钢,属莱氏体钢。Cr12MoV钢是一种高碳、高铬的莱氏体钢,具有大量的游离碳化物。在退火状态其碳化物可多达28%,在淬火、回火状态其游离碳化物也多达21%。钢中的Cr大部分形成碳化物,只有极少部分固溶于基体中。

Cr12MoV钢中碳化物为M7C3型碳化物,维氏硬度为2100HV,因此其耐磨性较好。冲压性能高,淬透性好。在实际使用该钢制造的冷冲模,如果冲压操作正确,韧性不成为模具的关键,而耐磨性直接决定模具的寿命。

Cr12MoV 钢属于高耐磨微变形冷作模具钢,其特点是具有高的耐磨性、淬透性、微变形、高热稳定性、高抗弯强度,仅次于高速钢,是冷冲裁模、冷镦模等冷作模具的重要材料,由于加入了适量的Mo和V,碳化物不均匀有所改善。Mo能减轻碳化物偏析并提高淬透性,V能细化晶粒。Cr12MoV在300~400℃时仍可保持良好硬度和耐磨性,韧性也高,淬火时体积变化最小。可用来制造形状复杂、经受较大冲击负荷的各种模具和工具。其消耗量在冷作模具钢中居于首位.该钢虽然强度、硬度高,耐磨性好,但其韧性较差,对热加工工艺和热处理工艺要求较高,处理工艺不当,很容易造成模具的过早失效。常用于制作那些承受重负荷、生产批量大、形状复杂的冷作模具, 如冷冲、压印、冷镦、冷挤压模、冲孔凹模、切边模、滚边模、钢板等。但该钢的显著缺点是脆性大, 常常导致模具的早期失效。模具失效分析表明, 热处理因素影响最大, 约占 50%。因此, 如何提高其强韧性, 防止模具过早断裂失效, 是该钢用户经常遇到且需要解决的问题。

经分析该钢种经合理的热处理后可完全满足模具要求,故选用其作为加工该模具的材料。

零件加工及热处理

通过查看模具生产的技术资料知,该模具的加工工艺路线为:下料→锻造→球化退火→机械加工→淬火+ 低温回火→平磨→线切割加工→成型组装。

锻造:

由于Cr12MoV这类材料属于高碳高合金钢,在轧制过程中会产生严重的C偏析,即所谓的网状渗碳体。大家知道,渗碳体硬度高而脆,没有韧性。以前对此类材料的C偏析有严格的级别控制。由于材料存在网状渗碳体,造成在以后的热处理中,会沿着渗碳体网状开裂。因此,材料在制作模具之前必须进行反复的锻打(不只是简单的改变形状),以使网状渗碳体打碎,改善材料性能。

Cr12MoV钢锻造加热曲线

球化退火:

球化退火,以细化组织,减少淬火变形和防止淬火开裂!

Cr12MoV 属于高碳高铬莱氏体钢。碳化物含量高, 且常呈带状或网状不均匀分布, 其形状、大小及分布对钢的性能影响很大, 尤其大块状尖角碳化物对钢基体的割裂作用较大, 往往成为疲劳断裂的策源地。经过改锻, 碳化物被击碎, 偏析状况得到有效改善, 但其形态还不理想, 且锻后硬度也偏高。因此Cr 12MoV 钢锻后常采用球化退火作为预备热处理, 以获得均匀、细小的球形碳化物, 降低硬度, 改善切削加工性能, 同时为后续淬火做好组织准备,让奥氏体回复和开始再结晶。Cr12MoV钢形成网状碳化物,而且在最终的淬火、回火过程中仍能保持,这将使其脆性增加而不能使用。球化退火后的组织为索氏

良好的硬度,防止变形。真空炉加热可防止工件的氧化和脱碳现象,产品不易腐蚀,加工时可有较小的留量。Cr12MoV 钢淬火温度为1000~1040 ℃,高的温度一方面促进了较小碳化物的完全溶解, 另一方面也促进了大块碳化物尖角的局部溶解;而且, 溶入基体的碳化物在随后高温回火过程中再度均匀弥散析出, 使碳化物的形态、大小及分布得到改善, 有利于提高模具的强韧性。性能上σbb提高20%,αk 值提高15%。用此工艺处理的Cr12MoV钢模,模刃口件总寿命达较长,寿命提高5倍。失效后取样金相检查, 碳化物不均匀度为 1 级。

回火:

在高硬度的前提下,欲提高抗弯强度和冲击韧性,应采用180-220℃之间回火温度,即图中阴影部分。中淬火温度淬火后可以在180-200℃低温回火,低温回火只用在低温淬火后,可以获得最高的硬度和最佳的耐磨性,韧性也较合适。降低淬火钢的脆性,减少或消除内应力、防止模具变形和开裂。使不稳定的组织趋于稳定,以稳定模具的形状尺寸精度。获得所要求的组织和性能。

Crl2MoV钢回火目的是充分消除热处理的残留应力。调整组织和硬度。淬火后形成的马氏体属于高碳富铬的过饱和间隙固溶体,处于不稳定状态,回火时分解,析出碳化物,转变为回火马氏体,使材料基体组织硬度降低。残留奥氏体在回火过程中会分解,析出显微碳化物,在一定程度上弥补了马氏体回火转变造成的硬度降低。淬火后钢的硬度会随回火温度的变化呈现先降低后增加的趋势。回火温度过高时,残留奥氏体中析出的碳化物粗化,失去强化作用。导致硬度下降。

淬火后试样在不同温度下回火时,冲击韧度呈先降低后升高的趋势,这主要受残留奥氏体分解的影响。回火过程中,随温度的升高,基体中残留奥氏体量逐渐减少,析出碳化物增多,导致材料的冲击韧度降低。但回火温度过高时,组织中的碳化物有粗化、聚集的趋势。冲击韧度开始回升。

Crl2MoV钢的回火一般分低温回火与高温回火。低温回火一般是170~180℃×2h,硬度可达60--62HRC。如果在热处理过程中回火不足,材料中的残留奥氏体量较多,残留奥氏体很软,组织不稳定,当模具承受摩擦、挤压变形和冲击时瞵I达一定条件会使残留奥氏体转变为极脆马氏体,导致材料的组织应力增加,使材料脆性断裂的倾向明显增大。

如果要求热处理时模具变形较小,可在回火过程中靠改变回火温度来控制模具的尺寸。回火温度的确定要根据淬火后残留奥氏体的量来决定。

分析讨论

Cr12MoV再经过上述热处理工艺时可能存在以下问题,经查阅资料分析讨论得出以下处理办法:

一、热处理变形失效

模具经过加工制作成后,为了增加其硬度及延长其使用寿命,往往采取热处理。但钢材经热处理后会膨胀变形,不仅给模具生产企业带来经济损失,而且最主要的是耽误了客户的工期,造成了不好的影响。

模具在热处理时,特别是在淬火过程中,由于模具截面各部分加热和冷却速度的不一致而引起温度差,加之组织转变的不等时性等原因,使得模具截面各部分体积胀缩不均匀,组织转变的不均匀,从而引起“组织应力”和模具内外温差所引起的热应力。当其内应力超过模具的屈服极限时,就会引起模具的变形。

1、模具材料的影响

一般来说Cr12MoV钢是微变形钢,不应该出现较大变形。我们对变形严重的模具进行金相分析发现,模具钢中含有大量共晶碳化物,且呈带状和块状分布。(1)模具椭圆(变形)产生的原因

这是因为模具钢中呈一定方向分布的不均匀碳化物的存在,碳化物的膨胀系数比钢的基体组织小30%左右,加热时它阻止模具内孔膨胀,冷却时又阻止模具内孔收缩,使模具内孔发生不均匀的变形,使模具的圆孔出现椭圆。(2)预防措施

①在制造精密复杂模具时,要尽量选择碳化物偏析较小的模具钢,不要图便宜,选用小钢厂生产的材质较差钢材。②对存在碳化物严重偏析的模具钢要进行合理锻造,来打碎碳化物晶块,降低碳化物不均匀分布的等级,消除性能的各向异性。③对锻后的模具钢要进行调质热处理,使之获得碳化物分布均匀、细小和弥散的索氏体组织、从而减少精密复杂模具热处理后的变形。④对于尺寸较大或无法锻造的模具,可采用固溶双细化处理,使碳化物细化、分布均匀,棱角圆整化,可达到减少模具热处理变形的目的。

2、模具结构设计的影响

当模具选材和钢的材质都很好,往往因为模具结构设计不合理,如薄边、尖角、沟槽、突变的台阶、厚薄悬殊等,造成模具热处理后变形较大。(1)变形的原因

由于模具各处厚薄不均或存在尖锐圆角,因此在淬火时引起模具各部位之间的热应力和组织应力的不同,导致各部位体积膨胀的不同,使模具淬火后产生变形。(2)预防措施

设计模具时,在满足实际生产需要的情况下,应尽量减少模具厚薄悬殊,结构不对称,在模具的厚薄交界处,尽可能采用平滑过渡等结构设计。根据模具的变形规律,预留加工余量,在淬火后不致于因为模具变形而使模具报废。对形状特别复杂且无法改变的的模具,为使淬火时冷却均匀,可采用给合结构进行淬火。

3、模具制造工序及残余应力的影响

一些形状复杂、精度要求高的模具,在热处理后变形较大,经认真调查后发现,模具在机械加工和最后热处理未进行任何预先热处理。(1)变形原因

在机械加工过程中的残余应力和淬火后的应力叠加,增大了模具热处理后的变形。(2)预防措施

①粗加工后、半精加工前应进行一次去应力退火,即(630-680)℃×(3-4)h炉冷至500℃以下出炉空冷,也可采用400℃×(2-3)h去应力处理。

②降低淬火温度,减少淬火后的残余应力。③采用淬油170℃出油空冷(分级淬火)。④采用等温淬火工艺可减少淬火残余应力。

经过以上措施可使模具淬火后残余应力减少,模具变形较小。

4、热处理加热速度的影响

模具热处理后的变形一般都认为是冷却造成的,这是不正确的。模具特别是复杂模具,加工工艺的正确与否对模具的变形往往产生较大的影响,对一些模具加热工艺的对比可明显看出,加热速度较快,往往产生较大的变形。(1)变形原因

任何金属加热时都要膨胀,由于钢在加热时,同一个模具内,各部分的温度不均(即加热的不均匀)就必然会造成模具内各部分的膨胀的不一致性,从而形成因加热不均的内应力。在钢的相变点以下温度,不均匀的加热主要产生热应力,超过相变温度加热不均匀,还会产生组织转变的不等时性,既产生组织应力。因此加热速度越快,模具表面与心部的温度差别越大,应力也越大,模具热处理后产生的变形也越大。(2)预防措施

对复杂模具在相变点以下加热时应缓慢加热,一般来说,模具真空热处理变形要比盐浴炉加热淬火小得多。采用预热,对于低合金钢模具可采用一次预热(550-620℃);对于高合金刚模具应采用二次预热(550-620℃和800-850℃)。

5、热处理加热温度的影响

为了保证模具达到较高硬度,认为需提高淬火加热温度。但是生产实践表明,这种做法是不恰当的,对于复杂模具,同样是采用正常的加热温度下进行加热淬火,在允许的上限温度加热后的热处理变形要比在允许的下限温度加热的热处理变形大得多。(1)变形原因

众所周知,淬火加热温度越高,钢的晶粒越趋长大,由于较大晶粒能使淬透性增加,则使淬火冷却时产生的应力越大。再之,由于复杂模具大多由中高合金钢制造,如果淬火温度高,则因Ms点低,组织中残留奥氏体量增多,加大模具热处理后变形。(2)预防措施

在保证模具的技术条件的情况下合理选择加热温度,尽量选用下限淬火加热温度,以减少冷却时的应力,从而减少复杂的热处理变形。

6、残留奥氏体的影响

Cr12MoV钢模具在淬火和低温回火后,模具的长、宽、高皆发生缩小现象,这是因为模具淬火后残留奥氏体量过多而引起的。(1)变形原因

因合金钢Cr12MoV淬火后含有大量残留奥氏体,钢中各种组织有不同的比体积,奥氏体的比体积最小,这是高合金钢模具淬火低温回火后体积发生缩小的主要原因。钢的各种组织的比体积按下列顺序递减:马氏体-回火索氏体-珠光体-奥氏体(2)预防措施

①适当降低淬火温度。正如前面叙述过的淬火加热温度越高,残留奥氏体量越大,因此选择适当的淬火加热温度是减少模具缩小的重要措施。一般在保证模具技术要求的情况下,要考虑模具的综合性能,适当降低模具的淬火加热温度。

②一些数据表明,Cr12MoV钢模具淬火后,500℃回火较200℃回火的残留奥氏体量少了一半,所以在保证模具技术要求的前提下,应适当提高回火温度。生产实践表明:Cr12MoV钢模具500℃回火模具变形量最小,而硬度降低不多(2~3HRC)。

③模具淬火后采取冷处理是减少残留奥氏体量的最佳工艺,也是减少模具变形、稳定使用时发生尺寸变化的最佳措施,因此精密复杂模具一般应采用深冷处理。

0

由于奥氏体晶粒的长大速率除与保温时间有关外,更主要取决于奥氏体化的加热温度。采用亚温加热延长保温时间,其目的是尽可能得到均匀细小的奥氏体晶粒,使合金碳化物在一定时问内大多数溶于奥氏体当中,由于组织转变的遗传性,淬火时得到复合组织的晶粒均比常规加热温度小的多,提高了材料的韧性。采用等温淬火的目的是获得一定数量的下贝氏体组织和随后冷却过程中残余奥氏体继续转变得到马氏体组织。由于Cr12MoV钢含碳量高,得到高碳的下贝氏体组织除具有良好的强度外,其断裂韧度明显高于回火马氏体组织,并且当下贝氏体和马氏体按一定比例组合后,开始形成的下贝氏体起着分割奥氏体晶粒的作用,又使随后形成的马氏体细化,因而降低了脆性转变温度,有利于强度的提高。因此采用亚温加热和等温淬火使模具获得了良好强度和韧性的匹配。(4)增加消除应力的时效工序

滚丝模具牙型在热处理后精磨加工成型,异形冲子在半成品热处理后进行线切割加工成型。滚丝模具在磨削加工中,容易因磨削过热造成磨削应力产生磨削裂纹或增加使用过程中的脆性。异形冲子在线切割加工过程中,表面由于在瞬间高温融化后快速冷却时,又产生了新的淬火组织,其表层应力容易造成在使用过程中产生脆性或在存放过程中产生裂纹,特别是模具尖角部位表现尤为突出。为消除机械或电加工后模具形成的应力和在使用过程中产生脆性的影响,在模具磨削或线切割加工后,增加了低温(160℃~180℃)加热,12~16小时保温的消除应力时效处理。

篇6:软件工程课程设计报告

1.引言

1.1编写目的本操作手册供本系统操作人员参考之用,分别为客户机端使用人员说明本系统操作方法。

1.2项目背景

本项目(飞Q2012系统)由计算机系软件开发小组负责开发。

1.3定义

WINDOWS NT:本系统所采用的操作系统。

SQL SERVER:系统服务器所使用的数据库管理系统(DBMS)。

1.4参考资料

[1]黄凯,陶宏才.即时通讯系统服务器端简要设计[J].成都信息工程学院学报,2006,(4),20-23.[2]马丹.即时通信系统终端的设计与实现[C].电子科技大学,2005.[3] 潭献海等编著.网络编程技术及应用[M].北京:清华大学出版社,2006.12.[4] 郑人杰,殷人昆,陶永雷.实用软件工程(第二版)[M].北京:清华大学出版社,1997.4.[5] 徐国平等编著,JSP网络开发务实,电子工业出版社,2001年9月

2.1目标

本系统分为服务器端和客户机端两个部分,用户为客户机端。客户机和

服务器通过网络进行通信。用户网络把信息(qq号,密码等)传输到

服务器,服务器程序通过对数据库的查询来为用户安排登陆查询等信息

服务,并把结果传输到客户机,客户机就可以使用了。

2.2功能

系统实现了在各个客户机端聊天,文件传输的功能,并在分布式系统的基础上采用了一些实时处理,以达到快速响应。客户机端除了简单的聊

天之外,本系统还可进行查询和检索的功能。服务器端还实现了用户信

息的自动管理和数据库查询,维护功能。

2.3性能

输入数据:

用户输入:

飞Q号码:String

密码:Sring

输出数据:

好友列表:

飞Q号码:String

时间特性:

要求数据传输时间在10秒钟以内,服务器响应时间在10秒以内,总响应时间为0.5分钟。

3.运行环境

3.1硬件

服务器端:Pentium II 450以上,1024M RAM,36G HD

客户机端:支持java se 虚拟机的pc机

系统软件:服务器端:Windows NT Server

客户机端:Windows NT Workstation

数据库管理系统:SQL Server

4.使用说明

4.1安装和初始化

由于使用了安装自动生成工具,安装变的非常简单,只需运行飞Qserver_SQLServer_fat.jar即可根据提示安装服务器端程序或是客户机端程序。

在安装的过程中,系统将自动初始化,为第一次运行作准备。

4.2输入

4.2.1 数据背景

数据的来源参见需求分析说明书和概要设计说明书。

4.2.2 数据格式

用户输入:

飞Q账号String

密码String

4.2.3 输入举例

旅客输入:

飞Q账号1000005

密码1234567

4.3输出

4.3.1 数据背景

数据的来源参见需求分析说明书和概要设计说明书。

4.4出错和恢复

如果输入数据出错,可立即进行取消操作,重新输入。

如果突然断电或系统没有响应,则关机,等系统重新启动时,会根据日志文件自动ROLLBACK到正确的阶段。需要等待一段时间。如果系统繁忙,也要等待一段时间。

5. 程序文件和数据文件一览表

客户机端:飞Q2012.jar

readme.txt

上一篇:正能量心理美文800字下一篇:老师给高考学生的一封信