(软件工程)---- 详细设计说明书
(软件工程)---- 详细设计说明书
1引言
1.1.1编写目的
该文档在概要设计的基础上,进一步的细化系统结构,展示了软件结构的图标,物理设计、数据结构设计、及算法设计、详细的介绍了系统各个模块是如何实现的,包括涉及到的算法,逻辑流程等。
预期的读者:开发人员及项目负责人
1.2 背景
说明:
a.待开发软件系统的名称:基于flask的健康管理系统
b.本项目的任务提出者 :Aurora
c.本项目的开发者:Aurora
d.用户:测试人员、用户
e.运行该程序系统的计算中心:运行该系统的全体客户端
1.3 定义
【热量消耗】:指用户每日摄入的食物热量经过身体供能消耗的热量。
1.4 参考资料
a.《软件工程》齐治昌 谭庆平 宁洪 高等教育出版社 1997年第一版
b.《实用软件工程》郑人杰 殷人昆 陶永雷 清华大学出版 1997年第二版
c. GB/T 9385-2008计算机软件需求说明规范
2 程序系统的结构
3一般用户设计说明
3.1 程序描述
该程序指对用户的健康信息进行记录,并以表单的形式输出,在用户输入自己的饮食记录后,本系统会根据用户的饮食情况和需求智能生成饮食推荐,以便更好的保障用户的健康。
3.2 功能
3.3 性能
3.3.1输入精度
软件的输入精度:只保留整数部分
软件的输出精度:只保留整数部分
传输过程中的精度:只保留整数部分
3.3.2灵活性
A.运行环境的变化:该软适用于现在流行的操作系统、
B.精度和有效时限的变化:因不同情况而变化
C.计划的变化和改进:根据用户的需求随时软件做出更新和升级。
3.3.3时间特性的要求
相应时间:0.5s内
更新处理时间:0.5s内
数据的更换和传送时间:1s内
3.4输入项
3.5 输出项
3.6 算法
协同过滤算法
基于用户的CF原理如下:
1.分析各个用户对item的评价
2.依据用户对item的评价计算出所有用户之间的相似度
3.选出与当前用户最相似的N个用户
4.将这N个用户评价最高并且当前用户没有浏览到的item推荐给当前用户
基于用户的CF算法大致的计算流程如下:
首先我们根据网站的记录计算出一个用户与item的关联矩阵,如下:
图中,行是不同的用户,列是所有物品,(x, y)的值则是x用户对y物品的评分(喜好程度)。我们可以把每一行视为一个用户对物品偏好的向量,然后计算每两个用户之间的向量距离,这里我们用余弦相似度来算:
然后得出用户向量之间相似度如下,其中值越接近1表示这两个用户越相似:
最后,我们要为用户1推荐物品,则找出与用户1相似度最高的N名用户(设N=2)评价的物品,去掉用户1评价过的物品,则是推荐结果。
基于物品的CF计算方式大致相同,只是关联矩阵变为了item和item之间的关系,若用户同时浏览过item1和item2,则(1,1)的值为1,最后计算出所有item之间的关联关系如下:
3.7 流程逻辑
3.8 接口
3.9 存储分配
3.10 注释设计
说明准备在本程序中安排的注释,如:
a. 在模块首部注释说明模块开始编写时间、编写人员及其基本功能
b. 在变量声明阶段,大概说明变量的类型和用途
c. 在判断、循环或者顺序枝分点上注释说明程序代码的功能
3.11 设计条件
必须保证程序正常的连接到服务器
3.12 测试计划
测试用例:选取有代表性的数据,避免使用穷举法
测试方法:使用白盒测试法,语句覆盖、判定覆盖、条件覆盖等操作。
3.13 尚未解决的问题
暂无