Development of Software Applications

Course Description

This course elaborates software engineering concepts, principles and techniques. The course studies approaches to the development of end user applications, including requirements analysis and specification, design and construction of software components, programming techniques, documentation, implementation and maintenance of applications.

General Competencies

The course will prepare students for development of complex interactive applications, particularly database applications. The course will provide a knowledge for successful design, construction and implementation of application software. Students will be able to formulate the software requirements and to develop, implement and maintain quality software built upon different software architectures.

Learning Outcomes

  1. differentiate and define project lifecycle
  2. reproduce adequate programming techniques
  3. apply development tools and groupware
  4. identify software requirements
  5. design and create software components
  6. produce user and program documentation
  7. analyze user requirements
  8. distinguish key software architecture concepts

Forms of Teaching


Lectures are conducted in two cycles. The first cycle contains 7 weeks of lectures followed by the second cycle of 6 weeks, with teaching load of 3 hours per week.


Assessments include interim exam, final exam and short computer-based tests.

Laboratory Work

Laboratory exercises are carried out in the weeks of lectures, one hour per week.


Consultations have been organized in all weeks except weeks of exam.



Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Homeworks 50 % 15 % 50 % 15 %
Quizzes 50 % 30 % 50 % 30 %
Class participation 0 % 5 % 0 % 5 %
Mid Term Exam: Written 50 % 20 % 0 %
Final Exam: Written 50 % 30 %
Exam: Written 50 % 50 %

Week by Week Schedule

  1. Software engineering fundamentals. Software development life cycle.
  2. Project definition. Project plan.
  3. Requirements specification. Unified modeling language basics.
  4. Coding standards. Programming techniques.
  5. Graphical user interface.
  6. Data access logic.
  7. Object-relational mapping.
  8. Mid-term exam.
  9. Software archituectures.
  10. Multi-layer applications.
  11. Universal and self-adaptable program modules. Report design.
  12. Web applications.
  13. Service oriented architecture.
  14. Interactive help and software documentation. Software release.
  15. Final exam.

Study Programmes

University undergraduate
Computer Engineering (module)
Elective Courses (6. semester)
Information Processing (module)
Elective Courses (6. semester)
Software Engineering and Information Systems (module)
(6. semester)



Roger S. Pressman (2009.), Software engineering: A Practitioner`s Approach;, McGraw-Hill Science
Ian Sommerville (2010.), Software engineering, Addison Wesley
Steve McConnell (2004.), Code Complete: A Practical Handbook of Software Construction, Microsoft Press
Stephen R Schach (2010.), Object-Oriented and Classical Software Engineering, McGraw-Hill Science
Andrew Troelsen (2010.), Pro C# 2010 and the .NET 4 Platform, Apress

Associate Lecturers

Laboratory exercises


ID 34283
  Summer semester
L0 English Level
L1 e-Learning
45 Lectures
0 Exercises
15 Laboratory exercises
0 Project laboratory

Grading System

85 Excellent
70 Very Good
60 Good
50 Acceptable