跳轉到內容

實用專案:分析

來自華夏公益教科書

單元 4 - ⇑ 計算機實踐專案 ⇑

← 選擇專案 分析 設計 →


在你開始製作你的專案之前,你需要知道你要做什麼。這就是分析發揮作用的地方,它也值 9 分,佔整個專案的 12%!我們最好開始吧。

你需要包含什麼?

[編輯 | 編輯原始碼]

希望你現在已經對你的使用者以及他們想要你做什麼有了一些想法,我們需要將所有內容都編纂(寫下來)以便我們開始獲得一些分數。考試委員會非常友好,如果你檢視評分標準,他們甚至會提供一個清單,列出了你需要在你的分析中包含的內容。我們將以這些作為我們的標題。

研究方法

[編輯 | 編輯原始碼]
確保你的研究直接導致你的目標

這應該是首先做的。你已經對需要呈現的部分有了一些想法,所以你應該為你的主要使用者準備一些問題,以獲得你開始構建這些問題的答案。從你的研究中,你需要了解以下內容

  • 當前系統及其執行方式
  • 當前系統的缺陷
  • 使用者
  • 使用它的使用者的技能水平
  • 他們希望新系統做什麼
  • 在基於 Web、基於手機、基於應用程式方面的任何偏好。你正在為哪個平臺開發

結構化訪談可能會有用,你需要記錄下對每個問題的回答。你應該嘗試理解當前情況和問題,建議你執行並證明至少兩種以下方法並解釋你使用每種方法的原因

  • 訪談
  • 問卷調查(針對多個使用者)
  • 觀察當前系統

完成研究的介紹後,你需要總結研究結果並解釋你使用每種研究方法的原因。

不要忘記

確保關於使用者、當前系統問題、擬議系統功能等的所有資訊都直接來自你的研究,否則看起來你沒有進行適當的研究

問題背景/識別

[編輯 | 編輯原始碼]

你需要介紹你的問題,簡要概述問題是什麼以及計算機如何解決它。例如,提到當前系統是基於紙質的,速度很慢,人們經常丟失東西,計算機系統會更快、更安全,並允許他們執行報告和計算。但在此時不要提及任何語言或資料庫,我們將在分析結束時決定。

當前系統的描述

[編輯 | 編輯原始碼]

描述當前系統,它做什麼以及它如何儲存資料。描述當前系統的缺陷,它速度慢、安全、易於查詢、易於使用嗎?可以允許多個人同時使用嗎?它易於訪問嗎?使用盡可能多的資源來支援你的描述,包括訪談、觀察和圖片。這將證明給標記員你的專案有一個真正的客戶。

潛在使用者識別?

[編輯 | 編輯原始碼]
你可能有多個使用者

在某些情況下,你的系統只涉及一個使用者,就是你為其編寫系統的人。但在大多數情況下,它會涉及不止一個人。你需要識別所有使用你係統的使用者,無論大小。

例如,如果你正在製作一個數學複習網站,那麼你的主要使用者是數學老師,但還有誰會使用該系統?當然還有學生!然後你需要寫下這些使用者組中的每個人如何使用系統,以及一些使用者如何擁有比其他使用者更多的訪問許可權。老師應該能夠更改測試並檢視所有學生的成績,他們應該能夠新增和刪除學生使用者。學生應該能夠參加測試,並且只能檢視他們的成績。

例如,如果你正在製作一個庫存控制系統,那麼系統管理員應該能夠新增/刪除/更新和重新訂購庫存商品、執行報告以及新增/刪除/更新使用者和供應商。一般商店員工只能銷售商品並列印收據。客戶不會直接使用該系統。

你還應該提及每個使用者的技能。例如,如果他們一直使用 Mac,那麼類似於 OS X 介面的介面會很有用。如果他們使用 Microsoft Office 2010,那麼類似於該軟體套件的介面將很合適。

使用者需求和可接受限制的識別

[編輯 | 編輯原始碼]

總結你的研究結果,你的每個使用者都希望你做什麼?例如

