需求分析.docx

上传人:b****3 文档编号:3534233 上传时间:2022-11-23 格式:DOCX 页数:12 大小:154.39KB
下载 相关 举报
需求分析.docx_第1页
第1页 / 共12页
需求分析.docx_第2页
第2页 / 共12页
需求分析.docx_第3页
第3页 / 共12页
需求分析.docx_第4页
第4页 / 共12页
需求分析.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

需求分析.docx

《需求分析.docx》由会员分享,可在线阅读,更多相关《需求分析.docx(12页珍藏版)》请在冰豆网上搜索。

需求分析.docx

需求分析

 

软件工程实验课

SoftwareEngineeringPractice

 

需求分析报告

项目名称基于Sockets的局域网通信

文档类别需求分析文档

文档编号007

版本

密级绝密级

 

二〇一四年六月三十日

目录

1、引言3

1.1.编写目的3

1.2.背景3

2系统概述4

2.1.系统框架4

2.2.运行环境4

2.3.用户特点5

2.4.约束5

2.5.逆向需求6

2.6.将来可能提出的问题7

3功能描述7

3.1.功能需求7

3.2.界面需求8

3.3.性能需求12

4接口描述13

4.1.外部接口13

4.2.内部接口13

5系统展望14

1、引言

编写目的

本软件需求分析报告的编写目的是为了提供一个由用户(或委托者)和开发者双方共同确定的开发系统的业务需求目标,并对所实现的软件功能做全面的规格描述。

同时,在用户业务需求的基础上,经过需求分析和数据整理,以向整个开发期提供关于软件系统的业务和数据的技术信息和整体描述,成为软件开发的技术基础,也作为系统设计和实现的目标及验收依据。

本软件需求分析报告的适用读者,一般为:

软件客户、软件需求分析人员、软件设计及开发者和相关的测试人员。

背景

即时通信(InstantMessaging)软件是一种互联网时代产生的即时交流工具,最初是叫做ICQ,也叫做网络寻呼机。

此类软件可以使得连接上互联网的用户之间可以通过它来进行交谈,甚至可以通过网络视频来看到对方的实时照片。

使得人们不必为了昂贵的电话费而烦恼,甚至可以做到工作和学习两不耽误。

近几年即时通信的发展势头迅猛,其通信方式也越来越走向多样化发展,已经逐渐集成了电子邮件、手终终端、博客、电视、音乐、在线资讯、搜索等功能于一身。

IM软件已经不再只是一个纯粹的聊天工具,它已经发展成为集资讯、办公、协同工作为一体化的信息交流综合平台。

即时通信软件的用户也迅猛的增长,从早期的几百万发展到现在可统计出来的3.4亿,并且还有越见上升的趋势,即时通信软件进入千家万户已经成为现在人们生活不可缺少的部分。

随着网络的逐渐兴起,企业内部和企业之间的协同工作显得越发重要,网络即时通信也逐渐形成。

早期的电话,电子邮件等虽然也能在一定程度上提升了沟通的能力,但是其在实时性方面不能做到,同时也不能在企业内部进行大量的数据传输,市面上的即时通信软件,例如QQ,旺旺,网易泡泡等虽然也能解决这些问题,但是这些软件是面向个人版的,其处于一种开放式的互联网中,网络数据的安全性很难得到保证,另外员工也可以在上班工作时间使用这些软件,其聊天通信对象很难得到保证,从而可能降低工作效率。

因此,很多大型企业都通过很多手段禁止员工不适当的使用QQ、MSN等软件,这种情况下采用面向企业的通信软件自然成为一种可以有效的解决问题的方法。

它既满足了企事业单位内部员工之间的交流,又能进行很好的管理。

随着计算机网络的不断深化,对通信服务的质量要求和方式都发生了翻天覆地的变化,由于我们常见的个人版即时通信软件处于一个相对开放的网络环境中,存在各种信息干扰甚至是安全隐患,面向局域网的内部通信软件显得越发重要,其主要作用包括以下几点:

