Doctoral studies in Software Engineering

The objective of the study programme is for candidates to acquire scientific competences and academic skills in the area of software engineering and similar areas. It includes development of creative skills of problem solving and critical thinking, development of ability for team work and knowledge of specific methods and practical skills needed in the profession. The study programme has the objective to provide flexibility in education and research, i.e alignment with the subject of the doctoral dissertation on one hand, and well-rounded and detailed knowledge of three modern areas of application of software in information technologies, on the other hand. The educational programme in the area of software engineering has the objective to provide top knowledge necessary for development of professional reliable software.
General competences of graduates of this programme are: knowledge of achievements in the area, creative and critical thinking, ability to participate in international scientific projects, solving theoretical and practical problems from the given area, as well as presentation of results from individual research in world recognized journals.
 
The study programme in the area of Software Engineering enables students, upon completion of studies, to work in the following positions:

  1. Establishment of architecture of innovate software systems;
  2. Application of scientific methods in the design of software systems;
  3. Programmimg, i.e implementation of a project solution by developing software in one of the programme languages, such as JavaС++ and С#;
  4. Providing quality of software and its testing, as well as configuration according to the established architecture of the software system
  5. Team leading for the complex software systems
  6. Leading software development in companies that focus on professional software, and managing organizations that focus on software development
  7. University professor in the field of software engineering.

 

Sem

No.

Courses

ECTS

L

IRW

1

1

NT600 Methodology of scientific research

10

6

2

1

2

SE630 Models for Software Systems

10

4

2

1

3

SE640 Architecture of Software Systems

10

4

2

2

4

SE691 Research Project 1

10

2

8

2

5

Elective course 1 group 1

10

3

2

2

6

Elective course 2 group 1

10

3

2

3

7

SE692 Research Project 2

10

2

8

3

8

Elective course 1 group 2

10

3

2

3

9

Elective course 2 group 2

10

3

2

4

10

SE693 Research Project 3

30

2

18

5

11

SE694 Independent Research Work on Doctoral Dissertation

30

0

20

6

12

SE695 Preparation and Defense of the Doctoral Dissertation

30

0

20

Elective courses group 1

CS661 Semantic Web Technologies Usage in the Public Sector

10

3

2

CS675 Research of e-Learning Systems

10

3

2

CS681 Real-time and Embedded Systems

10

3

2

SE620 Testing and software quality

10

3

2

Elective courses group 2

CS550 Serious Games and Simulations in Real-time

10

3

2

CS662 Experimental computing

10

3

2

CS682 Software for Real-time and Embedded Systems

10

3

2

SE650 Research in Software Engineering

10

3

2

CS655 Artificial Intelligence

10

3

2

 

NT600 Methodology of Scientific Research

The course objective is to enable students to understand the wider framework that will formalize the most important parts of scientific research, such as research problem questions, the objective (objectives), hypothesis (hypotheses), the methodological review, and based on a complete analysis of the existing literature to achieve the development of scientific knowledge in the field, thereby respecting the norms of academic work and with the use of modern information tools and services. After the completion of the course student should understand different scientific methods used in the scientific literature; be able to successfully search and analyze in the scientific literature; be able to successfully write a scientific paper; ability to successfully create and implement a doctoral dissertation. Course topics: Conceptually defined science; methodology of scientific research; general and special scientific methods; structure of scientific research, writing and publication of scientific research; writing a doctoral dissertation; evaluation of scientific results.

 

SE630 Models for Software Systems

This course deals with models of sofware systems development and models of software design. The objective is to overcome methods and tools of software modelling, design models and software project planning/management models. Course outcome is familiarization with advanced models of software systems used today aroun the world, as well skills of models implementation in real practice. Every student will do a practical project of software modelling and its implementation, and a theoretical assignment connected with the project-where web-search is used to find recent advances in the field. Course topics: Software project planning/management models, PERT model, agile models of software development, advanced UML (Unified Modelling Language), UP (Unified process) models, ICONIX model, software design models, software construction models, formal software models,  OCL (Object Constraint Language), concurent state machines, Petri Net models.

 

SE640 Architecture of Software Systems

