Разработка программного обеспечения. Базовые понятия. Технологии разработки. Паттерны проектирования

Страницы работы

Фрагмент текста работы

Глава 3. Разработка ПО.

§3.1. Базовые понятия.

§3.1.1. Понятия, используемые в разработке ПО.

1. Программный продукт.

Программа — завершенное изделие, пригодное для запуска в подходящей вычислительной системе, и выполняющее заданные функции.

Программный комплекс — набор взаимодействующих программ, согласованных по интерфейсам (функциям и форматам), и составляющих в совокупности средство для решения заданного круга задач.

Программный продукт — программа или программный комплекс, предназначенный для передачи (на коммерческих или некоммерческих условиях) в эксплуатацию другим лицам. Программный продукт должен быть сопровожден подробной документацией.

Программное средство — это программа или логически связанная совокупность программ, снабженная документацией.

Программное обеспечение — совокупность программных средств, входящих в состав вычислительной системы.

2. Жизненный цикл ПО.

Жизненный цикл программного обеспечения — весь период его разработки и эксплуатации, начиная с момента возникновения замысла и заканчивая прекращением всех видов его использования.

Существует простейшее представление жизненного цикла, которое включает следующие стадии:

анализ требований;

проектирование;

программирование;

тестирование и отладка;

эксплуатация.

3. Проект.

Проект — это ориентированная на программный продукт совокупность действий разработчиков.

Большие проекты по возможности разбиваются на обособленные части, из которых выделить на три основные категории разработок.

Свойство программного продукта — архитектурный элемент, направленный на некоторый специфический аспект продукта. Свойство может быть реализовано в одном или нескольких компонентах.

Компонент — совокупность свойств. Обычно компонент предполагает значительность. Пример компонента — подсистема в текстовом редакторе для расстановки переносов в словах.

Продукт – совокупность компонентов, объединенная с целью решения определенных задач пользователя. Над продуктом работает команда разработчиков продукта.

§3.1.2.  Основные этапы разработки ПО.

Анализ требований — определение функционального наполнения программного продукта, требований к пользовательскому интерфейсу. Результат этапа — составление спецификации.

Спецификацией называется описание требуемой функциональности и свойств продукта, составленное в форме, позволяющей однозначно оценить, удовлетворяет ли созданный программный продукт выдвинутым требованиям.

Проектирование — определение структуры программы и интерфейсов взаимодействия модулей, выбор алгоритмов решения задач. При проектировании активно используется UML.

Программирование — написание программного кода, компиляция.

Тестирование и отладка — проверка соответствия результата спецификации.

Эксплуатация — передача продукта пользователю, сопровождение, развитие.

§3.2.  Технологии разработки.

3.2.1. Методологии программирования.

1) Императивное — пошаговое изменение состояния вычислителя. Архитектура фон Неймана. Языки: Fortran, Algol, Pascal, C.

2) Объектно-ориентированное. Методология основана на объектной декомпозиции (объекты, связи, сообщения). Основные принципы: инкапсуляция (сокрытие информации, комбинирование данных и функций), наследование (доступ к методам порождающих объектов), полиморфизм (одно имя для разных реализаций действия). C++, Object Pascal, Java, C#.

3) Функциональное — программа есть суперпозиция функций. Активно используется рекурсия. Язык  Lisp.

4) Логическое. Составляющие: факты, логические формулы, вывод. Язык Prolog.

3.2.2. Технологии программирования.

1. Технологические процессы.

Обычно выделяют следующие технологические процессы:

возникновение и исследование идеи;

управление;

анализ требований;

проектирование;

программирование;

тестирование и отладка;

ввод в действие;

эксплуатация и сопровождение;

завершение эксплуатации.

2. Технологии.

Технологии программирования различаются в способе организации данных процессов.

а) Классические.

Каскадный  подход предполагает последовательное выполнение процессов.

Каркасный  — присутствует более сложная структуризация процессов.

б) Формальные.

Примером формальных технологий является генетический подход — синтез программы по спецификации.

в) Гибкие.

Подходы быстрой разработки (кодирование и исправление).

Адаптивные, в частности, экстремальное программирование. Особенности данной технологии: детали реализации уточняются по ходу программирования; тесты пишутся до начала программирования и активно используются в ходе разработки.

Исследовательское программирование.

3.2.3. Тестирование.

1. Методы тестирования.

Функциональное (черного ящика) — методология тестирования, предлагающая абстрагироваться от внутренней структуры программы и воспринимать программу как отображение множества возможных значений входных данных (параметров) во множество возможных значений выходных данных. Тестовые данные подбираются

Структурное (белого ящика) — тесты строятся с учетом структуры программы, так чтобы проверить функционирование и взаимодействие всех частей.

2. Виды тестирования.

Тестирование различают по объему: процедур, модулей, подсистем, интеграционное.

Различают динамическое тестирование (т. е. на компьютере), которое может быть автоматическое и ручное, и статическое (анализ кода).

Похожие материалы

Информация о работе