2009年11月15日 星期日

Use Case Diagram

Use Case:
(1)紀錄系統一連串的動作。
(2)表示系統的目標(Goal)。
Actor:
為有參與某Use Case的人、系統、機器等。
Classifier:
為Use Cases適用的場所或所包含的主題。

Use Case的關係:
Use Case可以Split出Sub Use Cases。主Use Case與Sub Use Case之間的關係有:
(1)include:
表示主Use Case的動作必會有Sub Use Case的動作。
(2)extend:
表示主Use Case在某一個情況下才會有Sub Use Case的動作。

CMMI-需求發展

目的:
產出並分析客戶、產品及產品組件的需求。
包含的活動:
  • 誘導、分析、驗證,以及溝通客戶的需要、期望及限制,以獲得客戶需求,並達成關鍵人員的共識
  • 蒐集和協調關鍵人員的需要
  • 發展產品的生命週期需求
  • 建立客戶需求
  • 建立與客戶需求一致的原始產品及產品組件需求
SG1發展客戶需求
SP1.1 誘導需要
SP1.2 發展客戶需求
SG2發展產品需求
SP2.1 建立產品與產品組件需求
SP2.2 配置產品組件需求
SP2.3 界定介面需求
SG3分析並確認需求
SP3.1 建立操作概念及劇本
SP3.2 建立必要功能的定義
SP3.3 分析需求
SP3.4 分析需求以取得平衡
SP3.5 確認需求

HTTP

可視為Client/Server的一種應用。用戶端透過瀏覽器向Web Server發送HTTP Request。Web Server回應HTML給瀏覽器。
HTTP的流程如下:








HTTP Header:
Server 可以透過HTTP Header了解客戶端的需求。
包含的資訊如下:
(1)HTTP 方法:
GET、POST。
(2)欲瀏覽的資源:
以URL表示。
(3)HTTP的版本
(4)MIME格式及版本
(5)壓縮及編碼格式
(6)支援語系
(7)內容大小(Server回應的內容)

TCP Client/Server

Server:
Server的流程如下圖:



















(1)Socket:建立Server端Socket。
(2)Bind:設定Server端的IP Address與Port。
(3)Listen: 一直接聽來自TCP Client的連結。
(4)Accept:處理來自TCP Client的連線,包含接受來自TCP Client的Data以及傳送Data給TCP Client。
(5)Close:關閉Server端與Client端的連結。

Client:
Client的流程如下圖:

















(1)Socket:建立Client端的Socket,並設定Server的Web Address(http://)或IP Address以及Port。
(2)Connect:建立Client到Server的連線。成功建立後,即可做傳送及接收的動作。
(3)Close:關閉Client與Server的連線。

Linux-dbus

D-Bus為IPC的一種實現,通常應用於桌面應用程式和作業系統的溝通。D-Bus可適用於GNOME與KDE兩大桌面環境。

D-Bus Bus:
(1)System Bus:
為os使用。
(2)Session Bus:
當使用者登入時啟用,為使用者個人私有。

D-Bus Matcher:
基於interface、Path、Method來進行指定規則。

D-Bus Message:
(1)Content:
來源位址和目的位址,這些位址為物件路徑。
(2)類型:
method calls、method returns、signal、error。

D-Bus Service:
應用程式可以使用一個bus來註冊一個服務。

D-Bus Example:
(1)Sender:
底下為搭配GLib Event Loop的範例。首先,建立一個GLib事件迴圈,然後獲得一個Session Bus。並將D-Bus事件加入到GLib Event Loop中。

(2)Listener:
底下為搭配GLib Event Loop的範例。程式會一直監聽bus來的message,當符合matcher的規則時,則會觸發預設搭配的函式。