The course offers basic understanding of the problems of development of complex software systems based on new strategies for composite design and distributed software components. The research component of the course is focused on the improvement of existing and creation of new methods for software development.  Course outcome is training students for further education in the field of software engineering, independent research and professional work. Course topics: 1. Ideas and techniques for the design, development and modification of large Software System. Requirements for the software architecture, preliminary design (concept), detailed design and implementation of software architecture of high quality and performance; Fundamentals of Software Architectures (History of software architecture, definitions, terminology, models of the development process of software architecture, tools and techniques of modeling software architecture; principles of composite design); New approaches to development through the ‘4 + 1’ views on software architecture (Implications of the definition of software architecture; Zachman-‘s view; Cruchten-‘s view); The attributes of quality software architecture; traditional quality measures; Checklists build quality software architecture; Elaboration requires a specific software project; Analysis and modularity); Architectural Styles – Patterns (Architectural styles and strategies; Characteristics of good design at the level of concepts, logical and detailed design); Client – Server architecture (Features client-server software architecture, thin client, fat-Advanced, Performance Analysis client-server software architecture); Distributed Processing Engineering (Centralized compared to distributed: ways of presenting jobs, action in the design of software architecture; Definitions, representation and characteristics of software components; Distributed processing: composition, orchestration, synchronization and choreography); Three-layer architecture – CORBA (Parts Description CORBA architecture for the design of IDL language, standardization CORBA architecture); Three-layer, four-layer Java architecture – J2EE (Parts Description J2EE architecture, set of Java interfaces, Java distributed object technology); Multi-layer Service-Oriented Architecture-SOA (Service-Oriented Paradigm Computing; OO computing in relation to the Service-Oriented Computing, Service-Oriented System Engineering, Service-Oriented paradigm of software development).

 

CS661 Semantic Web Technologies Usage in the Public Sector

The course introduces Semantic Web technologies recommended by the W3C consortium that have been widely adopted for development of innovative multilingual products and services in the public sector, bioinformatics, energy, transport, and other domains. Students will gain knowledge and insight into the trends of development of semantic web solutions for the public sector with particular emphasis on the possibilities for semantic interoperability of public data.  Students will gain understanding of the Linked Data principles and their use in e-government services in accordance with the “Interoperability Solutions for European Public Administrations” (ISA) programme. Course outcome is: understanding the principles of the Semantic Web; Abilities for using standard W3C vocabularies and vocabularies recommended in European ISA programme; Ability to find and use available open-source tools; Ability to design and development semantic web solutions for the public sector based on XML / RDF / OWL / SPARQL technologies. Course topics: Introduction to Semantic Web  aims at informing the students and newcomers in the Semantic Web field about the Semantic Web vision, the process of evolution of the Web towards the Semantic Web, the building blocks of the Semantic Web and the reasons for doing research in Semantic Web field. This module introduces also the Semantic Web technologies recommended by the W3C consortium and points to latest trends in this field (Linked Data concept); Knowledge representation and Ontology Engineering presents methods and methodologies for building ontologies and describes the links of the Semantic Web field to other scientific domains such as “Knowledge management” and “Artificial intelligence”. Additionally, it explains the role of AI methods and algorithms in ontology engineering, especially in knowledge extraction and ontology creation, ontology maintenance, ontology validation, as well as in ontology mapping and integration; Interoperability Solutions for European Public Administrations discusses the European ISA (“Interoperability Solutions for European Public Administrations”) programme; with special emphasis on core e-government technologies. It analyzes the working documents of the network for innovation in European public sector information that support the implementation of the revised European Directive on the Public Sector Information (2013/37/EU); Use of semantic tools in the public sector discusses the main functionality of the semantic tools (semantic modeling & development, management & semantic data integration, connecting / interlinking, semantic search and retrieval of data). It is designed for researchers and practitioners (technology architects and information technology advisors) to provide them with valuable information about the readiness of the commercial and the free open-source SW tools and technologies for Semantic Web. Vision for development of e-government services gives an updated picture of Semantic Web research activities within the European projects from the Sixth, Seven and Horizon 2020 program concerning semantic technologies in the public sector. The aim is to analyze the benefits of semantic technology (based on the collection of Best Practices from the network for innovation in European public sector information), as well as future needs and development trends of e-government systems.

 

