Tarkvaraarendus | Разработка программного обеспечения
Arendusetapid | Этапы разработки
- Eelanalüüs – vajaduste ja nõuete kogumine ning analüüs
Предварительный анализ – сбор и анализ требований - Disain – tehniline ja visuaalne kujundus
Дизайн – техническое и визуальное проектирование - Arendus – tarkvara kirjutamine
Разработка – написание кода - Testimine – veaotsing ja kontroll
Тестирование – поиск ошибок и проверка работы - Juurutamine – tarkvara kasutuselevõtt
Внедрение – запуск и внедрение продукта - Hooldus – süsteemi järelevalve ja tugi
Сопровождение – обслуживание и поддержка продукта
Tarkvara elutsükli mudelid | Модели жизненного цикла ПО
Waterfall (Kaskaad) | Каскадная модель
- Etapid järgnevad üksteisele kindlas järjestuses.
- Klient näeb tulemust ainult kindlates etappides.

Iteratiivne mudel | Итерационная модель
- Projekt jagatakse osadeks, iga osa annab tööversiooni.
- Tulemus täieneb iga iteratsiooniga.

Spiraalne mudel | Спиральная модель
- Protsess liigub korduvate tsüklitena (planeerimine, disain, arendus, testimine).

- Iga tsükkel viib eesmärgile lähemale.
Agile (Agiilne) | Гибкая методология
- Inimesed ja koostöö on olulisemad kui protsessid.
- Valmis toode tähtsam kui dokumentatsioon.
- Paindlikkus ja kohanemisvõime on olulised.

