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

Lectures

Independent assignments

Laboratory

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)

Literature

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

General

ID 183385
  Winter semester
5 ECTS
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