CADES ( Система автоматизированного проектирования и оценки ) — система разработки программного обеспечения, созданная для поддержки проектирования и разработки операционной системы VME/B для компьютеров ICL New Range (впоследствии 2900).
С самых первых дней VME/B разрабатывался с помощью CADES, который был создан для этой цели с использованием базовой базы данных IDMS (позднее обновленной до IDMS(X) ). CADES была не просто системой контроля версий для модулей кода: она была предназначена для управления всеми аспектами жизненного цикла программного обеспечения от сбора требований до обслуживания на месте.
Именно разработка CADES проложила путь проекту Alvey в IPSE (Integrated Project Support Environments) и Process Control Engines. Поскольку CADES использовался более 20 лет в ходе разработки крупного проекта по программной инженерии, собранные данные были использованы в качестве входных данных для ряда исследований эволюции программного обеспечения.
CADES был задуман в 1970 году Дэвидом Пирсоном и Брайаном Уорбойсом во время работы в технологическом центре ICL New Range Operating System Technology Centre, OSTECH, в Кидсгрове. [1] [2] Пирсон, по образованию физик-теоретик, стал специалистом по компьютерному моделированию и присоединился к ICL в 1968 году после работы в области конечно-элементного моделирования в Кембридже и исследований в области моделирования в Имперском колледже. Уорбойс был главным архитектором многопользовательской операционной системы ICL System 4, Multijob.
Приверженность ICL разработке крупномасштабного программного обеспечения для компьютеров серии 2900 легла в основу ранней работы Пирсона и Уорбоя над новой средой разработки программного обеспечения, которая должна была решать проблемы производительности труда дизайнеров/программистов, целостности дизайна, оценки и тестирования, контроля версий и регрессии систем. [3] [4]
При проектировании первоначальной архитектуры среды CADES Пирсон, в частности, искал параллели с ведущими системами автоматизированного проектирования оборудования того времени, даже пытаясь использовать графику в процессе проектирования. Подход к проектированию CADES, называемый структурным моделированием, был жестко управляемым данными и иерархическим и выражался на формальном языке проектирования SDL. Технические требования к проектированию, написанные на SDL, обрабатывались анализатором проектирования, прежде чем вводились в базу данных продуктов CADES, базу данных по проектированию и внедрению, поддерживающую собственный язык запросов и формирующую ядро системы информации о продуктах. [5] [6] [7]
Целью было то, чтобы эти проекты можно было оценить/смоделировать с помощью Animator, а код реализации S3 автоматически генерировался из них с помощью Environment Processor. Генерация сборки и контроль версий также основывались на базе данных продукта, что привело к высокодисциплинированному подходу к новым сборкам системы. Таким образом, регрессия системы контролировалась с самого раннего этапа жизненного цикла программного обеспечения. [8] [9]
Для контроля разработки VME/B каждая разработка была подразделена для более легкого управления. Структура была иерархической, и каждый значимый компонент VME (ядро, файловое хранилище и т. д.) был разделен на подсистемы. Деятельность по разработке каждой подсистемы создавала последовательность версий.
Эти подразделения и подотделы VME/B были отражены в иерархической структуре базы данных CADES. Это позволило повторно использовать код в VME/B (одна из целей разработки программного обеспечения). Это, в сочетании с набором инструментов и использованием SDL (язык проектирования программного обеспечения) в качестве языка разработки, истории версий и концепции доверенного исходного кода (то есть кода, который прошел QA и впоследствии находится в файловом хранилище CADES), сократило время разработки, обеспечивая при этом удовлетворительные контрольные журналы и процессы QA.
CADES принял термин «холон» для обозначения модулей кода (таких как процедуры и макросы). Слово произошло от греческого holo, означающего целый, и было взято из книги Артура Кестлера «Призрак в машине» . Пирсон всегда утверждал, что сформулировал архитектуру CADES, изучая книгу Кестлера на пляже в Тунисе. Расположенные в иерархии, холоны предоставляют «генеалогическое древо» (для каждой подсистемы), используя родительско-дочерние отношения. Холоны также поддерживали атрибуты взаимодействия, позволяя одному холону взаимодействовать с другими холонами, тем самым обеспечивая более модульную разработку и облегчая повторное использование. Подобным образом CADES также сохранял информацию относительно постоянных значений (также известных как литералы), определяемых пользователем типов и определяемых пользователем структур.
Разработка в CADES была достигнута с помощью набора инструментов, известных как MODPRO ( Module Processing ) , который выступал в качестве интерфейса (или брокера) между разработчиком и CADES. Эти инструменты позволяли разработчику больше сосредоточиться на разработке, чем на административных, QA или SCM задачах. Не было необходимости знать, как манипулировать данными в CADES, приложение генерировало требуемый DNL (Data Navigation Language) для достижения требуемых результатов.
Разработка с использованием MODPRO не требовала специальных знаний ни S3 , ни SCL (целевой язык для последующей компиляции), но SDL, Software Design Language: абстракция над первыми двумя. Который в сочетании с редактором улучшений EDSDL ( Ed it SDL ) взаимодействовал с CADES для управления разработкой или доработкой. Затем, снова с информацией из CADES, при использовании с инструментом MODPRO EPETC (он же Environment Processor или EP и т. д.) позволял правильно нацеливать полученный файл на компиляцию S3 или SCL . Последующие инструменты в наборе облегчали различные этапы разработки, такие как:
Ниже проиллюстрирован типичный путь разработки MODPRO.