A-level 計算機 2009/AQA/計算機實踐專案/分析
在你開始製作你的專案之前,你需要知道你要做什麼。這就是你的分析發揮作用的地方,它也值得 12 分,佔整個專案總分的 16%!我們最好開始吧。
希望到目前為止你已經對你的使用者以及他們希望你做什麼有所瞭解,我們需要將所有內容編纂起來(寫下來),這樣我們就可以開始獲得一些分數。考試委員會非常友好,如果你檢視評分標準,他們甚至提供了一個你需要在分析中包含的專案的列表。我們將利用這些專案作為我們的標題。

這應該是第一步。你已經對需要介紹的部分有了一些想法,所以你應該為你的主要使用者提出一些問題,以獲得你需要開始組建這些部分的答案。從你的研究中,你需要知道以下內容
- 當前系統及其執行方式
- 當前系統的問題
- 使用者
- 使用該系統的人員的技能水平
- 他們希望新系統做什麼
- 在基於網路、基於手機、基於應用程式方面的任何偏好。你正在為哪個平臺開發
結構化訪談可能會有用,你需要記下對每個問題的答案。你應該嘗試瞭解當前情況和問題,建議你執行並證明至少兩種以下方法,並解釋你使用每種方法的原因
- 訪談
- 調查問卷(針對多個使用者)
- 觀察當前系統
完成研究的介紹後,你需要總結研究結果並解釋你使用每種研究方法的原因。
|
不要忘記
|
你需要介紹你的問題,簡短的兩段文字說明問題是什麼以及計算機如何解決它。例如,提到當前系統是基於紙張的、緩慢的,人們總是丟失東西,計算機化系統會更快、更安全,並允許他們執行報告和計算事物。但此時不要提及任何語言或資料庫,我們將在分析結束時決定。
描述當前系統,它做什麼以及它如何儲存資料。描述當前系統的缺陷,它是否緩慢、安全、易於查詢、易於使用,是否允許多人同時使用,是否易於訪問?使用盡可能多的資源來支援你的描述,包括訪談、觀察和圖片。這將向評分者證明你的專案有一個真實的客戶。

