跳轉到內容

系統設計基礎

0% developed
來自華夏公益教科書,開放的書籍,開放的世界

計算系統

[編輯 | 編輯原始碼]

計算機是一種裝置。相比之下,計算系統是一個動態實體,用於解決問題並與其環境互動。計算系統由硬體、軟體以及它管理的資料組成。計算機硬體是構成機器的物理元素的集合:盒子、電路板、晶片、電線、磁碟驅動器、鍵盤、顯示器、印表機等。計算機軟體是提供計算系統執行的指令的程式集合。計算機的核心是它管理的資訊。沒有資料,硬體和軟體就毫無用處。

計算系統的層次

[編輯 | 編輯原始碼]

通訊

應用程式

作業系統

程式設計

硬體

資訊

1.2.1 定義術語:硬體、軟體、外設、網路、人力資源。

計算系統就像一個食人魔,由許多層組成。每層在系統的整體設計中都扮演著特定的角色。這些層在右側的圖中進行了說明。

每一層本身並不複雜。事實上,計算機實際上只執行非常簡單的任務——它只是執行這些任務的速度快到令人眼花繚亂,以至於許多簡單的任務可以組合起來完成更大、更復雜的任務。當將各種計算機層組合在一起時,每層都發揮著各自的作用,這些基本概念的組合可以產生驚人的效果。

最內層,資訊,反映了我們在計算機上表示資訊的方式。在許多方面,這純粹是概念性的。計算機上的資訊使用二進位制數字(1 和 0)進行管理。要理解計算機處理,首先必須理解二進位制數系統及其與其他數系統的關係。

下一層,硬體,包括計算機系統的物理硬體。計算機硬體包括門和電路等裝置,它們以基本的方式控制電流的流動。核心電子電路產生了專門的硬體元件,例如計算機的中央處理單元 (CPU) 和記憶體。在計算機在日常事務中發揮實際作用的家庭環境中,硬體還包括外部外設,例如滑鼠、鍵盤和螢幕。

程式設計層處理軟體,即用於完成計算和管理資料的指令。程式可以採取多種形式,在許多級別上執行,並用許多不同的語言實現。然而,儘管程式設計問題種類繁多,但目標仍然相同:解決問題。

每臺計算機都有一個作業系統 (OS) 來幫助管理計算機的資源。像 Linux 這樣的作業系統可以幫助我們與計算機系統互動並管理硬體裝置、程式和資料互動的方式。瞭解作業系統的功能是理解計算機的關鍵。

之前的(內部)層專注於使計算機系統正常工作。相反,應用程式層專注於使用計算機來解決特定的現實世界問題。我們執行應用程式來利用計算機在其他領域的能力,例如幫助我們設計建築物或玩遊戲。面向領域的計算機軟體工具的範圍非常廣泛,涉及計算的特定子學科,例如資訊系統、人工智慧和模擬。

1.2.2 描述計算機在網路世界中可以扮演的角色。

計算機不再孤立地存在於某人的桌面上。我們使用計算機技術進行通訊,而這種通訊是計算系統執行的基本層。計算機被連線到網路中,以便它們可以共享資訊和資源。例如,網際網路演變成一個全球網路,因此地球上幾乎沒有地方無法透過計算機技術進行通訊。全球資訊網使這種通訊相對容易;它徹底改變了計算機的使用,並使其為公眾所用。

計算機在當今網際網路中可以扮演的角色是簡單的客戶端或終端使用者;Web 伺服器;電子郵件伺服器,處理電子郵件訊息的計算機;DNS 伺服器,將域名(如 wikibooks.org)轉換為對計算機友好的地址(如 91.198.174.193)的計算機;路由器或處理網路資料的計算機;或防火牆,負責控制允許和禁止連線的計算機,通常用於安全目的。

使用計算機技術會導致安全風險增加。一些安全問題在整個計算機系統的低級別得到解決。然而,許多問題涉及保持個人資訊的安全。

資訊安全

[編輯 | 編輯原始碼]

1.2.3 討論與網路世界相關的社會和倫理問題。

許多討論的高階問題是資訊安全,即組織或個人執行的一套技術和策略,以確保對受保護資料的適當訪問。資訊安全確保只有經過授權的人才能讀取或修改資料,並且在需要時,授權使用者可以訪問這些資料。

