Granulation is an important component of Granular Computing (GrC) as a problem solving paradigm. Specification and regulation of granulation are necessary in helping researchers and practitioners apply GrC into different applications. At present, there is insufficient investigation of this topic. This paper defines concepts and mechanisms of problem solving, investigates the fundamental principles and processes of granulation, and demonstrates that the development of software engineering methodologies follows the basic idea of GrC: granulation. With the guide of granulation, this paper also proposes a new method of granulation by rolification (the act or the result of designing roles), i.e., roles and agents. The major contribution is establishing the foundations of granular problem solving and clarifying the relationships between granular problem solving and software engineering.