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