跳轉到內容

4.1 - 功能分析與分配需求

來自華夏公益教科書


功能分析

[編輯 | 編輯原始碼]

功能分析是在設定目標和需求之後,系統工程過程中的下一步。功能分析將系統劃分為更小的部分,稱為功能元素,這些元素描述了我們希望每個部分做什麼。我們還沒有包括設計或解決方案的如何。在這一點上,我們不想限制設計選擇,因為它可能會遺漏最佳答案。在後面的步驟中,我們將確定備選方案,對其進行最佳化,並選擇最佳方案來構成完整的系統。名稱功能來自數學函式,它作用於輸入值併產生不同的輸出值。類似地,在系統工程方法中,函式將一組輸入轉換為一組輸出。

功能圖

[編輯 | 編輯原始碼]
圖 4.1-1。具有標準流程位置的單個功能框。
圖 4.1-2。MakerNet 位置的頂層功能。

有多種方法可以記錄和顯示構成系統設計的函式。功能流程圖是一種流行的圖形方法。它使用矩形框來表示每個功能(圖 4.1-1)。箭頭表示任何型別流向功能的流或狀態。這些流程連線到其他功能或系統外部。按照慣例,輸入顯示在左側,輸出顯示在右側。功能框本身將輸入轉換為輸出。機制是執行功能的實體,但本身不發生轉換。它們通常以底部箭頭顯示,通常代表裝置的使用。控制是命令、限制或指導功能操作的輸入,通常顯示在頂部。功能名稱通常由動詞和名片語成,如“砍柴”,總結了任務,並在框內顯示。通常會包含一個功能編號以唯一標識它,因為類似的名稱最終可能在專案的不同位置使用。最常見的編號方法取父功能的編號,併為每個子功能在其編號後新增一位數字。因此,2.2 有子功能 2.2.1、2.2.2 等。這使得只需檢視編號就可以跟蹤功能在整個系統中的位置。

這些圖表可以是順序的,例如顯示生產過程的步驟;並行的,不同的活動可以同時發生;或者迴圈的,其中有反饋或迭代。更一般地說,任何功能的輸出都可以導致任何其他功能的輸入。


頂層圖表 - 在設計工廠時,我們通常關注生產功能。然而,出於設計和分析目的,系統邊界的放置可能不同。圖 4.1-2 顯示了 MakerNet 示例中完整位置的頂層框圖。它包括一個生產功能,大多數製造活動都在這裡進行,一個居住功能,即所有者居住和工作的房屋和其他建築物,以及一個將實物從一個地方移動到另一個地方的運輸功能。在這種情況下,工廠將產品交付給擁有和操作裝置的個人網路以及他們相關的社群。它也可能將他們的廢物運回進行再加工。由於生產的所有者與使用居住和運輸的群體相同,因此這是一個足夠整合的狀況,因此在所有相關功能周圍設定系統邊界是有意義的。一個只生產出售產品的工廠與終端使用者之間沒有那麼強的聯絡,因此在這種情況下,您可以排除生產功能以外的任何內容。從選定系統邊界外部的輸入和輸出顯示在圖表的左側和右側,並按型別分類。從邏輯上講,此圖表與更高級別的圖表相同,其中所有輸入位置都表示為單個流箭頭,如 4.1-1 圖所示,整個專案簡化為單個框,沒有內部細節。在一個圖表中一次顯示所有專案的細節會使它變得太大且複雜,難以理解。相反,複雜性透過呈現多個級別的細節來降低,其中一個級別的框表示下一級別的更詳細圖表。這樣,任何複雜程度的系統都可以被描述。


