- •Глава 1. Технология программирования 4
- •Глава 2. Основы проектирования информационных систем 70
- •Глава 3. Обучающие и тестирующие системы 180
- •Введение
- •Технология программирования
- •Общие сведения о технологии программирования. Задачи технологии программирования
- •Базовые определения
- •Невозможность доказательства отсутствия программных ошибок
- •Надежность программной системы
- •Технология программирования как способ создания надежных программных систем
- •Этапы развития технологии программирования
- •Технология программирования и информатизация общества
- •Общие принципы разработки программных систем
- •Специфика разработки программных систем
- •Основные подходы при создании пс
- •Жизненный цикл программной системы
- •Понятие качества программной системы
- •Обеспечение надежности – основной критерий разработки программных систем
- •Методы борьбы со сложностью
- •Обеспечение точности перевода
- •Преодоление барьера между пользователем и разработчиком
- •Контроль принимаемых решений
- •Архитектура программной системы
- •Понятие архитектуры программной системы
- •Основные классы архитектур программных систем
- •Архитектурные функции
- •Тестирование и отладка программной системы
- •Основные понятия
- •-Принципы и виды отладки программной системы
- •Заповеди отладки программной системы
- •Автономная отладка программной системы
- •Комплексная отладка программной системы
- •Обеспечение функциональности и надежности программного средства
- •Функциональность и надежность как обязательные критерии качества программного средства
- •Обеспечение завершенности программного средства
- •Обеспечение точности программного средства
- •Обеспечение автономности программного средства
- •Обеспечение устойчивости программного средства
- •Обеспечение защищенности программных средств
- •Обеспечение качества программного средства
- •Общая характеристика процесса обеспечения качества программного средства
- •Обеспечение легкости применения программного средства
- •Обеспечение эффективности программного средства
- •Обеспечение сопровождаемости программного средства
- •Обеспечение мобильности
- •Литература
- •Основы проектирования информационных систем
- •Проектирование информационной системы. Понятия и структура проекта ис
- •Основные понятия и определения
- •Преимущества электронного документооборота
- •Области применения и примеры реализации информационных систем
- •Требования, предъявляемые к информационным системам
- •Жизненный цикл информационных систем
- •Этапы разработки автоматизированных информационных систем
- •Классификация информационных систем
- •Классификация автоматизированных информационных систем
- •Информационная модель и методы моделирования архитектуры проектируемой информационной системы
- •Методы проектирования информационных систем
- •Профили открытых информационных систем
- •Методологии, технологии и инструментальные средства проектирования
- •Модели структурного проектирования
- •Стандарт моделирования данных idef1x. Er-диаграммы
- •Моделирование данных. Диаграммы потоков данных
- •Моделирование данных. Методология функционального моделирования sadt
- •Case-средства проектирования информационных систем
- •Классификация case-средств
- •Рекомендации по применению case-систем
- •Объектно-ориентированные модели
- •Общая характеристика унифицированного языка моделирования uml
- •Проектирование ис с использованием uml
- •Методология rad
- •Разработка интерфейса ис
- •Литература
- •Обучающие и тестирующие системы
- •Терминология, принятая в данной области
- •История развития процесса создания терминологии и основные проблемы
- •Рекомендованные основные понятия
- •Характеристики электронного издания
- •Электронный учебник – новый жанр учебной литературы
- •Некоторые принципы, которыми следует руководствоваться при создании электронного учебника
- •Необходим ли электронный учебник?
- •Методическое обеспечение электронного учебника
- •Роль методического обеспечения
- •Требования к современному методическому обеспечению
- •Содержание методического комплекса
- •Некоторые вопросы стандартизации, оценки качества и сертификации учебных электронных ресурсов
- •Стандартизация в области образовательных технологий
- •Причины появления и назначение стандартов в области информационных технологий обучения
- •Спецификации ims
- •Спецификации ieee ltsc
- •Модель scorm
- •Метаданные
- •Определение метаданных
- •Роль метаданных
- •Технология создания локальных и сетевых электронных образовательных ресурсов – html
- •Введение
- •Что такое гипертекстовый документ
- •Действительные документы html
- •Html- редакторы
- •Первый документ html
- •Гиперссылки
- •Форматирование документа
- •Синтаксис гипертекстовой разметки
- •Каскадные таблицы стилей
- •Типы представления документов
- •Правила оформления документа
- •Чего надо стараться избегать
- •Публикация
- •Литература
-
Невозможность доказательства отсутствия программных ошибок
Можно считать, что итоговым продуктом технологии программирования является программная система, содержащее программы, которые выполняют набор требуемых функций. Здесь под термином «программа» будем понимать правильно работающую программу, т.е. программу, которая не содержит ошибок. Сложность состоит в том, что понятие ошибки в программе трактуется неоднозначно. Согласно работам [2,3], будем считать, что в программе имеется ошибка, если программа не выполняет того, что разумно ожидать от нее пользователю. При этом «разумное ожидание пользователя» формируется на основании документации по применению этой программы. Отсюда следует, что понятие ошибки в программе является существенно не формальным. В ПС программы и документация взаимно увязаны, образуют некоторую целостность. Поэтому правильнее говорить об ошибке не в программе, а в ПС в целом.
Будем считать, что в программной системе имеется ошибка, если она не выполняет того, что разумно ожидать от нее пользователю. В частности, разновидностью ошибки в ПС является несогласованность между программами ПС и документацией по их применению. В работе [3] выделяется в отдельное понятие частный случай ошибки в ПС, когда программа не соответствует своей функциональной спецификации, т.е. описанию, составляемому на этапе, который предшествует непосредственному программированию. Такая ошибка именуется дефектом программы. Однако выделение такой разновидности ошибки в отдельное понятие вряд ли оправданно, так как причиной ошибки может оказаться сама функциональная спецификация, а не уже готовая программа.
Итак, мы сталкиваемся с ситуацией, когда задание на ПС сформулировано неформально, а понятие ошибки в ПС не формализовано. Отсюда следует, что в общем случае нельзя доказать формальными методами, т.е. с привлечением строгого математического аппарата, правильность ПС.
Конечно, каждое ПС проходит этап опытного тестирования, когда некоторому набору исходных данных соответствует определенный ожидаемый результат. Однако, как указал Дейкстра [4], нельзя показать правильность ПС с помощью тестирования – тестирование может лишь выявить наличие в ПС ошибок, но не их отсутствие. Поэтому понятие правильной ПС неконструктивно в том смысле, что после окончания работы над созданием ПС мы не сможем достоверно убедиться, что достигли итоговой цели.
-
Надежность программной системы
В качестве альтернативы правильного ПС введем термин надежное ПС. Под надежностью ПС будем понимать его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью. При этом под отказом в ПС понимают проявление в нем ошибки [2]. Таким образом, надежное ПС не исключает наличия в нем ошибок. Важно лишь то, что эти ошибки при практическом применении данного ПС в заданных условиях проявлялись достаточно редко. Убедиться, что ПС обладает таким свойством можно при его опытном тестировании, а также при практическом применении. Таким образом, в реальности мы можем разрабатывать лишь надежные, но не правильные ПС.
ПС может обладать различной степенью надежности. Как определить эту степень? Так же, как в любой отрасли техники – степень надежности характеризуется вероятностью работы ПС без отказа в течение определенного периода времени [2]. Однако в силу специфических особенностей ПС определение этой вероятности наталкивается на ряд трудностей по сравнению с решением аналогичной задачи в технике.
При оценке степени надежности ПС следует также учитывать последствия каждого отказа. Некоторые ошибки в ПС могут вызывать лишь некоторые неудобства при его применении, тогда как другие ошибки могут иметь катастрофические последствия, например, угрожать полному разрушению информации на магнитном носителе. Поэтому для оценки надежности ПС иногда используют дополнительные показатели, учитывающие степень вреда для пользователя при проявлении конкретного отказа. Позже мы еще вернемся к этому вопросу.