Введение

Jackson System Development (JSD) — линейная методология разработки программного обеспечения, разработанная Майклом А. Джексоном и Джоном Кэмероном в 1980-х годах.

История

JSD был впервые представлен Майклом А. Джексоном в 1982 году в статье под названием «Метод разработки систем», а в 1983 году – в области системного развития. Разработка систем Джексона (JSD) – это метод разработки систем, охватывающий жизненный цикл программного обеспечения либо напрямую, либо предоставляя основу, в которую можно интегрировать более специализированные техники. JSD может начинаться на стадии проекта, когда существует лишь общее описание требований. Однако многие проекты, использовавшие JSD, фактически начинались немного позже в жизненном цикле, выполняя первые шаги в основном на основе существующих документов, а не напрямую взаимодействуя с пользователями. Последующие этапы JSD приводят к созданию кода конечной системы. Первый метод Джексона, структурированное программирование Джексона (JSP), используется для генерации конечного кода. Результатом более ранних этапов JSD является набор задач по проектированию программ, решение которых является предметом JSP. Обслуживание также обеспечивается путем переработки соответствующих более ранних этапов. JSD продолжала развиваться, и в метод было введено несколько новых функций. Они описаны в сборнике статей Джона Кэмерона «JSP и JSD» (1989) и в версии 1992 года (версия 2) руководства LBMS JSD. Разработка метода JSD завершилась в начале 1990-х годов, когда идеи Джексона эволюционировали в подход «Проблемные рамки» с публикацией «Программные требования и спецификации» (1995) и «Проблемные рамки: анализ и структурирование проблем разработки программного обеспечения» (2000).

Стадия моделирования

На этапе моделирования дизайнер создает коллекцию диаграмм структуры сущностей и определяет сущности в системе, действия, которые они выполняют, временную последовательность действий в жизненном цикле сущностей, а также атрибуты действий и сущностей. Диаграммы структуры сущностей используют нотацию диаграмм структурированного программирования Джексона. Цель этих диаграмм – создать полное описание аспектов системы и ее организации. Разработчикам необходимо определить, что является важным, а что нет. Важна хорошая коммуникация между разработчиками и пользователями новой системы. Этот этап объединяет в себе предыдущие этапы "сущность/действие" и "структуры сущностей".

Стадия сети

На этапе сетевого развития разрабатывается модель системы в целом и представляется в виде схемы спецификации системы (SSD), также известной как сетевая диаграмма. Сетевые диаграммы отображают процессы (прямоугольники) и способы их взаимодействия друг с другом, либо посредством соединений векторов состояния (ромбы), либо посредством соединений потоков данных (круги). На этом этапе определяется функциональность системы. Каждая сущность становится процессом или программой на сетевой диаграмме. Внешние программы добавляются к сетевым диаграммам позднее. Назначение этих программ – обработка входных данных, вычисление выходных данных и поддержание актуальности процессов сущности. Вся система описывается с помощью этих сетевых диаграмм и дополняется описаниями данных и связей между процессами и программами. Начальный этап моделирования задает симуляцию реального мира. Этап функций добавляет к этой симуляции дальнейшие исполняемые операции и процессы, необходимые для получения выходных данных системы. Этап синхронизации системы обеспечивает синхронизацию между процессами и вводит ограничения. Этот этап представляет собой объединение предыдущих этапов «начальное моделирование», «функции» и «синхронизация системы».

Стадия реализации

На этапе реализации абстрактная сетевая модель решения преобразуется в физическую систему, представленную в виде диаграммы реализации системы (SID). SID отображает систему как процесс планирования, вызывающий модули, реализующие процессы. Потоки данных представляются как вызовы инвертированных процессов. Символы баз данных представляют собой коллекции векторов состояния сущностей, и существуют специальные символы для файловых буферов (которые необходимо реализовать при планировании процессов для выполнения с разными временными интервалами). Главной задачей этапа реализации является оптимизация системы. Необходимо уменьшить количество процессов, поскольку невозможно предоставить каждому процессу, содержащемуся в спецификации, собственный виртуальный процессор. Путем преобразования процессы объединяются для ограничения их числа количеством процессоров.