Разработка на софтуер Flashcards

Тест 1

1
Q

Софтуерна архитектура

A

Съвкупност от важни решения за организацията на програмните системи

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Монолитна архитектура

A

Всички модули съществуват като едно приложение

Всички приложения са зависими едно от друго

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Слоеве в трислойната архитектура

A
  • презентационен
  • слой за услуги/бизнес
  • слой за данни

Различни програмни езици и средства

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Сървис-ориентирана архитектура

A

Програмните компоненти предоставят услуги на други програмни компоненти чрез някакъв комуникационен протокол

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Микросървис-ориентирана архитектура

A

Приложенията се структурират около колекция от малки автономни сървъри

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Трислойна архитектура

Слой за данни

DAL

A

Достъп до данните и съхранение в хранилището

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Трислойна архитектура

Слой за услуги

Бизнес/логически слой

A

Защитава данните от директен достъп
Осъществява връзката м/у другите 2 слоя

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Трислойна архитектура

Слой за потребителски интерфейс

UI layer, презентационен

A

Приема информация от потребителя и връща някакъв резултат

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

MVC модел

A
  • Model
  • View
  • Controller
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

MVC

Model

A

Управлява данните и логиката на приложението

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

MVC

View

A

Слой за представяне

Презентационен слой

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

MVC

Controller

A

Преобразува входните данни в команди и ги изпраща към изгледа или модела

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

MVVM

Model - ViewModel - View

A

Изгледът не зависи от конкретна платформа на модела
Улеснява отделянето на GUI разработката

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

MVVM

Model

A

Отговаря за абстракцията на източниците на данни

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

MVVM

View

A

Информира ViewModel за действието на потребителя
Не съдържа никаква логика

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

MVVM

ViewModel

A

Връзка м/у модела и изгледа
Излага потоците от данни, които са подходящи за View

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Софтуерен продукт

A
  • програми
  • данни
  • документация
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Софтуерен процес

A

Начало - възникване на идеята
Край - преустановяване на използването на продукта

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Модели на софтуерни процеси

A
  • линейни последователни
  • непоследователни
  • гъвкави (Agile)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Софтуерни процеси

Гъвкав модел

Agile

A

Проектирането и разработката се препокриват
Непредсказуемост
Адаптивност
Инкрементна стратегия за разработка

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Софтуерни процеси

SCRUM

A

Инкрементна рамка за управление на процеси
Често при гъвкавите модели
Работи се на отделни спринтове

22
Q

Видове тестване

A
  • ръчно
  • автоматично
  • компонентно
23
Q

Регресионно тестване

A

Повторно изпълнение на вече изпълнени тестове
За откриване на грешки, възникнали при актуализация на кода

24
Q

Предимства на регресионното тестване

A
  • незабавно откриване на грешки
  • намаляване на различни разходи
  • непрекъсната интеграция
25
Покритие на кода с тестове
Измерва колко реда/блока код се изпълняват по време на тестването
26
Компонентно тестване | Unit testing
Тестване на отделни компоненти Откриване на грешки в ранен етап на разработка | Могат да служат и като документация
27
Логически фази на тестване | ААА
* **Arrange** - подготовка на тествания обект * **Act** - извикване на тествания метод/свойство * **Assert** - сравнение на очакванията и резултатите
28
nUnit
Фреймуърк за компонентно тестване на всички .NET езици
29
# Използване на дебъгер Дебъгване
Откриване, поправяне и изолиране на грешки в програмен код
30
# Използване на дебъгер Стартиране на дебъгер | Клавишна комбинация
F5
31
# Използване на дебъгер IntelliTrace | Умно проследяване
Работи на фонов режим и записва действията ни по време на дебъгване Достъп до предишни състояния на приложението
32
# Използване на дебъгер Добавяне на стопер (breakpoint)
F9
33
# Използване на дебъгер Локална променлива
Съществува само в рамките на даден метод
34
# Използване на дебъгер Visual Studio Data Inspection
В прозореца за наблюдение Watch Autos и Locals променливи
35
# Използване на дебъгер Прозорец Locals | Инспекция на данни
Съдържа локални променливи за специфична част от стека Показва името, стойността и типа на променливата
36
# Използване на дебъгер Прозорец Autos | Инспекция на данни
Дебъгерът решава кои променливи да се показват
37
# Използване на дебъгер Прозорец Памет (Memory) | Инспекция на данни
Изследване на паметта в обхвата на процеса
38
# Използване на дебъгер Прозорец Регистри | Инспекция на данни
Инспекция на регистрите на процесора
39
# Използване на дебъгер Прозорец за моментално изпълнение (Immediate window) | Инспекция на данни
Използва се за дебъгване на големи изрази Директно работим в конзолата
40
# Използване на дебъгер Нишки | Threads
Основни единици от изпълняващ се код Програмите използват >1 нишка Всяка нишка има стек
41
# Използване на дебъгер Стек | Памет
Област от паметта Всяка нишка има стек Пази локални променливи | Принцип Последно влязъл, първи излязъл
42
# Използване на дебъгер Threads Window | Инспекция на данни
Преглед на дейността на нишките Основна информация за всяка нишка
43
# Преработка, инкрементни промени Рефакториране (Refactoring)
Промяна в структурата на програма за по-лесно разбиране и модифициране | Поведението на програмата не се променя
44
# Преработка, инкрементни промени Кога се прави рефакториране?
* добавяне на функционалност * откриване на грешка * преглед на кода
45
# Преработка, инкрементни промени При какви ситуации се изисква рефакториране?
* дълги методи * голям клас * много параметри * Switch израз * пасивни и еднакви класове * коментари
46
# Преработка, инкрементни промени Проблеми при рефакториране
* логиката на БД е трудна за промяна * промяна в интерфейса * промяна в архитектурата
47
# Преработка, инкрементни промени Стилово ръководство
Правила и насоки за даден език за програмиране Последователност в проекта и между програмистите
48
# Преработка, инкрементни промени Линтери
Анализира изходния код и маркира грешки, бъгове и т.н.
49
# Преработка, инкрементни промени TDD | Тестове
Test driven development
50
# Преработка, инкрементни промени Red - Green - Refactor принцип
1. Писане на неуспешен тест 2. Справяне с неуспешния тест 3. Рефакториране | Основа на гъвкавата разработка
51