資訊安全可以描述為機密性、完整性和可用性的綜合。雖然資訊安全的這些方面相互重疊和互動,但它們定義了看待問題的三種具體方式。任何對資訊安全問題的良好解決方案都必須充分解決這些問題。

  • 機密性是指確保關鍵資料免受未經授權的訪問。例如,您不希望任何人都能瞭解您儲蓄賬戶中有多少錢。
  • 完整性是指確保資料只能透過適當的機制進行修改。它定義了您可以對資訊的信任程度。當然,您不希望駭客能夠修改您的銀行餘額,但您也不希望出納員(具有授權訪問許可權)以不當的方式或未經您的批准修改您的餘額。此外,您不希望您的餘額因電源波動而發生變化,也不希望在資料電子傳輸過程中受到損害。
  • 可用性是指授權使用者在需要時能夠訪問合法目的的適當資訊的程度。即使資料受到保護,如果您無法訪問它,它也沒有用。如果未採取措施備份資料和維護冗餘訪問機制,則硬體問題(例如磁碟崩潰)會導致可用性問題。此外,駭客可能會發起攻擊,用無用的傳輸“淹沒”網路,從而阻止合法使用者連線到遠端系統。

從商業角度來看,資訊安全規劃需要風險分析,即確定哪些資料需要保護、識別對這些資料的風險以及計算風險成為現實的可能性。風險分析完成後,可以實施計劃來相應地管理風險。風險是威脅與漏洞的組合。我們希望最大限度地減少對可能讓我們面臨最大風險的威脅的漏洞。這些威脅可能是惡意的,例如駭客造成的威脅,也可能是意外的,例如系統崩潰。

資訊安全專家採用的另一個原則是將可用的資料管理許可權分開,以防止任何個人擁有對系統產生重大影響的許可權。該原則通常透過要求關鍵活動需要冗餘檢查和/或批准來實施。例如,大型金融交易通常需要單獨的授權流程。管理員應只為個人分配執行其工作職能所需的許可權。

確保未經授權的使用者無法訪問您的帳戶對於資料的機密性和完整性至關重要。

開發新系統

[edit | edit source]

1.2.4 在規劃新系統時,確定相關的利益相關者。

組織中的利益相關者是指任何影響或受組織目標影響的群體或個人。利益相關者可能負責設計,擁有經濟利益,或負責與客戶組織的維護。

利益相關者的示例包括:使用者、開發人員、立法者和決策者。

當前軟體質量方法

[edit | edit source]

1.2.5 描述從利益相關者那裡獲取需求的方法。

有很多方法可以從利益相關者那裡獲取需求。

一種方法是觀察:這涉及到在系統工作時監控系統。例如,開發人員可能會在工會工作人員在一天中註冊新成員時進行觀察,並記錄下流程(以及提出的問題、所需資訊等)。雖然這種方法不會產生可量化的資料,但觀察可以讓開發人員對流程產生人類洞察力,而其他方法可能無法獲得。此外,在沒有觀察的情況下,不可能改變系統。

調查是收集資料的更容易方法。由於它們可以遠端進行,因此它們更便宜且耗時更短。調查會產生清晰的數字,易於進行統計。例如,可以向圖書館的所有客戶傳送電子郵件,詢問他們如何使用當前(非計算機化)借書系統。然而,回覆率可能很低,或者回復可能會存在偏差。

訪談可以讓研究人員與利益相關者互動。它們是收集資料的更直接方法。但是,較小的樣本量仍然是一個風險,以及利益相關者面臨的社會壓力。

重要的是要牢記利益相關者的隱私。例如,如果為報告政府機構腐敗的系統設計系統,則可能不希望在設計過程中公佈採訪舉報者的身份,以保護訊息來源。


1.2.6 描述收集資訊以獲得可行解決方案的適當技術。

如果有一個被替換的舊系統,必須首先檢查當前系統。此外,可以分析類似的競爭產品。此外,有必要考慮組織能力(例如,組織擁有的資金、資源等)並有時執行文獻搜尋(例如,谷歌它)以獲得適當的技術。

軟體工程

[edit | edit source]

1.2.7 構建合適的表示以說明系統需求。

流程圖
[edit | edit source]
系統流程圖

流程圖是一種型別的圖表,它表示演算法、工作流程或過程,顯示步驟作為各種型別的框,並透過連線它們以箭頭來顯示它們的順序。

資料流圖
[edit | edit source]
資料流圖

資料流圖與系統流程圖非常相似,只是它們沒有顯示正在做出的決策。它們只顯示資料採取的不同路徑,資料儲存的位置以及資料處理的位置。

