Modern software development methods

2023/2024
Programme:
Computer Science and Mathematics, Second Cycle
Year:
1 in 2 year
Semester:
second
Kind:
optional
ECTS:
6
Language:
slovenian, english
Course director:

Damjan Vavpotič

Hours per week – 2. semester:
Lectures
3
Seminar
0.67
Tutorial
1.33
Lab
0
Prerequisites

There are no prerequisites.

Content (Syllabus outline)

Lectures:
The contents adapts to current trends in software development. At the moment the focus is on agile methods for software development and empirical evaluation of these methods:
1. Overview of agile methods for software development and their characteristics
2. Agile software project management
Iterative and incremental development
Scrum
3. Typical Extreme Programming practices
Pair programming
Test driven development (TDD)
Refactoring
Software tools that support TDD and refactoring
4. Weaknesses of Extreme Programming
5. Kanban and lean software development
6. Metrics in Software Engineering and measuring the effectiveness of the software development process
7. Case study: Empirical evaluation of the aforementioned practices
8. Comparison of agile approach to traditional disciplined software development processes (Personal Software Process, Team Software Process, Capability Maturity Model)
Lab practice:
The purpose of lab practice is twofold:
1. to acquaint students with modern software development tools,
2. to empirically evaluate different approaches to software development through practical work on (almost) real software projects.
Individual work outside of contact hours:
Students develop programs that are part of the project that serves as a case study.

Readings
  1. I. Sommerville: Software Engineering, Addison-Wesley, 10. izdaja, 2016.
  2. R. Stephens: Beginning Software Engineering, Wrox, 2015.
  3. D. Anderson, Kanban – Successful Evolutionary Change for Your Technology Business, Sequim, WA: Blue Hole Press, 2010.
    Dodatna literatura:
  4. M. Cohn: User stories applied, Addison-Wesley, 2011, cop. 2004.
  5. K. Beck, A. Cynthia: Extreme Programming Explained, Addison-Wesley, cop. 2005.
  6. K. Schwaber: Agile Project Management with Scrum, Microsoft Press, 2004.
Objectives and competences

In depth treatment and empirical evaluation of modern software development methods in comparison to traditional approach. Students work on a project that serves as a case study for evaluation of modern approaches in order to find their strengths and weaknesses.
The competences students gain are:
the ability to define, understand and solve creative professional challenges in computer and information science,
the ability to apply acquired knowledge in independent work for solving technical and scientific problems in computer and information science, the ability to upgrade acquired knowledge.
the ability of teamwork within the professional environment, management of a small professional team,
the ability for administrative management of processes related to research, industry, education and other fields,
the ability to understand and apply computer and information science knowledge to other technical and relevant fields (economics, organisational science, etc),
practical knowledge and skills of computer hardware, software and information technology necessary for successful professional work in computer and information science,
independently tackle demanding developmental, engineering, and organisational tasks as well as moderately demanding research tasks in their fields of study.

Intended learning outcomes

After the completion of the course a student will be able to:
know and understand modern approaches to software development
understand key benefits of modern software development methods (in comparison to traditional software development)
use tools that support modern software development methods
apply modern software development methods in the context of a real software development project
empirically evaluate the outcomes of new methods
increase understanding of different factors and circumstances that affect the success of a software development project
increase professional skills like team-work, management, planning and organization, written and oral communication

Learning and teaching methods

Lectures with active participation on the part of students (discussion, examples, problem solving). Lab practice requires practical work on an almost real project that serves as a case study for evaluation of different approaches to software development.

Assessment

Continuing (homework, midterm exams, project work)
Final (written and oral exam)
grading: 5 (fail), 6-10 (pass) (according to the Statute of UL)

Lecturer's references

Damjan Vavpotič, Marko Robnik Šikonja, Tomaž Hovelja, "Exploring the relations between net benefits of IT projects and CIOs perception of quality of software development disciplines", Business & information systems engineering, [Print ed.], 2020, vol. 62, no. 4, str. 347-360
Damjan Fujs, Simon Vrhovec, Damjan Vavpotič, "Know your enemy : user segmentation based on human aspects of information security", IEEE access, 2021, vol. 9, str. 157306-157315, ilustr., ISSN 2169-3536
Damjan Fujs, Simon Vrhovec, Boštjan Žvanut, Damjan Vavpotič, "Improving the efficiency of remote conference tool use for distance learning in higher education : a kano based approach", Computers & Education : an international journal, [Print ed.], May 2022, vol. 181, str. 1-15, ilustr., ISSN 0360-1315
Damjan Vavpotič, Saimir Bala, Jan Mendling, Tomaž Hovelja, "Software process evaluation from user perceptions and log data", Journal of software, Apr. 2022, vol. 34, iss. 4, str. 1-14, ilustr., ISSN 2047-7473
Damjan Vavpotič, Diana Kalibatiene, Olegas Vasilecas, Tomaž Hovelja, "Identifying key characteristics of business rules that affect software project success", Applied sciences, Jan. 2022, vol. 12, iss. 2, str. 1-10, ilustr., ISSN 2076-3417

Celotna bibliografija je dostopna na SICRISu:
http://www.sicris.si/search/rsr.aspx?lang=slv&id=13311.