跳至內容

傑克遜系統開發

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

傑克遜系統開發Jackson system development)簡稱JSD,是一種線性的程式設計方法學,由邁克爾·安東尼·傑克遜英語Michael A. Jackson及約翰·卡梅倫(John Cameron)在1980年代提出。可視為是傑克遜結構化編程(JSP)的延伸。

傑克遜系統開發包括從設計需求到程式碼的完整軟件開發流程,並且着重在即時系統的應用[1]。也適用於資料處理系統的開發[2]。但此方法不易處理偶然及隨機性的事件,為其缺點[3]

歷史

[編輯]

傑克遜系統開發最早是由傑克遜在1982年在其發表的論文《系統開發方法》(A System Development Method)[4]及1983年的《系統開發》(A System Development)[5]中提出。

後來傑克遜系統開發繼續發展,也加了一些新的特徵,在約翰·卡梅倫1989年的論文選集《JSP and JSD》[6]及1992年版的LBMS JSD手冊[7]中都有說明。傑克遜系統開發的發展約在1990年初期告一段落,傑克遜後來轉向問題框架方法英語Problem Frames Approach的研究。

基本原則

[編輯]

傑克遜系統開發有以下三個基本的原則:

  • 在開發初期需要對現實世界的描述及建模,而不是針對系統需要的機能訂定規格或進行結構化。利用傑克遜系統開發產生的系統在尚未處理系統相關機能前,會先模擬現實世界的情形。
  • 一個有時序真實世界的良好模型應該也是有時間順序的,其主要目的是將真實世界的演變對映模擬現實世界系統的演變。
  • 實現系統的方式是基於從規格到一組有效率程式的轉換,程式需可以用軟件及硬件執行。

傑克遜系統開發的步驟

[編輯]

當傑克遜在1982年提出傑克遜系統開發時[4],此開發方式包括六個步驟

  1. 實體/動作
  2. 基本建模
  3. 互動機能
  4. 資料機能
  5. 系統時序
  6. 系統實現

後來將步驟再加以修改,變成三個階段[3][8]

  1. 建模階段(分析):包括實體/動作及實體結構二個步驟。
  2. 網絡階段(設計):包括基本建模、機能及系統時序三個步驟。
  3. 實現階段(實現):只有實現一個步驟。

建模階段

[編輯]

在建模階段會建立實體結構圖(entity structure diagram),並識別系統中的實體、其動作、實體在其生命週期中的動作時序,和實體和其動作的屬性 。實體結構圖會使用傑克遜結構化編程中的「結構圖」來表示,實體結構圖的目的是建立系統及組織架構的完整描述,設計者需決定在系統中哪些部份重要,哪些部份不重要,此階段強調設計者和用戶的溝通。

網絡階段

[編輯]

在網絡階段會建立整個系統的模型,稱為「系統規格圖」(system specification diagram)或網絡圖(network diagram),網絡圖是呈現程式(以長方形表示)和彼此傳遞資料的方式,資料傳遞可能會用「狀態向量」(以有菱形的連線表示)或者是用「資料流」(以有圓形的連線表示)表示。此階段定義系統的機能.每一個實體都會成為網絡圖中的一個程式或程式。外部程式之後會加入網絡圖中,其目的是處理輸入、計算輸出並更新實體處理的資料,因此網絡圖描述了整個系統,也描述各程式及各程式之間的資料和連接方式。

基本建模步驟處理現實世界的建模,而機能步驟中會加入產生輸出所需要的程式,系統時序步驟處理程式中的同步、並匯入限制條件。

實現階段

[編輯]

實現階段中抽象的網絡模型會轉換為實際的系統,以「系統實現圖」(system implementation diagram)表示,系統實現圖中的系統會呼叫各機能的模組,以實現對應的機能。資料流會以模組之間的呼叫來表示,資料庫的符號表示實體狀態向量的集合,也有特殊符號表示檔案的緩衝區(必需以規劃在不同的時段執行的程式來實現)。

實現階段的主要考量是系統的最佳化,藉由轉換的方式,可以合併程式,減少實際程式的數量。

相關的圖示

[編輯]
實體結構圖

實體結構圖表示系統中各實體之間的關係及其動作,包括以下的內容:

  • 實體:實體是系統中的一個物件。
  • 動作:此是指實體進行的動作及那些會影響其他實體的動作。
  • 序列結構:此處的定義和傑克遜結構化編程的定義相同,利用序列結構來表示許多循序執行的動作,由左到右依序執行。
  • 選擇結構:表示需由二個或二個以上的動作中選擇一個進行,選擇結構方塊的右上角會標示圓圈。
  • 迭代結構:表示重複執行一個動作,選擇結構方塊的右上角會標示星號,一般迭代結構中只進行一個動作。
  • 虛無元件:虛無元件表示像類似選擇結構中,某些情形下不需進行任何動作。
網絡圖

網絡圖(Network Diagram)表示各程式之間的互動關係,有些會稱為系統規格圖(System Specification Diagram),網絡圖包括以下的內容:

  • 程式:程式表示系統的機能,一般程式會和外界的實體藉由資料流連結建立關係。
  • 資料流連結(datastream connection):在資料流連結中,程式A(產生資料流的程式)程式主動送出資料給程式B。
  • 狀態向量連結(state vector cnspection):在狀態向量連結中,程式B(讀取狀態向量的程式)程式讀取程式A產生的狀態向量資訊。

資料流連結和狀態向量連結的差異在於主動的程式不同:在資料流連結中,產生資料流的程式A是主動程式,程式A依其選定的時間主動將資料傳送給程式B;在狀態向量連結中,產生狀態向量的程式A是被動程式,接收狀態向量的程式B定期去讀取程式A的狀態向量。簡單來說,資料流連結是訊息傳遞的抽象化,狀態向量是輪詢(由一個程式主動定期讀取其他許多程式的資料)的抽象化,狀態向量也是資料庫查詢的抽象化。

相關條目

[編輯]

參考資料

[編輯]
  1. ^ IEC 61508-7:1997 Functional safety of electrical/electronic/ programmable electronic safety-related systems Part 7 Overview of techniques and measures p59
  2. ^ 陳平; 禇華. 软件设计师教程. 北京: 清華大學出版社有限公司. 2006: 169 [2012-05-25]. ISBN 7302129576. (原始內容存檔於2019-12-07). 
  3. ^ 3.0 3.1 Decision systems Inc. (2002), Jackson System Development頁面存檔備份,存於互聯網檔案館). Accessed 24 Nov 2008.
  4. ^ 4.0 4.1 "A System development method 互聯網檔案館存檔,存檔日期2012-02-06." by M. A. Jackson, published in Tools and notions for program construction: An advanced course, Cambridge University Press, 1982
  5. ^ System Development, M. A. Jackson, Prentice Hall, 1983
  6. ^ JSP and JSD: The Jackson Approach to Software Development, ed. John R. Cameron (IEEE Computer Society Press, ISBN 0-8186-8858-0, 1989)
  7. ^ LBMS Jackson system development, Version 2.0 Method manual by LBMS (Learmonth, Burchett Management Systems), John Wiley & Sons, ISBN 0-471-93565-4; 1992
  8. ^ 宋柱梅; 趙振宇,李慶亮. 基于模型的软件开发方法研究 (PDF). 深圳資訊職業技術學院學報. 2009年12月, 7 (4): 10–13 [2012-05-25].  [永久失效連結]

延伸閱讀

[編輯]

外部連結

[編輯]