2023人機交互期末復習

考試題型及分值分布

1、選擇題(10題、20分)
2、填空題(10題、20分)
3、判斷題(可選、5題、10分)
4、解答題(5~6題、30分)
5、分析計算題(1~2題、20分)
注意:答案有多條時,用1、2、3形式分別列出。

筆試重點

1、掌握人機交互技術基本概念、研究內容及發展趨勢
2、主要人機交互設備及其主要原理
3、行為模型、結構模型的主要研究內容及其特點,掌握模型的相互轉換
4、能夠根據案例分析某軟件結構的行為模型或結構模型
5、掌握圖形用戶界面的基本原則
6、掌握移動互聯網設計的基本原則及其特點
7、掌握幾種基本的軟件體系結構
8、熟悉LOTOS的幾種關系及其語法
9、什么是可用性及其可用性的基本原則
10、案例綜合分析
11、消息循環機制
12、操作系統發展歷史及發展趨勢

1、人機交互技術基本概念、研究內容及發展趨勢

人機交互的概念

什么是人機交互
  • 人機交互(Human-Computer Interaction,HCI)是關于設計、評價和實現供人們使用的交互式計算機系統,且圍繞這些方面的主要現象進行研究的科學(ACM SIGCHI,1992,第6頁)
  • 人機交互是一門綜合學科,它與認知心理學、人機工程學、多媒體技術、虛擬現實技術等密切相關。其中,認知心理學與人機工程學是人機交互技術的理論基礎,而多媒體技術、虛擬現實技術與人機交互是相互交叉和滲透的。

人機交互研究內容

  • 人機交互界面表示模型與設計方法(Model and Methodology)
  • 可用性分析與評估(Usability and Evaluation)
  • 多通道交互技術(Multi-Modal)
  • 認知與智能用戶界面(Intelligent User Interface,IUI)
  • 群件(Groupware)
  • Web設計(Web-Interaction)
  • 移動界面設計(Mobile and Ubicomp)

人機交互發展趨勢 ★

在未來的計算機系統中,將更加強調“以人為本”、“自然、和諧”的交互方式,以實現人機高效合作。

  1. 集成化

人機交互將呈現出多樣化、多通道交互的特點。桌面和非桌面界面,可見和不可見界面,二維與三維輸入,直接與間接操縱,語音、手勢、表情、眼動、唇動、頭動、肢體姿勢、觸覺、嗅覺、味覺以及鍵盤、鼠標等交互手段將集成在一起,是新一代自然、高效的交互技術的一個發展方向。

  1. 網絡化

無線互聯網、移動通信網的快速發展,對人機交互技術提出了更高的要求。新一代的人機交互技術需要考慮在不同設備、不同網絡、不同平臺之間的無縫過渡和擴展,支持人們通過跨地域的網絡(有線與無線、電信網與互聯網等)在世界上任何地方用多種簡單的自然方式進行人機交互,而且包括支持多個用戶之間以協作的方式進行交互。另外,網格技術的發展也為人機交互技術的發展提供了很好的機遇。

  1. 智能化

目前,用戶使用鍵盤和鼠標等設備進行的交互輸入都是精確的輸入,但人們的動作或思想等往往并不很精確,人類語言本身也具有高度模糊性,人們在生活中常常習慣于使用大量的非精確的信息交流。因此,在人機交互中,使計算機更好地自動捕捉人的姿態、手勢、語音和上下文等信息,了解人的意圖,并做出合適的反饋或動作,提高交互活動的自然性和高效性,使人—機之間的交互像人—人交互一樣自然、方便,是計算機科學家正在積極探索的新一代交互技術的一個重要內容。

  1. 標準化

目前,在人機交互領域,ISO已正式發布了許多的國際標準,以指導產品設計、測試和可用性評估等。但人機交互標準的設定是一項長期而艱巨的任務,并隨著社會需求的變化而不斷變化。

人機交互的發展歷史

  • 命令行界面交互階段
    • 計算機語言經歷了由最初的機器語言,而后是匯編語言,直至高級語言的發展過程。這個過程也可以看作早期的人機交互的一個發展過程。
    • 命令行界面可以看作第一代人機界面。在這種界面中,計算機的使用者被看成操作員,計算機對輸入信息一般只做出被動的反應,操作員主要通過操作鍵盤輸入數據和命令信息,界面輸出以字符為主,因此這種人機界面交互方式缺乏自然性。
  • 圖形用戶界面(GUI)交互階段
    • 圖形用戶界面(Graphical User Interface,GUI)的出現,使人機交互方式發生了巨大變化。GUI 的主要特點是桌面隱喻、WIMP技術、直接操縱和“所見即所得”。
    • 與命令行界面相比,圖形用戶界面的人機交互自然性和效率都有較大的提高。圖形用戶界面很大程度上依賴于菜單選擇和交互小組件(Widget)。
    • 圖形用戶界面給有經驗的用戶造成不方便,他們有時傾向使用命令鍵而不是選擇菜單,且在輸入信息時用戶只能使用“手”這一種輸入通道。
    • 圖形用戶界面需要占用較多的屏幕空間,并且難以表達和支持非空間性的抽象信息的交互。
  • 自然和諧的人機交互階段
    • 用人的多種感覺通道和動作通道(如語音、手寫、姿勢、視線、表情等輸入),以并行、非精確的方式與(可見或不可見的)計算機環境進行交互,使人們從傳統的交互方式的束縛解脫出來,進入自然和諧的人機交互時期。這一時期的主要研究內容包括多通道交互、情感計算、虛擬現實、智能用戶界面、自然語言理解等方面。

2、主要人機交互設備及其主要原理

輸入設備

文本輸入設備

文本輸入是人與計算機交互的一個重要組成部分,同時也是一項繁重的工作。鍵盤輸入是最常見、最主要的文本輸入方式,手寫以及語音等一些更自然的交互方式也可為文本輸入提供輔助手段。

鍵盤

主要原理:鍵盤的每個按鍵對應一個編碼,當用戶按下一個按鍵時,導電塑膠將線路板上的這個按鍵的排線接通,鍵盤中的編碼器能夠迅速將此按鍵所對應的編碼通過接口電路輸送到計算機的鍵盤緩沖器中,由計算機識別處理。

