13.12.Технологии повышения безошибочности ит программ
Методы повышения безошибочности ИТ программ разделяют на две группы: методы, применяемые при проектировании и кодировании ИТ-программ и методы и ИТ, применяемые при отладке готовой программы.
К первой группе методов относятся:
- ИТ использования принципов модульного программирования;
- ИТ использования принципов структурного программирования;
- ИТ применения языков высокого уровня;
- ИТ, использующие повышение уровня непроцедурности программы;
- ИТ, применяющие методы синтеза программ по спецификациям и методы автоматического доказательства программы.
Цель всех этих методов – предупредить ошибки, не допустить появления ошибок в готовой программе. Совершенно ясно, что предупреждение ошибок самым серьезным образом повышает вероятность правильности программ. Специалисты называют разные цифры стоимости нахождения и исправления ошибок в программе в зависимости от времени их обнаружения. Обычно утверждается, что раннее обнаружение дешевле в 10 и более раз.
Но какими бы методами проектирования ни пользовался программист, невозможно гарантировать безошибочность спроектированной только что программы. Программа должна обязательно пройти и этап отладки, в результате которого вероятность правильного функционирования программы окажется выше. Ко второй группе методов повышения безошибочности программ относятся разнообразные методы отладки.
Технологии, применяемые при подготовке программы
Модульное программирование предполагает, что программа разбивается на отдельные части-модули, причем разбиение должно в той или иной мере удовлетворять требованиям, среди которых отметим:
- ИТ ограничения размера модуля (обычно, в пределах 20-100 операторов);
- ИТ семантического выделения отдельных модулей программы (неформальная функционально-структурная декомпозиция);
- ИТ, использующие относительную независимость модуля. Связи между модулями как по управлению, так и по информации в этом случае должны быть минимальными.
Однако нельзя слишком строго следовать принципам модульности. Важнейшую роль в модульном программировании играют интуиция и опыт программиста.
Хорошая модульная программа имеет высокий уровень безошибочности, потому что связи между модулями достаточны просты. В то же время исправление ошибки в одном из модулей не должно по возможности приводить к корректировке других модулей.
Очень важно уметь использовать в программе стандартные модули (подпрограммы). Эти модули заранее отлажены, опробованы в разных применениях и, следовательно, содержат меньше ошибок, чем написанные специально для этой программы.
Можно сказать, что модульное программирование понижает сложность разрабатываемой программы, представляя ее в виде совокупности менее сложных модулей с несложными связями между ними. Тем самым упрощается анализ программы, поиск ошибок в ней и модификация.
Обычно программа разделяется «географически», т.е. модуль создается из операторов, компактно расположенных в программе. Однако, если привлечь технику получения остаточных программ и методы вертикального слоения, можно создавать модули и по другим (более функциональным) принципам.
Разделение на модули предполагает максимальную независимость модулей путем усиления внутренних связей в каждом модуле (повышения прочности модулей) и ослабления связей между модулями (и по данным и по управлению), применяя формализованный механизм передачи параметров. Вот какую цель сформулировал академик А.П. Ершов: Надо научиться очень тщательно и доказательно писать небольшие порграммы и в то же время уметь быстро, уверенно и безошибочно монтировать огромные комплексы программ из полуфабрикатов.
Структурное программирование – это технология программирования, в которой разрешено использование только трех видов конструкций: последовательность, выбор, итерация.
Конструкции в программе могут комбинироваться друг с другом так, как этого требует программа. Всякая программа, построенная в терминах этих конструкций, может быть постепенно преобразована в одну из этих конструкций. Так реализуется идея вложенной структуры, являющаяся важной в структурном программировании.
Программа, построенная таким образом, является модульной в строгом смысле слова, потому что основное в модульном программировании – это возможность замены отдельного модуля его эквивалентом без последствий в остальной части программы.
Принципы структурного программирования реализованы во многих языках программирования. При программировании должны использоваться либо обычные конструктивные операторы для выполнения программ в линейном порядке, либо перечисленные ранее управляющие средства выбора и повторения.
Структурные программы обладают многими свойствами, облегчающими поиск ошибок. Тем самым повышается надежность программ. Значение структурного программирования не исчерпывается сказанным. По сути, это – дисциплина программирования, представляющая собой постепенное превращение программирования из ремесла в науку. Наиболее очевидная выгода – рост производительности и уменьшение процента ошибок.
Языки высокого уровня позволяют готовить программу в терминах, более соответствующих самой задаче. При программировании на языке высокого уровня не надо учитывать специфику реализации, не надо (или почти не надо) заботиться о распределении ресурсов. В процессе программирования усилия сосредотачиваются на анализе конструктивных средств программы, на связях между ними, на формировании более сложных конструкций. Разные языки высокого уровня предоставляют разные возможности по созданию правильных программ, но в любом случае эти возможности выше, чем в языках типа Ассемблера.
Основные параметры, по которым можно сравнивать языки высокого уровня с целью выбрать «более надежный», - читабельность подготовленных программ и отсутствие особенностей языка, провоцирующих ошибки.
Непроцедурность программ позволяет уйти от подобного (а значит, чреватого ошибками) расписывания последовательности действий для выполнения того или иного фрагмента программы. Непроцедурное программирование фрагмента означает задание спецификаций входа и выхода этого фрагмента без указания алгоритма преобразования. Иначе говоря, программист оговаривает, ЧТО НАДО СДЕЛАТЬ, не указывая КАК НАДО СДЕЛАТЬ. Реализация фрагмента по его спецификациям выполняется автоматически. Сама программа при этом не меняется. Примером метода повышения непроцедурности может служить использование макросредств – механизма получения открытых программ, настроенных на значения параметров.
Другой пример – использование объектно-ориентированных языков. Предварительная и независимая отлаженность стандартных алгоритмов, привлекаемых для расшифровки спецификаций, позволяет повысить безошибочность подготовленной программы.
Методы синтеза программ и автоматического доказательства их правильности ориентируется на формальные методы, которые позволили бы получить безошибочные, абсолютно правильные программы. По-видимому, построить практическую технологию создания произвольных абсолютно правильных программ невозможно. Но для некоторых классов программ такие исследования ведутся. Тем не менее в ближайшее время нельзя ожидать реальных синтезаторов и верификаторов для сколько-нибудь практического применения.
- 1. Основы информационных технологий управления
- 1.1. Основные понятия
- 1.2. Параметры управления
- 1.3. Виды систем управления.
- Управление в технических системах
- Организационное управление
- 1.4. Информационные системы
- 1.5. Управленческая деятельность
- 1.6. Совершенствование управленческой деятельности
- 1.7. Выбор структуры системы управления
- 2. Информатизация процессов управления
- 2.1. Методологии обработки информации средствами эвм
- 2.2. Информация и ее роль в процессе управления
- 2.3. Информационные технологии, основные виды и их использование в современном бизнесе
- 2.4. Информационная технология управления
- 2.4.1. Характеристика и назначение
- 2.4.2. Основные компоненты
- 2.5. Информационные системы управления (ису)
- 2.6. Современные методологии оу
- 2.7. Новые информационные технологии организационного управления (исм)
- 2.8. Информационные модели
- 2.9. Инструменты оу
- 2.10. Классификация систем организационного управления
- 3. Системный подход в анализе управления организацией
- 3.1. Структура методологического знания
- 3.1.1. Системный подход
- 3.1.2. Понятие «система»
- 3.2. Системный анализ деятельности организации
- 3.2.1. Понятие организации
- 3.2.2. Функции организации
- 3.2.3. Модель деятельности организации
- 3.2.4. Функционально-ориентированная (иерархическая) организация
- 3.2.5. Процессно-ориентированная организация
- 3.2.6. Организация как система
- 3.2.7. Цель организации
- 3.3. Структурный анализ организации.
- 3.3.1. Структура организации
- 3.3.2. Структурный анализ
- 3.3.3. Методология структурного анализа организации
- 3.3.4. Средства структурного анализа организации
- 3.3.5. Этапы структурного анализа организации
- 3.4. Понятия модели и моделирования
- 3.4.1. Признаки классификации моделей
- Классификация моделей по закону функционирования
- Классификация моделей по признаку соответствия «Модель-Оригинал»
- 3.4.2. Требования к нотации
- 4. Методические основы создания автоматизированных систем организационного управления
- 4.1. Виды обеспечений асоу
- 4.2. Основные определения
- 4.3. Модели и методы проектирования асоу
- 4.4. Этапы проектирования системы поддержки принятия решений
- 4.5. Технологии проектирования информационных систем в асоу
- 4.6. Требования к проектируемой информационной технологии управления организацией
- 5. Информационное обеспечение информационной системы и информационной технологии управления организацией
- 5.1. Классификация управленческой информации
- 5.2. Состав информационного обеспечения асоу
- 5.3. Варианты организации информационного обеспечения асоу
- 5.4. Использование искусственного интеллекта для построения экспертных систем в асоу
- 6. Техническое и программное обеспечение информационной системы и информационной технологии управления организацией
- 6.1. Техническое обеспечение асоу
- 6.2. Программное обеспечение асоу
- 6.3. Пакет прикладных программ формирования бизнес-планов.
- 6.4. Интегрированные пакеты программ
- 6.5. Интегрированные системы управления проектами
- 7. Информационные технологии в системах управления
- 7.1. Процедуры обработки информации
- 7.2. Режимы обработки информации в асоу
- 7.3. Интегрированные технологии обработки информации в асоу
- Контрольные вопросы
- 8. Планирование и управление основной деятельностью промышленного предприятия
- Развитие систем управления предприятием
- Метод управления запасами и производством по точке перезаказа
- Методы планирования необходимых материалов (mrp) и планирования производственных ресурсов (mrp-II)
- Расчет необходимых материалов
- Планирование мощностей Определение загрузки производственных мощностей и возможности реализации потребности.
- Компьютерная система mrp-II
- Основные функции системы mrp II
- Данные об изделиях
- Управление операциями
- Планирование
- Формирование основного производственного плана
- Обслуживание клиентов
- Финансы и учет затрат
- Erp как замкнутая система
- «Точно-Во-Время» (Just-In-Time, jit)
- Теория ограничений (Theory of Constraints, toc)
- 8.8. Синхронное планирование (Advanced Planning & Scheduling – aps)
- 8.9. Интегрированное производство (Computer Integrated Manufacturing, cim)
- 8.10. Электронный бизнес, crm, erp-II и т.Д.
- 9. Защита информации в автоматизированных системах организационного управления
- 10. Информационные технологии стратегического менеджмента на предприятии
- 11. Информационные системы управления в асоу
- Классификация ис
- Задачи, обеспечиваемые ис в асоу
- Граница ответственности ису
- Задачи (параметрические условия), решаемые при проектировании ису
- Ресурсы управляемые ису
- Этапы развития ису организации
- Требования к ису
- Результаты внедрения ису
- Контроллинг
- Реинжиниринг бизнес-процессов и проектирование корпоративной электронной асоу
- 12.1. Бизнес-процессы на предприятии
- 12.2. Реинжиниринг бизнес-процессов
- 12.3. Этапы реинжиниринга бизнес-процессов
- 12.4. Идентификация бизнес-процессов
- 12.5. Обратный инжиниринг
- 12.6. Разработка моделей новой организации бизнес-процессов
- 12.7.Реализация проекта реинжиниринга бизнес-процессов
- 12.8. Внедрение проекта реинжиниринга бизнес-процессов
- 12.9. Методологии моделирования проблемной области
- Объектная структура
- Функциональная структура
- Структура управления
- Организационная структура
- Техническая структура
- 13. Надежность управления с применением информационных технологий
- 13.1. Надежность систем управления
- 13.2. Основные понятия надежности
- Создание надежных систем управления
- Общий порядок оценки надежности су
- Обеспечение надежности разрабатываемой (модернизируемой) су
- Системная надежность компьютерных технологий управления
- Параметры надежности
- Информационные технологии создания надежных систем управления
- Методология структурного анализа и проектирования
- Программное обеспечение как надежная система технологий управления
- 13.12.Технологии повышения безошибочности ит программ
- Технологии отладки программ
- Обобщенная структура и состав автоматизированной системы организационного управления
- Общие требования к системе
- Структура системы учета и управления предприятием
- Подсистема управления торговлей и складом
- Подсистема бухгалтерского учета
- Подсистема управления производством