Планирование работ по созданию программных средств для информационных технологий

_________________________________

Липаев В.В.



Исходные данные для планирования разработок ПС


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

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

обобщенные технико-экономические показатели (ТЭП) завершенных разработок ПС и оценки влияния на них различных факторов объекта и среды разработки;

трудоемкость, длительность и число специалистов на основных этапах разработки ПС различных по итогам предшествующих проектов;

реализованные и обобщенные (типовые) перечни выполненных работ и графики проведения разработок в составе жизненного цикла (ЖЦ) различных ПС;

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

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

В [1,2] опубликованы результаты анализа статистических данных о процессах и технико-экономических показателях разработки различных ПС. Отечественные данные [2] о характеристиках 250 проектов общим объемом более 16 млн. команд послужили базой методики и пакета программ для автоматизированного прогнозирования трудоемкости, длительности разработки и числа необходимых специалистов при создании ПС - ПРОТЭП [3]. Этот же пакет позволяет оценивать распределения показателей по основным этапам работ. Таким образом, создана отечественная статистическая база для укрупненного планирования и прогнозирования основных экономических характеристик разработки ПС.

На базе опубликованных моделей жизненного цикла и процессов разработки, поддержки эксплуатации и сопровождения ПС различной сложности и назначения [1, 4-8] ниже представлена обобщенная модель ЖЦ сложных, критических ПС реального времени (прил. 1). „

Модель предназначена для использования при составлении рабочих графиков, планировании и управлении различными программными проектами на разных стадиях их ЖЦ. Стадии ЖЦ существенно различаются между собой степенью определенности и прогнозируемости их характеристик, соответственно изменяются возможности подготовки и достоверность планов и графиков проведения работ. При подготовке планов конкретных проектов типовые графики могут уточняться с учетом особенностей объектов и среды разработки.


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


Представленный в прил. 1 ЖЦ ПС можно разделить на две части, существенно различающиеся особенностями процессов, технико-экономическими характеристиками и влияющими на них факторами. В первой части ЖЦ производятся системный анализ, проектирование, разработка, тестирование и испытания ПС (этапы 1-6 в прил. 1). Номенклатура работ, их трудоемкость, длительность и другие характеристики на этих этапах существенно зависят от объекта и среды разработки. Изучение подобных зависимостей для различных ПС позволяет прогнозировать состав и основные характеристики графиков работ для вновь создаваемых версий ПС, поэтому целесообразно выделить представительную выборку вариантов ПС, для которых разработать типовые перечни и графики работ.

Вторая часть ЖЦ, отражающая поддержку эксплуатации и сопровождения ПС (этапы 7 и 8 в прил. 1) относительно слабо связана с характеристиками объекта и среды разработки. Номенклатура работ на этих этапах более или менее стабильна, а их трудоемкость и длительность могут сильно варьироваться и зависят от тиража и массовости применения ПС. Успех ПС у пользователей и на рынке, а также процесс развития версий трудно предсказать, и он не связан непосредственно с параметрами ПС. Определяющими становятся потребительские характеристики и качество ПС, а их особенности с позиции разработчиков отходят на второй план. Вследствие этого в широких пределах изменяется трудоемкость и необходимое число специалистов, поддерживающих эти этапы,что затрудняет обобщение ТЭП различных проектов и прогнозирование на их основе аналогичных характеристик новой разработки. Поэтому графики работ на этих этапах имеют относительный характер общих взаимосвязей работ, которые требуют ручного распределения во времени, индивидуально для каждого проекта. В результате планирование трудоемкости, длительности и числа специалистов для этих этапов приходится производить итерационно на базе накопления опыта и анализа развития конкретных версий ПС.

Приведённые обстоятельства определили целесообразность сосредоточить внимание на планировании процессов первой части (этапы 1-6) ЖЦ ПС. Для этих процессов имеется возможность обобщения ТЭП, перечней и графиков выполнения работ, которые могут служить базой и прототипами для автоматизированного планирования новых проектов ПС. Однако и в этой части ЖЦ ПС различные этапы и частные работы существенно различаются предсказуемостью их трудоемкости, длительности и других ТЭП.

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