流程箭頭 - 流程箭頭表示專案的狀態或任何型別的資源在功能之間移動。來自鑄造工藝的生金屬鑄件和由該鑄件製成的加工零件是正在製造的零件的不同狀態。鑄件將是“加工零件”功能的輸入,該功能將一個轉換為另一個,而加工零件將是其輸出。資源是指諸如能源和人力等在用作輸入時會消耗殆盡,或作為功能輸出而產生的東西。流程可能在端點之間分支和合並,但應理解,從數學角度來看,連線點的兩側都是相等的。否則,你就會有從無到有的自發創造,或者存在某些專案未經核實的來源或處置。當低階圖表上的流程顯示更詳細的元件時,它們的組合因此應該與高階圖表上表示它們的單個流程相同。流程與功能一樣,也具有名稱和唯一編號來標識它們。隨著設計的進展,流程和功能框都將被進一步分解成更詳細的細節。


表示功能關係 - 圖 4.1-2 未顯示連線功能框的所有內部流程,原因有兩個。首先,我們目前還沒有在設計過程中定義它們。第二,由於線條過多,圖表將變得不可讀。更高級別的圖表往往有更多的流程,因為它們一次顯示了更多系統。處理這種複雜性的一種方法是使用帶有多個工作表的較大圖紙。可以理解,每個工作表僅顯示部分流程,這些流程流向相同的功能,以使其更易讀。處理複雜性的另一種方法是在電子表格和資料表中跟蹤流程,這些表格和資料表可以擁有儘可能多的條目,每個條目代表一個流程。無論使用哪種方法來顯示和跟蹤功能和流程,它們都代表系統各個部分之間的相同關係。框圖只是方便的視覺起點,用於理解和分析系統。


表示時間 - 在給定的圖表中,連線兩個功能的流程表明第二個功能在邏輯上遵循第一個功能。至少這意味著第二個功能不能早於第一個功能的開始開始。但是,它們可以同時開始。例如,行動式發電機及其供電的任何裝置都可以同時啟動,但裝置不能早於發電機啟動,因為它的一個必要輸入,即電力,直到發電機工作後才可用。有時,一系列功能框代表嚴格的時間順序,其中一個必須完成才能開始下一個,但這隻有在流程包含相同專案的各個狀態時才必要。例如,對於飛機,功能“從跑道起飛”必須在“飛往目的地”和“降落在目的地”之前完成,因為輸入和輸出是同一架飛機,分別處於“飛機在出發機場”、“飛機在飛離出發城市”等狀態。當流程圖中存在迴圈時,例如一個水處理單元從家庭收集汙水並回送清水,則啟動順序應在設計中考慮。在這種情況下,由於最初沒有汙水可處理,因此必須在某個時間點將啟動時供應的清水送入迴圈中。

當整個系統從一個階段發展到另一個階段,並且添加了新的功能元素和流程時,需要使用不同的時間表示。一種方法是為每個階段準備相同圖表的不同版本,並標記在先前階段不存在的新專案。這可以透過突出顯示或用顏色標記新專案來完成。更復雜的系統表示,如模擬,可以讓新專案在指定的時間出現。


超越流程圖 - 圖表中使用的功能或流程名稱不足以準確描述該專案應該是怎樣的。它只是設計一部分的標籤。隨著更多細節的制定,它們可以作為註釋包含在圖表中,或者包含在各種單獨的文件或檔案中。透過使用相同的識別名稱和功能編號,任何關於功能的額外資料都可以連結到它。唯一的跟蹤標籤有助於在一個一致的系統中組織專案的全部資料。功能描述擴充套件了圖表標籤,通常包含在圖表本身或圖表隨附的補充工作表上。描述可以根據需要任意長,但通常是幾句話到幾段話。數學模型、不同選項的設計圖紙或與該功能相關的任何其他資料也用相同的名稱和編號標記以識別它們。

分析過程

[編輯 | 編輯原始碼]

