软件工程实验(四个实验)

软件工程实验(四个实验)
软件工程实验(四个实验)

武汉轻工大学软件工程实验报告

院系:数学和计算机学院

班级:软件工程1504

姓名:赵佳璐

学号:1508100065

实验一结构化分析实验

1实验目的:

通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。

2.实验内容:

假设你在一所职业高中工作,负责该校信息系统的建设和维护。财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。

3.实验要求:

1.问题定义:请在这个阶段描述你需要解决的问题。包括用户面临的问题和预期的项目规模。最后生成一份问题定义报告书。

2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。

3.对此系统进行成本效益分析。

4.实验步骤:

4.1问题定义报告书

1.项目名称:工资支付

2.问题描述:

该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。今后学校规模将进一步扩大,人工计算工资的成本还会进一步提高。

3.项目目标:

1)研究开发费用较低的新工资支付系统的可能性。

4项目规模:

1)开发成本应该不超过7.2万元

5.初步设想:

1)用学校自己的计算机系统生成工资明细表和财务报表

6.可行性研究:

为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。这个研究的成本不超过4000元。

4.2可行性研究:

1.处理工资事务的大致过程:

1)每月月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给

财务科,职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。

2)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细

表和财务报表。然后,把记有每名教职工工资总额的工资表报送银行。3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职

工。

2高层逻辑模型:

3.数据流图:

4.数据字典:

1)

名字:授课情况登记表

别名:

描述:记录每个教师的当月完成的课时及任务。

定义:授课情况登记表=教职工编号+姓名+职务+职称+基本工资+生活补贴+书报费+交通费+洗理费

位置:输出到打印机

2)

名字:教职工编号

别名:

描述:唯一的标识一个教职工

定义:教职工编号=8{字符}8

位置:授课情况登记表

3)

名字:每个人当月的实发工资数

别名:

描述:记录每个教师当月应发的工资数

定义:每个人当月的实发工资数=课时费+岗位津贴-个人所得税-住房公积金-保险费位置:工资明细表

4)

名字:工资明细表

别名:

描述:记录每个教职工每个月应得的和应扣除的费用

定义:工资明细表=每个人当月的实发工资数+课时费+岗位津贴+个人所得税+住房公积金+保险费

位置:输出到打印机

4.3成本效益分析:

1.低成本系统:

解决方案:

把每月发一次工资改为每两个月发一次工资,则人工计算工资的成本大约可减少一半,即每年可节省1.2万元。除了已经进行的可行性研究的费用外,不再需要新的投资。

优缺点:

1)违反常规;

2)教职工反对;

3)不能解决根本问题,随着学校规模扩大,人工处理工资事务的费用也将成比例地增加。

2.中等成本系统:

解决方案:

1)建议基本上复制现有系统的功能:课时表和任务表交到处理工资事务的专用

机房,操作员把这些数据通过终端送入计算机

2)数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。

3)然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印

出工资表、工资明细表和财务报表。

优缺点:

1)效率介于高成本系统与低成本系统之间,开发成本也是如此。

2)仍然需要专门人员来操作管理系统,每年仍要在这方面耗费人力,资力。从长久利益来

看,效益不佳。

3.高成本系统:

1)建立一个中央数据库,为开发完整的管理信息系统做好准备,并且把工资支

付系统作为该系统的第一个子系统。

2)这样做开发成本大约将增加到12万元,然而从工资支付这项应用中获得的

经济效益并不变。

最佳方案:

实验二结构化设计实验

1.实验目的:

能够通过结构化分析的结构进行设计,了解设计过程中的模块化原理。

2.实验内容:

在上一次实验已经用结构化分析方法详细地分析了这个工资支付系统,请从结构化分析所得到的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方法,设计工资支付系统的结构。最终生成一个工资支付软件结构。

3.实验要求:

写出设计过程、画出工资支付软件结构,用层次图表现

4.实验步骤:

4.1设计过程:

1.供选择的方案

1)低成本系统:把每月发一次工资改为每两个月发一次工资,则人工

计算工资的成本大约可减少一半,即每年可节省1.2万元。除了已经进

行的可行性研究的费用外,不再需要新的投资。

2)中成本系统:

i.建议基本上复制现有系统的功能:课时表和任务表交到处理工资事

务的专用机房,操作员把这些数据通过终端送入计算机ii.数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。

iii.然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工资表、工资明细表和财务报表。

3)高成本系统:建立一个中央数据库,为开发完整的管理信息系统做好准

