Критерии качества программного обеспечения
Характеристики и атрибуты качества программного обеспечения. Основные направления применения метрик. Автоматизированные программные продукты по оценке качества программного обеспечения. Анализ учебного стандарта по профильному курсу информатики.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 17.09.2017 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Таблица 5
Модель COCOMO II фактически объединяет три различные подмодели
Название модели |
Описание |
|
Композиционная прикладная |
Ориентирована на проекты, создаваемые с применением современных инструментальных средств и UML, использует в качестве метрики объектные точки |
|
Ранней разработки проекта |
Применяется для получения приближенных оценок по проекту до определения его архитектуры, использует в качестве метрик количество строк кода или функциональные точки |
|
Постархитектурная модель |
Наиболее детализированная модель, используется после разработки архитектуры проекта и позволяет получить самые точные оценки, применяет в качестве метрик количество строк кода или функциональные точки |
1.6 Методы контроля качества
Как контролировать качество системы? Как точно узнать, что программа делает именно то, что нужно, и ничего другого? Как определить, что она достаточно надежна, переносима, удобна в использовании? Ответы на эти вопросы можно получить с помощью процессов верификации и валидации.
· Верификация обозначает проверку того, что ПО разработано в соответствии со всеми требованиями к нему, или что результаты очередного этапа разработки соответствуют ограничениям, сформулированным на предшествующих этапах.
· Валидация - это проверка того, что сам продукт правилен, т.е. подтверждение того, что он действительно удовлетворяет потребностям и ожиданиям пользователей, заказчиков и других заинтересованных сторон.
Эффективность верификации и валидации, как и эффективность разработки ПО в целом, зависит от полноты и корректности формулировки требований к программному продукту.
Основой любой системы обеспечения качества являются методы его обеспечения и контроля. Методы обеспечения качества представляют собой техники, гарантирующие достижение определенных показателей качества при их применении. Мы будем рассматривать подобные методы на протяжении всего курса.
Методы контроля качества позволяют убедиться, что определенные характеристики качества ПО достигнуты. Сами по себе они не могут помочь их достижению, они лишь помогают определить, удалось ли получить в результате то, что хотелось, или нет, а также найти ошибки, дефекты и отклонения от требований. Методы контроля качества ПО можно классифицировать следующим образом:
· Методы и техники, связанные с выяснением свойств ПО во время его работы. (Это, прежде всего, все виды тестирования, а также профилирование и измерение количественных показателей качества, которые можно определить по результатам работы ПО - эффективности по времени и другим ресурсам, надежности, доступности и пр.)
· Методы и техники определения показателей качества на основе симуляции работы ПО с помощью моделей разного рода. (К этому виду относятся проверка на моделях (model checking), а также прототипирование (макетирование), используемое для оценки качества принимаемых решений.)
· Методы и техники, нацеленные на выявление нарушений формализованных правил построения исходного кода ПО, проектных моделей и документации. (К методам такого рода относится инспектирование кода, заключающееся в целенаправленном поиске определенных дефектов и нарушений требований в коде на основе набора шаблонов, автоматизированные методы поиска ошибок в коде, не основанные на его выполнении, методы проверки документации на согласованность и соответствие стандартам.)
· Методы и техники обычного или формализованного анализа проектной документации и исходного кода для выявления их свойств. (К этой группе относятся многочисленные методы анализа архитектуры ПО, о которых пойдет речь в следующей лекции, методы формального доказательства свойств ПО и формального анализа эффективности применяемых алгоритмов). [9]
1.7 Автоматизированные программные продукты по оценке качества ПО
Эта категория инструментов позволяет рассчитать различные метрики проекта, прежде всего на основе исходного кода и UML-диаграмм (в первую очередь прецедентов и классов), хотя в общем случае может быть использовано практически все, относящееся к проекту и поддающееся измерению (требования, спецификации, документация, активность работы с системой контроля версий, прохождение тестов и пр.).
Почетное место занимают средства подсчета числа строк кода (метрики SLOC и ее производных) - их абсолютное большинство, как среди коммерческих, так и среди бесплатных продуктов, в том числе с открытым кодом.
1.7.1 Вычисление метрики SLOC
Locmetrics - очень простой бесплатный продукт с минималистским интерфейсом. В числе поддерживаемых языков - C/C++, C#, Java, SQL - возможно вычисление не только метрики SLOC и ее разновидностей, но и цикломатической сложности. Отсутствие документации не является препятствием для использования программы, поскольку разобраться в интерфейсе из двух кнопок и двух полей ввода совсем несложно. Хуже, что нет даже описания методики расчета метрик. К недостаткам также следует отнести отсутствие хотя бы самых простых средств построения отчетности или экспорта данных в один из популярных форматов.
USC Codecount - бесплатный продукт с открытыми исходными кодами на языке ANSI C, разработанный Университетом Южной Калифорнии (University of Southern California, USC) - той же организацией, в которой были созданы COCOMO/COCOMO II. По этой причине USC Codecount является официальным инструментом для подсчета метрики SLOC при использовании указанных моделей. В число поддерживаемых языков входят C/C++, C#, Java, JavaScript, SQL, Perl, XML, в документации указано, что методика расчета соответствует принятой SEI для моделей CMM/CMMI.
По сути, USC Codecount представляет собой целый набор инструментов, разработанных по единым принципам - для каждого языка программирования имеется отдельный проект, и компилируемая консольная программа может быть использована только для него. Несмотря на видимые неудобства, эту особенность следует считать как раз преимуществом, поскольку таким образом максимально учитываются свойства (характеристики) конкретного языка.
USC Codecount дает возможность вычислять количество логических и физических SLOC, пустых строк, комментариев, директив компилятора, описаний данных, исполняемых инструкций по файлам проекта по отдельности и суммарно. Также предоставляется статистика по числу вхождений ключевых слов различных категорий и соотношения между различными значениями.
SLOCCount- бесплатный продукт, разработанный Дэвидом Вилером (David A. Wheeler), поставляется в виде исходных кодов на языке C по лицензии GNU GPL. Ориентирован на UNIX-платформы, хотя возможно применение и в Windows после соответствующей адаптации.
Среди рассматриваемых это, пожалуй, наиболее универсальный инструмент - в число поддерживаемых языков входят Ada, Assembler, awk, Bourne shell (включая производные: bash, ksh, zsh, pdksh), C, C++, C#, C shell (включая tcsh), COBOL, Expect, Fortran (включая Fortran 90), Haskell, Java, lex (включая flex), LISP (включая Scheme), make-файлы, Modula3, Objective-C, Pascal, Perl, PHP, Python, Ruby, sed, SQL, TCL, Yacc.
Продукт позволяет рассчитать физическое количество SLOC по проекту (в разрезе отдельных используемых языков), обладает возможностями вычисления трудоемкости и стоимости проекта на основе модели COCOMO (по устаревшей первой версии и только по базовой модели).
Благодаря своей универсальности этот продукт довольно популярен, к примеру, именно он используется в перспективном поисковом механизме для разработчиков Krugle для подсчета статистики по проектам.
Code Counter Pro - единственный коммерческий продукт, попавший в нашем обзоре в данную категорию. Впрочем, он совсем недорог ($25 за одну лицензию), зато в отличие от предыдущих имеет развитый графический интерфейс, что, безусловно, делает его использование более удобным.
Поддерживаются следующие языки программирования: Java, JSP, C/C++, VB, PHP, HTML, Delphi/Pascal, ASM, XML, COBOL, есть возможность декларировать новые.
Несмотря на то что программа хорошо справляется со своей задачей и даже позволяет строить детальные отчеты, чего не может предложить, скажем, Locmetrics, она уступает рассмотренным открытым аналогам по количеству вычисляемых показателей (только число физических строк кода, комментариев, пустых строк, а также суммарные значения).
1.7.2 Вычисление метрик сложности
Verisoft Complexity Measures Tool - коммерческий продукт с достаточно внушительной ценой в 1200 евро. Поддерживаются только языки C/C++ и Java (поставляется в виде двух различных редакций).
С помощью этого продукта можно рассчитывать следующие метрики: SLOC, цикломатическую сложность, метрики Холстеда, индекс сопровождаемости (вычисляется на основе предыдущих). Имеет графический интерфейс (с возможностью работы в режиме командной строки), позволяет формировать отчеты в текстовой форме или HTML.
Borland Together - коммерческий инструмент UML-моделирования, дополненный возможностями вычисления метрик исходного кода. Цена зависит от редакции (начиная с $200).
Поддерживается обширное число различных метрик, значительная часть которых - объект-но-ориентированные: SLOC, количественные метрики классов (число атрибутов, классов, конструкторов, операций), цикломатическая сложность, метрики сложности классов (LOCOM1, LOCOM2, LOCOM3, WMPC1, WMPC2, NORM), метрики связности, Холстеда, наследования, полиморфизма, процентные соотношения (доля комментариев, приватных, публичных и защищенных членов классов), максимальные значения (уровня вложенности, числа параметров и операций).
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 Анализ стандарта по профильному курсу информатики
В «Стандарте среднего (полного) общего образования по информатике и ИКТ. Профильный уровень» среди целей изучения информатики и информационно-коммуникационных технологий на профильном уровне названы в том числе:
· освоение и систематизация знаний, относящихся к математическим объектам информатики; построению описаний объектов и процессов, позволяющих осуществлять их компьютерное моделирование; средствам моделирования; информационным процессам в биологических, технологических и социальных системах;
· овладение умениями строить математические объекты информатики, в том числе логические формулы и программы на формальном языке, удовлетворяющие заданному описанию; создавать программы на языке программирования по их описанию; использовать общепользовательские инструменты и настраивать их для нужд пользователя;
· развитие алгоритмического мышления, способностей к формализации, элементов системного мышления;
· воспитание чувства ответственности за результаты своего труда; формирование установки на позитивную социальную деятельность в информационном обществе, на недопустимости действий, нарушающих правовые, этические нормы работы с информацией;
· приобретение опыта проектной деятельности, создания, редактирования, оформления, сохранения, передачи информационных объектов различного типа с помощью современных программных средств; построения компьютерных моделей, коллективной реализации информационных проектов, информационной деятельности в различных сферах, востребованных на рынке труда.
В разделе «Обязательный минимум содержания основных образовательных программ» базовые понятия информатики и информационных технологий в пункте «Информация и информационные процессы» упоминаются:
Системы, компоненты, состояние и взаимодействие компонентов. Информационное взаимодействие в системе, управление, обратная связь.
Модель в деятельности человека. Описание (информационная модель) реального объекта и процесса, соответствие описания объекту и целям описания. Схемы, таблицы, графики, формулы как описания. Использование описания (информационной модели) в процессе общения, практической деятельности, исследования.
Логика и алгоритмы. Высказывания, логические операции, кванторы, истинность высказывания. Цепочки (конечные последовательности), деревья, списки, графы, матрицы (массивы), псевдослучайные последовательности.
Язык программирования. Типы данных. Основные конструкции языка программирования. Система программирования. Основные этапы разработки программ. Разбиение задачи на подзадачи.
В пункте «Информационная деятельность человека» упоминаются:
Виды профессиональной информационной деятельности человека используемые инструменты (технические средства и информационные ресурсы). Профессии, связанные с построением математических и компьютерных моделей, программированием, обеспечением информационной деятельности индивидуумов и организаций.
Экономика информационной сферы. Стоимостные характеристики информационной деятельности.
В пункте «Средства ИКТ» упоминаются:
Архитектура компьютеров и компьютерных сетей. Программная и аппаратная организация компьютеров и компьютерных систем. Виды программного обеспечения.
В пункте «Обработка числовой информации» упоминаются:
Математическая обработка статистических данных, результатов эксперимента, в том числе с использованием компьютерных датчиков.
В разделе «Требования к уровню подготовки выпускников» сказано, что результате изучения информатики и ИКТ на профильном уровне ученик должен:
знать/понимать:
· основные конструкции языка программирования;
· виды и свойства информационных моделей реальных объектов и процессов, методы и средства компьютерной реализации информационных моделей;
· общую структуру деятельности по созданию компьютерных моделей;
· нормы информационной этики и права, информационной безопасности, принципы обеспечения информационной безопасности;
уметь
· выделять информационный аспект в деятельности человека; информационное взаимодействие в простейших социальных, биологических и технических системах;
· строить информационные модели объектов, систем и процессов, используя для этого типовые средства (язык программирования, таблицы, графики, диаграммы, формулы и т.п.);
· интерпретировать результаты, получаемые в ходе моделирования реальных процессов;
· проводить виртуальные эксперименты и самостоятельно создавать простейшие модели в учебных виртуальных лабораториях и моделирующих средах;
использовать приобретенные знания и умения в практической деятельности и повседневной жизни для:
· соблюдения требований информационной безопасности, информационной этики и права
В результате может быть сделан вывод, что вопросу критерии качества программного обеспечения уделяется мало внимания. В то время как требования к качеству все время повышаются. Таким образом, возникает возможность создания элективного курса, который не выходит за рамки стандартов по информатике и ИКТ, но в то же время значительно расширяет и углубляет школьный курс информатики.
2.2 Описание элективного курса «Критерии качества ПО»
Данный курс «Критерии качества программного обеспечения» является прикладным элективным курсом. Весь курс состоит из 12 часов, включая лекции и практические занятия на компьютерах. За основу взята линия «Качество программного обеспечения» из образовательного минимума содержания образования по информатике.
Курс предназначен на старшие классы с углубленным изучением информатики, так как он включает достаточно сложные теоретические вопросы, касающиеся определения качества программ. В настоящее время не все программное обеспечение является качественным. Поэтому курс рассматривает критерии качества программного обеспечения. Такой подход полагается воплотить при помощи языка программирования Pascal.
Элективный курс отвечает принципу научности, так как он предполагает применение математических знаний и базируется на фундаментальных источниках литературы. При отборе и систематизации теоретического содержания использовались соображения доступности и понятности материала, его связь с практикой.
Из всего вышесказанного следует цель курса - обеспечить овладение учащимися основами знаний по теме «Критерии качества программного обеспечения» и на этой основе научить создавать качественное программное обеспечение, удовлетворяющее критериям.
Основными задачами курса являются:
· дать учащимся представление о качестве программного обеспечения, критериях характеристиках и метриках качества программного обеспечения;
· ознакомить учащихся с расчетными метриками качества программного обеспечения;
· продемонстрировать работу основных метрик качества;
· научить оценивать программное обеспечение помощью метрик, критериев и характеристик качества.
· углубить умения и навыки учащихся по темам, входящим в содержательную линию «Программирование»;
Исходя из задач курса определено содержание, которое представлено в тематическом планировании курса (Таблица 6).
В поддержку факультативного курса был разработан электронный учебник «Качество ПО», содержащий теоретический материал, упражнения и вопросы, электронный тест для мониторинга знаний учащихся по окончании изучения каждого раздела. Электронный учебник предоставляет учащимся большую самостоятельность при изучении материала, обеспечивает наглядность обучения.
Предполагается использование содержания электронного учебника во время урока, благодаря чему учащиеся получают наглядное представление изучаемого материала, а также возможность обратиться к предыдущим заданиям или темам, если возникает необходимость.
В поддержку элективного курса разработано поурочное планирование и методические рекомендации к проведению уроков для учителя.
Требование к уровню подготовки учащихся
После изучения курса учащиеся должны
знать/понимать
§ сущность понятия ”Качество”
§ виды критериев качества
§ основные принципы и методы определения качества ПО
уметь
§ осуществлять моделирование с помощью графов;
§ организовать автоматизированный доступ к файлу и провести его анализ качества;
§ определять качество программ.
Уровни овладения компетенциями (для учащихся).
1. Ученик имеет представление о качестве, критериях, методах анализа ПО.
2. Ученик понимает принципы анализа качества. Строит модели на основе графов.
3. Ученик умеет создавать программу для определения качества ПО.
Таблица 6
Тематическое планирование
№ |
Тема |
Всего часов |
Теория |
Практика |
|
1 |
Качество ПО. Понятие качества ПО. |
1 |
1 |
||
2 |
Стандарт. Модель качества. Характеристики и атрибуты качества. |
2 |
1 |
1 |
|
3 |
Метрики, их применение, метрические шкалы. |
1 |
1 |
||
4 |
Метрики сложности |
2 |
1/2 |
1+1/2 |
|
5 |
Метрика Холстеда |
1 |
1/2 |
1/2 |
|
6 |
Граф. Построение графа. |
1 |
1/2 |
1/2 |
|
7 |
Метрика Мак-Кейба |
2 |
1/2 |
1+1/2 |
|
8 |
Итоговый контроль |
2 |
2 |
||
Всего: |
12 |
5 |
7 |
Поурочное планирование
Далее приведено поурочное планирование курса с минимальными методическими рекомендациями по каждому уроку.
Урок 1. Качество ПО. Понятие качества ПО.
Тип урока: урок усвоения новых знаний и умений.
Цели:
1. Дать представление о качестве программного обеспечения, высококачественной программе, стандартах.
2. Дать определение качества программного обеспечения на основе стандартов ISO и IEEE.
Содержание: что такое качество программного обеспечения, высококачественная программа, историческая справка.
Данный урок является теоретическим, включающий рассказ о том, что представляет собой качество программного обеспечения. В качестве задания для закрепления материала можно предложить учащимся высказать свое мнение по поводу того, что такое качество программного обеспечения и сравнить их с определениями различных организаций, определить, что делает программу высококачественной, ответить на вопросы.
Урок 2, 3. Стандарт. Модель качества. Характеристики и атрибуты качества.
Тип урока: урок усвоения и закрепления новых знаний и умений.
Цели:
1. Дать определение атрибута.
2. Познакомить с международным стандартом ГОСТ Р ИСО МЭК 9126, характеристиками и атрибутами качества.
3. Определить внешние, внутренние метрики качества, метрики качества в использовании.
Содержание: внешние метрики качества, внутренние метрики качества, характеристики и атрибуты качества, что такое атрибут.
Данные уроки являются теоретико-практическими, которые предполагают рассмотрение характеристики и атрибуты качества, требования к качеству ПО. В качестве задания для закрепления материала можно предложить учащимся определить качество предложенных программ по характеристикам и атрибутам.
Урок 4. Метрики, их применение, метрические шкалы.
Тип урока: урок усвоения новых знаний и умений.
Цели:
1. Дать понятие метрики.
2. Определить метрические шкалы, применения метрик, типы метрик, направления метрик и направления применения метрик.
Содержание: что такое метрики качества программ, группы метрик, их применение, типы метрик, направления метрик, метрические шкалы.
Данный урок является теоретическим, включающий рассказ о том, что представляет собой метрики качества программного обеспечения. Рассмотреть основные метрики, основные направления применения метрик, метрические шкалы, группы метрик.
Урок 5, 6. Метрики сложности программ.
Тип урока: урок усвоения и закрепления новых знаний и умений.
Цели:
1. Дать основные классификации метрик сложности.
2. Познакомить с множеством метрик сложности.
Содержание: основные классификации метрик сложности, оценочные модели.
Данные уроки являются теоретико-практическими, которые предполагают рассмотрение метрик сложности программ и их основных классификаций. В качестве задания для закрепления материала можно предложить учащимся определить качество предложенных программ по метрикам, которые выбрали учащиеся.
Урок 7. Метрики Холстеда.
Тип урока: урок усвоения и закрепления новых знаний и умений.
Цели:
1. Познакомить с метриками Холстеда, его характеристиками, классами несовершенств программирования.
Содержание: метрики Холстеда, характеристики метрик, классы несовершенств программирования.
Данные уроки являются теоретико-практическими, которые предполагают рассмотрение качества программы с точки зрения метрик Холстеда. В качестве задания для закрепления материала можно предложить учащимся определить качество предложенных программ по данной метрике.
Урок 8. Граф. Построение графа.
Тип урока: урок усвоения и закрепления новых знаний и умений.
Цели:
1. Дать определения граф, путь.
2. Познакомить с видами графов, связей, путей.
3. Научить строить граф программы.
Содержание: граф, виды графов, виды связей, путь, виды путей.
Данные уроки являются теоретико-практическими, которые предполагают научиться строить граф программы для дальнейшего его анализа. В качестве задания для закрепления материала можно предложить учащимся самостоятельно построить граф программы.
Урок 9, 10. Метрика Мак-Кейба.
Тип урока: урок усвоения и закрепления новых знаний и умений.
Цели:
1. Познакомить с метрикой Мак-Кейба, ее модификациями и достоинствами.
Содержание: метрика Мак-Кейба, модификации метрики, достоинства метрики, упрощенный вариант метрики.
Данные уроки являются теоретико-практическими, которые предполагают рассмотрение качества программы с точки зрения метрики Мак-Кейба. В качестве задания для закрепления материала можно предложить учащимся определить качество предложенных программ по данной метрике.
Урок 11,12. Итоговый контроль.
Тип урока: урок применения знаний, умений, навыков.
Цели:
1. Проверить знания по разделу критерии качества программного обеспечения.
2. Закрепить и систематизировать знания, умения и навыки по теме метрики качества программного обеспечения.
Содержание: тест по теме критерии качества программного обеспечения, определение качества программы, реализация анализирующей программы на основе выбранной метрики.
Данный урок предназначен для применения полученных знаний по теме критерии качества программного обеспечения.
2.3 Описание электронной поддержки курса
В поддержку элективного курса был разработан программный продукт «Метрики», который является наглядным пособием для изучения и понимания работы двух метрик качества программного обеспечения, таких как метрика Мак-Кейба и метрика Холстеда. Данная программа дает учащимся лучше понять оценку качества программного обеспечения.
После запуска программы появляется первое окно метрика Мак-Кейба, которое представляет работу данной метрики (Рис. А).
С помощью меню пользователю предлагается выбрать программу для оценки ее качества. После нажатия на кнопку «Count» появляется граф программы и число цикломатической сложности. При нажатии на кнопку «Exit» программа завершает свою работу. В меню данного окна можно открыть программу для оценки ее качества, выйти из программы, просмотреть файл справки и сведения о разработчике.
Рис А
После нажатия на вторую вкладку «Холстед» появляется окно, которое представляет работу метрики Холстеда (Рис. B). Пользователю также предлагается открыть программу для оценки ее качества. При нажатии на кнопку «Exit» программа завершает свою работу. В меню данного окна можно открыть программу для оценки ее качества, выйти из программы, просмотреть файл справки и сведения о разработчике.
Рис B
После нажатия на третью вкладку «SLOC» появляется окно, которое представляет работу метрики SLOC (Рис. C). Пользователю также предлагается открыть программу для оценки ее качества. При нажатии на кнопку «Exit» программа завершает свою работу. В меню данного окна можно открыть программу для оценки ее качества, выйти из программы, просмотреть файл справки и сведения о разработчике.
2.4 Организация и проведение педагогического эксперимента
Педагогический эксперимент проводился во время педагогической практики в МОУ СОШ № 151 г. Челябинска. Эксперимент проводился в рамках факультативных занятий в 11-ф/м классе. В течение 3 учебных занятий по теме «Критерии качества программного обеспечения» в лекционно-практической форме были рассмотрены следующие темы:
1. Введение в менеджмент качества (1 ч.)
2. Методы оценки качества программного обеспечения (1 ч.)
3. Автоматизированные программные продукты по оценке качества ПО (1 ч.)
Практика показала, что у учеников возник интерес к изучаемой теме. Данная тема оказалась совершенно новой для учащихся. Рассмотрение темы позволяют разнообразить учебный процесс и увеличить информационную культуру учащихся. По ходу проведения занятий у учащихся возникало достаточное количество вопросов по теме, что свидетельствует об их заинтересованности. Все предложенные задания выполнялись учащимися с удовольствием и на высоком уровне.
Занятия проводились с использованием разработанной обучающей программы и электронного учебника, что способствовало повышению интереса к рассматриваемой теме. Также хочется отметить достаточную сложность тем курса, но в связи с тем, что данный курс преподавался у учащихся с высоким уровнем подготовки по информатике, больших трудностей не возникло.
Вывод по главе 2
Педагогический эксперимент был проведен успешно. Во время преподавания факультативного курса ученики проявили свою заинтересованность и увлеченность темой «Критерии качества программного обеспечения». Уроки проходили в оживленной атмосфере. Разработанный программный продукт позволил разнообразить учебный процесс, повысить качество усвоенного материала и добиться заинтересованности в изучении данной темы.
В данной главе подробным образом рассмотрена информация об элективном курсе «Критерии качества программного обеспечения»: тематическое и поурочное планирование, дано описание программной поддержки курса.
Для этого был проанализирован стандарт. В результате был сделан вывод, что данная тема практически не затрагивается в школьном обучении.
Таким образом, во 2 главе исследования мы разработали и апробировали элективный курс «Критерии качества программного обеспечения» и программно-методическую поддержку к нему в виде программы, электронного учебника и методических рекомендаций для учителя.
Заключение
Использование критерий качества программного обеспечения в обучении школьников дает возможность формировать информационную компетенцию, а именно:
1. Получить новые знания и опыт в области программирования, а именно объектно-ориентированного программирования;
2. Значительно облегчить усвоение новых знаний в области моделирования, так как позволяет более наглядно раскрыть тему «Моделирование с помощью графов»;
3. Получить практические навыки в оценивании качества программного обеспечения различными метриками;
4. Дополнительно развить аналитические способности и логическое мышление;
5. Совершенствовать умение работать с компьютером для дальнейшей профессиональной деятельности.
Приложение
Конспекты уроков
Урок 1
Тип: урок усвоения новых знаний
Тема урока «Качество ПО. Понятие качества ПО».
Цели образовательные:
1. Дать представление о качестве программного обеспечения, высококачественной программе, стандартах.
2. Дать определение качества программного обеспечения на основе стандартов ISO и IEEE.
Цели развивающие:
- развитие логического мышления
- развитие культуры высказывания собственного мнения
Цели воспитательные:
- воспитание информационной культуры
- воспитание умения слушать
Средства технические, программные, информационные (дидактический материал):
Учебный класс, оснащенный компьютерами
Мультимедийный проектор, экран.
Классная доска и маркеры
Этапы урока с указанием продолжительности:
1. Актуализация опорных знаний учащихся - 3 мин.
2. Мотивация учебной деятельности школьников - 2 мин.
3. Сообщение темы, цели и задач урока - 1 мин.
4. Восприятие и первичное осознание учащимися нового материала - 18 мин.
5. Осмысление и первичное запоминание нового материала - 10 мин.
6. Подведение итогов урока - 5 мин.
7. Сообщение домашнего задания - 1 мин.
Содержание урока:
Что такое качество и почему оно должно быть столь глубоко представлено?
На протяжении многих лет отдельные авторы и целые организации определяли термин “качество” по-разному:
· Фил Кросби (Phil Crosby) в 1979 году дал определение качеству как “соответствие пользовательским требованиям” (предполагает, что требования должны быть настолько четко определены, что они не могут быть поняты и интерпретированы некорректно);
· Уотс Хемпфри (Watts Hamphrey) описывает качество как “достижение отличного уровня пригодности к использованию” (принимает во внимание требования и ожидания конечных пользователей продукта, которые ожидают, что продукт или предоставляемый сервис будет удобным для их нужд);
· Компания IBM, в свою очередь, ввела в оборот фразу “качество, управляемое рыночными потребностями” (“market-driven quality”);
· Критерий Бэлдриджа (Baldrige) для организационного качества использует похожую фразу - “качество, задаваемое потребителем” (“customer-driven quality”), рассматривая удовлетворение потребителя в качестве главного соображения в отношении качества.
Чаще, понятие качества используется в соответствии с определением системы менеджмента качества ISO 9001 как “степень соответствия присущих характеристик требованиям”.
Понятие “качество”, на самом деле, не столь очевидно и просто, как это может показаться на первый взгляд. Для любого инженерного продукта существует множество интерпретаций качества, в зависимости от конкретной “системы координат”. Множество этих точек зрения необходимо обсудить и определить на этапе выработки требований к программному продукту. Характеристики качества могут требоваться в той или иной степени, могут отсутствовать или могут задавать определенные требования, все это может быть результатом определенного компромисса, что вполне перекликается с пониманием “приемлемого качества”, как менее жесткой точки зрения на обеспечение качества, как достижение совершенства.
Сейчас существует несколько определений качества, которые в целом совместимы друг с другом.
Определение ISO: Качество - это полнота свойств и характеристик продукта, процесса или услуги, которые обеспечивают способность удовлетворять заявленным или подразумеваемым потребностям.
Определение IEEE: Качество - это степень, в которой оно обладает требуемой комбинацией свойств.
Качество ПО - это относительное понятие, которое имеет смысл только при учете реальных условий его применения, поэтому требования, предъявляемые к качеству, ставятся в соответствии с условиями и конкретной областью их применения. Оно характеризуется тремя аспектами: качество программного продукта, качество процессов ЖЦ и качество сопровождения или внедрения (рис 1).
Рис. 1 Основные аспекты качества ПО
Аспект, связанный с процессами ЖЦ, определяет степень формализации, достоверности самих процессов ЖЦ разработки ПО, а также верификацию и валидацию промежуточных результатов на этих процессах. Поиск и устранение ошибок в готовом ПО проводится методами тестирования, которые снижают количество ошибок и повышают качество этого продукта.
Качество продукта достигается процедурами контроля промежуточных продуктов на процессах ЖЦ, проверкой их на достижение необходимого качества, а также методами сопровождения продукта. Эффект от внедрения ПС в значительной степени зависит от знаний обслуживающего персонала функций продукта и правил их выполнения.
Вопросы и задания для самоконтроля:
1. Дать определение качества с точки зрения стандарта ISO и IEEE.
2. Назвать основные аспекты качества ПО.
3. Дать определение качества с вашей точки зрения.
4. Дать характеристику качественной программе
Урок 2
Тип: комбинированный из урока усвоения новых навыков и умений и урока применения знаний, навыков и умений.
Тема урока: «Стандарт. Модель характеристик качества».
Цели образовательные:
1. Рассмотреть модель характеристик качества.
2. Познакомиться со стандартом ГОСТ Р МЭК 9126.
Цели развивающие:
- развитие логического мышления
- развитие навыков самостоятельной работы
Цели воспитательные:
- воспитание информационной культуры
- воспитание уважения к одноклассникам
Средства технические, программные, информационные (дидактический материал):
Учебный класс, оснащенный компьютерами
Мультимедийный проектор, экран.
Классная доска и маркеры
Этапы урока с указанием продолжительности:
1. Актуализация опорных знаний учащихся - 3 мин.
2. Мотивация учебной деятельности школьников - 2 мин.
3. Сообщение темы, цели и задач урока - 1 мин.
4. Восприятие и первичное осознание учащимися нового материала - 18мин.
5. Осмысление и первичное запоминание нового материала - 10 мин.
6. Подведение итогов урока - 5 мин.
7. Сообщение домашнего задания - 1 мин.
Содержание урока:
ИСО 9126 это международный стандарт, определяющий оценочные характеристики качества программного обеспечения (далее ПО).
Стандарт разделяется на 4 части, описывающие следующие вопросы:
Часть 1: Модель качества;
Часть 2: Внешние метрики качества;
Часть 3: Внутренние метрики качества;
Часть 4: Метрики качества в использовании.
В первой части стандарта ISO 9126-1 приводится схема взаимосвязи частей стандарта ISO 9126 и частей стандарта ISO 14598, а также область применения, нормативные ссылки, термины и определения. Определяется модель характеристик качества ПС и ее связи с жизненным циклом. Модель детализируется в последующих частях стандарта.
Вторая и третья части стандарта ISO 9126:2,3 посвящены формализации соответственно внешних и внутренних метрик характеристик качества сложных ПС. Взаимосвязь метрик качества в этих частях стандарта отражена одинаковыми моделями, аналогичными модели первой части стандарта. Показано, что внутреннее и внешнее качества относятся непосредственно к самому программному продукту, а метрики качества в использовании проявляются в эффекте от его применения и зависят от внешней среды. Изложены содержание и общие рекомендации по использованию соответствующих метрик и взаимосвязей между типами метрик.
Четвертая часть стандарта ISO 9126-4 предназначена для покупателей, поставщиков, разработчиков, сопровождающих, пользователей и менеджеров качества ПС. В ней повторена концепция трех типов метрик, а также аннотированы рекомендуемые виды измерений характеристик ПС: прямые, непрямые и индикаторы свойств (категорийные). Рассмотрена модель качества в использовании. Отмечаются необходимость идентификации назначения и специфики потребителей программного продукта, особенности выбора целей оценивания качества для различных сфер и этапов применения ПС. Обосновываются и комментируются выделенные показатели сферы (контекста) использования ПС и группы выбранных метрик для пользователей. В отличие от характеристик, описанных в предыдущих частях стандарта, в этой части для качества в использовании рекомендуется четыре: эффективность; продуктивность; удовлетворение требований и защищенность.
В России принята и переведена на русский язык только первая часть стандарта.
Модель характеристик качества
Модель качества, установленная в первой части стандарта ИСО 9162-1, предлагает использовать для описания внутреннего и внешнего качества ПО многоуровневую модель. На верхнем уровне выделено 6 основных характеристик качества ПО. Каждая характеристика описывается при помощи нескольких входящих в нее атрибутов.
Атрибут - это сущность, которая может быть проверена или измерена в программном продукте.
Для каждого атрибута определяется набор метрик, позволяющих его оценить. Множество характеристик и атрибутов качества согласно ИСО 9126 на рис. 1.
...Подобные документы
Схемы взаимодействия между заказчиком и разработчиком программного обеспечения. Качество программного обеспечения и определение основных критериев его оценка на современном этапе, особенности управления на стадиях жизненного цикла, анализ достаточности.
презентация [114,7 K], добавлен 14.08.2013Основные процессы разработки, приобретения и внедрения сложных систем. Семейство стандартов ISO 9000. Зрелые и незрелые организации-разработчики программного обеспечения. Основные направления формирования метрик для оценки компьютерных программ.
дипломная работа [656,8 K], добавлен 27.11.2012Общая характеристика и основные структуры кодирования. Качество программного обеспечения, показатели в ГОСТ 28195 и ГОСТ Р ИСО/МЭК 9126, характеристика по функциональным возможностям. Основные критерии и процесс оценки качества программного обеспечения.
курсовая работа [219,5 K], добавлен 25.02.2012Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.
курсовая работа [30,4 K], добавлен 29.06.2010Тестирование как составляющая часть процесса отладки программного обеспечения, его роль для обеспечения качества продукта. Обнаружение ошибок в программах, выявление причин их возникновения. Подходы к формулированию критериев полноты тестирования.
курсовая работа [1,6 M], добавлен 20.12.2012Изучение основных видов угроз программного обеспечения. Выявление наиболее эффективных средств и методов защиты программного обеспечения. Анализ их достоинств и недостатков. Описания особенностей лицензирования и патентования программного обеспечения.
курсовая работа [67,9 K], добавлен 29.05.2013Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Несоответствие процессов разработки программного обеспечения международным стандартам. Фазы, развитие вычислительной инфраструктуры. История развития компьютерных систем. Этапы разработки программ и их тестирование. Ошибки в программном обеспечении.
реферат [176,2 K], добавлен 27.08.2009Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Основные международные стандарты в области информационных технологий. Международный стандарт ISO/IEC 9126. Качество и жизненный цикл. Характеристика внутренних и внешних атрибутов качества. Анализ функциональных возможностей программного обеспечения.
доклад [94,4 K], добавлен 13.06.2017Анализ локально-вычислительной сети компании. Выбор общего программного обеспечения, обеспечения для инженерного отдела, бухгалтерии, сервера. Состав программного обеспечения вычислительной системы и его конфигурация. Сетевые операционные системы.
курсовая работа [405,4 K], добавлен 08.02.2016Современные инструменты разработки программного обеспечения для СУТП. Универсальные языки программирования и сравнение их со SCADA-системами. Разработка программного обеспечения с использованием многоканальных измерительных преобразователей Ш9327.
дипломная работа [2,3 M], добавлен 13.07.2011Программные средства защиты от вредоносного программного обеспечения, основные требования к ним, оценка возможностей и функциональности. Системы обнаружения вторжения. Анализ средств защиты информации на предприятии. Политика корпоративной безопасности.
дипломная работа [1,2 M], добавлен 17.10.2015Надежность как характеристика качества программного обеспечения (ПО). Методика расчета характеристик надежности ПО (таких как, время наработки до отказа, коэффициент готовности, вероятность отказа), особенности прогнозирования их изменений во времени.
дипломная работа [1,2 M], добавлен 01.06.2010Развитие аппаратных компьютерных средств - задача первых трех десятилетий компьютерной эры. Процесс тестирования как составляющая процесса обеспечения качества разработки ПО. Принципы и критерии, предъявляемые к тестированию программного обеспечения.
курсовая работа [319,5 K], добавлен 25.05.2009Понятие локализации программного обеспечения как процесса его адаптации к культуре какой-либо страны. Перевод пользовательского интерфейса, документации и сопутствующих файлов программного обеспечения. Инструментарий для локализации. Языковые теги и коды.
презентация [243,7 K], добавлен 07.10.2013Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.
курсовая работа [97,7 K], добавлен 14.12.2012Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017Microsoft Corporation как одна из крупнейших транснациональных компаний по производству программного обеспечения. Рейтинг производителей программного обеспечения, составленный по степени популярности среди пользователей всего мира. Выручка корпорации.
реферат [21,6 K], добавлен 22.01.2013Тестирование и отладка программного обеспечения: понятие, принципы, этапы, цели и задачи. Тестирование методом сандвича как компромисс между восходящим и нисходящим подходами. Сущность метода "белого и черного ящика", отладки программного обеспечения.
курсовая работа [36,9 K], добавлен 21.07.2012