Initial training in design of computer programs using UML

Introduction. Design is commonly acknowledged as a key process in the life cycle of computer programs and softwareintensive systems. The process efficaciously reveals creative capabilities of the author programmer and predetermines the basic advantages as well as shortcomings of the resulting program product, service or system. Design automation and other kinds of its support have been emerged simultaneously with onset of the software industry. From the beginning of the century the MDA (Model Driven Architecture) approach grew famous, offering to comprehend a design of a program as a process of sequential transformation of the program’s models, represented in UML or in other languages related to UML. Without becoming dominant, the MDA approach successfully evolves inside of a broader approach called MDE (Model Driven Engineering). Mastering UML and understanding of its role in MDE appears to be a prerequisite for a seamless entering of a professional programmer into domain of engineering of program systems. This provision justifies an increased attention to methods of UML teaching and to peculiarities of UML learning, and, moreover, to the professional education in the area of programs and program systems design technologies. This paper is aimed to draw attentions to challenges of the initial training in UML and tackle the challenges contributing a methodology and tools for sake of fostering the quality of education in program design. Materials and methods. The research is based on the university syllabi, the author’s lecture notes on software engineering, reports on laboratory works and course papers, protocols of experimental and sample runs of the developed programs, scientific publications, including pedagogical and engineering periodicals, conference materials, Internet resources, such as sites of the ACM, the OMG and others. The following research methods were used: system analysis of the own experience in program design as well as experience remarkable in student’s works; theoretical conceptual modelling of the program design including modelling of design scenarios; a trial implementation of the developed algorithms. Research results. A conceptual cognitive model of design as of a process during program development is proposed, highlighting the designer’s behavior when dealing with project artefacts. Feasible scenarios of analytic and advisory intervention into the design process are specified, using the model. A sample architecture of a program tool suitable for such an intervention is proposed as well as algorithms that enable online critical evaluation of the project’s current state, prompting feasible tracks of the project’s evolvement, revealing designer’s ideas and pointing some UML misuse. The algorithms are built in a program tool named Procrust that implements the proposed architecture. Trials of Procrust show that it basically fits to primary training of software design using UML and, in particular, to a training in the MDA/MDE methodology. Conclusion. The research results enable to set up an environment for comfortable and efficient program design using UML due to employing the proposed analytic and advisory support of the design process. Algorithms of the support and supporting program tools are targeted at initial design training on curricula of higher school and secondary vocational education. The algorithms foster in-depth study of UML and acquiring of advanced software design skills.