Django項目需求分析和詳細設計

##1 需求分析

###1.1 需求分析組成部分

   需求分析的內容是針對待開發軟件提供完整、清晰、具體的要求,確定軟件必須實現哪些任務。具體分爲功能性需求、非功能性需求與設計約束三個方面.

  (1).功能性需求

    功能性需求即軟件必須完成哪些事,必須實現哪些功能,以及爲了向其用戶提供有用的功能所需執行的動作。功能性需求是軟件需求的主體。開發人員需要親自與用戶進行交流,覈實用戶需求,從軟件幫助用戶完成事務的角度上充分描述外部行爲,形成軟件需求規格說明書。

   (2).非功能性需求

   作爲對功能性需求的補充,軟件需求分析的內容中還應該包括一些非功能需求。主要包括軟件使用時對性能方面的要求、運行環境要求。軟件設計必須遵循的相關標準、規範、用戶界面設計的具體細節、未來可能的擴充方案等。

   (3).設計約束

   一般也稱做設計限制條件,通常是對一些設計或實現方案的約束說明。例如,要求待開發軟件必須使用Oracle數據庫系統完成數據管理功能,運行時必須基於Linux環境等。

成果物:

需求分析文檔

###1.2 軟件需求分析模板

1、分析業務需求

(1) 時間需求:輸入、輸出頻率,輸入、輸出響應時間,各種功能恢復時間等;

(2) 處理容限、精度、採樣參數的分辨率,誤差處理等;

(3) 可靠性的MTBF要求,可維護性、安全性要求等。(對可能的不正常的輸入給以正常響應是可靠性的重要內容,這屬於功能性需求。)

2、分析用戶需求

  1)誘導客戶需求   — 溝通過程

 2)確認客戶需求

###3、分析功能需求

1)功能需求的完整性和一致性

對功能的描述應包含與功能相關的信息,並應具有內在的一致性(即各種描述之間不矛盾、不衝突)。應注意以下幾點:

(1) 給出觸發功能的各種條件(如:控制流、運行狀態、運行模式等);

(2) 定義各種可能性條件下的所有可能的輸入(包括合法的輸入空間和非法的輸入空間);

(3) 給出各種功能間可能的相互關係(如各個功能間的控制流、數據流、信息流,功能運行關係:順序、重複、選擇、併發、同步);

(4) 給出功能性的主要級別(如:基本功能、可由設計者選擇逐步實現的功能、可由設計者改變實現的功能等);

(5) 儘可能不使用“待定”這樣的詞。所有含有待定內容的需求都不是完整的文件,如果出現待定的部分,必須進行待定部分內容說明,落實負責人員、落實實施日期。

2)功能描述的無岔意性和可追蹤性

需求功能描述的無岔意性、可追蹤性和規範化:

(1) 功能描述必須清晰地描述出怎樣輸入到怎樣輸出,並且輸入、輸出描述應對應有數據流描述、控制流描述圖,這些描述必須與其它地方描述一致;

(2) 可以用語言、方程式、決策表、矩陣或圖等對功能的描述。如果選用語言描述必須使用結構化的語言,描述前必須說明該步驟(或子功能)的執行是順序,選擇,重複,還是併發,然後說明步驟邏輯。整個描述必須單入單出。

(3) 描述時,每一個功能名稱和參照編號必須唯一,且不要將多個功能混在一起進行描述,這樣便於功能的追蹤和修改。

(4) 功能描述應注意需求說明和程序設計的區別。需求設計僅僅是軟件的功能設計,它給出軟件運行的的外部功能描述,以及爲了實現這一外部功能必須做哪些事情(採用和種數據結構,定義多個模塊,接口間的接口等)是設計階段的事情,功能描述不應涉及到那些細節問題,以避免給軟件設計帶來不必要的約束。

###4、需求分析相關工具

     效果圖描述。主要是用戶UI界面的描述反映用戶需求功能;

     邏輯圖描述。根據用戶需求功能,使用抽象化理論,以及需求分析理論,對用戶需求功能進行全面的分析,建立功能性邏輯關係圖,流程邏輯關係圖等;

     關係圖表描述。主要是對信息關係、數據庫表格、接口函數等描述;

     工程數學描述。分析用戶需求,分析用戶需求信息,運用工程數學進行算法推導,進行合理化需求分析推導;

     甘地圖描述。主要是軟件項目工作安排,開發週期預估;

     其它方法描述。保證完整性合理性的有效描述