Значительно более достоверно возможно планирование работ после завершения системного анализа и формирования спецификации требований, технического задания и контракта на создание ПС. Для планирования конкретного графика работ при непосредственном проектировании, разработке и испытаниях ПС могут использоваться обобщенные значения ТЭП и их распределений по этапам работ, полученные при статистическом анализе совокупности реальных завершенных проектов [1, 2]. Подобные данные могут пересчитываться с учетом реальных характеристик объекта и среды разработки и использоваться в качестве прогнозов значений ТЭП для основных крупных этапов работ [3]. Используя прогнозируемые распределения этих показателей по этапам работ, можно приближенно оценить те же характеристики для частных работ на этих этапах. Для выполнения таких оценок можно использовать экспертные распределения доли каждой частной работы на соответствующем этапе и прогнозируемые значения трудоемкости, длительности и числа необходимых специалистов на данный этап. Таким образом может быть автоматизированно построен проект графика работ, охватывающий этапы от предварительного проектирования до завершения испытаний версии ПС.

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

При формировании базового обобщенного варианта важной задачей являлось выделение основных крупных этапов с достаточно завершенными и контролируемыми результатами, а также коррелированных с наиболее популярными моделями ЖЦ ПС [1, 4, 5, 8], поэтому, в частности, управление проектом и интегральные процессы, выделяемые в стандартах ЖЦ ПС [6,7] параллельно всем основным этапам разработки^ прил. 1 объединены с этими этапами.

Номенклатура частных работ внутри этапов сформирована с учетом их более или менее одинакового влияния на процесс создания ПС и его трудоемкость. Этот перечень работ в базовом варианте должен был охватывать практически все остальные варианты. Последовательность частных работ внутри этапов прил. X, в основном соответствует целесообразному и традиционному поряжу их начала. Однако значения их длительностей могут сильно различаться, поэтому при формировании реальных планов работ возможны изменения порядка начала их выполнения вследствие зависимости от завершения предшествующих работ. На этапах проектирования (этапы 2 и 3) и интеграции компонент (этап 5) значительная часть частных работ обусловлена процессами технологической поддержки разработки и гарантий качества. Эти работы целесообразно сгруппировать и упорядочить автономно (подэтапы 2.2,3.2,5.2) в соответствии с логикой их проведения, не связывая непосредственно с процессами разработки ПС (подэтапы 2.1,3.1,5.1).

Рассмотрим основные особенности этапов создания ПС, их технико-экономических показателей и состава частных работ исходного варианта ПС в прил 1. Для новых проектов этап системного анализа является одним из наименее определенных и трудно планируемых. Для этого этапа характерны три крупные группы работ: исследование и разработка концепций; анализ и разработка спецификаций требований; предварительное планирование технологической поддержки разработки ПС. Частные работы в этих группах имеют достаточно определенные взаимосвязи и последовательность, которые позволяют их представить упорядочение во времени. Однако трудоемкость и длительность каждой работы и их суммарные значения для всего этапа можно планировать только в тех случаях, когда имеются близкие прототипы данного проекта с аналогичными функциями. Для этого по завершенным прототипам должны быть собраны и обобщены ТЭП с учетом конкретных особенностей объектов и среды разработки. В результате для этапа системного анализа можно использовать обобщенную структуру и описание работ, которые требуют индивидуальной адаптации ТЭП для каждого конкретного проекта.

