Patent attributes
Techniques are described for enabling an application modernization system to efficiently identify various types of software development “anti-patterns” (including cloud anti-patterns) associated with software applications. An anti-pattern is broadly any characteristic of a software application or system that represents an undesirable or suboptimal solution to a problem within a given software design context. Depending on the particular software design context, examples of possible anti-patterns and cloud anti-patterns can include the use of insecure network protocols, an application's reliance on local file system access, the use of a deprecated or outdated class, function, or library, etc. An application modernization system described herein includes a modernization assessment client application that identifies the presence of anti-patterns in users' software applications using a collection of anti-pattern definitions (e.g., defined based on an anti-pattern definition syntax) obtained from an application modernization service of a cloud provider network.