老師需要我建立一個系統,它

  • 儲存學生的最高分
  • 顯示學生的進度
  • 允許他們新增、編輯和刪除問題

學生需要我建立一個系統,它

  • 允許他們登入
  • 允許他們回答考試風格的問題

限制稍微難以列出。你需要寫下你的系統將不會做什麼,因為時間、複雜性或使用者偏好的原因。這些可能包括系統不會儲存使用者登入資訊,因為這些資訊將由 LDAP 管理,或者系統不會強制執行檯球上的旋轉,因為這個特定功能不是老師需要的,並且開發人員沒有足夠的時間來實現它。

資料來源和目標

[edit | edit source]

大多數情況下,你會使用資料庫,但你也可以使用基於檔案的系統或 xml。到目前為止,你應該已經提到了你的專案需要儲存和處理的一些內容(這些內容應該來自你的訪談)。你將從哪裡獲取這些資料?

  • 是什麼 -> 來自哪裡 -> 到哪裡去

例如,當前系統可能顯示

是什麼 來源 目的地
客戶資訊 填寫表格的新客戶 客戶紙質記錄
考試題目 往年試卷和老師 學生的影印件

新系統將如下所示(注意可能有一些額外的屬性)

是什麼 來源 目的地
客戶資訊 填寫線上表格的新客戶 客戶資料庫表
考試題目 往年試卷和老師 問題 XML 檔案
管理員資訊 經理 使用者資料庫表

資料量

[edit | edit source]

構建任何系統時,需要考慮的一個重要因素是需要儲存多少資料以及需要多少處理。這應該直接來自你的研究,並將影響你如何完成專案以及需要使用什麼樣的硬體。例如,如果只有一人同時參加線上測試,那麼只需要一臺簡單的計算機。如果你希望數百人同時使用你的系統,那麼你需要一臺非常快的計算機,並且可能需要一個基於 Web 的解決方案。

例如

  • 我將儲存數百個客戶,並且...
  • 複習系統將儲存多達 100 個不同的問題和 300 個學生資訊
  • 每個學生將記錄他們在每個問題上的嘗試次數,可能產生 300*100 = 30000 個問題答案結果
  • 系統只需要一次處理一項銷售,因為...

資料字典

[edit | edit source]

就像字典描述你在句子中可以使用的所有單詞一樣,這將記錄要在系統中儲存和處理的所有資料。你需要為所有儲存資料的專案提供以下資訊

欄位名稱 欄位用途 欄位型別 欄位大小 示例資料 驗證
儲存玩家的姓名 字串 30 Peter 不能為空
出生日期 儲存玩家的出生日期 日期/時間 DD/MM/YY (6 位數字) 19/08/76 日期/時間格式
分數 儲存玩家的最高分數 整數 4 7643 大於 0,小於 10000

如果你正在儲存資料庫,請確保已儲存了資料庫中所有欄位的資料,例如,以上資料儲存了學校學生的資訊。為了讓系統正常工作,你需要儲存哪些資料?

如果你正在編寫程式,你將需要列出程式執行時儲存的所有變數。例如,如果你正在建立一個程式來統計某人在測驗中獲得的分數,你應該列出用於儲存該分數的變數。

欄位名稱 欄位型別 起始值 描述
分數 整數 0 這將跟蹤玩家的分數
字串 NULL 這將跟蹤玩家的姓
出生日期 日期 01/01/1990 這將跟蹤玩家的出生日期

警告:一個非常常見的錯誤是錯誤地設定欄位大小。例如,你正在製作一個成績簿系統,其中將儲存學生的年齡。年齡在 11 到 16 之間,那麼為什麼不將年齡設定為 16 位長度?答案是,因為 16 位長度允許你儲存年齡“9999999999999999 年”,而這不可能有學生(更不用說人類)活到那麼大。長度應該更合理地設定為 3。雖然預期數字是兩位數,但可以設想將來軟體可能會擴充套件到用於年齡更大的學生,因此長度應該設定為涵蓋這種可能性。不要重複“Y2K 問題”,其中開發人員將年份儲存為僅兩位數字,導致當年份“翻轉”回零時,花費了數百萬英鎊來修復它。

