- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
2.3. Проектирование и реализация программы
Проектирование – это процесс разработки структурной схемы программного обеспечения с проектированием компонентов и их взаимосвязей. Тип модели программного обеспечения определяется выбранной технологией - методом программирования (процедурный, объектно-ориентированный, компонентный).
При процедурном подходе модель построения программного обеспечения – иерархия функций, т.е. декомпозиция программы по функциональному принципу.
Методы декомпозиции используют простые пользовательские интерфейсы: простое меню без иерархии команд, меню с иерархической структурой команд, и рассчитаны на проектирование структур данных и программ. Проектирование заключается в декомпозиции программного обеспечения методом пошаговой детализации. В результате декомпозиции получается структурная схема программы, представляющая собой многоуровневую, иерархическую схему взаимодействия подпрограмм по управлению.
Метод пошаговой детализации применяет нисходящую пошаговую разработку алгоритма, когда на каждом шаге происходит разложение функции на подфункции.
При объектно-ориентированном подходе модель построения программы – это иерархия классов, объектная декомпозиция. В результате декомпозиции получается структурная схема программы, представляющая собой многоуровневую, иерархическую схему взаимодействия классов. Следующий этап проектирования программного обеспечения заключается в разработке классов и их интерфейсов с описанием элементов-данных и элементов-функций каждого класса. Для проектирования пользовательских интерфейсов используются сложные интерфейсы: меню с иерархической структурой команд, свободная навигация, не привязанная к уровням иерархии (используется в Windows-приложениях).
Этапы проектирования программного обеспечения при объектно-ориентированном подходе принципиально отличаются от процедурного подхода, так как проектирование программы ведется в терминах (понятиях) прикладной области и отражает ее иерархию.
Реализация – это процесс программирования компонентов программного обеспечения на выбранном языке программирования, их тестирования и отладки.
При процедурном подходе реализация заключается в программировании функций и файлов (модулей) с использованием методов структурного программирования функций и программирования "сверху-вниз" ("top-down").
Этап программирования задачи выполняется в следующей последовательности:
- программирование функций верхнего уровня схемы;
- программирование функций нижнего уровня схемы и т.д.
При программировании и отладке функций верхнего уровня функции нижнего уровня, текста которых еще нет, имитируются "заглушками", т.е. выводом сообщений о вызове этих функций.
При объектно-ориентированном подходе этап реализации заключается в программировании элементов-функций целых взаимосвязанных классов, начиная с базовых классов.
Тестирование и отладка являются завершающими этапами процесса реализации программного обеспечения. Тестирование позволяет обнаружить ошибки, а отладка – их исправить.
В соответствии с этапами обработки программы (компиляция, компоновка, выполнение) различают следующие группы ошибок:
синтаксические ошибки, обнаруживаемые компилятором при синтаксическом и семантическом анализе программы;
ошибки компоновки, фиксируемые компоновщиком (редактором связей) при объединении модулей программы;
ошибки выполнения, обнаруживаемые операционной системой или пользователем при выполнении программы.
Из всех групп ошибок самыми сложными для тестирования и отладки являются ошибки выполнения программы, а среди них - логические ошибки, имеющие непредсказуемые причины. Так причинами могут быть ошибки при проектировании программы, разработке алгоритмов, определении структуры данных.
Тестирование – это процесс выполнения программы на тестовых наборах с целью обнаружения ошибок, допущенных при реализации программы. Согласно рекомендациям Microsoft, различают следующие стадии тестирования:
модульное тестирование, проверяющее небольшие, отдельные части программы – циклы, блоки, подпрограммы;
компоновочное тестирование, проверяющее следующий уровень – программные файлы (модули), объединение, взаимодействие отдельных частей программы;
системное тестирование, проверяющее полную версию программы, взаимодействие с операционной системой;
стресс-тестирование, изучающее работу программы при ограниченных системных ресурсах;
бета-тестирование, позволяющее узнать мнение специалистов-пользователей;
тестирование-приемка пользователями в реальных условиях.
Тестовый набор должен содержать для каждого теста: описание тестируемого элемента, цель и инструкция проведения теста, исходные данные и ожидаемые результаты, описание среды тестирования и др.
Отладка – это процесс поиска и исправления ошибок, обнаруженных при тестировании программы. Имеются методы отладки программного обеспечения, основанные на анализе текста программы и результатов тестирования без дополнительной информации. Например, метод индукции включает следующие процессы отладки: выявление симптомов ошибки, изучение фрагмента программы, выдвижение гипотезы об ошибке, проверка гипотезы и при необходимости выдвижение новой гипотезы, нахождение ошибки.
Имеются методы отладки, позволяющие получать дополнительную информацию об ошибке и облегчающие процесс поиска и исправления ошибки. К ним относятся метод отладочного вывода и интегрированные средства отладки. Метод отладочного вывода заключается в добавлении в программу дополнительного отладочного вывода в узловых точках. Но безусловно наиболее эффективными методами являются интегрированные средства отладки, имеющиеся в современных средах программирования (Visual C++, Visual Basic фирмы Microsoft, Delphi, Turbo C++, C++ Builder фирмы Borland). Например, отладчик Visual C++ встроен в среду Visual Studio, имеет свои меню и панели инструментов, позволяют выполнять следующие действия:
установка различных точек прерывания, связанных с кодом, с данными, с сообщением, условных точек прерывания;
выполнение программы до точки прерывания;
просмотр в 6 окнах отладчика информации о текущем состоянии программы при остановке программы в точке прерывания и при пошаговом выполнении;
пошаговое выполнение программы с заходом в функции и без захода;
выполнение программы до строки с курсором.