交互式多媒体图书平台的设计与实现
1. 理解功能需求
作者端
- 作者可以编排图书的目录结构、章节内容,章节内容中包括图片、视频、文字。
- 软件可以集成第三方软件,让作者边学边练,能定义常见练习题比如问答题、选择题。
- 作者编辑时可以预览读者端的效果,手机效果、Web和桌面软件效果。
- 作者可以限制只在某一种或几种终端上使用。
读者端
- 读者端可以通过手机、浏览器或桌面软件使用交互式多媒体图书。
- 读者可以搜索图书,查看图书目录。
- 根据作者设定可以顺序解锁阅读,或随意跳跃阅读,或部分章节内部必须顺序阅读。
参照码农的自我修养之从需求分析到软件设计——一种从需求分析到软件设计的基本建模方法,按如下交互式多媒体图书平台的需求,首先按需求类型分类,然后完成概念原型设计(应具有用例图+数据模型),并选择一个关键用例进行深入分析和设计(应具有分析和设计序列图),最终给出一个设计方案(应具有设计类图或者微服务架构图)。
需求补充
- 应用功能应该简洁明了,突出主要功能。最好能加入新用户功能指导。
- 在各种界面,功能模块切换之间响应时间应该少于0.2s
- 能够提供高并发访问量
- 能够提供日志,可用到kafak之类进行日志管理
- 能够提供可方便拓展的模块接口
- 作者和读者之间可以提供相应的讨论区
- 数据冗余备份,可恢复
- 可以加入图书审查版权之类的管理员功能
- 软件鲁棒性要强
安全需求
- 用户信息防泄漏
- 存储数据加密
其他需求或约束
-
软件能集成或调用第三方软件,比如阅读过程中能直接调出vscode或linux shell等第三方软件进行实际操作,并对操作做基本正误判断,然后回到图书继续阅读。调出第三方软件应该通过统一的插件模型调用,第三方软件与图书之间的相互转换要自动流畅完成,不需要读者操作。
-
读者端的手机App、Web或桌面软件使用统一的代码实现,优先考虑前后端为js+nodejs+mongodb;
-
作者端独立部署,只有在作者发布图书时才将数据导入到读者端系统,以避免作者端的操作对读者端系统的影响。
2.用例建模
作者端用例
读者端用例
系统管理员用例
3. 数据建模
这里包括三个部分:
- 数据对象
- 数据属性
- 关系
常用ERD来进行描述。这里由于位置不够,我没有标明数据属性。
4. 类建模
这部分没做好,用的工具不是很好,没有实现,泛化、组合这些符号。后面再换。
5. 选择一个关键用例进行深入分析和设计
用例:读者查询图书