手寫輸入設備
手寫筆
  1. 有線筆
  2. 無線筆
  1. 手寫筆一般還帶有兩個或三個按鍵,其功能相當于鼠標按鍵,這樣在操作時不需要在手寫筆和鼠標之間來回切換。
手寫板
  1. 電阻式壓力手寫板:幾乎已經被淘汰;
  1. 電磁式感應手寫板:目前市場主流產品;
  1. 電容式觸控手寫板:市場的新生力量,具有耐磨損、使用簡便、敏感度高等優點,是今后手寫板的發展趨勢。

評測指標:壓感級數;精度;書寫面積

手寫漢字識別軟件

除了硬件外,手寫筆和手寫板的另一項核心技術是手寫漢字識別軟件,目前各類手寫筆的識別技術都已相當成熟,識別率和識別速度也能夠滿足實際應用的要求。

圖像輸入設備

圖像輸入是人與計算機交互的另外一個重要組成部分;掃描儀可以快速地實現圖像輸入,且經過對圖像的分析與識別,可以得到文字、圖形等內容;而攝像頭則是捕捉動態場景最常用的工具。

二維掃描儀

二維掃描儀作為光電、機械一體化的高科技產品,自問世以來憑借其獨特的數字化“圖像”采集能力,低廉的價格以及優良的性能,得到了迅速的發展和廣泛的應用,目前已成為計算機不可缺少的圖文輸入工具之一,被廣泛地應用于圖形、圖像處理的各個領域。

性能指標:分辨率;掃描速度。掃描速度決定了掃描儀的工作效率,分辨率決定了最高掃描精度

數字攝像頭

攝像頭作為一種視頻輸入設備,被廣泛應用在視頻聊天、實時監控等方面

數字攝像頭可以直接捕捉影像,然后通過計算機的串口、并口或者USB接口傳送到計算機里;沒有存儲裝置和其他附加控制裝置,只有一個感光部件、簡單的鏡頭和不太復雜的數據傳輸線路,造價低廉衡量因素:感光元器件;像素數;解析度;視頻速度;鏡頭

三維信息輸入設備

在許多領域,如機器視覺、面形檢測、實物仿形、自動加工、產品質量控制、生物醫學等,物體的三維信息必不可少的。三維掃描儀是實現三維信息數字化的一種極為有效的工具。動作捕捉設備則用于捕捉用戶的肢體甚至是表情動作,生成運動模型,在影視、動漫制作中已被大量應用。

三維掃描儀
  1. 接觸式

主要原理:采用探測頭直接接觸物體表面,通過探測頭反饋回來的光電信號轉換為物體表面形狀的 數字信息。

主要以三維坐標測量機為代表。其優點是具有較高的準確性和可靠性,但也存在測量速度慢、費用較高、探頭易磨損以及誤差修正等缺點。

  1. 非接觸式:主要有三維激光掃描儀,照相式三維掃描儀等,分別是基于激光掃描測量和結構光掃描測量等技術設計的。這類設備的優點是掃描速度快,易于操作,且由于不需接觸被測量的物體,所以對物體表面損傷少等。

三維激光掃描儀

通過高速激光掃描測量技術,獲取被測對象表面的空間坐標數據。

動作捕捉設備
  1. 機械式

主要原理:利用可伸縮的機械結構安裝于捕捉物體上,以取得各部分的運動量。

優點是成本低廉,但這種方式限制了運動物體的自由運動,且由于機械設備的尺寸、重量等問題,因而限制了其應用范圍。

  1. 電磁式

主要原理:將若干低頻磁場感應器安裝在捕捉物體上,根據感應器接收到的磁場,可以計算出接收器相對于發射器的位置和方向。

由于易受電磁干擾影響到了捕捉數據的精度和穩定性,對于作業場地的要求也非常嚴格。

  1. 光學式

主要原理:利用計算機視覺原理。從理論上說,對于空間中的一個點,只要它能同時為兩部攝相機所見,則根據同一時刻兩部攝相機所拍攝的圖像和對應參數,就可以確定這一時刻該點在空間的位置。攝相機以足夠高的速率連續拍攝時,從圖像序列中就可以得到該點的運動軌跡。光學式運動捕捉便是利用這一點通過對目標上特定光點的監視和跟蹤來完成運動捕捉的任務。

體感輸入設備

體感輸入設備與光學式動作捕捉設備的基本原理與應用類似,而體感輸入設備犧牲了一定的捕捉精度,但可以更簡易、快捷的實現動作捕捉,支持用戶通過肢體動作控制計算機應用,例如體感游戲。

指點輸入設備

指點設備常用于完成一些定位和選擇物體的交互任務。物體可能處于一維、二維、三維或更高維的空間中,而選擇與定位的方式可以是直接選擇,或通過操作屏幕上的光標來完成。

鼠標及控制桿

鼠標分類:

  1. 機械式鼠標(半光學鼠標)
  1. 光電式鼠標

控制桿分類:

  1. 位移定位
  2. 壓力定位
觸摸屏
  1. 電阻式觸摸屏
  2. 電容式觸摸屏
  3. 基于光學原理的多點觸摸屏

輸出設備

光柵顯示器

光柵顯示器是計算機的重要輸出設備,是人機對話的重要工具。它的主要功能是接收主機發出的信息,經過一系列的變換,最后以光的形式將文字和圖形顯示出來。

投影儀

投影儀,又稱投影機,是一種可以將數字圖像或視頻投射到幕布上的設備。

根據投影儀的工作方式不同,主要分為CRT型LCD型DLP(數字光處理)型三種不同類型的投影儀,而其中LCD投影儀與DLP投影儀又是目前商用投影儀中的主流

1.CRT三槍投影儀

2.LCD投影儀

3.DLP投影儀

打印機

打印機是目前非常通用的一種輸出設備,其結構可分為機械裝置和控制電路兩部分。常見的有針式、噴墨、激光打印機三類。

重要指標:打印分辨率、速度、幅面、最大打印能力。

3D打印機

3D打印機又稱三維打印機,它以數字模型文件為輸入,運用特殊蠟材、粉末狀金屬或塑料等可粘合材料,通過打印一層層的粘合材料來制造三維的物體。分為噴墨式,熔積成型,激光燒結三種類型。

