# 北科老茶廠 - 系統需求規格書 - Software Requirements Specification (SRS) - Version: 1.0 |姓名|學號|E-mail| |----|----|----| |黃仙惠 |104590039 |t104590039@ntut.org.tw| |盧冠宇 |105590013 |t105590013@ntut.org.tw| |周傳益 |105590016 |t105590016@ntut.org.tw| |洪堯煬 |105590029 |t105590029@ntut.org.tw| |卓旭嘉 |105590046 |t105590046@ntut.org.tw| - Department of Computer Science & Information Engineering - National Taipei University of Technology - 10/09/2018 --- # 目錄 (Table of Contents) 以下省略.. --- ## Section 1 簡介(Introduction) ### 1.1 目的(Purpose) - 資料庫系統在資訊界的應用是不可或缺的一環,藉由團隊合作開發出一個購物網站,使我們從中學習資料庫的設計、網路應用的實作、伺服器架設、多人專案合作與管理,並累積多人開發一個專案的經驗。 - 在經過華陽的茶文化洗禮後,深深發現茶這項傳統產業已慢慢的從年輕人的心中疏遠了,透過茶不同的品種不同的發酵程度,可以在茶中發現人生百態。為了將茶這個文化打入在年輕市場之中,我們將透過實作一個購物網站,協助茶農銷售產品,並讓年輕人更深入的了解茶。 ### 1.2 系統名稱 (Identification) - 主系統 - 茶葉交易系統(Tea Transaction System, is called TTS for short) - 資料庫管理系統(Database Management System, is called DBMS for short) - 子系統 - 帳戶管理系統(Account Management System, is called AMS for short) - 使用者帳戶管理系統 - 購物車管理系統(Shopping Cart Management System, is called SCMS for short) - 購物車 - 商品管理系統(Products Management System, is called PMS for short) - 管理所有線上的商品的系統 - 財務管理系統(Financial Management System, is called FMS for short) - 商家可以看商品銷售統計資料 - 訂單管理系統(Order Management System, is called OMS for short) - 包含商品追蹤 - 結帳 - 商品搜尋系統(Products Search System, is called PSS for short) - 首頁搜尋 - 折扣管理系統(Discounts Management System, is called DMS for short) ### 1.3 概觀 (Overview) - 藉由實作一個購物網站來學習如何使用及應用資料庫系統。 - 本專案名稱為「北科老茶」(TTT),實作一個銷售茶的網站。本專案採用 Django 做為後端渲染、控制,SQL 作為 DBMS,Nginx 作為網頁伺服器。前端使用 Bootstrap4、Material Design Lite、Animation.CSS 等現代前端框架。 ### 1.4 符號描述 (Notation Description) |需求編號|介面描述| |--------| -------- | |TTS-N-xxx|TeaTransaction-Number-X 表示,一個需求的唯一編號| |TTS-N-UF-xxx|TeaTransaction-Number-User Functional-X 表示,一個需求的唯一編號使用者功能性需求的唯一編號,與介面需求相同功能對應號碼| |TTS-N-001~007|本系統(TTS)之設計限制(Design, Data, and Implementation Constrains)項目| |TTS-N-008~011|本系統(TTS)之技術限制| |TTS-N-012~014|本系統(TTS)之介面需求中使用者介面需求中非登入使用者項目| |TTS-N-015~018|本系統(TTS)之介面需求中使用者介面需求中顧客介面項目| |TTS-N-019~022|本系統(TTS)之介面需求中使用者介面需求中員工介面項目| |TTS-N-023~024|本系統(TTS)之介面需求中使用者介面需求中管理者介面項目| |TTS-N-025~027|本系統(TTS)之外部介面需求項目| |TTS-N-028~048|本系統(TTS)之內部介面需求項目| |TTS-N-049~052|本系統(TTS)之功能性需求項目| |TTS-N-UF-012~014|本系統(TTS)之介面需求中使用者介面需求中非登入使用者項目| |TTS-N-UF-015~018|本系統(TTS)之介面需求中使用者介面需求中顧客介面項目| |TTS-N-UF-019~022|本系統(TTS)之介面需求中使用者介面需求中員工介面項目| |TTS-N-UF-023~024|本系統(TTS)之介面需求中使用者介面需求中管理者介面項目| |TTS-N-053~058|本系統(TTS)之非功能性需求項目| |TTS-N-059~062|本系統(TTS)之效能需求項目| |TTS-N-063~064|本系統(TTS)之測試需求項目| |TTS-N-065~067|本系統(TTS)之其他需求中環境需求項目| |TTS-N-068~072|本系統(TTS)之其他需求中安裝需求項目| --- ## Section 2 系統(System) ### 2.1 系統描述 (System Description) - 本系統為茶葉交易系統(Tea Transaction System, TTS),其主要分為七個部份,分別為帳戶管理系統(Account Management System, AMS)、購物車管理系統(Shopping Cart Management System, SCMS)、商品管理系統(Products Management System, PMS)、財務管理系統(Financial Management System, FMS)、訂單管理系統(Order Management System, OMS)、商品搜尋系統(Products Search System, PSS)、折扣管理系統(Discounts Management System, DMS)。 - 2.1.1 系統架構圖 (System Context Diagram) - [Draw.io 連結](https://www.draw.io/?state=%7B%22ids%22:%5B%221TBshirEBz1RGxLafDltQW0cLL0fFL3IL%22%5D,%22action%22:%22open%22,%22userId%22:%22110228969208490624311%22%7D#G1TBshirEBz1RGxLafDltQW0cLL0fFL3IL) - ![](https://i.imgur.com/KVoy4oH.jpg) ### 2.2 操作概念 (Operational Concepts) - Scenario 1:網站首頁導覽概念(Anonymous Operational Concepts) 任何使用者經由茶葉交易系統(TTS)可以使用商品搜尋系統(PSS)搜尋或透過商品管理系統(PMS)利用分類查找或直接點選商品,並能將商品放入購物車(SCMS)進行選購商品。 - Scenario 2:顧客使用者操作概念(Customer Operational Concepts) 使用者經由帳戶管理系統(AMS)登入身份為顧客(Customer),並可以管理帳戶個人資料,可以使用購物車管理系統(SCMS)進行結帳,並能夠使用訂單管理系統(OMS)查看該帳戶訂單細節及追蹤訂單目前狀態。 - Scenario 3:員工操作概念(Staff Operational Concepts) 使用者經由帳戶管理系統(AMS)登入身份為員工(Staff),能使用商品管理系統(PMS)上下架商品、訂單管理系統(OMS)管理訂單狀況、財務管理系統(FMS)觀看相關財務報表、折扣管理系統(DMS)管理折扣政策。 - Scenario 4:系統管理者操作概念(Administrator Operational Concepts ) 使用者經由會員管理系統(AMS)登入身份為系統管理者(Administrator),除了管理者可操作之概念,利用帳戶管理系統(AMS)來新增、刪除使用者帳號及管理使用者權限。 ### 2.3 設計限制 (Design, Data, and Implementation Constrains) |需求編號|介面描述| |--------| -------- | |TTS-N-001|DBMS 使用 MySQL| |TTS-N-002|後端框架 採用 Django| |TTS-N-003|使用Web Server Gateway Interface(WSGI) 網路協定| |TTS-N-004|Web Server 採用 Nginx| |TTS-N-005|伺服器採用 Google Cloud Platform(GCP) 的 VPS,系統為 Ubuntu 16.04| |TTS-N-006|域名租借平台為 Gandi| |TTS-N-007|使用 Git 鉤子達成版本控制及自動佈署到伺服端| ### 2.4 技術限制 (Technological Limitations) | 需求編號 | 介面描述 | |-------- | -------- | | TTS-N-008| 物流系統(結帳後商品的宅急便配送或 全家 代收)| | TTS-N-009| 金流系統(使用線上刷卡、PayPal、街口、LinePay、Visa、貨到付款 或 ATM 轉帳)| | TTS-N-010| 會員認證(手機簡訊認證或實名身分證認證)| | TTS-N-011| 庫存管理(進貨渠道)| ### 2.5 介面需求 (Interface Requirements) - 2.5.1 使用者介面需求 (User Interfaces Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-012|AMS提供登入註冊介面| |TTS-N-013|PMS提供查看商品介面| |TTS-N-014|PSS提供搜尋商品清單| - 2.5.1.1 顧客(Customers) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-015|OMS提供取消、追蹤、查詢訂單介面| |TTS-N-016|SCMS提供購物車介面| |TTS-N-017|OMS提供結帳介面| |TTS-N-018|AMS提供個人資料管理介面| - 2.5.1.2 員工(Staffs) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-019|PMS提供管理商品介面| |TTS-N-020|DMS提供管理折扣介面| |TTS-N-021|FMS提供財務(統計報表)管理介面| |TTS-N-022|OMS提供訂單管理介面| - 2.5.1.3 系統管理員(Administrator) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-023| AMS提供新增/刪除使用者帳號介面| |TTS-N-024| AMS提供管理使用者帳戶權限介面| - 2.5.2 外部介面需求 (External Interface Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-025|使用 Gandi 域名,透過 HTTPS 通訊協定與 GCP 上的VPS 通訊| |TTS-N-026|Web VPS 透過 WSGI 協定,與 Django 構通| |TTS-N-027|Django 依據Client Request呼叫 TTS 相對應功能| - 2.5.3 內部介面需求 (Internal Interface Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-028|DBMS 和 Database 之間必須能正確的傳送、接收資料。| |TTS-N-029|AMS 和 DBMS 間必須能傳送與接收各種使用者登入資訊。| |TTS-N-030|SCMS 和 DBMS 間必須能傳送與接收顧客購物車資訊。| |TTS-N-031|PMS 和 DBMS 間必須能傳送與接收商品各種資訊。| |TTS-N-032|FMS 和 DBMS 間必須能傳送與接收商品銷售資訊。| |TTS-N-033|OMS 和 DBMS 間必須能傳送與接收顧客訂單資訊。| |TTS-N-034|PSS 和 DBMS 間必須能傳送與接收商品搜尋的資訊。| |TTS-N-035|DMS 和 DBMS 間必須能傳送與接收各種折扣資訊。| |TTS-N-036|AMS 和 SCMS 間必須能確認使用者身分。| |TTS-N-037|AMS 和 PMS 間必須能確認使用者身分。| |TTS-N-038|AMS 和 FMS 間必須能確認使用者身分。| |TTS-N-039|AMS 和 OMS 間必須能確認使用者身分。| |TTS-N-040|AMS 和 DMS 間必須能確認使用者身分。| |TTS-N-041|SCMS 和 PMS 間必須能傳送與接收已選擇商品的資訊。| |TTS-N-042|SCMS 和 OMS 間必須能傳送與接收商品結帳之訂單資訊。| |TTS-N-043|SCMS 和 DMS 間必須能傳送與接收購物車折扣券代碼的優惠。| |TTS-N-044|PMS 和 PSS 間必須能傳送與接收商品搜尋結果。| |TTS-N-045|OMS 和 PMS 間必須能傳送與接收訂單商品的資訊。| |TTS-N-046|OMS 和 FMS 間必須能傳送與接收訂單已銷售之商品金額及數量。| |TTS-N-047|DMS 和 OMS 間必須能傳送與接收訂單的優惠。| |TTS-N-048|DMS 和 PMS 間必須能傳送與接收商品的優惠。| ### 2.6 功能性需求(Functional Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-049|新增、修改、刪除資料| |TTS-N-050|提供 WWW 服務| |TTS-N-051|帳號管理設定| |TTS-N-052|網址定位服務| - 2.5.1 使用者功能性需求 (User Functional Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-UF-012|登入、註冊| |TTS-N-UF-013|查看商品| |TTS-N-UF-014|搜尋商品清單| - 2.5.1.1 顧客(Customers) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-UF-015| 取消、追蹤、查詢訂單| |TTS-N-UF-016| 加入、移除購物車| |TTS-N-UF-017|結帳並選定付款方式和寄送方式| |TTS-N-UF-018|個人資料管理| - 2.5.1.2 員工(Staffs) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-UF-019| 管理商品| |TTS-N-UF-020| 管理折扣| |TTS-N-UF-021|財務(統計報表)管理| |TTS-N-UF-022|訂單管理| - 2.5.1.3 系統管理員(Administrator) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-UF-023| 新增/刪除使用者帳號| |TTS-N-UF-024| 管理使用者帳戶權限| ### 2.7 非功能性需求(Non-Functional Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-053|應用設計品質| |TTS-N-054|應用可靠性| |TTS-N-055|可追蹤性| |TTS-N-056|系統一致性| |TTS-N-057|安全系統| |TTS-N-058|資料完整保障| - 2.7.1 效能需求 (Performance Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-059|資料表的設計應正規化、節省空間。| |TTS-N-060|使用者瀏覽時,頁面讀取應不大於 5 秒。| |TTS-N-061|使用者搜尋時,搜尋時間應不大於 3 秒。| |TTS-N-062|系統維護時,應有故障頁面通知使用者。| - 2.7.2 測試需求 (Test Requirements) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-063|每個子系統功能都應被測試過。| |TTS-N-064|GUI都應該被測試| ### 2.8 其他需求 (Other Requirements) - 2.8.1 環境需求 (Environmental Requirement) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-065|Server 規格為 1 個 vCPU,3.75 GB 記憶體| |TTS-N-066|OS 為 Linux Ubuntu 16.04| |TTS-N-067|Python 3.7| - 2.8.2 安裝需求 (Installation Requirement) | 需求編號 | 介面描述 | | -------- | -------- | |TTS-N-068|資料庫採用 MySQL| |TTS-N-069|伺服端採用 Nginx| |TTS-N-070|資料庫採用 MySQL| |TTS-N-071|採用 uWSGI 與Nginx通訊| |TTS-N-072|後端框架採用 Django| ---