重磅!我组概要设计文档正式发布!

本文档由蹭一蹭软工项目小组撰写,任何复制、使用本文的全部或部分内容的行为必须先征得小组同意,谢谢。

项目文档:概要设计文档

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  个人页面:设置个人信息(昵称,院系),查看偏好课程信息。

 

本文档由蹭一蹭软工项目小组撰写,任何复制、使用本文的全部或部分内容的行为必须先征得小组同意,谢谢。

 

posted @ 2018-05-01 14:29  bestruangong  阅读(1136)  评论(0编辑  收藏  举报