Структурне програмування Джексона. Розробка систем за Джексоном
Структурне програмування Джексона
Структурне програмування Джексона (СПД) – це метод структурного програмування, що грунтується на відповідностях між структурою даних і структурою програми. СПД структурує програми і дані у поняттях послідовності, повторення й вибору.
Компонент зображується за допомогою блока. 
Конструкція послідовності компонентів зображується за допомогою блоків, з’єднаних лініями. У цьому прикладі А складається з послідовності компонентів B, C и D.

Конструкція вибору схожа на конструкцію послідовності, з єдиною різницею – кожен блок вибору має коло у верхньому правому кутку. У цьому прикладі А складається з одного и тільки одного з компонентів В, С або D.

В конструкції повторення повторюваний компонент має знак зірки у верхньому лівому кутку блока. У цьому прикладі, компонент А складається з нуля або більше компонентів В.

Приклад нотації даних: 
Приклад нотації програми:

Еквівалент коду:
function A()
{
List<DataEntry> list = GetDataList();
foreach(DataEntry entry in list)
{
ProcessData(entry);
}
if (…)
{
File.Save(…);
}
else
{
Console.WriteLine(…);
}
}
Розробка систем за Джексоном
Программа зображуется у вигляді струкури вхідних та вихідних даних, деякої відповідності між ними, а також функціональної(процедурної) структури що ці дані обробляе.
Проектування програми:


Вхідні данні:

Вихідні данні:

Відповідності між вхідними та вихідними даними:

Структура програми:

Реалізація:
function EncodeRunLength(string text)
{
char c = text.FirstChar();
while(c != -1)
{
int count = 1;
char first = c;
c = text.NextChar();
while (c == first)
{
count++;
c = text.NextChar();
}
output.Write(count);
output.Write(first);
}
}