Generally, Software Patterns are the reflection of conceptual structures that provides successful solutions to common problems. Software Patterns depict proven solutions and best practices that assist in evolving software engineering into an experienced engineering discipline. Therefore, it is applied in the various phases (analysis, design and architecture) of software development lifecycle in order to develop confined solutions to specific problems. Patterns can be revisited and can be implemented anytime to improve the design of a system. It can also be easily searched and assorted. Any best pattern should notably provide aesthetic and services to the software. However, the challenge lies in extracting the best pattern that is very much applicable to the problem domain. Therefore, this attempt investigates the available Software Patterns that are widely employed in the applications frequently with its characteristics. Applying appropriate software patterns for solving a particular problem is a manual activity which leads to the occurrence of failure sometimes. Therefore, the merit of a pattern should sneak in terms of its success in solving a commonly occurring problem. Empirical research evaluating the use of Software Patterns by engineers can help in establishing the worthiness of the given pattern in the problem-solving process. Though the patterns target analysis, design, and constructing architecture of a software development life cycle, evolving Patterns for collecting requirements would be a challenging task. This paper makes an attempt to the evolution process of Software Patterns especially in requirement engineering.