Faculty of Technical Sciences

Subject: Introduction to Software Engineering (17.SE0011)

Native organizations units: No data
General information:
 
Category Theoretical-methodological
Scientific or art field Applied Computer Science and Informatics
Interdisciplinary No
ECTS 6
Educational goal:

Training students to apply modern methods, tools and best practices in the software development process.

Educational outcome:

Upon successful completion of the course the student is able to: use modern techniques and tools in software development (integrated environment, editors, compilers, debugers etc.); successfully cooperates in team development of software products using tools for collaboration, control systems versions and systems for tracking requests for changes; writes unit, integration and acceptance tests; understands the benefits of software controlled testing, understands and use basic methdological approaches to software development; writes documentation and uses tools for writing documentation for evolving software.

Course content:

Theoretical part: Processes and software development methodologies, the traditional understanding of the software development process, agile methodologies, iterative methodologies. Overview of integrated development environment, advantages over conventional code editors; efficient use of integrated environments; navigation of source code; defining dynamic templates for coding. Discovery techniques and troubleshooting; debugging. Version control systems (VCS); architecture tools; subversion - use, version control. Testing, test driven software development (TDD) as unit testing; integration testing, acceptance test, testing frameworks in the programming language Python. Behavior-Driven Development (BDD); scriptwriting, writing acceptance tests. Agile methods and tools for project management, monitoring requests for changes, tracking tasks, linking the source code changes. Writing documentation, source code documentation elements, technical documentation, user manual, writing tools, and documentation generation. Tools for managing and installing demountable. Virtual environments in Python. Practical part: installation, configuration, and Eclipse integrated environment, setting patterns for coding in Java; debugging Python program. Installation, configuration, and client for Subversion VCS; Subversive. Testing Java programs (JUnit, doctest).

Teaching methods:

Lectures; Computer exercises; Consultations. Project. Continually monitor the use of the version control system, the project management system, the testing framework, and the documentation framework through the project task. As part of the course, students divided into teams of two members (couples) implement an interactive application project that enables visualization and understanding of data structures and basic operations over data structures (algorithms). The methodological approach is based on the development of a document model vision document and a functional model of a developed software product. The specification-guided development enables later verification and validation of the software product in relation to its specification.

Literature:
Authors Title Year Publisher Language
Perišić, B. Osnovi softverskog inženjerstva 2016 Fakultet tehničkih nauka, Novi Sad Serbian language
Robert C. Martin Clean Code A Handbook of Agile Software Craftmanship 2009 Prentica Hall English
Pfleeger, S.L. Software Engineering : Theory and Practice 2001 Prentice-Hall, New York English
Pressman, R. S., Maxim, B. R. Software Engineering: A Practitioners Approach (8th edition) 2014 McGraw-Hill English
Bourque, P., Dupuis; R., Abran, A., Moore, J. W. Guide to the Software Engineering Body of Knowledge 2005 Sams Publishing English
James W. Moore The Road Map to Software Engineering: A Standards-Based Guide 2006 Wiley-IEEE Computer Society Press English
Pierre Bourque, Richard E. (Dick) Fairley Guide to the Software Engineering Body of Knowledge Version 3.0 SWEBOK V.3.0 2014 IEEE Computer Society English
Knowledge evaluation:
Course activity Pre-examination Obligations Number of points
Written part of the exam - tasks and theory No Yes 50.00
Project defence Yes Yes 10.00
Praćenje aktivnosti pri realizaciji projekata Yes Yes 10.00
Project Yes Yes 30.00
Lecturers:

Asistent Šarenac Balša

Assistant - Master

Computational classes

prof. dr Kovačević Aleksandar

Full Professor

Lectures

Asistent Dorić Luka

Assistant - Master

Computational classes
API Image

prof. dr Milosavljević Gordana

Full Professor

Lectures

Asistent Kovačević Tamara

Assistant - Master

Computational classes

Asistent Radaković Danijel

Assistant - Master

Computational classes

Asistent Janković Eva

Assistant - Master

Computational classes

Asistent Prokić Simona

Assistant - Master

Computational classes

Faculty of Technical Sciences

© 2024. Faculty of Technical Sciences.

Contact:

Address: Trg Dositeja Obradovića 6, 21102 Novi Sad

Phone:  (+381) 21 450 810
(+381) 21 6350 413

Fax : (+381) 21 458 133
Emejl: ftndean@uns.ac.rs

© 2024. Faculty of Technical Sciences.