## 3 Literature Review  
The preliminary estimation represented in the current paper is close to such well-known terms as \"rough order of magnitude\" (ROM) [13; 19] and more informal ones--\"guesstimate\" or \"ballpark figures\"--that are usually used to express an approximation of future project efforts, schedule, and budget. The method proposed by the authors is supposed to be applied under the following circumstances: (a) an early project life cycle stage when the level of uncertainty is high; (b) limited time to prepare an estimate; (c) acceptability of low estimate accuracy; (d) an estimate that is not recommended for making commitments; (e) unknown dependencies among project tasks. In the current section, a thorough overview is provided of the existing methods that can be applied under the conditions mentioned above. An estimation by analogy [20; 21; 22; 23] allows one to understand the approximate efforts and duration based on similar past projects. Such methods can either utilize formal approaches using similarity metrics [24] and a database with historical projects or rely more on experts' opinion. A significant drawback of those methods is the lack of project scope analysis; the main advantage is the speed of estimation. In the case of an existing solid database of past projects, analogy-based methods can be empowered with machine learning and AI techniques [23; 25; 26]. One of the most mature of the existing estimation methodologies--COCOMO II [2]--supports the concept of tailoring estimation models to the project life cycle stages. In the early prototyping phase, the Application Composition model is applicable. This model is based on the idea of measuring the size of software in so-called object points (which, in turn, derives from the concept of a function point [16]). The application-points approach involves identifying objects of a software product (e.g., screens, reports, database tables, etc.) and defining their complexity levels, which are used to calculate application points that are translated to the efforts and schedule. In the subsequent early design phase, the COCOMO II Early Design model is suggested. The usage of this model requires trained estimation experts, availability of historical data, and calibration of the model parameters. Its challenging part is also the sizing, which requires the calculation of so-called logical lines of source code (i.e., the SLOC metric) or function points. Whilst both Application Composition and Early Design models are applicable in the initial SDLC stages, the second one seems to be more difficult for usage in practice. In this regard, it is also worth mentioning the approach based on use-case points [17; 27; 28; 29; 30; 31]. An advantage of such a method is the usage of UML use-case models to analyze project functionality. The strong side of this method is its relatively simple visual notation representing both the users (actors) and functionality (use cases) of a software system (which is quite handy in the early project life cycle stages). However, the calculation formulas proposed in the original publication [17] most probably will require some adjustments before application to a specific project. Widespread use of agile methodologies has led to the creation of agile-fashion estimation techniques. Usually, such techniques are used by project teams during the project implementation phase. However, some of their elements can also be applied in the early project life cycle phases before the development start, even before forming an agile team. One such method is affinity grouping [5; 6; 7; 8]: tasks are grouped into clusters by their similarity (e.g., estimated efforts or complexity), and then the clustered tasks are assigned with estimates. Another well-known method is T-shirt sizing [5; 6; 7; 8], where tasks are attributed to one of the predefined categories that usually correspond to the sizes of T-shirts: XS, S, M, L, XL, etc. Both methods can be used either by teams or by individual experts for sizing of estimable items in the preliminary estimation stage.