3D打印機與傳統打印機最大的區別在于它使用的“墨水”是實實在在的原材料,可用于打印的介質種類多樣,從繁多的塑料到金屬、陶瓷以及橡膠類物質。

1.“噴墨”式3D打印機

2.“熔積成型”3D打印機

3.“激光燒結”3D打印機

語音交互設備

人們可以使用固定電話或移動電話以及PC、PDA和其它智能設備通過語音識別、語音合成等交互技術,以及語音瀏覽、智能信息處理技術等實現訪問互聯網,實現個人服務和商業服務的語音應用。在美國、日本,語音互聯已成為簡易終端接入互聯網的主要方式之一。對于語音的交互,耳機、麥克風以及聲卡是最基本的設備。

耳麥

1. 耳機

常見的耳機技術指標有耳機結構、頻響范圍、靈敏度、阻抗、諧波失真

耳機結構:可分為封閉式、開放式、半開放式三種

頻響范圍:頻響范圍應當能夠包括50Hz到12500Hz之間

靈敏度:在同樣響度的情況下,需要輸入功率的大小,靈敏度越高所需要的輸入功率越小

阻抗:耳機交流阻抗的簡稱

諧波失真:是一種波形失真,在耳機指標中有標示,失真越小,音質也就越好。一般的耳機應當小于或略等于0.5%

2. 麥克風

耳機佩戴有麥克風。為了過濾背景雜音,達到更好的識別效果,許多麥克風采用了NCAT(Noise Canceling Amplification Technology)專利技術NCAT技術結合特殊機構及電子回路設計以達到消除背景噪音,強化單一方向聲音(只從配戴者嘴部方向)的收錄效果,是專為各種語音識別和語音交互軟件設計的,提供精確音頻輸入的技術

聲音合成設備—聲卡

1. 功能

是一種安裝在計算機中的最基本的聲音合成設備,是實現聲波/數字信號相互轉換的硬件,可把來自話筒、磁帶、光盤的原始聲音信號加以轉換,輸出到耳機、揚聲器、擴音機、錄音機等聲響設備,完成對聲音信息進行錄制與回放

2. 結構

模數轉換電路:負責將麥克風等聲音輸入設備采集到的模擬聲音信號轉換為計算機能處理的數字信號

數模轉換電路:負責將計算機使用的數字聲音信號轉換為耳機、音箱等設備能使用的模擬信號

虛擬現實交互設備

虛擬現實系統要求計算機可以實時顯示一個三維場景,用戶可以在其中自由的漫游,并能操縱虛擬世界中一些虛擬物體。因此,除了一些傳統的控制和顯示設備,虛擬現實系統還需要一些特殊的設備和交互手段,來滿足虛擬系統中的顯示、漫游以及物體操縱等任務

三維空間定位設備
空間跟蹤定位器

主要的性能指標

1. 定位精度:指傳感器所測出的位置與實際位置的差異

2. 位置修改速率:指傳感器在一秒鐘內所能完成的測量次數

3. 延時:指被檢測物體的某個動作與傳感器測出該動作時間的間隔

數據手套
觸覺和力反饋器
三維顯示設備
立體視覺

立體影像顯示技術主要有兩種:

1. 主動式立體模式:用戶的左右眼影像將按照順序交替顯示,用戶使用LCD立體眼鏡保持與立體影像的同步,這種模式可以產生高質量的立體效果;

2. 被動式立體系統:需要使用兩套顯示設備以及投影設備分別生成左右眼影像并進行投影,不同的投影分別使用不同角度的偏振光來區別左右眼影像,用戶使用偏振光眼鏡保持立體影像的同步

頭盔式顯示器(Head Mounted Display,HMD)是一種立體圖形顯示設備,可單獨與主機相連以接受來自主機的三維虛擬現實場景信息

  1. 單通道的頭盔顯示器
  2. 雙通道的頭盔顯示器
  3. 頭盔式顯示器使用方式為頭戴式,輔以空間跟蹤定位器可進行虛擬場景輸出效果的觀察,同時觀察者可做空間上的移動,如自由行走、旋轉等

洞穴式顯示環境(Cave Automatic Virtual Environment,CAVE)是一種四面的沉浸式虛擬現實環境

1. 對于處在系統內的用戶來說,投影屏幕將分別覆蓋用戶的正面、左右以及底面視野,構成一個邊長為10英尺的立方體

2. 允許用戶在虛擬空間中走動,而不用佩戴笨重的設備

3. 允許在同一個環境中存在多個用戶,而且用戶間可以自然地交互

4. 一次能顯示大型模型,如汽車、房屋等,而HMD則需要頭部運動才能看到完整的模型

投影拼接融合的沉浸式顯示環境

裸眼立體顯示設備

3、行為模型、結構模型的主要研究內容及其特點,掌握模型的相互轉換

主要從用戶和任務的角度考慮如何來描述人機交互界面

行為模型

主要研究內容

分析人員獲取用戶需求后,結合領域專家的意見和指導獲取系統中需要完成的任務,對任務的主要因素進行詳細地分析,如任務的層次發生條件完成的方法以及它們之間的關系等。

特點是注重用戶行為和需求的實際調研和分析,強調從用戶的角度出發,以用戶為中心進行設計。

GOMS

通過目標 (Goal)、操作 (Operator)、方法 (Method) 以及選擇規則 (Selection) 四個元素來描述用戶的行為。是在交互系統中用來分析建立用戶行為的模型。它采用“分而治之”的思想,將一個任務進行多層次的細化。

  1. 目標:用戶執行任務最終想要得到的結果,它可以在不同的層次中進行定義
  2. 操作:任務分析到最低層時的行為,是用戶為了完成任務所必須執行的基本動作
  3. 方法:描述如何完成目標的過程。一個方法本質上來說是內部的算法,用來確定子目標序列及完成目標所需要的操作
  4. 選擇規則:用戶要遵守的判定規則,以確定在特定環境下所要使用的方法。當有多個方法可供選擇時,GOMS中并不認為這是一個隨機的選擇,而是盡量來預測會使用哪個方法,這需要根據特定用戶、系統的狀態、目標的細節來預測要選擇哪種方法作為一種人機交互界面表示的理論模型,GOMS是人機交互研究領域內少有的幾個廣為人知的模型之一,并被稱為最成熟的工程典范,該模型在計算機系統的評估方面也有廣泛的應用

