- •230400 «Информационные системы и технологии»
- •6 Декабря 2011 г., протокол № 4
- •Оглавление
- •Глава 1. Теория информационных процессов и систем 10
- •Глава 2. Информационные технологии 95
- •Глава 3. Архитектура информационных систем 126
- •Глава 4. Технологии программирования 150
- •Глава 5. Управление данными 239
- •Глава 6. Технологии обработки информации 315
- •Предисловие
- •Глава 1. Теория информационных процессов и систем
- •1.1. Информационные системы. Основные понятия и определения.
- •1.2. Системообразующие свойства информационных систем
- •1.3. Свойства и закономерности систем
- •1.4.Системный подход и системный анализ
- •1.5. Моделирование информационных систем
- •1.5.1. Основные понятия
- •1.5.2. Классификация методов моделирования
- •1.5.3. Математическое моделирование
- •1.6. Теория принятия решений
- •3. Неопределённость наших знаний об окружающей обстановке и действующих в данном явлении факторах (неопределённость природы).
- •4. Неопределённость действий активного или пассивного партнёра или противника.
- •1.7. Информационные процессы
- •Контрольные вопросы
- •Глава 2. Информационные технологии
- •2.1. Состав, структура, принципы реализации и функционирования информационных технологий
- •2.2. Базовые и прикладные информационные технологии
- •Прикладные программные средства включают:
- •2.3. Инструментальные средства информационных технологий
- •Контрольные вопросы
- •Глава 3. Архитектура информационных систем
- •3.1. Классификация информационных систем
- •3.2. Структура, конфигурация информационной системы
- •3.2.1. Информационное обеспечение
- •Классификаторы создаются для решения следующих основных задач:
- •3.2.2. Математическое и программное обеспечение
- •К средствам математического обеспечения относятся:
- •К средствам программного обеспечения (по) относятся:
- •3.2.3. Организационное обеспечение
- •3.2.4. Правовое обеспечение
- •3.2.5. Техническое обеспечение
- •3.3. Процесс разработки информационных систем
- •3.3.1. Выработка или выбор парадигмы программирования
- •3.3.2. Моделирование бизнес-процессов
- •3.3.3. Анализ требований, предъявляемых к ис
- •3.3.4. Разработка архитектуры
- •3.3.5. Кодирование
- •3.3.6. Тестирование информационной системы
- •3.3.7. Документирование
- •3.3.8. Внедрение информационной системы
- •3.3.9. Сопровождение информационной системы
- •Контрольные вопросы.
- •Глава 4. Технологии программирования
- •4.1. Основные понятия программного обеспечения
- •Категории специалистов, занятых разработкой и эксплуатацией программ
- •4.2. Характеристики программного продукта
- •4.3. Жизненный цикл программного продукта
- •4.4.Защита программных продуктов
- •4.5. Классы программных продуктов
- •4.6. Инструментарий технологии программирования
- •4.7. Классификация методов проектирования программных продуктов
- •4.8. Этапы создания программных продуктов
- •1. Составление технического задания на программирование
- •2. Разработка технического проекта
- •3. Создание рабочей документации (рабочий проект)
- •4. Ввод в действие
- •4.9. Структура программных продуктов
- •4.10. Структурное проектирование и программирование
- •4.11. Модульная структура программных продуктов
- •4.12. Алгоритмы
- •4.13. Классификации языков программирования и примеры языков
- •4.13.2. Основы функционального программирования с использованием языка lisp Основные свойства функциональных языков программирования
- •Распространенные языки функционального программирования
- •Основные структуры данных и базовые функции по работе с ними в среде Лисп
- •Контрольные вопросы
- •Глава 5. Управление данными
- •5.1. Основы управления данными
- •5.1.1. Информация, данные и знания.
- •5.1.2.Функции управления
- •5.2.Банки данных в информационных системах.
- •5.2.1.Концепция баз данных
- •5.2.2.Файловые системы и базы данных
- •5.2.4.Классификация банков данных
- •5.3.Моделирование и модели данных
- •5.3.1.Уровни моделирования
- •5.3.2.Виды моделей
- •5.3.3.Модели данных
- •5.3.4.Иерархическая модель данных
- •5.3.5.Сетевая модель данных
- •5.3.6.Реляционная модель данных
- •5.3.7.Постреляционная модель представления данных
- •5.3.8.Многомерные модели представления данных
- •5.3.9.Объектно-ориентированные модели представления данных
- •5.4.Проектирование базы данных
- •5.4.1.Основы реляционной алгебры
- •5.4.2.Инфологический подход к проектированию баз данных
- •5.4.3.Модель «сущность—связь»
- •5.4.4.Переход к реляционной модели данных
- •5.4.5.Пример проектирования реляционной бд средствами субд Access
- •5.5.Субд в архитектуре «клиент-сервер»
- •5.5.1.Открытые системы
- •5.5.2.Клиенты и серверы локальных сетей
- •5.5.3.Системная архитектура «клиент-сервер»
- •5.5.4.Серверы баз данных
- •5.6.Реляционный язык sql
- •Структура sql
- •Контрольные вопросы
- •Глава 6. Технологии обработки информации
- •6.1. Основные виды и процедуры обработки информации
- •6.1.1. Виды обработки информации
- •6.1.2. Основные процедуры обработки данных
- •6.2. Системы поддержки принятия решений (сппр)
- •6.2.1. Условия принятия решений
- •6.2.2. Решение задач с помощью искусственного интеллекта
- •6.2.3. Процесс выработки решения на основе первичных данных
- •6.2.4. Типы информационных систем поддержки принятия решений
- •6.2.5. Реализация процесса принятия решений
- •6.2.6. Средства разработки информационных приложений
- •6.3. Концепция хранилищ и витрин данных, достоинства и недостатки
- •6.3.1. История создания концепции хранилищ данных
- •6.3.2. Причины создания концепции хранилищ данных
- •6.3.3. Факторы и технологии складирования данных
- •6.3.4. Концепция хранилищ данных
- •6.3.5. Взаимное соотношение концепции хранилищ данных и концепций анализа данных
- •6.3.6. Реализации хранилищ данных
- •6.3.7. Субд для аналитических систем
- •6.3.8. Витрины данных
- •6.4. Искусственный интеллект и интеллектуальные системы
- •6.4.1. Цели и задачи искусственного интеллекта
- •6.4.2. Направление исследований в области искусственного интеллекта
- •6.4.3. Структура интеллектуальной системы
- •6.4.4. Разновидности интеллектуальных систем
- •Контрольные вопросы
- •Глава 7. Интеллектуальные системы и технологии
- •7.1. Теория и технологии искусственного интеллекта
- •7.2. Математическое описание экспертной системы, логический вывод
- •7.3. Искусственные нейронные сети
- •7.4. Расчётно-логические системы, системы с генетическими алгоритмами
- •(Начало цикла)
- •Создание начальной популяции
- •Размножение (Скрещивание)
- •Мутации
- •Применение генетических алгоритмов
- •7.5. Мультиагентные системы
- •Контрольные вопросы
- •Глава 8. Инструментальные средства информационных систем
- •8.1. Состав и структура инструментальных средств информационных систем
- •8.2. Тенденции развития инструментальных средств информационных систем
- •8.3. Операционные системы инструментальных средств информационных систем
- •8.4. Технические средства инструментальных средств информационных систем
- •Классификация технических средств инструментальных средств информационных систем.
- •Контрольные вопросы
- •Глава 9. Инфокоммуникационные системы и сети
- •9.1. Модели и структура информационных сетей Классическая модель построения инфокоммуникационных систем
- •9.2. Информационные ресурсы сетей
- •По способу представления:
- •По национально-территориальному признаку:
- •9.3. Теоретические основы современных информационных сетей
- •Контрольные вопросы
- •Глава 10. Методы и средства проектирования информационных систем и технологий
- •10.1. Технология проектирования информационных систем. Этапы проектирования
- •10.2. Методы проектирования информационных систем
- •10.3. Средства проектирования ис
- •Контрольные вопросы
- •Список литературы
- •143 Хорошилов а.В. Селетков с.Н. Днепровская н.В. Управление информационными ресурсами.
4.6. Инструментарий технологии программирования
Развитие технологии программирования обусловлено переходом на промышленную технологию производства программ, стремлением к сокращению сроков, трудовых и материальных затрат на производство и эксплуатацию программ, обеспечению гарантированного уровня их качества. Это направление часто называют технологией программирования.
Технология программирования – технология разработки, отладки, верификации и внедрения программного обеспечения.
Инструментарий технологии программирования – программные продукты поддержки (обеспечения) технологии программирования.
В рамках этих направлений сформировались следующие группы программных продуктов (рис.4.8):
Средства для создания приложений, включающие:
локальные средства, обеспечивающие выполнение отдельных работ по созданию программ;
интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ.
CASE-технология (Computer-Aided System Engineering), представляющая методы анализа, проектирования и создания программных систем и предназначенная для автоматизации процессов разработки и реализации информационных систем.
Рис. 4.8. Классификация инструментария технологии программирования
Средства для создания приложений
Средства для создания приложений – совокупность языков и систем программирования, а также различные программные комплексы для отладки и поддержки создаваемых программ.
Языки программирования, если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:
машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
машинно-ориентированные языки (computer-oriented language) – языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);
процедурно-ориентированные языки (procedure-oriented language) – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм) (Паскаль, Фортран, Бейсик и др.);
проблемно-ориентированные языки (universal programming language) – языки программирования, предназначенные для решения задач определённого класса;
интегрированные системы программирования.
Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования, и объектно-ориентированные языки, поддерживающие понятие объектов и их свойств и методов обработки.
Программа, подготовленная на языке программирования, проходит этап трансляции, когда происходит преобразование исходного кода программы (source code) в объектный код (object code), который далее пригоден к обработке редактором связей. Редактор связей – специальная программа, обеспечивающая построение загрузочного модуля (load module), пригодного к выполнению (рис. 4.9).
Трансляция может выполняться с использованием средств компиляторов (compiler) или интерпретаторов (interpreter). Компиляторы транслируют всю программу, но без её выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение программы.
Существуют специальные программы, предназначенные для трассировки и анализа выполнения других программ, так называемые отладчики (debugger). Лучшие отладчики позволяют осуществить трассировку (отслеживание выполнения программы в пооператорном варианте), идентификацию места и вида ошибок в программе, «наблюдение» за изменением значений переменных, выражений и т. п. Для отладки и тестирования правильности работы программ создаётся база данных контрольного примера.
Рис. 4.9. Схема процесса создания загрузочного модуля программы
Системы программирования (programming system) включают:
компилятор;
интегрированную среду разработчика программ;
отладчик;
средства оптимизации кода программ;
набор библиотек (возможно с исходными текстами программ);
редактор связей;
сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;
справочные системы;
документатор исходного кода программы;
систему поддержки и управления проектом программного комплекса.
Средства поддержки проектов – новый класс программного обеспечения, предназначен для:
отслеживания изменений, выполненных разработчиками программ;
поддержки версий программы с автоматической разноской изменений;
получения статистики о ходе работ проекта.
Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими, как:
библиотека функций, процедур, объектов и методов обработки;
макрокоманды;
клавишные макросы;
языковые макросы;
программные модули-вставки;
конструкторы экранных форм и отчётов;
генераторы приложений;
языки запросов высокого уровня;
языки манипулирования данными;
конструкторы меню и многое другое.
Средства отладки и тестирования программ предназначены для подготовки разработанной программы к промышленной эксплуатации.
Интегрированные среды разработки программ. Дальнейшим развитием локальных средств разработки программ, которые объединяют набор средств для комплексного их применения на всех технологических этапах создания программ, являются интегрированные программные среды разработчиков. Основное назначение инструментария данного вида – повышение производительности труда программистов, автоматизация создания кодов программ, обеспечивающих интерфейс пользователя графического типа, разработка приложений для архитектуры клиент-сервер, запросов и отчётов.
СASE-технология создания информационных систем
Средства CASE-технологии – это относительно новое, сформировавшееся на рубеже 80-х гг., направление. Массовое применение технологии затруднено крайне высокой стоимостью и предъявляемыми требованиями к оборудованию рабочего места разработчика.
CASE-технология – это программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем. Средства CASE-технологий делятся на две группы:
встроенные в систему реализации – все решения по проектированию и реализации привязаны к выбранной системе управления базами данных;
независимые от системы реализации – все решения по проектированию ориентированы на унификацию начальных этапов жизненного цикла и средств их документирования, обеспечивают большую гибкость в выборе средств реализации.
Основное достоинство CASE-технологии – поддержка коллективной работы над проектом за счёт возможности работы в локальной сети разработчиков, экспорта – импорта любых фрагментов проекта, а также организационного управления проектом. Некоторые CASE-технологии ориентированы только на системных проектировщиков и предоставляют специальные графические средства для изображения различного вида моделей:
диаграмму потоков данных (DFD – data flow diagrams) совместно со словарями данных и спецификациями процессов;:
диаграмму «сущность-связь» (ERD – entity relationship diagrams), являющуюся инфологической моделью предметной области;
диаграмму переходов состояний (STD – state transition, diagrams), учитывающую события и реакцию на них системы обработки данных.
Диаграмма DFD устанавливает связь источников информации с потребителями, выделяет логические функции (процессы) преобразования информации, определяет группы элементов данных и их хранилища (базы данных).
Описание структуры потоков данных, определение их компонентов хранятся в актуальном состоянии в словаре данных, который выступает как база данных проекта. Каждая логическая функция может детализироваться с помощью DFD нижнего уровня согласно методам нисходящего проектирования. Выполняются также автоматизированное проектирование спецификаций программ (задание основных характеристик для разработки программ) и ведение словаря данных.
Другой класс CASE-технологий поддерживает только разработку программ, включая:
автоматическую генерацию кодов программ на основании их спецификаций;
проверку корректности описания моделей данных и схем потоков данных;
документирование программ согласно принятым стандартам и актуальному состоянию проекта;
тестирование и отладку программ.
Создание исполняемого файла программы выполняется двумя способами: создание каркаса программ и создание полного продукта. Каркас программы служит для последующего ручного варианта редактирования исходных текстов, обеспечивая возможность вмешательства программиста; полный продукт не редактируется вручную.
В рамках CASE-технологий проект сопровождается целиком, а не только его программные коды. Проектные материалы, подготовленные в среде CASE-технологий, служат заданием программистам, а само программирование скорее сводится к кодированию – переводу на определённый язык структур данных и методов их обработки, если не предусмотрено автоматическое создание исполняемого файла. Большинство CASE-технологий использует также метод «прототипов» для быстрого создания программ на ранних этапах разработки. Создание программы осуществляется автоматически – до 85-90% объектных кодов и текстов на языках высокого уровня.
