МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ
Институт Компьютерных ТехнологийКурсовая работаПо курсу: Предметно-ориентированные
экономические информационные системына тему:
«Технико-экономические показатели разработки
программных средств и их оценка»
Выполнил студент
группы ДКЕ-302:
Михайлов М.С.
Принял преподаватель:
Данелян Т.Я.
Москва, 2008 г.
Содержание:
Введение…………………………………………………………………………………………3
1.Понятие технико-экономического обоснования программного средства. Экономика жизненного цикла ПС…………………………………………………………………………..4
2. Цели и задачи технико-экономического анализа и обоснования комплекса программ...7
3. Прогнозирование технико-экономических характеристик ПС…………………………..11
4. Технико-экономические показатели и характеристики программного средства….……18
5. Оценка технико-экономических показателей ПС…………………………………………26
Заключение……………………………………………………………………………………..37
Список использованной литературы………………………………………………………... 38
Введение
Основной задачей, стоявшей передо мной, в ходе написания этой курсовой работы, я видел изучение целей и задач технико-экономического анализа и обоснования программных средств, а также анализ характеристик программных объектов и факторов, определяющих центральное звено мой курсовой работы – технико-экономические показатели (в дальнейшем - ТЭП) при разработке программных средств (ПС). Для этого я изучил предмет технико-экономического обоснования, ознакомился с экономикой жизненного цикла программных средств, определил цели технико-экономического анализа. Изучил вопрос прогнозирования технико-экономических характеристик программных средств, посредством ознакомления с: тремя классами методов прогнозирования; сформировавшимися видами исходных данных и группами данных о ТЭП для анализа показателей, а также, что немаловажно, рассмотрел основные методы прогнозирования технико-экономических характеристик ПС и классификацию оценочной деятельности и методы оценки технико-экономических показателей разрабатываемого программного продукта.
1.Понятие технико-экономического обоснования программного средства. Экономика жизненного цикла ПС.
Приступая к разработке крупных проектов, руководители, прежде всего, пытаются понять целесообразно ли их создание и оценить какова будет возможная эффективность применения готового продукта, оправдаются ли затраты на его разработку и использование. Поэтому такие проекты традиционно начинаются с анализа и разработки технико-экономического обоснования (ТЭО) предстоящего жизненного цикла (ЖЦ) проекта и эксплуатации предполагаемого продукта.
Заказчику проекта необходимо оценить реальную потребность в его создании и возможную конкурентоспособность, а потенциальному разработчику-поставщику создаваемого продукта, провести оценку реализуемости проекта в условиях и ресурсах, предлагаемых заказчиком. Должен быть подготовлен согласованный между заказчиком и разработчиком первичный документ, в котором определены цели и задачи проекта, предполагаемые характеристики продукта и необходимые ресурсы для его реализации. Эти данные должны быть предварительно сбалансированы обеспечивать реализацию целей проекта при выделенных ресурсах с минимальным допустимым риском.
Однако масштабы целей и функций сложных проектов имеют устойчивую тенденцию изменяться и увеличиваться по мере развития, а первоначально выделяемые ресурсы не удовлетворять их реализацию. Технико-экономическое обоснование проектов на начальном этапе их развития должно содержать оценки рисков реализации поставленных целей, обеспечивать возможность планирования и выполнения жизненного цикла продукта или указывать на недопустимо высокий риск его реализации и целесообразность прекращения разработки.
Массовое создание сложных программных средств промышленными методами и большими коллективами специалистов вызвало необходимость их четкой организации, планирования работ по затратам, этапам и срокам реализации. Совокупные затраты в мире на такие разработки составляют миллиарды, а для отдельных проектов - миллионы долларов в год, поэтому требуется тщательный анализ эффективности создания и использования ПС. Для решения этих задач формируется новая область знания и научная дисциплина - экономика жизненного цикла программных средств как часть экономики промышленности и вычислительной техники в общей экономике государств и предприятий.
Развитие этой области экономики связано с большими трудностями, типичными для новых разделов науки и техники, появляющихся на стыке различных областей знания. В данном случае особенности состоят в том, что руководители и разработчики комплексов программ, как правило, не знают даже основ экономики разработки и производства сложной продукции, а экономисты не представляют сущность объектов разработки - программных средств, а также особенностей их создания, технологического процесса и применения.
Объективно положение осложнено трудностью измерения характеристик таких объектов. Широкий спектр количественных и качественных показателей, которые с различных сторон характеризуют содержание этих объектов, и невысокая достоверность оценки их значений, определяют значительную дисперсию при попытке описать и измерить свойства создаваемых или используемых ПС.
Особенности развития методов и процессов технико-экономического обоснования проектов ПС обусловлены, в частности, сложностью, и, в ряде случаев, неопределенностью характеристик предполагаемого продукта, технологических этапов и процессов разработки, производства и применения программ для ЭВМ. При разработке комплексов программ сложно переплетаются содержание, этапы и распределение работ, возможен ряд возвратов на более ранние технологические этапы в процессе создания компонентов ПС, они имеют не совсем определенные границы начала и завершения. Специалисты в коллективе могут на некотором интервале времени решать несколько производственных задач и заменять друг друга.
Положение усугубляется трудностью поэтапного определения качества компонентов и его прогнозирования в процессе разработки, что непосредственно отражается на технико-экономических показателях (ТЭП) проекта в целом. Следствием этого являются большие ошибки при планировании сроков, трудоемкости и стоимости создания ПС. Эта стихийность при создании крупных комплексов программ в большинстве случаев приводит к значительному запаздыванию разработок и превышению предполагавшихся затрат.
Практика последних лет показывает, что вследствие пренебрежения тщательным технико-экономическим обоснованием, до 15% проектов сложных программных комплексов не доходит до завершения, а почти половина проектов не укладывается в выделенные бюджет и сроки и не обеспечивает требуемые характеристики качества. Типичны ситуации, когда отставание сроков внедрения промышленных систем управления и обработки информации полностью зависит от неготовности программ для них.
Для небольших относительно простых проектов ПС, во многих случаях достаточно достоверными могут быть интуитивные оценки требуемых ресурсов, выполняемые опытными руководителями, реализовавшими несколько аналогичных проектов. При начале проектировании крупных ПС, требующих заведомо больших экономических, трудовых и временных затрат, необходима хотя бы приближенная, формализованная их оценка по определенной методике. Интуитивные оценки руководителями и исполнителями - размеров, сложности и трудоемкости конкретных программных проектов, как правило, отличаются существенными недостатками:
- человек, в основном оптимистичен, и каждому хочется, чтобы проект ПС было меньше по размеру и более простым, что ведет к первоначальным недооценкам его сложности и к конфликтным ситуациям при разработке;
- человек обычно не полностью использует предыдущий опыт о сложности функций аналогичных ПС и, особенно, о большом размере вспомогательных компонентов комплексов программ, которые также должны быть разработаны;
- отдельные специалисты, как правило, не знакомы со всем объемом проекта и пожеланиями пользователей, что приводит к недооценке второстепенных функций и компонентов ПС, к отсутствию реалистичного применению накопленных знаний при оценивании размера и сложности проекта.
Эти обстоятельства приводят к большим ошибкам оценивания ТЭП на начальных этапах разработки, которые можно значительно сократить при относительно небольших усилиях, применяя, в частности, формализованные методики экспертной оценки основных технико-экономических характеристик проектов комплекса программ. Тем самым проекты сложных ПС с самого начала могли бы выполняться с учетом более достоверной оценки необходимых ресурсов. Следствием недостатков или отсутствия технико-экономическим обоснованием проектов новых ПС являются острые конфликты между заказчиками и разработчиками.
Часто разработчики ПС не в состоянии привести заказчику или руководителю проекта достаточно обоснованные доказательства не реальности выполнения выдвигаемых требований и предложенных ограниченных бюджета и сроков. Это приводит к оптимистической переоценке выгод новой программной разработки, к недооценке роли других конкурирующих предложений при заключении контрактов на разработку, и вследствие этого - к неизбежным перерасходам средств и к снижению качества ПС.
Руководители конкретных проектов обычно не в состоянии достаточно обоснованно определять, сколько времени и затрат труда потребуется на каждый этап и работу программной части проекта системы. Вследствие этого, они не могут оценить, насколько успешно выполняется имеющийся план разработки ПС. Это, как правило, означает, что программная часть проекта системы с самого начала выходит из-под контроля и возможна катастрофа с реализацией и завершением проекта всей системы в требуемый срок с заданным качеством.
Большую часть этих негативных последствий можно избежать, используя существующие, достаточно точные методы оценивания и прогнозирования затрат, а также управления проектами ПС, для их успешного завершения. Эти последствия объясняются многими причинами, из которых наиболее важными, являются следующие:
- исходные тексты программных компонентов различны и по отдельности не определяют сложность и размер конечного продукта;
- разработка сложных ПС требует творчества и сотрудничества разных специалистов, индивидуальное и групповое поведение которых, как правило, трудно предсказать;
- в области экономики жизненного цикла ПС накоплен относительно небольшой опыт количественных оценок, и его трудно увеличивать, проводя и не обобщая разрозненные эксперименты.
За последние несколько лет ряд исследований и работ по сбору и обобщению экономических данных о ЖЦ ПС заложили основы для методов и моделей оценивания затрат, которые обладают удовлетворительной точностью. Современная экономическая модель оценки разработки ПС считается хорошей, если с ее помощью можно оценить затраты на программную разработку с точностью 20 % в 70% случаев, при условии использования модели, в классе проектов, на которые она ориентирована. Имеющиеся модели не всегда столь точны, как хотелось бы, но могут весьма существенно помочь в технико-экономическом анализе и обосновании решений при создании сложных ПС.
Необходимы дальнейшие, активные исследования на разных уровнях детализации, начиная от экономики и планирования создания программных средств в масштабах страны или предприятия и кончая экономикой выполнения частных операций отдельными специалистами при разработке или производстве конкретных ПС. Одна из важнейших задач состоит в том, чтобы увязать четкими экономическими категориями взаимодействие разных специалистов и предприятий в типовой производственной цепочке: заказчик - разработчик - изготовитель - пользователь. Для этого объект потребления - программное средство и все процессы взаимодействия в цепочке должны быть связаны системой экономических и технических характеристик, в той или иной степени, использующих основные экономические показатели - реальные затраты ресурсов: финансов, труда и времени специалистов на конечный продукт.
Для решения этой задачи необходимо детально исследовать требуемые ресурсы современных процессов создания и использования программ различных классов и назначения - встроенных, коммерческих, административных, учебных, уникальных и др. Только на базе серьезных статистических исследований технико-экономических показателей жизненного цикла и практического маркетинга ПСвозможны обобщения и создание теоретических и практических основ экономики ПС. Перечисленные выше проблемы и задачи требуют для своего решения выполнения крупных, комплексных научно-исследовательских работ, многие из которых еще не поставлены и далеки от разрешения.
2. Цели и задачи технико-экономического анализа и обоснования комплекса программ.
Технико-экономический анализ разработки комплексов программ состоит в выборе и прогнозировании наиболее адекватных экономических и функциональных критериев для обобщенного описания эффективности, стоимости создания и использования комплексов программ в зависимости от их назначения, области применения и других факторов. Применение программных средств как продукции существенно повысило актуальность технико-экономического обоснования и прогнозирования их характеристик и процессов создания. Для получения обобщенных, конструктивных результатов ниже основной целью считается разработка сложных программных средств различных классов независимо от конкретных областей, в которых применяются системы, используемые для управления и обработки информации.
Предполагается, что основной целью создания ПС является повышение эффективности производства промышленных изделий или управления объектами и системами, в которых применяются крупные комплексы программ. Такими системами могут быть средства автоматизированного управления прокатными станами, самолетами или электростанциями, информационно-справочные системы административного управления, системы автоматизации проектирования и обучения и т.п. В ряде случаев программы невозможно или очень трудно характеризовать непосредственной экономической эффективностью. Примером могут служить ПС в системах управления воздушным движением или космическими аппаратами, а также в системах военного назначения или автоматизации научного эксперимента. В таких случаях при анализе программ невозможно определять изменение прямой эффективности систем в зависимости от затрат и целесообразно из анализа исключать характеристики полной экономической эффективности и сопутствующие ей функциональные критерии качества. Тогда исследование эффективности ПС можно проводить, минимизируя затраты на разработку в предположении, что полностью обеспечены заданные функциональные характеристики.
Обеспечение жизненного цикла любых изделий не может быть бесплатным, оно требует определенных затрат ресурсов, которые обычно тем больше, чем выше требуемое их качество. Многие проекты информационных систем терпели неудачу из-за отсутствия у разработчиков и заказчиков при подготовке контракта четкого представления о реальных трудовых, временных и иных ресурсах, необходимых для их реализации. Существенными факторами, влияющими на трудоемкость, длительность реализации и качество ПС и БД, оказывают ограничения ресурсов, доступных для обеспечения их жизненного цикла, а также возможная экономическая эффективность применения. Общее понятие - доступные ресурсы разработки включает реальные финансовые, кадровые и аппаратурные ограничения, в условиях которых предстоит создание и развитие комплекса программ. Эти факторы влияют на рентабельность процессов разработки, которые следует учитывать и оптимизировать при создании и применении ПС. Поэтому одной из основных задач при обеспечении ЖЦ ПС является технико-экономический анализ и обоснование необходимых ресурсов для создания проекта ПС в соответствии с требованиями контракта. В ряде случаев этому помогает опыт и экономические характеристики ранее выполненных проектов фирмы, но некоторые проекты могут не иметь прецедентов, и тогда приходится использовать обобщенный опыт и имеющуюся статистику в этой области.
При планировании ЖЦ программных средств, часто имеется определенный заказчик-потребитель, который способен задать основные цели, характеристики и обеспечить ресурсы для реализации проекта. Однако иногда инициатором разработки ПС является разработчик-поставщик, который самостоятельно принимает все решения о проектировании за счет собственных ресурсов и предполагает возместить затраты путем реализации программного продукта на рынке. Таким образом, при технико-экономическом анализе и обосновании проектов ПС возможны два сценария:
- создание и весь жизненный цикл комплекса программ и/или базы данных ориентируется на массовое тиражирование и распространение их на рынке, среди заранее не известных пользователей в различных сферах и внешней среде применения; при этом отсутствует конкретный внешний потребитель-заказчик, который определяет и диктует основные требования к ПС и финансирует проект;
- разработка проекта ПС и/или БД предполагается для конкретного потребителя-заказчика с определенным, относительно небольшим тиражом и с известной областью и внешней средой применения.
Эти сценарии принципиально различаются методами технико-экономического анализа и обоснования их характеристик.
Первый сценарий базируется на маркетинговых исследованиях рынка программных продуктов и на стремлении поставщика занять на рынке достаточно выгодное место. Для этого ему необходимо определить наличие на рынке всей гаммы близких по назначению и функциям ПС, оценить их эффективность, стоимость и применяемость, а также возможную конкурентоспособность предполагаемого к разработке программного продукта для потенциальных пользователей и их возможное число. Следует оценить рентабельность затрат на создание и обеспечение всего ЖЦ нового ПС, выявить факторы, функциональные, экономические и конструктивные показатели качества, которые способны привлечь достаточное число покупателей и оправдать затраты на предстоящую разработку. Для этого разработчикам необходимо произвести оценки возможной конкурентоспособности предполагаемой продукции на рынке по величине соотношения:
- возможной эффективности (ценности, достоинств) последующего применения ПС и способности удовлетворить потребности пользователей при его использовании;
- к стоимости (цене, затратам), которую готов заплатить пользователь при приобретении и эксплуатации данного комплекса программ или базы данных.
Второй сценарий предполагает наличие определенного заказчика-потребителя конкретного проекта ПС и/или БД, который определяет основные технические и экономические требования. Он выбирает конкурентоспособного поставщика-разработчика, которого оценивает на возможность реализовать проект с необходимым качеством с учетом ограничения требуемых бюджета, сроков и других ресурсов. При этом результаты разработки не обязательно подлежат широкому тиражированию, могут не поступать на рынок, маркетинговые исследования для таких проектов являются второстепенными и предварительно могут не проводиться. Однако для заказчика и разработчика при заключении контракта необходимо достаточно достоверное прогнозирование требований к программному продукту и технико-экономическое обоснование требуемых ресурсов по трудоемкости, стоимости, срокам и другим показателям. Заказчик заинтересован в получении ПС высокого качества при минимальных затратах, а разработчик желает получить максимальную оплату за созданный продукт и достаточные ресурсы на его реализацию. Противоположность интересов поставщика и потребителя при оценке стоимости и других ресурсов проекта, требует поиска компромисса, при котором разработчик ПС не продешевит, а заказчик не переплатит за конкретные выполненные работы и весь проект. Поэтому оба партнера заинтересованы в достоверном технико-экономическом прогнозировании и обосновании проекта ПС. Ниже основное внимание сосредоточено на, технико-экономическом анализе и обосновании процесса разработки и всего жизненного цикла ПС, путях минимизации затрат и на повышении эффективности автоматизации применяемых технологий. При таком анализе должны учитываться следующие цели.
Первая цель состоит в прогнозировании реальных затрат на разработку определенного проекта компонентов и ПС в целом с учетом их сложности и требуемого качества. Для этого должна быть изучена существующая практика разработки программ, и/или обобщены ТЭП современных проектов ПС. Такие обобщения должны выявить трудоемкость (стоимость) и производительность труда при разработке реальных программ определенных классов и назначения, а также основные факторы, влияющие на эти показатели при создании конкретных ПС. Кроме того, необходимо определить длительность всего процесса разработки программ и его отдельных этапов. Для этого должны быть разработаны и внедрены методики сбора первичных технико-экономических данных и их обработки, по завершенным или находящимся в процессе разработки проектам ПС. В результате могут быть получены современные значения основных ТЭП создания программ разных классов.
Вторам цель - создание методов и методик прогнозирования затрат и длительности разработки комплексов программ. Методики должны учитывать полученные значения ТЭП. основные характеристики создаваемых ПС, а также технологию, оснащенность и организацию их разработки. Получаемые прогнозы позволят эффективно планировать разработки, управлять созданием программ и осуществлять проекты ПС в соответствии с заданными требованиями, сроками и затратами на основе анализа аналогов - прототипов.
Третьей целью анализа является обоснование и создание методов и средств снижения совокупных затрат и сроков разработки сложных ПС. При этом возникают задачи:
- эффективного распределения общих трудовых ресурсов, используемых при разработке программ;
- развития и повышения экономической эффективности технологий, применяемых для создания ПС различных классов;
- рационального повышения уровня комплексной автоматизации технологий разработки ПС;
- выбора методов и инструментальных средств, в наибольшей степени способствующих снижению длительности создания и совокупных затрат на ПС, а также повышению их качества.
Четвертой целью технико-экономического исследования процессов разработки программ является создание методических и нормативных документов, как основы промышленной разработки аналогичных программных продуктов. Наличие нормативов может коренным образом изменить характер разработки ПС и приблизить его к отрасли современного регламентированного промышленного проектирования. В результате появится возможность управления затратами на разработку, количеством и качеством создаваемых ПС и их компонентов на различных этапах.
В качестве основного критерия эффективности новой техники и ПС, в частности, широко применяется критерий экономии совокупных затрат общественного труда, которая получается в результате внедрения этой техники. Однако во многих случаях созданная техника способствует повышению качества изделий или является принципиально новой продукцией, что затрудняет ее оценку по критерию непосредственной экономической эффективности. Поэтому широко применяется критерий минимальных приведенных затрат, которые требуются при создании и эксплуатации анализируемых изделий. Приведенные затраты включают затраты на проектирование, изготовление и эксплуатацию изделий по всему жизненному циклу или пересчитанные к годовому интервалу времени. Этот критерий может поддерживаться (детализироваться) рядом локальных критериев: повышением производительности труда, экономией материальных и производственных ресурсов при выполнении частных работ, улучшением использования оборудования и т. п. Критерий минимальных приведенных затрат применим, если различные технические решения сопоставимы по функциям, достигаемым целям и качеству продукции. Однако этот критерий непосредственно не учитывает возможные различия назначения, функциональных и технических характеристик создаваемых и эксплуатируемых систем. Обычно предполагается, что для каждого изделия зафиксирован эффект от его создания и использования и необходимо выявить все основные факторы, способствующие минимизации совокупных затрат на всем жизненном цикле.
На практике классы систем при анализе обычно имеют ряд близких по значимости целей применения, и соответствующих им характеристик качества. В результате эффективность технологических решений приходится оценивать одновременно по нескольким показателям. Для этого стремятся сформулировать обобщенную скалярную функцию эффекта и затрат или строится нормированный вектор показателей качества. Для многокритериальной, векторной оптимизации решений разработан ряд методов, использование которых зависит от конкретных особенностей анализируемых изделий. Кроме того, широко применяется последовательный анализ по отдельным показателям качества с учетом их приоритета.
Во многих случаях эффективность сложной новой техники и ПС в процессе проектирования приходится прогнозировать в условиях неопределенности целей, различных факторов и характеристик. Обычно недостаточно известны перспективы внедрения и эксплуатации объектов разработки - новых программных продуктов. Трудно формализуемыми и оцениваемыми являются размеры (масштабы) и структура систем, взаимодействие основных подсистем, цели, функции и критерии оценки эффективности их функционирования. Значительные неопределенности содержатся также в технико-экономических характеристиках технологий, а также инструментальных средств автоматизации проектирования и изготовления ПС. В результате экономический анализ и прогнозы могут иметь значительный разброс оцениваемых показателей.
Программно-целевое планирование и промышленная разработка ПС как продукции целесообразны только для определенных классов комплексов программ. С этой позиции программы для вычислительных машин можно разделить на три класса, которые впоследствии рассмотрены подробнее:
- к первому классу относятся программы автоматического или автоматизированного управления, непосредственно входящие, встроенные в системы управления, функционирующие в реальном масштабе времени;
- второй класс представляется сложными ПС: информационно-справочных систем обработки информации организационного и административного направления, систем автоматизации проектирования, которые функционируют вне жесткого реального масштаба времени;
- к третьему классу относятся программы, разрабатываемые для решения частных инженерных и научно-исследовательских задач, которые характеризуются относительно малым использованием ресурсов вычислительных систем и кратковременной эксплуатацией.
С позиции технико-экономического анализа жизненный цикл ПС можно разделить на две части, существенно различающиеся особенностями процессов, технико-экономическими характеристиками и влияющими на них факторами.
В первой части ЖЦ производятся системный анализ, проектирование, разработка, тестирование и испытания первой базовой версии ПС. Номенклатура работ, их трудоемкость, длительность и другие характеристики на этих этапах ЖЦ существенно зависят от создаваемого объекта, требуемых показателей качества, внешней и технологической среды разработки. Изучение подобных зависимостей для различных ПС позволяет прогнозировать состав и основные технико-экономические показатели, планы и графики работ для вновь создаваемых ПС.
Вторая часть ЖЦ, отражающая эксплуатацию и сопровождение ПС, относительно слабо связана с характеристиками объекта и среды разработки. Программы первого и второго классов характеризуются длительной непрерывной эксплуатацией, продолжительность которой обычно значительно превышает длительность разработки первой версии. После того как программы созданы и испытаны, в ряде случаев они становятся недоступными для разработчиков и эксплуатируются неизменными до внедрения очередной версии при модернизации системы. Жизненный цикл таких ПС может составлять десяток лет, в течение которых необходимо обеспечить их сопровождение. В процессе сопровождения программы могут подвергаться эпизодическим корректировкам, которые должны регистрироваться, накапливаться и передаваться пользователям экземпляров системы. Необходимо обеспечить адекватность документации каждой версии эксплуатируемого ПС в любой момент времени.
Номенклатура работ на этих этапах более или менее стабильна, а их трудоемкость и длительность могут сильно варьироваться и зависят от массовости и других факторов распространения и применения ПС. Успех ПС у пользователей и на рынке, а также процесс развития версий трудно предсказать, и он не связан непосредственно с техническими параметрами комплексов программ. Определяющими становятся потребительские характеристики и качество ПС, а их технико-экономические особенности с позиции разработчиков отходят на второй план (см. выше, первый сценарий). Вследствие этого в широких пределах изменяются трудоемкость и необходимое число специалистов, поддерживающих эти этапы. Это затрудняет обобщение ТЭП различных проектов и прогнозирование на их основе аналогичных характеристик новой разработки. Поэтому планы работ на этих этапах имеют характер общих взаимосвязей работ, которые требуют ручного распределения во времени индивидуально для каждого проекта. В результате планирование трудоемкости, длительности и числа специалистов для этих этапов приходится производить итерационно на базе накопления опыта и анализа развития конкретных типов и версий ПС.
3. Прогнозирование технико-экономических характеристик программных средств
Целью рассматриваемых прогнозов является оценка трудоемкости и длительности разработки комплексов программ, а также распределения затрат по составляющим и этапам работ. Прогнозы предназначены для планирования процесса разработки конкретных ПС, оценки их стоимости, длительности и других ТЭП на начальных этапах проекта в технических заданиях и контрактах. Результаты прогнозов должны обеспечивать возможность согласовывать заказчику и разработчику сроки и стоимость создания ПС.
Объектом прогноза по времени являются совокупные затраты и ихосновные составляющие, а также длительность и другие ТЭП разработки сложных комплексов программ гарантированного качества коллективами специалистов. Достоверность первичных прогнозов трудоемкости и стоимости на этапах концепции и системного анализа может составлять 30 - 50%, а уточненные оценки на этапе структурного проектирования, могут улучшаться до 20%. Желательно, точность прогнозов при детальном проектировании доводить до 10%, однако более точные оценки пока вряд ли возможны, вследствие ограниченного опыта их проведения и малой статистики ТЭП завершенных разработок.
Глубина прогнозов соответствует длительности полного цикла разработки сложных ПС, которая может варьироваться в пределах 1 - 5 лет. При этом, как правило, объект и технология разработки, а также средства ее автоматизации определяются перед началом разработки и в дальнейшем практически не изменяются. Вследствие этого вновь появляющиеся технологии практически неприменимы для уже начатых разработок. Для прогнозирования всегда используется более или менее представительная база данных ТЭП ранее завершенных разработок. Технология и оснащенность инструментальными средствами автоматизации этих разработок соответствует некоторому уровню, характерному для времени их начала. Чем больше данных привлекается для получения обобщенных значений ТЭП, тем больше в их составе будет результатов работ, завершенных несколько лет назад.
Втеории прогнозирования выделяются три класса методов:
- экспертных оценок - индивидуальных и групповых;
- экстраполяции и расчета по аналогам-прототипам;
- моделирования - логические, математические и информационные модели оцениваемых характеристик систем или процессов.
Эти методы могут быть связаны и при создании конкретных методик прогнозирования в той или иной степени используются ихсочетания. В зависимости от объектов, целей и глубины прогноза по времени изменяется доминирующий класс используемых методов. Поэтому, прежде всего, необходимо сформулировать особенности прогнозирования ТЭП.
Для прогнозирования процессов и технико-экономических характеристик ПС используются исходные данные двух типов: характеристики самого прогнозируемого объекта или процесса, для которого необходимо спланировать жизненный цикл, ихарактеристики аналогов-прототипов, в некоторой степени подобных планируемому, о которых известны технико-экономические показатели уже завершенных аналогичных процессов. Совместная, корректная обработка исходных данных этих двух типов позволяет получать новые, прогнозируемые характеристики процессов и ТЭП предполагаемого жизненного цикла ПС
.
Исходные данные первого типа отражают характеристики конкретного создаваемого объекта или процесса, доступные методы и средства автоматизации труда при их создании. Эти данные последовательно детализируются и уточняются в процессе проектирования ПС, что, в частности, позволяет уточнять выбор компонентов аналогичных объектов и их характеристик для описания исходных данных второго типа. Этому обычно сопутствует уточнение технологической среды разработки. В результате у руководителей и исполнителей проекта ПС появляется возможность формализовать и уточнять исходные данные об объекте, процессах и среде разработки. Наибольшее влияние на планирование разработок ПС оказывают: класс ПС, его размер, связь с реальным масштабом времени и степень использования готовых апробированных компонентов.
Второй тип исходных данных для обоснования и планирования жизненного цикла ПС составляют обобщенный опыт проектирования и технико-экономические характеристики прототипов ПС. Для достоверного планирования и прогнозирования необходимы накопление, изучение и обобщение конкретных данных о процессах, использованных ресурсах завершенных разработок ПС в различных аспектах. Целесообразно, чтобы такие данные регистрировались и обрабатывались по единой методике в течение всего ЖЦ любых ПС для формирования представительной базы характеристик предшествующих разработок на предприятии или в отрасли.
В общем случае для оценки, прогнозирования и обоснования технико-экономической эффективности разработки нового комплекса программ необходимы исходные данные:
- обобщенные характеристики использованных ресурсов и технико-экономические показатели завершенных разработок - прототипов ПС, а также оценки влияния на них различных факторов объекта и среды разработки;
- реализованные планы и обобщенные перечни выполненных работ, реальные графики проведенных ранее оценок и разработок различных ПС;
- цели и содержание частных работ в процессе создания предыдущих, сложных комплексов программ и требования к их выполнению для обеспечения необходимого качества ПС в целом;
- структура и содержание документов, являвшихся результатом выполнения ранее отдельных работ.
Наиболее успешно используются обобщенные ТЭП при более или менее однородных условиях разработки, которые достаточно близки к условиям прогнозируемого проекта. Такие ТЭП и факторы, их определяющие, изучены в процессе обработки значительного статистического материала реальных отечественных и зарубежных разработок. Исходные данные о графиках реализации частных работ при создании прототипов ПС содержатся в некоторых публикациях об опыте планирования и использования планов работ при создании ПС различных классов и назначения. Подобные перечни могут использоваться в качестве проектов предварительных планов работ по созданию конкретных ПС. Их целесообразно адаптировать в процессе подготовки рабочих планов путем детального учета конкретных особенностей нового проекта ПС.
В настоящее время проявилась необходимость широкого обобщения накопленных данных и опыта прогнозирования ТЭП различных классов ПС. Унификация методик оценки ТЭП, единиц измерения показателей и методов прогнозирования позволит приблизиться к созданию нормативной базы, и значительно повысить широту использования научных прогнозов процессов разработки ПС. Хотя результаты исследований ТЭП и применения прогнозирования пока относительно невелики, тем не менее, они способны резко повысить достоверность прогнозов трудоемкости и длительности создания ПС по сравнению с экспертными оценками или интуитивными и директивными решениями заказчиков и руководителей работ.
Таким образом, возникает дилемма: либо использовать для прогнозирования в качестве исходных, значения ТЭП нескольких самых последних завершенных разработок, либо привлекать большее число данных, в том числе в значительной степени устаревших разработок. В первом случае точность исходных данных обусловлена малой величиной выборки, а во втором - влиянием старых разработок, выполненных при других технологиях и средствах автоматизации. В обоих случаях необходимо оценивать величину временного интервала запаздывания опорных данных для прогнозирования, относительно начала новой разработки ПС. В первом случае это запаздывание может составлять 3-5 и более лет, а во втором - может быть в 1,5-2 раза больше. Анализ факторов и условий, при которых осуществлены ранее выполненные разработки, позволяет уточнять и пересчитывать их ТЭП на время начала прогнозируемого проекта. В результате повышается точность оценок для новой разработки. Следовательно, глубина прогноза и глубина используемых результатов предшествующих разработок являются важными факторами, влияющими на достоверность оценок.
Методы прогнозирования ниже базируются на экстраполяции ТЭП аналогичных завершенных разработок с учетом особенностей конкретного прогнозируемого объекта. Возможно использование отдельных отобранных аналогов ПС, наиболее близких к прогнозируемому, или обобщенных характеристик ряда аналогичных завершенных проектов. Экспертные прогнозы ниже рассматриваются с учетом достоверности их результатов, трудностей формализации и реальной возможности применения более точных методов. На практике планирование разработки многих сложных ПС пока базируется на экспертных оценках, что часто приводит к значительным ошибкам.
Методы экспертной оценки заключаются в консультации с одним или несколькими экспертами, которые проводят оценку стоимости и других ТЭП нового проекта ПС, используя свой опыт, интуицию и знание содержания проекта. Эти методы, несмотря на свои недостатки, удачно дополняют более точные модели. Из достоинств экспертных оценок следует отметить возможность использования опыта прошлых разработок и их отличия от новых методов, архитектуры ЭВМ, областей применения, предусмотренных в конкретных проектах. Эксперт может учесть также индивидуальные возможности коллектива и взаимодействие разработчиков или другие уникальные стороны проекта.
К недостаткам экспертной оценки следует отнести ее зависимость от компетенции и объективности эксперта, который может оказаться пристрастным, оптимистичным, пессимистичным или незнакомым с существенными аспектами проекта. Трудно выбрать золотую середину между быстро полученной оценкой одного эксперта - своевременной, эффективной, но трудно проверяемой и разумно объяснимой, и строгой, хорошо документированной оценкой в методе группового согласим - тщательно обоснованной и проанализированной, но требующей более длительной проработки, а также трудно повторяемой через некоторое время, особенно когда спецификации проекта отчасти изменены. Из-за множества различных, индивидуальных особенностей экспертов - оптимизма, пессимизма, желания добиться успеха, политических соображений, предпочтительным является метод оценивания несколькими экспертами. Существует много путей объединения индивидуальных оценок в единую - обобщенную. Один путь состоит в получении средних или срединных оценок. Это быстрый метод, но он может выдавать не очень точный результат из-за возможности выбросов значений отдельных оценок. Другой метод состоит в проведении совещания группы экспертов для формирования единой оценки. Этот метод имеет общее преимущество отсеивания оценок, связанных с неосведомленностью, но обладает двумя недостатками. Во-первых, одна группа экспертов может повлиять на оценки другой группы своим красноречием и напористостью. Во-вторых, группа экспертов может лопасть под влияние авторитетной личности или политической ситуации.
Ограничения при прогнозировании определяются, прежде всего, имеющимися обработанными данными, которые могут быть использованы в качестве исходных аналогов или обобщенных характеристик. Дополнительные затраты на обеспечение повышенного качества программ учитываются при анализе сложных ПС СРВ. Анализ проводится для ПС в целом или для крупных этапов работ, и не ставится задача определения нормативов на конкретные операции при выполнении работ отдельными специалистами. Предполагается, что разработка ПС проводится при использовании регламентированной технологии и контроле ее выполнения. При отсутствии такой технологии прогнозирование ТЭП разработок сложных ПС практически невозможно. В этом случае трудоемкость и длительность разработки может возрастать в несколько раз по сравнению с оптимистическими экспертными оценками.
Прогнозирование ТЭП нового ПС в свою очередь требует некоторых затрат. Они составляют обычно не более 1% общих затрат на проект, однако всегда эффективны и могут в ряде случаев обеспечивать снижение совокупных затрат на разработку на десятки процентов. Для повышения достоверности прогнозов целесообразны технико-экономическое сопровождение процесса разработки ПС и последовательное поэтапное прогнозирование сроков завершения работ и соответствующих затрат. Управление процессом разработки ПС на базе фактических затрат на компоненты и этапы разработки и последовательно уточняемая достоверность прогноза ТЭП позволяют не только снижать затраты на данный проект ПС, но и создавать базу аналогов и обобщенных данных для достоверного прогнозирования последующих проектов.
Исходные данные ТЭП и объекта разработки могут различаться по полноте и достоверности, особенно в зависимости от условий и этапов разработки, что позволяет их разделить на следующие группы:
- одиночные аналоги завершенных разработок ПС, характеристики которых, технология и условия создания достаточно близки к подобным показателям вновь разрабатываемого комплекса программ;
- обобщенные ТЭП нескольких в значительной степени подобных разработок ПС, выполненных на одном и том же предприятии, при использовании одинаковой технологии и системы автоматизации коллективами специалистов, близкими по квалификации;
- обобщенные ТЭП ряда родственных предприятий, создающих близкие по классу ПС, с применением собственных технологий и систем автоматизации.
Однако большой разброс производительности труда и других ТЭП разных коллективов, а также более или менее случайный набор усредняемых показателей приводят к тому, что такую группу данных в большинстве случаев трудно использовать для прогнозирования ТЭП конкретных новых разработок. Поэтому ниже предполагается, что обобщенные характеристики ТЭП получены при более или менее однородных условиях разработки, которые достаточно близки к условиям прогнозируемого проекта. Эти однородные условия наиболее полно соблюдаются в пределах предприятия, однако не исключена возможность использования выборочных данных других организаций.
На достоверность прогнозов ТЭП влияет не только точность сведений о предшествующих разработках, но и достоверность характеристик объекта и условий прогнозируемой разработки. С учетом этого целесообразно выделить три вида прогнозов технико-экономических характеристик разработок ПС:
- первичные оценки трудоемкости и длительности разработки при наличии минимально необходимых сведений об объекте и условиях разработки;
- уточненные оценки полных ТЭП процесса разработки ПС на базе обобщенных характеристик предшествующих разработок и уточненного сценария объекта и условий разработки;
- текущие прогнозы основных ТЭП на промежуточных этапах процесса разработки ПС с учетом влияния зарегистрированных и обобщенных предшествовавших данных на текущий момент времени об объекте и условиях разработки и последовательно уточняющегося прогноза на период до завершения разработки.
Последний вид прогнозов предполагает мониторинг и технико-экономическое сопровождение процесса разработки. Оно обеспечивает возможность оперативного перераспределения ресурсов и управления всей разработкой с целью минимизации затрат или длительности создания ПС. Последовательно уточняющееся прогнозирование и использование ТЭП в процессе разработки является одной из компонентов технологии и должно обеспечиваться соответствующими средствами автоматизации. Эти средства служат для автоматизированной регистрации текущих затрат на разработку компонентов в различных разрезах и их обобщения в соответствии с целями прогнозирования и управления разработкой. Реализация таких автоматизированных средств возможна только при достаточных ресурсах используемых ЭВМ и высоких уровнях (четвертый - пятый) автоматизации технологии разработки особо сложных ПС. Тесная взаимосвязь этого вида прогнозирования с технологией разработки и ее автоматизацией приводит к необходимости рассматривать их совместно, что выходит за пределы основной темы книги.
При технико-экономическом обосновании проекта ПС на любом уровне целесообразно применять методы и методики адекватные целям и этапам его реализации. Приступая к разработке комплекса программ, как в любой профессиональной деятельности, необходимо сначала провести реалистическую оценку возможного масштаба проекта - поставленных целей, ресурсов проекта и выделенного времени. Задача управления масштабом состоит взадании базовых требований, которые включаютразбитое на компоненты ограниченное множество функций и требований, намеченных дляреализации в конкретной версии проекта. Базовый уровень масштаба должен обеспечивать:
- приемлемый для заказчика минимум функций и требований к проекту;
- разумную вероятность успеха сточки зрения возможностей коллектива разработчиков.
При оценивании масштаба следует определить приоритеты функций для установления состава работ, согласованного между заказчиком и разработчиком, которые обязательно должны быть выполнены и для определения базового уровня масштаба конкретного проекта с допустимым риском неуспешной реализации. Сокращение масштаба проекта до размеров, адекватных выделенному времени и ресурсам, может привести к конфликтам заказчиков и разработчиков. Для уменьшения вероятности таких конфликтов целесообразно активно привлекать заказчиков к управлению их требованиями и масштабом проекта, чтобы обеспечить как качество, так и своевременность разработки ПС. При этом следует учитывать, что:
• именно заказчики несут финансовую ответственность за выполнение обязательств перед внешними клиентами и пользователями (пусть и в несколько сокращенном, при необходимости, масштабе);
• комплекс программ, его важнейшие функции и удовлетворяемые требования принадлежат заказчику, а не коллективу разработчиков или поставщику.
Привлечение заказчика помогает менее болезненно решать проблемы управления масштабом проекта и реализуемыми функциями с учетом ограничений ресурсов. Любые дополнительные функции за пределами базовых, которые реализует разработчик, будут восприняты заказчиком как превзошедшие ожидания. В зависимости от этапа разработки сложного комплекса программ и достоверности исходных данных о характеристиках и особенностях проекта ПС целесообразно выбирать и применять разные методики и сценарии технико-экономического обоснования проекта и прогнозирования ТЭП. С самого начала работы над проектом ПС важно вести постоянный учет данных о его действительной трудоемкости, стоимости и развитии затрат и сравнивать эти данные с реальными оценками характеристик проекта по следующим причинам:
- несовершенство исходных данных для оценивания ТЭП (оценки размера, рейтинги влияния факторов) определяет важность для руководителя проекта пересматривать их оценки, учитывая новую информацию, чтобы обеспечить более реальную основу для дальнейшего управления проектом;
- вследствие несовершенства методов оценивания ПС следует сравнивать оценки с действительными значениями и использовать эти результаты для улучшения методов оценивания ТЭП;
- проекты ПС имеют тенденцию к изменению характеристик и экономических факторов и руководителю проекта необходимо идентифицировать эти изменения и выполнять реалистичное обновление оценок затрат.
Следует согласовывать цели оценивания с потребностями в информации, способствующей принятию решений для планирования затрат труда и других ресурсов. В общем случае необходимо достигать сбалансированного состава целей оценивания разных характеристик, который бы давал примерно одинаковую абсолютную величину уровня неопределенности для всех компонентов ПС. Кроме того, каждая оценка ТЭП должна сопровождаться, указанием степени ее неопределенности. Это означает, что абсолютная величина уровня неопределенности для каждого компонента должна быть примерно одинаковой, если в процессе принятия решения все компоненты имеют одинаковый вес. По мере разработки проекта их необходимо пересматривать и изменять, когда это становится выгодным. Бюджетные решения, принимаемые на ранних фазах должны влиять лишь на следующую фазу. Для этого последовательно рассмотрим три методики:
• первичная оценка ТЭП при подготовке концепции и технического задания на новый комплекс программ на основе экспертных данных размера ПС, производительности труда или стоимости разработки одной строки текста программ - прототипов;
• прогнозирование ТЭП при предварительном и детальном проектировании ПС на базе расчетных значений трудоемкости и длительности разработки комплекса программ по данным модели СОСОМО с учетом влияния различных дополнительных факторов;
• определение технико-экономических показателей ПС с учетом доступных оценок множества факторов и календарное планирование разработки сложного комплекса программ с использованием системы ПЛАПС.
В качестве основных критериев выбора методик прогнозирования ТЭП разработки ПС целесообразно учитывать возможность их использования, как на начальных, так и на более поздних этапах разработки, а также наличие апробирования методик в отечественной и зарубежной практике.
В первой методике реализован метод прогноза ТЭП с учетом экспертной оценки минимального числа факторов. Данная методика экспертной оценки ТЭП может применяться, когда определены цели и общие функции проекта ПС, сформулированные в концепции и первичных требованиях с достоверностью около 30 - 40% . Основная цель оценки ТЭП - подготовить возможность принять обоснованное решение о допустимости дальнейшего продвижения проекта в область системного анализа, разработки требований и предварительного проектирования. Если оказывается, что рассчитанные технико-экономические показатели и требуемые ресурсы не могут быть обеспечены для продолжения проекта, то возможны кардинальные решения: либо изменение некоторых ТЭП и выделяемых ресурсов, либо прекращение проектирования данного ПС. Учитывая полноту и достоверность доступных характеристик и требований к проекту ПС должны быть определены цели и возможная достоверность технико-экономического обоснования затрат на продолжение проектирования ПС.
При первичном технико-экономическом обосновании сложных проектов ПС наибольшее значение имеют три ключевых фактора:
- размер - масштаб, подлежащих разработке полностью новых программных компонентов;
- размер и относительная доля готовых программных компонентов, которые могут быть заимствованы из предшествовавших проектов и повторно использованы в новом проекте ПС;
- относительные затраты ресурсов на создание проекта: труда специалистов, времени или бюджета на единицу размера (на строку текста программ) проектируемого ПС.
Эти факторы могут быть оценены квалифицированными экспертами на основе имеющегося у них опыта реализации предшествовавших подобных проектов, а также использования опубликованных данных. При наличии необходимых данных важно оценить их достоверность и возможную точность (30 - 40%). Наименее точный из перечисленных факторов полностью определяет достоверность расчета технико-экономических показателей проекта ПС поэтому желательно, чтобы значения точности экспертного оценивания перечисленных факторов были сбалансированы.
При наличии перечисленных исходных данных и положительной оценке целесообразности экспертного анализа ТЭП проекта может реализовываться методика, состоящая из следующих шагов (табл.4):
> экспертная оценка размера - масштаба, числа строк предполагаемого текста разрабатываемых программ, с учетом размера повторно используемых компонентов и характеристик возможного языка программирования (этапы 1.1-1.2);
> экспертная оценка возможной средней производительности труда специалистов при разработке программ и/или стоимости разработки одной сроки текста программ проекта ПС (этапы 2.1. - 2.2);
> расчет возможной полной трудоемкости и длительности разработки проекта ПС, а также среднего числа специалистов, необходимых для его реализации (этапы 3.1 - 3.3);
> обобщение основных технико-экономических показателей и полной стоимости разработки проекта ПС, анализ результатов и технико-экономическое обоснование рентабельности продолжения проектирования комплекса программ (этапы 4.1 —4.2).
Таблица 4
Класс и функции проекта ПС | Цели анализа и возможная достоверность исходных данных | Выбор методики и сценария оценки технико-экономических показателей |
1.1. Экспертная оценка размера - масштаба программ проекта ПС | 1.2. Экспертная оценка доли готовых повторно используемых компонентов | Экспертная оценка обобщенного размера программ |
2.1. Экспертная оценка производительности труда при разработке программ проекта ПС | 2.2. Экспертная оценка стоимости разработки одной строки текста программы проекта ПС | Экспертная оценка удельных затрат на строку текста программы |
3.1. Расчет полной трудоемкости разработки проекта ПС | 3.2. Расчет полной длительности разработки проекта ПС | 3.3. Расчет необходимого среднего числа специалистов для разработки проекта ПС |
4.1. Обобщение основных технико-экономических показателей и полной стоимости разработки проекта ПС | 4.2. Анализ результатов и технико-экономическое обоснование продолжения проектирования ПС |
На этапе создания концепции и системного анализа формируются цели разработки проекта ПС, выбираются методы и алгоритмы решения основных, функциональных задач, а также формулируются предварительные критерии качества создаваемых программ. При этом, естественно, встает вопрос о затратах, которые потребуются для достижения целей, и о возможности их минимизации. Опыт и интуиция руководителей разработки позволяют получить первичные экспертные оценки, принятие которых в качестве достоверных, приводит зачастую к сложным конфликтам между заказчиком и разработчиком. Целенаправленная и методичная экспертная оценка затрат уменьшает величину ошибки, однако, обычно она остается все-таки довольно большой. Для обеспечения рациональной достоверности первичное прогнозирование целесообразно проводить путем экстраполяции на базе накопленных конкретных данных об отдельных аналогичных предшествующих разработках или с использованием обобщенных ТЭП совокупности подобных разработок, проведенных на данном предприятии.
4. Характеристики и технико-экономические показатели программного средства.
Труднее всего обосновать технико-экономические показатели разработки комплекса программ в начале проекта, когда еще не сформировались достаточно четкие представления о функциях и свойствах ПС, подлежащего разработке. На базе этих оценок желательно сделать общий вывод, стоит ли заниматься данным проектом в дальнейшем и на каких условиях следует заключить контракт на его выполнение. Когда разработка программного проекта близится к завершению, с целью уточненного оценивания ТЭП следует учитывать некоторые дополнительные аспекты и спецификации. Однако общую смету, время работы над проектом и объем необходимых трудозатрат необходимо оценивать как можно раньше. При этом целесообразно поэтапно рассматривать ряд факторов, влияющих на технико-экономические показатели разработки ПС, представленные в таблице №1, которые в данном разделе используются как основа для последовательности их изложения.
При оценке стоимости проекта и количества времени, требуемого для его выполнения, предстоит выполнить два основных этапа. Первый этап состоит в оценивании размера - масштаба проекта, на втором этапе представление об этих размерах наряду с информацией о других факторах среды разработки используется для оценивания трудозатрат и, соответственно, стоимости и продолжительности работ.
Классы и характеристики программных средств по стандарту ISO 180 12182 |
Концептуальные требования к рассматриваемым классам программных средств |
Три базовых класса комплексов программ для анализа технико- экономических показателей |
Функциональная пригодность - основа определения технико-экономических показателей программных средств |
Характеристики сложности программных средств при анализе технико-экономических показателей |
Описания единиц размера - масштаба и качества компонентов и комплексов программ |
Единицы измерения трудоемкости разработки компонентов и комплексов программ |
Единицы измерения длительности разработки комплекса программ — начала и окончания проекта |
Технико-экономические показатели на единицу размера программной продукции |
Технико-экономические показатели на этап разработки программного средства |
Числа ошибок в комплексе программ в зависимости от длительности разработки |
Таблица 1
Уточнение размеров создаваемого ПС должно предшествовать этапам проектирования и кодирования программ, выполняемым с целью реализации требований на практике. Путем оценивания ТЭП можно спрогнозировать общий объем ресурсов, который необходим для выполнения данного проекта. При этом должны учитываться затраты времени, количество специалистов, бюджетные и другие ограничения.
Для конкретизации основной области дальнейшего анализа и технико-экономического обоснования проектов целесообразно выделить и классифицировать обобщенные характеристики и атрибуты, рассматриваемых комплексов программ в соответствии со стандартом ISO 180 12182. В стандарте выделены три группы видов характеристик: внутренние виды; виды среды и виды данных. Для каждого вида представлен перечень классов, из которых рекомендуется выбирать подходящие характеристики для отражения особенностей конкретной системы или достаточно широкой сферы анализа и применения ПС. Из общего числа трех видов, 16-ти классов и около ста типов характеристик ПС вследствие упрощения далее будут преимущественно учитываться следующие:
• функции прикладных ПС - системы управления объектами или процессами; САПР, организационные, административные и обучающие системы;
• прикладная область системы - оборудование и аппаратура управления процессами и объектами; САПР, информационные, административные и обучающие системы;
• режим эксплуатации - обработка данных в режиме реального времени;
• масштаб, размер ПС - средний или большой;
• представление данных - предметное, формализованные описания объектов или процессов;
• критичность ПС - высокая, должна быть предотвращена возможность больших экономических потерь, повреждения дорогой собственности или угроза человеческой жизни;
• класс пользователей - технические процессы, средства и объекты, обучающиеся и квалифицированные специалисты;
• стабильность ПС - маловероятное или дискретное внесение изменений в процессе регламентированного сопровождения;
• готовность программного продукта - заказное, для конкретного применения в системе, или для массового распространения на рынке и среди предприятий;
• требуемые рабочие характеристики: время отклика - быстрое (секунды или минуты); производительность - большая или средняя;
• требования безопасности и надежности - высокие и критические;
• вычислительная система и среда — микропроцессорное управление или сложные системы реального времени;
• требования к вычислительным ресурсам - высокие, почти полное использование ресурсов по основному функциональному назначению.
Имеющаяся статистика технико-экономических показателей разработки ПС различных классов позволила выявить основные факторы, от которых они зависят. Изучены тенденции изменения ТЭП от важнейших параметров. Доказано, что трудоемкость разработки ПС почти линейно зависит от масштаба - размера создаваемых программ. Для учета классов ПС с позиции их ТЭП проведено ранжирование экспериментальных данных и выделены три достаточно различающихся базовых класса (см. табл.1) при одном и том же размере, характеризующиеся:
- максимальной трудоемкостью - встроенные ПС сложных систем реального времени (СРВ);
- средней трудоемкостью - полунезависимые ПС административных, обучающих и информационно-поисковых систем (ИПС);
- минимальной трудоемкостью создания - распространенные ПС, практически независимые от реального времени, аппаратуры систем и внешней среды пакеты прикладных программ (ППП).
Все остальные классы ПС могут быть упорядочены между выделенными классами, и для них получены оценки изменения трудоемкости относительно максимальной для ПС реального времени. Экспериментальные оценки трудоемкости имеют значительную дисперсию, которая обусловлена рядом трудно учитываемых факторов. Малые разработки при небольших коллективах специалистов характеризуется большими коэффициентами вариации значений трудоемкости вследствие высокой ро
Наиболее сильно на ТЭП в жизненном цикле ПС влияют масштаб - размер комплексов программ, а также требования к их качеству. Качество ПС характеризуется многими показателями, состав которых зависит от класса и конкретного назначения комплекса программ. Ниже предполагается, что всегда ПС соответствует заданному функциональному назначению и основным требованиям заказчика к его качеству. По мере повышения требований к качеству затраты на разработку ПС увеличиваются все более высокими темпами. Одновременно расширяется диапазон неопределенности достигаемого качества при некоторых затратах. В зоне высокого качества программ возрастают трудности измерения этих характеристик, что может приводить к необходимости изменения затрат в несколько раз в зависимости от применяемых методов оценки качества ПС. В результате для сложных и сверхсложных ПС всегда есть риск проявления не устраненных ошибок и недостаточной достоверности оценок качества.
Совокупная трудоемкость при создании программ имеет ряд составляющих, при определении которых на практике используются различные единицы (см. табл.1). Трудоемкость характеризуется временем производительного труда определенного числа специалистов, необходимого для создания некоторого ПС, его компонентов или выполнения определенного этапа работ. Такой подход привел к активному использованию единиц трудоемкости: человеко-день, человеко-месяц, человеко-год. При этом человеко-год, предполагается состоящим в среднем из 250 рабочих человеко-дней (с учетом выходных и праздничных дней). Подобные единицы трудоемкости позволяют сопоставлять затраты в разных организациях и даже в разных странах на аналогичные программы и не зависят от особенностей валюты при оценке стоимости. Несмотря на яркую критику «мифического человеко-месяца», пока не предложено разумной альтернативы для экономического анализа проектов ПС, и эти единицы трудоемкости достаточно прочно вошли в практику планирования и оценки процессов разработки ПС.
Специалисты при создании программ различаются квалификацией и степенью участия в непосредственной разработке комплексов программ. Встречаются особо талантливые программисты, способные создавать очень быстро программы высокого качества. Однако при любых способностях есть предел, доступный разработчику - одиночке, и он редко превышает 10 тыс. строк в год. Кроме того, даже в этом случае такому программисту необходима помощь при составлении тестов, оформлении документации, испытаниях и ряде других работ, обеспечивающих превращение программы в программный продукт. При разработке сложных ПС пишут и отлаживают программы только около половины общего числа лиц, затраты на которых необходимо учитывать при технико-экономическом анализе. Остальные специалисты осуществляют руководство проектом, проводят системный анализ, исследуют алгоритмы, оформляют документацию, выполняют вспомогательные технические работы. Их трудозатраты направлены либо полностью на создание определенного ПС, либо распределяются между несколькими проектами. Если специально не оговаривается, то далее учитываются в затратах на комплекс программ все категории специалистов в соответствии с их долей участия в создании конкретных программ определенного проекта.
Для учета затрат времени коллектива специалистов на конкретный комплекс программ (см. табл.1) особенно трудно зафиксировать начало разработки. Дело в том, что системный анализ зачастую входит в научно-исследовательские работы, финансируемые, планируемые и учитываемые независимо от конкретного программного проекта. В ряде случаев первичная разработка концепций ПС является обобщением опыта создания и эксплуатации ранее разработанных, унаследованных программ. Системный анализ, исследования и моделирование алгоритмов иногда в последующем реализуются в нескольких ПС, и весьма трудно оценить долю затрат исследовательских работ, которую следует отнести к каждому конкретному проекту. Перечисленные обстоятельства привели к тому, что затраты на системный анализ и предварительные исследования могут различаться на один-два порядка и обычно не включаются в совокупные затраты на создание ПС, что соответствует практике выделения и отдельного учета затрат на научно-исследовательские работы в промышленности. При последующем изложении началом разработки считается создание технического задания или спецификации требований, согласуемых с заказчиком или будущими пользователями ПС.
Окончанием разработки для прекращения учета затрат при оценке ТЭП конкретного проекта далее принимается момент завершения межведомственных или государственных испытаний ПС и оформления акта соответствующей комиссии заказчика. Однако при анализе реальных проектов эта граница оказывается тоже размытой, как и начальная, хотя и в меньшей степени. Это обусловлено разнообразием видов испытаний, возможностью проведения испытаний ПС по отдельным функциональным задачам, различием способов формализации передачи программ на эксплуатацию.
Суммарные затраты на создание комплекса программ, являются основным интегральным экономическим показателем каждой разработки. Эти затраты подлежат оценке и минимизации при условии обеспечения заданных функциональных характеристик ПС и его качества. Полный анализ и оптимизацию суммарных затрат на проект целесообразно проводить на всем жизненном цикле программ. При этом, в ряде случаев, желательно учитывать затраты на сопровождение и на эксплуатацию ПС. Эти виды затрат характеризуются значительной неопределенностью из-за сложности прогнозирования длительности жизненного цикла, тиража ПС, степени развития программ и затрат на сопровождение.
На начальных этапах разработки для прогнозирования ее трудоемкости и суммарных затрат необходимо применять рациональные гипотезы об особенностях жизненного цикла конкретного ПС. Даже приблизительный учет распределения вероятных затрат на этапах жизненного цикла позволяет более эффективно использовать экономические ресурсы при создании ПС. При этом условия, обеспечивающие минимум суммарных затрат на всем жизненном цикле ПС, могут приводить к необходимости принципиального изменения предполагаемого процесса разработки программ, при котором достигается минимум только на интервале создания ПС. В связи с этим последующий анализ суммарных затрат на разработку ПС проводится в двух постановках задачи: автономно на интервале разработки программ без учета последующего использования комплекса программ и комплексно с учетом влияния затрат на эксплуатацию и сопровождение программ, что оговаривается в каждом случае.
Длительность разработки комплекса программ зависит от многих факторов и, прежде всего, от сложности ПС. Следует отметить консервативность этой характеристики при создании крупных ПС. Технологический процесс создания любых программ включает ряд этапов, которые обязательно приходится реализовать независимо от затрат. Каждый этап требует некоторого времени, что приводит для конкретных ПС к относительно небольшим (по сравнению с затратами труда) вариациям суммарной длительности разработки. Если разработка ведется на достаточно высоком технологическом уровне, то цикл разработки сложного ПС принципиально трудно сокращать без ущерба для качества программ. Поэтому даже при увеличении затрат труда в несколько раз длительность разработки имеет тенденцию уменьшаться только на проценты.
В то же время множество факторов и неопределенность достигаемого качества программ приводят к тому, что влияние затрат на длительность разработки имеет размытую характеристику. При изменении размеров сложных ПС и трудоемкости в широком диапазоне длительность разработки изменяется мало по сравнению с затратами. Для каждого размера ПС при заданном качестве существует «область невозможного сокращения длительности разработки», которую не удается преодолеть при любом увеличении затрат труда. Для планирования разработки ПС и регулярного управления этим процессом необходимы частные экономические показатели в зависимости от различных факторов. Такие показатели могут формироваться: по этапам разработки, на единицу продукции, как относительные затраты на достижение заданной характеристики качества программ или как составляющие суммарных затрат в жизненном цикле программ.
Технико-экономические показатели на единицу размера программной продукции можно оценивать с использованием унифицированной единицы измерения - оператора (команды) на ассемблере или на строку текста программы (LОС) (см.табл.1). Усредненные затраты труда всех категорий специалистов, участвующих в создании ПС определенного размера, позволяют оценить среднюю производительность труда при разработке программ. В качестве единицы измерения этого показателя ниже используются число операторов ассемблера в месяц на человека или число строк текста программы в месяц на человека для ПС на языках высокого уровня. При этом следует подчеркнуть интегральный характер всех величин, используемых при расчете этой характеристики. Этот показатель особенно важен при сопоставлении экономических характеристик ПС различных классов и размеров, а также для оценки эффективности технологий и средств автоматизации разработки программ. Средниетрудозатраты на создание каждой команды (оператора) в ПС соответствуют обратной величине производительности труда при разработке, измеренной в операторах на один человеко-месяц.
Часто при оценке производительности труда разработчиков программ учитываются трудозатраты только непосредственных участников процесса проектирования без трудозатрат на эксплуатацию ЭВМ и отчислений на амортизацию вычислительной техники. Эти затраты могут быть весьма значительными, однако их не всегда удобно выражать трудоемкостью на команду. Поэтому в качестве экономического показателя на единицу продукции с учетом всех видов затрат иногда применяется стоимость одного оператора или строки текста в завершенном разработкой и испытанном программном продукте, представленная в денежном выражении (руб. или долл. на команду или строку текста).
Технико-экономический анализ разработки ПС в денежном выражении имеет ряд существенных трудностей, которые ограничили его применение при оценке проектов по следующим причинам:
- предприятия и фирмы, создающие ПС, имеют значительные различия в уровне заработной платы специалистов, что не всегда прямо отражается на их производительности труда;
- каждое предприятие имеет накладные расходы и налоги, которые могут значительно различаться и никак не влияют на трудоемкость и длительность непосредственной разработки ПС;
- весьма различны оснащенность предприятий технологиями и средствами вычислительной техники, а также затраты на их приобретение и эксплуатацию;
- из общих затрат на аппаратуру и эксплуатацию технологических ЭВМ и отладочных стендов сложно выделить долю, которую необходимо включить в стоимость разработки конкретного ПС.
Тем не менее, для заключения контрактов на разработку ПС и для оценки интегральных затрат на проекты комплексов программ приходится применять величины затрат в денежном выражении. Для этого вырабатываются соглашения между заказчиком и разработчиком по преодолению перечисленных выше трудностей. Ниже приведены некоторые характеристики разработки программ и влияние ряда факторов на стоимость создания ПС.
Технико-экономические показатели на этап разработки программного средства целесообразно оценивать аддитивными экономическими показателями (см. табл.1). Такими ТЭП, могут служить суммарные трудозатраты на выполнение этапа работ при планировании и создании ПС определенного размера и класса или поэтапные трудозатраты на одну команду - строку текста. Эти характеристики позволяют выявить наиболее трудоемкие этапы и помогают рационально распределять затраты по этапам работ. В поэтапных затратах целесообразно выделять совокупные затраты на средства автоматизации разработки, что позволяет выявлять эффективные технологии и средства с учетом стоимости их приобретения и эксплуатации.
Во многих случаях важны не столько затраты на создание ПС сколько длительность разработки. Локальное ускорение отдельных этапов разработки (особенно начальных) может приводить к значительному увеличению длительности других этапов и к общему возрастанию длительности проектирования. Поэтому совершенствование технологии и средств автоматизации проектирования сопряжено с перераспределением затрат и длительностей этапов работ с целью сокращения общей длительности разработки проекта, в некоторых случаях даже за счет увеличения суммарных затрат.
Характеристики ошибок при разработке программ значительно влияют на затраты при создании программ (см. табл.1). Поэтому целесообразны оценки относительных и абсолютных трудозатрат на устранение ошибок. Общие тенденции состоят в быстром росте затрат на выявление каждой ошибки по последовательным этапам разработки программ. Поэтому экономически целесообразно в максимальной степени выявлять ошибки на начальных этапах ЖЦ ПС. Это, естественно, приводит к увеличению затрат и длительности этих этапов, однако способствует минимизации суммарных затрат идлительности разработки проекта в целом.
Характеристики ошибок непосредственно связаны с достигаемыми корректностью, безопасностью и надежностью функционирования программ. Изучение характеристик ошибок при разработке реальных программ позволило создать ряд математических моделей, обеспечивающих возможность прогнозирования длительности разработки и затрат, необходимых для достижения определенной безопасности и надежности программ. Анализ и обобщение характеристик выявленных и устраненных ошибок в процессе разработки позволяет контролировать и прогнозировать качество программ при аналогичных разработках.
Стремление заказчиков резко ускорить разработку, снизить затраты или нерационально увеличить нормативы для специалистов, всегда сопряжено со снижением качества в трудно оцениваемых пределах. При рассмотрении ТЭП разработки ПС ниже предполагается достаточно высокое, однако, не всегда зафиксированное качество программ. Имеющиеся попытки введения заказчиками нормативов на ТЭП для разработчиков либо не способствуют выполнению их управляющей и регламентирующей роли (если они занижены), либо приводят к снижению качества программ (если они завышены). Поэтому приводимые далее ТЭП следует использовать с учетом всех условий, для которых они получены, и нецелесообразно применять в качестве нормативов при конкретных разработках. Они могут служить только ориентирами для оценки и обоснования экономических характеристик аналогичных проектов ПС.
Выбор и применение единиц измерения размера программ одна из самых сложных задач при анализе и формализации объектов разработки изатрат на их создание. Этот параметр в современной практике, среди всех факторов, влияющих на ТЭП, изменяется в самом широком диапазоне на три — четыре порядка от 103 до 107 строк текста программ. Поэтому методам его оценивания ниже уделяется большое внимание.
Неопределенность единиц измерения размера комплексов и компонентов программ значительно влияет на численные значения показателей и их разброс в опубликованных работах. Этому также способствует неоднозначность учитываемых этапов разработки программ икатегорий специалистов, трудозатраты которых заметно влияют на ТЭП. При одних и тех же процессах измерения объектов разработки и затрат на их создание методики определения количественных значений основных показателей пока не формализованы, что вносит дополнительную дисперсию в их значения, приводимые в различных исследованиях. В результате могут делаться различные и даже принципиально неверные выводы, например, об очень высокой эффективности некоторых частных технологических методов или инструментальных систем автоматизации разработки ПС. Для уменьшения этих неопределенностей и возможных методических ошибок в ТЭП программ необходимо определить основные понятия и единицы измерения: размера или масштаба программ, трудозатрат на их разработку, производительности труда специалистов и некоторых частных характеристик (см. табл.1).
Оценку размера комплекса программ и трудозатрат приходится выполнять неоднократно во время жизненного цикла, причем после каждого оценивания повышается уровень доверия к полученным результатам. Точность оценки значительно повышается после формулирования начальных требований и спецификаций заказчиков, проведения анализа требований, после завершения разработки проекта. Хороший менеджер проекта обязан взять себе за правило оценивать (повторно) размеры ПС, используя результата оценивания в качестве выходных критериев для каждого этапа. Известно, что программисты весьма плохо справляются с проблемами оценивания результатов своего труда. К этому выводу приводит факт, что около 15% программных проектов не доводятся до завершения, так как прогнозы по поводу предполагаемой производительности разработчиков весьма далеки от совершенства. Несоответствие производительности изначально предполагаемым показателям, может иметь две следующие причины: плохая работа специалистов или некорректная техника и методы оценки ТЭП. Имеется множество свидетельств плохо выполненной оценки, однако практически невозможно доказать, что персонал не трудился усердно над разрешением проблемы, либо не является в достаточной степени компетентным. Разработчиков зачастую нельзя призвать к ответственности за такие результаты. Все начинается с прогнозирования размеров ПС, оценивание и достоверность которых обусловлены следующими факторами:
- проблема может быть недостаточно хорошо понята разработчиками и/или заказчиками из-за того, что некоторые факты были упущены или искажены из-за предвзятого к ним отношения;
- недостаток либо полное отсутствие исторических данных и прототипов не позволяет создать базу для оценок и прогнозирования в будущем;
- специалисты-оценщики могут потерпеть неудачу при попытке описания того, насколько большой может быть система или комплекс программ, еще до их создания или даже еще до этапа разработки предварительного проекта;
- проектирующая организация не располагает стандартами, с помощью которых можно выполнять процесс оценивания (либо в случае наличия стандартов их никто не придерживается); в результате наблюдается недостаток совместимости при осуществлении процесса оценивания;
- менеджеры проектов полагают, что было бы неплохо фиксировать требования в начале проекта, заказчики же считают, что не стоит тратить драгоценное время на разработку спецификации требований и оценки размеров проекта;
- для достижения желаемой четкости в функционировании других частей системы (интерфейсов наследованной системы, аппаратного обеспечения и т.д.) могут потребоваться дополнительные компоненты ПС, что скажется на размерах программного продукта; имеет место недостаточно четкое представление об ограничениях на уровне системы и возможностях совершенствования рассматриваемого программного продукта.
Исследованию различных единиц измерения, используемых при оценке размеров ПС, посвящены рассмотрению некоторых наиболее часто используемых из них. Выбор этих единиц зависит от конкретного проекта и потребностей организации. За рубежом чаще всего размер ПС определяется в терминах строк кода (Lines of Code - LОС), функциональных точек и точек свойств. Вне зависимости от того, оценивается ли конечный продукт, как в случае с применением показателя LОС, либо некоторая его абстракция или модель, в данном случае оценке подвергаете то, чего еще нет в природе. Поэтому оценивание размеров ПС представляет значительные трудности.
Размер или масштаб программ в настоящее время приводится в публикациях в различных единицах, что может изменять их численные значения для одних и тех же программ в несколько раз. В качестве таких единиц чаще всего используются численные значения: строк текста программы на языке программирования, предложений на ассемблере, символов в тексте программы, байт или команд в объектном коде после трансляции (табл.1). Каждая из этих единиц измерения имеет некоторые преимущества при определенных целях исследования. Однако при сравнительном технико-экономическом анализе различных проектов применение в каждом из них отличающихся единиц для характеристики объекта разработки приводит к дополнительному разбросу численных значений размеров и к несопоставимости измеренных технико-экономических показателей.
Важная задача при оценивании ТЭП состоит в выборе базовых унифицируемых единиц измерения исходного текста и исполняемых (объектных) программ, при применении которых имеется наибольшая корреляция этих видов измеряемых размеров программ. Для остальных единиц измерения необходимы методы пересчета к базовым единицам с учетом особенностей языков программирования, применяемых трансляторов и архитектуры ЭВМ. Кроме того, следует определять коэффициенты корреляции с базовыми единицами измерения при применении остальных единиц. С этих позиций наиболее адекватной единицей измерения объема программ является число операторов на машино-ориентироваином ассемблере, которое имеет корреляцию с числом команд в объектном коде реализующей ЭВМ, близкую к единице. В этом случае при сопоставлении измеренных объемов программ влияет единственный фактор - архитектура реализующих ЭВМ. Этот фактор может учитываться путем небольших коэффициентов перевода, определяемых путем анализа особенностей структуры и системы команд ЭВМ, а также конкретного ассемблера. Для сопоставления численных значений объемов программ следует выделять базовый, наиболее широко применяемый ассемблер.
5. Оценка технико-экономических показателей программных средств.
Основными ресурсами у разработчиков при создании сложных комплексов программ являются: допустимые трудозатраты на разработку ПС стребуемым качеством; время - длительность полного цикла создания программного продукта; необходимое и доступное число специалистов соответствующей квалификации. Потребность в этих ресурсах в наибольшей степени зависит от размера - масштаба и сложности разрабатываемого ПС. Когда впервые рассматривается масштаб нового проекта ПС, интуитивные и экспертные оценки его трудоемкости могут отличаться от конечного значения примерно в полтора раза в ту или другую сторону. Рисунок 1 иллюстрирует достоверность, с которой могут быть получены оценки трудоемкости или стоимости ПС, представленные в виде функции этапа ЖЦ (горизонтальная ось), или уровень знаний о предполагаемой работе над ПС. Такая достоверность оценок обусловлена уровнем неопределенности на данном этапе знаний о конечном содержании и возможном размере программного продукта. Хотя на рис.1 представлена симметричная картина, общая тенденция состоит в том, что на начальных этапах оценки затрат чаще всего занижаются.
Эта неопределенность уменьшается по мере детализации и углубления содержания и функций проекта, как только фиксируются конкретные принципы функционирования и концепция ПС. На этом этапе оценка достоверности размера уменьшается приблизительно до 40%.
Рис.1
Это вполне объяснимо, поскольку еще не уточнены структура и многие детали проекта. Эти вопросы могут быть разрешены во время разработки структуры и спецификаций требований к ПС и тогда можно оценить размер ПС с точностью до 15 -20%. После завершения разработки и подтверждения проектных спецификаций при детальном проектировании комплекса программ может быть определена структура внутренних данных и функции программных компонентов. На этом этапе оценка размера и трудоемкости проекта может составить около 10%. Неопределенности оценок могут быть обусловлены: особенностями конкретных алгоритмов, управления их работой, обработки ошибок, инициализации и завершения сеансов работы и т.д. Эти уточнения размеров ПС и компонентов могут быть решены к концу детального проектирования, однако при этом сохраняется неопределенность оценки размера комплекса программ и его трудоемкости порядка 5 - 10%, связанная с тем, насколько хорошо программисты понимают спецификации, в соответствии с которыми они должны кодировать программу. Основной вывод, вытекающий из рис.1, состоит в необходимости быть последовательным при определении исходных данных при оценке ТЭП для различных компонентов программного продукта и этапов проектирования.
В общем случае желательно достигать сбалансированного набора целей оценивания ТЭП комплекса программ, который бы давал примерно одинаковую величину уровня неопределенности для всех исходных данных и компонентов ПС. По мере выполнения проекта, оценки ТЭП необходимо пересматривать и изменять, когда это становится выгодным или необходимым. Можно начинать с определения оценок трудоемкости в соответствии с точностью определения размера ПС по данным спецификаций требований с учетом минимума факторов, но при дальнейшем анализе уточнять оценки с точностью деталей функционирования и с учетом влияния совокупности важнейших факторов и характеристик проекта.
Рис.2
При оценках ТЭП целесообразно учитывать:
- цели оценивания ТЭП должны быть согласованы с потребностями в информации, способствующей принятию решений на соответствующем этапе проекта ПС;
- достоверность оценок ТЭП должны быть сбалансированы для различных компонентов системы и величина уровня неопределенности для каждого компонента должна быть примерно одинаковой, если в процессе принятия решения все компоненты имеют одинаковый вес;
- следует возвращаться к предшествующим целям оценивания и изменять их, когда это необходимо для ответственных бюджетных решений, принимаемых на ранних этапах и влияющих на следующие этапы.
Измерение размера, оценка и составление графика разработки сложным образом переплетаются в процессе планирования проекта. На самом деле довольно сложно создать реальный график (учитывающий обязанности исполнителей, их зависимости, перекрытие действий, а также дату поставки продукта) без информации об объеме трудозатрат, требуемых для выполнения каждой задачи (например, определения нагрузки сотрудников на месяц). Достаточно трудно оценить объем трудозатрат, необходимых для выполнения задачи, без достоверной информации относительно ее размера. Таким образом, измерение размера (сложности) предшествует оценке ТЭП, а эта оценка, в свою очередь, предшествует составлению графика работ. Каждое из этих важных действий проекта может быть выполнено с помощью различных методик. Недостаточно достоверные оценки влекут проблемы взаимодействия разработчика с заказчиком и увеличивают степень риска проекта.
В индустрии ПС часто обращаются к использованию метрики LОС, единицы измерения, хорошо знакомой практикам в области разработки ПС. Они находят ее комфортной и простой в применении. Какая бы технология не использовалась, оценка размера будущего продукта является весьма важной, поскольку она является частью одной наиболее важной задачи проекта: установка реальных ожиданий. Нереальные ожидания, основанные на неточных оценках, представляют собой одну из частых причин провала проектов. Зачастую причина кроется не в недостаточной производительности команды проекта, а в неточном предвидении уровня этой производительности и размера проекта. Точное оценивание ТЭП обеспечивает улучшенный контроль над проектом и является жизненно важным в деле проектного менеджмента. Для обеспечения точного оценивания в первую очередь следует иметь представление относительно размера продуцируемого ПС. Эта величина должна определяться на ранних стадиях цикла разработки и выражаться в единицах, которые являются достаточно простыми.
Исходные данные реальных завершенных разработок для оценивания ТЭП, собираются, накапливаются и обрабатываются, с начала 70-х годов в разных отечественных организациях и за рубежом. Они позволили получать и прогнозировать основные обобщенные технико-экономические показатели процессов разработки ПС. При этом компоненты операционных систем, драйверы, средства контроля и тестирования, а также повторно используемые компоненты обычно не учитывались при оценке размера вновь созданных комплексов программ и трудоемкости их полной разработки. Поэтому технико-экономические показатели проектов этого периода можно отнести к полностью оригинальным разработкам комплексов программ. При этом обычно рассматривался полный технологический процесс разработки ПС от начала подготовки технического задания (ТЗ) до завершения испытаний базовой версии ПС. Учитывались все категории специалистов, участвующих в создании программ и обеспечивающих разработку, а также все виды работ, связанные с созданием программного продукта на выделенном интервале времени. Теоретические работы и системный анализ до подготовки ТЗ в значениях ТЭП не учитывались.
Наиболее полно и подробно основные закономерности и влияние факторов на технико-экономические показатели процессов разработки сложных ПС в 70 - 80 годы, представлены в материалах Б.У. Боэма под названием «Инженерное проектирование программного обеспечения» для более десяти моделей прогнозирования. В 1981 году на основе исследования процессов разработки 63 проектов ПС опубликована модель прогнозирования ТЭП под названием КОМОСТ. В последующем, эта модель развита, детализирована и опубликована как СОСОМО, а в 2000 году под названием СОСОМО II. В этой модели на основе анализа более 160 реальных проектов разработки комплексов программ различной сложности уточнены рейтинги влияния выделенных факторов на основные ТЭП. Эти данные ниже используются и рекомендуются как базовые для прогнозирования затрат при создании ПС.
Кроме того, в 1988 году опубликованы результаты анализа ТЭП комплексного проекта ПРОМЕТЕЙ на основе обобщения результатов разработки свыше 250 отечественных проектов сложных ПС, отдельные фрагменты которых также использованы ниже. В общем случае для оценки технико-экономических характеристик новых проектов необходимы исходные данные:
- обобщенные характеристики использованных ресурсов и технико-экономические показатели завершенных разработок - прототипов ПС, а также оценки влияния на их характеристики различных факторов объекта и среды разработки;
- реализованные и обобщенные перечни выполненных работ и реальные графики проведенных ранее разработок различных классов ПС;
- цели и содержание частных работ в процессе создания сложных комплексов программ и требования к их выполнению для обеспечения необходимого качества ПС в целом;
- структура и содержание документов, являвшихся результатом выполнения частных работ.
Наиболее важен учет и анализ факторов на начальных этапах разработки, когда прогнозируются первичные совокупные затраты Ср на создание ПС (табл.1). На этих этапах неопределенность оценки параметров и факторов наибольшая (рис.1), тем не менее применение приводимых характеристик позволяет избегать наиболее крупных ошибок при оценке затрат, которые делаются экспертами без детального анализа влияния факторов. Подобный анализ является базой для рационального распределения ресурсов и для управления их использованием по мере развития проекта. Учет и прогнозирование возможного изменения затрат в зависимости от основных параметров способствует упорядочению процесса разработки ПС и концентрации усилий на тех факторах, которые могут дать максимальный эффект уменьшения затрат в конкретных условиях создания комплекса программ. После проведения структурного проектирования и распределения ресурсов ПС возможна ошибка в оценке затрат на разработку приблизительно в полтора-два раза меньше, а перед программированием она может уменьшаться до 10 - 15%. Такие достоверности можно получить, конечно, только при подробном анализе и оценке влияния важнейших факторов.
Этапы жизненного цикла программ существенно различаются между собой степенью определенности и прогнозируемости их характеристик. Соответственно изменяются возможности подготовки и достоверность планов проведения работ. В процессе разработки сложных программных средств уточняются и детализируются их спецификации требований, функции, структура и характеристики компонентов. Поэтому на начальных этапах, особенно принципиально новых проектов, трудно спланировать точно все последующие этапы. В результате планирование проводится итерационно в соответствии с последовательным повышением достоверности и точности сведений об объекте и среде разработки.
Разработка сложных ПС, особенно на начальных и завершающих этапах, характеризуется высокой долей творческого труда. Поэтому трудоемкость и длительность отдельных операций и частных работ существенно зависят от индивидуальных особенностей их исполнителей и характеристик конкретного проекта. Вследствие этого отсутствует достоверная кооперационная статистика разработки программ, и пока невозможно создать типовые нормативы на большинство частных операций при создании ПС. Отсюда принципиальной особенностью планирования разработки комплексов программ является активное участие руководителей и заказчиков проекта в составлении планов на базе исследованных характеристик прототипов завершенных разработок ПС и их личного опыта. Такие планы должны иметь разумные ограничения в детализации работ на уровне, обеспечивающем необходимую управляемость всего процесса проектирования. В процессах и системах автоматизации планирования и управления разработкой ПС целесообразно учитывать следующие их особенности:
- последовательную, иерархическую детализацию и поэтапное уточнение планов и прогнозов в соответствии с повышением полноты и достоверности исходных данных об объекте и среде разработки, получаемых в процессе создания ПС;
- использование прототипов технико-экономических показателей, перечней и графиков частных работ как основных исходных данных для прогнозирования и планирования разработки новых ПС;
- целесообразность и возможность выбора первичного прототипа перечня работ, достаточно адекватного исходным данным проектируемого ПС, и возможность его уточнения проектировщиком;
- регистрацию, обобщение и хранение реализованных рабочих планов и значений ТЭП для их использования в качестве прототипов при планировании последующих аналогичных разработок.
Таким образом, в процессе планирования после использования прототипов для прогнозирования и планирования очередной разработки происходит ее реализация, данные которой могут быть использованы в качестве прототипов для последующих проектов. Тем самым может быть создана последовательно уточняющаяся база данных, позволяющая повышать достоверность прогнозирования и планирования разработок ПС определенного класса. Внутри этого цикла может происходить разработка конкретного ПС, для которой характерно также последовательное уточнение и детализация прогнозов и планов.
В качестве базового варианта целесообразно принять статистические данные ТЭП, перечень работ и документов жизненного цикла создания наиболее сложного встроенного комплекса программ реального времени (табл.1). На основе этих исходных данных могут быть оценены ТЭП для полного цикла разработки ПС конкретного вида в более простых случаях путем исключения из базового варианта работ и документов, в которых отсутствует необходимость. По оставшимся работам могут быть оценены ТЭП для вариантов и выбран из них предпочтительный. Для технико-экономического анализа процесса создания программ важнейшей составляющей являются совокупные трудовые затраты - трудоемкостьС на непосредственную разработку ПС.
Трудоемкость разработки программных средств наиболее сильно зависит отразмера — масштаба программ, выраженного числом операторов на ассемблере или строк на языке программирования высокого уровня. В п. 4 обсуждался вопрос о способах и единицах измерения размера разрабатываемых программ и обоснована целесообразность проводить эти оценки в числе операторов (команд) на языке ассемблера. Реальное изменение создаваемых в настоящее время сложных ПС от 104 до 107 строк (LОС) определяет диапазон трудоемкости разработки таких программ от человеко-года до десятков тысяч человеко-лет. Широкий диапазон изменения размера создаваемых программ в наибольшей степени определяет значения суммарной трудоемкости их разработки. Подтверждена по большому числу проектов высокая статистическая корреляция между размером комплексов программ в операторах на ассемблере и трудоемкостью их разработки. С другой стороны, отсутствуют какие либо данные о значительном преимуществе других мер размера и сложности при прогнозировании затрат на разработку сложных и сверхсложных ПС. Объем программ в числе операторов на ассемблере характеризуется простотой и экономичностью определения, а также удобством для расчетов и прогнозирования.
Опыт подсказывает, что по мере увеличения размера комплекса программ возрастают не только абсолютные, но и относительные затраты на разработку каждой строки текста в программе. Вследствие этого затраты труда при разработке одной строки текста в программах разного объема могут различаться в несколько раз. Согласно материалам М.Х. Холстеда («Начала науки о программах»), трудоемкость разработки программного модуля пропорциональна квадрату размера программы. Модульно-иерархическое построение крупных ПС позволяет замедлить квадратичный рост сложности и соответствующей ей трудоемкости разработки при увеличении размера программ. Суммарную трудоемкость разработки сложного ПС можно представить двумя сомножителями. Первый сомножитель является доминирующим, он прямо пропорционален размеру программ П и отражает практически линейное возрастание трудоемкости создания любых программ при увеличении их размера.
Однако при увеличении размера программ в ряде случаев наблюдается более быстрый рост их сложности разработки, чем описываемый простой линейной зависимостью. Логично предположить, что по мере увеличения размера ПС возрастает относительная трудоемкость разработки каждой строки в программе. Это обстоятельство можно учесть поправочным вторым сомножителем, отражающим изменение трудоемкости на разработку каждой строки в программе при увеличении ее размера.
В ряде исследований размер базы данных либо совсем не учитывается, либо включается в объем ПС. Этому способствует также развитие теории сложности в направлении преимущественного анализа функциональной сложности программ при почти полном игнорировании сложности данных и их влияния на технико-экономические показатели. В статистической теории сложности программ показано, что для программных модулей и относительно небольших групп программ велика корреляция между числом имен переменных и числом операторов в программе. Однако для сложных и сверхсложных ПС эта корреляция меньше, что определяет необходимость разделения ПС на два типа: на осуществляющие преимущественно логическую обработку относительно небольшого потока данных и на информационно-поисковые системы при наличии больших баз данных и относительно простой их логической обработке. Для характеристики этих типов программ может использоваться отношение числа имен переменных к числу строк или операторов текста программ. Для первого типа ПС это отношение не превышает десяти процентов, а для второго оно может значительно превышать единицу и достигать десятков и сотен. Затраты при разработке ПС второго типа оказываются зависящими от размера базы данных, который влияет на сложность взаимодействия программ с данными.
Хотя размеры базы данных для сложных ПС по числу типов имен переменных изменяются в очень широких пределах, приблизительно от 103 до 108 , их непосредственное влияние на трудоемкость разработки строки в программе даже при числе переменных, в десятки раз превышающем размер программы, оценивается на уровне 10%. При этом степень этого влияния трудно формализовать, так как большую роль играет структура базы данных и ее функциональное назначение. Поэтому далее этот фактор отдельно не учитывается и только для очень больших и сложных структур баз данных рекомендуется увеличивать трудоемкость на десяток процентов.
Накопленный опыт создания ПС позволил выделить группы факторов, влияющих на выбор технологии и на затраты С (рис.2). Абсолютная величина С, так же как и длительность разработки, зависят от ряда факторов, которые могут изменять их в различных направлениях. Наибольшее влияние на них оказывает размер ПС, который из всех параметров изменяется в самом широком диапазоне. Поэтому при первичной оценке непосредственных затрат и длительности полного цикла разработки сложных ПС размер программ используется в качестве базового доминирующего параметра. Остальные факторы можно учитывать поправочными коэффициентами при уточнении интегральных показателей.
Для совокупностей ПС первого и второго классов, исследовалась зависимость трудоемкости разработки программ С от их объемов - П. Для аппроксимации зависимости трудоемкости от размера ПС наиболее часто использована степенная функция вида:
С = АхПЕ(1)
При разработке ПС большого размера в значительной степени, должна возрастать сложность разработки по сравнению с ПС малого объема, так как в больших программах существенно усложняются взаимосвязи компонентов по информации и управлению, а также становятся более трудоемкими процессы планирования и управления проектом в ходе разработки. Выдвинутая гипотеза, о возрастании трудоемкости разработки с ростом размера ПС быстрее, чем по линейному закону, справедлива, если показатель степени в полученном уравнении регрессии Е > 1. По методу наименьших квадратов в ряде работ определены коэффициенты A и Е в уравнениях степенной регрессии, показывающие характер зависимости трудоемкости от размера ПС. В таблице 3.1. представлены значения коэффициентов регрессии для моделей КОМОСТ, СОСОМО и ПРОМЕТЕЙ, для основных классов проектов программных средств. Выражение (1) с использованием этих коэффициентов и значений П размера ПС в тысячах строк ассемблера рекомендуется для прогнозирования трудоемкости полной разработки в человеко-месяцах.
Таблица 2
Коэффициенты моделей для оценки трудоемкости разработки
программных средств
Коэффициент А | Коэффициент Е | Модель и тип программных средств |
2,4 | 1,05 | Базовая - КОМОСТ |
3,6 3,0 2,4 | 1,20 1,12 1,05 | Детализированная модель СОСОМО: - встроенный; - полунезависимый; - независимый. |
2,94 | 1,15 | СССОМО 11.2000 Крупный проект 100 KSLOC |
10,0 6,1 | 1,21 1,17 | ПРОМЕТЕЙ Системы реального времени; Информационно-поисковые системы. |
При разработке крупномасштабных ПС делаются большие затраты на создание технологии, средств автоматизации и унификации разработки, чем при разработке малых ПС. Небольшие ПС часто разрабатываются неопытными коллективами, которые к тому же пренебрегают автоматизацией технологии и применением современных методов структурного проектирования комплексов программ. Так как малые ПС во многих случаях относятся исторически к первому временному периоду — 70 - 90-е годы, когда уровень автоматизации технологии был низок, то и трудоемкость их разработки была достаточно высокой. Эти обстоятельства приводят к тому, что возрастает трудоемкость создания относительно небольших. ПС, а рост суммарных затрат на разработку крупных ПС замедляется, что отражается на величине показателя степени Е, значения которого в некоторых анализируемых выборках иногда получены меньше единицы.
Если бы представилась возможность получить ТЭП по однородной выборке ПС разного объема, разработанных по единой технологии на более или менее одном интервале времени, то, конечно, трудоемкость возрастала бы при увеличении П с коэффициентом Е > 1. На практике часто пользуются упрощенной линейной зависимостью трудозатрат от размера ПС (Е = 1). Такое упрощение при недостаточном объеме статистических данных и отсутствии сведений по заранее обусловленным (управляемым) значениям факторов разработки ПС иногда можно считать допустимым.
На рис. 3 по уравнениям регрессии (1) построены в логарифмическом масштабе зависимости трудозатрат от размера для ПС двух классов. Первый (встроенные - СРВ) и второй (ИПС) классы ПС, отчетливо различаются по трудоемкости разработки. Более высокой точности оценки трудоемкости разработки только по одной переменной - размеру ПС, по-видимому, невозможно получить, так как процесс разработки зависит от большого числа факторов, которые следует учитывать при оценке трудоемкости. Наибольшие трудозатраты обычно необходимы для разработки крупномасштабных комплексов программ реального времени, так как данный класс программ используется в наиболее ответственных автоматизированных системах.
Затраты на разработку С и объем программ П могут быть связаны через показатель интегральной средней производительности труда разработчиков Р.
Рис.3
Для учета влияния на С различных факторов удобно пользоваться коэффициентами (рейтингами) изменения трудоемкости (КИТ) - M(i, j), учитывающими зависимость j-го фактора от i-й составляющей совокупных затрат. В них входят факторы процесса непосредственной разработки, факторы программной и аппаратурной оснащенности, а также квалификация специалистов. Непосредственно затраты на разработку можно представить как частное от размера ПС и производительности труда Р = 1 / А, корректируемой произведением коэффициентов изменения трудоемкости (КИТ - М (i, j) ):
П Е
C= хПM(i, j) = Aх ПЕ хПМ(i, j) (2)
Р i,j i,j
Длительность разработки программных средств является важнейшим технико-экономическим показателем, поскольку часто она определяет общие сроки разработки систем, а значит, быстроту реализации идей в различных областях автоматизации. В таблице 3 за начало разработки ПС принят момент начала создания технического задания (Т3), а за окончание — завершение испытаний программного продукта в целом или момент предъявления его на испытания.
Таблица 3
Коэффициенты моделей для оценки трудоемкости разработки
программных средств
Коэффициент | Коэффициент | Модель и тип |
G | Н | программных средств |
2,5 | 0,38 | Базовая - КОМОСТ |
Детализированная модель СОСОМО: | ||
2,5 | 0,32 | - встроенный; |
2,5 | 0,35 | - полунезависимый; |
2,5 | 0,38 | - независимый. |
СССОМО 11.2000 | ||
3,67 | 0,328 | Крупный проект 100 KSLOC |
ПРОМЕТЕЙ | ||
3,51 | 0,31 | Системы реального |
времени; | ||
3,78 | 0,28 | Информационно-поисковые системы. |
Диапазону размеров современных ПС в три-четыре порядка (до 10 млн. строк) соответствуют приблизительно такие же диапазоны изменения трудоемкостей и стоимостей их разработок. Однако, очевидна принципиальная нерентабельность разработки даже очень сложных ПС более 5 лет. С другой стороны, программы даже в несколько тысяч строк по полному технологическому циклу с испытаниями как продукции редко создаются за время, меньшее, чем полгода-год. Таким образом, вариация длительностей разработок ПС много меньше, чем вариация их трудоемкостей, и не превышает десятикратный диапазон. Длительности разработок Т ограничены сверху и снизу, и одним из основных факторов, определяющих эти границы, является объем программ – П.
Относительный «консерватизм» значений длительностей по сравнению с трудоемкостью определяется объективной необходимостью создавать ПС в рациональные сроки.
Любые ПС должны поступать на эксплуатацию до того, как в
них пропадает необходимость. Их цели, концептуальная основа и алгоритмы не должны устареть за время разработки. Отсюда появляется верхний предел допустимых длительностей разработки. Этот верхний предел не может иметь единственное значение для любых классов и объемов ПС. Однако недопустима его вариация в том же диапазоне, что и размер. Поэтому на практике по мере возрастания размеров ПС увеличиваются коллективы специалистов-разработчиков, что обеспечивает основной прирост необходимой трудоемкости. Чем крупнее создаваемое ПС, тем большие усилия обычно прилагаются для автоматизации и совершенствования технологии разработки. Это также способствует замедлению роста длительностей разработки, однако по мере увеличения сложности программ, длительность их разработки все же заметно возрастает.
Стремление ограничивать длительность реальных разработок ПС приводит к объективному формированию верхнего предела, за которым распространяется зона «нерациональных» длительностей, зависящих от размера и трудоемкости ПС. Даже для довольно сложных ПС, имеющих размер свыше 500 тыс. строк, вряд ли допустима длительность разработки более 3-5 лет. Большие длительности, иногда имеющиеся на практике, обусловлены в основном низкой квалификацией разработчиков и заказчиков, недостаточной автоматизацией технологии, малым коллективом специалистов и рядом других, преимущественно организационных и технологических причин. Подобные ситуации чаще встречаются при относительно небольших разработках (10 - 50 тыс. строк), когда у руководителей и коллектива мал опыт их проведения, следствием чего является избыточный оптимизм в начале разработки, а также пренебрежение технологией и организацией работ.
Границу снизу определяют естественный технологический процесс коллективной разработки и необходимость выполнения ряда взаимоувязанных работ на последовательных этапах, которые обеспечивают получение ПС требуемого качества. Подготовка текстов программ, их тестирование, комплексирование, документирование и испытания могут проводиться только последовательно, и каждый этап требует определенного времени. Попытки форсировать отдельные этапы работ, как правило, приводят к увеличению продолжительности других этапов. Подключение дополнительных специалистов увеличивает затраты на разработку и только в некоторых пределах дает сокращение сроков. В некоторых случаях увеличение числа специалистов может давать обратный эффект - длительность разработки увеличивается вместе с увеличением затрат.
Под воздействием перечисленных факторов формируется объективный минимум длительностей - граница снизу области «невозможного», зависящая в первую очередь от объема, разрабатываемых ПС. Нижняя граница длительностей еще более «консервативна», чем верхняя. Изменение этой границы возможно в небольших пределах только за счет совершенствования технологии, повышения программной и аппаратурной оснащенности разработки, а также роста коллективной квалификации разработчиков и заказчиков.
Практическая граница «нерациональных» длительностей имеет значения, приблизительно вдвое большие, чем значения границы «невозможных» длительностей, при том же объеме ПС. Это означает, что даже большие усилия по автоматизации и организации разработки программ приводят к сокращению длительностей только в 2 - 3 раза, в то время как трудоемкость уменьшается значительно больше. По результатам реальных разработок может быть оценена средняя или наиболее вероятная длительность разработок ПС определенного класса при заданных условиях. Конкретное распределение длительностей зависит от исходных данных, имеющихся в базе данных технико-экономических показателей завершенных разработок, и от метода их усреднения.
Для конкретного планирования длительностей создания ПС определенных классов необходимо для каждого предприятия исследовать и обобщать технико-экономические показатели реальных разработок, однородных по технологии и другим условиям. Такие обобщения при конкретных условиях разработок позволяют получить опорные абсолютные значения длительностей для некоторых размеров ПС. Эти абсолютные значения могут быть использованы для расчета коэффициентов регрессии с целью прогнозирования длительностей разработок на базе выявленных закономерностей и реальных опорных значений для конкретных условий разработки.
Обобщенные данные длительности разработки Т по классам программ в ряде работ аппроксимировались уравнениями регрессии по методу наименьших квадратов в зависимости от размера ПС и от трудоемкости их разработки (таблица 2):
T = Gx CН. (3)
Зависимости Т от размера программ П значительно различаются для классов ПС. Это определяется различием сложности классов программ, применяемых языков программирования и единиц измерения объема ПС, следствием чего является различие значений размера созданных программ при одной и той же длительности и трудоемкости разработки. Чтобы исключить ошибки, связанные с неопределенностью измерения размера программ, исследована зависимость длительности разработки от ее трудоемкости. Учитывалась только трудоемкость непосредственной разработки программ С без затрат на средства автоматизации разработки. Обработка тех же, что выше, наборов данных позволила получить коэффициенты уравнения регрессии представленные в таблице 2. Средние значения длительности разработки классов ПС практически не различаются в зависимости от трудоемкости разработки программ.
Оценка требуемого среднего числа специалистов для конкретного проекта ПС предварительно может быть рассчитана путем деления оценки величины трудоемкости разработки (2) на длительность разработки (3). Однако рациональное число специалистов, участвующих в проекте ПС распределяется не равномерно по этапам работ. Поэтому целесообразно определять число и квалификацию необходимых специалистов с учетом этапов разработки комплексов программ.
Средняя производительность труда коллектива специалистов при разработке сложного полностью нового комплекса программ Р в выражении (2) может служить ориентиром для сравнения эффективности труда при создании различных проектов ПС. Эта характеристика, конечно, различается для различных классов, размеров и других параметров комплексов программ, однако диапазон этих различий не столь велик как изменения размера, требований к качеству и других параметров. Так при диапазоне изменения размеров программ СРВ на четыре порядка средняя производительность труда изменяется только в два раза, что в ряде случаев существенно облегчает упрощенные оценки и прогнозирование ТЭП.
При разработке программных модулей и компонентов отдельными специалистами или небольшими группами производительность труда при написании одних и тех же текстов автономных программ может различаться в десяток раз в зависимости от их таланта и трудоспособности и достигать тысяч строк за человеко-месяц. Однако достаточно полное тестирование, документирование, комплексирование и оформление в крупные комплексы программного продукта, приводят к снижению интегральной производительности до величин в несколько сотен строк текста за человеко-месяц. Для крупных проектов класса СРВ 80-е годы приводятся величины 100 - 150 строк на человеко-месяц, в отечественных проектах в те же годы эта величина приближалась к 80 - 100. Совершенствование технологии, квалификации специалистов и инструментальных средств автоматизации разработки позволили в последние годы повысить среднюю производительность труда при создании полностью новых оригинальных программных продуктов СРВ в несколько раз по экспертным оценкам до величин 300 - 500 строк на человеко-месяц.
При разработке ПС необходимо учитывать, что экономические, временные, вычислительные и другие ресурсы па разработку и весь ЖЦ программ всегда ограниченны и используемые затраты дляулучшения каждой характеристики должны учитывать эти ограничения. Для рационального распределения этих ресурсов необходимо знать как отражается изменение затрат на улучшении каждой характеристики качества ПС. Эта взаимосвязь затрат ресурсов и значений каждой характеристики зависит от назначения, а также от ряда свойств и других особенностей комплекса программ, что усложняет учет влияния таких связей. Тем не менее, выявлены основные тенденции такого взаимодействия, которые могут служить ориентирами при выборе и установлении требований к определенным характеристикам качества в конкретных проектах ПС.
Схема работы программы по вычислению ТЭП:
Заключение
Итак, в результате работы над проектом курсовой работы были сформированы основные понятия технико-экономического обоснования, технико-экономического анализа, также были затронуты такие определяющие звенья, как экономика жизненного цикла, классификация программных средств, классификация характеристик и атрибутов рассматриваемых комплексов программ. И что самое главное, были рассмотрены методы прогнозирования технико-экономических характеристик, а также методология оценки технико-экономических показателей программных средств.
Список литературы:
1.Вендров А.М, Проектирование программного обеспечения экономических информационных систем. Учебник. – М.:Финансы и статистика, 2002.
2.Кантор М. Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения. Пер с англ. – М.:Вильямс, 2002
3.Ковалевская Е.В. Метрология, качество и сертификация программного обеспечения, М., МЭСИ, 2004.
4.Липаев В.В. Выбор и оценивание характеристик качества программных средств, М.:СИНТЕГ, 2001.-224с.
5.Липаев В.В. Методы обеспечения качества крупномасштабных программных средств. – М.: СИНТЕГ, 2004
6.Липаев В.В. Технико-экономическое обоснование проектов сложных программных средств / - М.: СИНТЕГ, 2004.
7.Оценка и аттестация зрелости процессов создания и споровождения программных средств и информационных систем (ISOIEC TR 15504 - СММ).-М.:Книга и бизнес. 2001
8.Фатрелл Р.Т., Шафер Д.Ф., Шафер Л.И. Управление программными проектам: достижение оптимального качества при минимальных затратах. Пер с англ. – М.:Вильямс, 2003.
Практические сведения по оценке технико-экономических показателей существующих экономических комплексов из интернет-ресурсов:
9. http://www.cultinfo.ru/fulltext/1/001/008/110/382.htm
10. http://www.informost.ru/ss/18/os3.shtml
11. http://www.okclub.org/ctsc/etp_ogks2/5.htm