- •Введение в программирование и основы алгоритмизации
- •1.2. Понятие "правильной" программы
- •1.3. Надежность программного средства
- •1.4. Технология программирования как разработка надежных пс
- •1.5. Информатизация общества
- •Тема 2 источники ошибок в программных средствах
- •2.1. Интеллектуальные возможности человека
- •2.2. Неправильный перевод как причина ошибок в пс
- •2.3. Модель перевода
- •На каждом из этих шагов человек может совершить ошибку разной природы.
- •2.4. Основные пути борьбы с ошибками
- •Тема 3 общие принципы разработки программных средств
- •3.1. Специфика разработки пс
- •3.2. Жизненный цикл пс
- •3.3. Понятие качества пс
- •3.4. Внешнего описания и его роль в обеспечении качества пс
- •3.5. Обеспечение надежности – основной мотив разработки пс
- •3.5. Борьба со сложностью систем и обеспечение точности перевода
- •Тема 4 разработка структуры программы. Модульное и объектно-ориентированное программирование
- •4.1. Цель модульного программирования
- •4.2. Основные характеристики программного модуля
- •4.3. Методы разработки структуры программы
- •4.4. Объектно-ориентированное программирование
- •4.5. События и событийная модель
- •Тема 5 Алгоритмизация и разработка программного модуля
- •5.1. Определение алгоритма
- •Алгоритмизация - техника составления алгоритмов и программ для решения задач на эвм.
- •5.2. Изобразительные средства описания алгоритмов
- •5.3. Блок-схемы алгоритмов. Графические символы
- •5.4. Порядок разработки программного модуля
- •5.5. Структурное программирование
- •5.6. Пошаговая детализация и понятие о псевдокоде
- •Тема 6 тестирование и отладка программного средства
- •6.1. Основные понятия
- •6.2. Принципы и виды отладки пс
- •6.3. Заповеди отладки пс
- •6.4. Автономная отладка пс
- •Тема 7 Методы разработки алгоритмов
- •7.1. Метод частных целей
- •7.2. Метод подъема
- •7.3. Программирование с отходом назад
- •Тема 8 Алгоритмы сортировки
- •8.1. Сортировка. Основные понятия
- •8.2. Пузырьковая сортировка
- •8.3. Сортировка с помощью дерева
- •8.4. Пирамидальная сортировка
- •8.5. Быстрая сортировка
- •Тема 9 Алгоритмы поиска и перебора
- •9.1. Поиск. Основные понятия
- •9.2. Бинарный поиск
- •9.3. Поиск в сети
- •Тема 10 Событийно-управляемое программирование на языке Visual Basic
- •10.1. Историческая справка
- •10.2. Основы Visual Basic
- •Среда Windows: окна, события, сообщения
- •Интерактивная разработка
- •Интегрированная среда разработки
- •10.3. Формы и элементы управления
- •Разработка и установка свойств формы
- •События и методы формы
- •Кнопки управления как основа выполнения действий
- •10.4. Элементы управления пользователя
- •Флажки и переключатели
- •Другие стандартные элементы управления
- •10.5. Фокус. Последовательность переходов. Меню Фокус
- •Основы меню
- •Контекстные меню
- •Редактор меню
- •Подсказки пользователю с помощью диалога
- •Тема 11 Управление проектами
- •11.1. Работа с проектом и его структура
- •11.2. Работа с несколькими проектами
- •11.4. Установка параметров проекта
- •11.5. Дополнения и мастера
- •Тема 12 Управляющие конструкции
- •12.1. Конструкции принятия решения (ветвление)
- •12.2. Циклы
- •12.3. Работа со структурами управления и досрочный выход из них
- •Тема 13 Структура приложения. Техника написания кода
- •13.1. Структура приложения
- •13.2. Как работает событийное приложение
- •13.3. До начала кодирования
- •13.4. Техника написания кода
- •13.5. Автоматизация написания программы
1.2. Понятие "правильной" программы
Продуктом технологии программирования (ТП) является программное средство, которое в рамках составляющих его программ выполняет возложенные на него задачи и функции. Здесь под программой часто понимают "правильную" программу, т.е. программу без ошибок. Однако понятие ошибки трактуется неоднозначно. Будем считать, что в программе имеется ошибка, если она не выполняет того, что разумно ожидать от нее пользователю. Разумное ожидание пользователя формируется на основании изучения неформальной программной документации. Следовательно, и понятие ошибки не формально. В ПС программы и документация взаимно увязаны, т.е. образуют некоторую общность. Поэтому правильнее говорить об ошибке в ПС. Будем считать, что в ПС имеется ошибка, если оно не отвечает разумному ожиданию пользователя. В частности, разновидностью ошибки является несогласованность между программами и документацией по их применению. Частным случаем ошибки является так называемый дефект программы, когда программа не соответствует своей функциональной спецификации, разрабатываемой на подготовительном этапе. Здесь следует иметь в виду, что причиной ошибки может оказаться сама функциональная спецификация, а не программа.
ВЫВОД. Так как задание на разработку программного средства неформально, вследствие чего и понятие ошибки не формализовано, то нельзя доказать математически (формальными методами) правильность ПС. Тестирование также не доказывает его правильность, а только демонстрирует наличие в нем ошибки. Поэтому понятие "правильной" программы неконструктивно, поскольку нет возможности доказать ее "правильность".
1.3. Надежность программного средства
Альтернативой "правильной" программы является надежное ПС. Надежность ПС это его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью. При этом под отказом в ПС понимают любое проявление в нем ошибки. Надежное ПС не исключает наличия ошибок важно, чтобы эти ошибки при практическом применении средства в заданных условиях проявлялись достаточно редко. Убедиться, что ПС обладает таким свойством, можно посредством тестирования, а также в ходе его эксплуатации. Таким образом, разрабатывать можно надежные, а не "правильные" ПС.
ПС обладает степенью надежности. Степень надежности характеризуется вероятностью работы без отказа в течение определенного периода времени. Однако в силу специфических особенностей ПС определить эту вероятность затруднительно по сравнению с решением этой задачи в технических отраслях знания. При оценке степени надежности следует учитывать последствия каждого отказа. Некоторые ошибки в ПС вызывают лишь отдельные неудобства в ходе эксплуатации, тогда как другие могут иметь катастрофические последствия, например, угрожать человеческой жизни. Поэтому для оценки надежности ПС иногда используют дополнительные показатели, учитывающие стоимость (вред) для пользователя каждого отказа.
1.4. Технология программирования как разработка надежных пс
Под технологией программирования (ТП) понимается совокупность производственных процессов, приводящих к созданию ПС, а также описание этой совокупности процессов. В широком смысле - это технология разработки программных средств, включающая все процессы, начиная с момента зарождения идеи и кончая созданием программной документации. Каждый процесс этой совокупности базируется на использовании каких-либо методов и средств, например, компьютер. В этом случае говорят о компьютерной ТП. Близко к понятию ТП понятие программной инженерии, которая определяется как системный подход к разработке, эксплуатации, сопровождению и изъятию из обращения ПС. Главное различие между ТП и программной инженерией заключается в способе рассмотрения и систематизации материала. В ТП акцент делается на изучении процессов разработки ПС (технологических процессах) и порядке их прохождения. В программной инженерии изучаются методы и инструментальные средства разработки ПС, но с точки зрения достижения определенных целей.
ВЫВОД. В силу этих определений технология программирования концентрируется на изучении технологических процессов, приводящих к решению отдельной задачи или их взаимосвязанной совокупности, в то время как программная инженерия концентрируется на изучении общих методов и средств, определяющих жизненный цикл ПС с момента разработки до изъятия из обращения. В этом смысле программная инженерия и технология программирования соотносятся как общее и частное.
Следует различать технологию программирования и методологию программирования. В ТП методы рассматриваются с точки зрения организации технологических процессов - метод определяет технологию, а в методологии программирования - с точки зрения основ их построения, т.е. совокупности механизмов (программного инструментария), применяемых в процессе разработки программного обеспечения. Методология программирования отвечает на вопрос, как и посредством каких механизмов, программировать задачи, ТП - как создать надежное ПС и ввести его в эксплуатацию, а программная инженерия - как организовать и управлять жизненным циклом программ. В данном случае инженерия, технология и методология соотносятся как общее, особенное и частное. Поскольку надежность ПС является неотъемлемым его атрибутом, будем рассматривать ТП как технологию разработки надежных ПС. Это означает, что рассматривается весь процесс разработки ПС, начиная с возникновения замысла, в рамках которого изучаются вопросы построения программных конструкций, описания функций и принимаемых решений с точки зрения их неформального восприятия.