軟件工程:實踐者的研究方法第10章系統(tǒng)工程

字號:

第10章 系統(tǒng)工程
    480年前,Machiavelli說過:“沒有任何東西比在引入新的事物秩序的過程中領頭更難于承擔、更險于管理或?qū)Τ晒Ω卟淮_定性”。在20世紀的最后四分之一階段,基于計算機的系統(tǒng)已經(jīng)引入了新的秩序,雖然技術自Machiavelli的話問世以來已經(jīng)有了巨大的發(fā)展,但他的話仍然是有用的。
    軟件工程是作為稱為系統(tǒng)工程的過程的結(jié)果而發(fā)生的。不是僅僅著重于軟件,系統(tǒng)工程關注于一系列元素,關注于如何按一個系統(tǒng)分析、設計和組織那些元素,該系統(tǒng)可以是針對信息變換或控制的產(chǎn)品、服務或技術。
    當工程工作的前后相關環(huán)境著重于商業(yè)企業(yè)時,系統(tǒng)工程過程被稱為信息工程,當一個產(chǎn)品①被建造時,該過程稱為產(chǎn)品工程②。
    信息工程和產(chǎn)品工程均試圖為基于計算機的系統(tǒng)的開發(fā)帶來秩序。雖然各自被應用于不同的應用領域,二者均努力將軟件放置于前后相關的環(huán)境中,即,信息工程和產(chǎn)品工程均致力于分配計算機軟件的角色,并建立結(jié)合軟件和基于計算機的系統(tǒng)的其他元素之間的連接。
    10.1基于計算機的系統(tǒng)
    詞“系統(tǒng)”可能是在技術詞典中使用最為過度和濫用的術語。我們談論政治系統(tǒng)和教育系統(tǒng)、航空電子設備系統(tǒng)和制造系統(tǒng)、銀行系統(tǒng)和地鐵系統(tǒng)。這個詞告知了我們很少的東西,我們使用“系統(tǒng)”的修飾詞來理解該詞所使用的語境。Webster字典定義“系統(tǒng)”為“事物的集合或排列,被相互關聯(lián)以使得形成一個聯(lián)合或有機的整體,…一組事實、原理、規(guī)則等,被按有序的形式分類和排列以使得能夠顯示連接各個部分的邏輯設計圖,…一種分類或排列的方法或計劃,…一種確定的做某種事情、方法、規(guī)程的方式,…”在字典中還有5種其他定義,然而沒有提出任何精確的同義詞。“系統(tǒng)”是一個特殊的詞。
    借用Webster的定義,我們定義基于計算機的系統(tǒng)為:
    元素的集合或排列,這些元素被組織在一起,以便通過處理信息完成某些預定義的目標。
    其目標可能是支持某些業(yè)務功能或開發(fā)可被銷售以產(chǎn)生業(yè)務收入的產(chǎn)品,為了達到該目標,基于計算機的系統(tǒng)使用一系列系統(tǒng)元素:
    軟件。計算機程序、數(shù)據(jù)結(jié)構(gòu)和相關的文檔,它們被用于實現(xiàn)所需的邏輯方法、規(guī)程或控制。
    硬件。提供計算能力的電子設備和提供外部世界功能的電子機械設備(如,傳感器、馬達、抽水泵)。
    人員。硬件和軟件的用戶和操作者。
    數(shù)據(jù)庫。通過軟件訪問的大型的有組織的信息集合。
    文檔。手冊、表格和其他描述性信息,它們描繪系統(tǒng)的使用和/或操作。
    規(guī)程。一序列步驟,定義每個系統(tǒng)元素的特定使用或系統(tǒng)駐留的過程性語境。
    這些元素按不同的方式組合可構(gòu)成不同的信息。例如,市場部門將原始的銷售數(shù)據(jù)經(jīng)組合轉(zhuǎn)變成為典型的產(chǎn)品購買者能理解的圖表,機器人將包含特定指令的命令文件變換為一組導致某些特定物理動作的控制信號。創(chuàng)建一個信息系統(tǒng)來幫助市場部門和控制軟件來支持機器人均需要系統(tǒng)工程。
    基于計算機的系統(tǒng)的一個復雜特征是:構(gòu)成一個系統(tǒng)的一組元素可能也表示了某個更大的系統(tǒng)的宏元素,宏元素是一個基于計算機的系統(tǒng),它是某更大的基于計算機的系統(tǒng)的一部分。例如,我們考慮“工廠自動化系統(tǒng)”,它實質(zhì)上是如圖10-1所示的層次結(jié)構(gòu)。在結(jié)構(gòu)的最低層,我們有數(shù)控機器、機器人和數(shù)據(jù)輸入設備,每臺設備自身均是基于計算機的系統(tǒng)。數(shù)控機器的元素包括電子的和電子機械的硬件(如,處理器和內(nèi)存、馬達、傳感器);軟件(用于通信、機器控制和內(nèi)插校正);人員(機器操縱者);數(shù)據(jù)庫(存儲的NC程序);以及文檔和規(guī)程。類似的分解可應用于機器人和數(shù)據(jù)輸入設備,每個均是基于計算機的系統(tǒng)。
    在層次(圖10-1)的再上一層,定義了制造車間(manufacturing cell),制造車間是一個基于計算機的系統(tǒng),它可以有自己的元素(如計算機、固定設備),并且也集成我們稱為數(shù)控機器、機器人和數(shù)據(jù)輸入設備的宏元素。
    所以,制造車間和它的宏元素各自由一組通用標記的系統(tǒng)元素——軟件、硬件、人員、數(shù)據(jù)庫、規(guī)程和文檔——構(gòu)成。在某些情況下,宏元素可以共享這些通用元素,例如,機器人和NC機器可能均被單個操縱者管理(人員元素)。在其他情況下,這些通用元素是只對某系統(tǒng)的。
    系統(tǒng)工程師的角色是在系統(tǒng)的整體層次(宏元素)的語境內(nèi)為特定的基于計算機的系統(tǒng)定義一系列元素。在下面幾節(jié),我們檢測組成計算機系統(tǒng)工程的任務。
    10.2 系統(tǒng)工程層次結(jié)構(gòu)
    不管關注的領域是什么,系統(tǒng)工程包含一組自頂向下和自底向上的方法來導出如圖10-2所示的層次結(jié)構(gòu)。系統(tǒng)工程過程通常從“整體視圖(world view)”開始,即,檢查完整的業(yè)務或產(chǎn)品域以保證能夠建立適當?shù)臉I(yè)務或技術語境。精化整體視圖,以更完全地關注特定的興趣域,在特定的領域內(nèi),分析目標系統(tǒng)元素(如,數(shù)據(jù)、軟件、硬件、人員)的需要,最后,開始分析、設計和構(gòu)造目標系統(tǒng)元素。在結(jié)構(gòu)的頂層,建立了一個非常廣的語境,而在底層,進行導出由相關工程方法(如硬件或軟件工程)完成的詳細技術活動。①
    以稍微形式化的方式來描述,整體視圖(WV)包含若干個領域(Di),它們本身可以是一個系統(tǒng)或系統(tǒng)的系統(tǒng)。