Теория

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 — Направление последовательности действий

Пример