- •Воронежский институт высоких технологий
- •Содержание
- •Введение
- •1. Понятие информации и подходы к ее количественной оценке
- •1.1 Понятие и виды информации
- •Виды информации
- •1.2 Структурная мера информации
- •1.3 Статистическая мера информации
- •Выражение (1.4) можно записать также в виде
- •1.4 Семантическая мера информации
- •1.5 Преобразование информации
- •1.6 Формы представления информации
- •1.7 Передача информации
- •Передача информации по каналу без помех
- •Передача информации по каналу с помехами
- •Таким образом, скорость передачи по каналу связи с помехами
- •1.8 Общая характеристика фаз преобразования информации
- •Контрольные вопросы
- •2. Алгоритмические основы информатики
- •2.1 Свойства алгоритмов
- •2.2 Виды алгоритмов и их реализация
- •2.3 Методы представления алгоритмов
- •Структурная (блок-) схема алгоритма
- •2.4 Порядок разработки иерархической схемы реализации алгоритмов
- •2.5 Нормальный алгоритм Маркова
- •2.6 Языки программирования
- •2.7 Жизненный цикл программного обеспечения
- •Контрольные вопросы
- •3. Математические основы информатики
- •3.1 Понятие дискретного автомата
- •Логический автомат
- •Автомат с конечной памятью
- •3.2 Машина Тьюринга
- •3.3 Кодирование информации
- •Основные понятия теории кодирования
- •Методы эффективного кодирования информации
- •Кодирование по методу четности-нечетности
- •Коды Хэмминга
- •3.4 Системы счисления
- •Смешанные системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Положим
- •Тогда x1будет правильной дробью и к этому числу можно применить ту же самую процедуру для определения следующего коэффициентаq-2и т.Д.
- •3.5 Представление данных в компьютере Представление целых чисел без знака и со знаком
- •Индикаторы переноса и переполнения
- •Представление символьной информации в эвм
- •Форматы данных
- •Контрольные вопросы
- •4. Прикладная информатика
- •4.1 Информационные категории
- •4.2 Автоматизация деятельности на основе алгоритмизации
- •4.3 Методы автоматизации бизнес-процессов
- •4.4 Базовые понятия и технологии управления данными
- •4.5 Базовые сведения о компьютерной графике и геометрии
- •Способ хранения изображения
- •Фундаментальные недостаткивекторной графики
- •4.6 Введение в информационную безопасность
- •Электронная цифровая подпись: алгоритмы, открытый и секретный ключи, сертификаты
- •Контрольные вопросы
- •5. Программно-аппаратные средства реализации информационных процессов
- •5.1 Операционные системы
- •Классификация ос
- •5.2 Файловые системы
- •Имена файлов
- •Типы файлов
- •Физическая организация и адрес файла
- •Права доступа к файлу
- •Кэширование диска
- •Общая модель файловой системы
- •Отображаемые в память файлы
- •Современные архитектуры файловых систем
- •5.3 Принципы организации эвм
- •Функционирование эвм с шинной организацией
- •Функционирование эвм с канальной организацией
- •5.4 Сетевые технологии обработки данных
- •Понятие локальной вычислительной сети
- •Базовая модель osi (Open System Interconnection)
- •Архитектура лвс
- •Топологии вычислительной сети
- •Сетевые устройства и средства коммуникаций
- •Виды используемых кабелей и сетевого оборудования
- •Типы построения сетей по методам передачи информации
- •5.5 Сеть internet
- •Контрольные вопросы
- •Заключение
- •Список использованных источников
- •Приложение
- •Память эвм
2.7 Жизненный цикл программного обеспечения
Жизненный цикл программного обеспечения включает в себя шесть этапов:
анализ требований,
определение спецификаций,
проектирование,
кодирование,
тестирование,
сопровождение.
Рассмотрим их.
Анализ требований. При разработке программного обеспечения он исключительно важен. Ошибки, допущенные на этом этапе, даже при условии безупречного выполнения последующих этапов могут привести к тому, что разработанный программный продукт не будет соответствовать требованиям практики, сферы его применения. Для создания конкурентоспособных продуктов в ходе выполнения этого этапа должны быть получены четкие ответы на следующие вопросы:
Что должна делать программа?
В чем состоят реальные проблемы, разрешению которых она должна способствовать?
Что представляют собой входные данные?
Какими должны быть выходные данные?
Какими ресурсами располагает проектировщик?
Определение спецификаций. В определенной степени этот этап можно рассматривать как формулировку выводов, следующих из результатов предыдущего этапа. Требования к программе должны быть представлены в виде ряда спецификаций, явно определяющих рабочие характеристики будущей программы. В число таких характеристик могут входить скорость выполнения, объем потребляемой памяти, гибкость применения и др.
Проектирование. На этом этапе создается общая структура программы, которая должна удовлетворять спецификациям; определяются общие принципы управления и взаимодействия между различными компонентами программы.
Кодирование. Заключается в переводе на язык программирования конструкций, записанных на языке проектирования.
Тестирование. На этом этапе производится всесторонняя проверка программ. Тестирование более подробно рассмотрено ниже.
Сопровождение. Это этап эксплуатации системы. Каким бы изощренным не было тестирование программ, к сожалению, в больших программных комплексах чрезвычайно тяжело устранить абсолютно все ошибки. Устранение обнаруженных при эксплуатации ошибок - первейшая задача этого этапа. Однако это далеко не все, что выполняется при сопровождении. Выполняемый в ходе сопровождения анализ опыта эксплуатации программы позволяет обнаруживать «узкие места» или неудачные проектные решения в тех или иных частях программного комплекса. В результате такого анализа может быть принято решение о проведении работ по совершенствованию разработанной системы. Кроме описанного выше, сопровождение может включать в себя проведение консультаций, обучение пользователей системы, оперативное снабжение пользователей информацией о новых версиях системы и т.п. Качественное проведение этапа сопровождения в большой степени определяет коммерческий успех программного продукта.
Рассмотрим этап тестирования программ более подробно. Существуют три аспекта проверки программы на:
правильность;
эффективность реализации;
вычислительную сложность.
Проверка правильности удостоверяет, что программа делает в точности то, для чего она была предназначена. Математическая безупречность алгоритма не гарантирует правильности его перевода в программу. Аналогично, ни отсутствие диагностических сообщений компилятора, ни разумный вид получаемых результатов не дают достаточной гарантии правильности программы. Как правило, проверка правильности заключается в разработке и проведении набора тестов. Кроме этого, для расчета программ иногда можно сверить получаемые решения с уже известным решением. Таким образом, нельзя дать общего решения для проведения проверки на правильность программы.
Проверка вычислительной сложности, как правило, заключается в экспериментальном анализе сложности алгоритма или экспериментальном сравнении двух алгоритмов и более, решающих одну и ту же задачу.
Проверка эффективности реализации направлена на отыскание способа заставить правильную программу работать быстрее или расходовать меньше памяти. Чтобы улучшить программу, пересматриваются результаты реализации в процессе построения алгоритма. Не рассматривая все возможные варианты и направления оптимизации программ, приведем здесь некоторые полезные способы, направленные на увеличение скорости выполнения программ.
Первый способ основан на следующем правиле. Сложение и вычитание выполняются быстрее, чем умножение и деление. Целочисленная арифметика быстрее арифметики вещественных чисел. Таким образом, Х+Х лучше, чем 2Х, а i+0,5j хуже, чем (2i+j)0,5 или (i+i+j) 0,5. При выполнении операций над целыми числами следует помнить, что благодаря применению двоичной системы счисления умножение на числа, кратные двум, можно заменить соответствующим количеством сдвигов влево. Второй способ заключается в удалении избыточных вычислений.
Третий способ проверки эффективности реализации основан на способности некоторых компиляторов строить коды для вычисления логических выражений так, что вычисления прекращаются, если результат становится очевидным. Например, в выражении A or В or С, если А имеет значение «истина», то переменные В и С уже не проверяются. Таким образом, можно сэкономить время, разместив переменные А, В, С так, чтобы первой стояла переменная, которая вероятнее всего будет истинной, а последней та, которая реже всего принимает истинное значение.
Четвертый прием - исключение циклов.
Пятый прием - развертывание циклов.
Это далеко не полный перечень способов оптимизации. Здесь приведены лишь самые очевидные из них. Следует, кроме того, заметить, что не всегда стоит увлекаться погоней за быстродействием, так как при этом чаще всего ухудшается удобочитаемость программ. В том случае, когда выигрыш получается «мизерный», вряд ли стоит предпочитать его ясности и читабельности программы.