在某些情況下,你的系統只涉及一個使用者,即你為其編寫系統的人。在大多數情況下,它將涉及不止一個人。你需要識別所有使用者,無論大小,他們都會使用你的系統。
例如,如果你正在製作一個數學複習網站,你的主要使用者是數學老師,但還有誰會使用該系統?當然是學生!然後你需要寫下這些使用者群將如何使用該系統以及一些使用者將比其他使用者擁有更多訪問許可權。老師應該能夠更改測試並檢視所有學生的成績,他們應該能夠新增和刪除學生使用者。學生應該能夠參加測試並僅檢視自己的成績。
例如,如果你正在製作一個庫存控制系統,那麼系統管理員應該能夠新增/刪除/更新和重新訂購庫存商品、執行報告以及新增/刪除/更新使用者和供應商。一般商店員工應該只能銷售商品並列印收據。顧客不會直接使用該系統。
你還應該為每個使用者提及他們所擁有的技能。例如,如果他們一直使用 Mac,那麼與 OS X 介面類似的介面將很有用。如果他們使用 Microsoft Office 2010,那麼與該軟體套件類似的介面將適合。
總結你的研究結果,你的每個使用者都希望你做什麼?例如
老師需要我建立一個系統,該系統
- 儲存學生的最高分
- 顯示學生進度
- 允許他們新增、編輯和刪除問題
學生需要我建立一個系統,該系統
- 允許他們登入
- 允許他們回答考試風格的問題
限制有點難列出。你需要寫下你的系統將不會做什麼,原因是時間、複雜性或使用者偏好。這些可能包括系統不儲存使用者登入詳細資訊,因為這些資訊將由 LDAP 管理,或者系統不強制在臺球上旋轉,因為該特定功能不是老師需要的,開發人員也沒有足夠的時間來實現它。
在大多數情況下,你將使用資料庫,但你也可以使用基於檔案的系統或 xml。現在你應該已經提到了一些你的專案需要儲存和處理的內容(這應該來自你的訪談)。你將從哪裡獲取這些資料?
- 它是什麼 -> 它來自哪裡 -> 它將去哪裡
例如,當前系統可能說
| 它是什麼 | 來源 | 目的地 |
|---|---|---|
| 客戶詳細資訊 | 新客戶填寫表格 | 客戶紙質記錄 |
| 考試試題 | 往屆試卷和老師 | 學生的影印件 |
新的系統看起來像這樣(注意可能還有一些其他的屬性)
| 它是什麼 | 來源 | 目的地 |
|---|---|---|
| 客戶詳細資訊 | 新客戶填寫線上表格 | 客戶資料庫表 |
| 考試試題 | 往屆試卷和老師 | 問題 XML 檔案 |
| 管理員詳細資訊 | 經理 | 使用者資料庫表 |
構建任何系統時,要考慮的一個重要因素是您需要儲存多少資料以及需要多少處理能力。這應該直接來自您的研究,並將影響您如何完成專案以及您需要使用哪種硬體。例如,如果您一次只有一人參加線上考試,那麼您只需要一臺簡單的電腦。如果您希望數百人同時使用您的系統,那麼您將需要一臺非常快的電腦,並且可能還需要一個基於 Web 的解決方案。
例如
- 我將儲存數百名客戶,並且...
- 複習系統將儲存多達 100 個不同的問題和 300 個學生詳細資訊
- 每個學生都會記錄他們對每個問題的嘗試次數,這可能導致 300*100 = 30000 個問題答案結果
- 系統只需要一次處理一次銷售,因為...
就像字典描述句子中可以使用的所有詞語一樣,這將記錄您想要在系統中儲存和處理的所有資料片段。對於您將儲存資料的任何內容,您都需要提供以下資訊
| 欄位名稱 | 欄位目的 | 欄位型別 | 欄位大小 | 示例資料 | 驗證 |
|---|---|---|---|---|---|
| 姓氏 | 儲存玩家的姓名 | 字串 | 30 | 彼得 | 不能為空 |
| 出生日期 | 儲存玩家的出生日期 | 日期/時間 | DD/MM/YY(6 位數字) | 19/08/76 | 日期/時間格式 |
| 分數 | 儲存玩家的最高分 | 整數 | 4 | 7643 | 大於 0,小於 10000 |
如果您要儲存資料庫,請確保您已儲存所有資料庫中將包含的欄位的資料,例如,上面的資料儲存了學校中學生的相關資料。您的系統需要儲存哪些資料才能正常運作?
如果您要製作一個程式,您將希望列出程式執行時將儲存的所有變數。例如,如果您要建立一個程式來統計某人在測驗中取得的分數,您應該列出將儲存該分數的變數。
| 欄位名稱 | 欄位型別 | 起始值 | 描述 |
|---|---|---|---|
| 分數 | 整數 | 0 | 這將跟蹤玩家的分數 |
| 姓氏 | 字串 | 空 | 這將跟蹤玩家的姓氏 |
| 出生日期 | 日期 | 01/01/1990 | 這將跟蹤玩家的出生日期 |
警告:一個非常常見的錯誤是錯誤地調整欄位的大小。例如,您正在製作一個成績簿系統,您將在其中儲存學生的年齡。年齡在 11 到 16 之間,那麼為什麼不將年齡設定為 16 位?答案是因為長度 16 允許您儲存年齡“9999999999999999 年”,而這不可能有一個這麼大的學生(更不用說一個人了)。長度應該更合理地設定為3。雖然預期數字只有兩位數,但可以想象該軟體將來可能會擴充套件為用於年齡更大的學生,因此長度應設定為涵蓋這種可能性。不要重複“2000 年問題”,其中開發人員將年份儲存為僅兩位數字,當年份“翻轉”為零時,導致數百萬英鎊用於修復問題。
您可以繪製資料流圖的方式有很多,所以如果您的老師告訴您一種方式,而您在這裡讀到的方式完全不同,請不要擔心。重要的是您要展示資料如何在當前系統中移動,資料儲存在哪裡,資料將在哪裡處理以及您計劃如何在新的系統中移動資料。畢竟它被稱為資料流圖!對於這些示例,我們使用Gane Sarson 方法。

您需要注意四個主要元件
| 名稱 | 描述 | 符號 |
|---|---|---|
| 實體 | 這通常顯示系統中涉及的所有人員。它還可以指示您正在與之互動的其他外部系統 | 圓圈 |
| 過程 | 這描述了資料從一個位置移動到另一個位置時對資料進行的處理,它接受資料輸入,並輸出到資料儲存、另一個過程或實體 | 正方形 |
| 儲存 | 通常,這表示用於儲存您的資料的不同計算儲存,例如硬碟檔案、資料庫、CD ROM 等。 | 矩形 |
| 傳輸 | 這顯示了資料如何在系統的各個部分之間移動。您需要標記箭頭以解釋究竟是什麼東西在移動。 | 箭頭 |
使用這些描述,我們可以看到上面的圖表示以下含義
- 客戶可以諮詢商店商品,系統處理諮詢並從商品資料儲存中獲取資料,將結果傳送給客戶
- 客戶可以訂購商品,系統會檢查客戶是否真實,檢查商品是否有貨,傳送訂單,最後將商品和發票傳送給客戶。
您需要製作四個資料流圖,兩個顯示當前情況,兩個顯示建議的系統。對於每個圖,您必須顯示以下圖
- 級別 0
- 級別 1
您可以使用文字處理器製作它們,但使用專門的軟體更容易。您可以嘗試使用 dia 或 Open ModelSphere,它們都是免費的。或者,您可以使用 Microsoft Visio。
|
擴充套件:用例
|