备,并且把工资支付系统作为该系统的第一个子系统。

2.最佳方案

低成本系统存在的问题:

4)违反常规;

5)教职工反对;

6)不能解决根本问题,随着学校规模扩大,人工处理工资事务的费用也将

成比例地增加。

高成本系统:

开发成本大约将增加到12万元,然而从工资支付这项应用中获得的经济效益并不变。

所以,中等成本系统是最佳方案,成本居于高成本与低成本之间,而效益不次于高成本系统。

3.功能分解

1)取数据

a)收集事务数据

b)审核事务数据

2)计算工资

a)计算正常工资

b)计算超额工资

c)更新年度报表

3)打印表格

4.2工资支付软件结构:

实验三软件测试实验(2学时)

一、实验目的:

了解软件测试的基本概念,以及黑盒、白盒测试的基本过程。

二、实验内容:

1.设计测试下列函数的测试方案:

函数Search(somearray,size,value)的功能是,在一个整数数组somearray 中搜索一个值为value的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1。数组的长度由参数size指定。假定数组第一个元素的下标为1。

三、实验要求

1.采用黑盒测试的方法,写出相应的测试用例

2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。

四、实验步骤:

1.采用黑盒测试的方法,写出相应的测试用例(假定数组中的值为:5,

8,-56,235,-65,449)

1)等价划分:

a)有效输入的等价类:

●一个正整数

输入:10

预期的输出:-1

●一个负整数

输入:-56

预期的输出:3

b)无效输入的等价类:

●一个非数字符号

输入:S

输出:错误——无效输入

●一个浮点型数字

输入:23.1

预期的输入:错误——无效的输入

●若干个空格

输入:‘’

预期的输出:错误——无效的输入

●空输入

输入:

预期的输出:错误——没有输入

●数字和非数字符号的组合

输入:5#

预期的输出:错误——无效的输入

●负号与最高位数字之间有空格

输入:- 56

预期的输出:错误——无效的输入

c)合法输入的等价类:

●在计算机能表示的最小负整数和零之间的负整数。

输入:-10000

预期的输出:-1

●零

输入:0

预期的输出:-1

●在零和计算机能表示的最大整数之间的正整数

输入:10000

预期的输出:-1

d)非法输入的等价类:

●比计算机能表示的最大正整数还大的正整数。

输入:132767

预期的输出:错误——无效的输入

●比计算机能表示的最小负整数还小的负整数。

输入:-47561

预期的输出:错误——无效的输入

2)边界值分析:

●使输出刚好等于最小的下标

输入:5

预期的输出:1

●使输出刚好等于最大的下标

输入:449

预期的输出:6

●使输出不是数组的下标(这里为-1)

输入:500

预期的输出:-1

2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。#include

int Search(int somearray[],int size,int value) {

for(int i=1;i<=size;i++)

{

if(sonearray[i]==value)

return i;

}

return -1;

}

void main()

{

int size=6;

int value;

int array[size]={5,8,-56,235,-65,449};

do{

printf(“请输入一个整数:”);

scanf(“%d”,&value);

}while(int(value)!=value);

if(int(value)==value)

Search(array,size+1,value);

}

1)语句覆盖:

value=8,覆盖路径:abcdefgifghj 2)判定覆盖:

Value=8.,覆盖路径:abcdefgifghj Value=8.5,覆盖路径:abckb Value=10,覆盖路径:abcdefgifk

实验四面向对象分析(2学时)

实验目的:

通过采用面向对象的方法对问题进行分析,建立系统的对象模型和功能模型。动态模型为选作内容。

实验内容:

某医生开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。医生需要一个软件系统来管理预约。

当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供纪录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果有必要,安排病人下一次再来。

系统能够按病人姓名和日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。

实验要求:

1.建立牙科诊所管理系统的对象模型

2.用数据流图建立牙科诊所管理系统的功能模型。

3.写出牙科诊所管理系统的脚本(选作)。

4.画出牙科诊所管理系统状态图(选作)。

实验步骤:

1.建立牙科诊所管理系统的对象模型

2.用数据流图建立牙科诊所管理系统的功能模型。

3.写出牙科诊所管理系统的脚本(选作)。

4.画出牙科诊所管理系统状态图(选作)。

预约管理系统的正常情况脚本

●系统请接待员输入病人预约信息

●系统查询该病人是否已预约过

●如果预约过,且时间冲突,提示接待员建议一个合适的时间