資料流圖

[edit | edit source]

繪製資料流圖的方法很多,所以如果你的老師告訴你一種方法,而你在這裡讀到的方法完全不同,不要擔心。重要的是要展示資料如何在當前系統中移動,在哪裡儲存,在哪裡處理,以及你計劃如何在新的系統中移動它。畢竟它被稱為資料流圖!對於這些示例,我們使用 Gane Sarson 方法。

一個典型的資料流圖,你需要更多細節!

你需要注意四個主要組成部分

名稱 描述 符號
實體 這通常顯示參與系統的所有 人員。它還可以指示你正在與之互動的其他外部系統 圓圈
過程 這描述了資料從 一個位置移動到另一個位置時對資料進行的 處理,它接收資料 輸入,並將 輸出到資料儲存、另一個程序或實體 正方形
儲存 通常,這表示用於 儲存資料 的不同計算儲存,例如硬碟檔案、資料庫、CD-ROM 等。 矩形
傳輸 這顯示了 資料 如何從系統的一部分移動到另一部分。你需要對箭頭進行標記,以解釋究竟是什麼在移動。 箭頭

使用這些描述,我們可以看到上圖的意思如下

  1. 客戶可以諮詢商店商品,系統處理諮詢並將資料從商品資料儲存中提取出來,並將結果傳送給客戶
  2. 客戶可以訂購商品,系統檢查客戶是否真實,檢查商品是否有庫存,傳送訂單,最後將商品和發票傳送給客戶。

你需要繪製四張資料流圖,其中兩張顯示當前情況,兩張顯示提議的系統(這在當前規範中不是必需的)。對於每張圖,你必須顯示以下圖表

  • 0 級
  • 1 級

你可以使用文字處理器來製作它們,但使用專門的軟體要容易得多。你可以嘗試使用 diaOpen ModelSphere,它們都是免費的。或者,你可以使用 Microsoft Visio

擴充套件:用例

在軟體和系統工程中,用例 是一個步驟列表,通常定義角色(在 UML 中被稱為“參與者”)與系統之間的互動,以實現目標。參與者可以是人類或外部系統。例如,在一個使用者想要在社交網路上邀請一些人參加聚會的系統中。人

  1. 登入
  2. 選擇建立活動
  3. 使用日期選擇器選擇從日期和時間
  4. 使用日期選擇器選擇到日期和時間
  5. 使用地圖選擇位置
  6. 從他們的圖片集合中新增場地圖片
  7. 新增描述
  8. 選擇私人活動
  9. 傳送邀請

實體關係圖(用於資料庫)

[edit | edit source]
使用 Crow's Foot 符號顯示的四個相關實體。這種關係表明,一張收據對應一個客戶、一個員工和一個產品。並且一個客戶可以擁有多張收據;一個員工可以處理多張收據;一類產品可以被多次售出。

在考慮如何將資料儲存到系統時,你可能會決定使用資料庫,如果是這種情況,你必須包含一個 E-R 圖。如果你不使用資料庫,請說明不需要完成本部分。你需要識別你的主要表。應該至少有 3 個表以及它們之間的關係。這些表在此時不需要被規範化,但應該詳細描述它們之間的關係。

面向物件規劃(用於面向物件)

[edit | edit source]

對於您正在使用的每個類,請描述

  • 它所做的事情的概述
  • 繼承
  • 覆蓋
  • 公有和私有變數
  • 公有和私有方法

例如,怪物類的屬性可能包含

訪問型別 欄位名稱 欄位型別 初始值 描述
私有 健康 整數 100 這將儲存怪物的健康值,當健康值降至 0 時,怪物應該死亡
私有 x 整數 0 這將跟蹤怪物的 x 位置

您還需要注意怪物類將使用的方法

