Development of Software Applications

  • Class 45
  • Practice 4
  • Independent work 101
Total 150

Course title

Development of Software Applications

Lecture type


Course code






Lecturers and associates

Course objectives

Software requirements elicitation; Requirements specification.
Describing system data using, for example, class diagrams or entity-relationship diagrams; Evaluation and use of requirements specifications; Prototyping.
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.
Principles of secure design and coding; Defensive programming (e.g. secure coding, exception handling); Simple refactoring; Debugging strategies.
Events and event handlers; Defining event handlers/listeners.
Development of applications with graphical user interface.
Development of applications with graphical user interface.
Midterm exam.
Separation of model, view, and controller.
Separation of model, view, and controller.
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.
Software architecture concepts and standard architectures (e.g. client-server, n-layer, transform centered, pipes-and-filters).
Application frameworks.
Software reuse.
Final exam.

Required reading

(.), 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 (2017.), Pro C# 7, ApressRobert C. Martin (2008.), Clean Code, Pearson Education
Robert C. Martin (2011.), The Clean Coder, Pearson Education

Minimal learning outcomes

  • Differentiate and define project lifecycle
  • Reproduce adequate programming techniques
  • Apply development tools and groupware
  • Identify software requirements
  • Design and create software components
  • Produce user and program documentation
  • Analyze user requirements
  • Distinguish key software architecture concepts
SHARE : Facebook Twitter