I. Introduction
Software projects typically undergo continuous security testing after deployment in pre-production environments which costs software development companies significant time and money [1]. Moreover, vulnerabilities detected at this stage can lead to multiple code revisions, causing unexpected delays. Proactive software maintenance engineering [2] offers a solution to eliminate security flaws prior to release, thereby reducing costs and potential damaging litigation to the software company [3]. A reliable mechanism to list potential vulnerabilities that are likely to be encountered based on the functional and technical specifications helps incorporate appropriate architectural design decisions such as security design patterns before the development stage.