Критерии качества програмного обеспечения

Автор работы: Пользователь скрыл имя, 01 Октября 2011 в 22:26, дипломная работа

Описание работы

Требования к качеству программных средств всё время повышаются. Процессы разработки, приобретения и внедрения сложных систем, к которым относятся в частности программные комплексы, должны находится под жестким управленческим контролем. В настоящее время практически во всех организациях обеспечивается контроль важнейших характеристик, связанных с производством и использованием программных продуктов, таких как время, финансовые средства, ресурсы и т.п. Однако в большинстве случаев вне пределов сферы контроля оказывается наиболее важная характеристика программных продуктов, ради которой, собственно и осуществляются затраты времени, финансовых средств и ресурсов - это качество продукта, поскольку «невозможно контролировать то, что нельзя измерить» (“You cannot control what you cannot measure”).

Содержание работы

Введение 3
ГЛАВА 1. Качество программного обеспечения 6
1.1 Понятие качества 6
1.2 Стандарт ГОСТ Р ИСО МЭК 9126 8
1.2.1 Модель характеристик качества 9
1.2.2 Характеристики и атрибуты качества 13
1.3 Метрики 19
1.3.1 Основные направления применения метрик 23
1.3.2 Метрические шкалы 24
1.3.3 Метрики сложности программ 24
1.3.4 Объектно-ориентированные метрики 35
1.3.5 Метрики Холстеда 36
1.3.6 Метрики цикломатической сложности по Мак-Кейбу 45
1.3.7 Метрики Чепина 50
1.3.8 Размерно-ориентированные метрики (показатели оценки объема) 52
1.4 Альтернативные подходы к измерению качества 56
1.5 Оценка результата 62
1.5.1 Линейный подход 62
1.5.2 Оценка с использованием эмпирических данных 63
1.6 Методы контроля качества 67
1.7 Автоматизированные программные продукты по оценке качества ПО. 69
1.7.1 Вычисление метрики SLOC 69
1.7.2 Вычисление метрик сложности 71
1.7.3 Оценки экономических параметров 72
Вывод по главе 1 78
ГЛАВА 2. Изучение темы критерии качества программного обеспечения 80
2.1 Анализ стандарта по профильному курсу информатики 80
2.2 Описание элективного курса «Критерии качества ПО» 83
2.4 Организация и проведение педагогического эксперимента 91
Вывод по главе 2 93
Заключение 94
Приложение 95
Библиографический список 107

Файлы: 1 файл

Диплом.doc

— 1.99 Мб (Скачать файл)

     Eclipse Metrics Plugin как следует из названия, представляет собой подключаемый модуль для популярной IDE Eclipse, разрабатываемый в рамках открытого проекта под той же лицензией, что и сама Eclipse.

      Вычисляет SLOC, количественные метрики классов, цикломатическую сложность, метрики сложности классов (LOCOM1, LOCOM2, LOCOM3, WMPC, NORM, индекс специализации), метрики связности, уровень абстракции и некоторые другие.

      Достаточно  функциональный продукт, который вполне может дать фору многим коммерческим аналогам. [3]

