系统软件详细设计说明书

合集下载

软件详细设计说明书例

软件详细设计说明书例

软件详细设计说明书例一、引言在软件开发过程中,详细设计是连接概要设计和编码实现的重要环节。

它为软件的编码提供了具体的指导,包括模块的内部结构、算法、数据结构、接口等方面的详细描述。

本文将以一个简单的学生管理系统为例,展示一份软件详细设计说明书的范例。

二、软件概述(一)软件名称学生管理系统(二)软件功能1、学生信息管理:包括学生基本信息的录入、修改、查询和删除。

2、课程管理:课程信息的添加、修改、查询和删除。

3、成绩管理:学生成绩的录入、查询和统计分析。

三、模块设计(一)学生信息管理模块1、学生信息录入子模块输入:学生的学号、姓名、性别、出生日期、班级等信息。

处理:对输入的信息进行合法性校验,如学号的唯一性检查、出生日期的格式检查等。

将合法的信息保存到数据库中。

输出:提示信息,如“录入成功”或“录入失败,请重新输入”。

2、学生信息修改子模块输入:要修改的学生学号和修改后的信息。

处理:根据学号查询出对应的学生信息,将修改后的信息更新到数据库中。

输出:提示信息,如“修改成功”或“修改失败,请重新输入”。

3、学生信息查询子模块输入:查询条件,如学号、姓名、班级等。

处理:根据查询条件从数据库中检索出符合条件的学生信息。

输出:查询结果,以列表形式展示学生的基本信息。

4、学生信息删除子模块输入:要删除的学生学号。

处理:根据学号从数据库中删除对应的学生信息。

输出:提示信息,如“删除成功”或“删除失败,请重新输入”。

(二)课程管理模块1、课程信息添加子模块输入:课程编号、课程名称、学分、授课教师等信息。

处理:对输入的信息进行合法性校验,如课程编号的唯一性检查。

将合法的信息保存到数据库中。

输出:提示信息,如“添加成功”或“添加失败,请重新输入”。

2、课程信息修改子模块输入:要修改的课程编号和修改后的信息。

处理:根据课程编号查询出对应的课程信息,将修改后的信息更新到数据库中。

输出:提示信息,如“修改成功”或“修改失败,请重新输入”。

软件详细设计说明书

软件详细设计说明书

软件详细设计说明书1. 引言本软件详细设计说明书旨在对软件的架构、模块、数据结构、算法等进行详细说明,以便于开发人员进行开发和维护工作。

本文档将介绍软件的总体设计思路、模块划分和模块之间的关系、数据结构和算法的选择、接口设计及其功能和参数的说明等内容。

2. 总体设计本软件旨在实现一个功能强大、可靠性高的软件系统。

为了达到这一目标,我们采用了模块化设计的方式来组织和管理代码。

2.1 模块划分在本软件中,我们将功能划分为以下几个模块:1.用户模块:负责处理用户登录、注册、身份验证等功能。

2.数据库模块:负责与数据库交互,实现数据的增删改查等操作。

3.界面模块:负责用户界面的展示和交互。

4.业务逻辑模块:负责实现各种业务逻辑,如订单管理、库存管理等功能。

每个模块都有明确的职责和接口定义,模块之间通过接口进行通信和数据传递。

2.2 模块之间的关系模块之间的关系如下图所示:用户模块 - 数据库模块|界面模块|业务逻辑模块用户模块与数据库模块之间通过接口进行数据交互,用户模块与界面模块之间通过事件触发和回调函数进行交互,界面模块与业务逻辑模块之间通过函数调用进行交互。

3. 数据结构和算法为了高效地存储和处理数据,我们采用了以下数据结构和算法:•用户数据存储:使用关系型数据库来存储用户信息,采用索引加速查询。

•图形界面:采用MVC模式实现界面的设计和交互,使用栈来实现界面导航。

•业务逻辑处理:使用优化的排序算法和查找算法来处理业务逻辑中的排序和查找操作,提高系统的运行效率。