功能分析的目的是將一個複雜系統分解成更小、更簡單的部分,以便最終可以單獨設計這些部分。一種分解方法是沿著時間軸進行。一個大型專案可以劃分為時間上順序的階段,每個階段都新增新的功能或硬體。一個常見的例子是房地產開發,每個階段開發一個房產的不同部分。技術專案通常也劃分為幾個設計階段、生產、測試和交付,其中必須完成某個階段的里程碑才能進行下一個階段。在一個系統的一部分中,一些任務必須按時間順序依次發生或流程化。因此,序列中的每個步驟都可以被識別為一個功能。另一種劃分功能的方法是,當它們在同一時間做不同的事情時,但具有連線它們的輸入和輸出。因此,機器人手臂的控制電子裝置可以向電機供電,並從感測器讀取關節角度。電子裝置與電機和關節軸承的不同程度足夠大,因此可以合理地將它們視為不同的功能,並解決不同的設計問題。

對於如何最好地劃分系統,沒有一個單一的答案。通常,不同的替代設計將需要不同的功能分解。設計者應該運用良好的判斷,將系統分解成具有內部關聯性的元素,並遵循從一個元素到下一個元素的邏輯流程。一個功能應該有助於滿足系統整體需求的某個部分,否則你就可以質疑該功能的必要性。在我們的 MakerNet 示例中,三個頂級功能分別用於不同的目的:改變事物(生產)、移動事物(運輸)和使用事物(居住)。業主/終端使用者是 MakerNet 建設的原因,他們被包含在系統設計中,因為他們與系統緊密相連。預計他們將成為系統的操作員,他們的廢棄物將被回收利用,住房和商業建築可能在物理上與生產功能的電力來源和其他公用事業連線在一起。僅設計用於製造待售物品的工業生產型工廠與客戶之間的互動較少。在這種情況下,你可以合理地將系統邊界只畫在生產部分周圍,並將終端使用者和交付作為外部流程。

功能分析,就像設計過程的所有部分一樣,不是完成一次就結束。它會隨著設計的進展而不斷演變和修改。圖紙及其相關記錄代表了某個時間點設計當前狀態。版本號和日期有助於識別最新狀態,變更歷史說明了修改的原因。在小型專案或大型專案的早期階段,這種正式跟蹤並不那麼必要。在一個大型專案中,每個人只能熟悉他們正在進行的部分,正式跟蹤有助於協調整體工作,並且更為重要。

功能與硬體沒有一對一的關係。給定的硬體專案可能執行多個任務,而給定的功能可能需要多個硬體專案在不同的地方才能完成。相反,功能是心理抽象。它們代表了系統構建的預期目的的各個部分。當達到足夠詳細的級別時,這些部分就足夠簡單,可以單獨設計。

分析示例

[edit | edit source]
圖 4.1-3。提供生產能力內的下一級功能。
圖 4.1-4。生產功能輸出矩陣。

我們將使用 MakerNet 位置的 **提供生產能力** 功能作為下一級詳細說明的示例。


**功能和流程編號** - 一個名稱和一個編號用於識別系統設計中的特定功能或流程。這些編號應唯一,並且由一系列包含數字和字母的元件組成,這些元件用句號隔開。這些元件代表系統設計中的層次結構級別。我們的示例使用了比目前需要的更長的功能編號,以便在將來需要更高級別的設計工作時,無需重新編號。重新編號既是額外工作,又會導致混亂。因此,花一點心思規劃好在編號系統中保留空間是一個好主意。五元件編號“F.2.1.1.1”用於表示提供生產能力功能的整體,而初始 F 表示它是一個功能。外部流程、控制、輸入、機制和輸出分別使用 E、C、I、M 和 O 作為其第一個元件標籤。

繼續此示例,第二個元件表示專案級階段,其中 1 表示第一個完整工廠單元之前的技術開發階段,2 表示實際位置的第一代單元。更高數字將用於後續世代設計。在這種情況下,第三個元件表示設計環境,因為設計會根據外部條件發生變化。這裡的 1 代表中等操作環境。更困難或更極端的環境將獲得更高的數字。第四位數字是位置序列號,因為這是要設計的第一個專案位置,所以為 1。其他位置將獲得順序編號。因此,F.2.1.1 標識了第一個完整的 MakerNet 專案位置。該位置將以一系列施工階段進行擴充套件。當我們考慮這些階段時,我們將在位置序列號中附加字母,例如階段 1A、1B 等。目前,我們正在考慮一般功能,而不考慮施工時間,因此第四個元件只是 1。最後的 .1 代表該位置的提供生產能力功能。請注意,這只是一個關於如何組裝功能編號的示例,而不是特定專案實際的元件。