訪問型別 方法名稱 引數 返回值 描述
公共 向左移動 這將使怪物向左移動 3 個點
公共 傷害 傷害 怪物當前的健康值 這允許您傷害怪物

目標

[edit | edit source]
確保您的目標編號並符合 SMART 原則

這是您分析中最重要的一部分,因為這是您將如何檢查您的最終系統是否滿足所有使用者需求。您需要概述三組目標,所有目標都符合 SMART 原則並編號

  • 系統目標
  • 處理目標
  • 使用者目標

儘可能地,所有目標都應符合 SMART 原則。但 SMART 意味著什麼?

字母 主要術語 描述 示例 不可接受!
S 具體 確保它不含糊不清,並且與您系統的某個部分相關 系統應該能夠以降序顯示 5 個最高分 我的系統應該很好
M 可衡量 有沒有什麼方法可以輕鬆地證明您已實現此目標。 每個頁面應該在 5 秒內載入 我的頁面會很漂亮
A 可實現 確保在可用的時間和資源內,您將能夠完成此目標 我的系統將允許儲存使用者偏好 將有一個面部識別系統,允許使用者登入系統
R 相關 這個目標將幫助您滿足使用者需求嗎? 收據將被列印併發送到客戶的電子郵件 我的收銀系統將在後臺播放 MP3
T 有時間限制 您在完成此專案的時間上是有限的。您必須在您的分析中列出截止日期,並且您能及時完成每個目標嗎? 我將使用 2D 向量圖形在地圖上顯示玩家位置 遊戲將具有與英雄聯盟一樣好的 3D 圖形

正如您可能認識到的,上面幾個不正確的目標未能滿足多個 SMART 標準。測試自己,哪些目標足夠 SMART,可以幫助您開始一個好的專案

不要忘記

請您的客戶簽署這些編號的目標,並在您的報告中提供證據。這可能包括將電子郵件複製到文件中。

潛在解決方案

[edit | edit source]

您可以透過多種方式解決手頭的問題,您需要列出至少 3 種不同的選項。對於每種選項,您需要提到正面和負面,然後論證您選擇的解決方案。

例如,如果我被要求製作一個庫存控制系統,我可以使用以下內容(更詳細!)。

建議的解決方案 優點 缺點
Excel 和 VBA 桌面應用程式
我知道如何使用 Excel
使用者也有 Excel 使用經驗
Excel 和 VBA 將允許我執行計算並顯示結果
Excel 是一個扁平檔案資料庫,不會讓我處理資料之間的連結。
解決方案只能在離線狀態下使用
Visual Basic.NET 應用程式和 Access 資料庫後端 我從第一年開始就有一些 Visual Basic 的經驗
VB.NET 讓我可以輕鬆地構建一個具有類似於 MS Office 程式的介面的解決方案
他們已經擁有 Access 並使用 Windows
我需要學習更多 VB.NET 來完成這個專案
這個解決方案只能在離線狀態下使用
ASP.NET 和 MSSQL 資料庫網站解決方案 這個解決方案將允許使用者線上登入。
關係將是可以強制執行的
我將能夠使用 SQL 來執行搜尋
我在 ASP.NET 上還有很多東西要學
使用者不需要從多臺計算機訪問它
它需要一個伺服器和網路知識

選擇的解決方案

[edit | edit source]

從您建議的選項中選擇最佳選項並解釋原因。這將是您解決這個問題的方式!

其他證據(可選)

[edit | edit source]

在本節中,您需要證明您用來編寫分析的技術是正確的,並確保您設法獲得了新系統的全部目標。返回問卷、面試和觀察。將它們包含在這裡,並解釋這如何確保您可以製作一份全面的分析。

下一步

[edit | edit source]

現在您已經完成了分析,您需要開始製作您的專案。您應該對如何製作系統有一些想法,現在您需要開始學習完成這個專案所需的所有技能。為您的程式語言選擇一本教科書,並確保您可以使用它執行一些簡單的任務。此時,最好編寫一個快速列出您需要學習的技能的清單。

在您獲得這些技能的同時,請前往設計

華夏公益教科書