Надежность — требование, описывающее поведение приложения или системы в нештатных ситуациях (примеры: автоматический перезапуск, восстановление работы, сохранение данных, дублирование важных данных, резервирование логики).
Доступность — атрибут качества, определяющий время непрерывной работы приложения или системы. Чтобы определить этот параметр, обычно указывают максимально допустимое время простоя системы.
Требования к времени хранения данных Чтобы определить этот параметр, указывают продолжительность хранения данных. При этом, надо иметь в виду, что требования по времени хранения бывают двух видов:
- хранить всегда пока проект существует. Например, данные пользователя.
- хранить ограниченное время. Например, результаты какого-либо запроса пользователя можно хранить только во время сессии.
Гибкость/Масштабируемость — требования к горизонтальному и/или вертикальному масштабированию приложения или системы.К требованиям вертикальной масштабируемости могут относиться, например, возможность переноса приложений на более мощные системы, поддержка большого объема памяти и файлов. К требованиям горизонтальной масштабируемости могут относиться, например, возможность использования технологий кластеризации.
Как задавать требования к качеству интерфейса · Денис Бесков · 2014г. #системныйаналитик #ux #gui
Вертикальное масштабирование обычно направлено на повышение производительности системы. Горизонтальное масштабирование, помимо производительности, позволяет повысить отказоустойчивость системы.
Требования к удобству использования системы/приложения (с точки зрения пользователя) и требования к удобству и простоте поддержки (Usability)
Требования к безопасности (целостность проекта), включают в себя три большие категории:
- требования, связанные с разграничением доступа,
- требования, связанные с работой с приватными данным,
- требования, направленные на снижение рисков от внешних атак
Требования к конфигурируемости приложения, взаимодействия и расположения компонентов можно условно разделить на четыре уровня:
1. конфигурируемость на основе предопределенного набора параметров (predefined configurability), когда необходимый уровень модификации достигается путем изменения значений параметров из предопределенного набора;
2. конфигурируемость на основе предопределенного набора базовых объектов (framework constrained configurability), когда необходимый уровень модификации достигается путем перекомпоновки предопределенного набора процессов, сущностей и служебных процедур;
3. конфигурируемость путем реализации новых базовых объектов (basis reimplementation), когда обеспечивается расширение набора процессов и сущностей;
4. конфигурируемость путем новой реализации системы (system reimplementation), когда система должна устанавливаться и настраиваться с нуля.
Требования к производительности решения, иначе говоря, эффективность решения определяется в терминах количества одновременно работающих пользователей, обслуживаемых транзакций, времени реакции, продолжительности вычислений, а также скорости и пропускной способности каналов связи. А также ограничения, накладываемые на объем доступной памяти, процессорного времени, дискового пространства, пропускную способность сети, при которых приложение должно эффективно выполнять возложенные на него задачи.
Часть 1. Семинар: Современные требования к качеству выпускаемой продукции. Принципы ХАССП (HACCP)
Группа design time или требования, которые могут быть изменены в процессе разработки или эксплуатации
Требования к повторному использованию реализации или компонентов приложения или системы (Reusability). Такие требования возникают там, где общие компоненты используются несколькими модулями разрабатываемой системы.
Требования к расширяемости (Extensibility) приложения или системы в связи с появлением новых функциональных требований. Сильно пересекается с требованиями масштабируемости проекта.
Требования к переносимости (Portability) приложения или системы на другие платформы.
Требования к взаимодействию между компонентами решения, между внешними компонентами, использование стандартных протоколов и технологий взаимодействия (Interoperability). Это возможность использования нескольких стандартных протоколов для обмена данными между одной из подсистем разрабатываемой системы и внешней системой-поставщиком данных
Требования к поддержке системы или приложения (Supportability). Среди этих параметров могут быть названы такие как, например, дешевизна и скорость разработки, прозрачность поведения приложения, простота анализа ошибок и проблем в работе
Требования к модульности приложения или системы (Modularity). Обычно такие требования указывают, каким образом система должна быть разделена на модули, или перечисляют список обязательных модулей, которые должны входить в состав системы.
Требования к возможности тестирования (Testability) приложения или системы определяют объем требований к автоматическому и ручному тестированию, наличие необходимого инструментария
Требования к возможности и простоте локализации (Localizability) приложения или системы определяют возможности и специфические архитектурные требования, накладываемые процессом локализации. Эти требования содержат также перечень языков, на которые предполагается выполнять локализацию приложения или системы
Требования к совместимости между версиями приложений, между различными приложениями и внешними подсистемами (Compatibility) определяют предыдущие версии продукта или системы, а также список версий внешнего ПО, с которыми должны быть совместимы разрабатываемый продукт или система.
Источник: foranalysts.blogspot.com
6.2 Стандарты качества программного обеспечения.
Основным стандартом качества в области инженерии программного обеспечения в настоящее время является стандарт ISO/IEK 9126. Он определяет номенклатуру, атрибуты и метрики требований качества программного обеспечения. Относительно недавно этот стандарт стал одним из определяющих факторов при моделировании качества программного обеспечения и остается им до сих пор.
В дополнение к нему выпущен набор стандартов ISO/IEK 14598, регламентирующий способы оценки этих характеристик. В совокупности они образуют модель качества, известную под названием SQuaRE.
Общий подход заключается в том, чтобы сначала идентифицировать небольшой набор атрибутов качества самого высокого уровня абстракции и затем в направлении «сверху вниз» разбить эти атрибуты на наборы подчиненных атрибутов. Стандарт ISO/IEK 9126 является типичным примером такого подхода.
В рамках модели SQuaRE выделяются следующие 6 основных характеристик качества:
- Функциональность (точность, согласованность, интероперабельность, безопасность, пригодность). Функциональные требования традиционно составляют основной предмет спецификации, моделирования, реализации и аттестации программного обеспечения. Они формулируются в виде утверждений в императивной модальности, описывающих поведение системы. Использование формальных методов позволяет довести уровень отклонения фактического поведения системы от требуемого практически до нуля. Это достигается путём выражения функциональных требований в виде предложений подходящих формальных исчислений, так что верификация сводится к строгому доказательству.
- Надёжность (устойчивость, завершенность, восстанавливаемость). Показатели надёжности характеризуют поведение системы при выходе за пределы штатных значений параметров функционирования по причине сбоя в окружении либо в самой системе. При оценке атрибутов надёжности применяются методы теории вероятностей и математической статистики. Требования к надёжности особенно важны при разработке критических систем обеспечения безопасности жизнедеятельности. Хотя использование формальных методов способствует снижению количества внутренних ошибок (т.е. росту завершенности системы), обеспечение надёжности в целом требует специальных подходов, учитывающих специфику различных типов систем.
- Удобство (эффективность освоения, эргономичность, понимаемость). Соответствие системы требованиям к удобству чрезвычайно трудно поддается оценке. Предлагаемые подходы включают замеры расхода нормативных единиц труда(нормо-часов), затрачиваемого пользователями на овладение системой, а также проведение и анализ экспертных оценок, в том числе с применением методов нечеткой логики(fuzzy logic). В контексте использования формальных методов наилучшим решением представляется изначальная ориентация на формализмы, способные максимально точно отразить структуру исходной предметной области. Например, при создании вычислительных систем критерием адекватности формализма с точки зрения будущего пользователя является поддержка абстрактного математического языка, не зависящего от концептуальных ограничений, накладываемых компьютерными технологиями.
- Эффективность (по ресурсам и по времени). Атрибуты эффективности традиционно относятся к числу важнейших количественных показателей качества программных систем. Их значения подлежат фиксации в эксплуатационной документации программным и аппаратным изделием. Имеется высокоразвитый инструментарий для измерения этих значений. Разработаны также методики, позволяющие прогнозировать интегральные значения показателей эффективностей системы исходя из значений этих показателей для компонентов самой системы и её окружения. Выбору формальных методов обеспечения эффективности следует уделять особое внимание. При этом, следует иметь ввиду, что, хотя имеется тесная взаимосвязь между производительностью и ресурсоёмкостью, подходы к обеспечению каждого из этих требований в общем случае имеют различную природу.
- Сопровождаемость (простота анализа, изменяемость, стабильность). Требования сопровождаемости направлены в первую очередь на минимизацию усилий по сопровождению и модернизации системы, затрачиваемых эксплуатационным персоналом. Для их оценки используется различные методики прогнозирования затрат на выполнение типовых процедур сопровождения. Интегральная стоимость сопровождения долгоживущих систем может существенно превышать стоимость их разработки. Сопровождение существенно упрощается в случае, когда разработка велась с использованием формальных методов, поскольку имеется в определённом смысле, исчерпывающий комплект технологической документации и проверочных тестов.
- Переносимость (адаптируемость, согласованность со стандартами и правилами, гибкость инсталляции, заменяемость). Переносимость систем характеризует степень свободы при выборе компонентов системного окружения, необходимых для её функционирования. Оценка переносимости затрудняется принципиальной незавершённостью, динамичностью списка возможных вариантов окружения, обусловлены быстрым прогрессом в сфере IT. Системы, разрабатываемые с использованием формальных методов, как правило, отличаются высоким уровнем переносимости. В частности, если такая система не поддерживает некоторую целевую технологическую платформу, создание «клона» реализация её абстрактной модели с использованием целевых средств программирования требует существенно меньших затрат, чем замена самой системы либо платформы.
Источник: studfile.net
Обеспечение и контроль качества программного обеспечения
В процессе разработки программного продукта важно соблюдать ряд требований, чтобы обеспечить качество программы.Но что конкретно, представляет собой качество программы? Ведь “качество”, можно понимать по разному.
Давайте рассмотрим вместе с вами, что представляет собой обеспечение и контроль качества программного обеспечения.
Обеспечение качества — включает в себя список характеристик и свойств программы, которые должны соблюдаться во время разработки программы и выполняться при ее работе. Обеспечение качества производится на всех этапах развития программного обеспечения: от начала разработки, до выпуска программы в пользование.
Контроль качества — означает проверку выполнения требований к программному обеспечению и общую оценку разработки. Основная задача контроля качества — поиск ошибок в программе и их дальнейшее исправление.
Обеспечение контроля и качества программного обеспечения определяется в соответствии с различными требованиями в зависимости от особенностей проекта. Основными требованиями, часто определяемыми для любой программы, являются:
- Функциональность — включает в себя набор действий, которые решают задачи пользователя. Набор этих действий описан в функциональных требованиях к программному обеспечению.
- Надежность — определяет требование при котором программа должна выполнять свои задачи в определенных условиях и заданное количество времени. Программа должна не только корректно работать, но и корректно завершать свою работу, без влияния на сохранность пользовательских данных.
- Мобильность — определяет возможность использовать программу на другом аппаратном обеспечении, либо совместно с другими программами.
- Эффективность — определяет степень производительности программы с выделенными для нее ресурсами операционной системы.
- Удобство использования — означает простое и легкое использование программы и ее компонентов для пользователя.
- Сопровождение — это требования к процессу улучшения программы, исправления ошибок, добавления нового функционала.
Обеспечение качества программного обеспечения достигается за счет создания определенных процессов.
Стандарты к разработке программного обеспечения
Определите общий шаблон стандартов к разработке программного обеспечения. Возьмите за основу готовые стандарты, либо проработайте свои и предложите разработчикам строго придерживаться их.
Отсутствие каких-либо общепринятых стандартов способен усложнить процесс разработки и сопровождения программы в дальнейшем. Принятие стандарта сделает процесс разработки и тестирования программы более качественным. Придерживаясь общему шаблону с перечнем принятых требований к разработке, программисты допускают меньше ошибок. Однако при этом, стандарт не должен накладывать ограничения на разработку, если это не противоречит качеству программы.
Инструкции с последовательными действиями
Если вы уже используете свой список процессов разработки, то стоит убедиться, что все они действительно подходят и позволяют достичь качества программы. В ином случае, нужно проработать процессы, которые позволяли бы наиболее эффективно взаимодействовать команды разработчиков с тестировщиками, обеспечить применение подходящих инструментов и стандартов.
Опыт предыдущих проектов
В обеспечении качества программы важную роль может сыграть опыт и ошибки предыдущих проектов. На основе этого можно принять решения о том, какие действия позволяют улучшить качество в текущем проекте, а какие нет. Поэтому необходимо обращать внимание на результат проделанной работы, чтобы можно было изучить полученный опыт и сделать выводы.
Предыдущие ошибки
Абсолютно в каждой программе разработчики допускают ошибки. Важно не просто исправить ошибку и забыть о ней, а вести статистику о допускаемых ошибках, чтобы проанализировать их в дальнейшем предпринять ряд мер, чтобы не допустить вновь. Это поможет разработчикам улучшить проблемные участки программы. Обычно при разработке принято использовать багтрекеры, в которых фиксируются все найденные ошибки.
Улучшение подходов в разработке и тестированию
Постоянно улучшайте процессы и методики разработки программного обеспечения. Изучите все стороны используемых процессов и выберите наиболее оптимальный вариант для будущих проектов.
В заключение
Помните, что в обеспечение качества программы, входит не улучшение тестирования, а улучшение всех процессов разработки и выпуска программы.
Если программа соответствует потребностям пользователей и ожиданиям разработчиков, то можно сказать, что программа успешно прошла оценку качества и готова к выпуску.
Источник: unetway.com