После создания концепций и спецификации требований возникает возможность более определенного выбора технологии и планирования процесса разработки ПС. При 1тредварительном и детальном проектировании уточняются и детализируются характеристики объекта и ($реды разработки ПС. Соответственно повышается достоверность исходных данных и графиков выполнения последующих работ. Частные работы на этих двух этапах в некоторой степени повторяются с соответствующей последовательной конкретизацией и уточнением. Вследствие этого при разработке упрощенных проектов ПС ряд работ может объединяться, так же как и эти два этапа в общий этап проектирования [8]. После завершения предварительного и детального проектирования целесообразно корректировать план разработки, оценки его ТЭП и условия контракта.

Далее, на этапе кодирования (программирования) компонент, отрабатываются и отлаживаются тексты программ и описания данных для модулей и функциональных групп (компонент) программ. При этом большое значение имеет использование готовых компонент из ранее разработанных и апробированных версий ПС. Если в базе данных проектирования имеется полный комплект таких компонент, то данный этап разработки практически может быть исключен. При создании информационных систем организационного назначения с использованием стандартизированных баз данных и средств пользовательского интерфейса может отсутствовать необходимость разработки оригинальных программных компонент и остальных работ данного этапа. Применение языков программирования четвертого поколения (4 GL) [8], сборочного программирования и повторно используемых компонент не только сокращает работы этапа кодирования, но может позволять исключить ряд работ этапов системного анализа, предварительного и детального проектирования. Объем таких сокращений зависит от степени архитектурной и функциональной преемственности создаваемой версии ПС с предшествующими апробированными версиями.

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

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


Варианты графиков разработки программных средств


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

На этапах создания версий ПС (этапы 1-6) на номенклатуру и ТЭП работ в наибольшей степени влияют следующие факторы [1,2,4]: класс создаваемой версии программного средства:

программы управления объектами или технологическими процессами в реальном времени (сложные, встроенные ПС [1]);

программы обработки больших объемов информации в организационных системах (сложные, не встроенные ПС [1]);

пакеты прикладных программ для решения частных инженерных научных задач (простые ПС);

объем программ, оформляемых как законченный программный продукт (менее 10 тыс. строк или более);

степень использования готовых программных и информационных компонент (менее или более 80 % или полностью из готовых компонент);

предполагаемый тираж версии ПС (единичный или массовый). Некоторые из перечисленных характеристик в значительной степени коррелированы. Это учитывалось для сокращения числа вариантов при формировании представительной выборки типовых перечней работ при создании современных проектов ПС. За основу принят вариант коллективной разработки наиболее сложного, критического ПС реального времени, не имеющего предшественников и прототипов (вариант 1). Для этого варианта в прил. 2 использован полностью перечень работ на этапах 1-6 из при. 1 с некоторым сокращением названий работ.

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

Создание первичных версий более простых ПС представлено вариантами 4,5,7, которые по номенклатуре работ не очень сильно отличаются от варианта 1. При наличии преемственности версий ПС возможно значительное упрощение этапов системного анализа и предварительного проектирования, а также процессов подготовки и обеспечения методами и средствами отладки и гарантии качества (вариант.2). В таких вариантах работы концентрируются на этапах детального проектирования, интеграции и испытаний версии ПС.

Еще большее сокращение объема работ, особенно по трудоемкости, происходит, когда имеется полный комплект готовых апробированных программных и информационных компонет (вариант 3 и 6). В этих вариантах исключается этап кодирования и отладки модулей и функциональных групп программ и полностью реализуется сборочное программирование. В предельном варианте 9 разработка версии ПС может быть сведена к созданию спецификаций требований, интеграции необходимого набора компонент, тестированию, испытаниям и документированию соответствующей версии ПС. Подобные варианты типовых графиков работ получают все большее распространение и при их конкретизации возможно дальнейшее сокращение номенклатуры необходимых работ и упрощение графика. Тем не менее и в этих случаях формализация графика может способствовать упорядочению работ, а также снижению их трудоемкости и длительности. Для них характерно менее полное документирование при разработке, относительно короткий ЖЦ и малый тираж ПС. Некоторое сокращение таких работ возможно для малотиражных ПС с редко меняющимися версиями. Для версий ПС, приобретающих широкое распространение, по мере увеличения тиража возрастает детализация работ, углубляется их содержание, а главное, увеличивается трудоемкость каждой. В прил. 2. не заполнен столбец варианта 10, который может быть использован читателем для создаваемого им варианта ПС.

Вариант 1. Первая версия сложного критического ПС реального времени объемом порядка 100 тыс. строк текста или более. Готовые программные компоненты практически отсутствуют, тираж десятки экземпляров, длительность жизни ПС может быть более 10 лет, смена версий через 1-3 года.

Вариант 2. Очередная версия сложного, критического ПС реального времени объемом порядка 100 тыс. строк текста или более. Готовые программные компоненты составляют более 80 % объема, тираж десятки экземпляров, смена версий через 1-3 года.

Вариант 3. Очередная версия сложного, критического ПС реального времени объемом порядка 100 тыс. строк текста или более. Готовые апробированные программные компоненты имеются полностью, смена версий через 1—3 года.

Вариант 4. Первая версия ПС реального времени объемом менее 10 тыс. строк текста. Готовые программные компоненты практически отсутствуют, тираж сотни экземпляров, длительность жизни ПС более 10 лет, смена версий через 1-3 года.

Вариант 5. Первая версия сложного ПС обработки информации в организационной системе объемом порядка 100 тыс. строк или более. Готовые программные и информационные компоненты составляют более 80 % объема, тираж - десятки экземпляров, смена версий через 1-3 года.

Вариант 6. Очередная версия сложного ПС обработки информации в организационной системе. Готовые программные компоненты имеются полностью, информационные компоненты на 80 % номенклатуры, тираж десятки экземпляров, смена версий через 1-3 года.

Вариант 7. Первая версия пакета прикладных программ для решения частных инженерных или научных задач объемом около 100 тыс. строк текста. Готовые программные и информационные компоненты более 50 % объема, тираж - единицы экземпляров.

Вариант 8. Первая версия пакета прикладных программ для решения частных инженерных или научных задач объемом около 10 тыс. строк текста. Готовые программные и информационные компоненты практически отсутствуют, тираж -единичный, версии маловероятны.

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

При детальном учете характеристик объекта и среды разработки каждый из приведенных вариантов может значительно изменяться по трудоемкости и длительности разработки ПС. Ориентиром различия их сложности, в некоторой степени, может служить суммарное число частных работ в выделенных вариантах (последняя строка прил. 2). Это число для предельных вариантов 1 и 9 различается почти в пять раз, однако для первых версий ПС (варианты 1, 4, 5, 7) менее чем в полтора раза. Наибольшим разнообразием работ для варианта 1 выделяются этапы системного анализа (20 работ), предварительного (22) и детального (15) проектирования, а также интеграции, комплексной отладки и предварительных испытаний ПС (18). Этапы кодирования и отладки компонент (8), а также испытаний ПС (7) функционально проще по существу (но не всегда по суммарной трудоемкости), что отразилось на сокращении числа наименований работ.

Во всех вариантах предполагается применение регламентированного технологического процесса, обеспечивающего высокое качество ПС. Такой процесс поддерживается CASE-средствами автоматизации разработки, которые целесообразно выбирать из имеющихся или создавать с учетом объекта разработки и адекватного ему перечня работ. Набор CASE-средств должен обеспечивать непрерывную автоматизацию всего процесса разработки без разрывов для значительных ручных операций. Использование подобных перечней работ для конкретных вариантов ПС позволяет выбирать и применять наиболее эффективные CASE-средства, ориентированные на конкретные цели автоматизации определенных частных работ.

ЛИТЕРАТУРА

1. Боэм Б. У. Инженерное проектирование программного обеспечения // Пер. с англ. Под ред. А. А. Красилова. М.: Радио и связь.1985.512 с

2. Липаев В. В., Потапов А. И. Оценка затрат на разработку программных средств. М.: Финансы и статистика. 1988.224 с

3. Липаев В. В., Гуляев Н. Б. Методы и средства автоматизации прогнозирования гехнико-экономических показателей разработки сложных программных комплексов. Программные продукты и системы. 1990. № 1. С. 69—75.

4. Гантер Р. Методы управления проектированием программного обеспечения. Пер. с англ. / Под ред. В. К. Масловского. М.: мир, 1981.

5. Boehm В. W. Understanding and controlling software cost Proceedings IFIP Congress 1986. North Holland, 1986. P. 703—714.

  1. ISO/IEC JTC1/SC7 К 801. ISO Standard for software life-cycle process (Project 7.21). 1990.
  2. IEEE STD P1074/D3X. IEEE Standard for software life-cycle process (Project). 1989.
  3. Stradis. Product description McDonnell Douglas Corporation. 1990.
Статья поступила в редакцию в июле 1991 г.

Российский научно-исследовательский институт информационных технологий и систем автоматизированного

проектирования



Приложение 1

Обобщенный перечень работ жизненного цикла сложных, критических ПС

1. Системный анализ ПС


2. Предварительное (эскизное) проектирование версии ПС

3.Детальное (техническое) проектирование версии ПС

4. Кодирование (программирование) и отладка компонент

5. Интеграция (комплексирование), комплексная отладка и предварительные

испытания версии программного средства

5.2. Планирование, технологическая поддержка и обеспечение гарантий качества и комплексной отладки версии программного средства

6. Испытания и документирование версии программного средства

7. Поддержка разработчиком процесса эксплуатации программного средства пользователями

8. Сопровождение версий программного средства





_______________________________________
В. В. Липаев - д-р техн. наук, профессор


© Информационное общество, 1991, вып. 4, с. 38-54.