ОСНОВНЫЕ СВЕДЕНИЯ О ПРОГРАММИРОВАНИИ
Понятие «задача» применительно к программированию имеет более широкое значение, чем аналогичное понятие в математике, физике или химии. В программировании под задачей понимается получение требуемого результата с использованием средств программирования. Результатом решения задачи в программировании может быть окно на экране, графическая картинка (с движением и без), вывод результатов вычислений на экран или в отдельный файл, построение на экране таблиц и графиков и т. д. Решение задач на ПК — это совместная деятельность программиста и компьютера, при этом человек выполняет творческую часть работы (постановка задачи, составление последовательности шагов решения, создание программы), а компьютер обрабатывает информацию в соответствии с разработанной программой.
Основные этапы решения задач
Для решения любой задачи с помощью компьютера необходимо выполнить семь этапов:
- • постановка задачи;
- • математическое моделирование;
- • алгоритмизация задачи;
- • программирование;
- • ввод программы и исходных данных в компьютер;
- • тестирование и отладка программы;
- • исполнение отлаженной задачи и анализ результатов. Рассмотрим этапы решения на примере: пусть требуется вычислить сумму двух целых чисел.
Первый этап — постановка задачи, т. е. формулирование условий задачи на естественном (русском) языке.
Пример постановки задачи: Даны А, В. Найти их сумму.
Второй этап — математическое моделирование, т. е. определение математических формул, необходимых для решения задачи (в нашем случае ? = А + В).
Третий этап — алгоритмизация задачи. В общем случае программа решения задачи предназначена для обработки входных данных и получения выходных данных. Отсюда — в любой программе три основных компонента: входные данные, выходные данные, алгоритм обработки данных. Схематично процесс решения задачи представлен на рис. 1.1.
Входные данные (исх. данные)
Выходные данные (результат)
Рис. 1.1. Процесс решения задачи
В нашем примере входными данными являются целые числа А и В (их значения вводятся с клавиатуры), 5 — результат (выходные данные), который вычисляется в программе.
Этот этап является одним из важных этапов в решении задач, и он будет подробно рассмотрен в следующем параграфе.
Четвертый этап — программирование. Составление программы обеспечивает возможность выполнения алгоритма исполнителем-компьютером (соответственно решается поставленная задача). Для того чтобы компьютер выполнил решение какой-либо задачи, ему необходимо получить от человека инструкции, как ее решать. Набор таких инструкций для компьютера, направленный на решение конкретной задачи, называется компьютерной программой. Для написания программы и предназначены языки программирования (фиксированная система обозначений и правил для описания алгоритмов и структур данных). Например, языки программирования высокого уровня Бейсик, Ра8са1, С++ и т. д.
Пятый этап — ввод программы и исходных данных в компьютер.
Шестой этап — тестирование и отладка программы. На этом этапе исправляются ошибки и анализируется (тестируется) правильность работы программы (алгоритма).
Седьмой этап — исполнение отлаженной программы и анализ результатов.
Билет №14 Коллективная разработка программного обеспечения.
Организацию коллективного владения кодом иллюстрирует рисунок.
Коллективное владение кодом позволяет каждому разработчику выдвигать новые идеи в любой части проекта, изменять любую строку программы, добавлять функциональность, фиксировать ошибку и проводить реорганизацию. Один человек просто не в состоянии удержать в голове проект нетривиальной системы. Благодаря коллективному владению кодом снижается риск принятия неверного решения и устраняется нежелательная зависимость проекта от одного человека.
Работа начинается с создания тестов модуля, она должна предшествовать программированию модуля. Тесты необходимо помещать в библиотеку кодов вместе с кодом, который они тестируют. Тесты делают возможным коллективное создание кода и защищают код от неожиданных изменений. В случае обнаружения ошибки также создается тест, чтобы предотвратить ее повторное появление.
Кроме тестов модулей, создаются тесты приемки, они основываются на пользовательских историях. Эти тесты испытывают систему как «черный ящик» и ориентированы на требуемое поведение системы. На основе результатов тестирования разработчики включают в очередную итерацию работу над ошибками.
Все коды в проекте создаются парами программистов, работающими за одним компьютером. Парное программирование приводит к повышению качества без дополнительных затрат времени. А это, в свою очередь, уменьшает расходы на будущее сопровождение программной системы.
Во время очередной итерации всех сотрудников перемещают на новые участки работы. Такие перемещения помогают устранить изоляцию знаний.
Код нужно постоянно обновлять – удалять лишние части, убирать ненужную функциональность. Этот процесс называют реорганизацией кода. Реорганизация поддерживает прозрачность и целостность кода, обеспечивает его легкое понимание, исправление и расширение. На реорганизацию уходит значительно меньше времени, чем на сопровождение устаревшего кода.
Еще одна составляющая коллективного владения кодом – непрерывная интеграция. Без последовательной и частой интеграции результатов в систему разработчики могут быть уверены в правильности своих действий. Кроме того, трудно вовремя оценить качество выполненных фрагментов проекта и внести необходимые коррективы. По возможности разработчики должны интегрировать и публично отображать, демонстрировать код каждые несколько часов. Интеграция позволяет объединить усилия отдельных пар и стимулирует повторное использование кода.
Составление программной документации.
Составление программной документации – очень важный процесс.
К программным относят документов, содержащие сведения, необходимые для разработки, сопровождения и эксплуатации программного обеспечения. Документирование программного обеспечения осуществляется в соответствии с Единой системой программной документации (ГОСТ 19.ХХХХ). Так ГОСТ 19.101-77 устанавливает виды программных документов для программного обеспечения различных типов. Основные программные документы:
Спецификация должна содержать перечень и краткое описание назначения всех файлов программного обеспечения.
Ведомость держателей подлинников должна содержать список предприятий, на которых хранятся подлинники программных документов.
Те кст пр ограммы должен содержать текст программы с необходимыми комментариями.
Описание программы должно содержать сведения о логической структуре и функционировании программы.
Ведомость эксплуатационных документов должна содержать перечень эксплуатационных документов на программу.
Формуляр должен содержать основные характеристики программного обеспечения, комплектность и сведения об эксплуатации программы.
Описание применения должно содержать сведения о назначении программного обеспечения, области применения, применяемых методах, классе решаемых задач, ограничениях для применения, минимальной конфигурации технических средств.
Руководство системного программиста должно содержать сведения для проверки, обеспечения функционирования и настройки программы на условия конкретного применения.
Руководство программиста должно содержать сведения для эксплуатации программного обеспечения.
Описание языка должно содержать описание синтаксиса и семантики языка.
Руководство по техническому обслуживанию должно содержать сведения для применения текстовых и диагностических программ при обслуживании технических средств.
Программа и методика испытаний должны содержать требования, подлежащие проверке при испытании программного обеспечения, а также порядок и методы их контроля.
Пояснительная записка должна содержать информацию о структуре и конкретных компонентах программного обеспечения, в том числе схемы алгоритмов, их общее описание, а также обоснование принятых технических и технико – эк ономических решений