Древнейшие атрибуты качества
2019-09-03 14:51:12 +0600 +0600
Древнейшие атрибуты качества («То, что мертво, умереть не может»)
Одна из наиглавнейших задач архитектора – это сбор нефункциональных требований и атрибутов качества. Как мы знаем из Википедии, атрибутов качества есть великое множество (список аттрибутов вики). Имеет ли смысл пытаться узнать весь список у заказчика? Нет (на это может не хватить годов). Какие самые важные атрибуты? Ответ на этот вопрос, конечно, субъективен, но можно поставить знак тождества между самыми важными и самыми известными.
Цель статьи: обозначить стартовый набор атрибутов, от которого можно отталкиваться при формировании архитектуры системы.
Из самых древних документов можно найти следующие летописи:
-
McCall’s Quality Model
-
Boehm’s Quality Model
-
FURPS.
-
Гост 34 - наследие советов.
Важно! Сегодня есть более состоятельные Госты и стандарты (ISO-9126), но корни идут из тех времен, когда деревья были высокими и по земле ходили McCall, Boehm
- примерно 1977-1979гг.
McCall’s Quality Model
McCall’s ввел три вида нефункциональных требований:
- Product revision (ability to change) - сегодня это называется modifiability – модифицируемость.
- Product transition (adaptability to new environments) - сегодня это называется scalability – масштабируемость.
- Product operations (basic operational characteristics) - название не изменилось.
Product revision (ability to change). - modifiability.
Состоит из:
- Maintainability, the ability to find and fix a defect. - поддерживаемость.
Мера измерения способности устранять поломки и ошибки.
- Flexibility, the ability to make changes required as dictated by the business. - гибкость.
Мера измерения адаптивности системы ситуациям, чтобы противостоять изменениям, связанным с политиками и правилами бизнес-среды.
- Testability, the ability to Validate the software requirements. - тестируемость системы
Мера измерения способности системы быть протестированной
Product transition (adaptability to new environments) - масштабируемость
Состоит из:
Portability, the ability to transfer the software from one environment to another. - портируемость
Портативность – легкость, с которой программная система может быть адаптирована для работы в среде, отличной от той, для которой она была разработана.
Reusability, the ease of using existing software components in a different context. - переиспользуемость
Вероятность использования компонента или системы в других компонентах/системах с небольшими изменениями или без изменений.
Interoperability, the extent, or ease, to which software components work together. - совместимость
Атрибут системы или ее части, который отвечает за ее работу, передачу данных и обмен ими с другими внешними системами.
Product operations (basic operational characteristics). - название не поменялось
Состоит из:
- Correctness, the functionality matches the specification. - согласованность кода и документации.
Количественный показатель документирования продукта.
- Reliability, the extent to which the system fails. - надежность.
Атрибут системы, отвечающий за способность продолжать работу в заранее определенных условиях.
- Efficiency, system resource (including cpu, disk, memory, network) usage. -Эффективность
В данном контексте можно говорить об эффективности как о множестве некоторых метрик продукта (память, CPU, пропускная способность сети).
- Integrity, protection from unauthorized access. - целостность данных при не авторизированном проникновении в систему.
Сегодня это data integrity (целостность данных) и безопасность системы.
- Usability, ease of use. - удобство использования.
Boehm’s Quality Model - 1978
Boehm’s ввел три вида нефункциональных требований:
- As-is utility, the extent to which the as-is software can be used (i.e. ease of use, reliability and efficiency).
П олезность «как есть» - степень использования программного обеспечения «как есть» (то есть, простота использования, надежность и эффективность).
- Maintainability, ease of identifying what needs to be changed as well as ease of modification and retesting.
Ремонтопригодность, простота определения того, что необходимо изменить, а также – простота модификации и повторного тестирования.
- Portability, ease of changing software to accommodate a new environment.
Портативность, простота смены программного обеспечения для адаптации к новой среде.
Видно, что есть большое количество пересечений между McCall’s Quality Model и Boehm’s Quality Model.
Boehm выделил семь качественных факторов, а именно:
-
Переносимость - степень, в которой программное обеспечение будет работать при различных конфигурациях компьютера (то есть, операционных системах, базах данных и т. д.).
-
Надежность, степень, в которой программное обеспечение работает, как требуется, то есть, отсутствие дефектов.
-
Оперативность, оптимальное использование системных ресурсов при правильном исполнении.
-
Удобство использования, простота использования.
-
Тестируемость, простота проверки, программное обеспечение соответствует требованиям.
-
Понятность, степень, в которой программное обеспечение легко понять с точки зрения цели и структуры.
-
Гибкость, простота изменения программного обеспечения для удовлетворения пересмотренных требований.
Заключение
В этой статье я рассмотрел 7 таких древних, как мир, качественных атрибутов. Эти атрибуты живы по сей день, более того – они являются основополагающими на начальной фазе построение архитектуры. «То, что мертво, умереть не может.» На начальном этапе построение архитектуры вполне уместно пытаться узнать эти атрибуты. Они послужат тем хорошим базисом, на который потом лягут новые и более сложные атрибуты.
P.S. Я хотел еще рассмотреть FURPS модель качества, но мне на середине статьи стало очень сильно лень…
http://www.qasigma.com/2008/12/software-quality-attributes.html