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