Subject: Introduction to Software Engineering (12 - SE0011)


Basic Information

CategoryScientific-professional
Scientific or art field:
InterdisciplinaryNo
ECTS5
Native organizations units

Course native organizational units not found!
Course specification

Course is active from 29.10.2012..

Training students to apply modern methods, tools and best practices in the software development process.
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.
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 Python; debugging Python program. Installation, configuration, and client for Subversion VCS; Subversive. Testing Python programs (PyUnit, doctest). Behavior driven development tools (Lettuce); Managing requests for changes (Trac). Writing and generate documentation (Sphinx). Tools for managing and installing demountable (setuptools, distribute, easy_install, pip ). Virtual environments in Python.
Lectures, Computer exercises; Consultations. Assigned project is continuously monitored using version control systems, project management systems, testing frameworks and framework for writing documentation throughou project development. The defense of the project is written. The final exam is oral. Assessment mark is based on the success of the defense project assignment and final oral examination.
AuthorsNameYearPublisherLanguage
Perišić BrankoOsnovi softverskog inzenjerstva2011FTNSerbian language
Younker, J.Foundations of agile Python development2008ApressEnglish
Murphy, D.Managing Software Development with Trac and Subversion2007PacktPub LimitedEnglish
Course activity Pre-examination ObligationsNumber of points
Project defenceYesYes50.00
Oral part of the examNoYes50.00
Name and surnameForm of classes
Missing picture!

Perišić Branko
Full Professor

Lectures
Missing picture!

Dejanović Igor
Full Professor

Lectures
Missing picture!

Milosavljević Gordana
Full Professor

Lectures
Missing picture!

Bjeljac Petar

Computational classes
Missing picture!

Venus Danijel

Computational classes