Разработка на софтуер 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
Q

Покритие на кода с тестове

A

Измерва колко реда/блока код се изпълняват по време на тестването

26
Q

Компонентно тестване

Unit testing

A

Тестване на отделни компоненти
Откриване на грешки в ранен етап на разработка

Могат да служат и като документация

27
Q

Логически фази на тестване

ААА

A
  • Arrange - подготовка на тествания обект
  • Act - извикване на тествания метод/свойство
  • Assert - сравнение на очакванията и резултатите
28
Q

nUnit

A

Фреймуърк за компонентно тестване на всички .NET езици

29
Q

Използване на дебъгер

Дебъгване

A

Откриване, поправяне и изолиране на грешки в програмен код

30
Q

Използване на дебъгер

Стартиране на дебъгер

Клавишна комбинация

A

F5

31
Q

Използване на дебъгер

IntelliTrace

Умно проследяване

A

Работи на фонов режим и записва действията ни по време на дебъгване
Достъп до предишни състояния на приложението

32
Q

Използване на дебъгер

Добавяне на стопер (breakpoint)

A

F9

33
Q

Използване на дебъгер

Локална променлива

A

Съществува само в рамките на даден метод

34
Q

Използване на дебъгер

Visual Studio Data Inspection

A

В прозореца за наблюдение Watch
Autos и Locals променливи

35
Q

Използване на дебъгер

Прозорец Locals

Инспекция на данни

A

Съдържа локални променливи за специфична част от стека
Показва името, стойността и типа на променливата

36
Q

Използване на дебъгер

Прозорец Autos

Инспекция на данни

A

Дебъгерът решава кои променливи да се показват

37
Q

Използване на дебъгер

Прозорец Памет (Memory)

Инспекция на данни

A

Изследване на паметта в обхвата на процеса

38
Q

Използване на дебъгер

Прозорец Регистри

Инспекция на данни

A

Инспекция на регистрите на процесора

39
Q

Използване на дебъгер

Прозорец за моментално изпълнение (Immediate window)

Инспекция на данни

A

Използва се за дебъгване на големи изрази
Директно работим в конзолата

40
Q

Използване на дебъгер

Нишки

Threads

A

Основни единици от изпълняващ се код
Програмите използват >1 нишка
Всяка нишка има стек

41
Q

Използване на дебъгер

Стек

Памет

A

Област от паметта
Всяка нишка има стек
Пази локални променливи

Принцип Последно влязъл, първи излязъл

42
Q

Използване на дебъгер

Threads Window

Инспекция на данни

A

Преглед на дейността на нишките
Основна информация за всяка нишка

43
Q

Преработка, инкрементни промени

Рефакториране (Refactoring)

A

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

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

44
Q

Преработка, инкрементни промени

Кога се прави рефакториране?

A
  • добавяне на функционалност
  • откриване на грешка
  • преглед на кода
45
Q

Преработка, инкрементни промени

При какви ситуации се изисква рефакториране?

A
  • дълги методи
  • голям клас
  • много параметри
  • Switch израз
  • пасивни и еднакви класове
  • коментари
46
Q

Преработка, инкрементни промени

Проблеми при рефакториране

A
  • логиката на БД е трудна за промяна
  • промяна в интерфейса
  • промяна в архитектурата
47
Q

Преработка, инкрементни промени

Стилово ръководство

A

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

48
Q

Преработка, инкрементни промени

Линтери

A

Анализира изходния код и маркира грешки, бъгове и т.н.

49
Q

Преработка, инкрементни промени

TDD

Тестове

A

Test driven development

50
Q

Преработка, инкрементни промени

Red - Green - Refactor принцип

A
  1. Писане на неуспешен тест
  2. Справяне с неуспешния тест
  3. Рефакториране

Основа на гъвкавата разработка

51
Q
A