Основные стандарты в разработке ПО

Автор работы: Пользователь скрыл имя, 20 Января 2011 в 00:12, доклад

Краткое описание

В процессе стандартизации вырабатываются нормы, правила, требования, характеристики, касающиеся объекта стандартизации, которые оформляются в виде нормативного документа.
Среди всех стандартов в области разработки программного обеспечения, используемых в настоящее время в мире, наиболее популярными моделями являются: ISO серии 9000, TickIT, SEI SW-CMM.

Содержимое работы - 1 файл

1вопрос.doc

— 77.50 Кб (Скачать файл)

     Основные  стандарты

     В процессе стандартизации вырабатываются нормы, правила, требования, характеристики, касающиеся объекта стандартизации, которые оформляются в виде нормативного документа. 

     Среди всех стандартов в области разработки программного обеспечения, используемых в настоящее время в мире, наиболее популярными моделями являются: ISO серии 9000, TickIT, SEI SW-CMM.

     Стандарты ISO серии 9000

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

     Основным преимуществом модели ISO является известность, распространенность, признание на мировом уровне. Сейчас стандарты ISO являются обязательным минимумом, который должна выполнить любая организация, существующая на рынке. Но, конечно же, вследствие своей универсальности, модель на основе стандартов ISO серии 9000 получилась достаточно сложной.

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

     Стандарт TickIT

     Достаточно  широкую известность получил  британский стандарт TickIT. Этот отраслевой стандарт регламентирует требования к  системе качества для организаций  разработчиков программного обеспечения и базируется на модели ISO 9001:94. В отличие от модели ISO 9001, которая регламентирует "что необходимо сделать", разработчики данного стандарта попытались ответить на вопрос "как" можно выполнить требования, определенные в ISO 9001. TickIT объединяет в себе модель ISO 9001 с набором рекомендательных стандартов ISO 12207 и ISO 9000-3.

     Стандарты SEI SW-CMM

     Очень интересный подход к улучшению внутренних процессов разработки программного обеспечения определен в модели SEI SW-CMM. В основу данной модели (также как и в основу стандартов ISO серии 9000) положена теория TQM. Теория TQM основывается на постепенном улучшении внутренних производственных процессов за счет множества небольших внедряемых в компании улучшений. Однако модели ISO и SEI SW-CMM несколько различаются в своих подходах к построению самосовершенствующихся систем управления качеством и улучшению производственных процессов.

     В отличие от модели ISO, где для того, чтобы соответствовать требованиям, необходимо продемонстрировать 100%-ное соответствие модели, в модели SEI SW-CMM предусмотрен поэтапный подход к построению системы совершенствования процессов.

     Основным  стандартом качества в области инженерии  программного обеспечения в настоящее  время является стандарт (из серии ISO 9000) ISO/IEC 9126. Он определяет номенклатуру, атрибуты и метрики требований качества программного обеспечения. Относительно недавно этот стандарт стал одним из определяющих факторов при моделировании качества программного обеспечения и остаётся им до сих пор.

     В дополнение к нему выпущен набор  стандартов ISO/IEC 14598, регламентирующий способы оценки этих характеристик. В совокупности они образуют модель качества, известную под названием  SQuaRE (Software Quality Requirements and Evaluation).

     Общий подход к моделированию качества программного обеспечения заключается в том, чтобы сначала идентифицировать небольшой набор атрибутов качества самого высокого уровня абстракции и затем в направлении "сверху вниз" разбить эти атрибуты на наборы подчиненных атрибутов. Стандарт ISO/IEC 9126 является типичным примером такого подхода.

     В рамках модели SQuaRE выделяются следующие  шесть основных характеристик качества.

  1. Функциональность (точность, согласованность, безопасность, пригодность). Функциональные требования традиционно составляют основной предмет спецификации, моделирования, реализации и аттестации программного обеспечения. Они формулируются в виде утверждений в императивной модальности, описывающих поведение системы. Использование формальных методов позволяет довести уровень отклонения фактического поведения системы от требуемого практически до нуля. Это достигается путем выражения функциональных требований в виде предложений подходящих формальных исчислений, так что верификация сводится к строгому доказательству.
  2. Надежность (устойчивость, завершенность, восстанавливаемость). Показатели надежности характеризуют поведение системы при выходе за пределы штатных значений параметров функционирования по причине сбоя в окружении либо в самой системе. При оценке атрибутов надежности применяются методы теории вероятностей и математической статистики. Требования к надежности особенно важны при разработке критических систем обеспечения безопасности жизнедеятельности. Хотя использование формальных методов способствует снижению количества внутренних ошибок (т.е. росту завершенности системы), обеспечение надежности в целом требует специальных подходов, учитывающих специфику различных типов систем.
  3. Удобство (эффективность освоения, эргономичность, понимаемость). Соответствие системы требованиям к удобству чрезвычайно трудно поддается оценке. Предлагаемые подходы включают замеры расхода нормативных единиц труда (нормо-часов), затрачиваемого пользователями на овладение системой, а также проведение и анализ экспертных оценок, в том числе с применением методов нечеткой логики. В контексте использования формальных методов наилучшим решением представляется изначальная ориентация на формализмы, способные максимально точно отразить структуру исходной предметной области. Например, при создании вычислительных систем критерием адекватности формализма с точки зрения будущего пользователя является поддержка абстрактного математического языка, не зависящего от концептуальных ограничений, накладываемых компьютерными технологиями.
  4. Эффективность (по ресурсам и по времени). Атрибуты эффективности традиционно относятся к числу важнейших количественных показателей качества программных систем. Их значения подлежат фиксации в эксплуатационной документации к программным и аппаратным изделиям. Имеется высокоразвитый инструментарий для измерения этих значений. Разработаны также методики, позволяющие прогнозировать интегральные значения показателей эффективности системы исходя из значений этих показателей для компонентов самой системы и ее окружения. Выбору формальных методов обеспечения эффективности следует уделять особое внимание. При этом следует иметь в виду, что, хотя имеется тесная взаимосвязь между производительностью и ресурсоемкостью, подходы к обеспечению каждого из этих требований в общем случае имеют различную природу.
  5. Сопровождаемость (простота анализа, изменяемость, стабильность, проверяемость). Требования к сопровождаемости направлены в первую очередь на минимизацию усилий по сопровождению и модернизации системы, затрачиваемых эксплуатационным персоналом. Для их оценки используются различные методики прогнозирования затрат на выполнение типовых процедур сопровождения. Стоимость сопровождения долгоживущих систем может существенно превышать стоимость их разработки. Сопровождение существенно упрощаются в случае, когда разработка велась с использованием формальных методов, поскольку имеется в определенном смысле исчерпывающий комплект технологической документации и проверочных тестов.
  6. Переносимость (адаптируемость, согласованность со стандартами и правилами, гибкость инсталляции, заменяемость). Переносимость системы характеризует степень свободы в выборе компонентов системного окружения, необходимых для ее функционирования. Оценка переносимости затрудняется принципиальной незавершенностью, динамичностью списка возможных вариантов окружения, обусловленной быстрым прогрессом в сфере информационных технологий. Системы, разрабатываемые с использованием формальных методов, как правило, отличаются высоким уровнем переносимости. В частности, если такая система не поддерживает некоторую целевую технологическую платформу, создание "клона" реализации ее абстрактной модели с использованием целевых средств программирования требует существенно меньших затрат, чем замена самой системы либо платформы.

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

     Основные  термины.

     Анализ  контракта – систематическая деятельность, предпринимаемая поставщиком до подписания контракта, чтобы убедиться, что требования к качеству точно определены.

     Анализ отказов - логическое и систематическое исследование отказавшего объекта с целью идентификации и анализа характера возникновения отказов, их причин и последствий.

     Безаварийность - свойство конструкции изделия не допускать перехода отказов в критические.

     Безотказность - свойство объекта выполнять требуемую функцию при заданных условиях в течение заданного интервала времени.

     Взаимозаменяемость - способность объекта быть использованным без модификации вместо другого для выполнения тех же требований.

     Декларация о соответствии - декларация поставщика под его полную ответственность о том, что продукция, процесс или услуга соответствуют конкретному стандарту или другому нормативному документу.

     Дефект - невыполнение заданного или ожидаемого требования, касающегося объекта, а также требования, относящегося к безопасности.

     Диагностирование - операции, проводимые с целью установления наличия неисправностей, установления места неисправности и определения причин ее появления.

     Жизнеспособность - заложенное в конструкцию свойство объекта, которое гарантирует, что в течение технического ресурса вероятность критического отказа будет приемлемо низкой.

     Исправное состояние - состояние объекта, при котором он соответствует всем требованиям нормативно-технической и конструкторской документации.

     Качество - совокупность характеристик объекта, относящиеся к его способности удовлетворить установленные и предполагаемые потребности.

     Модель обеспечения  качества - стандартизированный или избранный набор требований системы качества, объединенных с целью удовлетворения потребностей обеспечения качества в данной ситуации.

     Надежность - собирательный термин, используемый для описания характеристики готовности и влияющих на нее факторов: безотказности, ремонтопригодности и обеспеченности технического обслуживания и ремонта.

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

     Оценка качества - систематическая проверка, насколько объект способен выполнять установленные требования.

     Руководство по качеству - документ, излагающий политику в области качества и описывающий систему качества организации.

     Уровень качества - мера качества, выражаемая через такую количественную величину, как доля годных изделий, процент дефектных изделий, доли на миллион и т.д.

     Критерии  качества программных продуктов.

     Программные продукты имеют многообразие показателей качества, которые отражают следующие аспекты:

  • насколько просто, надежно и эффективно можно использовать программный продукт;
  • насколько легко эксплуатировать программный продукт;
  • можно ли использовать программный продукт при изменении условия его применения и др.

     Дерево  характеристик качества программных  продуктов представлено на рис. 8.5.

     

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

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

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

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

     Модифицируемость программных продуктов означает способность к внесению изменений, например расширение функций обработки, переход на другую техническую базу обработки и т.п.

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

     В условиях существования рынка программных  продуктов важными характеристиками являются:

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

     Программные продукты массового распространения  продаются по ценам, которые учитывают  спрос и конъюнктуру рынка (наличие  и цены программ-конкурентов). Большое  значение имеет проводимый фирмой маркетинг, который включает:

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

Информация о работе Основные стандарты в разработке ПО