Вы находитесь на странице: 1из 3

Метод Фейнмана предполагает следующий алгоритм решения

практических задач:
(i) Написать суть проблемы (ii) подумать над ней и (iii) написать пути
ее решения.
Разработка любого продукта представляет собой организованный
процесс, включающий следующие шаги:
- Планирование/составление системы требований.
- Проектирование.
- Кодирование.
- Оценка качества продукта.
Процесс разработки программного обеспечения также делится на
следующие шаги:
1 Планирование/составление технического задания:
- Утверждение сценариев использования и создание модели
предметной области.
2 Проектирование:
- Распределение ролей и установление динамики взаимодействия при
различных сценариях использования.
3 Кодирование:
- Кодирование проекта на языке программирования.
4 Тестирование:
- Тестирование отдельных объектов (объектное тестирование) и
системы в целом (системное тестирование).
5 Эксплуатация и техническая поддержка:
- Запуск системы.
- Исправление ошибок и добавление новых свойств.
Программная инженерия продолжает развиваться благодаря другим
дисциплинам, в которых перечисленные выше шаги проводятся
последовательно (по крайней мере, так считалось раньше). Данный метод
известен как каскадный процесс, поскольку разработчики создают
монолитные системы одним махом. Этот процесс требует наличие
минимально работающего образца на каждом этапе перед переходом к
следующему шагу. Проще говоря, данный подход подразумевает следующее:
необходимо закончить работу над чертежами, прежде чем переходить к
постройке; закончить постройку, прежде чем проверять ее на
звуконепроницаемость и т.д.
Однако со временем разработчики поняли, что разработка программного
обеспечения не похожа на разработку других продуктах в следующем:
- В отличие от других продуктов, программное обеспечение не
наглядное и его трудно визуализировать. Многие люди воспринимают
программное обеспечение посредством его функций: что требуется для
его работы и что появляется в результате.
- Программное обеспечение, вероятно, является наиболее сложным
артефактом – крупный программный продукт состоит из огромного
количества частей и деталей, каждая из которых играет важную роль:
один инвертированный бит может изменить всю программу.
- Программное обеспечение, наверное, наиболее гибкий артефакт: его
можно без особых усилий значительно изменить на любом этапе
разработки (по крайней мере, считается, что это так). Благодаря этому и
возникли инкрементальный и цикличный методы разработки.
Популярный инкрементальный и цикличный процесс называется Unified
Process (англ. унифицированный процесс).
Каждая итерация должна включать в себя более детальное изучение
дизайна. Инкрементный и итеративный процессы направлены на то, чтобы
как можно скорее перейти к рабочему экземпляру. Наличие доступного
рабочего экземпляра позволяет почувствовать что-то осязаемое, с чем можно
поработать и проанализировать. Благодаря этому могут обнаружиться
неожиданные проблемы, которые запускают новый виток разработки, в
котором используется наработанный опыт и имеющиеся знания о том,
которые не могли бы быть применимы для новых подходов. Это значительно
облегчает достижение понимания всеми сторонами в отношении того, что
необходимо разработать и чего ожидать после завершения работы. Итак,
ключ к инкрементным и итеративным методам заключается в постепенном
углублении понимания или «визуализации» целевого продукта, как
продвигаясь вперед, так и возвращаясь к более ранним действиям, чтобы
открыть больше возможностей продукта. Методы, которые еще более
агрессивны с точки зрения коротких итераций и интенсивного вовлечения
пользователей, характеризуются как гибкие.
Все процессы жизненного цикла преследуют цель постепенного
совершенствования дизайна продукта, но разные специалисты
придерживаются разных убеждений о том, как этого можно достичь. Так
было и раньше, и сейчас, и время от времени мы будем комментировать
различные подходы. Мы с энтузиазмом поддерживаем инкрементный и
итеративный подход, и в этом тексте описывается работа при помощи
инкрементного и итеративного способа, с помощью которого этапы
жизненного цикла программного обеспечения разрабатываются постепенно.
Каждую тему мы будем рассматривать лишь вскользь и двигаться дальше,
только чтобы вернуться позже и копнуть глубже.
Краткий обзор существующих учебников по разработке программного
обеспечения показывает, что разработка программного обеспечения в
значительной степени связана с управлением. Управление проектами требует
организационных и управленческих навыков, таких как определение и
организация множества задач, составляющих проект, распределение
ресурсов для выполнения этих задач и отслеживание фактического и
ожидаемого использования ресурсов.
Успешные программные проекты представляют собой сочетание
тщательной объективной оценки, упорной подготовки, постоянного
наблюдения и оценки окружающей среды и прогресса, а также
корректировки тактики работы.

Вам также может понравиться