Архив метки: жизненный цикл

Лекция 15. Эволюция ПО

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

Существует несколько причин, по которым эволюция ПО объективно необходима:

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

Презентация: Лекция 15.

Continue reading

Лекция 14. Верификация и валидация

Верификация и валидация — два связанных процесса разработки ПО. Верификация отвечает на вопрос «Правильно ли разрабатывается продукт?» (Are we building the product right?); валидация — на вопрос «Правильный ли продукт разрабатывается?» (Are we building the right product?). Верификация проверяет ПО на соответствие спецификациям, заданным при проектировании; валидация проверяет, соответствует ли продукт ожиданиям заказчика и потребителей. Исходя из определения, тестирование — частный случай валидации.

Презентация: Лекция 14.

Continue reading

Лекция 13. Тестирование ПО

Тестирование — один из основных этапов разработки ПО, решающий две задачи:

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

В рамках классических моделей жизненного цикла тестирование следует за конструированием. В более современных подходах (например, в гибкой методологии разработки) тестирование происходит одновременно с конструированием; оно помогает уточнить и/или выявить требования к программной системе. Существует даже подход к разработке ПО, при котором тесты пишутся до (а не после) основного кода — test-driven development.

Презентация: Лекция 13.

Continue reading

Лекция 7. Моделирование ПО

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

Презентация: Лекция 7.

Continue reading

Лекция 6. Инженерия требований

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

Презентация: Лекция 6.

Continue reading

Лекция 5. Жизненный цикл ПО

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

Презентация: Лекция 5.

Continue reading