CS675 Research of e-Learning Systems

The course objective is to enable students to develop their research potential in the field of e-learning, based on a detailed analysis of research in a set area of e-learning. Other than technological, there will be a detailed research analysis in the field of methodological –pedagogical aspeact of e-learning. Comprehension of key research directions in the field of e-learning, specially in the narrow field of the students’ projects. Stdents need to be develop their ability to perform individual research in e-learning.

 

CS681 Real-time and Embedded Systems

The course offers deep understanding of the interdisciplinary nature of systems analysis, design of complex systems in real time, hardware life cycle design process, as well as software process design. Course outcome is: Training in system analysis and design of complex systems in real-time and embedded systems. Mastering the hardware and software architectures, distributed deployment and competitive facilities. Hardware, software and integrated systems performance and reliability testing. Course topics: .  Studying architecture of complex real-time systems, systems engineering, advanced management techniques and design of complex systems. Requirements engineering for real-time system design, preliminary design (concept), detailed design and implementation of complex embedded systems of high quality and performance; Study of modern techniques and cases from practice in the development of complex systems (fixed and mobile digital telecommunications network), their structure, development life cycle, the modular approach, the decomposition of the system, structural models (graphs, network, binary relations, etc.). Examples of joint hierarchical system design. Directions of research in next-generation communications networks; Research schemes and models of the design process of complex systems.  Real-time Operating systems in real-time and embedded systems ; Testing the performance and reliability of hardware, software and integrated systems; Systems that tolerate failures (hardware and software architecture); Complexity of design metrics. Global approaches and local techniques (TRIZ strategy); Paradigm in determining alternative solutions. Basic examples of decision-making techniques. Multi-criteria decision-making techniques (utility function, the comparison in pairs, the levels of disparity / equivalence ranking techniques, etc.). The integration and aggregation of individual solutions; Functional mapping. Basic models of combinatorial optimization: „ knapsack“, problem  selections and other types of known solutions (exact solutions, approximate solutions). Types of algorithmic solutions (polynomial solutions, algorithms counting, etc.), Nonlinear integer programming, packing problem, scheduling problem, the maximum grouping problem.

 

SE620 Testing and Software Quality

Course objective is introduction to the issues and rights of research in the field of testing and software quality assurance and training for independent scientific research. Upon course completion, students will know: methodology of business intelligence and application in business decision making, data warehouse, operations of data manipulation, administration and security aspects, management of performance of processes and measurement, monitoring and methodology, data mining as basic business intelligence, process, methods and algorthims in pre-processing data for data mining as well as software tools for data mining, mining textual and web data and their structure, implementation of business intelligence and integration with existing information systems in organizations, modern trend as on demand business intelligence, relation of web 2,0 tools, social networks and software, virtual world with business intelligence, as well as use of RFID technology in the context of business intelligence for improvement of supply chains. Course topics: Mathematical Modelling of the Process of Testing of Software; Measurement and Identification of the Model of the Process of Testing of Software; Evaluation of the Efficiency, Verification and Validation during the Life-cycle of the Softwar; Quantification of Software Quality; Objective Evaluation of Software Quality; Application of Artificial Intelligence in Testing of Software; Management of Software Quality.

 

CS550 Serious Games and Simulations in Real-time

The objective is to provide students with understanding the scope of serious games, real-time simulations and the basic principles of virtual reality (VR).  The student  will be able to  design and construct a simple virtual environment or serious game. Course outcome: Mastering of mathematical modeling of human interaction with real environment, modeling of system and process dynamics, modeling of visual, audio and tactile interaction effects. Know-how to develop  virtual reality system using low cost technology, primarily 3D game based  technology. Course topics: Overview and perspective on virtual reality, Human sensation and perception,  Engineering VR systems,  Design and construct a simple virtual environment, Development planning and implementation of  VR systems,  Evaluate current virtual reality hardware and software and systems

 

CS662 Experimental Computing

