Software model transformation operations are central operations in Model-Driven approaches. In order to represent software models, graphical modeling notations, for example UML, are used. Quality of software model, obtained after transformation, influences on further operations with this model. Thus, it is important to design formal approaches for model to model transformation that are grounded on analytical and mathematical tools. These approaches should provide a background for flexible adopting software model transformational techniques for peculiarities of specific software development lifecycle model. Challenges to mathematical tools and transformation rules that are involved to designing of model to model transformation approaches are formulated in this paper. The ground of mathematical tools choice that is based on these challenges is performed. An approach for performing model to model transformation, which is based on graph transformation, is presented in this paper. Transformational operations are considered on meta-level and concrete level. On meta-level choosing of mathematical tools for representing of transformation stages and transformational artifacts are grounded. Software models are represented as graphs. Initial information for transformation is represented as a set of sub-graphs. Transformation rules are composed using second and first order logics. On the level of the first-order logic all software model elements that participate in transformation are considered. In the level of second-order logic transformation rule considers types of software model element that are participate in the transformation. Proposed approach is extensible and may be used for extend functionality of model to model tools that process software models. For example in MEDINI QVT there is no direct ways to compose a model to model transformation rule that considers those software models elements that have no direct links. Problems in programming 2018; 2-3: 124-131