Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АОПИ. Старое / АОПИ. Глава 1. Вопросы и ответы (01_04_19).rtf
Скачиваний:
82
Добавлен:
10.09.2019
Размер:
3.53 Mб
Скачать

Необходимость повторного использования кода

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

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

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

Функциональное программирование. Достоинства и недостатки

Достоинства:

  • Если имеется ошибка, то она исправляется однократно в теле той функции, где она возникла.

  • В тело функции можно добавлять локальные переменные, которые не будут конфликтовать с глобальными.

  • Уменьшение количества кода программы в целом, повышение удобочитаемости.

Недостатки:

  • Появляется необходимость контроля совместимости версий создаваемой системы и версий используемых библиотек. Самым характерным примером ошибки данного типа считается авария ракеты-носителя «Ариан-5», вызванная использованием программного модуля, разработанного для ракеты «Ариан-4».

  • Многие библиотеки коммерческие и требуют денежных затрат.

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

——————————————————————————

2 Вопрос. Этапы разработки программного обеспечения. Состав технического задания.

——————————————————————————

Модели процесса разработки программного обеспечения

1. Каскадная (водопадная) модель.

2. Итеративная модель (итерационная/инкрементная — почти одно и то же).

— 2.1 RUP (Rational Unified Process).

— 2.2 AGILE.

— 2.2.1 XP (Extreme Programming).

3. Спиральная модель.

Каскадная модель

(Waterfall — водопад)

1. Подготовка.

Сбор и обработка требований. Предварительное планирование этапов работ, сроков, ресурсов и стоимости.

2. Проектирование.

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

3. Реализация.

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

3.2 Кодирование — написание исходного кода.

3.3 Тестирование — проверка программы на соответствие всем предъявляемым к ней требованиям.

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

4. Поддержка.

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

4.2 Сопровождение — исправление выявленных ошибок, поддержка пользователей.

Когда используется?

  • Все требования известны, понятны и зафиксированы. Противоречивых требований не имеется.

  • Нет проблем с доступностью программистов нужной квалификации.

  • В относительно небольших проектах.