Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ответы к экзамену (Технология программирования)

.pdf
Скачиваний:
21
Добавлен:
13.02.2021
Размер:
2.12 Mб
Скачать

ОГЛАВЛЕНИЕ

1.

*Как пишется хороший код. Способы представления алгоритмов .............................................................

2

2.

*Принципы работы со сложными системами. Абстракция, модульность, дополнительные принципы ...

7

3.

*Жизненный цикл и процессы разработки программного обеспечения ...................................................

8

4.

*Понятие жизненного цикла. Модели жизненного цикла..........................................................................

9

5.*Унифицированный процесс разработки программного обеспечения RUP. Основные фазы разработки

11

6.*Унифицированный процесс разработки программного обеспечения UML. Основные виды моделей.13

7.

*Экстремальное программирование. Основные принципы .....................................................................

17

8.

*Экстремальное программирование. Достоинства и недостатки.............................................................

20

9.

*Основные этапы развития языка UML. История развития языка UML.....................................................

21

10.

*Визуальное проектирование. Методология объектно-ориентированного анализа и проектирования

(ООАП) 22

 

11.

*Основные элементы языка UML. Модель сложной системы..............................................................

25

12.

*Пакеты в языке UML. Графическое изображение системы и подсистемы в языке UML ....................

29

13.

*Канонические диаграммы языка UML.................................................................................................

32

14.*Диаграмма вариантов использования как концептуальное представление системы в процессе ее

разработки..........................................................................................................................................................

33

15.

*Отношения на диаграммах использования.........................................................................................

35

16.*Формализация функциональных требований к системе и особенности спецификации на диаграмме

использования....................................................................................................................................................

37

17.

*Объекты и классы.................................................................................................................................

40

18.

*Стереотипы и классы............................................................................................................................

42

19.

*Элементы графической нотации диаграммы классов.........................................................................

44

20.

*Отношения и их графическое изображение на диаграмме классов...................................................

46

21.

*Диаграмма классов. Отношение ассоциации......................................................................................

50

22.

*Диаграмма классов. Отношение обобщения ......................................................................................

54

23.

*диаграмма клАссов. отношение агрегации и отношение композиции ...............................................

56

24.

*Язык моделирования UML. Диаграмма состояний. Триггерные и нетриггерные переходы..............

58

25.

*Язык моделирования UML. Диаграмма действий. Разделение и слияние потоков управления .......

60

26.*Язык моделирования UML. Диаграмма последовательности. Графическое изображение линий

жизни, фокусов управления объектов и сообщений на диаграмме .................................................................

62

27.

*Диаграмма последовательности. Ветвление потока управления.......................................................

63

28.*Язык моделирования UML. Диаграмма взаимодействия или кооперация. Реализация диаграммы

взаимодействия: объекты, связи между ними, сообщения ..............................................................................

64

29.*Физическое представление модели. Диаграммы реализации: компонентов и развертывания.

Базовые элементы физического представления системы.................................................................................

69

30.*Варианты графического изображения компонентов, интерфейсов и изображение зависимости

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

74

1

31.*Диаграмма развертывания. Графическое изображение узлов, соединения и зависимости на

диаграмме развертывания.................................................................................................................................

77

1.*КАК ПИШЕТСЯ ХОРОШИЙ КОД. СПОСОБЫ ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ

Опытные программисты обладают т.н. "набором инструментов программиста", в который входят:

курсы проектирования, независимые от языка, где изучаются независимые от языка инструменты проектирования (Language

Independent Design Tools, LIDT);

разнообразные языки программирования, в том числе и Ассемблер;

различные аппаратные курсы;

личный опыт.

Как пишется хороший код:

Моделирование;

представление логики приложения в независимой от языка форме;

«правило одной страницы».

Пять элементов хорошей программной разработки:

получить информацию от некоторого входного источника;

решить, как эта информация должна организовываться и сохраняться;

применить некоторый набор инструкций для манипуляции входными данными; эти инструкции могут быть разбиты на четыре главные категории: одиночные операторы, условные операторы, циклы и подпрограммы;

сообщить о результатах манипуляций над данными;

собрать вместе все предыдущие элементы, выразив их в модульноспроектированном, самодокументированном коде с разумной схемой отступов.

Самодокументированность:

2

префикс к названию переменной (например, ivar=1, т.е. int ivar=1):

осмысленные имена переменных;

комментарии.

Грамотно написанный код позволяет быстро ответить на следующие вопросы:

Какие заголовочные файлы требуются для данного фрагмента кода?

Какие имена относятся к символическим константам?

Каковы подстановочные значения для этих констант?

Какие стандартные типы данных имеются в этом фрагменте?

Каковы, если они есть, пользовательские типы?

Каковы имена их элементов?

Какова размерность массивов, если они есть?

Говорит ли этот код о каких-либо логических взаимоотношениях?

Как используются переменные программы?

Основное профессиональное правило достаточно просто: следует применять стиль кодирования, который будет понятен для кого-то еще, а не только для его автора.

АЛГОРИТМ - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.

Виды алгоритмов:

ЛИНЕЙНЫЙ – набор команд (указаний), выполняемых последовательно во времени друг за другом;

РАЗВЕТВЛЯЮЩИЙСЯ - алгоритм, содержащий хотя бы одно условие, в результате проверки которого может осуществляться разделение на несколько параллельных ветвей алгоритма;

ЦИКЛИЧЕСКИЙ - алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными.

Способы представления алгоритмов:

