计算机与信息工程学院
软件架构设计说明书
专业年级: 题 目: 组 次: 组 员: 2008 软件工程
网络硬盘 第二组 何 阳 20083841 李锦刚 20083846 刘宗智 20083849 芦明威 20083850 王子龙 20083855 谢 鹏 20083857 张玉祥 20083862
指导教师:
吴光伟
2011
年
8
月
软件架构设计说明书
一、简介
1、文档介绍
本文档全面与系统的介绍了 MemoryBox 网络硬盘系统的构架设计, 并且使用 多种视图来从不同角度描述本系统的各个主要的方面,以满足各种不同涉众(用 户、设计人员)对于本系统不同关注焦点与需求。本文档记录并表述了系统架构 设计人员对于系统架构方面做出的重要决策。 项目所有成员根据用户需求通过小组讨论获得项目开发计划, 制定系统架构 方案; 项目组长通过个人所长分配相应的项目开发任务;程序设计人员按照架构 方案进行系统详细功能的开发;项目测试人员根据构架设计项目的总体测试框 架;构架文档用于各个构件的实施、集成及测试。
2、文档目的
本文档用于指导项目开发人员进行系统功能详细设计;测试人员的测试框 架设计;各个构件的实施与集成等。
3、文档范围
本软件架构文档适用于 MemoryBox 系统的总体应用构架。
4、读者对象
项目组长、程序开发人员、测试人员等相关工作人员。
5、参考资料
《软件项目开发文档》 《软件架构技术》
6、术语与缩写解释
MVC: (Model-View-Controller)中文翻译为"模型-视图-控制器"。
-2-
软件架构设计说明书
MySql:MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。 CVS:(Concurrent Versions System )CVS 是一个 C/S 系统,多个开发人员 通过一个中心版本控制系统来记录文件版本, 从而达到保证文件同步的目的。 CVS 版本控制系统是一种 GNU 软件包,主要用于在多人开发环境下的源码的维护。 MyEclipse: (MyEclipse Enterprise Workbench ,简称 MyEclipse) 一个 十分优秀的用于开发 Java, J2EE 的 Eclipse 插件集合。功能丰富的 JavaEE 集成 开发环境 。 JUnit:JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架 (regression testing framework) 。Junit 测试是程序员测试,即所谓白盒测 试。 Log4J:Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,可以控 制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等。
二、系统概述
MemoryBox 是一个运用 J2EE 技术,通过 C/S 模式实现用户管理及用户资料 存储的网络硬盘系统。客户端提供用户操作界面,服务端处理用户操作请求。 用户初次登陆需要通过注册获得系统的使用权限, 注册通过后进入系统主界 面,可以进行文件的上传(包括文档、音频、视频等类型的文件)、下载、共享、 删除。同时实现了多文件同时上传、同时下载、文件的断点续传及断点下载等功 能。用户通过其他供应商接口可以实现开通会员等提升用户权限及服务的操作。
三、设计约束
命名约束:类名、方法名与参数名统一采用驼峰法,类名首字母大写,参数 与方法名首字母小写;
-3-
软件架构设计说明书
命名协定:
元 素 该项目的包结构: com.lmemorybox.view 包 com.lmemorybox.action Com.lmemorybox.dao com.lmemorybox.util com.lmemorybox.server 类 接口 所有界面 所有的动作事件 所有数据库访问类 公用组件包 服务逻辑包 命 名 协 定
类的名称应该清楚的标识它所表示的实体,若有多个单词组成,则每个单词首字母 大写。例如,代表用户的类的名字应该叫做‘User’ 。 与类一样 方法(函数)名应该根据它所完成的功能或者返回值决定它的命名。例如, 返回值为布尔型: isMethodName()或 hasMethodName() 返回值为其他类型:getMethodName() 执行删除数据功能:deleteMethodName() 执行修改数据功能:updateMethodName() 执行添加数据功能:addMethodName()
方法(函数)
变量
静态最终变量字母均大写 文件名应该能清晰的标志它们存储的数据的种类。
文件
image-------------存放图片文件 sound-------------存放音频文件 temp-----------------存放临时文件
四、设计策略
本系统采用 C/S 模式设计,基本实现 MVC 模式;采用 JUnit 进行单元测试, 提高软件开发质量;使用 Log4J 记录开发日志,随时进行改进;使用 CVS 系统进 行开发,对项目进程实时更新。
五、系统总体结构
5.1 客户端结构设计:
-4-
软件架构设计说明书
客户端 注 册 登 录
用户信息管理
文件管理
用户安全设置
修 改 信 息
上 传 文 件
下 载 文 件
删 除 文 件
共 享 文 件
找 回 密 码
记 住 密 码
修 改 密 码
图一:客户端模块划分
详细功能描述: ※用户信息管理及安全设置:用户通过注册后在服务端存储各项信息(用户名、 密码、邮箱、个性签名、找回密码问题、密码问题答案等);常用用户登录时可 以选择记住用户名及密码,方便下次登录;当用户名正确而忘记密码时,用户可 以通过回答密码问题修改自己的登录密码; 登陆之后用户可以浏览自己的个人信 息、修改个人信息;用户可以通过第三方付费方式开通会员,提升使用权限,享 受相应的会员服务; ※用户文件管理:用户登录进入主界面,可以选择上传文件、下载文件、删除文 件、共享文件等操作;用户可以新建文件夹来保存自己的所需要的资料;当用户 上传或者下载是出现外部情况变化可以实现文件的断点续传及断点下载;
-5-
软件架构设计说明书
5.2 客户端业务流程:
注册用户 否 是否注册成功 是 用户登录 否 是否登录成功 是
加载主界 面
上传文件
查看我的 资源
查看共享 资源
查看个人信 息
加载上传 进度条
暂停上传
继续上传
取消上传
修改个性 签名
修改密码
移动文件 否
删除文件
重命名文 件
共享文件
下载文件
新建文件 夹
加载下载 进度条
暂停下载
继续下载
取消下载
是否退出系统 是
图二:客户端业务流程
-6-
软件架构设计说明书
5.3 服务端结构设计:
服务端
用户容量控制
用户管理
用 户 级 别 管 理
图三:服务端模块划分
用 户 信 息 管 理
详细功能描述: ※用户容量控制: 根据硬件与软件条件,系统管理员对用户的使用空间有控制权 限; 根据用户不同权限分配不同空间,并且对整个系统的使用空间进行操作与控 制; ※用户管理:审核用户注册信息是否合法,对于不合法用户可以进行删除操作; 存储合法用户信息,没有修改权限;查看用户文件并且审核,对于非法文件进行 删除操作;根据用户开通会员的请求进行用户权限提升的操作;
-7-
软件架构设计说明书
5.4 服务端业务流程:
开启服务 器
用户管理
查找
资源
否 权限管理 是否删除文件 或文件夹 是 是否删除用户 是 删除用户 信息 删除文件 信息
否
图四:服务端业务流程
5.5 系统部署图:
存储文件 将客户信息和 文件信息存入 数据库
客户通过客户 端访问服务器
客户端
Socket
服务端
图五:系统部署图
-8-
软件架构设计说明书
六、子系统的结构与功能 6.1 用户管理:
加载存储的用户 名及密码
点击登录
是 否
是否存在
输入用户名 及密码
验证用户名 与密码
验证输入信息
图六:用户登录业务流程
6.2 文件管理:
-9-
软件架构设计说明书
选择要上 传的文件 否 是否确定上传 是 建立上传 进度条 撤销 是否已在目录 否中 与服务端 建立连接 是 等待确认 加载新的文件 集合信息 是否传输完成 是 移除进度条及 相关缓存信息 是 将输入流中信息 发送至服务端 否 将本地文件 读入输入流
是否正确 否
图七:文件上传业务流程
选择要下 载的文件 读入服务端发送 过来的文件字节 选择本地存放 文件的目录
是 将文件字节写 入本地文件 否
是否确定下载 是 是否下载完成 发送所需属性 至服务端 否 移除对应进度条 及相关缓存信息 是
等待服务 端确认
是否正确连接
图八:文件下载业务流程
- 10 -
软件架构设计说明书
七、开发环境的配置
客户端:Windows XP及以上运行环境;
JDK 1.6及以上开发环境;
MyEclipse 6.0及以上开发环境; CVS 2.0及以上系统平台;
服务端:Windows XP及以上运行环境;
JDK 1.6及以上开发环境;
MyEclipse 6.0及以上开发环境; CVS 2.0及以上系统平台;
MySql数据库系统;
八、运行环境的配置
客户端:Windows XP及以上运行环境;
MyEclipse 6.0及以上开发环境; 服务端:Windows XP及以上运行环境;
MyEclipse 6.0及以上开发环境; MySql数据库系统;
九、测试环境的配置
运行环境:Windows XP及以上运行环境; 开发平台:MyEclipse 6.0及以上开发环境;
JUnit测试环境;
- 11 -
计算机与信息工程学院
软件架构设计说明书
专业年级: 题 目: 组 次: 组 员: 2008 软件工程
网络硬盘 第二组 何 阳 20083841 李锦刚 20083846 刘宗智 20083849 芦明威 20083850 王子龙 20083855 谢 鹏 20083857 张玉祥 20083862
指导教师:
吴光伟
2011
年
8
月
软件架构设计说明书
一、简介
1、文档介绍
本文档全面与系统的介绍了 MemoryBox 网络硬盘系统的构架设计, 并且使用 多种视图来从不同角度描述本系统的各个主要的方面,以满足各种不同涉众(用 户、设计人员)对于本系统不同关注焦点与需求。本文档记录并表述了系统架构 设计人员对于系统架构方面做出的重要决策。 项目所有成员根据用户需求通过小组讨论获得项目开发计划, 制定系统架构 方案; 项目组长通过个人所长分配相应的项目开发任务;程序设计人员按照架构 方案进行系统详细功能的开发;项目测试人员根据构架设计项目的总体测试框 架;构架文档用于各个构件的实施、集成及测试。
2、文档目的
本文档用于指导项目开发人员进行系统功能详细设计;测试人员的测试框 架设计;各个构件的实施与集成等。
3、文档范围
本软件架构文档适用于 MemoryBox 系统的总体应用构架。
4、读者对象
项目组长、程序开发人员、测试人员等相关工作人员。
5、参考资料
《软件项目开发文档》 《软件架构技术》
6、术语与缩写解释
MVC: (Model-View-Controller)中文翻译为"模型-视图-控制器"。
-2-
软件架构设计说明书
MySql:MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。 CVS:(Concurrent Versions System )CVS 是一个 C/S 系统,多个开发人员 通过一个中心版本控制系统来记录文件版本, 从而达到保证文件同步的目的。 CVS 版本控制系统是一种 GNU 软件包,主要用于在多人开发环境下的源码的维护。 MyEclipse: (MyEclipse Enterprise Workbench ,简称 MyEclipse) 一个 十分优秀的用于开发 Java, J2EE 的 Eclipse 插件集合。功能丰富的 JavaEE 集成 开发环境 。 JUnit:JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架 (regression testing framework) 。Junit 测试是程序员测试,即所谓白盒测 试。 Log4J:Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,可以控 制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等。
二、系统概述
MemoryBox 是一个运用 J2EE 技术,通过 C/S 模式实现用户管理及用户资料 存储的网络硬盘系统。客户端提供用户操作界面,服务端处理用户操作请求。 用户初次登陆需要通过注册获得系统的使用权限, 注册通过后进入系统主界 面,可以进行文件的上传(包括文档、音频、视频等类型的文件)、下载、共享、 删除。同时实现了多文件同时上传、同时下载、文件的断点续传及断点下载等功 能。用户通过其他供应商接口可以实现开通会员等提升用户权限及服务的操作。
三、设计约束
命名约束:类名、方法名与参数名统一采用驼峰法,类名首字母大写,参数 与方法名首字母小写;
-3-
软件架构设计说明书
命名协定:
元 素 该项目的包结构: com.lmemorybox.view 包 com.lmemorybox.action Com.lmemorybox.dao com.lmemorybox.util com.lmemorybox.server 类 接口 所有界面 所有的动作事件 所有数据库访问类 公用组件包 服务逻辑包 命 名 协 定
类的名称应该清楚的标识它所表示的实体,若有多个单词组成,则每个单词首字母 大写。例如,代表用户的类的名字应该叫做‘User’ 。 与类一样 方法(函数)名应该根据它所完成的功能或者返回值决定它的命名。例如, 返回值为布尔型: isMethodName()或 hasMethodName() 返回值为其他类型:getMethodName() 执行删除数据功能:deleteMethodName() 执行修改数据功能:updateMethodName() 执行添加数据功能:addMethodName()
方法(函数)
变量
静态最终变量字母均大写 文件名应该能清晰的标志它们存储的数据的种类。
文件
image-------------存放图片文件 sound-------------存放音频文件 temp-----------------存放临时文件
四、设计策略
本系统采用 C/S 模式设计,基本实现 MVC 模式;采用 JUnit 进行单元测试, 提高软件开发质量;使用 Log4J 记录开发日志,随时进行改进;使用 CVS 系统进 行开发,对项目进程实时更新。
五、系统总体结构
5.1 客户端结构设计:
-4-
软件架构设计说明书
客户端 注 册 登 录
用户信息管理
文件管理
用户安全设置
修 改 信 息
上 传 文 件
下 载 文 件
删 除 文 件
共 享 文 件
找 回 密 码
记 住 密 码
修 改 密 码
图一:客户端模块划分
详细功能描述: ※用户信息管理及安全设置:用户通过注册后在服务端存储各项信息(用户名、 密码、邮箱、个性签名、找回密码问题、密码问题答案等);常用用户登录时可 以选择记住用户名及密码,方便下次登录;当用户名正确而忘记密码时,用户可 以通过回答密码问题修改自己的登录密码; 登陆之后用户可以浏览自己的个人信 息、修改个人信息;用户可以通过第三方付费方式开通会员,提升使用权限,享 受相应的会员服务; ※用户文件管理:用户登录进入主界面,可以选择上传文件、下载文件、删除文 件、共享文件等操作;用户可以新建文件夹来保存自己的所需要的资料;当用户 上传或者下载是出现外部情况变化可以实现文件的断点续传及断点下载;
-5-
软件架构设计说明书
5.2 客户端业务流程:
注册用户 否 是否注册成功 是 用户登录 否 是否登录成功 是
加载主界 面
上传文件
查看我的 资源
查看共享 资源
查看个人信 息
加载上传 进度条
暂停上传
继续上传
取消上传
修改个性 签名
修改密码
移动文件 否
删除文件
重命名文 件
共享文件
下载文件
新建文件 夹
加载下载 进度条
暂停下载
继续下载
取消下载
是否退出系统 是
图二:客户端业务流程
-6-
软件架构设计说明书
5.3 服务端结构设计:
服务端
用户容量控制
用户管理
用 户 级 别 管 理
图三:服务端模块划分
用 户 信 息 管 理
详细功能描述: ※用户容量控制: 根据硬件与软件条件,系统管理员对用户的使用空间有控制权 限; 根据用户不同权限分配不同空间,并且对整个系统的使用空间进行操作与控 制; ※用户管理:审核用户注册信息是否合法,对于不合法用户可以进行删除操作; 存储合法用户信息,没有修改权限;查看用户文件并且审核,对于非法文件进行 删除操作;根据用户开通会员的请求进行用户权限提升的操作;
-7-
软件架构设计说明书
5.4 服务端业务流程:
开启服务 器
用户管理
查找
资源
否 权限管理 是否删除文件 或文件夹 是 是否删除用户 是 删除用户 信息 删除文件 信息
否
图四:服务端业务流程
5.5 系统部署图:
存储文件 将客户信息和 文件信息存入 数据库
客户通过客户 端访问服务器
客户端
Socket
服务端
图五:系统部署图
-8-
软件架构设计说明书
六、子系统的结构与功能 6.1 用户管理:
加载存储的用户 名及密码
点击登录
是 否
是否存在
输入用户名 及密码
验证用户名 与密码
验证输入信息
图六:用户登录业务流程
6.2 文件管理:
-9-
软件架构设计说明书
选择要上 传的文件 否 是否确定上传 是 建立上传 进度条 撤销 是否已在目录 否中 与服务端 建立连接 是 等待确认 加载新的文件 集合信息 是否传输完成 是 移除进度条及 相关缓存信息 是 将输入流中信息 发送至服务端 否 将本地文件 读入输入流
是否正确 否
图七:文件上传业务流程
选择要下 载的文件 读入服务端发送 过来的文件字节 选择本地存放 文件的目录
是 将文件字节写 入本地文件 否
是否确定下载 是 是否下载完成 发送所需属性 至服务端 否 移除对应进度条 及相关缓存信息 是
等待服务 端确认
是否正确连接
图八:文件下载业务流程
- 10 -
软件架构设计说明书
七、开发环境的配置
客户端:Windows XP及以上运行环境;
JDK 1.6及以上开发环境;
MyEclipse 6.0及以上开发环境; CVS 2.0及以上系统平台;
服务端:Windows XP及以上运行环境;
JDK 1.6及以上开发环境;
MyEclipse 6.0及以上开发环境; CVS 2.0及以上系统平台;
MySql数据库系统;
八、运行环境的配置
客户端:Windows XP及以上运行环境;
MyEclipse 6.0及以上开发环境; 服务端:Windows XP及以上运行环境;
MyEclipse 6.0及以上开发环境; MySql数据库系统;
九、测试环境的配置
运行环境:Windows XP及以上运行环境; 开发平台:MyEclipse 6.0及以上开发环境;
JUnit测试环境;
- 11 -