Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛекцииЯзыки прогрИб.doc
Скачиваний:
27
Добавлен:
12.11.2019
Размер:
922.11 Кб
Скачать

Тема 2. Жизненный цикл программы и основные

этапы решения задач на ЭВМ

2.1. Дружественность, жизненный цикл программы

Дружественность – это обеспечение дружественного интерфейса для работы пользователя;

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

Описание структуры жизненного цикла программного обеспечения и состав его процессов регламентируется международным стандартом ISO/IEC 12207: 1995 “Information Technologe – Software Life Cycle Processes” («Информационные технологии – Процессы жизненного цикла программного обеспечения»). Согласно стандарту процесс разработки программного обеспечения предусматривает 13 действий от подготовительной работы до приемки программного обеспечения.

Можно выделить следующие укрупненные этапы разработки программного обеспечения с учетом соответствующих стадий разработки по ГОСТ 19.102-77:

  • постановка задачи (стадия «Техническое задание»);

  • определение спецификаций (стадия «Эскизный проект»);

  • проектирование (стадия «Технический проект»);

  • реализация (стадия «Рабочий проект»).

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

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

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

Проектирование – это процесс разработки структурной схемы программного обеспечения с проектированием компонентов и их взаимосвязей.

Реализация – это процесс программирования компонентов программного обеспечения на выбранном языке программирования, их тестирования и отладки.

Рассмотрим эволюцию моделей жизненного цикла программного обеспечения.

На протяжении последних 30 лет в программировании сменились 3 модели жизненного цикла программного обеспечения:

  • каскадная модель;

  • модель с промежуточным контролем;

  • спиральная модель.

Каскадная модель предполагает переход на следующий этап после завершений всех операций предыдущего этапа. Достоинства модели заключаются в следующем:

  • получение после этапа законченного набора проектной документации без возврата на предыдущие этапы;

  • простота планирования процесса разработки программного обеспечения.

Однако, данная модель приемлема только к созданию систем, для которых точно и полно сформулированы все требования. Такие разработки встречаются редко. Необходимость возвратов на предыдущие этапы обусловлена следующими причинами:

  • неточные спецификации, уточнение которых требует пересмотра предыдущих решений;

  • изменения требований заказчика;

  • моральное устаревание технических и программных средств.

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

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

Достоинства спиральной модели заключаются в следующем:

  • программный продукт может поставляться пользователю с первой версии;

  • сокращение времени появления первых версий программного продукта;

  • быстрое продвижение следующих версий продукта на рынке;

  • ускорение уточнений спецификаций за счет появления практики использования продукта;

  • уменьшение вероятности морального устаревания системы за время разработки.