Course offers thorough understanding of interdisciplinary nature of techniques for measuring hardware and software characteristics, planning and experimenting, statistical evaluation and analysis of experimental results, optimization of computer and software system planning. Course topics: The measurement process (planning, execution, standards), metrics and tools (automation, measurement accuracy, etc.) Hardware and software characteristics of the computer system (RS) modeling, development and testing. Statistical analysis of the measured values ​​(data) and their application in statistical quality control and process development RS and products; The planned experiment – DOE (analysis and identification of controlled and uncontrolled factors – variables, levels of varying factors, models and effects of influencing factors, a full factorial design variables with 2, 3 or more levels of variation, analysis of variance, plan an experiment with random blocks; optimal plans experiment; linear and quadratic regression models of response, response surface methods – the central composite design, Boh – Behnken and others); Application of orthogonal vector (OA) plans to minimize the number of test cases in the process of testing the hardware and software RS (combinatorial testing techniques, development of OA table of input parameters depending on the level of variations of factors, testing the interaction of input variables, mixed OA plans, etc.); Optimization of process factors and parameters of Taguchi method in product design RS (cost function, the elimination of variation controlled and uncontrolled factors, setting factors in order to optimize the process or product, Taguchi robust design of experiments, etc.); Case studies applying DOE and Taguchi method factors in the choice of RS (the size of RAM memory, processor speed, speed external disk drives, the speed of the graphics card, etc. In order to minimize the price of the computer) and to minimize the cost of software testing, depending on the number of detected errors in the phases of software development; the impact of the characteristics of individual devices on the performance of computer networks.

 

CS682 Software for Real-time and Embedded Systems

The course offers a basic understanding of the interdisciplinary nature of systems analysis, design of complex systems in real time, life cycle design process of hardware of embedded systems, and software. Course outcome: Training in system analysis and design of complex systems in real-time and embedded systems through modeling techniques, embedded software analysis and design of distributed and competing objects; The classification of concurrent and distributed computing systems (systems with uniform memory access; systems with non-uniform memory access, systems with distributed shared memory). Studying the hardware architecture of complex real-time systems, systems engineering, advanced management techniques and design of complex systems; Classification paradigms of concurrent programming (Programming using shared variables; Explicit messaging, remote procedure call, rendezvous mechanism). Program space that sees a programmer when writing program. Active objects (processes, threads, agents), passive data, the virtual program space for coordination of active parts of the program (data programming and active entities); Shared objects and synchronization (manufacturer – the consumer, readers and writers; Mutual exclusion, critical sections; Solution for two threads; Filter algorithm; time stamp; Queues for either); Modeling firmware (analysis and design). Context diagram, state machine diagram sheet. Analysis software requirements for systems in real time and in embedded systems. Designing multiple tasks, scheduling and allocation of resources, operational systems in real time; The study of modern techniques and cases from practice in the development of complex systems (fixed and mobile digital telecommunications network), their structure, development life cycle, the modular approach, the decomposition of the system, structural models (graphs, network, binary relations, etc.). Examples of joint hierarchical system design. Directions of research in next-generation communications networks.

 

SE650 Research in Software Engineering

Every student will do an individual scientific reasearch in the field of recent software development methods, the newest modelling methods, and software construction methods. Also, familiarization with recent research publications in the field of software engineering. Every student has to do a research project, which may result in a PhD dissertation proposal. This research project needs to be in the field newest methods of software systems development and methods and techniques for modelling and construction of software. Course topics: New software models, new methods of software development, new software construction techniques,  new methods of automated software development

 

CS655 Artificial Intelligence

The course introduces artificial intelligence domain and explains various artificial intelligence techniques: learning techniques, i.e. process / phenomenon modelling (artificial neural networks);  process / phenomenon optimisation techniques (metaheuristic search techniques, such as genetic algorithm, simulated annealing, etc.); fuzzy logic; expert systems (rule-based and case-based), as well as intelligent systems, i.e. knowledge-based systems. The intended outcome implies the applied knowledge in this scientific discipline, in terms of the application of various artificial intelligence techniques and intelligent systems in solving practical problems from industrial practice and/or scientific practice. Course topics: Introduction to artificial intelligence;  Intelligent systems / knowledge-based systems; Machine learning, artificial neural networks (ANNs), support vector machine (SVM);  Evolutionary, i.e. metaheuristic search algorithms: genetic algorithm (GA), simulated annealing (SA), ant colony optimisation (ACO), particle swarm optimisation (PSO); Fuzzy logic and fuzzy systems; Expert systems,  rule-based expert systems,  case-based reasoning; Hybrid intelligent systems.

 