●[病人接受建议的时间]or如果没有预约过,系统提示会诊时间

●病人会诊中,系统记录相关病人数据

●会诊完毕,系统更改预约信息中预约诊治是否完成信息

●系统增加新的预约登记表

预约管理系统的异常情况脚本

●系统请接待员输入病人预约信息

●系统查询该病人是否已预约过

●如果预约过,且时间冲突,提示接待员建议一个合适的时间

●如果病人接受建议的时间,系统审核输入信息正确与否

●输入病人信息有误,提示重新输入

●系统审核输入信息正确与否

●[输入信息正确]or如果没有预约过,系统提示会诊时间

●病人会诊中,系统记录相关病人数据

●会诊完毕,系统更改预约信息中预约诊治是否完成信息

●系统增加新的预约登记表

软件工程实验二66217

软件设计实验 一、实验目的 学会使用Case工具完成描述软件结构的软件结构图和软件层次图的设计,并熟练地掌握几种常用的软件详细设计的工具,如程序流程图、盒图、PAD图和判定表,并能把给定的软件问题描述转化为过程设计结果。 二、实验内容 1、软件结构设计: (1)采用visio绘制教材的图4.26中的软件结构图; (2)采用visio绘制教材的图4.41的软件层次图。 (3)分析如下所示的数据流图,并把它转换成软件结构图,然后 用visio把结果画出来。(注意,请用结构图) 图1 某系统的数据流图 2、软件的详细设计:某航空公司规定,乘客可以免费托运重量不超过20公斤的行李,当行李重量超过20公斤,对头等舱的国内乘客超重部分每公斤收费6元,对其他舱的国内乘客超重部分每公斤

收费

8元,对外国顾客超重部分每公斤收费比国内乘客多1.5倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。 实验包含三部分的内容: a)用word设计描述其详细设计结果的PAD图、判定表。 b)用viso画出它的程序流程图,并计算它的Mccabe程序复杂度。 (要求把计算过程写到实验报告中) 三、实验结果 【本人用诚信保证,实验都是本人自己实践完成的,标准原创】 1.(1)教材的图4.26中的软件结构图

(2)教材的图4.41的软件层次图

2. a)PAD图

开 开 开开 开开 开开 开开 T F P1 P1开开开20kg T P2 F P2开开开开开 P3 开开开开开开开开6开/kg 开开开开开开开开9开/kg 开开开开开开开开3开/kg P3开开开开开开开开 T F P4 P5 开开开开开开开开 4.5开/kg P6 T F 开开开开开开开开8开/kg 开开开开开开开开4开/kg 开开开开开开开开12开/kg 开开开开开开开开6开/kg P4开P5开开开开开开开 P7 P8 P7开P8开开开开开开开 PAD 开 P6开开开开开开开开开 判定表【原创】

天津理工大学软件工程实验报告I

天津理工大学 计算机科学与工程学院 实验报告 2017 至2018 学年第一学期

添加操作者与用例之间的关系,完成用例图:

附录(可包括源程序清单或其它说明) 心得体会: 第一次上机,对软件的使用有明显的不熟,在老师的帮助和上网查找,逐渐对软件熟悉起来,通过两节课的努力,最后终于完成了实验。 描述系统中重要用例的基本事件流(正常情况)和备选事件流(异常情况)。一、查询图书信息用例 主要描述:顾客查询系统中的图书信息; 主要参与者:顾客; 前置条件:顾客登录系统 主事件流 1.顾客进入登录界面 2.系统提示输入用户名和密码 3.顾客输入用户名和密码 4.进入系统,开始查询图书 5.显示预订信息 6.顾客可预订图书 备选事件流和异常: 3.1系统验证用户名或密码失败 3.2系统显示失败原因,提示重新输入或取消输入 3.3根据顾客需求退出系统或返回事件2 二、维护订单信息用例 主要描述:顾客管理自己的订单; 主要参与者:顾客; 前置条件:顾客已登录; 主事件流: 1更新订单 1.1 顾客点击修改订单 1.2 系统显示可以更改的订单信息 1.3 顾客选择要修改的订单 1.4 系统显示订单信息 1.5 顾客可以修改当前订单的信息 1.6 顾客保存当前信息 1.7 系统保存当前状态 2 删除订单 2.1 顾客点击删除订单 2.2 系统显示可以操作的订单信息 2.3 顾客选择删除 2.4 系统要求确认 2.5 顾客确认 2.6 系统保存当前状态 3.增加订单 3.1顾客点击增加订单 3.2系统显示可以购买的图书信息

