树屋 -- 软件概要设计说明书
软件概要设计说明书
1.引言
1.1目的
该文档主要是描述树屋系统的概要设计,主要内容包括系统功能简介,系统结构设计,系统接口设计,模块设计和界面设计等.
1.2范围
1.2.1 系统目标
开发一个包含推送用户感兴趣内容,评论文章,好友聊天和社团讨论于一体的多客户端软件.
1.2.2主要软件需求
该系统功能包括:
·用户注册/登陆
·好友聊天
·社团模块
·发布动态
·查看他人动态
·小游戏
·可选功能
1.2.3软件设计约束、限制
PC端需要JDK的支持
1.3缩写
暂无.
1.4术语
暂无
1.5参考资料
·<<软件工程方法与实践>>
·<<软件工程实验教程>>
·<<Java面向对象编程>>
1.6版本信息
具体如下:
修改编号 | 修改日期 | 修改后版本 | 修改位置 | 修改概述 |
1 | 2018.3.19 | 0.1 | 创建项目 | 项目开始 |
2.数据设计
2.1数据对象和形成的数据结构
用户:描述用户的基本信息,包括用户id,密码,性别,偏好等.其数据结构被封装为一个类.
文章:描述用户发布的文章信息,包括文章id,标签,点击数,收藏数,以及其物理存储路径.其数据结构被封装为一个类.
标签表:描述文章标签信息,是文章依据标签的一个索引,记录该标签文章数目和相应文章的路径.其数据结构被封装为一个类.
社团列表:描述社团信息,包括社团id,社长id,团员id信息,以及标签.其数据结构被封装为一个类.
好友列表:记录用户与其相关联的好友id,这是一个类.
2.2文件和数据库结构
其他:其他信息存储在MySQL数据库中.
2.2.1外部文件结构
服务器配置文件: ServerPreference.in
2.2.2全局数据
树屋用户访问数据库公共信息.
2.2.3文件和数据交叉索引
存储在数据库中.
3、体系结构设计
3.1数据和控制流复审
3.2得出的程序结构
根据复审的数据流图,逐步得出软件的逻辑组成结构.利用优化思想,对软件结构图进行优化设计,得出模块层次结构适中的软件结构图.
4.界面设计
4.1人机界面规约
·登录与注册界面:该界面负责读入已注册用户名和密码,以及未注册用户进行注册.
·系统主界面:该界面负责推荐文章给用户,由用户关注者的文章、系统根据用户偏好随机推荐的文章、以及用户可能感兴趣的文章组成.
·用户文章界面:该界面负责显示用户点开的文章,用户可以选择点赞、关注、收藏和评论.支持显示图片和一定格式的文字.
·用户信息界面:该界面负责现象发表文章的用户的一些公开信息,并提供添加好友的入口和留言功能.
·好友界面:该界面显示用户好友列表,以及聊天界面.
·社团界面:该界面显示用户加入是社团列表,以及社团聊天界面.
·小游戏界面:该界面显示一些系统支持的小游戏,用户可以选择游戏并进入游玩.
·用户设置界面:该界面显示用户的个人信息和系统的一些设置信息,用户可以更改个人信息.
4.2人机界面设计规约
各个界面之间的转换如下:
·登录界面->主界面
·主界面->文章界面->用户信息界面
·好友界面->用户信息界面
·社团界面->用户信息界面
·用户信息界面->文章界面
5.接口设计
5.1外部接口设计
与外部系统或设备的连接关系和通信方式.
5.1.1 外部数据接口
通过herbliate框架访问SQL数据库.
5.1.2外部系统或设备接口
与外部系统或设备接口的连接方式和通信方式.
暂无.
5.2内部接口设计规约
5.2.1内部模块接口调用关系
参见程序结构图.
·登录模块:Login(userName:String,userPswd:String):boolean;
·系统总模块:Main():void;
·推荐文章模块:Recommend(usrPref:UserPref):ArticleList;
·好友系统:FriendSystem(userMsg:UserMsg):FriendList;
·社团系统:AssnSystem(userMsg:UserMsg):AssnList;
·小游戏系统:GameSystem(userMsg:UserMsg):GameList;
5.2.2接口数据结构
描述接口的每个参数的数据结构、参数顺序和默认值.
·UserMsg:传递用户的基本信息,默认为访客.
·UserPref:传递用户偏好信息,默认NULL.
6.模块过程设计
6.1处理说明
简要描述每个模块的任务和处理过程.
登录与注册:负责用户的登录和注册.
推荐文章:根据用户偏好推荐对应文章.
好友系统:添加、屏蔽和删除好友,好友聊天.
社团系统:加入、退出社团,社团聊天.
小游戏系统:丰富用户交互,提高系统乐趣性.
6.2接口描述
详细描述模块接口的参数与结构.
·Login(UserMsg):bool;
·Recommend(UserPref):ArticleList;
·FriendSystem(UserMsg):FriendList;
·AssnSystem(UserMsg):AssnList;
·GameSystem(UserMsg):GameList;
6.3设计语言描述
对采用的语言进行简要说明.
使用java语言进行编写.
6.4使用的模块
与其他模块的调用关系.
Login模块调用Main模块,Main模块调用其他模块.
6.5内部设计结构
内部处理算法或步骤,可采用结构化程序设计方法来描述.
过于复杂,略.
6.6注释/约束/限制
给出模块的代码的注释、约束和限制.
在模块包里书写模块功能说明文档.
7.需求交叉索引
存在交叉的部分,即共享模块的调用关系.
用户信息模块:该模块是其他模块的基础,其他模块基本上都会通过调用该模块获取用户信息.
用户偏好分析系统:在给用户推荐文章、用户点击文章、用户对其他用户发布的文章进行操作时都会调用该模块.
8.测试部分
8.1测试方针
给出测试的原则、策略和方法.
原则:要求进行模块测试和集成测试.
策略:进行黑盒和白盒测试.
8.2集成策略
模块集成策略和测试策略及其方案等.
该系统各个模块间的耦合性较低,测试时应多进行模块测试.
8.3特殊考虑
该系统对服务器的稳定性有较高要求,建议对服务器端进行压力测试.