###5、需求評估

1)滿足客戶需求

2)保證可實施

3)工作週期

4)需求不可更改性

##2 本項目的需求分析

###2.1 功能性需求

圖文前端功能:

(1)圖文分類標籤

(2)圖文卡片式展示

(3)分頁功能

(4)搜索功能實現

(5)圖文詳情頁面

圖文後端功能

(1)標籤自定義,內容增刪改查功能

(2)文章內容管理,增刪改查

(3)圖片上傳

(4)美化編輯器模塊

數據統計頁面

 (1)頁面佈局(左側樹形導航)

 (2)美化表格展示

 (3)highcharts實現統計圖展示

###2.2 非功能性需求

性能:用戶訪問量最高支持達到 QPS:1w/s (1) 響應時間 (2) QPS, TPS

QPS: query per second

TPS: transition per second

運行環境: Ubuntu-16.04

遵循標準:PEP8

用戶界面設計的具體細節:頁面儘量美觀,支持搜索,分頁展示,有圖片文件上傳,有編輯器,有圖表

未來可能的擴充方案: 接入爬蟲系統,將原始數據進行爬蟲採集

###2.3 設計約束

數據庫:MySQL

環境:Ubuntu

##3 詳細設計

成果物:產生詳細文檔。

主要包括部分有:功能模塊劃分,接口定義,類圖,業務流程圖,數據庫設計 (使用工具:visio, rose設計), 技術選型(採用什麼技術路線,架構設計)等。

關於軟件詳細設計文檔模板見附件《軟件詳細設計文檔模板.doc》

###3.1 功能模塊劃分

整個平臺系統分爲三個模塊

(1)美文前端模塊

(2)美文後端管理模塊

(3)數據統計模塊

###3.2 接口定義

提供接口通信方式:RPC(thrift協議), HTTP(S) 協議

RPC協議:

RPC是一種C/S架構的服務模型,server端提供接口供client調用,client端向server端發送數據,server端接收client端的數據進行相關計算並將結果返回給client端。

HTTP協議:

HTTP協議是建立在B/S架構的服務基礎上。接口通信:HTTP協議 — 基於TCP協議的, 建立三次握手才能進行HTTP應用層數據收發。

HTTPS協議:

基於HTTP協議,HTTP + SSL

訪問接口說明:

(1)首頁卡片式頁面展示:

  接口URL:  /art/index?page=1&t=1

 方法:GET

  輸入參數說明:

      page:   第幾頁

      t:  標籤類別,整數標識  eg: 0--全部   1--愛情小說  2—科幻小說

  輸出:

        渲染首頁卡片式頁面 

(2) 頁面搜索功能:

  接口URL:  /art/search?key=XXX&page=1

  方法:GET

  輸入參數說明:

      key: 搜索的關鍵詞 

 輸出:

      渲染搜索列表頁面

(3)詳情頁面功能:

   接口URL:  /art/detail?id=7

  方法:GET

  輸入參數說明:

      id: 文章id,(點擊某一個具體的文章,傳入文章id)

 輸出:

      渲染詳情頁面



(4) 數據統計頁面:

創建一個新的app名稱: statics

接口URL: /statics/index

  方法:GET

  輸入參數說明:

      無

 輸出:

      渲染統計頁面佈局



(5)xadmin 登陸功能

接口URL: /xadmin

  /xadmin

  方法:GET

 輸出:

   渲染xadmin管理頁面(支持主題)

(6) 會員的登陸和註冊

和xadmin管理後臺用戶信息不同,會員信息是用戶登陸前端頁面的用戶信息。

註冊接口:/art/register/

功能點:實現提交用戶名, 密碼,郵箱 三個維度信息。註冊表單,會員數據模型,註冊邏輯處理

登陸接口:/art/login/

功能點:

(7) 留言板

接口url: /message

方法:POST

功能:通過定義消息表單,處理用戶提交的留言信息,提交信息到後臺,字段校驗,錯誤信息展示等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章