SE691 Research Project 1

The primary course objective is to enable students to define the narrow field of their dissertation. Other than the primary, there are two secondary objectives. The first one is to enable students to develop critical analysis of scientific papers, and the second one is to enable students to perform detailed research of the scientific literature and results of research projects in the possible domain of the dissertation. As a result of the analysis of relevant research, the candidate prepares a seminar paper which presents a detailed analysis of the given research. Othen than the seminar paper, the candidate prepares a review paper of the research in the area of the dissertation for publishing. Other than that, the candidates submit s shorter document (1-3 pages) which explains the narrow field of the dissertation, and possibly, the objectives of the research.

 

SE692 Research Project 2

The course objective is to enable students to define the final topic of the doctoral dissertation and prepare a detailed research plan for the dissertation. Students prepare a seminar paper which provides additional and expanded analysis of research in the narrow field of the research in the dissertation, based on additional investigation of available research. If the candidate has not prepared or published a review paper as required in the course  SE691 Research Project 1, they need to do so in the scope of this course. Finally, students submit a detailed research plan of the dissertation, with emphasis on the clearly defined scientific contribution of the dissertation. If not previously achieved, this proposal is submitted to the collegium of professors at doctoral studies to be approved and a mentor to be assigned. The proporal of the topic and the proposal of the mentor are submitted to the adequate university organs to be approved.

 

SE693 Research Project 3

The course objective is to enable students to prepare the first paper where they present their scientific contribution from the research they conduct in their dissertation. Students prepare a report of the realization of the project which is a part of the research planned in the preparatory stage of the dissertation. Furthermore, students provide their own scientific paper with first results of their research which presents a part of the scientific contribution of the dissertation. Upon approval from the mentor, the paper is submitted for publishing to a journal from the SCI list.

 

SE694 Independent Research Work on Doctoral Dissertation

In this part of the preparation of the doctoral dissertation, students research the set problem in line with the research plan and publish at least one paper in an international journal of SCI list. Based on the research in line with the research plan, students need to write the doctoral dissertation. It present original and individual scientific work which contributes to the development of the scientific thought, and which is adequate for determining the ability of the candidate to work independently as a researcher in the chosen field by its methodology of processing data and level of contribution to science. Students need to publish at least one paper in an international SCI list. It can be a paper submitted and being reviewed, as a result of research conducted in the course SE693 Research Project 3, alternatively it can be a new paper consisting of research conducted after submission of the first paper. The course has achieved its outcome if the first paper submitted is accepted for publication, or if the editorial team approves the second or additional paper for publication. These papers present the results of the research of students conducted within the work on the dissertation and they need to clearly present the scientific contribution of the dissertation in the area of software engineering, i.e in solving a problem (a new model, new techniques, new approach…) The dissertation cannot be accepted for defense unless at least one paper is published in an international journal from the SCI list.

 

SE695 Preparation and Defense of the Doctoral Dissertation

The doctoral dissertation is original and independent scientific project which contributes to the development of the scientific thought, which is adequate to determine the ability of the candidate to work individually as a researcher in the given scientific field by the methodology of processing and level of contribution to science.  The student is enabled to individually pursue scientific-research work in solving a set problem. The students is enabled to find available and adequate scientific literature, to analyze it and to prepare a comparative review of the existing approaches and solutions. The students is enabled to establish individual measurement for critical evaluation of the existing solutions and to perceive their advantages and disadvantages. The student is enabled to describe the form of the expected scientific contribution, to present the working hypotheses and expected results. The student is enabled to use various methods of research in solving a given problem, to discuss the selection, to prepare the research plan and determine the dynamics of the realization.