- •1.Технология программирования. Основные понятия и подходы 8
- •Технология программирования. Основные понятия и подходы
- •1.1. Технология программирования и основные этапы ее развития
- •1.2. Жизненный цикл и этапы разработки программного обеспечения
- •Контрольные вопросы
- •2.Разработкаструктуры программы и модульное программирование
- •2.1. Цель модульного программирования
- •2.2. Основные характеристики программного модуля
- •2.3. Методы разработки структуры программы
- •Контрольные вопросы
- •3.Тестирование и отладка программного средСтВа
- •3.1. Принципы и виды отладки программного средства
- •3.2. Заповеди отладки программного средства
- •3.3. Автономная отладка программного средства
- •3.3. Комплексная отладка программного средства
- •Контрольные вопросы
- •4. Обеспечение качества программного средства
- •4.1. Общая характеристика процесса обеспечения качества программного средства
- •4.2. Обеспечение легкости применения программного средства
- •4.3. Обеспечение эффективности программного средства
- •4.4. Обеспечение сопровождаемости программного средства
- •Контрольные вопросы
- •5. Документирование программных средств составление программной документации
- •5.1. Виды программных документов
- •5.2. Пояснительная записка
- •5.3. Руководство пользователя
- •5.4. Руководство системного программиста
- •5.5. Основные правила оформления программной документации
- •Контрольные вопросы
- •6. Объектный подход к разработке программных средств
- •6.1. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств
- •6.2. Особенности объектного подхода к разработке внешнего описания программного средства
- •6.3. Особенности объектного подхода на этапе конструирования программного средства
- •Контрольные вопросы
- •7. Постановка и алгоритмизация задач
- •7.1. Понятие алгоритма
- •7.2. Способы описания алгоритмов
- •Условные обозначения блоков
- •7.3. Структурные схемы алгоритмов
- •Контрольные вопросы
- •8. Основы языка
- •8.1. Алфавит языка
- •8.2. Структура программы
- •Контрольные вопросы
- •9. Типы данных
- •9.1. Целые типы
- •9.2. Вещественные типы
- •9.3. Логический тип
- •9.4. Символьный тип
- •9.5. Выражения
- •Арифметические операции
- •Операция отрицания
- •Операции конъюнкция, дизъюнкция, «исключающее» или
- •Приоритет операций
- •9.6. Константы
- •9.7. Совместимость типов данных
- •Контрольные вопросы
- •10. Линейные алгоритмы
- •10.1. Пустой и составной операторы
- •10.2. Оператор присваивания
- •10.3. Простейший ввод и вывод
- •Контрольные вопросы
- •11. Разветвляющиеся алгоритмы
- •11.1. Оператор перехода
- •11.2. Условный оператор
- •11.3. Оператор выбора
- •Контрольные вопросы
- •12. Циклические алгоритмы
- •12.1. Циклы с параметром
- •12.2. Циклы с условием
- •Контрольные вопросы
- •13. Пользовательские типы данных
- •13.1. Перечисляемый тип
- •13.2. Тип - диапазон
- •13.3. Массивы
- •13.4. Записи
- •13.5. Множества
- •Контрольные вопросы
- •14. Работа со строками
- •Контрольные вопросы
- •15. Процедуры и функции
- •15.1. Параметры-значения
- •15.2. Параметры-переменные
- •15.3. Параметры-константы
- •15.4. Открытые параметры-массивы
- •15.5. Бестиповые параметры
- •15.6. Процедурные типы
- •15.7. Рекурсия
- •Контрольные вопросы
- •16. Типизированные константы
- •Контрольные вопросы
- •17. Модули
- •Interface
- •Implementation
- •Interface
- •18.2. Поиск с барьером
- •83.3. Двоичный (бинарный) поиск
- •Контрольные вопросы
- •19. Алгоритмы сортировки
- •19.1. Сортировка выбором
- •19.2.Сортировка обменом (методом «пузырька»)
- •19.3. Сортировка включением
- •Контрольные вопросы
- •20. Файлы
- •20.1. Текстовые файлы
- •20.2. Компонентные файлы
- •20.3. Бестиповые файлы
- •20.4. Последовательный и прямой доступ
- •Контрольные вопросы
- •21.Программирование с использованием динамической памяти
- •21.1. Указатели и операции над ними
- •21.2. Процедуры и функции, работающие с указателями
- •Контрольные вопросы
- •22. Модуль crt (основные возможности)
- •Контрольные вопросы
- •22. Модуль graph (основные возможности)
- •22.1. Базовые процедуры и функции
- •22.2. Экран и окно в графическом режиме
- •22.3. Вывод точки
- •22.4. Вывод линии
- •22.5. Построение прямоугольников
- •22.6. Построение многоугольников
- •22.7. Построение дуг и окружностей
- •22.8. Работа с текстом
- •Контрольные вопросы
- •Заключение
- •Библиографический список
6.3. Особенности объектного подхода на этапе конструирования программного средства
На этапе конструирования при объектном подходе продолжается процесс объектного моделирования: уточняются модели, построенные на этапе внешнего описания, в терминах описания программных систем и производится дальнейшая декомпозиция объектов [11].
В процессе разработки объектной архитектуры ПС выделяются все объекты, с информационными моделями которых собирается непосредственно работать пользователь, и завершается их программная спецификация, а так же определяется их пользовательский интерфейс. Такие объекты мы будем называть пользовательскими. Классы таких объектов или отдельные активные объекты образуют архитектурные подсистемы. Определяется метод взаимодействия между этими подсистемами.
В случае использования активных объектов основным широким классом архитектур при объектном подходе является коллектив параллельно действующих программ, причем здесь роль программ выполняют как раз эти активные объекты. Типичной архитектурой такого класса является архитектура «клиент-сервер». В такой системе один из активных объектов, называемыйсервером, выполняет определенные программные услуги по запросам других активных объектов, называемыхклиентами. Такой запрос передается серверу с помощью сообщения от клиента, результат выполнения сервером запроса передаются соответствующему клиенту с помощью другого сообщения.
Дальнейшая разработка структуры программных подсистем и их кодирование на языках программирования может осуществляться уже в рамках реляционного подхода на ориентированных на него языках программирования [11] – пользователь внутреннюю организацию этих подсистем уже «не видит». Однако, во многих случаях существуют сильные аргументы за то, чтобы продолжить объектную декомпозицию этих подсистем. Объектная структура этих подсистем может быть существенно более понятной разработчику, чем их структура при реляционном подходе. Кроме того, продолжение объектной декомпозиции и использование основных понятий и методов объектного подхода при дальнейшей разработке ПС представляется «естественным», так как весь процесс разработки становится единообразным (концептуально целостным). При этом приходится использовать языки программирования уже другого типа – объектно-ориентированные [11]. Объекты, возникающие в программах при такой декомпозиции архитектурных подсистем, мы будем называтьобъектами процесса выполнения программ.
Контрольные вопросы
Назовите понятие объекта и отношения в программировании.
Укажите определение класса объекта.
Назовите сущность функционального подхода.
Сформулируйте сущность объектного подхода.
Перечислите категории объектов.
7. Постановка и алгоритмизация задач
7.1. Понятие алгоритма
Для составления программы, предназначенной для решения на ЭВМ какой-либо задачи, требуется составление алгоритма ее решения.
Алгоритм это точное предписание, которое определяет процесс, ведущий от исходных данных к требуемому конечному результату. Алгоритмами, например, являются правила сложения, умножения, решения алгебраических уравнений, умножения матриц и т.п. Слово алгоритм происходит от algoritmi, являющегося латинской транслитерацией арабского имени хорезмийского математика IX в. альХорезми. Благодаря латинскому переводу трактата альХорезми европейцы в XII в. познакомились с позиционной системой счисления, и в средневековой Европе алгоритмом называлась десятичная позиционная система счисления и правила счета в ней.
Применительно к ЭВМ алгоритм определяет вычислительный процесс, начинающийся с обработки некоторой совокупности возможных исходных данных и направленный на получение определенных этими исходными данными результатов. Термин вычислительный процесс распространяется и на обработку других видов информации, например, символьной, графической или звуковой.
Если вычислительный процесс заканчивается получением результатов, то говорят, что соответствующий алгоритм применим к рассматриваемой совокупности исходных данных. В противном случае говорят, что алгоритм неприменим к совокупности исходных данных. Любой применимый алгоритм обладает следующими основными свойствами:
результативностью;
определенностью;
массовостью;
дискретностью;
конечностью.
Результативность означает возможность получения результата после выполнения конечного количества операций.
Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств.
Массовость заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных.
Дискретность означает разбиение алгоритма на конечную последовательность действий или шагов при его выполнении.
Конечность означает то, что алгоритм должен выполняться за конечное время.
Для задания алгоритма необходимо описать следующие его элементы:
набор объектов, составляющих совокупность возможных исходных данных, промежуточных и конечных результатов;
правило начала;
правило непосредственной переработки информации (описание последовательности действий);
правило окончания;
правило извлечения результатов.
Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким исполнителем является ЭВМ. Для обеспечения возможности реализации на ЭВМ алгоритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования.
Таким образом, можно дать следующее определение программы.
Программа для ЭВМ представляет собой описание алгоритма и данных на некотором языке программирования, предназначенное для последующего автоматического выполнения.