通識課05.軟體功能就是輸入、處理和輸出

前面章節我們介紹了許多不同的軟體開啟方式,也知道了這些軟體絕大多數都是「執行檔」,因此這邊我繼續補充,我們在用的軟體,它們的功能主要有三大類別,分別是「輸入(Input)」、「處理(Process)」和「輸出(Output)」。

輸入(Input)

當我們講電腦的輸入時,概念就是「我們對電腦做的各種動作」。

常見的輸入動作像是滑鼠點擊、觸控螢幕點擊、鍵盤打字、卡片插入、用麥克風講話、掃描器掃描、鏡頭拍照、鏡頭視訊,甚至是按下開機鍵也算是一種輸入。

雖然有非常多種不同的輸入方式,但大多數我們製作軟體時,會如同我們使用電腦一樣,會是以「鍵盤打字」和「滑鼠(手指)點擊」為主的軟體。然後再以「插入IC卡」、「麥克風講話」和「用鏡頭拍照錄影」等為輔助,作為軟體的輸入。

上面雖然我們已經知道了如打字、點擊、插入卡片、麥克風講話、拍照、錄影等屬於輸入,但實際上在軟體中我們在輸入的處理部分,比我們想像中的還要複雜許多。

例如,我們需要用打字的方式輸入Email至軟體中,這時雖然我們都知道Email通常是像「[email protected]」這個樣子,但有些人難免不小心少打「@」或多打了「.」,導致Email輸入時變成像這樣「test.bang.tw」,因此我們在軟體中取得輸入內容時,還需避免使用者輸入錯誤和提醒使用者正確的輸入範例為何。

輸出(Output)

當我們講電腦的輸出時,概念正好與輸入相反,就是「電腦為我們做的各種動作」。

常見的像是檢視畫面、印表機列印、聲音播出、其他設備機器動作等,甚至開機燈號也算是一種輸出。

如同輸入,我們有非常多種不同的輸出方式,但我們大多數製作軟體時就如同我們使用電腦一樣,會以「檢視畫面」為主。然後再以「放出音樂」、「列印」和「操作其他設備」等為輔助,作為軟體的輸出。

上面雖然也講得簡單,但實際上我們在開發軟體時,輸出就是我們提供給使用者的所有事物。大多數情況下,我們會花費較多成本在「使用者取得」的東西,也就是輸出上,因為使用者從軟體中可以獲得什麼,對軟體的成敗影響最大。

例如,我們製作網頁程式,就會在網頁畫面上進行美觀、好用、體驗和流暢等設計,讓我們的使用者使用網頁時有非常良好的體驗與第一印象,這樣使用者才會有機會繼續使用下去。

處理(Process)

軟體功能的完整執行流程如下:

  1. 輸入:進行一些動作來讓軟體接收到指令、資料和檔案等資源
  2. 處理:收到輸入後,軟體將會進行邏輯判斷和計算處理等工作
  3. 輸出:處理完畢後,軟體會以預先準備好的動作將結果提供給使用者

這循環與我們平常工作非常相似,通常我們的工作都會先收到主管的指示,然後進行處理,最後將處理後的結果回應給主管。

處理的部分,就是我們個軟體功能中最核心的部分,這就如同我們的工作一樣,大多數情況下,我們是因為具備能力可處理某種工作,才會收到主管的指令,所以我們也會先確認我們的電腦可以做到這些工作才開始開發軟體。

但相對之下,比起輸入和輸出,處理抽象許多,但我們在電腦、手機等設備中大家都已經使用過非常多的軟體。我們可以想想,這些軟體除了要我們打字、點擊等輸入操作和檢視畫面、文字等輸出以外,還有做什麼事情呢?

軟體在大多數的情況下都會處理非常多的事情,這些事情我們通常在開發軟體時,會盡可能分成許多小的工作,這些小的工作也會有各自不同的「輸入」、「處理」和「輸出」。

例如我們要製作一個大家常見的「使用者登入」功能,我們實際上的功能如下:

  1. 輸入:以鍵盤打字「帳號」和「密碼」並點擊「登入」按鈕。
  2. 處理:將「輸入」的帳號密碼再作為參數,到資料庫尋找並取得結果「輸出」,接著「判斷」是否正確登入,正確則將登入狀態「輸入」至記憶體記錄起來,錯誤則「輸出」錯誤訊息。
  3. 輸出:將登入結果或錯誤訊息檢視於螢幕畫面上。

由此可見,我們的「處理」中其實也會包含其他細部的「輸入」和「輸出」,另外再加上許多的「邏輯判斷」、「重複運作」和「計算」等功能來達成最終結果。

所以處理包含更多細部的功能(輸入、處理、輸出),而除了這些「輸入」和「輸出」以外主要就是以「邏輯判斷」、「重複運作」和「計算」等動作最具代表性。

瞭解輸入、處理和輸出的概念非常重要,因為我們不只在開發軟體中持續使用,我們在工作和生意也都會持續運用到這些規則邏輯。

By Bang