本文档由蹭一蹭软工项目小组撰写,任何复制、使用本文的全部或部分内容的行为必须先征得小组同意,谢谢。
项目文档:概要设计文档
1. 引言部分
引言部分主要说明编写目的、系统的范围和参考资料等。
1.1目的
该文档的目的是描述学生蹭课软件的概要设计,主要内容包括系统功能简介、系统结构设计、模块设计和界面设计等。
本文档的预期读者包括:设计人员,开发人员,项目管理人员,测试人员。
1.2 范围
1.2.1 系统目标
开发一个满足大学生在课余时间的蹭课需求的安卓端app。既可以供大家查阅自己感兴趣课程的相关信息,又可以满足同学们在公告板跳转到教务处网页及时收到通知的需要,还可以提供社区板块查看别人的讨论、留言、以及对相关课程的点评。
1.2.2 主要软件需求
该系统的主要功能包括:
l 系统初始化设置
l 用户管理
l 搜索相关课程
l 社区讨论
l 公告板服务(对教务系统和百度等网站的跳转)
l 个人页面
1.2.3 软件设计约束、限制
软件支持多客户端同时使用的分布式物理结构。
1.3缩写说明
无。
1.4术语定义
无。
1.5参考资料
[1]窦万峰.软件工程与实践[M].北京:机械工业出版社,2017.
[2]软件概要设计文档格式标注[S].GB 856D-1988.
1.6版本信息
具体版本信息如表A-1所示
表A-1 具体版本信息
修改编号 |
修改日期 |
修改后版本 |
修改位置 |
修改内容概述 |
1 |
2018-5-1 |
1.0 |
全部 |
完成第一次编写 |
2. 数据设计
本部分主要描述软件所涉及的外部数据的结构描述。如果数据以数据库文件呈现,则描述表的名称和表字段结构;如果数据以外部文件形式呈现,则要描述文件的内部结构。
2.1数据对象和形成的数据结构
“蹭一蹭”app所设计的主要数据结构如下:
课程表:课程编号,课程名,课程类型,课程所属学院,任课老师,课程时间,课程学分,课程开课学期,课程所用课本名称。
社区表:用户编号,用户昵称,博客编号,博客名,发博客所在日期。
个人信息表:用户编号,用户昵称,用户密码,偏好课程编号,偏好课程名,偏好课程类型,偏好课程所属学院,偏好课程任课老师,课程时间,偏好课程学分,偏好课程开课学期,课程所用课本名称。
用户总表:用户名,用户密码,用户注册用手机号,用户是否绑定邮箱号,用户邮箱号,用户创建日期,用户更新日期。
2.2 文件和数据库结构
描述文件的数据库结构。
2.2.1 外部文件结构
包括文件的逻辑结构、逻辑记录描述、访问方法。
2.2.2全局数据
“蹭一蹭”app的全局变量有:
系统时钟Timer
2.2.3 文件和数据交叉索引
l 用户信息文件在用户管理和用户个人信息(即“我的”)功能中;
l 课程表文件用于课程搜索功能中;
l 社区表文件用于社区功能中;
l 个人信息表文件用于个人信息模块记录搜索偏好功能中。
3 体系结构设计
这一部分主要描述软件的逻辑组成接口,即软件结构图的绘制。但本小组使用的是面向对象的设计方法,因此,在此处用活动图替换了数据流图。
3.1数据和控制流复审
对需求规格说明书中要实现的功能进行归纳分析,对涉及的数据和控制流进行汇总和归并,为概要设计做准备。
一般对数据流图的精化分析包括两个方面的内容,一是复审整个数据流图,查看有没有遗漏的地方,并补充和完善。二是分析每一个数据流图(活动图),去掉一些细节的内容,这里去掉数据存储和外部用户。
对部分数据流图(活动图)的精化场景描述如下:
待添加。
3.2 得出的程序结构
根据复审的数据流图(活动图),逐步得出软件的逻辑结构组成。利用优化思想,对软件结构图进行优化设计,得出模块层次结构适中的软件结构图。如下所示:
4.界面设计
这一部分主要给出界面设计的总体要求和界面序列,以及界面设计约规。
4.1 人机界面规约
给出界面风格,约定和操作要求,设计出用户的所有界面。“蹭一蹭”手机APP的界面主要包括以下几种。
(1)登录首界面:该界面能够输入用户名和短信验证码;用户名是用户的合法手机号,然后通过获取验证码的方式进行登录,同时,登录界面还要有用户注册功能。
(2)蹭课查询界面:该界面主要是通过用户所选择的搜索方式来进行搜索,最后显示结果;搜索方式应分为按上课时间搜索,授课教师搜索,课程名字搜索。最后显示的结果应包括课程名称,课程编号,课程类型,开课学院,授课老师,上课时间,上课地点,学分,学期。同时对于自己喜欢的课程用户可以收藏。
(3)公告板界面:该界面主要是用户能通过提供的教务处和百度链接,及时查看消息,公告;在该界面处应有两个链接,用户在选择某一链接时能实现跳转功能。方便用户阅读信息。
(4)社区界面:该界面主要是显示所有用户的发言记录,通过下拉界面还会不断进行刷新,同时还应提供自己发言功能。
(5)个人信息界面:该界面主要是能够进行个人信息设置和显示偏好课程信息;设置的个人信息应包括昵称,院系,头像。其中院系应为华中农业大学十四个院系中之一,设置完成后,进行保存,所显示的偏好课程信息应包括:偏好课程学期,偏好课程名称,偏好课程编号,偏好课程学分,偏好课程类型,偏好开设学院,偏好课程老师姓名,偏好课程上课地点,偏好课程上课时间,教材名字。
(6)总控界面:是该软件的主界面,主要完成与用户的交互任务,接收用户请求,并调用相应模块。
4.2人机界面设计规约
给出界面序列关系,以及每个界面的操作规则和处理规则。“蹭一蹭”手机APP有以下几种界面序列。
登录首界面:
新用户的界面序列:注册—进入总控界面(搜索界面)。
老用户的界面序列:登录—进入总控界面(搜索界面)。
总控界面与蹭课查询界面序列:总控界面—按所选择的方式进行搜索—得出搜索结果。
总控界面与公告板界面序列:总控界面—公告板界面—点击链接实现跳转。
总控界面与社区界面序列:总控界面—社区界面—选择发言或浏览—刷新界面。
总控界面与个人信息界面序列:总控界面—个人信息序列—选择设置个人信息活查看偏好课程—保存或显示结果。
5 接口设计
本部分主要描述模块的接口类型和参数等。
待编码确定后再进行更新
6 模块过程设计
6.1查阅课程子系统
1.外部用户
用户:系统的合法用户。
2.功能
通过课程名称查阅课程;
通过上课老师查阅课程;
通过上课时间查阅课程。
3.用例模型视图
4.活动图
5.场景描述
用例名称:通过课程名称查阅课程。
范围:查阅课程子系统。
级别:重要。
主要参与者:用户(关注身份的合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app。
主成功场景:
(1)选择按照课程名称查阅课程按钮。
(2)输入课程名称。
(3)得到查阅的课程结果。
扩展:
(2a)选择了按照其他条件查找课程的按钮
特殊需求:无。
技术和数据变元素:采用数据库管理。
发生频率:经常
用例名称:通过上课老师查阅课程。
范围:查阅课程子系统。
级别:重要。
主要参与者:用户(关注身份的合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app。
主成功场景:
(1)选择按照上课老师查阅课程按钮。
(2)输入课程名称。
(3)得到查阅的课程结果。
扩展:
(2a)选择了按照其他条件查找课程的按钮
特殊需求:无。
技术和数据变元素:采用数据库管理。
发生频率:经常
用例名称:通过上课时间查阅课程。
范围:查阅课程子系统。
级别:重要。
主要参与者:用户(关注身份的合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app。
主成功场景:
(1)选择按照上课时间查阅课程按钮。
(2)输入课程名称。
(3)得到查阅的课程结果。
扩展:
(2a)选择了按照其他条件查找课程的按钮
特殊需求:无。
技术和数据变元素:采用数据库管理。
发生频率:经常
6.2公告板子系统
1.外部用户
用户:系统的合法用户。
2.功能
跳转教务处网站;
跳转百度网站。
3.用例模型视图、
4 .活动图
5 .场景描述
用例名称:跳转教务处网站。
范围:公告板子系统。
级别:重要。
主要参与者:用户(关注身份合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app并连接上互联网。
主成功场景:
(1)选择跳转教务处网站按钮。
(2)跳转至教务处网站(仍在app内部)。
扩展:
(2a)选择了跳转其他网站的按钮
特殊要求:无。
技术和数据变元素:
发生频率:经常
用例名称:跳转百度网站。
范围:公告板子系统。
级别:重要。
主要参与者:用户(关注身份合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app并连接上互联网。
主成功场景:
1) 选择跳转百度网站按钮。
2) 跳转至百度网站(仍在app内部)。
6.3社区子系统
1.外部用户
用户:系统的合法用户。
2.功能
用户发言;
用户评价蹭课;
用户推荐课程;
用户查看其他用户发言。
3.用例模型视图
4 .活动图
5.场景描述
用例名称:发言。
范围:社区子模块。
级别:重要。
主要参与者:用户。
涉众及其关注点:用户关注如何发言。
前置条件:合法用户。
成功保证:登录成功。
主成功场景:
(1)在文本框中输入想要发言的内容。
(2)点击发言按钮以请求发言。
(3)发送发言请求。
(4)系统同意发言请求。
(5)系统接受发言文本并在界面上显示出来。
拓展:
(5a)输入内容是空白,发言失败。
特殊需求:无
技术和数据变元素:用户的发言内容既可以用文件来存储,也可以在数据库中存储和管理。
发生频率:经常。
用例名称:评价蹭课。
范围:社区子模块。
级别:重要。
主要参与者:用户。
涉众及其关注点:用户关注如何评价蹭课。
前置条件:合法用户。
成功保证:登录成功。
主成功场景:
(1)在文本框中输入想要评价蹭课的内容。
(2)点击发言按钮以请求评价蹭课。
(3)发送评价蹭课请求。
(4)系统同意评价蹭课请求。
(5)系统接受评价蹭课文本并在界面上显示出来。
拓展:
(5a)输入内容是空白,评价蹭课失败。
特殊需求:无
技术和数据变元素:用户的评价蹭课内容既可以用文件来存储,也可以在数据库中存储和管理。
发生频率:经常。
用例名称:推荐课程。
范围:社区子模块。
级别:重要。
主要参与者:用户。
涉众及其关注点:用户关注如何推荐课程。
前置条件:合法用户。
成功保证:登录成功。
主成功场景:
(1)在文本框中输入想要推荐课程的内容。
(2)点击发言按钮以请求推荐课程。
(3)发送推荐课程请求。
(4)系统同意推荐课程请求。
(5)系统接受推荐课程文本并在界面上显示出来。
拓展:
(5a)输入内容是空白,推荐课程失败。
特殊需求:无
技术和数据变元素:用户的推荐课程内容既可以用文件来存储,也可以在数据库中存储和管理。
发生频率:经常。
用例名称:查看。
范围:社区子模块。
级别:重要。
主要参与者:用户。
涉众及其关注点:用户关注如何查看。
前置条件:合法用户。
成功保证:登录成功。
主成功场景:
(1)点击社区板块。
(2)进入社区板块。
(3)查看本页发言、评价蹭课、推荐课程的内容。
(4)单击下一页查看下一页的发言、评价蹭课、推荐课程的内容。
拓展:
(5a)无发言内容,查看失败。
特殊需求:无
技术和数据变元素:用户的评价蹭课内容既可以用文件来存储,也可以在数据库中存储和管理。
发生频率:经常。
6.4我的子系统
1.外部用户
用户:系统的合法用户。
2.功能
设置个人信息(设置昵称等);
查看偏好课程。
3.用例模型视图
4 .活动图
5.场景描述
用例名称:设置个人信息(设置昵称)
范围:“我的”子系统。
级别:重要。
主要参与者:用户(关注身份的合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app。
主成功场景:
(1)选择设置个人信息按钮。
(2)输入昵称。
(3)保存修改的信息。
扩展:
(2a)输入不合法字符空格,单击重填;
特殊需求:无。
技术和数据变元素:采用数据库管理。
发生频率:经常
用例名称:查看偏好课程
范围:“我的”子系统。
级别:重要。
主要参与者:用户(关注身份的合法性)。
涉众及其关注点:无。
前置条件:合法用户。
成功保证:进入app。
主成功场景:
(1)选择我的偏好课程按钮。
(2)得到偏好课程的相关信息。
扩展:
无
特殊需求:无。
技术和数据变元素:采用数据库管理。
发生频率:经常
7.逻辑分析与建模
7.1搜索子系统建模
7.1.2类模型
7.2公告板子系统建模
7.2.2类模型
7.3社区子系统建模
7.3.2类模型
7.4我的子系统建模
7.4.2类模型
8.需求交叉索引
描述需求与模块的关系,存在交叉部分,即共享模块的调用关系。
l 用户管理:登录,注册
l 搜索相关课程:按按上课时间搜索,授课教师搜索,课程名字搜索。
l 社区讨论:保存记录发言,浏览其他发言。
l 公告板服务:对教务系统和百度等网站的跳转
l 个人页面:设置个人信息(昵称,院系),查看偏好课程信息。
本文档由蹭一蹭软工项目小组撰写,任何复制、使用本文的全部或部分内容的行为必须先征得小组同意,谢谢。