Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЭИС(готово).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
10 Мб
Скачать
☆

1. Программная инженерия (software engineering) - совокупность инженерных методов и средств создания ПО. Фундаментальная идея программной инженерии: проектирование ПО является формальным процессом, который можно изучать и совершенствовать.

Этапы становления и развития программной инженерии:

      • 70-е и 80-е годы - систематизация и стандартизация процессов создания ПО (на основе структурного подхода)

      • 90-е годы – начало перехода к сборочному, индустриальному способу создания ПО (на основе объектно-ориентированного подхода)

Программная инженерия – способ гарантировать выполнение требований заказчика

        • Системы должны создаваться в короткие сроки и соответствовать требованиям заказчика на момент внедрения

        • Качество ПО должно быть высоким

        • Разработка ПО должна быть осуществлена в рамках выделенного бюджета

        • Системы должны работать на оборудовании заказчика, а также взаимодействовать с имеющимся ПО

        • Системы должны быть легко сопровождаемыми и масштабируемыми

Мировая статистика разработки проектов ПО (по данным отчета Standish Group – CHAOS Report)

1995

1996

1998

2000

31% аннулируются до завершения

40%

28%

23%

53% не укладываются в поставленные сроки, превышают запланированные расходы и не реализуют в полном объеме требуемые функции

33%

46%

49%

16% завершаются в срок

27%

26%

28%

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

  • Разработка ПО изначально является проектированием и не имеет признаков строительства или производства

  • Разработчики не строят ПО – они его проектируют

  • Конечный результат проектирования – код на языке высокого уровня – является чертежом ПО

Другие причины возможных неудач (по данным Standish Group и Rational Software)

  • нечеткая и неполная формулировка требований к ПО, недостаточное управление требованиями

  • частое изменение требований и спецификаций

  • недостаточное вовлечение пользователей в работу над проектом

  • отсутствие необходимых ресурсов

  • неудовлетворительное планирование

  • отсутствие грамотного управления проектом

  • недостаточная поддержка со стороны высшего руководства

  • высокая сложность создаваемых систем

  • нестабильная архитектура

  • недостаточное тестирование

  • новизна используемой технологии для организации

  • высокий риск, связанный с «каскадным» подходом

Одна из причин - экстремальные условия выполнения проектов:

    • план проекта сжат более чем наполовину по сравнению с нормальным расчетным планом

    • количество разработчиков уменьшено более чем наполовину по сравнению с действительно необходимым для проекта данного размера и масштаба

    • бюджет и связанные с ним ресурсы урезаны наполовину

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

Причины, порождающие экстремальные проекты

  • Политика

  • Высок. конкурен., порожденная глобализ-ей рынков

  • Высокая конкуренция, вызванная появлением новых технологий

  • Наивный оптимизм и менталитет первопроходцев

  • Сильное воздействие неожиданных правительственных решений

Причины участия в экстремальных проектах

  • Высокое вознаграждение

  • Синдром покорителей Эвереста

  • Угроза безработицы

  • Наивность и оптимизм молодости

  • Возможность сделать карьеру

  • Возможность победить бюрократию

  • Месть

2. Жизненный цикл по (software lifecycle):

период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации

Основной нормативный документ - стандарт ISO/IEC 12207: 1995 “Information Technology - Software Life Cycle Processes”

Положение дел в России:

      • ГОСТ ЕСПД (ГОСТ 19.ХХХ) - ориентированы на класс относительно простых программ небольшого объема, создаваемых отдельными программистами. Стандарты устарели концептуально и по форме, их сроки действия закончились и использование нецелесообразно

      • ГОСТ 34.601-90, ГОСТ 34.602-89, ГОСТ 34.603-92 - малопригодны для современных распределенных систем, функционирующих в неоднородной среде, отдельные положения устарели

      • ГОСТ Р ИСО/МЭК 12207-99 (перевод ISO 12207) - введен в действие в июле 2000 г.

3. Процессы жизненного цикла в различных стандартах

Процесс - совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные

  • Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами

  • Каждый процесс разделен на набор действий, каждое действие - на набор задач

  • Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения

Процесс разработки ПО

      • подготовительная работа

      • анализ требований к системе

      • проектирование архитектуры системы

      • анализ требований к ПО

      • проектирование архитектуры ПО

      • детальное проектирование ПО

      • кодирование и тестирование ПО

      • интеграция ПО

      • квалификационное тестирование ПО

      • интеграция системы

      • квалификационное тестирование системы

      • установка ПО

      • приемка ПО

Процесс сопровождения - внесение изменений в ПО с целью исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям

      • подготовительная работа

      • анализ проблем и запросов на модификацию ПО

      • модификация ПО

      • проверка и приемка в процессе сопровождения

      • перенос ПО в другую среду

      • снятие ПО с эксплуатации

Процесс управления конфигурацией (configuration management process) – процесс применения административных и технических процедур на всем протяжении ЖЦ ПО для определения состояния компонентов ПО в системе, управления модификациями ПО, описания и подготовки отчетов о состоянии компонентов ПО и запросов на модификацию, обеспечения полноты, совместимости и корректности компонентов ПО, управления хранением и поставкой ПО

Конфигурация ПО - совокупность его функциональных и физических характеристик, установленных в технической документации и реализованных в ПО Процесс управления конфигурацией включает: - идентификацию конфигурации; - контроль конфигурации; - учет состояния конфигурации; - оценку конфигурации; - управление выпуском и поставку

Процесс обеспечения качества (quality assurance process) – процесс обеспечения соответствующих гарантий того, что ПО и процессы его ЖЦ соответствуют заданным требованиям и утвержденным планам. Качество ПО - совокупность свойств, которые характеризуют способность ПО удовлетворять заданным требованиям

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

Процесс аттестации (validation process) – процесс определения полноты соответствия заданных требований и созданной системы или программного продукта их конкретному функциональному назначению. Аттестацией - подтверждение и оценка достоверности проведенного тестирования ПО

Процесс совместной оценки (joint review process) - предназначен для оценки состояния работ по проекту и ПО, создаваемого при выполнении данных работ (действий), сосредоточен на контроле планирования и управления ресурсами, персоналом, аппаратурой и инструментальными средствами проекта

Процесс инфраструктуры (infrastructure process) - выбор и поддержка технологии, стандартов и инструментальных средств, выбор и установка аппаратных и программных средств, используемых для разработки, эксплуатации и сопровождения ПО

Процесс усовершенствования (improvement process) - оценка, измерение, контроль и усовершенствование процессов ЖЦ ПО