3.3顾客选择添加 3.4系统要求确认 3.5顾客确认 3.6系统保存当前状态; 备选事件流和异常: 1顾客保存订单 顾客可以选择保存订单而不提交订单,系统保存当前状态,让顾客随时提交. 2浏览订单 2.1工作人员点击浏览订单 2.2系统检索并显示当前订单 3增加一个订单需求系统检索订单的先决条件,若符合则将订单发送到仓库管理系统,否则提示工作人员错误信息.发送过的订单标记为”已发送” 4不满足先决条件或无库存 系统检索顾客的先决条件,如果不满足或者没有库存,则给出提示信息. 5.没有权限提示 当工作人员常看订单时,若先决条件不满足,则给出提示信息 6.没有发现订单 工作人员查看订单时,当前没有订单,给出提示信息. 7.仓库管理系统不可用和仓库管理系统无法对话时,给出提示信息 三、维护员工信息用例 主要描述:管理员对工作员工的信息的维护; 主要参与者:管理员; 前置条件:管理员已登录系统; 主事件流 1添加员工信息 1.1提供员工的信息,如姓名、地址、邮政编码和身份证号码等。 1.2系统存储员工信息 2删除员工 2.1提供员工的信息 2.2查询员工 2.3查询员工的借阅记录 2.4从系统中删除员工的信息,以及员工的预定记录 3更改员工 3.1提供员工的信息 3.2查询并显示员工信息,修改相应的信息 3.3更新系统中员工的信息 备选事件流和异常流 1若员工已存在,系统显示提示信息,用例终止 2若查询不到员工,系统显示提示信息,用例终止 3若存在借阅记录,系统显示提示信息,用例终止

软件工程实验二

实验二熟悉面向对象建模过程 一、实验目的与要求 1.掌握 UML 工具 Enterprise Architect(Visio 或 Rational Rose)的使用; 2.了解面向对象软件建模过程; 3.把握类图、对象图、顺序图之间的关系。 二、实验环境 1.PC,CPU:P4 2.0GHz 以上,内存:512M,硬盘:40GB 以上; 2.操作系统:Microsoft Windows 2000 /2003/XP; 3.软件:E.A.、Microsoft Visio 或 Rational Rose 三、实验要求: 1.绘制的图形清楚,排版美观 2.类图、对象图和顺序图之间的关系设定正确 3.代码与模型相互印证,能按模型实现代码。 四、实验内容与步骤 B.领养电子宠物游戏 电子宠物是多种人工玩伴的其中一种,一般作陪伴人类或娱乐用途。人们可以饲养电子宠物以取代真正的宠物,玩家从宠物商店领养一只电子宠物。玩家可以“喂养”宠物,与宠物玩耍。描述比较简单,可以发挥想象完善宠物游戏。 参照书本上的分析与设计过程,选择 A 或者 B,重新建立系统的用例模型(包括用例文本)、领域模型、对象交互的顺序图、类图等模型,并按照模型实现。 请注意模型的顺序与前后关系,以及代码与模型的关系。要求每个人独立完成,并演

示。

1. 定义用例: 用例图: uc pet 领养宠物 查看宠物资料玩家 与宠物互动 用例规约: 用例编号:UC01用 例名称:领养宠物 简要说明:该用例描述玩家是如何领养宠物的。 参与者:玩家前置条件:玩家通过身份认证 后置条件:玩家成功领养电子宠物,正确记录交易日志。触发事件:玩家在主菜单中选择领养宠物。 基本流: 1.玩家选择“领养宠物”操作。 2.系统提醒玩家选择所要领取的宠物的类别。 3.系统提醒玩家填写宠物姓名。 用例编号:UC02用例名 称:查看宠物资料 简要说明:该用例描述玩家是如何查看宠物资料的。 参与者:玩家前置条件:玩家通过身份认证 后置条件:玩家成功查看宠物资料。 触发事件:玩家在主菜单中选择查看宠物资料。 基本流:

软件工程实验报告