4. 接口设计在本节中我们将对各个模块的接口进行详细说明。

4.1 用户模块接口用户模块接口定义如下:public interface IUser {// 用户登录public boolean login(String username, String password);// 用户注册public boolean register(String username, String password, String em ail);// 用户身份验证public boolean authenticate(String token);// 用户注销public void logout();}4.2 数据库模块接口数据库模块接口定义如下:public interface IDatabase {// 添加数据public boolean addData(Data data);// 删除数据public boolean deleteData(Data data);// 修改数据public boolean updateData(Data data);// 查询数据public Data queryData(String condition);}4.3 界面模块接口界面模块接口定义如下:public interface IUI {// 显示界面public void show();// 隐藏界面public void hide();// 处理用户交互事件public void handleEvent(Event event);// 设置回调函数public void setCallback(Function callback);}4.4 业务逻辑模块接口业务逻辑模块接口定义如下:public interface ILogic {// 处理订单管理逻辑public void handleOrder(Order order);// 处理库存管理逻辑public void handleInventory(Inventory inventory);// ...}5. 功能和参数说明在本节中我们对软件的各个功能和参数进行详细说明。

软件详细设计说明书 例

软件详细设计说明书 例

软件详细设计说明书例软件详细设计说明书一、引言本文档旨在详细描述软件的设计方案和实现细节,提供给开发人员和其他相关人员作为参考和指导。

本软件详细设计说明书主要包括软件系统的总体架构、各个模块的设计细节和算法等内容。

二、总体架构设计1. 系统概述本软件是一个xxx系统,旨在实现xxx功能。

系统分为xxx模块、xxx模块和xxx模块三个主要模块。

其中,xxx模块负责xxx功能,xxx 模块负责xxx功能,xxx模块负责xxx功能。

2. 系统设计原则为了保证软件的高性能、可扩展性和易用性,我们在系统设计中遵循以下原则:(1)模块化设计:将系统拆分为多个独立的模块,每个模块之间职责清晰,便于开发和维护。

(2)封装性设计:将每个模块的内部细节进行封装,提供简洁的接口给其他模块使用,减少模块间的耦合。

(3)可配置性设计:通过配置文件或参数的方式,实现软件的可定制性,以满足不同用户的需求。

(4)高性能设计:通过算法优化和资源管理,提高软件的运行效率和响应速度。

三、模块设计1. xxx模块(1)模块介绍:该模块负责xxx功能,主要包括xxx、xxx和xxx功能。

(2)模块接口设计:- 函数1:用于实现xxx功能,输入参数为xxx,输出参数为xxx。

- 函数2:用于实现xxx功能,输入参数为xxx,输出参数为xxx。

2. xxx模块(1)模块介绍:该模块负责xxx功能,主要包括xxx、xxx和xxx功能。

(2)模块接口设计:- 函数1:用于实现xxx功能,输入参数为xxx,输出参数为xxx。

- 函数2:用于实现xxx功能,输入参数为xxx,输出参数为xxx。

3. xxx模块(1)模块介绍:该模块负责xxx功能,主要包括xxx、xxx和xxx功能。

(2)模块接口设计:- 函数1:用于实现xxx功能,输入参数为xxx,输出参数为xxx。

- 函数2:用于实现xxx功能,输入参数为xxx,输出参数为xxx。

四、数据库设计1. 数据库结构设计为了支持软件的正常运行,我们设计了以下数据库表:(1)表1:用于存储xxx信息,包括xxx字段、xxx字段和xxx字段。

系统软件详细设计说明书

系统软件详细设计说明书

系统软件详细设计说明书1. 引言本文档旨在为系统软件的详细设计提供指导,并描述系统软件的架构、各个模块的功能和接口设计。

详细设计是在系统需求分析基础上进行的,通过分析系统需求,将其转化为具体的系统设计。

本文档将详细阐述系统软件的设计方案,为开发团队提供参考和实施依据。

2. 系统架构系统软件采用三层架构,包括表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。

2.1 表示层表示层负责用户与系统的交互,提供用户界面和用户输入的处理。

采用Web应用技术,使用HTML、CSS和JavaScript 进行界面设计和交互操作。

用户界面应简洁友好,符合用户使用习惯。

2.2 业务逻辑层业务逻辑层负责处理业务逻辑,包括数据处理、业务规则、算法等。

主要使用Java语言开发,通过调用数据访问层的接口,访问数据库,并将处理结果返回给表示层。

2.3 数据访问层数据访问层负责数据的存储和访问,通过数据库连接池与数据库进行通信。

主要使用SQL语言进行数据查询、更新和删除操作,确保数据的一致性和完整性。

3. 模块设计系统软件划分为以下几个模块:用户管理、订单管理、商品管理、库存管理和报表统计。

3.1 用户管理模块用户管理模块负责用户的注册、登录和权限控制。

用户可以通过注册功能创建账号,并通过登录功能进行身份验证。

系统根据用户的角色分配相应的权限,确保用户只能访问其有权限的功能。

3.1.1 注册功能注册功能提供用户输入注册信息,并进行新用户的注册。

注册信息包括用户名、密码、邮箱等,系统将验证输入的信息的合法性,并生成用户唯一标识。

3.1.2 登录功能登录功能提供用户输入用户名和密码进行身份验证,验证通过后,系统将生成用户身份令牌,并保存在客户端的Cookie中。

用户在访问其他功能时,系统通过验证令牌来确定用户的身份。

3.1.3 权限控制权限控制功能根据用户的角色分配相应的权限,不同角色具有不同的功能访问权限。

软件详细设计说明书例

软件详细设计说明书例

软件详细设计说明书例一、引言在软件开发过程中,详细设计说明书是一份至关重要的文档,它为程序员提供了详细的指导,使得他们能够准确理解软件的功能需求,并将其转化为可实现的代码。

本文将以一个简单的学生成绩管理系统为例,展示一份软件详细设计说明书的基本结构和内容。

二、软件概述(一)软件名称学生成绩管理系统(二)软件功能1、学生信息管理:包括学生基本信息的录入、修改、查询和删除。

2、课程信息管理:课程的添加、修改、查询和删除。

3、成绩录入:教师能够录入学生的课程成绩。

4、成绩查询:学生和教师可以查询学生的成绩。

5、成绩统计分析:能够对学生的成绩进行统计分析,如平均分、最高分、最低分等。

(三)运行环境1、操作系统:Windows 10 及以上版本。

2、数据库:MySQL 80 及以上版本。

3、开发语言:Java。

三、模块设计(一)学生信息管理模块1、功能描述实现学生基本信息的增删改查操作。

提供学生信息的批量导入和导出功能。

2、数据结构学生表(Student):包含学号(StudentID)、姓名(StudentName)、性别(Gender)、出生日期(BirthDate)等字段。

3、算法流程新增学生信息:用户输入学生信息,系统进行合法性校验,然后将数据插入到学生表中。

修改学生信息:用户选择要修改的学生,输入修改后的信息,系统更新学生表中的对应记录。

删除学生信息:用户选择要删除的学生,系统删除学生表中的对应记录。

查询学生信息:用户输入查询条件,系统从学生表中检索符合条件的记录并展示。

(二)课程信息管理模块1、功能描述课程的添加、修改、删除和查询操作。

课程安排的设置。

2、数据结构课程表(Course):包含课程编号(CourseID)、课程名称(CourseName)、学分(Credit)等字段。

3、算法流程新增课程:用户输入课程信息,系统进行校验后插入到课程表中。

修改课程:用户选择要修改的课程,输入修改内容,系统更新课程表中的对应记录。

(完整版)软件系统详细设计说明书模板

(完整版)软件系统详细设计说明书模板

(完整版)软件系统详细设计说明书模板xxxxx系统详细设计说明书版本历史修改记录⽬录1引⾔ (5)1.1编写⽬的 (5)1.2背景 (5)1.3参考资料 (5)1.4术语定义及说明 (5)2设计概述 (5)2.1任务和⽬标 (5)2.1.1需求概述 (5)2.1.2运⾏环境概述 (5)2.1.3条件与限制 (6)2.1.4详细设计⽅法和⼯具 (6)3系统详细需求分析 (6)3.1详细需求分析 (6)3.2详细系统运⾏环境及限制条件分析接⼝需求分析 (6)4总体⽅案确认 (6)4.1系统总体结构确认 (6)4.2系统详细界⾯划分 (7)4.2.1应⽤系统与⽀撑系统的详细界⾯划分 (7) 4.2.2系统内部详细界⾯划分 (7)5系统详细设计 (7)5.1系统程序代码架构设计 (7)5.1.1UI(User Interface)⽤户界⾯表⽰层 (7)5.1.2BLL(Business Logic Layer)业务逻辑层 (8) 5.1.3DAL(Data Access Layer)数据访问层 (8) 5.1.4Common类库 (8)5.1.5Entity Class实体类 (8)5.2系统结构设计及⼦系统划分 (8)5.3系统功能模块详细设计 (9)5.3.1XX⼦系统 (9).1XX模块 (9)列表和分页 (9)创建XX (9).2XX模块 (9)XX列表 (9)XX修改 (9)5.3.2XX⼦系统 (9)5.3.6.1⽤户管理模块 (9)5.3.6.2⾓⾊管理模块 (14)5.3.6.3系统设置模块 (14)5.3.6.4系统登录注销模块 (14)5.4系统界⾯详细设计 (14)5.4.1外部界⾯设计 (14)5.4.2内部界⾯设计 (14)5.4.3⽤户界⾯设计 (14)6数据库系统设计 (14)6.1设计要求 (14)6.2信息模型设计 (14)6.3数据库设计 (14)6.3.1设计依据 (14)6.3.2数据库种类及特点 (15)6.3.3数据库逻辑结构 (15)6.3.4物理结构设计 (15)6.3.5数据库安全 (15)6.3.6数据字典 (15)7信息编码设计 (15)7.1代码结构设计 (15)7.2代码编制 (15)1引⾔1.1编写⽬的说明编写详细设计⽅案的主要⽬的。

软件项目详细设计说明书模板

软件项目详细设计说明书模板

软件项目详细设计说明书模板目录第一章编写目的 (4)1.1作用 (4)1.1.1 预期读者 (4)1.2背景 (4)1.2.1 系统名称及版本号 (4)1.2.2 使用者 (4)1.2.3 与其它系统的关系 (4)1.3术语和缩写 (4)1.4参考资料 (5)第二章总体架构 (5)2.1系统说明 (5)2.2运行环境 (5)2.3基本设计概念以及处理流程 (5)2.4总体功能结构图 (5)2.5子系统清单 (5)2.6可测试性、维护/升级设计 (5)2.7可配置设计 (5)2.8尚未解决的问题 (6)第三章系统功能模块 (6)3.1模块名称 (6)3.1.1模块功能描述 (6)3.1.2模块框架设计以及处理流程 (6)3.1.3子模块划分列表 (6)3.1.4子模块设计说明 (6)3.2模块名称 (6)3.2.1模块功能描述 (6)3.2.2模块框架设计以及处理流程 (6)3.2.3子模块划分列表 (6)3.2.4子模块设计说明 (7)第四章接口说明 (7)4.1用户接口 (7)4.2外部接口 (7)4.3内部接口 (7)第五章数据结构设计 (7)5.1数据库环境说明 (7)5.1.1应用环境 (7)5.1.2参数配置 (7)5.2数据库设计 (7)5.2.1逻辑设计 (8)5.2.2物理设计 (8)5.2.2.1数据表汇总 (8)5.2.2.2表结构设计 (8)5.2.3安全性设计 (8)5.2.4备份恢复设计 (9)5.3数据库管理维护 (9)5.3.1数据库安装配置 (9)5.3.2数据库日常维护 (9)第六章系统出错处理设计 (9)6.1出错信息 (9)6.2出错处理 (9)第一章编写目的1.1作用【说明】《软件概要设计说明书》是在《软件需求规格说明书》的基础上,通过我方与用户方反复沟通形成的。

它必须充分反映《软件需求规格说明书》中的用户需求,如有改动必须征得用户的认可。

它将作为项目验收时重要的的标准和依据。

软件详细设计说明书

软件详细设计说明书

软件详细设计说明书软件详细设计说明书1. 引言本文档旨在为软件的详细设计阶段提供指导,包括软件的架构、模块设计和接口定义等内容。

详细设计是在需求分析和概要设计的基础上,进一步细化软件系统的结构和功能。

2. 软件架构本软件采用三层架构,包括表示层、业务逻辑层和数据访问层。

2.1 表示层表示层负责与用户进行交互,接收用户的输入,并向用户展示系统的输出。

该层使用HTML、CSS和JavaScript等技术实现,通过Web浏览器与用户进行交互。

2.2 业务逻辑层业务逻辑层实现系统的核心功能,负责处理用户输入和输出的中间逻辑。

该层与表示层和数据访问层进行交互,调用相应的服务和数据访问接口。

2.3 数据访问层数据访问层负责与数据库进行交互,负责数据的读取、写入和更新等操作。

该层使用SQL语言与数据库进行通信,提供数据访问接口供业务逻辑层调用。

3. 模块设计根据系统的功能划分,本文档将系统划分为以下模块:3.1 用户管理模块用户管理模块负责用户的注册、登录和权限管理等功能。

该模块包括以下子模块:- 用户注册- 用户登录- 权限管理3.2 商品管理模块商品管理模块负责商品的添加、删除和查询等功能。

该模块包括以下子模块:- 添加商品- 删除商品- 查询商品3.3 订单管理模块订单管理模块负责订单的创建、修改和查询等功能。

该模块包括以下子模块:- 创建订单- 修改订单- 查询订单3.4 支付管理模块支付管理模块负责支付功能的实现。

该模块包括以下子模块:- 支付接口对接- 支付结果通知4. 接口定义4.1 用户管理接口4.1.1 用户注册接口- 接口地址:`/user/register`- 请求方法:POST- 请求参数:- 用户名:`username`(字符串)- 密码:`password`(字符串)- 响应参数:- 注册结果:`result`(布尔值,true表示注册成功,false表示注册失败) 4.1.2 用户登录接口- 接口地址:`/user/login`- 请求方法:POST- 请求参数:- 用户名:`username`(字符串)- 密码:`password`(字符串)- 响应参数:- 登录结果:`result`(布尔值,true表示登录成功,false表示登录失败) 4.2 商品管理接口4.2.1 添加商品接口- 接口地址:`/product/add`- 请求方法:POST- 请求参数:- 商品名称:`name`(字符串)- 商品价格:`price`(浮点数)- 响应参数:- 添加结果:`result`(布尔值,true表示添加成功,false表示添加失败) 4.2.2 删除商品接口- 接口地址:`/product/delete`- 请求方法:POST- 请求参数:- 商品ID:`id`(整数)- 响应参数:- 删除结果:`result`(布尔值,true表示删除成功,false表示删除失败) 4.3 订单管理接口4.3.1 创建订单接口- 接口地址:`/order/create`- 请求方法:POST- 请求参数:- 用户ID:`userId`(整数)- 商品ID:`productId`(整数)- 响应参数:- 创建结果:`result`(布尔值,true表示创建成功,false表示创建失败)4.3.2 查询订单接口- 接口地址:`/order/query`- 请求方法:GET- 请求参数:- 用户ID:`userId`(整数)- 响应参数:- 订单信息:`order`(结构体,包括订单ID、用户ID和商品ID等字段)5. 总结本文档详细介绍了软件的架构、模块设计和接口定义等内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统软件详细设计说明书1.引言1.1编写目的本详细设计说明书是针对网络信息体系结构的课程作业而编写。

目的是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试作准备。

本详细设计说明书的预期读者为本项目小组的成员以及对该系统感兴趣,在以后想对系统进行扩展和维护的人员。

2. 系统的结构●ui:系统界面部分,负责接受用户输入,显示系统输出,负责其他模块功能的协调调用,并含有站内搜索功能,即在用户指定的已打开的ftp站点中搜索用户需要的资源。

ui 部分调用common部分的功能读取xml文件中保存的界面元素属性信息,用户最近访问过的10个ftp信息,用户选择的下载的ftp内容列表及其他需要通过xml文件保存的信息。

●client:实现ftp客户端的功能,ftp连接,ftp上传及下载:上传或下载用户指定的资源,并返回相应的信息。

●search:资源实时检索部分,根据用户输入的资源名称关键字,资源类型和选择的检索方式检索用户需要的资源,并验证资源的可用性,返回可用资源及其大小,速度等相关信息。

●preview:资源预览部分,显示用户选择的资源的部分内容,以使用户决定是否需要该资源。

preview部分调用common部分读取属性文件的内容亦显示预览资源内容的显示格式。

3.模块1(ui)设计说明3.1模块描述实现用户界面的包,含有11个文件51个类,是本系统中最复杂的代码。

3.2功能负责接受用户输入,显示系统输出,其他模块功能的协调调用,并含有站内搜索功能,即在用户指定的已打开的ftp站点中搜索用户需要的资源。

3.3交互的模块client,search,preview,common。

3.4 模块设计该模块中的主要文件,文件中包含的主要类及其功能和与其它包的交互如下:●MainFrame.java:MainFrame是含有主函数的类,也是lyra客户端开始执行的类,它先后进行资源的初始化,显示主界面等工作,根据屏幕大小设置界面大小,设置界面的观感。

●FtpFrame_AboutBox.java:显示关于窗口的类,当用户点击帮助菜单中的关于菜单项时会弹出关于对话框。

●Tools.java:FileTools是文件操作辅助类,可以实现文件的递归删除等。

●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读取搜索的类型。

●Constants.java:放置系统运行时使用的一些常量,initcontent()函数对所有常量进行初始化,这个函数在MainFrame中被调用一次。

iconHashMap是hash表,用于存放文件的系统图标。

●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即组合框单元格绘制器,用于在本地路径选择的下拉列表中显示磁盘图标。

●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);不分类型,将所有资源放在一个数组表中。

