一 、需求類型分類node
1.功能需求linux
(1)做者能夠編排圖書的目錄結構、章節內容,章節內容中包括圖片、視頻、文字、和集成第三方軟件邊學邊練,能定義常見練習題好比問答題、選擇題;做者編輯時能夠預覽讀者端的效果,手機效果、Web和桌面軟件效果,做者能夠限制只在某一種或幾種終端上使用。mongodb
(2)讀者端能夠經過手機、瀏覽器或桌面軟件使用交互式多媒體圖書,能夠搜索圖書,查看圖書目錄,根據做者設定能夠順序解鎖閱讀,或隨意跳躍閱讀,或部分章節內部必須順序閱讀。shell
(3)軟件能集成或調用第三方軟件,好比閱讀過程當中能直接調出vscode或linux shell等第三方軟件進行實際操做,並對操做作基本正誤判斷,而後回到圖書繼續閱讀。後端
2.質量需求瀏覽器
(1)系統穩定可靠,不會閃退或者丟失數據,如做者編輯時忽然閃退以前編輯的內容未進行保存。spa
(2)響應速度快,讀者搜索查看圖書時,能高效的反饋。切換到第三方軟件,和返回圖書的過程要流暢,不能卡頓。插件
(3)軟件設計簡潔,易於使用。設計
3.設計約束code
(1)讀者端的手機App、Web或桌面軟件使用統一的代碼實現。
(2)先後端爲js+nodejs+mongodb。
(3)調出第三方軟件應該經過統一的插件模型調用,第三方軟件與圖書之間的相互轉換要自動流暢完成,不須要讀者操做。
(4)做者端獨立部署
4.流程約束
(1)只有在做者發佈圖書時纔將數據導入到讀者端系統,以免做者端的操做對讀者端系統的影響。
2、概念原型設計
1.用例圖
做者端:
讀者端:
2.數據模型
3、關鍵用例分析設計
選取讀者調用第三方軟件這一用例
1.分析序列圖
2.設計序列圖
4、設計方案
1.設計類圖