結構圖
[edit | edit source]
結構圖

結構圖將計算機系統分解為其子模組。它們代表了計算機科學的模組化方面。(碎片化/專業化之間的平衡)

社會和倫理方面

[edit | edit source]

1.2.11 討論與引入新的 IT 系統相關的社會和倫理問題。

  • 可靠性:系統必須提供與現實相符的準確資料。過時或不正確的資料可能會導致嚴重的社會問題。例如,一個銀行系統表明客戶沒有償還貸款 - 儘管他們在現實中已經償還了 - 可能會給終端使用者造成重大壓力。
  • 安全:確保資料的機密性和完整性是一個重要的倫理方面,尤其是在處理敏感資訊的組織中(例如無國界醫生
  • 隱私和匿名:考慮洋蔥路由專案,他們開發了洋蔥瀏覽器。在阿拉伯之春期間,抗議者使用洋蔥路由訪問社交媒體並報告針對抗議者的罪行,當時政府封鎖了社交媒體。確保保護這些抗議者的身份是洋蔥路由開發人員在設計洋蔥路由時非常重要的考慮因素。
  • 智慧財產權:像海盜灣這樣的檔案共享網站挑戰了傳統的版權理念。這些是當今網際網路上激烈爭論的熱門話題。
  • 監視:隨著計算機系統在日常生活中越來越普遍,重要的是確保從使用者那裡跟蹤和收集資料的可能性保持受控並保護使用者。
  • 全球化:隨著計算機系統在世界範圍內越來越普遍,重要的是考慮與世界各地交換資料相關的潛在問題。例如,將資料分發給不同時區的人員會帶來挑戰。不同語言的字元編碼在 1980 年代也是一個重大問題。
形式驗證
[edit | edit source]

1.2.8 描述原型用於向客戶展示擬議系統的目的。

軟體原型是建立軟體應用程式原型的活動,即正在開發的軟體程式的不完整版本。原型有幾個優點:軟體設計師和實施人員可以在專案早期從使用者那裡獲得寶貴的反饋。客戶和承包商可以比較所製作的軟體是否符合軟體規格。


1.2.9 討論設計過程中迭代的重要性。

原型通常與迭代設計流程一起使用,以快速構建適合客戶需求的產品。迭代設計允許根據測試結果快速改進和完善產品。例如,Windows 8.1 是在 Windows 8 失敗後不久釋出的。

1.2.10 解釋在設計過程中沒有讓終端使用者參與的可能後果。

終端使用者的不滿,因為他們的需求可能無法得到滿足。

人機互動

[edit | edit source]

1.2.12 定義可用性一詞。

可用性是指人造物品的易用性和易學性。使用物件可以是軟體應用程式,也可以是任何人類互動的物件。一個程式越有效、越令人滿意和越令人難忘,它就越可用。

1.2.13 識別常用數字裝置中的一系列可用性問題。

考慮數碼相機。它們通常有很小的按鈕,身體殘疾的使用者很難使用。此外,盲人使用者無法使用取景器。

1.2.14 確定可以用來提高系統可訪問性的方法。

可訪問性定義了系統如何才能被訪問以進行資訊交換和操作。這通常涉及鍵盤、滑鼠和螢幕。但是,對於某些人來說,使用這些方法訪問系統是困難或不可能的。

改進系統可訪問性的方法

Touch screens
Voice recognition
Text-to-speech
Braille keyboards
Braille printers

例如,請參見史蒂芬·霍金。其他方法包括:改進語言範圍,使使用者介面更直觀/更友好,減少術語和複雜術語的使用,使系統透過網際網路可用,並降低系統的成本(讓更多人使用它)。

1.2.15 確定系統中出現的一系列可用性問題。

語音識別系統經常誤解口音/方言,並且不能很好地處理環境噪音。

1.2.16 討論人類與機器之間互動在道德、倫理、社會、經濟和環境方面的意義。

  • 環境:資料中心使用大量電力。但是,像冰島這樣的國家已經投資了 100% 可再生能源資料中心。計算機還透過引入遠端辦公減少了旅行的汙染成本。
  • 道德: 拖網監控程式,例如美國國家安全域性的 稜鏡計劃XKeyScore 計劃,可以說侵犯了全球網際網路使用者的隱私權。
  • 社會: 文化全球化。使來自世界不同地區的人們能夠即時見面。為所有人提供便捷、廉價的娛樂。
  • 經濟: 人們可能會失去工作。打字員是典型的例子。
華夏公益教科書