**下一級功能識別** - 圖 4.1-3 顯示了提供生產能力下下一級的子功能。子功能的特定集合由設計者決定,因此其他版本是可能的,但在這裡我們遵循參考體系結構的劃分。一般來說,子功能集應該是邏輯性的,並將更大的功能劃分為在內部相關的不同任務,並且彼此區分。在此版本的圖中,它們以對角線排列,便於在任何兩個子功能之間繪製流程箭頭。但是,功能框的放置和編號順序可以是任何清晰和邏輯的順序。將它們按任務執行的順序或多或少地排列,允許一個任務的輸出箭頭連線到下一個任務的輸入側(從左到右),因此,這種佈局經常被使用。

功能塊可能不會嚴格按時間順序發生。事實上,任何迴圈,例如廢棄物被迴圈利用到早期階段,意味著它們不能按確定的時間順序排列。因此,圖紙上的佈局應該是在特定情況下最合理的佈局。


**輸出矩陣** - 圖 4.1-4 展示了除了箭頭之外的另一種顯示功能之間流程的方法。這種方法適用於箭頭過多會造成混淆的情況。功能本身放置在網格的對角線上。對角線上方的任何網格矩形表示從左側同一行的功能流向下方同一列的功能。對角線下的矩形表示從右側同一行的功能流回到上方同一列的功能。網格方法不適合顯示返回到與起始位置相同的函式的輸出,也不適合顯示控制和機制輸入的關係。它有助於作為一種組織方式來考慮功能之間的關係。網格中的每個方框都可以依次進行檢查,並提出問題“這兩個功能之間是否存在任何以這種方式傳遞的東西?”如果沒有,該方框可以標記為“X”。如果有,則可以將流程輸入到該方框中,並在以後詳細地解決。

分配需求

[edit | edit source]

系統工程過程中的第三個主要步驟是 **需求分配**。為了確保所有頂層需求都能得到滿足,它們被分配給一個或多個功能來實現。分配可以是整個需求,也可以將需求劃分為部分,然後將這些部分分配給不同的功能。例如,美國法規要求航空座椅在撞擊期間能承受 16 g 的前向加速度。這可以分配給限制乘客、支撐座椅負載和支撐地板負載功能,這些功能由安全帶、座椅結構和地板結構設計元素實現。時間限制和其他引數也會傳遞到較低級別的功能。例如,一架飛機可能要求地面維護平均每架次不超過 4 個小時。該需求可能部分分配給提供推進力(發動機)和支撐飛行負載(結構)功能,即使這些功能在維護期間未使用。飛機發動機和結構的設計必須滿足分配給它們的任務時間。

分配的需求記錄在較低級別的需求文件或規範中,這些文件或規範適用於專案的各個部分。**可追溯性** 能夠跟蹤較低和較高級別需求之間的連結以及它們是如何產生的邏輯。在最低級別,需求的一個子集被分配給特定的硬體或軟體專案、熟練人員、程式、設施、介面、服務或最終系統的其他單個元素。在那個級別,需求的子集和系統元素足夠簡單,可以實際設計。對於複雜專案,軟體工具對需求分配和跟蹤過程非常有用。它們可以幫助管理大量細節,並確保專案中的每個人都擁有最新資訊。

需求分配不是一次性任務,儘管它主要集中在專案的早期階段。隨著設計和測試的進行,它們可以提供反饋並調整分配的需求。這些變化會傳播到更高的級別,透過追溯它們的影響,你可以確定它們如何影響專案的目標。變化也可能在同一級別產生橫向影響。例如,系統一部分重量的增加可能需要在其他地方進行減重工作,以不影響頂層效能。

華夏公益教科書