1.有效的提高效率和减少成本,继承并拓展传统软件的常见通信功能,企事业员工之间交流可以在计算机上完成,减少出错的几率,同时有效的协调各部门之间工作,效率提高了,成本自然就下降了,员工们不用忙碌在繁琐的部门之间。

2.根据企业情况,能够个性化定制界面,有效的加强部门间合作,增强内部的凝聚力。

3.通信安全性得到保证,通过引用类似的身份认证机制,实现一个相对来说可控的环境,加强了企业安全管理,防止企业资料信息外流。

1系统概述

系统框架

为了便于合理的将系统作业分发给客户机和服务器,同时便于客户机之间的信息交流。

本系统中我们采用的通信模型是三层cis和PZP混合模式。

三层cis模型:

应用程序客户端、应用程序服务器、后台数据库系统。

在客户端和应用程序服务器之间采用的是cis通信模型,客户端以TCP的形式向服务器端发送各种请求,服务器端负责接收与响应客户端的请求,根据请求类型,决定是否需要连接数据库对数据库信息进行读写,再以TCP形式将应答结果送回给客户端。

数据库服务器只能与应用程序服务器相连接,主要完成数据存储等功能。

在客户端之间采用的是基于UDP协议的PZP通信模型。

运行环境

开发环境:

Window7操作系统环境下,采用VisualC++6.0开发。

使用环境:

WindowXP及以上版本,局域网内的IP地址没有被屏蔽,各个计算机之间网络连接畅通。

用户特点

用户需要在一个小的局域网内进行即时的通信,对通信的保密性要求不高。

所以,本软件面向的是各种企业办公室中的文职人员以及大学教研室的工作人员。

约束

约束架构图

精度

进行软件开发时,保证精度的要求始终贯穿如一

我们软件开发时的精度要求主要集中在进行主机IP寻址的时候以及局域网的实时定位更新系统。

用户在首次使用软件时,需要进行实时的刷新搜索局域网内用户数量,然后保证自己的IP在局域网中是可见的,所以在精度要求上是要保证以“个”为单位的用户能查询到主机的IP,并进行相应的操作,避免造成数据上以及IP位置上的错误导致的系统不兼容和错误操作。

同时由于用户使用软件时,有些内容是不可见的,所以要保证这些内容能够在管理员的监视下确保不会随着用户的增多或者局域网的扩大而带来不可恢复性的错误。

工具和语言约束

在进行软件开发的时候,使用到了C++语言进行开发,开发过程中确保语言不出现语义上的二义性或者尽量避免语言二义性的出现,同时语言在逻辑结构上应该尽量保持清晰的过程与逻辑,避免因为不可避免的细小操作对之后的系统运行造成难以排除的错误。

在进行开发软件编程时,要保证有语言清晰的注释,为以后进行系统修复和功能扩展带来方便。

设计约束

设计过程中,要尽量保证软件的可用性和易用性以及安全性,由于是在局域网中使用,保证信息不会被在局域网以外的地方扩散造成信息的泄露。

同时在易用性方面,要尽量保证软件对不同类型不同知识程度的都有几乎相同的用户体验和学习性,尽量保证不会由于系统刚上手而失去可用性。

另一方面,在软件开发过程中,应当及时留下软件和其他功能的接口,用于以后软件的第二次开发和功能完善,这一方面虽然有违背简易功能简化使用的初衷,但是在需求分析时应当同时要求尽量避免冗余功能的出现,并且保证简洁的界面和易用的功能。

硬件平台

软件开发要求软件在不同的硬件平台上都能良好的运行。

这就要保证软件有良好的兼容性,可以在不同的硬件平台上运行,同时在满足基本的运行功能之后还要保证同一局域网内,不论是怎样的硬件平台,通信双方都要能够识别对方在不同硬件资源上发出或接受的信息,并且同时能满足与主机进行相应的通讯。

逆向需求

首先进行软价开发时,就要清晰的定义软件不能或者不必要的功能参数或者数据。

