Уровень систем программирования
Система программирования – это комплекс программ, обеспечивающий поддержание жизненного цикла программы в вычислительной системе.
Жизненный цикл программы в вычислительной системе состоит из четырех основных этапов:
Проектирование программного продукта. Результатом этапа проектирования является спецификация на создаваемую программную систему. Этот этап состоит из нескольких взаимосвязанных между собой стадий:
Исследование решаемой задачи – формулирование концептуальных требований к разрабатываемой программной системе.
Определение характеристик объектной ВС (ВС, на которой предполагается работа программной системы).
Построение модели функционирования автоматизированного объекта.
Определение характеристик инструментальной ВС (ВС, на которой будет вестись разработка программной системы).
Обдумывание алгоритмов, подбор инструментальных средств.
Априорная системная оценка ожидаемых результатов.
Кодирование (программная реализация). Построение кода на основании спецификаций при использовании языков программирования, трансляторов, средств для использования библиотек и средств для разработки программных продуктов. Результатом этапа кодирования являются исполняемые модули, объектные модули, исходные тексты программ и библиотеки. Средства для разработки программных продуктов включают:
Средства автоматизации контроля использования межмодульных интерфейсов, которые обеспечивают контроль за правильностью использования в программе классификаций, регламентирующих межмодульные связи: количество параметров, типы параметров права доступа к параметрам и т.д.
Средства автоматизации получения объектных и исполняемых модулей программы, обеспечивающие автоматический контроль за соответствием исходных модулей объектным и исполняемым модулям, т.е. предусматривается возможность последующего редактирования исходных модулей. Эти средства, в частности, следят, чтобы объектные и исполняемые модули находились в адекватном состоянии. Говорят, что объектный/исполняемый модуль находится в адекватном состоянии, если дата его создания позже даты изменения любого файла, от которого он зависит (для объектного модуля это соответствующие ему файлы с исходным кодом, для исполняемого модуля - соответствующие ему объектные модули). Пример: утилита make.
Системы поддержки версий, т.е. системы, которые позволяют фиксировать состояние проекта в виде некоторых версий, а также протоколировать все изменения исходных модулей и при необходимости осуществлять возврат к предыдущим версиям.
Средства поддержки коллективной работы.
Тестирование и отладка. Тестирование – проверка программы на тестовых нагрузках. Тест – заранее определенные входные данные. Тестовое покрытие – минимальный набор тестов, наиболее полно проверяющих программу. Отладка – процесс поиска, локализации и исправления зафиксированных при тестировании ошибок.
Внедрение и сопровождение. Внедрение – установка программного комплекса на объектную вычыслительную систему и его первичная настройка. Сопровождение – исправление недочетов разработки и внедрения программного комплекса (например, выпуск патчей). Включает следующий набор требований:
Подготовка документации, иногда автоматической или автоматизированной
Возможность сбора так называемых логов по функционированию программы или параметров функционирования программы для того, чтобы можно было анализировать как характеристики эксплуатации так возникающие внештатные ситуации и т.д . и т.п.
Последний этап предъявляет программному продукту целый ряд специфических требований. Этапы жизненного цикла программы могут комбинироваться.
Среди современных технологий разработки программного обеспечения можно выделить каскадную модель, каскадную итерационную модель и спиральную модель, см. модели разработки программного обеспечения.
Система программирования – это комплекс программ, обеспечивающий поддержание жизненного цикла программы в вычислительной системе.
С 90-х годов 20 века по настоящее время появляются промышленные средства автоматизации проектирования программного обеспечения, средств CASE (Computer-Aided Software/System Engineering), унифицированного языка моделирования UML (Unified Modeling Language). Системы программирования – интегрированные системы.
Уровень прикладных систем
Прикладная система – программная система, ориентированная на решение или автоматизацию решения задач из конкретной предметной области.