Agile metoodikad | Гибкие методологии
- Scrum – töö jagamine sprindiks (1–4 nädalat), sprint planning, backlog.
- Kanban – ülesanded liiguvad etappide vahel visuaalsel tahvlil.
- RUP – arendus neljas faasis: alustamine, täpsustamine, ehitamine, kasutuselevõtt.
- DSDM – keskendub tähtajale ja eelarvele, nõuete muutumine on lubatud.
- RAD – kiire arendus, prototüübid, tihe koostöö kliendiga.
- XP (Extreme Programming) – lühikesed tsüklid, paarisprogrammeerimine, pidev testimine.
Testimine | Тестирование
Testimise liigid | Виды тестирования
- Funktsionaalne, jõudlustestid, stressitestid
- Kasutatavuse test, turvatest, lokaliseerimise test
- Must kast, valge kast, hall kast (чёрный, белый, серый ящик)
Automatiseerimise tase | Уровень автоматизации
- Manuaalne, automaatne, poolautomaatne
Komponentide isoleeritus | Изолированность компонентов
- Moodul-, integratsiooni-, süsteemitestid
Ajaline aspekt | Время проведения
- Alfa-, beeta-, suitsutestimine
Funktsionaalsed testid
- Uue funktsiooni test, regressioonitest, kinnitav test
Veatüübid | Типы ошибок
- Süntaksivead / Синтаксические ошибки – leitakse enne käivitamist
- Erindid / Исключения – ilmnevad töö ajal (nt. jagamine nulliga)
- Loogikavead / Логические ошибки – programm töötab, aga annab vale tulemuse
Veade jaotus arenduse etappide kaupa | Классификация по этапам
- Kompileerimisvead – компилятор tuvastab
- Paigutusvead – модулite ühendamise probleemid
- Toimimisvead – ilmnevad programmi käivitamisel
Programmeerimisparadigmad | Парадигмы программирования
- Imperatiivne / Императивное – käskude jada (nt. C, Python)
- Deklaratiivne / Декларативное – kirjeldus ilma toiminguteta (nt. HTML, SQL)
- Struktureeritud / Структурное – loogiline jaotus mooduliteks, ei kasutata GOTO
- Funktsionaalne / Функциональное – reeglipõhine andmetöötlus
- Loogiline / Логическое – põhineb loogikal ja faktidest järeldamisel (nt. Prolog)
- Objektorienteeritud / Объектно-ориентированное – klassid ja objektid (nt. Java, C#)
- Komponentpõhine / Компонентно-ориентированное – eraldi taaskasutatavad komponendid
- Prototüüpne / Прототипно-ориентированное – ilma klassideta, objektide kloonimine (nt. JavaScript)
Keeled ja nende kasutus | Языки программирования и их применение
- JavaScript (+ React, Vue, Node) – veebiarendus, prototüüpne
- Java – Android, objektorienteeritud
- Python – veeb, skriptimine, OOP ja protseduuriline
- PHP – serveripoolne, OOP ja protseduuriline
- C# – mängud, rakendused, OOP
- Swift/Objective-C – iOS, Mac OS arendus
Avatud vs suletud lähtekood | Открытый и закрытый исходный код
- Avatud lähtekood – kood avalikult nähtav, välja arvatud tundlik info
- Suletud lähtekood – ainult valmis toode on kasutajale kättesaadav
Algoritmid | Алгоритмы
- Algoritm – hulk kohustavaid juhiseid kindlas järjekorras
Алгоритм — набор обязательных шагов для решения задачи
Мухаммед бен Муса алХорезми

Põhiomadused | Основные свойства алгоритма:
- Diskreetsus – jaguneb sammudeks
- Selgus (määratlus) – iga samm on üheselt mõistetav
- Ühesus – samade sisendite korral sama tulemus
- Universaalsus – töötab mitme sarnase probleemi puhul
- Lõplikkus – lõpeb kindla tulemusega
- Korrektne – annab õige tulemuse, kui selline on olemas
Algoritmide tüübid / Типы алгоритмов
- Lineaarne algoritm / Линейный алгоритм
Sammud täidetakse järjestikku, sõltumata vahetulemustest.
Шаги выполняются последовательно, независимо от промежуточных результатов. - Hargnev algoritm / Разветвляющийся алгоритм
Sammude täitmine sõltub tingimusest.
Порядок шагов зависит от условия или результата. - Tsükliline algoritm / Циклический алгоритм
Osa algoritmist täidetakse korduvalt.
Часть алгоритма повторяется многократно. - Plokkskeem / Блок-схема
Algoritmi visuaalne kujutis, kasutades plokke ja nooli.
Графическое представление алгоритма в виде блоков и стрелок.
Andmetüübid / Типы данных
- Int – täisarv / целое число (nt. 5, -100)
- Float – ujukomaarv / число с плавающей точкой (nt. 2.5, -3.14)
- Str – sõne / строка (nt. “kass”, “123”)
- Bool – tõeväärtus / логическое значение (True / False)
Plokkskeemi põhielemendid / Основные элементы блок-схем

- Algus / Lõpp – начало / конец
- Sisend / Väljund – ввод / вывод
- Omandamine / Arvutamine – получение / вычисление
- Tingimus – условие
- Kui tõene – sooritatakse üks tegevus / Если условие верно – выполняется действие
- Kui väär – teine tegevus / Если ложно – другое действие
- Tsükkel tingimusega / Цикл с условием
- Tsükkel loeteluga / Цикл с перечислением
Plokkskeemi näide / Пример блок-схемы



Ruutvõrrandi lahendamine / Решение квадратного уравнения
Üldkuju: ax² + bx + c = 0
Sisend: a, b, c
Arvutame D: D = b² - 4ac
- Kui
D < 0→ lahendusi pole - Kui
D = 0→ üks lahendus:x = -b / 2a - Kui
D > 0→ kaks lahendust:x₁ = (-b + √D) / 2ax₂ = (-b - √D) / 2a
Muutujad / Переменные
- Muutuja = mälupiirkond kindla nimega.
Переменная — именованная область памяти. - Väärtuse määramine = võrdusmärgiga
Присваивание значения — через знак= - Reeglid:
- Ei tohi sisaldada tühikuid (kasuta _ alakriipsu)
- Ei tohi alata numbriga
- Ei tohi olla Pythoni võtmesõna
Pythoni andmetüübid / Типы данных в Python
- int – täisarv
- float – ujukomaarv
- str – sõne
- bool – tõeväärtus (True, False)
Madala taseme keeled / Языки низкого уровня
1. põlvkond / Первое поколение (1954–1958)
- Masinkood (binaarkood) – keeruline lugeda ja siluda
- Примеры: FORTRAN I, ALGOL-58, Flowmatic, PL V
2. põlvkond / Второе поколение (1959–1961)
- Sümboolne assembler
- Ilmus muutuja mõiste
- Käsud: sqlCopyEdit
MOV AL, 19 ADD AL, 4 OUT 2 - Примеры: FORTRAN II (allprogrammid), ALGOL-60, COBOL, Lisp
Kõrgetasemelised keeled / Языки высокого уровня
3. põlvkond / Третье поколение (1962–1970)
- Suhteliselt lihtsad, sõltumatud riistvarast
- Orienteeritud algoritmidele
- Примеры: FORTRAN, COBOL, BASIC, Pascal, C, C++, Java, Python, C#, Delphi, Visual Basic
4. põlvkond / Четвёртое поколение (alates 1970 / с 1970)
- Probleemile orienteeritud
- Kasutus kitsas valdkonnas
- SQL – andmebaasi päringukeel
- HTML/XML – märgistuskeeled
- Prolog – loogikaprogrammeerimine
Ei ole täisväärtuslikud programmeerimiskeeled
Не являются полноценными языками программирования
5. põlvkond / Пятое поколение
- Puudub selge määratlus
- Arvuti lahendab probleemi ilma otsese programmeerijata
- Programmeerija määratleb ainult tingimused ja ülesande
Translaatorid / Трансляторы
Enne programmi käivitamist tõlgitakse see masinkoodi.
- Kompilaator – kogu programm teisendatakse masinkoodiks ja seejärel käivitatakse
Пример: C, Fortran, Pascal - Interpretaator – programm loetakse rida-realt ja kohe täidetakse
Пример: BASIC, Java

