支持第三方插件的多媒体图书平台的设计与实现

需求类型分类

上课也讲过了,对于需求类型,课件上分为如下几种:

  • 功能需求
  • 质量需求
  • 设计约束
  • 过程约束

但是在其他的软件工程著作中$^{[1]}$,我们可以有其他的划分,比如把设计约束和过程约束合并为约束,添加对外接口需求和数据需求等等。在这个例子中我决定把设计约束和过程约束合并起来,方便我们的分析。

功能需求(分为读者端和作者端)

作者端

  • 作者可以编排图书的目录结构、章节内容,章节内容中包括图片、视频、文字、和集成第三方软件边学边练,能定义常见练习题比如问答题、选择题
  • 作者编辑时可以预览读者端的效果,手机效果、Web和桌面软件效果,作者可以限制只在某一种或几种终端上使用。
  • 作者可设定自己的图书章节的阅读顺序,有顺序解锁阅读,随意跳跃阅读,部分章节内部必须顺序阅读等几种不同的模式。
  • 软件在打开时要有功能导航提示,带用户了解作者端的主要功能
  • 作者编辑完书籍后可以将书籍上传到Master服务器的数据库中,供读者下载,上传失败时,作者端要给出用户提示,并且实现与Master服务器的断点传输

读者端

  • 读者端可以通过手机、浏览器或桌面软件使用交互式多媒体图书,可以搜索图书,查看图书目录,根据作者设定可以顺序解锁阅读,或随意跳跃阅读,或部分章节内部必须顺序阅读
  • 软件能集成或调用第三方软件,通过统一的插件模型调用,插件在master服务器上下载,第三方软件与图书之间的交互要自动完成,只给读者暴露简单的接口。(个人感觉作业需求中的例子不好,重新举一个,比如有一个插件开发者开发了翻译插件,发布到软件的读者端上,读者安装这个插件并且用鼠标选中相应文本后点击翻译按钮,该插件就可以自动作其他语言到汉语的翻译。如果例子不恰当还请老师/助教指正)
  • 软件在打开时要有功能导航提示,带用户了解读者端的主要功能
  • 读者可以访问图书商城,从Master服务器上下载新图书,下载失败时,读者端要给出用户提示,并且实现下载断点传输功能
  • 读者可以访问插件商城,从Master服务器上下载插件,下载失败时,读者端要给出用户提示,并且实现下载断点传输功能

运营商端

  • 能够对图书商城的上架书籍进行管理,提供下架功能
  • 能够上架各种读者端使用的使用插件

服务器端

  • 当下载或上传操作发生时,能够根据读者或作者提供的密钥来判断是否为合法用户

质量需求(个人补充一些)

  • 插件的运行要在0.5秒之内返回给用户结果
  • 易用性方面,界面设计要精简,让各类用户在试用一天后即能掌握该软件的核心功能(功能需求部分)
  • 访问图书商城的时间不能超过5秒,如果超过五秒仍然访问失败,则在读者端给出提示

约束

  • 读者端的手机App、Web或桌面软件使用统一的代码实现
  • 对于读者端,前后端为js+nodejs+mongodb
  • 作者端独立部署
  • Master服务器的数据库采取mongodb

用例

作者端用例图

读者端用例图

运营商端用例图

Master服务器端用例图

数据模型

深入分析和设计

接下来就读者在书城浏览并且下载一本书这个用例进行详细分析

剧情描述

  • 读者点击图书商城。
  • 图书商城显示自己所用拥有的书籍。
  • 读者选中某本书
  • 服务器返回该书给读者。(接下来陷入阅读循环)
  • 读者选中想阅读的章节/页数。(可选)
  • 书籍返回对应的文本。(可选)
  • 读者进行文本的阅读(可选)
  • 期间读者可能点击翻页。(可选)
  • 这时书籍应当实时返回相应数据。(可选)
  • 读者拿到数据后阅读(可选)
  • 读者返回书籍章节目录(可选)
  • 书籍返回书的章节(可选)
  • 在阅读过程中读者使用本地翻译插件进行个别单词的翻译。(可选)
  • 翻译插件返回相应的结果。(可选)
  • 读者决定缓存某本书到数据库。(可选)
  • 读者点击退出阅读该书
  • 服务器重新返回图书商城拥有的书籍给读者

剧情描述表

phase subject Action of Subject Other Data/Object Object Acted Upon
1 读者 进入图书商城 Master服务器
1.1 Master服务器 返回现有书籍列表 书籍列表 读者
1.2 读者 选中某本书 书名 Master服务器
1.2.1 Master服务器 返回该书 书籍 读者
1.3 while 读者不点击退出该书
1.3.2 读者 选择章节 章节名称 书籍
1.3.3 书籍 返回对应的文本 章节文本 读者
1.3.4.1 if 读者点击了返回目录
1.3.4.1.2 读者 点击返回该书该书目录 书籍
1.3.4.1.3 书籍 返回该书目录 书籍目录 读者
1.3.4.2 if 读者点击了下一页
1.3.4.2.1 读者 点击下一页 页数 书籍
1.3.4.2.2 书籍 返回下一页书籍的内容 书籍文本 读者
1.3.4.3 if 读者使用某些插件
1.3.4.3.1 读者 使用插件功能 待处理参数 插件
1.3.4.3.2 插件 计算结果 结果 插件
1.3.4.4 if 读者缓存该书
1.3.4.4.1 读者 缓存该书 书籍 本地数据库
1.3.4.4.2 本地数据库 存储 success/false 读者
1.3.5 读者 退出阅读 Master服务器
1.3.6 Master服务器 返回书籍列表 书籍列表 读者

设计序列图(由分析序列图改进而来,故略去分析序列图)

设计类图

猜你喜欢

转载自www.cnblogs.com/ustcwz/p/12659965.html
今日推荐