杰克逊系统开发

杰克逊系统开发（Jackson system development）简称JSD，是一种线性的程序设计方法学，由迈克尔·安东尼·杰克逊及约翰·卡梅伦（John Cameron）在1980年代提出。可视为是杰克逊结构化编程（JSP）的延伸。
杰克逊系统开发包括从设计需求到代码的完整软件开发流程，并且着重在即时系统的应用。也适用于数据处理系统的开发。但此方法不易处理偶然及随机性的事件，为其缺点。

历史

杰克逊系统开发最早是由杰克逊在1982年在其发表的论文《系统开发方法》（A System Development Method）及1983年的《系统开发》（A System Development）中提出。
后来杰克逊系统开发继续发展，也加了一些新的特征，在约翰·卡梅伦1989年的论文选集《JSP and JSD》及1992年版的LBMS JSD手册中都有说明。杰克逊系统开发的发展约在1990年初期告一段落，杰克逊后来转向问题框架方法的研究。

建模阶段

在建模阶段会创建实体结构图（entity structure diagram），并识别系统中的实体、其动作、实体在其生命周期中的动作时序，和实体和其动作的属性。实体结构图会使用杰克逊结构化编程中的“结构图”来表示，实体结构图的目的是创建系统及组织架构的完整描述，设计者需决定在系统中哪些部分重要，哪些部分不重要，此阶段强调设计者和用户的沟通。

网络阶段

在网络阶段会创建整个系统的模型，称为“系统规格图”（system specification diagram）或网络图（network diagram），网络图是呈现程序（以长方形表示）和彼此传递数据的方式，数据传递可能会用“状态向量”（以有菱形的连接表示）或者是用“数据流”（以有圆形的连接表示）表示。此阶段定义系统的机能．每一个实体都会成为网络图中的一个程序或程序。外部程序之后会加入网络图中，其目的是处理输入、计算输出并更新实体处理的数据，因此网络图描述了整个系统，也描述各程序及各程序之间的数据和连接方式。
基本建模步骤处理现实世界的建模，而机能步骤中会加入产生输出所需要的程序，系统时序步骤进程中的同步、并导入限制条件。

实现阶段

实现阶段中抽象的网络模型会转换为实际的系统，以“系统实现图”（system implementation diagram）表示，系统实现图中的系统会调用各机能的模块，以实现对应的机能。数据流会以模块之间的调用来表示，数据库的符号表示实体状态向量的集合，也有特殊符号表示文件的缓冲器（必需以规划在不同的时段运行的程序来实现）。
实现阶段的主要考量是系统的最优化，借由转换的方式，可以合并程序，减少实际程序的数量。