实验一 一、实验室名称 综合实验楼 二、试验项目名称 图书管理系统 三、实验目的 1.了解和使用甘特图,系统流程图,线性时间图来描绘系统开发流程和进度 2.学会使用visio绘制常用的流程图。 四、实验内容 图书管管理系统更便于对图书进行分类和管理,对借阅者进行时间限定,使得借书的效益更高更安全。提高工作效益,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现了自动化。图书管管理系统的主要功能为:书目管理、借阅证管理、借还图书、查询、缴费。书目管理主要是针对管理员身份而言的(比如新增书目,删除书目等等);借阅证管理分为五部分:注册、补发、挂失、暂停、注销;借还图书:借书、还书;查询:图书查询、借阅时间缴费主要是计算超期罚款并交纳费用。 五、试验方案分析与设计 整理分析图书管理流程以及每个用户的权限。对功能进行整合。 六、实验器材(设备,元器件) 台式电脑 七、实验步骤 1.对图书管理系统进行分析,整合用户权限和操作 2.根据用户操作流程画出系统流程图 3.对系统做出概要分析,拟定开发流程 4.绘制出甘特图 5.绘制线性时间图 八、实验数据记结果分析

系统流程图: 甘特图: 线性时间图: 九、实验结论 成功绘制出图书管理系统的系统流程图,甘特图,线性时间图。 十、实验总结 对系统流程的理解直接决定业务逻辑的正确与否,错误的系统流程将导致系统开发逻辑设计不合理。甘特图和线性时间图能直观的展示出系统开发的进度,有利于监督项目开发,调整开发进度。

实验二 一、实验室名称 电子楼512 二、试验项目名称 需求分析 三、实验目的 1.学会如何根据客户的需求整合需求分析报告 2.了解和使用IDEF1X图和UML类图对系统做出概要设计 3.学会使用visio绘制IDEF1X图和UML类图 四、实验内容 1、请从下面的描述中找出绘制数据流图的四种成分并用Visio绘制数据流图。 某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。 (1) 如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。 (2) 如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。 (3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。 2、有一简单选课系统,用文字描述如下,试用IDEF1X图和UML类图描述该系统的信息模型,并用Visio绘制该IDEF1X图和UML类图。 1)基本描述:在该系统中,有学院、教师、课程、学生等实体,他们的属性分别是:学院:学院编号、学院名称、地址、联系电话、院长等基本属性; 教师:教师编号、姓名、性别、年龄、职称、所在学院等属性; 课程:课程编号、课程名称、课程性质(必修/选修)、学分、开课学院等属性; 学生:学号、姓名、性别、年龄、入学时间、学院等属性。

软件工程实验报告_学生成绩管理系统

软件工程实验报告 学生成绩管理系统的设计与实现 学生姓名 学号 班级 成绩 指导教师 年月日

目录 1 课题描述 (3) 2 可行性研究 (4) 2.1 编写目的 (4) 2.2 项目背景 (4) 2.3 定义(术语) (4) 2.4 数据流程和处理流程 (4) 2.5 可行性分析的前提 (5) 2.6 可行性分析 (5) 3 需求分析 (7) 3.1 学生成绩管理系统功能需求 (7) 3.2 学生成绩管理系统性能要求 (8) 3.3 数据流图 (8) 3.4 数据字典 (9) 3.5 学生信息管理系统逻辑结构图 (12) 3.6 用户信息实体关系图 (12) 4 概要设计 (13) 4.1 编写目的 (13) 4.2 项目背景 (13) 4.3 任务概述 (13) 4.4 总体设计 (13) 4.5接口设计 (17) 4.6数据结构设计 (17) 5 详细设计 (19) 5.1 系统程序流程图 (19) 5.2 界面设计 (21) 5.3 程序界面截图 (22) 5.4 程序源代码 (27) 6 软件测试 (58) 7 总结 (62)

1 课题描述 随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面‘软件’质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。 主要功能有三方面: 管理员,登陆,进入系统,可以进行管理员操作,进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加、打印等操作。 学生,登陆,进入系统,可以进行查询、修改、打印等操作。 教师,登陆,进入系统,可以进行查询、学生成绩录入、修改、打印等操作。 软件系统目标: (1)本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。 (2)本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。 (3)本系统操作方便、灵活、简单。 (4)本系统可高效、快速的查询到学生的基本信息。

软件工程 实验报告

v1.0 可编辑可修改 院系:计算机科学学院 专业:计算机科学与技术 年级: 2013级 课程名称:软件工程 组员:司少武(1135) 兰少雄(1136) 张宇(1133) 纳洪泽(1132) 指导教师:刘卫平 2015年 12月 26 日

聊天室 1 前言 即时消息系统的研究现状 即时消息系统[1](Instant Messenger,IM)是一种在后 PC 时代兴起的,以Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 本工程的主要内容 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。 2 需求分析 本系统所要实现的主要功能是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加