在客户使用时,不同的客户可能有千奇百怪各种不同的软件要求,但是在提出软件的具体功能之后,软件的主题功能就此被定义下来,无论是怎样的更改系统的操作都要经过详细的讨论和研究才能决定是否采用,所以说如果客户听出要使用一个可以“看视频”的聊天软件,因为客户有时候提出一些要求时,他们自己都不清楚自己到底要什么样的功能。

软件产品可能之后需要进行不同程度上的功能扩展和增加,但是已经确定了软件的基本功能,在之后不会考虑将软件作为一个商业化的广告盈利产品,因为本来就要求软件的简洁,如果破坏了这个需求初衷,可能导致老用户的厌恶或者放弃使用软件。

产品误解,不以现阶段非常火爆的QQ作为类比或者宣传手段,因为我们软件的提出以及推广本来就是根据软件的不同点,我们突出的重点是安全性、局域性以及易用性,所以这三个要求贯穿软件始终,不能将自己的根本功能相QQ靠近而失去了软件的独特性。

将来可能提出的问题

首先在界面方面,可能在将来的二次设计中要进行软件界面的人性化和柔视化设计,在用户首次看到用户界面时不会显得很锋利,而是更多的亲切以及对于软件的放松警惕,能够非常快速和饶有兴趣的上手。

其次,在使用软件过程中,可能扩展基本功能,因为除了聊天,文件的传输了群消息的传递,在越来越快发展的同时,语音要求以及视频要求会越来越多,而这也是信息交流或者是通信应当提供的基本功能之一,所以,在留有接口的同时要及时进行扩展功能的开发,在不改变软件可用性的前提下扩展用户要求较多的基本功能,达到完善的软件功能。

灵活的易用性,随着局域网的扩大和用户数量的极具增多,所以对数据的要求性会非常高,所以在安全性方面除了现阶段的加密以及口令的安全加密方法,要不断的完善信息的安全性能,采取不同等级信息的对称加密或者非对称加密方法等,确保软件的安全性。

2功能描述

功能需求

我们所设计和开发的是一个局域网通信系统,

功能一:

可以实现在一个局域网内不同的计算机可以通过注册用户名和密码,并通过IP地址登陆到该局域网通信系统内,实现相互的通信。

功能二:

拥有服务器的计算机可以作为该系统的主机,查看该系统内用户的登陆情况,查看用户信息,主机可以向该系统内的所有用户发送系统消息。

功能三:

用户和用户之间可以实现实时的通信,并且用户和用户之间可以相互传输文件。

功能四:

客户端可以实现在线可见和在线隐身,客户端的界面也可以实现桌面的最小化。

用例图设计如下:

界面需求

用户界面

本软件的用户界面分为两部分,一部分是服务器界面,另一部分是客户端界面。

客户端界面分为登录界面和客户通信界面。

服务器界面

主要是由显示栏和控制按钮组成,显示栏用来显示局域网内各个用户的信息和通信情况,包括注册用户民、在线用户、未登录用户、登陆密码、登陆IP地址、在线状态。

按钮用来控制服务器的开启和关闭,同时设置一个按钮用来控制系统消息的发送,按下消息按键之后会出现消息发送窗口,提示系统消息的发送,系统消息发送出去后,所有的在线用户都会接到消息提示,系统消息是由主机发到各个客户端的,客户端用户不可以对系统消息进行应答。

设计界面和验证效果对比界面如下图所示:

图3.1服务器主设计界面和验证效果对比

图3.2服务器信息发送设计界面和验证效果对比

客户端界面

主要是由登陆栏和IP选择栏构成,作为本机登陆的时候不需要添加IP地址,可以直接通过账号和密码登陆。

当在一个局域网内的其他的计算机登陆时,需要添加主机的IP的地址才可以登陆成功,这也是保证通信系统安全性的一个措施。

在登陆栏中有登陆和退出按钮用来提示用户对系统的操作,在登陆栏中还有一个注册新用户按钮,通信系统的新用户可以再这里注册,加入到该系统内,新加入的用户需要注册自己的用户名和密码,以便下次的登陆。

