## 3 Proposed Hierarchy-Based Competency Structure and Its Application in E-Evaluation
### Methodology for Competency Tree Design  
We believe the competency tree should be designed by using context modeling methodology. This methodology will allow (1) identification of subject context, (2) description of subject context sets (entity and its characteristics), (3) identification of values for each subject context set.  
The main principles on how to design the tree of competencies are based on Scope, Commonality, and Variability analysis [34] of subject context. Scope, commonality, and variability (SCV) analysis gives software engineers a systematic way of thinking about and identifying the subject they are creating. The scope defines the context of the subject. Commonality applies the same property of the subject's context that validates across all their children. Variability describes the different values or property for all children of the parent. Here, we have illustrated the meaning of commonality and variability with a simple example. For example, we have competency \"Apply algorithms of sum, count, and multiplication\". This competency has one property of subject context--cumulative variable (Commonality). This property will gain different values depending on the algorithm (Variability). For example, in sum algorithm, the initial value of cumulative variable (the one, which will store the final result) will be equal to 0 (S = 0; if we are adding variables a and b, later we will execute actions  
Figure 3: An abstracted view of competency tree design and application system.  
S = S + a; S = S + b), while for multiplication algorithm, it will be equal to 1 (S = 1; then S = S * a; S = S * b, if we are multiplying variables a and b). Another example of this situation is the increment of the cumulative variable for count algorithm. It will be equal to 1 in increment, while in the case of sum and multiplication algorithm, the increment will be equal to the value of the variable.  
The design of competency tree has to be based on the commonality and variability estimation. The process of competency tree design consists of these steps:  
1. Identification of the highest level competency for the root of the competency tree.
2. Each competency is analyzed and divided into smaller ones. For competency division into smaller ones, a couple of rules have to be applied: 1. Parent level competency must contain the property of subject context (artifact), which can be divided into smaller ones. 2. Child level competencies must be unambiguous and not overlapping with other nodes. The child level competencies should be as partial solutions for parent level competency and together should form the whole unit for parent level competency analog (without the integration competency). Child level competencies are divided by principle that their nodes of child-level have to get different values of the property of subject context (parent level).
3. Iteratively each parent-child competencies should repeat step number 2.
4. The tree design is finished when the child competencies are atomic and cannot be divided into smaller ones.  
By applying the proposed algorithm, which is based on the Scope, Commonality, and Variability analysis, we generated a competency tree, which meets those mandatory conditions: each node of parent level does not have less than two nodes in child-level; competency of parent level includes all competencies of children level. The usage of context modeling ensures each node of competency, and the tree has clearly defined a subject context and its properties. Discreteness of each node leads to the fact that the competencies are semantically and discretely defined and can define students' achieved and unachieved competencies (this is a basis for e-evaluation, self-tracking learning, and adaptive learning).