3面向对象软件工程笔试

面向对象软件工程笔试题 姓名班级学号 一、单项选择题(每题1.5分,计30分) 1. 在面向对象的系统中,系统责任的良好分配原则是()。 A. 在类之间均匀分配 B. 集中分配在少数控制类中 C. 根据时序图的消息进行分配 D. 根据个人喜好进行分配 2. 能够保证某些类在系统中只存在一个实例的模式是:() A.抽象工厂(Abstract Factory)模式B.单态(Singleton)模式 C.建筑者(Builder)模式D.工厂方法(Factory Method)模式 3. 在UML中,用于描述对象和对象之间的交互,并且将重点放在消息的顺序上,强调时间,描述消息是如何在对象间发送和接收的模型是:() A.类图B.用例图C.状态图D.时序图 4.()意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性B.多继承C.类的复用D.封装 5.在UML中,类A的一个操作以类B作为参数,调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是()关系。 A.聚合B.泛化C.实现D.依赖 6. 在UML中,类A中持有着类B作为属性,那么类A和类B之间是()关系。 A.普通关联B.泛化C.实现D.依赖 7. 在下面的描述中,不属于用例模型所能回答的问题是() A.参与者执行的主要任务或功能是什么? B.参与者希望从系统中获取什么样的信息? C.用例所描述的功能是怎样实现的? D.参与者之间的泛化关系是什么样的? 8. 在面向对象设计中,下列那个设计处于最基础的地位:() A.责任设计B.消息设计C.类及对象设计D.子系统设计 9.能够“将抽象部分与实现部分分离,使它们都可以独立变化”的设计模式是:() A.组合(Composite)模式B.命令(Command)模式C.桥(Bridge) 10.在面向对象软件开发方法中,类与类之间的结构关系主要有:() A.继承和聚合B.继承和一般C.聚集和消息传递D.继承和方法调用 11.能够在不改变类层次结构的前提下,在运行时根据需要透明地为类层次结构上的各个类 动态添加新功能的模式是:() A.访问者(Visitor)模式B.职责链(Chain of Responsibility)模式 C.观察者(Observer)模式D.策略(Strategy)模式 12.将对象组合成树型结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象 的使用具有一致性的模式是:() A.组合(Composite)模式B.桥(Bridge)模式 C.命令(Command)模式D.适配器(Adapter)模式 13. 能够在运行时动态地为对象扩展功能的设计模式是:() A.代理(Proxy)模式B.装饰(Decorator)模式C.组合(Composite)模式D.桥(Bridge)模式

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

软件工程实验报告(总)

信息工程学院 软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft V isio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

面向对象的分析方法_软件工程实验_1245713131

面向对象的分析方法 专业:计算机科学与技术专业学号:1245713131 班级:计科1班 姓名:

一、概述 随着现代科学技术的发展和社会的进步,各大高校的图书馆规模也不断扩大,与此同时,图书的种类和数量以及有关图书的各种信息也迅速的增加,这一庞大的信息量也对图书馆的信息管理技术提出了更高的要求。为了避免图书管理上的混乱,降低管理费用,提高工作效率,给读者提供更方便、快捷的服务,图书管理系统必须引入信息化和自动化的管理方式,对图书资料进行集中、统一、高效率的管理。 二、问题的提出 随着Internet技术的飞速发展,现在各高校已经把计算机引入了图书馆,开始了信息化的管理方式,这给予了学生极大的便利,学生可通过图书馆可以获得丰富的文献资料。和传统的图书管理方式相比,计算机和 Internet的使用也大大提高了图书馆对书籍的管理效率,为读者提供了更方便、更快捷的服务。与此同时服务理念也由以书籍为中心变为以广大师生的信息需求为中心,但是图书馆的网络信息服务还远远没有跟上网络建设的步伐,所提供的服务也远远不能满足高校师生的信息需求。高校图书馆应当有着先进的现代信息设备,完善的管理和服务,并且有稳定和特定的高素质读者用户群,更应该深入开展图书馆多元化信息服务,以更好地满足高校师生不同的信息需求。 目前高校图书馆网络信息服务内容都是浅层次的,主要还是集中在资料的“提供”上,比如动态信息和催还信息的发布只是停留在计算机上,没有充分利用现在飞速发展的通讯技术,使借阅者不能及时得到相应的信息。高校图书馆存在的诸多问题,已经不能满足广大师生群体对信息的需求,因此使得资源的共享性受到相当大的限制。 三、需求分析 (一)用户提出的需求包括下列内容: ①这是一个图书馆支持系统。 ②图书馆将图书和杂志借给借书者。借书者已经预先注册,图书和杂志也预先 注册。 ③图书馆负责新书的购买。每一本图书都购进多本书。当旧书超期或破旧不堪 时,从图书馆中去掉。 ④图书管理员是图书馆的员工。他们的工作就是和读者打交道并在软件系统的 支持下工作。 ⑤借阅人可以预定当前没有的图书和杂志。这样,当他所预定的图书和杂志归 还回来或购进时,就通知预定人。当预定了某书的借书者借阅了该书后,预定就取消。或者通过显式的取消过程强行取消预定。 ⑥图书馆能够容易地建立、修改和删除标题、借书者、借阅信息和预定信息。 ⑦系统能够运行在所有流行的技术环境中,包括Unix, Windows和Linux,并应 有一个良好的人机交互图形用户界面(GUI)。