局限性:

① 沒有清楚的描述錯誤處理的過程,假設用戶完全按一種正確的方式進行人機交互,因此只針對那些不犯任何錯誤的專家用戶;

② 對于任務之間的關系描述過于簡單,只有順序和選擇另外選擇關系通過非形式化的附加規則描述,實現起來也比較困難;

③ 把所有的任務都看作是面向操作目標的,而忽略了一些任務所要解決的問題本質以及用戶間的個體差異。

LOTOS

LOTOS算符 ★

T1 ||| T2(交替 Interleaving)

T1 和 T2兩個任務相互獨立執行,可按任意順序執行,但永遠不會同步。

T1 [] T2(選擇 Choice)

需要在 T1,T2 中選擇一個執行,一旦選擇某一個后,必須執行它直到結束,在這中間另一個再無執行機會。

T1 | [a1,...,an] | T2(同步 Synchronization)

任務 T1,T2 必須在動作(a1,……,an)處保持同步 。

T1 [> T2(禁止 Deactivation)

一旦 T2 任務被執行,T1 便無效(不活動)。

T1 >> T2(允許 Enabling)

當 T1 成功結束后才允許 T2 執行 。

中國象棋的LOTOS圖形描述:

LOTOS與GOMS的結合

LOTOS模型很好的描述了任務之間的時序約束關系,這些時序約束關系能更好的描述GOMS中子目標之間的關系。

用GOMS模型描述任務的分解過程,而用LOTOS給出子任務之間的約束關系,這樣就可以增加兩種表示模型的表示能力。

UAN

一種簡單的符號語言,主要描述用戶的行為序列以及在執行任務時所用的界面物理對象。 盡管UAN屬

于一種行為模型,但作為一種任務描述語言,它又涉及一定程度的系統行為的描述,因而它兼有行為模

型和結構模型的一些特點。

采用一種表格結構來表示任務:

結構模型

主要從系統的角度來表示人機交互界面。重點介紹狀態轉換網絡(STN-State Transition Network)和

產生式規則 (Production Rule)

結構模型主要研究人機交互系統的結構和設計原理,包括系統的組成、各部分之間的關系、系統的運行機制等。

特點是注重系統的結構設計和運行機制,強調從系統的角度出發,以任務和功能為中心進行設計。

行為模型和結構模型的轉換 ★

4、能夠根據案例分析某軟件結構的行為模型或結構模型

5、掌握圖形用戶界面的基本原則

圖形用戶界面主要思想

桌面隱喻

  • 桌面隱喻是指在用戶界面中用人們熟悉的桌面上的圖例清楚地表示計算機可以處理的能力。

所見即所得

  • 在WYSIWYG交互界面中,其所顯示的用戶交互行為與應用程序最終產生的結果是一致的。

直接操縱

  • 直接操縱是指可以把操作的對象、屬性、關系顯式地表示出來,用光筆、鼠標、觸摸屏或數據手套等指點設備直接從屏幕上獲取形象化命令與數據的過程

圖形用戶界面設計一般原則

  • 界面要具有一致性
  • 常用操作要有快捷方式
  • 提供必要的錯誤處理功能
  • 提供信息反饋
  • 允許操作可逆
  • 設計良好的聯機幫助
  • 合理劃分并高效地使用顯示屏幕

6、掌握移動互聯網設計的基本原則及其特點

基本原則 ★

  • 了解用戶
  • 了解目標平臺
  • 簡單直觀
  • 個性化設計
  • 易于檢索采用一致的界面風格
  • 避免不必要的文本輸入
  • 根據用戶的要求使服務個性化
  • 最大限度地避免用戶出錯
  • 文本信息應當本地化
  • 進行用戶測試

特點 ★

1. 移動互聯網的數據接入方式是影響移動界面設計的一個重要因素,目前也是多種標準并存,主要形式包括無線局域網(Wireless Local Area Network,WLAN)、無線城域網(Wireless Metropolitan Area Network,WMAN)、無線個域網(Wireless Personal Area Networks,WPAN)、高速無線廣域網(Wireless Wide Area Networks,WWAN)以及衛星通訊等。

2. 移動設備種類繁多,其相應的輸入方式也相當復雜。特別是對于目前主要的移動設備形式—智能手機與掌上電腦而言,由于尺寸較小、接口較為簡單,全尺寸鍵盤、鼠標等諸多的傳統的輸入輸出設備較難在移動界面中使用,因此需要設計專門的輸入輸出方式,以適應移動界面的特點

Web界面設計原則

  1. 以用戶為中心
  2. 一致性
  3. 簡潔與明確
  4. 體現特色
  5. 兼顧不同的瀏覽器
  6. 明確的導航設計

移動界面設計的原則

  1. 簡單直觀
  2. 個性化設計
  3. 易于檢索
  4. 界面風格一致
  5. 避免不必要的文本輸入
  6. 根據用戶的要求使服務個性化
  7. 最大限度地避免用戶出錯
  8. 文本信息應當本地化

7、掌握幾種基本的軟件體系結構

8、熟悉LOTOS的幾種關系及其語法

LOTOS算符 ★

T1 ||| T2(交替 Interleaving)

T1 和 T2兩個任務相互獨立執行,可按任意順序執行,但永遠不會同步。

T1 [] T2(選擇 Choice)

需要在 T1,T2 中選擇一個執行,一旦選擇某一個后,必須執行它直到結束,在這中間另一個再無執行機會。

T1 | [a1,...,an] | T2(同步 Synchronization)

任務 T1,T2 必須在動作(a1,……,an)處保持同步 。

T1 [> T2(禁止 Deactivation)

一旦 T2 任務被執行,T1 便無效(不活動)。

T1 >> T2(允許 Enabling)

當 T1 成功結束后才允許 T2 執行 。

中國象棋的LOTOS圖形描述:

9、什么是可用性及其可用性的基本原則

定義 ★

指特定的用戶在特定環境下使用產品并達到特定目標的效力、效率和滿意的程度。

可用性并不僅僅與用戶界面相關,而是蘊含更廣泛的內涵,可以從五個方面去理解,這五個方面集中反映了用戶對產品的需求:

  • 有效性(Effective)
  • 效率(Efficient)
  • 吸引力(Engaging)
  • 容錯能力(Error Tolerant)
  • 易于學習(Easy to Learn)

基本原則 ★

1. 可學習性

可學習性是指交互系統能否讓新手學會如何使用系統,以及如何達到最佳交互效能。支持可學習性的原則包括:可預見性、同步性、熟悉性、通用性、一致性

2. 靈活性

靈活性體現了用戶與系統交流信息方式的多樣性。有下列幾種原則:可定制性、對話主動性、多線程、可互換性、可替換性

3. 魯棒性

用戶使用計算機的目的是達到某種目標,能不能成功地達到目標和能不能對到達的目標進行評估就體現為交互的魯棒性。包括:可觀察性、可恢復性、響應性、任務規范性

10、案例綜合分析

11、消息循環機制

消息:在了解什么是消息先來了解什么是事件。事件可分為幾種,由輸入設備觸發的,比如鼠標鍵盤等等。由窗體控件觸發的,比如button控件,file菜單等。還有就是來自Windows內部的事件。這三種稱為事件。而消息,是由事件翻譯而來的。事件產生消息。

從數據結構角度來講,消息是一種結構體。結構如下:

typedef struct tagMSG
{HWND hwnd;  //窗口句柄。UINT message;//消息類型。WPARAM wParam;//32位附加信息。LPARAM lParam;//32位附加信息。DWORD time;//消息發送時間。POINT pt;//消息發送時,鼠標所在位置。}MSG;   

消息隊列消息隊列有兩種,分為系統消息隊列和應用程序消息隊列產生的消息首先由Windows系統捕獲,放在系統消息隊列,再拷貝到對應的應用程序消息隊列。32/64位系統為每一個應用程序維護一個消息隊列

消息循環:系統為每個應用程序維護一個消息循環,消息循環會不斷檢索自身的消息隊列。每有一個消息,就用GetMessage()取出消息。

while(GetMessage (&msg, NULL, 0, 0))//Windows消息循環。
{TranslateMessage (&msg) ;//翻譯消息,如按鍵消息,翻譯為WM_CHARDispatchMessage (&msg) ;//分發消息到對應窗口
}

GetMessage具有阻塞機制。當消息隊列中沒有消息時,程序非忙等,而是讓權等待。當收到WM_QUIT時,GetMessage返回false,循環停止,同時應用程序終止。

以上簡要地介紹了消息隊列,消息循環與消息處理的概念。

Windows的應用程序靠消息驅動來實現功能。而消息驅動靠消息機制來處理。消息機制就是由消息隊列,消息循環,消息處理構成的。

那么,消息機制是如何運作的呢?

當用戶運行一個應用程序,通過對鼠標的點擊或鍵盤按鍵,產生一些特定事件。由于Windows一直監控著I/O設備,該事件首先會被翻譯成消息,由系統捕獲,存放于系統消息隊列。經分析,Windows知道該消息應由那個應用程序處理,則拷貝到相應的應用程序消息隊列。由于消息循環不斷檢索自身的消息隊列,當發現應用程序消息隊列里有消息,就用GetMessage()取出消息,封裝成Msg()結構。如果該消息是由鍵盤按鍵產生的,用TranslateMessage()翻譯為WM_CHAR消息,否則,用DisPatchMessage()將取出的消息分發到相應的應用程序窗口,交由窗口處理程序處理。Windows為每個窗體預留了過程窗口函數,該函數是一個回調函數,由系統調用,應用程序不能調用。程序員可以通過重載該函數處理我們”感興趣”的消息。對于不感興趣的消息,則由系統默認的窗口過程處理程序做出處理。

下面看這么一張圖:

這張圖很好地解釋了消息機制的運行原理。

當運行程序->事件操作引發消息->消息先存在系統消息隊列->再存入到應用程序消息隊列->用消息循環提取消息->處理消息->再返回消息隊列....

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{TranslateMessage(&Msg);DispatchMessage(&Msg);
}

上面代碼的執行過程為:
1. 消息循環調用GetMessage()從消息隊列中查找消息進行處理,如果消息隊列為空,程序將停止執行并等待(程序阻塞)。
2. 事件發生時導致一個消息加入到消息隊列(例如系統注冊了一個鼠標點擊事件),GetMessage()將返回一個正值,這表明有消息需要被處理,并且消息已經填充到傳入的MSG參數中;當傳入WM_QUIT消息時返回0;如果返回值為負表明發生了錯誤。
3. 取出消息(在Msg變量中)并將其傳遞給TranslateMessage()函數,這個函數做一些額外的處理:將虛擬鍵值信息轉換為字符信息。這一步實際上是可選的,但有些地方需要用到這一步。
4. 上面的步驟執行完后,將消息傳遞給DispatchMessage()函數。DispatchMessage()函數將消息分發到消息的目標窗口,并且查找目標窗口過程函數,給窗口過程函數傳遞窗口句柄、消息、wParam、lParam等參數然后調用該函數。
5. 在窗口過程函數中,檢查消息和其他參數,你可以用它來實現你想要的操作。如果不想處理某些特殊的消息,你應該總是調用DefWindowProc()函數,系統將按按默認的方式處理這些消息(通常認為是不做任何操作)。
6. 一旦一個消息處理完成,窗口過程函數返回,DispatchMessage()函數返回,繼續循環處理下一個消息。

12、操作系統發展歷史及發展趨勢

操作系統圖形界面發展歷史可以簡述為以下幾個階段:

  1. 起源:1973年,施樂帕洛阿爾托研究中心開發出Alto,這是第一個使用圖形用戶界面的操作系統。
  2. 商業應用:1981年,施樂推出Star系統,這是Alto的商用版本。1983年,蘋果公司發布Lisa電腦,這是第一款個人電腦搭載圖形用戶界面。1984年,蘋果公司發布Macintosh,這是第一款成功的商業化的圖形用戶界面電腦。
  3. 主流操作系統支持:隨著Windows 3.1、Windows 95等操作系統的發布,圖形界面逐漸成為主流。
  4. 移動設備普及:隨著移動互聯網的發展,移動設備上的操作系統也更加注重用戶體驗和便捷性。

以上信息僅供參考,如有需要,建議查閱操作系統相關書籍。

操作系統的發展歷史可以大致分為以下幾個階段:

  1. 手工操作階段:在第一臺計算機誕生的初期,沒有出現操作系統,工作采用手工操作方式。程序員將對應于程序和數據的已穿孔的紙帶(或卡片)裝入輸入機,然后啟動輸入機把程序和數據輸入計算機內存,接著通過控制臺開關啟動程序針對數據運行。這種方式的缺點是用戶獨占全機,不會出現因資源已被其他用戶占用而等待的現象,但資源的利用率低,CPU的利用不充分。
  2. 批處理系統:為了提高資源利用率和增強計算機系統性能,人們開發了批處理系統。批處理系統一次性輸入數個程序及數據,然后會輸出到指定編號的打印機上。這解決了手工操作慢速度和計算機的高速度之間的尖銳矛盾,但仍然存在IO阻塞問題,如果一個作業因為等待IO而阻塞,那么整個系統的其他作業都需要等待,資源利用率仍然不高。
  3. 聯機批處理系統:聯機批處理系統提高了CPU利用率,當一個作業因為等待IO而阻塞時,CPU可以轉去執行其他作業,提高了資源利用率。
  4. 多道程序設計:隨著技術的發展,出現了多道程序設計,即批處理遇到IO阻塞交出cpu權限。這提高了CPU利用率(操作系統發展,有切換作業功能),但因為沒有獨享內存,并且還是批處理機制(若其中一個發生異常,整體的輸出時間會變得很長,并且內存共享,調試困難)。
  5. 分時操作系統:分時操作系統(多個聯機終端+共享CPU共享內存)剛出來的時候沒有流行開來是因為各個用戶內存分不開來,分割內存從軟件上無法實現,直到硬件上實行了分割內存后才流行開來。

以上是操作系統的發展歷史中的一些重要階段。隨著技術的不斷進步,操作系統也將會持續發展創新。

操作系統圖形界面發展史(1981-2009)

PC機上的第一個圖形界面——Xerox Alto(該系統并未商用,主要用于研究和大學),其于1973年被施樂公司Xerox Palo Alto Research Center (PARC)所 設計,從此,開啟了計算機圖形界面的新紀元。

1981-1985

Xerox 8010 Star (released in 1981)

這是第一個完整地集成了桌面和應用程序以及圖形界面的操作系統,人們一開始叫它“Xerox Star”,然后又叫“ViewPoint”,再以后又叫作“GlobalView”。

Apple Lisa Office System 1 (released in 1983)

這個操作系統也叫Lisa OS,這里的OS是Office System的縮寫。它由Apple公司開發主要目的用于文檔處理工作站。不幸的是,這款機器的壽命并不長,最終這個工作站被更便宜的Apple的 Macintosh操作系統所取代。Lisa OS 幾個升級包括 1983年的 Lisa OS2, 1984年的 Lisa OS 7/7 3.1。

VisiCorp Visi On (released in 1984)

下面是IBM PC上的第一個圖形界面的操作系統,叫Visi,其主要是給大公司用的,當然其價格也是非常高昂的。這個圖形界面使用了鼠標,內置的安裝程序以及幫助文檔,但沒有使用icon。

Mac OS System 1.0 (released in 1984)

Mac OS System 1.0是第一個劃時代的圖形界面,因為它其中的很多技術到今天還在使用。比如,基于窗口用圖標的UI,窗口可以被鼠標移動,可以使用鼠標拖動文件和目錄以完成文件的copy和move。

Amiga Workbench 1.0 (released in 1985)

Amiga在第一次release出來是超前的,它支持背景色的更換四色:黑,白,藍,橙),原始的多任務處理,還有立體聲,以及多狀態的圖標(選中和未選中)。

Windows 1.0x (released in 1985)

微軟作為一個圖形界面的狂熱者,在圖形界面上的有著執著的熱情,1985年,微軟終于在圖形用戶界面大潮中占據了一席之地,Windows 1.0 是其第一款基于 GUI 的操作系統 。使用了 32×32 像素的圖標以及彩色圖形,其最有趣的功能是模擬時鐘動畫圖標。

1986 1990

IRIX 3 (released in 1986, first release 1984)

64位的IRIX操作系統源自UNIX。它的一個有趣功能是支持矢量圖標,這個功能遠在 Max OS X 面世前就出現了。下面是截圖(看起來,比Windows成熟了太多了)

Windows 2.0x (released in 1987)

Windows在這個版本有重大的改進。比如窗口可以重疊,可以改變大小,可以最大化和最小化。

OS/2 1.x (released in 1988)

OS/2 版本1.x本來是IBM和Microsoft一起開發的,但是1991年兩個公司分道揚鑣,微軟做自己的windows去了,而IBM繼續OS/2的開發,這個操作系統的GUI又被叫作“Presentation Manager”,這個版本的OS/2只支持很單一的色調和不能移動的圖標。

NeXTSTEP / OPENSTEP 1.0 (released in 1989)

Steve Jobs 想給大學或研究實驗室做一個完美的Research電腦,于是這個想法促成了NeXT Computer Inc.在1989年的時候release了 NeXTSTEP 1.0 GUI,在后來它被改名為:OPENSTEP。

該 GUI 的圖標很大,48×48像素,包含更多顏色,一開始是單色的,從1.0開始支持彩色,下圖中已經可以看到現代 GUI 的影子。

OS/2 1.20 (released in 1989)

接下來,OS/2升級成了1.20,我們可以看到,圖標和窗口變得好看了許多,圖標看上去更好看,窗體也顯得更平滑。(是不是很像Windows 3.2?)

Windows 3.0 (released in 1990)

自從微軟和IBM分開后,微軟就意識到圖形界面對用戶的體驗會是一個很不錯東西,于是他們開始了有意義的改進。操作系統支持386 擴展模式,也就是說可以使用除了640K更多的內存和硬盤空間。并且有能力有更好的顯示,如Super VGA 800×600 和 1024×768.

此時,Microsoft 雇傭了 Susan Kare ,她設計了Windows 3.0 的圖標并統一了圖形界面的風格。

1991 1995

Amiga Workbench 2.04 (released in 1991)

看來,Amiga Workbench有了很多的改進,該版 GUI 包含很多改進,桌面可以垂直分割成不同分辨率和顏色深度,在現在看來似乎有些奇怪。默認的分辨率是 640×256,不過硬件支持更高的分辨率。但感覺還是土了點。

Mac OS System 7 (released in 1991)

Mac OS version 7.0 是第一個支持彩色Mac OS GUI ,還有陰影。

Windows 3.1 (released in 1992)

這個版本的 Windows 引入了TrueType 字體,第一次使 Windows 成為可以用于印刷的系統。整個界面有非常大的改善,Windows 3.0 中,只能通過 Adobe 字體管理器(ATM)實現該功能。該版本同時包含一個叫做 Hotdog Stand 的配色主題。并且配色還能夠照顧有色盲癥的人。

OS/2 2.0 (released in 1992)

這是第一個被提交到互聯網上接受可用性與可訪問性測試的GUI,整個GUI使用了面向對象的方法設計,每個文件和文件夾都是一個對象,可以同別的文件,文件夾與應用程序關聯。它同時支持拖放式操作以及模板功能。看上去已是很不錯了。

Windows 95 (released in 1995)

Windows 3.x 之后,微軟對整個GUI被完全重新設計,這是第一個在每個窗口上加上了關閉按鈕的GUI。設計團隊讓圖標有了幾個狀態 (enabled, disabled, selected, checked, etc.) 這也是最著名的“開始”按鈕第一次出現的時候。這是Microsoft歷史上最大的一步,從此走上了帝國之路。

1996 2000

OS/2 Warp 4 (released in 1996)

IBM 終于爭氣地推出了 OS/2 Warp 4。桌面上可以放置圖標,也可以自己創建文件和文件夾,并推出一個類似 Windows 回收站和 Mac 垃圾箱的文件銷毀器,不過一旦放進去進不能再恢復。各個操作系統的圖形界面開始越來越相似了。都是icons,窗口,垃圾回收站,等等,大同小異了。

Mac OS System 8 (released in 1997)

該版本的 GUI 支持默認的256色圖標,Mac OS 8 最早采用了偽3D圖標,其灰藍色彩主題后來成為 Mac OS GUI 的標志。

Windows 98 (released in 1998)

圖標風格和 Windows 95 幾無二致,不過顏色支持得更多了。支持超過了256色的圖標。第一次出現了“Active Desktop”,桌面和IE集成,開始了internet的全面集成。

KDE 1.0 (released in 1998)

KDE是 Linux 的一個統一圖形用戶界面環境。

GNOME 1.0 (released in 1999)

Red Hat Linux發行版開發的GUI,GNOME后來也被別的 Linux 采用。

2001 2005

Mac OS X (released in 2001)

2000年初,蘋果宣布推出其 Aqua 界面,2001年,推出全新的操作系統 Mac OS X。默認的 32×32, 48×48 被更大的 128×128 平滑半透明圖標代替。該 GUI 一經推出立即招致大量批評,似乎用戶都如此大的變化還不習慣,不過沒過多久,大家就接受了這種新風格,如今這種風格已經成了 Mac OS 的招牌。

Windows XP (released in 2001)

每一次微軟推出重要的操作系統版本,其 GUI 也必定有巨大的改變,Windows XP 也不例外,這個 GUI 支持皮膚,用戶可以改變整個 GUI 的外觀與風格,默認圖標為 48×48,支持上百萬顏色。

KDE 3 (released in 2002)

自從KDE 1.0以來,K Desktop Enviornment 改善地非常地快也非常的迅猛。其對所有圖形和圖標進行了改進并統一了用戶體驗。

2007 2009

Windows Vista (released in 2007)

開始3D桌面了。這是微軟向其競爭對手做出的一個挑戰,Vista 中同樣包含很多 3D 和動畫,自 Windows 98 以來,微軟一直嘗試改進桌面,在 Vista 中,他們使用類似飾件的機制替換了活動桌面。不過Linux下的3D桌面可更為夸張。

Mac OS X Leopard (released in 2007)

這是第6代的Mac OS桌面系統,也是一樣,引入了更好的3D元素。還有大量的動畫。

KDE (v4.0 Jan. 2009, v4.2 Mar. 2009)

KDE 4 的 GUI 提供了很多新改觀,如動畫的,平滑的,有效的窗體管理,圖標尺寸可以很容易調整,幾乎任何設計元素都可以輕松配置。相對前面的版本絕對是一個巨大的改進。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719778.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719778.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719778.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHP+MySQL實現后臺管理系統增刪改查之夠用就好

說明 最近要給博客弄個后臺,不想搞得很復雜,有基本的增刪改查就夠了,到網上找了一圈發現這個不錯,很實用,希望可以幫到大家,需要的朋友評論區留下郵箱,我安排發送。 演示效果 項目介紹 本項目…

Jetty使用入門

Jetty使用入門 社區當前推薦開發者使用Jetty 12.X版本。 依據End of Community Support for Jetty 9.x - June 2022,社區對Jetty 9.x的支持,已在2022年6月1日停止。 依據End of Community Support for Jetty 10 / Jetty 11 - January 2024,…

帶使能控制的鋰電池充放電解決方案

一、產品概述 TP4594R 是一款集成線性充電管理、同步升壓轉換、電池電量指示和多種保護功能的單芯片電源管理 SOC,為鋰電池的充放電提供完整的單芯片電源解決方案。 TP4594R 內部集成了線性充電管理模塊、同步升壓放電管理模塊、電量檢測與 LED 指示模塊、保護模塊…

關于python函數參數傳遞

參數傳遞 在 python 中,類型屬于對象,對象有不同類型的區分,變量是沒有類型的: 在下面的代碼示例重,[1,2,3] 是 List 類型,“qayrup” 是 String 類型,而變量 a 是沒有類型,它僅僅…

#WEB前端

1.實驗:vscode安裝,及HTML常用文本標簽 2.IDE:VSCODE 3.記錄: (1)網頁直接搜索安裝vscode (2)打開vscode,在下圖分別安裝以下插件: Html Css Support …

C++11線程同步之互斥鎖

C11線程同步之互斥鎖 std::mutex成員函數線程同步 std::lock_guardstd::recursive_mutexstd::timed_mutex 進行多線程編程,如果多個線程需要對同一塊內存進行操作,比如:同時讀、同時寫、同時讀寫對于后兩種情況來說,如果不做任何的…

《互聯網的世界》第四講-擁塞控制與編碼

需要澄清的一個誤區是,擁塞絕不是發送的數據量太大導致,而是數據在極短的時間段內到達了同一個地方以至于超過了網絡處理容量導致,擁塞的成因一定要考慮時間因素。換句話說,擁塞由大突發導致。 只要 pacing,再多的數據…

2024.3.4訓練記錄(8)

文章目錄 CF 459D Pashmak and Parmidas problemCF 1388C Uncle Bogdan and Country HappinessCF 1525D ArmchairsCF 220B Little Elephant and Array CF 459D Pashmak and Parmida’s problem 題目鏈接 最近感覺對數據結構題的反應度提升了,這一題是上午看的但是…

動態規劃(算法競賽、藍橋杯)--樹形DP樹形背包

1、B站視頻鏈接&#xff1a;E18 樹形DP 樹形背包_嗶哩嗶哩_bilibili #include <bits/stdc.h> using namespace std; const int N110; int n,V,p,root; int v[N],w[N]; int h[N],to[N],ne[N],tot; //鄰接表 int f[N][N];void add(int a,int b){to[tot]b;ne[tot]h[a];h[a…

數倉項目6.0(一)

尚硅谷大數據項目【電商數倉6.0】企業數據倉庫項目_bilibili 數據流轉過程 用戶??業務服務器??數據庫存儲??數倉統計分析??數據可視化 數據倉庫處理流程&#xff1a;數據源??加工數據??統計篩選數據??分析數據 數據庫不是為了數據倉庫服務的&#xff0c;需要…

B084-SpringCloud-Zuul Config

目錄 zuul系統架構和zuul的作用zuul網關實現配置映射路徑過濾器 Config概述云端管理本地配置 zuul zuul是分布式和集群后前端統一訪問入口 系統架構和zuul的作用 zuul把自己注冊進eureka&#xff0c;然后可通過前端傳來的服務名發現和訪問對應的服務集群 為了預防zuul單點故…

Java 枚舉類的深入理解與應用

Java 的枚舉類是一種特殊的類&#xff0c;通常表示一組常量。在編譯或設計時&#xff0c;當我們知道所有變量的可能性時&#xff0c;盡量使用枚舉類型。本文將通過一個具體的例子&#xff0c;深入探討 Java 枚舉類的定義、使用和高級特性。 目錄 枚舉類的定義與使用枚舉類的構造…

【OJ】求和與計算日期

文章目錄 1. 前言2. JZ64 求123...n2.1 題目分析2.2 代碼 3. HJ73 計算日期到天數轉換3.1 題目分析3.2 代碼 4. KY222 打印日期4.1 題目分析4.2 代碼 1. 前言 下面兩個題目均來自牛客&#xff0c;使用的編程語言是c&#xff0c;分享個人的一些思路和代碼。 2. JZ64 求123…n …

Vue 賦值后原數據隨賦值后的數據的變化而變化

很常見的&#xff0c;當我們直接用“”號等方式直接賦值后 原數據會隨賦值后的數據的變化而變化 但是有時候我們的需求是不需要原數據跟隨變化 所以怎么解決呢&#xff1f; 解決辦法有&#xff1a; 1.使用Object.assign() 方法 2.使用深拷貝函數 JSON.parse() 3.使用第三方庫lo…

畢業生信息招聘平臺|基于springboot+ Mysql+Java的畢業生信息招聘平臺設計與實現(源碼+數據庫+文檔+PPT)

目錄 論文參考 摘 要 數據庫設計 系統詳細設計 文末獲取源碼聯系 論文參考 摘 要 隨著社會的發展&#xff0c;社會的各行各業都在利用信息化時代的優勢。計算機的優勢和普及使得各種信息系統的開發成為必需。 畢業生信息招聘平臺&#xff0c;主要的模塊包括查看管理員&a…

#ifndef 和 #pragma once的區別

#ifndef 和 #pragma once 都是用來防止頭文件被重復包含的&#xff0c;但它們的工作方式和兼容性有所不同&#xff1a; #ifndef 是 C 的標準語法&#xff0c;它依賴于不重復的宏名稱&#xff0c;保證了包含在 #endif 的內容不會被重復包含。這個內容可以是一個文件的所有內容&…

Webpack配置與運行基礎教程

在前端開發中&#xff0c;Webpack是一款非常流行的模塊打包工具&#xff0c;它可以幫助我們將多個文件打包成一個或多個靜態資源文件&#xff0c;從而提高前端項目的性能和可維護性。本文將為你介紹Webpack的基礎配置和運行方法&#xff0c;幫助你快速上手Webpack。 什么是Web…

基于Springboot的無人智慧超市管理系統(有報告)。Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的無人智慧超市管理系統&#xff08;有報告&#xff09;。Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系…

1.3 有哪些文本表示模型?它們各有什么優缺點?

1.3 有哪些文本表示模型?它們各有什么優缺點? 場景描述 文本是一類非常重要的非結構化數據&#xff0c;如何表示文本數據一直是機器學習領域的一個重要研究方向。 知識點 詞袋模型(Bag of Words)TF-IDF(Term Frequency-Inverse DocumentFrequency)主題模型(Topic Model)詞…

【每日刷題】數組-LC56、LC238、隨想錄1、LC560

1. LC56 合并區間 題目鏈接 Arrays.sort先讓intervals里的子數組按照子數組的第一個數字值從小到大排列。開一個新數組&#xff0c;newInterval&#xff0c;存放合并好的子數組讓intervals的當前子數組i的第一個數字與newInterval的當前子數組index的最后一個數字比較大小&am…