客户端主界面设计和验证如下图所示:

图3.3客户端主设计界面和验证效果对比

通信界面

主要是登陆信息栏和局域网内的其他用户列表组成,通信界面的上部会显示用户的头像和用户的账号,在其他用户的显示栏中,会显示该系统内的其他用户和用户的在线情况。

当用户想要和系统内的其他用户通信时,只需要点击显示栏中用户的头像即可,点击后会弹出消息提示栏,消息栏会提示该用户的在线情况,添加消息后,点击确定键就可以发送出去,实现即时通信。

图3.4客户端聊天设计界面和验证效果对比

图3.5文件发送设计界面和验证效果对比

性能需求

终端与客户端数量

支持一个终端和多个客户端,在同一个局域网中,一个终端用来控制所有的主机,可以进行广播等,然后每台主机可以拥有一个客户端,进行通信和文件的传输,实现点到点和广播式通信。

可传输的字节数

在点到点通信和广播中没有对消息的大小给予限制,定义一个开源的数值,可以多次传输信息,也可以传输很大量的信息。

在文件传输中,定义缓冲区的大小为4G,可以传输4G以内的文件。

对于超出4G的文件要多次传输,不过也可以通过更改缓冲区的大小和一次接收和读文件大小可以做修改。

消息记录

由于本软件不具有后台数据库,所以没有对消息记录做任何要求,消息一旦发出,在接收方收到查看后,关掉对话框后就会消失,没有记录功能,这样也防止了信息的泄漏和窃取,对软件的安全性有了更高的要求。

并行信息传输

在进行点到点的通信时,由于接收和发送消息用的协议时UDP协议,每次消息传输都是并行进行,所以不会出现冲突的现象。

对于一天主机来说,在同一个时间里你可以同时收到多个人发来的信息而不受影响。

信息存储

UDP协议是一种不可靠的协议,在信息传输过程中只进行数据包的传递,所以在进行传输之前使用TCP协议对通信双方进行验证,保证通信时的可靠性。

在进行消息传输时没有定义存储空间,只是定义缓冲区做即时通信,当消息发送出去后,缓冲区还原,不在有消息的记录。

3接口描述

外部接口

用户登陆模块

网络设置(CInfoDlg:

OnBtnNetset())

伸缩功能(CInfoDlg:

SetWindowRect())

申请帐号(CInfoDlg:

OnUserApp())

连接服务器(CInfoDlg:

OnOk())

用户通信模块

监听客户端请求的用户界面线程函数(CChatDlg:

RecvProc())

自定义消息WM_RECVDATA响应函数(CChatDlg:

OnRevData())

定义用户信息结构体(Userinfo)

短信息实时通信(CQQClientDlg:

OnMsgRecv())

服务器信息管理模块

用户信息结构体(structUserinfo)

获取用户信息(CChatDlg:

OnBtnStartSev())

更新处理用户信息(CChatDlg:

OnTimer())

内部接口

我们采用Window是多线程编程,线程可以分为主线程和后台线程,在MFC类库中,CWinAPP就是一个自主创建的用户界面线程,它是从CwinThread派生出来的,后台线程一般是用AfxBeginThread来创建。

在本系统内,多线程主要是用来解决多个客户机与服务器,或者一个客户端与多个客户端进行通信问题,防止出现阻塞、延迟等情况的出现。

我们将服务器端设定为监听模式,当客户端请求连接队列中有请求时,服务器端启动一个socket,并创建一个新的线程来处理用户请求,新线程在处理完成之后自动关闭,释放占用的系统资源。

4系统展望

在本系统中需要使用UML进行可视化建模,由于时间关系没有做,之后会慢慢完善。

系统进行开发完善,达到初期进行IP自动检测功能,同时做到,登陆立即显示,信息推送无延迟。

在完成这些之后还要进行软件测试后期用户体验流程,通过邀请用户使用提出软件在使用过程中可用性的强弱以及易用性程度,并进行进一步软件的完善。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1