天天看點

《軟體工程(第4版?修訂版)》—第1章1.4節軟體工程涉及的人員

本節書摘來自異步社群《軟體工程(第4版?修訂版)》一書中的第1章1.4節軟體工程涉及的人員,作者【美】shari lawrence pfleeger , 【加】joanne m.atlee,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

1.4 軟體工程涉及的人員

軟體工程(第4版•修訂版)

軟體開發的一個關鍵部分是客戶與開發人員之間的交流,如果交流失敗,那麼系統也将失敗。必須在建構有助于解決問題的系統之前,了解客戶想要什麼以及他們需要什麼。要做到這一點,我們把讨論的重點轉向軟體開發所涉及的人員。

從事軟體開發工作的人員數目取決于項目的規模和難易程度,然而,不論涉及多少人,都可以區分他們在整個項目生命周期中的角色。是以,對于一個大型項目,一個人或一個小組可能被确定地指派為某一個角色;而在小型項目中,一個人或一個小組可以一次承擔幾個角色。

通常情況下,參與項目的人員分為三類:客戶、使用者或開發人員。客戶(customer)是為将要開發的軟體系統支付費用的公司、組織或個人。開發人員(developer)是為客戶建構軟體系統的公司、組織或個人,其中包括協調并指導程式員和測試人員的管理人員。使用者(user)是将實際使用系統的人,包括坐在終端前的人、送出資料的人或閱讀輸出的人。盡管就某些項目而言,客戶、使用者、開發人員是同一個人或同一組人,但多數情況下,他們還是各不相同的。圖1-7顯示了這三類參與人員之間的基本關系。

《軟體工程(第4版?修訂版)》—第1章1.4節軟體工程涉及的人員

客戶控制着資金,常常進行合同談判并在驗收檔案上簽字。但是,有時候客戶并不是使用者。例如,假定wittenberg water works與gentle systems,inc.簽訂了一份合同,要為公司建立計算機化的會計系統。wittenberg的總裁可以向gentle systems,inc.的代表明确地描述他需要什麼,并且他将要簽訂這份合同。但是,總裁并不直接使用這個會計系統,使用者将是簿記員或會計職員。是以,開發人員确切地了解客戶和使用者想要什麼以及需要什麼是非常重要的。

另一方面,假定wittenberg water works是一家大型公司,它有自己的計算機系統開發部門。該部門可能決定它需要一個自動化的工具來記錄其項目的成本和進度,并且決定自己建構這個工具。此時,該部門既是使用者、客戶,同時也是開發人員。

近幾年,客戶、使用者和開發人員之間的這種簡單的差別變得越來越複雜。客戶和使用者以各種方式介入到開發過程中。客戶可能決定購買商業現貨(commercial off-the-shelf,cots)軟體,并合成到開發人員将要提供和支援的最終産品中。當發生這種情況的時候,客戶會介入到系統體系結構的決策中,并且對開發過程有很多限制。類似地,開發人員可能決定使用額外的開發人員,後者稱為分包商(subcontractor),分包商建構子系統并把它傳遞給開發人員,這些子系統包含在最終産品中。分包商可以與主開發人員在同一地點工作,他們也可能在不同的地點與主開發人員協調地工作,并在開發過程後期傳遞子系統。子系統可能是個交鑰匙系統(turnkey system),其代碼是一個合并的整體(不需要內建額外的代碼),或者它可能需要一個單獨的內建過程将主系統和子系統連結起來。

是以,在軟體工程中,“系統”的概念不僅對了解問題分析或解決方案的合成是重要的,對組織開發過程以及為參與者配置設定合适的角色同樣重要。在下一節,我們會讨論好的軟體工程實踐中系統方法的作用。

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。