СЛОВЕСНО-ФОРМУЛЬНОЕ ОПИСАНИЕ (форма записи предложений не формализуется, т.е. при записи предложений можно использовать как слова,

3

так и математические символы. Однако предложения при такой записи алгоритма нумеруются, чтобы иметь возможность обратиться к нужному предложению. Также смысл предложения должен пониматься однозначно.).

Нахождение площади прямоугольника со сторонами А и В

1.

Начало

1.

Начало

2.

Найти длину стороны А

2.

X=A

3.

Найти длину стороны В

3.

Y=B

4.

Умножить А на В

4.

S=AB

5.

Конец

5.

Конец

ГРАФИЧЕСКИЕ СПОСОБЫ ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ (с помощью схем алгоритмов). Графические символы, их размеры и правила построения схем алгоритмов определены Единой системой программной документации (ЕСПД), являющейся государственным стандартом.

4

Операторы итерации

5

ПРЕДСТАВЛЕНИЕ АЛГОРИТМОВ В ВИДЕ ЛОГИЧЕСКИХ СХЕМ (ПО А.А.

ЛЯПУНОВУ) представляется в виде выражения, содержащего символы операторов действия, операторов выбора, стрелки для обозначения переходов и оператора останова.

ПРЕДСТАВЛЕНИЕ АЛГОРИТМА В ВИДЕ ПРОГРАММ. Если алгоритм записывается для исполнения на компьютере, то он должен быть строго формализован. Для формализации придумано множество языков программирования. Запись алгоритма на таком языке является программой, а процесс перевода алгоритма на язык программирования – программированием.

6

2.*ПРИНЦИПЫ РАБОТЫ СО СЛОЖНЫМИ СИСТЕМАМИ. АБСТРАКЦИЯ, МОДУЛЬНОСТЬ, ДОПОЛНИТЕЛЬНЫЕ ПРИНЦИПЫ

АБСТРАКЦИЯ – это отвлечение от всего, что несущественно для достижения частной цели.

УТОЧНЕНИЕ – это обратный способ от абстрактного к конкретному.

Абстракция и уточнение используются для работоспособных решений, гарантирующие свойства результ.системы.

МОДУЛЬНОСТЬ – это принцип организации больших систем в виде набора подсистем, модулей, компонентов.

Компоненты связаны посредством интерфейсов.

При делении на модули нужно использовать принципы:

Выделение интерфейсов и сокрытие информации;

Адекватность, полнота, минимальность и простота интерфейсов;

Переиспользование.

АДЕКВАТНОСТЬ - модуль решает те задачи, что нужны пользователю данного модуля.

ПОЛНОТА – решаются все значимые задачи в рамках функциональности модуля.

МИНИМАЛЬНОСТЬ – модулем решаются различные по смыслу задачи, и ни одну из них нельзя реализовать с помощью других модулей.

ПРОСТОТА – этот модуль с интерфейсом элементарен и не представим в виде композиции некоторых более простых операций.

ПЕРЕИСПОЛЬЗОВАНИЕ – принцип, который требует избегать повторений одних и тех же знаний в виде структуры данных в различных частях системы. Вместо этого выделяется один источник.

7

3.*ЖИЗНЕННЫЙ ЦИКЛ И ПРОЦЕССЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

ЖИЗНЕННЫЙ ЦИКЛ ПО — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования. То есть это время от начального момента создания какого-либо программного продукта до конца его разработки и внедрения. Жизненный цикл программного обеспечения можно представить в виде моделей.

МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА ПО — структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.

Модель кодирования и устранения ошибок

Постановка задачи;

Выполнение;

Проверка результата;

Переход в начало.

Каскадная модель («водопад»)

Выработка системных требований

Выработка требований к ПО

Анализ

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

Кодирование

Тестирование

Эксплуатация

Преимущества:

 

 

Недостатки:

Последовательное выполнение

 

 

 

Отсутствие обратных связей

этапов проекта в строгом

 

 

 

между этапами;

фиксированном порядке;

 

 

 

Не соответствует реальным

 

8

 

 

Позволяет оценивать качество

условиям

разработки

продукта на каждом этапе.

программного продукта.

Каскадная модель с промежуточным контролем («водоворот»)

Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла.

Недостаток: 10-ти кратное увеличение затрат на разработку.

V-модель (разработка через тестирование)

4. *ПОНЯТИЕ ЖИЗНЕННОГО ЦИКЛА. МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА

ЖИЗНЕННЫЙ ЦИКЛ ПО — ряд событий, происходящих с системой в процессе ее создания и дальнейшего использования. То есть это время от начального момента создания какого-либо программного продукта до конца

9

его разработки и внедрения. Жизненный цикл программного обеспечения можно представить в виде моделей.

МОДЕЛЬ ЖИЗНЕННОГО ЦИКЛА ПО — структура, содержащая процессы действия и задачи, которые осуществляются в ходе разработки, использования и сопровождения программного продукта.

Модель кодирования и устранения ошибок

Постановка задачи;

Выполнение;

Проверка результата;

Переход в начало.

Каскадная модель («водопад»)

Выработка системных требований

Выработка требований к ПО

Анализ

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

Кодирование

Тестирование

Эксплуатация

Преимущества:

 

Недостатки:

 

 

Последовательное выполнение

 

Отсутствие обратных связей

 

этапов проекта в

строгом

 

между этапами;

 

 

фиксированном порядке;

 

Не соответствует

реальным

 

Позволяет оценивать

качество

 

условиям

разработки

 

продукта на каждом этапе.

 

программного продукта.

Каскадная модель с промежуточным контролем («водоворот»)

10