Development of Software 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


Independent assignments


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
Computing (study)
Elective Courses (5. semester)
Electrical Engineering and Information Technology (study)
Elective Courses (5. semester)
Software Engineering and Information Systems (module)
(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

Laboratory exercises


ID 183385
  Winter semester
L3 English Level
L1 e-Learning
45 Lectures
0 Exercises
4 Laboratory exercises
0 Project laboratory

Grading System

85 Excellent
70 Very Good
60 Good
50 Acceptable