В своей предыдущей статье «Что такое безопасность» я писал о безопасности программного обеспечения. В ней я постарался проиллюстрировать два утверждения.
Первое утверждение состоит в том, что безопасность является нефункциональным свойством программы, и определяется не тем, что программа делает, а тем, чего она не делает.
Второе утверждение, очень тесно связанное с первым, состоит в том, что «функции безопасности» являются антифункциями: они отбирают возможности у пользователей, которые не должны иметь доступа к некоторой функциональности программного обеспечения.
В частности, это означает, что функции безопасности, как одно из средств достижения этой самой безопасности, нельзя описывать теми же самыми методами, которыми описывается «обычная», основная функциональность. Для этой цели должны быть использованы другие подходы. К настоящему времени для решения этой задачи было предложено несколько методов. Одним из самых популярных из них является метод вариантов злоупотребления — misuse cases, — которому и посвящена данная статья.