1.7.3 Оценки экономических параметров

     Инструменты оценки экономических параметров составляют центральную часть класса Software Estimation, применяются для оценки трудоемкости, сроков реализации и стоимости ПО и часто являются куда более сложными, чем средства расчета метрик.

     Duvessa Estimate Easy UC - пример довольно простого коммерческого продукта с невысокой ценой ($40-90 в зависимости от редакции). Программа предназначена для оценки трудоемкости реализации проекта на основе прецедентов. Работа с программой заключается в регистрации составляющих UML-модели: прецедентов и акторов (участников), для которых необходимо указать параметры сложности и число форм и отчетов (для прецедентов). Поддерживается возможность импорта требуемой информации из форматов Rational Rose, Rational XDE, Rational Requisite Pro, Microsoft Visio и XML. Помимо вычисления объема проекта в скорректированных точках прецедентов (UCP) и трудоемкости в человеко-часах, программа производит автоматическое преобразование количества UCP в число объектных точек (OP) и затем выполняет еще одну оценку трудоемкости реализации проекта в соответствии с композиционной прикладной моделью методики COCOMO II.

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

     USC COCOMO Tool - официальный инструмент от создателей методики COCOMO II, поставляется бесплатно. Поддерживаются две модели COCOMO II: ранней разработки проекта и постархитектурная.

     Программе необходимо передать параметры, определяемые методикой, а также зарегистрировать модули проекта, указав их свойства (размер и т. д.). При изменении исходных данных результирующие значения автоматически  пересчитываются. Также поддерживается предварительная калибровка, для которой нужно зарегистрировать проекты с известными значениями трудоемкости и срока выполнения.

     Результаты  работы программы могут быть экспортированы в формат CSV, а затем импортированы  в Microsoft Excel для дальнейшей обработки - с этой целью в комплекте поставляется дополнительный инструмент COCOMO Import & Analyze Tool. Сама же программа умеет строить только итоговый отчет.

     SoftStar Systems Costar - один из наиболее популярных коммерческих инструментов класса Software Estimation, основанный на методиках COCOMO/COCOMO II и их различных модификациях (на текущий момент поддерживается 10 вариантов, допускается регистрировать новые). При этом программа имеет весьма серьезную цену - от 1900 до 25 000 долл. в зависимости от редакции.

     Так же, как и USC COCOMO Tool, Costar охватывает только две модели COCOMO II: ранней разработки проекта и постархитектурную. Однако в остальном Costar гораздо функциональнее, в частности, поддерживает несколько  различных моделей жизненного цикла программного проекта (в том числе REVIC, не предусмотренную оригинальными COCOMO/COCOMO II), инкрементную разработку компонентов (можно учитывать до двадцати итераций), обеспечивает подготовку полноценных отчетов (свыше двадцати видов) и их экспорт в различные форматы. Для тонкой настройки и калибровки моделей предоставляется отдельная программа Calico.

     Construx Estimate - бесплатный продукт от компании Construx Software, созданной очень авторитетной личностью в сфере программной инженерии и управления программными проектами - Стивом МакКонеллом (Steve McConell), который среди прочего был признан в 1998 г. одним из трех самых влиятельных людей в софтверной индустрии (наряду с Биллом Гейтсом и Линусом Торвальдсом).

     Программа Construx Estimate построена на двух методиках оценки характеристик проекта - SLIM и COCOMO II, а ее уникальность состоит в том, что обе они применяются совместно. SLIM является основной и обеспечивает оценки стоимости выполнения проекта, графика работ, требуемого персонала и вероятного количества дефектов. COCOMO II используется в качестве дополнительной и служит для уточнения оценок при вычислении затрат. В зависимости от типа проекта определяется базовая оценка производительности, которая затем корректируется в соответствии с COCOMO II.

     Программе необходимо передать такие данные, как тип и подтип проекта (бизнес-системы, управляющие системы, интернет-системы, системное ПО и пр.), текущая фаза, дата начала фазы проектирования, ограничения  и приоритеты отдельных параметров, приблизительный объем (в виде SLOC, FP, числа функций/процедур, классов/модулей, подсистем), используемый язык программирования. В результате будет получена оценка по методу Монте-Карло с распределением 50/50 - т. е. вероятности переоценки и недооценки проекта будут равны 50%. Затем позволяется проводить анализ по сценариям «что-если?». На заключительном этапе программа формирует готовый к печати многостраничный отчет, содержащий исчерпывающую информацию о характеристиках проекта.

     С помощью Construx Estimate можно последовательно повышать точность оценки как в «тактическом» плане (т. е. в процессе реализации конкретного проекта), так и в «стратегическом» (за счет наработки опыта по выполнению многих проектов).

     В первом случае эффекта можно достичь  переходом от базовой оценки объема проекта (которая представляется одним значением SLOC, FP, числа классов/модулей/процедур/подсистем) к более детальной на основе расчета числа FP встроенным инструментом, либо вообще оценивать объем работ числом элементов интерфейса (диалоговых окон, рабочих областей, отчетов и пр.) различных категорий сложности. Для больших систем допускается обсчитывать отдельные модули, подбирая для них подходящие единицы измерения и способы их получения.

     Во  втором предполагается накопление опыта по реализации проектов в специальной калибровочной базе данных, которая со временем позволит повысить точность оценок.

     Borland CaliberRM Estimate Professional - коммерческий аналог программы Construx Estimate, изначально выпускаемый компанией Software Productivity Center под названием Estimate Professional. В 2004 г. данный продукт был приобретен корпорацией Borland и включен в поставку комплексного ПО для управления требованиями CaliberRM (в качестве отдельного продукта не предлагается), цена которого - от $2000.

     По  своей идее и принципам работы данный продукт очень похож на бесплатный аналог (полностью совпадают  даже целые разделы документации). Различия касаются главным образом  более удобного интерфейса, повышенной гибкости в формировании и настройке  отчетности, числа примеров оценки, входящих в комплект поставки, а также интеграции с CaliberRM. Пожалуй, самое принципиальное преимущество инструмента от Borland - возможность выбора одного из двух типов оценки: на основе объема проекта или трудоемкости (Construx Estimate предусматривает только первый вариант).

     Мы  рассмотрели достаточно разноплановые  инструменты, которые могут применяться  для решения задач, характерных  для сферы управления программными проектами. Следует отметить, что  разнообразие в данном случае является таким же благом, как, скажем, и в мире флоры и фауны - оно не дает возможности выделить один единственно правильный путь (подход, критерий, методику) и тем самым предохраняет от фатальных ошибок и провалов.

     В идеале необходимо использовать несколько инструментов, основанных на разных методиках, комбинировать и анализировать результаты, находить причины отклонений в оценках и сравнивать их с показателями, получаемыми на практике. Однако при калибровке желательно не попадать под ложное влияние больших чисел: информация о пяти своих проектах наверняка окажется гораздо полезнее для качественных оценок, чем «сборная солянка» из пяти тысяч проектов, выполненных различными компаниями в разных отраслях в разное время. [6]

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

 

Вывод по главе 1 

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

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

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

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

      Тщательно проведенный метрический анализ качества в соответствии с целями разработки создает основу для корректного планирования и контроля затрат на качество для достижения требуемых показателей и эффективности использования ресурсов.

 

      

ГЛАВА 2. Изучение темы критерии качества программного обеспечения 

2.1 Анализ стандарта по профильному курсу информатики

      В «Стандарте среднего (полного) общего образования по информатике и  ИКТ. Профильный уровень» среди целей  изучения информатики и информационно-коммуникационных технологий на профильном уровне названы в том числе:

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

      В разделе «Обязательный минимум  содержания основных образовательных программ» базовые понятия информатики и информационных технологий в пункте «Информация и информационные процессы» упоминаются:

      Системы, компоненты, состояние и взаимодействие компонентов. Информационное взаимодействие в системе, управление, обратная связь.

Информация о работе Критерии качества програмного обеспечения