面向对象软件工程 第二章 答案

Object-Oriented Software Engineering: Using UML, Patterns, and Java: Solutions to Exercises 2. Modeling with UML: Solutions 2-1 Consider an ATM system. Identify at least three different actors that interact with this system. An actor is any entity (user or system) that interacts with the system of interest. For an ATM, this includes:?Bank Customer ?ATM Maintainer ?Central Bank Computer ? Thief The last actor is often referred to as a “misactor” in the literature, because it is an actor that interacts with the system but shouldn’t. 2–2Can the system under consideration be represented as an actor? Justify your answer. The system under consideration is not external to the system and shouldn’t be represented as an actor. There are a few cases, however, when representing the system as an actor may clarify the use case model. These include situations where the system initiates uses cases, for example, as time passes (Check for Outdated Articles, Send Daily Newsletter). 2–3What is the difference between a scenario and a use case? When do you use each construct? A scenario is an actual sequence of interactions (i.e., an instance) describing one speci ?c situation; a use case is a general sequence of interactions (i.e., a class) describing all possible scenarios associated with a situation. Scenarios are used as examples and for clarifying details with the client. Use cases are used as complete descriptions to specify a user task or a set of related system features. 2–4Draw a use case diagram for a ticket distributor for a train system. The system includes two actors: a traveler, who purchases different types of tickets, and a central computer system, which maintains a reference database for the tariff. Use cases should include: BuyOneWayTicket , BuyWeeklyCard , BuyMonthlyCard , UpdateTariff .Also include the following exceptional cases: Time-Out (i.e., traveler took too long to insert the right amount), TransactionAborted (i.e., traveler selected the cancel button without completing the transaction), DistributorOutOfChange , and DistributorOutOfPaper . Figure 2-1Example solution to Exercise 2–4. BuyOneWayTicket BuyWeeklyCard UpdateTariff TransactionAborted DistributorOutOfChange DistributorOutOfPaper DistributorException <> <> <>

软件工程实验报告(国家标准)

可行性研究报告 1 引言 编写目的 编写本报告的目的是研究本系统的总体需求、实现方案,并分析开发系统的可行性,为决策者提供是否开发该系统的依据和建议。 背景 系统的名称:实验室设备管理系统项目开发者:用户单位:徐州工程学院2 可行性研究的前提 目前国内学校教学设备自动化管理水平不是很高。大多数学校设备管理办法是设备采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如设备位置变迁、检修情况、设备当前运行状态等信息根本不会体现在设备台帐上,即设备跟踪信息不能及时体现在设备档案上。某些使用设备管理系统学校,对设备的跟踪信息即使能体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校设备管理信息化仍处于较低水平。 本信息系统合理的借鉴国际领先的设备管理思想并结合国内学校设备管理现状,可以完全能满足国内学校设备管理的需要。并通过对各行业设备管理情况的长期研究探索,以灵活、通用为主要设计思想,开发适合于各行业设备管理信息系统。实时报警功能对学校的安全生产更是不可忽视。 要求 (1)主要功能 每学年要对实验室设备使用情况进行统计、更新。其中: 1)对于已彻底损坏的做报废处理,同时详细记录有关信息。 2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。 3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。 4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。 (2)主要性能 可以方便快捷有效地完成查询,维修设备等各项操作,录入数据合法性校验程度高,查询快速(不超5秒)。保证信息的正确和及时更新,并降低信息访问的

江苏海洋大学软件工程面向对象分析与设计综合实验题目及报告

