
- •Глава 1
- •1.1. Теоретические основы метрологии
- •1.2. Погрешности измерений
- •1.3. Методы и средства электрических измерений
- •1.4. Нормирование метрологических характеристик средств измерений
- •1.5. Организация метрологического контроля
- •1.6. Средства измерений и контроля
- •Глава 2
- •2.1.1. Правовые основы
- •2.1.2. Цели и задачи стандартизации
- •2.1.3. Основные принципы стандартизации
- •2.1.5. Методы стандартизации
- •2.2.2. Региональные организации стандартизации информационных технологий (ит)
- •2.2.3. Национальные организации стандартизации
- •Iso является организацией федеративного типа. В ее состав входят организации, которые подразделяются на три группы:
- •Iso включает в свой состав 135 организаций по разработке национальных стандартов, из них 90 — первого типа (member bodies), 36 — второго (correspondent member) и 9 — третьего (subscriber member).
- •2.4. Государственная система стандартизации Российской Федерации
- •2.4.1. Единая десятичная система классификации и кодирования технико-экономической информации
- •2.4.2. Единая система конструкторской документации (ескд)
- •2.4.3. Единая система технологической подготовки производства (естпп)
- •2.4.4. Единая система технологической документации (естд)
- •2.4.6. Государственная системе обеспечения единства измерений (гси)
- •2.6. Основные определения стандартизации области информационных технологий поддержки жизненного цикла продукции
- •2.7. Жизненный цикл программных средств
- •2.7.1. Основные процессы жизненного цикла программного средства
- •2.7.2. Вспомогательные процессы жизненного цикла программных средств (жц пс)
- •2.7.3. Организационные процессы жц пс
- •2.8. Модели жизненного цикла программных средств
- •2.8.1. Каскадные модели
- •2.8.2. Генетические технологические модели
- •2.8.3. Адаптивные технологические подходы
- •2.8.4. Подходы исследовательского программирования
- •Глава 3
- •3.1. Основы надежности программных средств
2.8.2. Генетические технологические модели
Синтезирующее программирование
Синтезирующее программирование предполагает синтез Программы по ее спецификации. В отличие от программы, которая написана на алгоритмическом языке и предназначена для исполнения на вычислительной машине после трансляции в исполняемый код, документ на языке спецификаций является лишь базисом для последующей реализации. Для получения этой реализации необходимо решить перечисленные ниже основные задачи, доопределить детали, которые нельзя выразить с помощью языка спецификации, но необходимые для получения исполняемого кода:
выбрать язык реализации и аппаратно-программную платформу для реализации;
зафиксировать отображение понятий языка спецификаций на язык реализации и аппаратно-программную платформу;
осуществить трансформацию представления (из спецификации в исполняемую программу на языке реализации;
отладить и протестировать исполняемую программу.
Автоматическая генерация программ по спецификациям возможна для многих языков спецификаций, среди которых особо выделим SDL, ASN.1, LOTOS, Estelle,UML.
Сборочное (расширяемое) программирование
Сборочное программирование предполагает, что программа собирается путем переиспользования уже известных фрагментов (рис. 2.22).
Рис. 2.22. Сборочное программирование
Сборка может осуществляться вручную, или быть задана на некотором языке сборки, или извлечена полуавтоматическим образом из спецификации задачи.
Спецификация — подробное описание некоторой работы, подлежащей выполнению.
По уровню формализации существует три класса спецификаций:
• словесные спецификации, обработка которых может осуществляться обычным текстовым редактором;
• модельные (структурированные) спецификации, которые предполагают построение схем, диаграмм, других информационных структур;
• формальные спецификации, получаемые строгим формальным способом с использованием математических формализмов.
Конкретизирующее программирование
Конкретизирующее программирование предполагает, что частные, специальные программы извлекаются из универсальной.
Наиболее известная технология конкретизирующего программирования — это модель с применением паттернов проектирования. Паттерн (шаблон) проектирования — описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.
Паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений.
Паттерн состоит из четырех основных элементов:
• имени — однозначно описывающего проблему проектирования;
• задачи — описания того, когда следует применять паттерн для конкретизации;
• решения — абстрактного описания элементов дизайна и отношений между ними;
• результатов — следствий применения паттерна.
Дополнительно к паттернам существуют каркасы (framework) — наборы взаимодействующих классов, составляющих повторно используемый дизайн для конкретного класса программ. Каркас диктует определенную архитектуру приложения, в нем аккумулированы проектные решения, общие для проектной области. Например, существуют каркасы, которые используются для разработки компиляторов.
Эволюционное прототипирование
Этот подход объединяет следующие основные черты:
• итерационную разработку прототипа;
• тесное взаимодействие с заказчиком.
Первый прототип обычно включает создание развитого пользовательского интерфейса. Он может быть сразу же продемонстрирован заказчику для получения от него отзывов и возможных коррективов. Основное начальное внимание уделяется стороне системы, обращенной к пользователю. Далее, до тех пор пока пользователь не сочтет программный продукт законченным, в него вносится необходимая функциональность (рис. 2.23). Эволюционное прототипирование разумно применять в тех случаях, когда заказчик не может четко сформулировать свои требования к программному продукту на начальных этапах разработки или заказчик знает, что требования могут кардинально измениться.
Рис. 2.23. Эволюционное прототипирование
Итеративная разработка
Первый прототип итеративной разработки уже должен включать завершенное ядро системы. Таким образом, в нем уже сосредоточена большая часть функциональности. Очередные итерации должны помочь пользователю определиться с доводкой пользовательского интерфейса, генерируемых системой отчетов и других выходных данных. Допускается добавление незначительной функциональности, обычно не затрагивающей ядро системы. Существенным недостатком данных подходов является невозможность определить продолжительность и стоимость проекта. Неочевидным является количество итераций, по истечении которых пользователь сочтет программный продукт законченным.
Постадийная разработка
Постадийная разработка предназначена решить недостаток предыдущих подходов — невозможность определения сроков завершения проекта. Начиная разработку, программист хорошо знает, что будет собой представлять создаваемый программный продукт.
Основная задача постадийной разработки — предоставить заказчику работающую систему как можно раньше. Далее заказчик сможет добавлять новую функциональность и получать очередную версию системы. Однако каждая из версий, получаемых по завершении стадий, является работающей.
Данный подход требует тщательного и серьезного тестирования очередной системы в конце каждой стадии перед передачей ее пользователю.