Development of Software Applications
Data is displayed for the academic year: 2024./2025.
Laboratory exercises
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.
Prerequisites
Object oriented programming, Databases, basic knowledge of HTML and JavaScript
Study Programmes
University undergraduate
[FER3-EN] Computing - study
Elective Courses
(5. semester)
[FER3-EN] Electrical Engineering and Information Technology - study
Elective Courses
(5. semester)
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
Forms of Teaching
Lectures
Materials and presentations are on course web page.
Independent assignmentsdesign and implementation of program solutions based on collected requirements
Laboratorydemonstrations 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
- Software engineering basics. Software development lifecycle. Project planning.
- Software requirements elicitation. Requirements specification. Configuration management. Tools for software version control. Programming environments that automate parts of program construction processes (e.g., automated builds).
- Application frameworks. A brief overview of .NET platform and advanced C# features.
- Principles of secure design and coding. Defensive programming. Debugging strategies. Configuration files and logging.
- Programmatically access and modify data from/in a database using object relational mapping.
- Development of applications with graphical user interface. Separation of model, view, and controller. Development of a simple web-application with CRUD (Create, Read, Update, Delete) functions. Tabular representation with server-side support for paging and sorting.
- Development of a simple web-application with CRUD (Create, Read, Update, Delete) functions. Events and event handlers. Defining event handlers/listeners. Data validation techniques.
- Midterm exam
- Implementation of typical data relationships and operations: filtering, sorting, paging, specialization and generalization, master-detail example.
- Implementation of typical data relationships and operations: filtering, sorting, paging, specialization and generalization, master-detail example.
- Reflection. Testing.
- Software reuse. Web services.
- Software reuse. Web services.
- Software reuse. Simple refactoring. Command Query separation.
- Final exam
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 (2022.), Pro C# 10 with .NET 6, Apress
Robert C. Martin (2008.), Clean Code, Pearson Education
Robert C. Martin (2011.), The Clean Coder, Pearson Education
General
ID 210659
Winter semester
5 ECTS
L2 English Level
L1 e-Learning
45 Lectures
0 Seminar
0 Exercises
6 Laboratory exercises
0 Project laboratory
0 Physical education excercises
Grading System
85 Excellent
70 Very Good
60 Good
50 Sufficient