15 по-разному: в равных долях, с приоритетов задач, или же он может выполнять задачи последовательно [39, 50]. Неточность и неопределённость. Программные процессы не предопределены. Последовательность выполняемых шагов нельзя предсказать заранее: выбор альтернативных путей может быть сделан уже в ходе работы. Этот выбор зависит от результатов выполнения предыдущих шагов. Такие решения приходится принимать постоянно и в разном масштабе: от решения о повторном тестировании некоторой функции до решения о выпуске на рынок новой версии ПС. Причём причины, побудившие принять то или иное решение, не могут быть полностью описаны моделью программного процесса [39]. При некоторых ракурсах рассмотрения недетерминированный характер программных процессов может быть не очевидным. Простейшее представление каскадной модели полностью детерминировано и последовательно, если же добавить возвраты между фазами, сразу появляются и недетерминированность и параллельность. Те модели, в которых представляются различные роли в программном проекте или организации, ясно показывают параллельный характер процесса [39]. Ошибки, переработка и возникновение других нештатных ситуаций. Как и в других инженерных дисциплинах, при разработке ПС используются проверки, экспертизы, инспекции и другие методы обеспечения качества. В результате обнаруживаются ошибки в созданных продуктах, они исправляются, рассматриваются последствия этих ошибок, при этом часто приходится возвращаться на ранние шаги процесса. Таким образом, процесс, который на первый взгляд казался простым и линейным, в результате различных непредвиденных ситуаций становится более сложным. Развитие и изменение. Программный процесс, так же как и ПО, имеет свой жизненный цикл, в течение которого его приходится не раз менять по многим причинам. Опыт, полученный при выполнении процесса, ведёт к его улучшению. Появляются новые методы и средства, и процесс приходится менять, для того чтобы он соответствовал им. Могут измениться типы разрабатываемых ПС, опыт персонала и многое другое. Такими эволюционными изменениями необходимо управлять для того, чтобы переход к новому процессу произошёл в наиболее подходящее для этого время [39, 50]. |
26 Неточность и неопределённость. Программные процессы не предопределены. Последовательность выполняемых шагов нельзя предсказать заранее: выбор альтернативных путей может быть сделан уже в ходе работы. Этот выбор зависит от результатов выполнения предыдущих шагов. Такие решения приходится принимать постоянно и в разном масштабе: от решения о повторном тестировании некоторой функции до решения о выпуске на рынок новой версии ПС. Причём причины, побудившие принять то или иное решение, не могут быть полностью описаны моделью программные процессы [74]. При некоторых ракурсах рассмотрения недетерминированный характер программных процессов может быть не очевидным. Простейшее представление каскадной модели полностью детерминировано и последовательно, если же добавить возвраты между фазами, сразу появляются и недетерминированность и параллельность. Те модели, в которых представляются различные роли в программном проекте или организации, ясно показывают параллельный характер процесса [74]. i Ошибки, переработка и возникновение других нештатных ситуаций. Как и в других инженерных дисциплинах, при разработке ПО используются проверки, экспертизы, инспекции и другие методы обеспечения качества. В результате обнаруживаются ошибки в созданных продуктах, они исправляются, рассматриваются последствия этих ошибок, при этом часто приходится возвращаться на ранние шаги процесса. Таким образом, процесс, который на первый взгляд казался простым и линейным, в результате различных непредвиденных ситуаций становится более сложным. Язык для описания модели программных процессов должен давать возможность учитывать большинство таких непредвиденных ситуаций [74, 97]. Развитие и изменение. Программный процесс, так же как и ПО, имеет свой жизненный цикл, в течение которого его приходится не раз менять по многим причинам. Опыт, полученный при выполнении процесса, ведёт к его улучшению. Появляются новые методы и средства, и процесс приходится менять, для того чтобы он соответствовал им. Могут измениться типы разрабатываемых ПС, опыт персонала и многое другое. Такими 27 эволюционными изменениями необходимо управлять для того, чтобы переход к новому процессу произошёл в наиболее подходящее для этого время [74, 97]. Помимо эволюционных изменений в процессе возможны внезапные перемены, которые происходят ещё во время его выполнения. Такие изменения могут быть связаны, например, с тем, что кто-то из сотрудников не справился с непривычной для него работой, и её пришлось переделывать. В таких случаях возможны единовременные отклонения от определённого заранее процесса и поиск временного решения (например, передать плохо сделанную работу человеку, который не раз решал подобные задачи). Любые изменения в процесс должны вноситься очень аккуратно, тщательно проверяться и испытываться, прежде чем они будут распространены на все проекты [74,97]. 1.3.1. Цели моделирования процессов производства программного обеспечения Модели программных процессов являются основой для получения информации о процессах, их оценивания, выбора процесса из множества возможных процессов, проектирования новых процессов и улучшения существующих, адаптации и повторного использования процессов. Все эти действия служат трём основным целям: пониманию процесса, улучшению процесса, выполнению процесса [74]. Понимание процесса. Успешность сотрудничества людей, работающих совместно для достижения общей цели, зависит от единого понимания процессов, в которых они участвуют, и ролей (своей и других участников) в этих процессах. Разработчики не могут эффективно выполнять процессы, которых они не понимают, а менеджеры не могут эффективно управлять этими процессами. Моделирование процессов позволяет получить знания о них, лучше понять их структуру. Обучение позволяет распространить знания о процессах по всей организации. Общее понимание процессов необходимо и при совместной работе нескольких организаций [74, 97]. |