江苏海洋大学计算机科学系实验报告书 课程名:《软件工程》 题目:面向对象分析与设计综合实验 班级:Z计算机172 学号:2019140367 姓名:孙奥迪

面向对象分析与设计综合实验报告要求 1目的与要求: 1)系统学习和理解面向对象软件工程分析与设计阶段的基本任务、过程以及基本概念、原理、技术和方法; 2)掌握OOA阶段的建模方法和建模工具,如对象模型、动态模型、功能模型及其绘制工具; 3)通过试验要逐步提高运用软件工程基本理论、技术和方法解决实际问题的能力; 4)请借阅有关Microsoft Office Visio 系统或Power Design系统,预习相关UML的建模工具及其使用方法; 5)按照实验题目要求独立完成实验内容,如发现拷贝、抄袭者严肃处理; 6)认真书写实验报告,并按时提交(时间:16周周5前;电子报告全体同学提交,纸质文档提交10份)。 2 实验内容或题目 1.根据自己的兴趣或关注热点,结合实际应用选择一小题目,如教材上的例题和习题:零件 订购系统,银行储蓄系统,铁路民航订票系统,医院患者病情诊断和监控系统,图书管理 系统,学籍管理系统,多媒体播放系统等。然后进行所选定题目进行面向对象分析和设计,尽量在第五次实验分析建模结果的基础上完成本次综合实验。 2.OOA要求:用类图建立系统的对象模型;用状态图建立系统的动态模型;用用例图建立 系统的功能模型(要配置必要的脚本说明)。 3.OOD要求,根据OOA阶段建立的模型进行系统设计,并给出系统的设计模型,重点以问 题域子系统,人机交互子系统,数据管理子系统进行面向对象设计,并给出设计结果。 3 实验步骤与源程序 1. 2.

软件工程实验一实验二讲课讲稿

软件工程实验一实验 二

实验1《可行性研究与项目计划》 实验学时: 2 实验地点:二综201 实验日期: 2014.4.16 一、实验目的 1.了解:软件项目可行性研究及项目计划的基本原理与方法; 2.掌握:Visio等工具进行可行性研究和制定项目计划。 二、实验内容 图书馆管理系统更便于对图书进行分类和管理,对借阅者进行时间限定,使得借书的效益更高更安全。提高工作效益,便于操作,能有效地对数据进行更新、查询,并能在一定程度上实现了自动化。图书管管理系统的主要功能为:书目管理、借阅证管理、借还图书、查询、缴费。书目管理主要是针对管理员身份而言的(比如新增书目,删除书目等等);借阅证管理分为五部分:注册、补发、挂失、暂停、注销;借还图书:借书、还书;查询:图书查询、借阅时间缴费主要是计算超期罚款并交纳费用。 图书管管理系统的系统流程图如图1所示。 图1 系统流程图 试对系统进行可行性研究,用Visio绘制图书管管理系统的系统流程图,同时制定系统的开发计划,用Gantt图和时间线图描述进度计划安排。 三、实验方法 按照实验指导进行,有时上网查找资料。 四、实验步骤

绘制时间线图的基本步骤: 1.在Visio主菜单中选择[文件]/[新建]/[项目计划图]/[时间线],选择一个时间线拖入绘图页。 2.在形状模板中选择一个里程碑拖入绘图页; 3.在配置里程碑对话框中设置里程碑日期和日期格式; 4.在形状模板中选择一个间隔块拖入绘图页; 5.在配置间隔块对话框中设置间隔块的起始与结束日期和日期格式; 6.设置标题; 7.设置今日时间; 8.设置背景; 9.设置消耗的时间。 绘制Gantt图的基本步骤: 1. 设置Gantt图选项; 2. 设置配置工作时间; 3.设置任务名称、起始时间、终止时间或任务持续时间; 4.设置标题等其它信息。 五、实验结果 1.系统流程图 2.时间线图 3.甘特图 六、实验结论

软件工程 实验报告

院系:计算机科学学院专业:计算机科学与技术年级: 2013级 课程名称:软件工程 组员:司少武(1135) 兰少雄(1136) 张宇(1133) 纳洪泽(1132) 指导教师:刘卫平 2015年 12月 26 日

聊天室 1 前言 即时消息系统的研究现状 即时消息系统[1](Instant Messenger,IM)是一种在后 PC 时代兴起的,以Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 本工程的主要内容 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。 2 需求分析 本系统所要实现的主要功能是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。 接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。 当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。

相关文档
最新文档