系统软件详细设计项目说明指导书.doc
《系统软件详细设计项目说明指导书.doc》由会员分享,可在线阅读,更多相关《系统软件详细设计项目说明指导书.doc(14页珍藏版)》请在咨信网上搜索。
系统软件具体设计说明书 1.引言 1.1编写目标 本具体设计说明书是针对网络信息体系结构课程作业而编写。目标是对该项目进行具体设计,在概要设计基础上深入明确系统结构,具体地介绍系统各个模块,为进行后面实现和测试作准备。本具体设计说明书预期读者为本项目小组组员和对该系统感爱好,在以后想对系统进行扩展和维护人员。 2. 系统结构 l ui:系统界面部分,负责接收用户输入,显示系统输出,负责其它模块功效协调调用,并含有站内搜索功效,即在用户指定已打开ftp站点中搜索用户需要资源。ui部分调用common部分功效读取xml文件中保留界面元素属性信息,用户最近访问过10个ftp信息,用户选择下载ftp内容列表及其它需要经过xml文件保留信息。 l client:实现ftp用户端功效,ftp连接,ftp上传及下载:上传或下载用户指定资源,并返回对应信息。 l search:资源实时检索部分,依据用户输入资源名称关键字,资源类型和选择检索方法检索用户需要资源,并验证资源可用性,返回可用资源及其大小,速度等相关信息。 l preview:资源预览部分,显示用户选择资源部分内容,以使用户决定是否需要该资源。preview部分调用common部分读取属性文件内容亦显示预览资源内容显示格式。 3.模块1(ui)设计说明 3.1模块描述 实现用户界面包,含有11个文件51个类,是本系统中最复杂代码。 3.2功效 负责接收用户输入,显示系统输出,其它模块功效协调调用,并含有站内搜索功效,即在用户指定已打开ftp站点中搜索用户需要资源。 3.3交互模块 client,search,preview,common。 3.4 模块设计 该模块中关键文件,文件中包含关键类及其功效和和其它包交互以下: l MainFrame.java:MainFrame是含有主函数类,也是lyra用户端开始实施类,它前后进行资源初始化,显示主界面等工作,依据屏幕大小设置界面大小,设置界面观感。 l FtpFrame_AboutBox.java:显示相关窗口类,当用户点击帮助菜单中相关菜单项时会弹出相关对话框。 l Tools.java:FileTools是文件操作辅助类,能够实现文件递归删除等。 l XMLController.java: JDOMTes是操作xml文件类,用JDOM来操作xml文件,实现功效有: (1)保留ftp服务器文件列表(站内搜索时使用),递归从ftp服务器读取列表,并存入一个xml文件中(文件命名方法是:ip+用户名.xml);以目录树形式保留。 (2)依据文件名在文件中查找文件,站内搜索时使用。 (3)保留ftp服务器信息:ip,端口(默认端口21不保留),用户名(默认anonymous不保留),密码,最多存10个;存在resource\settings\ serversinfor.xml文件中。 (4)读取已存放ftp服务器信息。 (5)从type.xml读取搜索类型。 l Constants.java:放置系统运行时使用部分常量,initcontent()函数对全部常量进行初始化,这个函数在MainFrame中被调用一次。iconHashMap是hash表,用于存放文件系统图标。 l CustomizedController.java:包含自定义控件类,java中控件可能不能满足需求,需要自己定义一些属性。这些控件会在创建界面时使用。其中含有类有: (1)CustomizedJTable 是表格类,设置表格一些属性,如字体等。 (2)CustomizedTableCellRenderer是表格单元格绘制器类,关键用于显示文件系统图标,和文件名。 (3)LeftPanel类父类是JTabbedPane,用户显示主窗口左边面板。 (4)RightPanel类父类是JPanel,用户显示右边专题部分,包含右上边搜索及服务器选项,和中间显示服务器文件TabbedPane。. (5)BottomPanel类是右下放显示下载和服务器信息JTabbedPane。 (6)CustomizedJButton 是定义按钮类,更改了按钮字体,java本身默认字体不好看。 (7)CustomizedTableModel是表格类,实现单元格不可编辑。 (8)CustomizedTableCellRenderer_Remote类是表格绘制器,在远程文件浏览器RemoteFilesPanel使用,用于显示文件名和文件图标。 (9)FontTableCellRenderer类是表格单元格绘制器,关键功效是设置字体。 (10)FontListCellRenderer类是下拉列表框单元格绘制器,关键用于设置字体。 (11)CustomizedJLabel类是自定义标签类,重新设置了标签字体。 (12)CustomizedJTextField类是自定义文本框类,关键用于设置文本框显示属性。 (13)CustomizedJMenu类是自定义菜单类,重新设置了菜单字体。 (14)CustomizedJMenuItem类是自定义菜单项类,重新设置了菜单字体。 (15)CustomizedListCellRenderer类是JComboBox即组合框单元格绘制器,用于在当地路径选择下拉列表中显示磁盘图标。 l SearchResultReceiver.java, SearchResultReceiver是一个接口,关键用于返回搜索结果。搜索完成后调用接口中函数通知调用者。其中关键有两个函数: (1)OnSearchFinished(String[] keywords,ArrayList[] resultset);result是一个10维数组表result[10],result[i]是由类型为i资源组成数组。i:0-9,和类型列表框中次序一致。 (2)OnSearchFinished(String[] keywords,ArrayList resultset);不分类型,将全部资源放在一个数组表中。 l FtpFrame.java:FtpFrame是程序主窗口类,类型为JFrame,是由三个分割窗口JSplitPane组成。 jSplitPane_Left是左边分割窗口,水平分割条上边显示当地文件框,下边是预览框; jSplitPane_Right是右边分割窗口,水平分割条上边是服务器选项和ftp服务器文件显示窗口,下边是下载和服务器信息显示窗口; jSplitPane_Whole是整体分割窗口,垂直分割条,左边是jSplitPane_Lef,右边是jSplitPane_Right。 FtpFrame把LeftPanel,RightPanel,BottomPanel,PreviewWrapperPanel这几部分安装在对应分割窗格中;LeftPanel,RightPanel,BottomPanel是在CustomizedController.Java中定义,PreviewWrapperPanel是在Preview包中定义。 l LeftPanelCtrl.java: LocalFilesPanel是当地文件面板,用表格来显示当地文件信息。上边是组合框,显示了磁盘分区经过这里能够改变根目录。表格中显示了文件信息,包含文件名,文件系统图标,大小,最近修改日期,属性等。选中一个文件后能够实施上载和删除操作。文件夹会递归删除。GetCurrentPath()函数返回目前路径。DisplayPathFiles()函数在列表中显示指定目录下文件。 l RightPanlCtrl.java:定义右上边控件。含有类有: (1)FtpServerOptionPanel类是服务器连接选项面板,包含服务器地址,端口,用户名,密码等,还包含最上端搜索选项。openRemoteFilesPanel()函数在下面TabbedPane中打开一个新服务器面板,连接服务器。 (2)RemoteFilesPanel类关键功效是连接Ftp服务器并显示文件。这里会进行文件上载,下载及预览等操作。RemoteFilesPanel 内部类TransferController负责调用FtpClient类提供功效和服务器进行交互,完成用户指定文件操作。TransferController还有三个内部类:ConnThread类是负责连接服务器线程(新开一个线程,目标是避免连接时阻塞),DownloadFileThread类是下载文件线程,UploadFileThread类是上载文件线程。 (3)SearchResultPanel类是显示搜索结果类,它有两个子类SearchResultPanelWithinSearchEngine类功效是在搜索引擎中搜索,SearchResultPanelWithinServer类功效是站内搜索。搜索引擎搜索会调用search包中程序,搜索引擎搜索完成后search包经过OnSearchFinished()来通知SearchResultPanelWithinSearchEngine类,然后显示搜索结果。 (4)RightTabbedPane是显示ftp服务器文件表格TabbedPane类。 l BottomPanelCtrl.java:实现主窗口下部面板及控件,显示下载情况,服务器连接信息。包含关键类有: (1)RemoteMessPanel类是显示服务器连接信息面板。需要显示ftp服务器传回信息,并在显示前进行编码转换,还需要显示当地相关信息。 (2)DownloadingMessPanel类是显示资源下载信息面板,显示下载资源大小,下载速度,已用时间,剩下时间等信息。 3.5步骤逻辑 总体步骤: 上载 预览 FtpClient.class 显示下载信息 search RightPanel.class PreviewWrapperPanel BottomPanel.class LeftPanel.class FtpFrame.class MainFrame.class 3.6 简单类图 4.模块2(client)设计说明 4.1模块描述 实现ftp用户端FtpClient,有两个文件FtpClient.java和FtpLoginException.java,前者具体实现了ftp协议,后者是为登录时可能抛出异常而定义类。 4.2功效 实现ftp用户端FtpClient,实现了ftp协议,用于和ftp服务器通讯和数据传输。 4.3交互模块 ui 4.4 模块设计 该模块中关键文件,文件中包含关键类及其功效和和其它包交互以下: l FtpClient.java:含有类FtpClient,,该类会被ui包中界面类调用,完成ftp功效。 其中要功效实现有: 在结构函数中依据ip和port建立和服务器连接; 登录服务器login()(用户名,密码); 向服务器追加ascii文件appendAscii(); 向服务器追加二进制文件appendBinary(); 设置数据传输方法为二进制binary,ascii码scii(); 改变工作目录cd(String newdirectory); 返回上一级目录cdup(); 断开连接closeserver(); 删除文件 delete(文件名); 删除文件夹 rmdir(文件夹名字); 用ascii模式下载文件getAscii(文件名); 用二进制方法下载文件getBinary(文件名); 取得服务器响应字串 getResponseString(); 列举目前目录下文件list(),指定目录下文件list(文件名); 创建文件夹mkdir(文件夹名); 上载Ascii文件putAscii(文件路径),二进制putBinary()。 l FtpLoginException.java:含有类FtpLoginException,定义登录时可能抛出异常。 5.模块3(common)设计说明 5.1模块描述 存放部分辅助类,系统开启时会从properties.xml读取部分配置信息。能够经过手动修改配置信息来修改系统一些显示属性如字体,字大小等。 5.2功效 存放部分辅助类,比如用于读取和存放系统配置属性类。用于将“属性名-属性值”对存放在properties.xml文件中类。 5.3交互模块 ui 5.4 模块设计 该模块中关键文件,文件中包含关键类及其功效和和其它包交互以下: l Properties.java: 含有类Properties,这是读取和存放系统配置属性类。其关键功效实现以下: 函数getProperty()依据属性名取得属性值,假如属性不存在返回null; 函数getProperties()依据属性名列表返回属性值列表,返回值为ArrayList,其中每一个元素是PropertyValue对象; 函数setProperty()设置单个属性值; 函数setProperties()设置多个属性值; 函数readXMLFromFile()读取xml文件; 函数buildXML()在xml文档中存入数据; l PropertyValue.java:含有类PropertyValue,在xml文件中存放“属性名-属性值”对。 6.模块4(search)设计说明 6.1模块描述 包search关键完整天网和baidu两项搜索功效。它含有以下6个类:NetResource,URLParser,ConnectionTester,SearchResultRetriever,EmbeddedFileRetriever,HttpRetriever。 6.2功效 关键完整天网和baidu两项搜索功效。 6.3交互模块 ui 6.4 模块设计 该模块中关键文件,文件中包含关键类及其功效和和其它包交互以下: l NetResource.java:含有类NetResource,NetResource是对被天网索引网络文件资源抽象,其字段有:fileURL(文件资源URL,包含协议、主机字符串、路径、文件名)、fileDate(天网将它编入索引日期)、fileSize(文件大小)、responseTime(以毫秒计算响应时间)。 函数smallerThan(NetResource nr)比较本条资源响应时间是否比nr响应时间小,因为要求响应时间小NetResource排在对应时间大前面。 l URLParser.java:含有类URLParser,URLParser是一个工具箱类,它提供了若干静态方法,对一个文件资源URL进行解析。其实现方法有: 函数getProtocol():给定一个URL,返回其协议名称; 函数getHostName():给定一个URL,返回主机字符串; 函数getPath():给定一个URL,返回文件在主机中存放路径; 函数getFileName():给定一个URL,返回文件名; 函数getSuffix():给定一个URL,返回该URL对应文件资源后缀名。 l ConnectionTester.java:含有类ConnectionTester,ConnectionTester是用来对网络文件资源进行连接测试类,它实现了Runnable接口。SearchResultRetriever类将ConnectionTester类作为模板生成很多线程并发地对各文件资源进行连接并测试对应时间,以提升程序效率。每个网络文件全部是用NetResource类表示。对于ftp文件,ConnectionTester尝试以匿名方法连接。假如连接失败则丢弃该资源URL,若连接成功则依据连接它响应时间将其插入已排序NetResource列表中。对于http文件,ConnectionTester建立一个新URLConnection,并调用connect方法尝试连接。假如连接失败则丢弃该资源URL,若连接成功则依据连接它响应时间将其插入已排序NetResource列表中。在结构ConnectionTester类对象时必需指定一个由NetResource类对象组成ArrayList,其中每个NetResource全部需要测速。 该类功效关键由函数run()实现。 l SearchResultRetriever.java:含有类SearchResultRetriever,SearchResultRetriever类依据给定关键字和文件类型向天网文件搜索引擎发送请求,对各返回结果页面源文件进行分析,将全部网络文件资源URL进行分类(利用天网分类方法)并保留在10个ArrayList中。该类函数以下: 函数test()判定这个"下一页"对应URL是否正当,该问题仅在用程序访问天网时需要考虑 函数retrieve()依据输入关键字String[] tokens向天网发出请求,取得返回URL集合,ArrayList0保留图片-imagefile;ArrayList1保留音乐-soundfile;ArrayList2保留电影-videofile;ArrayList3保留压缩-zipfile;ArrayList4保留文档-docfile; ArrayList5保留程序-programfile;ArrayList6保留源码-srcfile;ArrayList7保留网页-webfile;ArrayList8保留目录-dirfile;ArrayList9保留其它-file。对每一个ArrayList生成若干ConnectionTester线程进行响应时间测试,在这些线程返回后每一个ArrayList中网络文件资源全部已经根据响应时间递增次序排列,而无法连接文件资源URL全部已被丢弃。SearchResultRetriever类使用方法是调用它函数retrieve(String[] tokens, int type),其中tokens为表示关键字字符串数组;type表明用户需要搜索什么类型文件。该方法将上述10个ArrayList组成一个数组并返回。 l EmbeddedFileRetriever.java:含有类EmbeddedFileRetriever,EmbeddedFileRetriever类作用是提取网页汉字件链接,它实现了Runnable接口。HttpRetriever类将EmbeddedFileRetriever类作为模板生成若干线程并发地提取不一样网页内文件链接,以提升程序效率。EmbeddedFileRetriever类维护了一个网页后缀名列表,因为程序只提取对应文件资源URL,我们需要分辨哪些后缀名是对应网页从而立即将它们丢弃。在结构类EmbeddedFileRetriever对象时必需指明从哪个网页URL中提取文件URL,和这些URL保留在哪个ArrayList中。 函数hasFileSuffix()功效是判定一个url是否链向一个文件; 函数listFiles(String URLStr)将URLStr对应页面中全部文件加到ArrayList中并返回。 l HttpRetriever.java:含有类HttpRetriever,HttpRetriever类功效是依据给定关键字向baidu搜索引擎发送请求,抽取前20个返回结果对应网页URL。对每一个页面生成一个EmbeddedFileRetriever对象提取其中对文件链接,并添加到一个ArrayList中。每个页面全部处理完成后返回这个ArrayList。在利用搜索文件时,应该提供尽可能多信息,如输入歌手姓名和“mp3”作为关键字。假如仅给定歌手名称则搜索效果不佳。这些功效全部是由函数retrieve()实现。 6.5类图 7.模块5(preview)设计说明 7.1模块描述 系统预览部分,实现了不一样类型资源预览,并能够依据用户选择格式显示资源内容。 7.2功效 多种类型资源预览,能够依据用户选择格式显示资源内容,并能够存放用户选择预览内容。 7.3交互模块 ui 7.4 模块设计 该模块中关键文件,文件中包含关键类及其功效和和其它包交互以下: l PreviewWrapperPanel.java:含有类PreviewWrapperPanel,这是系统预览部分最基础类,它派生自Jpanel类,关键由3部分组成,其中PreviewPanel负责显示预览,StatusBarPanel负责显示预览文件加载进度,ControlButtonPanel负责和预览相关控制。在显示资源预览内容前应该先判定该资源类型是否能够预览。 l PreviewPanel.java:含有类PreviewPanel,这是一个抽象类,负责资源内容预览,有5个子类,这5个子类分别是 PicturePreviewPanel类:负责图像文件预览; PDFPreviewPanel类:负责PDF文件预览; TxtPreviewPanel类:负责文本文件预览; NoFileSelectedPreviewPanel类:负责当用户没有选项文件预览时显示提醒信息; NoPreviewPanel类:负责当用户选择文件不能预览时,显示提醒信息。 PreviewPanel类实现关键功效是结构预览窗口实例,有两种结构方法:以默认大小结构或以指定大小结构。 PreviewPanel类函数preview()是一个虚函数,系统能够依据不一样子类调用不一样预览函数。 l PicturePreviewPanel.java:含有类PicturePreviewPanel,它关键功效是图像文件预览,其中有4个内部类,分别是: ImagePanel类:这是显示图像JPanel,关键功效是绘图; PopupListener类:用户单击右键弹出菜单类,右键功效是设置图像显示是“适合窗口”还是“原始大小”; picPopupMenuListener类:负责对右键菜单中事件响应。 PictureFromDiskLoader类:负责从磁盘上加载图像文件。 l TxtPreviewPanel.java: 含有类TxtPreviewPanel,它关键功效是文本文件预览,其中有5个内部类,分别是: PopupListener类:用户单击右键弹出菜单类, txtPopupMenuListener类:负责对右键菜单中事件响应; FileFromDiskLoader类:负责从磁盘加载文本文件; FontChooseDialog类:字体选择对话框; FontDialogEditorMediator类:负责对话框选择字体和预览区域显示字体之间更新。 l PDFPreviewPanel.java:含有类PDFPreviewPanel,该类使用第三方软件包JPedal来实现pdf文件预览。 l ControlButtonPanel.java:含有类ControlButtonPanel,该类功效是依据用户选择保留预览资源,即把预览文件存放到用户选定目录。她功效关键由两个内部类来实现,分别是: saveAction类:实现了接口ActionListener,是对预览资源保留按钮响应,实现预览资源保留功效,把预览文件存放到用户选定目录。 ExampleFileFilter类:继承自类FileFilter,实现用户选择文件保留目录功效,即弹出文件选择对话框。 7.5类图- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统软件 详细 设计 项目 说明 指导书
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文