●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包中定义的。

●LeftPanelCtrl.java: LocalFilesPanel是本地文件面板,用表格来显示本地文件的信息。

上边是组合框,显示了磁盘分区通过这里可以改变根目录。

表格中显示了文件的信息,包括文件名,文件的系统图标,大小,最近修改日期,属性等。

选中一个文件后可以执行上载和删除操作。

文件夹会递归的删除。

GetCurrentPath()函数返回当前的路径。

DisplayPathFiles()函数在列表中显示指定目录下的文件。

●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类。

BottomPanelCtrl.java:实现主窗口下部面板及控件,显示下载情况,服务器连接信息。

包含的主要类有:(1)RemoteMessPanel类是显示服务器连接信息的面板。

需要显示ftp服务器传回的信息,并在显示前进行编码转换,还需要显示本地的相关信息。

(2)DownloadingMessPanel类是显示资源下载信息的面板,显示下载资源的大小,下载速度,已用时间,剩余时间等信息。

3.5流程逻辑总体流程:4.模块2(client)设计说明4.1模块描述实现ftp客户端FtpClient,有两个文件FtpClient.java和FtpLoginException.java,前者具体实现了ftp协议,后者是为登录时可能抛出的异常而定义的类。

4.2功能实现ftp客户端FtpClient,实现了ftp协议,用于和ftp服务器通讯和数据传输。

4.3交互的模块ui4.4 模块设计该模块中的主要文件,文件中包含的主要类及其功能和与其它包的交互如下: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()。

相关文档
最新文档