Teoria

26.11.24

Arenduse etapid

1. Eelanalüüs. Описание потребностей и их анализ
2. Tehniline ja visuaalne disain. Дизайн программного продукта
3. Arendus. Разработка
4. Testmine. Проверка
5. Juurutamine. Выпуск и внедрение продукта
6. Hooldus. Обслуживание продукта

Tarkvara elutsüki mudelid

Waterfall (kaskaad)
Iteratiivsed
Spiraalsed
inkrementaalsed
Agile (agiilne)

Testimine

Valge kast – Белый ящик. Тестировщик знает, как работает программа и какие функции выполняет каждый ее блок.

Must kast – Черный ящик. Проверка, при которой тестировщик не имеет доступа к коду. Он, как реальный клиент или пользователь, оценивает функции и работу программы, ориентируясь исключительно на интерфейс взаимодействия.

Hall kast – Серый ящик. Тестировщик может видеть часть кода или иметь доступ к внутренним настройкам продукта, недоступным обычному пользователю.

Vead ja erandid

Loogikavead – Логические.
Возникают из-за синтаксических погрешностей кода

Süntaksivead – Ситаксические.
Проявляются вследствие логических неточностей в алгоритме

Erindid – Исключения.
Вызваны некорректными действиями пользователя или системы

Vigade liigitamine programmi töötlemise etappide kaupa

Kompileerimisvead (Ошибки компиляции)
Paigutusvead (Ошибки компоновки)
Toimimisvead (Ошибки выполнения)

Põilised programmeerimismudelid

  • Императивное программирование
    Это способ написания программ, где описываются конкретные шаги, как добиться результата.
  • Декларативное программирование
    В этом подходе указывается, что нужно сделать, а не как это делать
  • Структурное программирование.
    Этот метод организует код в чёткие блоки для упрощения понимания и
    исправления ошибок.
  • Функциональное программирование.
    В нём главную роль играют функции, которые могут возвращать другие функции и не изменяют состояние программы.
  • Логическое программирование.
    В этом подходе программы описываются через логические выражения и правила, на основе которых делаются выводы.
  • Обьективно-ориентированное программирование.
    Это способ программирования, где данные и действия с ними объединяются в объекты.
  • Компонентно-ориентированное программирование.
    Программы создаются как набор взаимозаменяемых и независимых компонентов.
  • Прототипно-ориентированное программирование.
    В этом подходе новые объекты создаются через копирование и изменение существующих.

Algoritm

Programmeerimises keskendume kohustavatele eeskirjadele – neile, mis kirjeldavad tegevusi, mida peab tegema.

Tavaliselt on elus mingi ülesande lahendamiseks vaja teha mitu sammu järjest – sel juhul saame rääkida lahenduseeskirjast ehk algoritmist.

Algoritm on mingi hulk kindlas järjekorras kohustavaid eeskirju

Algoritmide põhiomadused

1. diskreetsus – osadeks jagatud;
2. selgus(kindlus) – lõplik sammude kogus;
3. ühesus – ühesuguste lähteandmete korral peab algoritmi täitmine viima ühesugustele lõpptulemustele. Algoritmi täitmise tulemus ei tohi sõltuda täitjast;
4. universaalsus – algoritm peab olema mõeldud kõikide antud;
5. lõplikkus – lõpliku arvu sammude järel peab algoritm viima lõpptulemusele; 6. korrektsus

Tõlgimine

diskreetsus – дискретность: разделённость на части
selgus (kindlus) – ясность (определённость): конечное количество шагов
ühesus – единообразие: при одинаковых исходных данных выполнение алгоритма должно приводить к одинаковым конечным результатам. Результат выполнения алгоритма не должен зависеть от исполнителя
universaalsus – универсальность: алгоритм должен быть предназначен для всех заданных случаев
lõplikkus – конечность: после конечного числа шагов алгоритм должен привести к конечному результату
korrektsus – корректность: (следует продолжить, если имеется дополнительный контекст).

Algoritmide tüübid

Lineaarne algoritm – algoritmi sammude täitmise järjekord ei sõltu vahetulemustest

Hargnev algoritm – sammude täitmise järjekord sõltub mingist tingimusest või vahetulemusest

Tsükliline algoritm – algoritmi mingit osa täidetakse korduvalt

Tõlgimine

Lineaarne algoritm – Линейный алгоритм: порядок выполнения шагов алгоритма не зависит от промежуточных результатов.

Hargnev algoritm – Разветвляющийся алгоритм: порядок выполнения шагов зависит от какого-либо условия или промежуточного результата.

Tsükliline algoritm – Циклический алгоритм: какая-то часть алгоритма выполняется несколько раз.

Plokkskeem

Plokkskeem – algoritmi graafiline kujutamine plokkide ja neid ühendavate noolte abil.

Algus või lõpp – Начало или конец
Protsess, tegevused – Процесс, действия
Sisend või väljund – Ввод или вывод
Otsustus – Решение
Tegevuste järgnevuse suund – Направление последовательности действий

Пример