Učni načrt predmeta

Predmet:
Metode programskega inženirstva
Course:
Software Engineering Methods
Študijski program in stopnja /
Study programme and level
Študijska smer /
Study field
Letnik /
Academic year
Semester /
Semester
Informacijske in komunikacijske Računalniške strukture in si stemi 1 2
Information and Communication Computer Structures and System s 1 2
Vrsta predmeta / Course type
Izbirni
Univerzitetna koda predmeta / University course code:
IKT2-695
Predavanja
Lectures
Seminar
Seminar
Vaje
Tutorial
Klinične vaje
work
Druge oblike
študija
Samost. delo
Individ. work
ECTS
15 15 15 105 5

*Navedena porazdelitev ur velja, če je vpisanih vsaj 15 študentov. Drugače se obseg izvedbe kontaktnih ur sorazmerno zmanjša in prenese v samostojno delo. / This distribution of hours is valid if at least 15 students are enrolled. Otherwise the contact hours are linearly reduced and transfered to individual work.

Nosilec predmeta / Course leader:
izr. prof. dr. Barbara Koroušič Seljak
Sodelavci / Lecturers:
doc. dr. Tome Eftimov
Jeziki / Languages:
Predavanja / Lectures:
slovenščina, angleščina / Slovenian, English
Vaje / Tutorial:
Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti:
Prerequisites:

Zaključen študijski program prve stopnje s področja naravoslovja, tehnike ali računalništva.

Student must complete first-cycle study programmes in natural sciences.

Vsebina:
Content (Syllabus outline):

Uvod: zgodovinski pregled pristopov k načrtovanju programske opreme; modelno vodeno inženirstvo; agilni pristopi.

Modeliranje programske opreme: razvojni cikel načrtovanja programske opreme; metodologije in metode za analizo in načrtovanje programske opreme; osnove načrtovanja (strukturni / objektno-orientirani postopki); sodobni postopki za izdelavo diagramov (npr. modeliranje po industrijskem standardu UML); domensko specifični jeziki.

Načrtovanje sistema: načrtovanje in oblikovanje programske opreme (vidik kodiranja).

Testiranje sistema: analiza in testiranje izvorne kode, testiranje na ciljnem sistemu.

Vrednotenje sistema: osnove vrednotenja in ocenjevanja zmogljivosti sistemov; zagotavljanje varnosti pri kritičnih sistemih.

Dokumentacija: dokumentacija in vidiki kakovosti.

Introduction: historical overview of software engineering approaches; model-driven engineering; agile approaches.

Software modeling: steps in developing software; software analysis and design – methods and methodologies; design basics – object oriented vs structured techniques; modern diagramming techniques (e.g. UML modelling); domain-specific languages.

System design: designing and constructing software – code –related issues.

System testing: analyzing and testing source code, in-target testing.

System validation: performance engineering basics; safety and mission critical systems.

Documentation: documentation and quality issues.

Temeljna literatura in viri / Readings:

Izbrana poglavja iz naslednjih knjig: / Selected chapters from the following books:
S. McConnell, Code Complete: A Practical Handbook of Software Construction, Second Edition. Microsoft Press, 2015.
M. Cohn, Succeeding with Agile: Software Development Using Scrum, 1st Edition. Addison Wesley, 2010.
M. Brambilla, J. Cabot, M. Wimmer, Model-Driven Software Engineering in Practice (Synthesis Lectures on Software Engineering, Band 1). Morgan & Claypool Publishers, 2012.
M. Kleppmann, Designing Data-Intensive Applications, O'Reilly Media, Inc., 2017, ISBN: 9781491903100
J. Cooling, Software design for real-time systems. Lindentree Associates, 2022. ISBN 979-8-834-97347-8.

Cilji in kompetence:
Objectives and competences:

Cilj predmeta je seznaniti študenta s sodobnimi metodami programskega inženirstva.

Kompetence študenta z uspešno zaključenim predmetom bodo vključevale razumevanje programskega inženirstva, poznavanje sodobnih metod in znanje o primerih uporabe le-teh.

The goal of the course is to familiarize the student with the field of software engineering.

The competencies of the students completing this course successfully would include understanding of basic concepts from the area, familiarity with state-of-the art methods, and knowledge of examples applications.

Predvideni študijski rezultati:
Intendeded learning outcomes:

Študenti bodo z uspešno opravljenimi obveznostmi tega predmeta pridobili:
- razumevanje konceptov modeliranja tovrstnih sistemov
- poznavanje metodologij in metod za modeliranje programske opreme
- poznavanje osnov načrtovanja sistemov
- zmožnost modeliranja programske opreme ob upoštevanju značilnosti dane računalniške arhitekture
- sposobnost uporabe naprednih metod za analizo, testiranje in vrednotenje programske opreme
- poznavanje konceptov izdelave kakovostne dokumentacije programske opreme

Students successfully completing this course will acquire:
- understanding of modelling concepts for realtime and embedded systems
- knowledge of methodologies and methods for software modelling
- to get familiar with system design basics
- ability to model software considering the characteristics of a system architecture
- ability to use advanced methods for software analysis, testing and performance evaluation
- to get familiar with documentation and quality issues of software

Metode poučevanja in učenja:
Learning and teaching methods:

Predavanja, seminar, konzultacije, individualno delo.

Lectures, seminar, consultations, individual work.

Načini ocenjevanja:
Delež v % / Weight in %
Assesment:
Seminarska naloga
50 %
Seminar work
Ustni zagovor seminarske naloge
50 %
Oral defense of seminar work
Reference nosilca / Lecturer's references:
1. G. Popovski, B. Koroušić Seljak, T. Eftimov. FoodBase corpus : a new resource of annotated food entities. Database. 2019, vol. 2019, str. 1-13. ISSN 1758-0463.
2. T. Eftimov, G. Popovski, M. Petković, B. Koroušić Seljak, D. Kocev. COVID-19 pandemic changes the food consumption patterns. Trends in food science & technology, 2020, vol. 104, str. 268-272. ISSN 0924-2244. DOI: 10.1016/j.tifs.2020.08.017.
3. G. Cenikj, T. Eftimov, B. Koroušić Seljak. FooDis: a food-disease relation mining pipeline. Artificial intelligence in medicine. Aug. 2023, vol. 142, [article no.] 102586, str. 1-13, ilustr. ISSN 1873-2860. DOI: 10.1016/j.artmed.2023.102586.
4. T. Eftimov, B. Koroušić Seljak, P. Korošec. A rule-based named-entity recognition method for knowledge extraction of evidence-based dietary recommendations. PloS one, ISSN 1932-6203, 2017, vol. 12, no. 6, str. 0179488-1-0179488-32.
5. S. Mezgec, B. Koroušić Seljak. NutriNet : a deep learning food and drink image recognition system for dietary assessment. Nutrients, ISSN 2072-6643, 2017, vol. 9, no. 7, str. 657-1- 657-19.