在考慮如何將資料儲存到您的系統時,您可能會決定使用資料庫,如果是這樣,您必須包含一個 E-R 圖。如果您沒有使用資料庫,請說明不需要完成此部分。您需要識別您的主表。應該至少有 3 個表以及它們之間的關係。這些表在此時不必被規範化,但關係應該被詳細描述。
- 請參閱有關 資料庫 的章節
對於您使用的每個類,請描述
- 它執行的操作概述
- 繼承
- 重寫
- 公有和私有變數
- 公有和私有方法
例如,怪物類的屬性可能包含
| 訪問型別 | 欄位名稱 | 欄位型別 | 初始值 | 描述 |
|---|---|---|---|---|
| 私有 | 健康 | 整數 | 100 | 這將儲存怪物的健康值,當健康值降至 0 時,怪物應該死亡 |
| 私有 | x | 整數 | 0 | 這將跟蹤怪物的 x 位置 |
您還需要注意怪物類將使用的方法
| 訪問型別 | 方法名稱 | 引數 | 返回值 | 描述 |
|---|---|---|---|---|
| 公共 | 向左移動 | 無 | 無 | 這將使怪物向左移動 3 個點 |
| 公共 | 受傷 | 傷害 | 怪物的當前健康值 | 這允許您傷害怪物 |
- 請參閱有關 面向物件 的章節

這是你分析中最重要的一部分,因為這是你用來檢查你的最終系統是否滿足所有使用者需求的方法。你需要概述三組SMART的且編號的目標
- 系統目標
- 處理目標
- 使用者目標
儘可能地,你的所有目標都應該是SMART的。但SMART是什麼意思呢?
| 字母 | 主要術語 | 描述 | 例子 | 不可接受! |
|---|---|---|---|---|
| S | 具體 | 確保它沒有歧義,並且與你係統的一部分有關 | 系統應該能夠以降序顯示 5 個最高得分 | 我的系統應該很棒 |
| M | 可衡量 | 有沒有什麼方法可以讓你輕鬆證明你已經達到了這個目標。 | 每個頁面應該在 5 秒內載入完成 | 我的頁面將非常漂亮 |
| A | 可實現 | 確保在可用的時間和資源範圍內,你能夠完成這個目標 | 我的系統將允許儲存使用者偏好 | 將會有一個面部識別系統,允許使用者登入系統 |
| R | 相關 | 這個目標將幫助你滿足你的使用者需求嗎? | 將列印並透過電子郵件傳送收據給客戶 | 我的收銀系統將在後臺播放 MP3 |
| T | 有時限 | 你完成這個專案的時間是有限的。你必須在你的分析中列出截止日期,你能否及時完成每個目標? | 我將使用 2D 向量圖形在圖上顯示玩家的位置 | 遊戲將擁有與英雄聯盟一樣好的 3D 圖形 |
正如你可能已經認識到的,上面幾個不正確的目標沒有滿足多個SMART標準。測試一下自己,哪些目標足夠SMART,可以讓你開始一個好的專案
| 系統將允許員工更新庫存和新增新的庫存專案。<click> | ||
|
||
| 體育俱樂部系統將在每個頁面上顯示當前時間的時鐘 <click> | ||
|
||
| 系統將使用自定義程式碼來解釋和顯示 SVG 遊戲圖形 <click> | ||
|
||
| 系統將計算並顯示每個客戶的總銷售額 <click> | ||
|
||
| 系統將每秒處理 5,000,000 筆交易 <click> | ||
|
||
|
不要忘記
|
有幾種方法可以解決你手頭的這個問題,你需要列出至少 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 要學習 使用者不需要從多臺計算機訪問它 它需要伺服器和網路知識 |
從你提出的選擇中,選擇最佳方案並解釋原因。這將是你解決這個問題的方法!
在本節中,你需要證明你用來編寫分析的技術是正確的,並確保你成功地獲得了新系統的所有目標。回到問卷、訪談和觀察。將它們包含在這裡,並解釋它們如何確保你能夠生成全面的分析。
現在你已經完成了你的分析,你需要開始製作你的專案。你應該對如何製作系統有一些想法,現在你需要開始學習完成這個專案所需的所有技能。找一本關於你選擇的程式語言的教科書,並確保你能夠用它執行一些簡單的任務。此時,最好列出一個你需要學習的技能清單。
在你掌握這些技能的同時,請訪問 設計