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.

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


Materials and presentations are on course web page.

Independent assignments

design and implementation of program solutions based on collected requirements


demonstrations of program solutions and tools

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Homeworks 50 % 60 % 50 % 60 %
Mid Term Exam: Written 0 % 20 % 0 %
Final Exam: Written 0 % 20 %
Exam: Written 50 % 40 %

Week by Week Schedule

  1. Software requirements elicitation, Requirements specification
  2. Describing system data using, for example, class diagrams or entity-relationship diagrams, Evaluation and use of requirements specifications, Prototyping
  3. Tools for software version control, Requirements analysis and design modeling tools, Testing tools including static and dynamic analysis tools, Programming environments that automate parts of program construction processes (e.g., automated builds), Tool integration concepts and mechanisms
  4. Principles of secure design and coding, Defensive programming (e;g; secure coding, exception handling), Simple refactoring, Debugging strategies
  5. Events and event handlers, Defining event handlers/listeners
  6. Development of applications with graphical user interface
  7. Development of applications with graphical user interface
  8. Midterm exam
  9. Separation of model, view, and controller
  10. Separation of model, view, and controller
  11. System design principles: levels of abstraction (architectural design and detailed design), separation of concerns, information hiding, coupling and cohesion, re-use of standard structures, Design Paradigms such as structured design (top-down functional decomposition), object-oriented analysis and design, event driven design, component-level design, data-structured centered, aspect oriented, function oriented, service oriented
  12. Software architecture concepts and standard architectures (e;g; client-server, n-layer, transform centered, pipes-and-filters)
  13. Application frameworks
  14. Software reuse
  15. Final exam

Study Programmes

University undergraduate
[FER3-EN] Computing - study
Elective Courses (5. semester)
[FER3-EN] Electrical Engineering and Information Technology - study
Elective Courses (5. semester)


(.), Materijali predmeta dostupni na fakultetskom intranetu,
Roger Pressman, Bruce Maxim (2014.), Software Engineering: A Practitioner's Approach, McGraw-Hill Education
Ian Sommerville (2015.), Software Engineering, Pearson
Steve McConnell (2004.), Code Complete, Pearson Education
Stephen Schach (2010.), Object-Oriented and Classical Software Engineering, McGraw-Hill Education
Andrew Troelsen, Philip Japikse (2020.), Pro C# 8 with .NET Core, Apress
Robert C. Martin (2008.), Clean Code, Pearson Education
Robert C. Martin (2011.), The Clean Coder, Pearson Education

For students


ID 210659
  Winter semester
L3 English Level
L1 e-Learning
45 Lectures
0 Seminar
0 Exercises
6 Laboratory exercises
0 Project laboratory

Grading System

85 Excellent
70 Very Good
60 Good
50 Acceptable