Проектная документация служит основным источником информации, на основании которой осуществляется разработка системы, ее эксплуатация и обслуживание.
Рис. 2.4. Системная документация
I. Требования к системе. Составление требований к системе не входит в задачу программистов. Они являются специалистами по программированию, а не по гражданскому строительству, банковскому делу, численным методам или в любых других прикладных областях. В то же время составление требований к системе не может быть поручено и одному лишь системному аналитику. Они должны вырабатываться в соответствии с официально оформленным договором между организацией-заказчиком и организацией-исполнителем и выражать содержание этого документа.
II. Проектная документация. Эта часть документации готовится системным аналитиком, который руководствуется сведениями, полученными от программистов и будущих пользователей.
A. Проект системы. К этим документам относится графические схемы задания и развернутые планы проекта, охватывающие структуру и основные детали программы.
B. Подготовка данных. Этот раздел охватывает все уровни организации данных, которые будут использоваться в программах, в том числе и справочники данных, описания файлов, таблицы ссылок и т.д.
C. Разработка программ. В этот раздел входят описания иерархической структуры программ в системе, потоков информации между программами и организации взаимодействия программ. Сюда же должна быть включена информация о внутреннем содержании программ, например описания алгоритмов, их блок-схемы или программы на псевдокоде.
III. Справочные пособия и руководства. Эти издания подготавливаются специалистами по технической документации, которые используют информацию, полученную от системного аналитика и программистов.
A. Руководство пользователя. В руководстве содержатся общее описание и подробные сведения о ее применении, разъясняются сообщения об ошибках.
B. Руководство по обслуживанию системы. В это руководство включаются отдельные разделы проектной документации и документы по реализации системы, необходимые для глубокого ознакомления с организацией данных и функциями программ.
C. Руководство оператора. В руководстве содержатся описание вычислительной установки и конфигурации устройств, а также инструкции по работе с программной системой
IV. Реализация системы. Данная часть документации отражает результаты действия группы программирования.
A. Символьный код. Это набор текстов самодокументированных программ, составленных в удобной для восприятия форме.
B. Информация, выдаваемая ЭВМ. Сюда входят таблицы перекрестных ссылок, карты загрузки, таблицы атрибутов, данные о времени выполнения программ и любая другая машинная информация.
C. Тестовые прогоны программ. В эту часть документации включаются контрольные варианты входных данных и соответствующие результаты, получаемые в различных условиях. Указанная информация служит в качестве тестовой при проверке функционирования системы.
Промежуточная документация должна храниться вплоть до завершения работы над системой.
После того, как проектирование системы закончено, единственное назначение документации – обеспечить максимальную эффективность использования системы. Комплект документации строится по модульному принципу, но ее отдельные части в значительной степени перекрываются друг с другом.
В данном разделе были рассмотрены вопросы разработки, отладки, тестирования и надежности программных продуктов. Было приведено обоснование необходимости и важности этапа отладки в процессе разработки программного обеспечения, даны краткие описания основных способов отладки и тестирования. Рассмотрены критерии надежности систем, основные факторы, влияющие на надежность функционирования комплексов программ, проведен анализ надежности программных продуктов. Кроме того, рассмотрен вопрос разработки программной документации, что является неотъемлемой частью разработки программного продукта.
3.Организационно-экономическая часть
3.1 Экономическая эффективность программного продукта
Цель составления любых программ состоит в получении определенных результатов в процессе эксплуатации и оценивается эффективностью программного средства. Уточним применяемое далее понятие эффективности процесса разработки программного средства. Выбор адекватных показателей эффективности программных средств зависит от их назначения, области применения, а также от ряда характеристик программ, проявляющихся при их применении. Поэтому, для выбора технических решений могут использоваться различные критерии. Целесообразно подразумевать под эффективностью процесса разработки минимум затрат на разработку программ при заданной экономической эффективности применения и качества программных средств. Минимизация затрат на обеспечение жизненного цикла Комплекта Программ в некоторой степени эквивалентны максимизации разности эффекта и затрат, если предположить, что экономический эффект от применения программ зафиксирован и стабилен. Затраты в жизненном цикле ПО определяются не только этапом разработки, но и этапами эксплуатации и сопровождения, причем затраты на этих этапах могут значительно превосходить затраты на этапе проектирования и разработки и характеризуются своими особыми закономерностями. Неодновременность групп затрат не учитывается, и предполагается, что абсолютная величина и влияние затрат со временем не изменяется.
Обычно, критерии качества изделий используются в совокупности, с разных сторон отражающей основные характеристики функционирования объекта. Тем не менее во многих случаях доминирует экономический эффект, который наиболее прост, и обобщенно принято описывать суммарным доходом Э от использования изделия в течении его жизненного цикла продолжительностью Тж. В первом приближении это разность между полной идеальной экономической эффективностью программы Эо и суммарными потерями и затратами Сs, снижающими предельный доход за весь жизненный цикл:
В качестве идеальной эффективности Эо рассматривается совокупный доход, который можно получить от использования программ за весь жизненный цикл, если бы они не требовали затрат на создание, производство и эксплуатацию, а также функционировали бы на реализующих ЭВМ без потерь и искажений.
Предполагается, что при любых затратах на разработку всегда достигается заданная идеальная эффективность последующего применения ПО в процессе его эксплуатации и необходимые показатели качества функционирования. Это предположение позволяет в дальнейшем исключить из анализа эффективность применения программных средств Эо и сосредоточить внимание на эффективности процесса их разработки. Дополнительным основанием такого допущения может служить то, что многие виды программ невозможно или очень трудно характеризовать доходом от их функционирования. Тогда исследования эффективности процесса создания ПО можно проводить, минимизируя затраты Сs в предположении, что обеспечены заданные функциональные характеристики программ.
Снижение эффективности Э на величину Сs происходит прежде всего вследствие затрат на разработку, производство, сопровождение и эксплуатацию программ, а так же вследствие различных сбоев программ и оборудования.
В соответствии с этапами жизненного цикла ПО основные затраты Сs, снижающие идеальную эффективность за цикл жизни Тж, можно представить следующими составляющими:
· совокупные затраты на создание ПП и обеспечение решения заданных функциональных задач, в том числе на технологическое обеспечение и аппаратуру ЭВМ при разработке ПО в течение времени Тр – Ср;
· затраты на эксплуатацию программных и аппаратных средств, реализующих ПП, а также совокупные потери эффективности за время Тэ вследствие ограниченных характеристик ЭВМ и неидеальности программ – Сэ;
· затраты на сопровождение ПО за время Тс, включающие затраты на хранение и контроль состояния, проведение модернизаций и исправление ошибок, тиражирование версий – Сс;
· накладные расходы Сн.
В результате совокупную реальную эффективность функционирования ПО за весь жизненный цикл длительностью Тж можно представить в виде:
Э = Эо – Ср – Сэ – Сс – Сн.
Разработка программ является областью с малой материало- и энергоемкостью, и основные затраты связаны с непосредственным или овеществленным трудом специалистов различных категорий.
Наибольшее значение в составе Ср при разработке сложных комплексов программ имеют следующие составляющие затрат:
· на непосредственное проектирование, программирование, отладку и испытания программ в соответствии с требованиями пользователя или заказчика – С1 р;
· на изготовление опытного образца ПП как продукции производственно-технического назначения – С2 р;
· на разработку, подготовку и применение технологии программных средств автоматизации разработки программ – С3 р;
· на технологические и реализующие ЭВМ, используемые для автоматизации разработки программ – С4 р;
· на подготовку и повышение квалификации специалистов-разработчиков – С5 р.
Первые две составляющие С1 р и С2 р являются непосредственными затратами на создание программных средств. Составляющие С3 р и С4 р можно рассматривать как затраты, обеспечивающие оснащенность процесса создания ПП. Затраты на подготовку и повышение квалификации наиболее трудно формализовать и учитывать в конкретной разработке программных средств. В нашем случае эта составляющая не учитывается.
Затраты на непосредственную разработку комплекса программ С1 р являются важнейшей составляющей в жизненном цикле ПП. Наибольшее влияние на них оказывает объем ПП. Затраты на разработку С1 р и объем программ Пк связаны через показатель интегральной средней производительности труда разработчиков Р. Для учета влияния на С1 р различных факторов удобно пользоваться коэффициентами изменения трудоемкости – Сij, учитывающими зависимость i‑ой составляющей совокупных затрат от j‑го фактора. Непосредственные затраты на разработку можно представить как частное от объема ПП и производительность труда, корректируемое произведением коэффициентов изменения трудоемкости: