Project

General

Profile

Дневник КМБ-2014 » History » Version 5

Alexey Demakov, 11/17/2014 04:40 PM

1 1 Alexey Demakov
h1. 2014
2
3
h2. 9 сентября 15:30-17:50
4
5
h3. План
6
7
* Демаков
8
** очень кратное содержание курса:
9
** Возьмём небольшую задачу и попробуем проследить жизненный цикл программного продукта, создание и изменение артефактов и связи между ними.
10
*** требования
11
*** код
12
*** документация
13
*** тесты
14
** Учебная задача несложная, всё можно удержать в голове и жульничать. Но попробуем одновременно с разработкой думать о больших проектах, как бороться с их сложностью.
15
** Будет практическая часть. Студенты приносят ноутбуки. Windows/Linux - без разницы. Используемые инструменты
16
*** Java
17
*** Eclipse
18
*** JUnit
19
*** EclEmma
20
*** Git
21
22
* Более менее систематизированное представление о Java (top level, до уровня членов классов)
23
** пакеты -> классы и интерфейсы -> члены. Это код.
24
** Объекты. Их нет в коде, только в голове. Жизненный цикл объектов
25
*** конструктор
26
*** поля и методы
27
*** уничтожение и finalize
28
*** управление памятью
29
** Примитивные типы. Они не объекты.
30
** Схема обращения к классам и методам. Область видимости.
31
** Методы виртуальные и статические.
32
** Передача параметров: объекты по ссылке, примитивы по значению.
33
* И правила хорошего тона: комментарии (и javadoc), форматирование кода, схема именования
34
* Что из чего: .java -> .class -> jar + javadoc
35
36
h3. Факт
37
38
Всё по плану
39
40
Список присутствующих(координаты в почте у Демакова, Пакулина, Кулямина, Петренко, Хорошилова):
41
42
ВМиК, группа 328:
43
Полушкин Алексей Юрьевич
44
Волков Антон Романович
45
Хвальков Дмитрий Александрович
46
Колосков Андрей Анатольевич
47
Бережков Михаил Сергеевич
48
49
h2. 16 сентября 15:30-17:50
50
51
* Повтор целей и задач семинара
52
* Постановка задачи для первого проекта
53
** Калькулятор, на входе выражение, требования:
54
*** с несколькими операциями +, -, *, /
55
*** на входе только целые числа, диапазон как у встроенных в ЯП
56
*** несколько вариантов обработки
57
*** на выходе точность не теряется
58
*** лексемы могут быть разделены пробелами или табуляциями
59
** Проектные решения:
60
*** Интерфейс командной строки
61
*** На выходе нормальная дробь M/N, M целое, N натуральное, взаимнопростые
62
*** или сообщение об ошибке в случае неправильного входа, переполнения или деления на ноль
63
64
Всё по плану
65
66
h3. 29 сентября 17:15-???
67 2 Alexey Demakov
68
h3. 6 октября 17:15-???
69
mockito
70
71
h3. 13 октября 17:15-???
72
mockito
73
74
h3. 20 октября 17:15-???
75
h3. 27 октября 17:15-???
76
77
промежуточный зачет
78
79
h3. 10 ноября 17:15-???
80
вводная лекция по model-based testing и Summer (Кулямин)
81
82
h3. 17 ноября 17:15-???
83
описание тестовых автоматов с использованием Summer
84
85
h4. пример Турникет
86 3 Alexey Demakov
87 2 Alexey Demakov
Турникет состоит из барьера, фотоэлементов до него и после, а также имеет устройство считывания билетов.
88
Барьер открыт всегда, кроме ситуации, когда кто-то пытается пройти без билета.
89
Воздействия:
90
card() - считана карта, дающая право на проход
91 4 Alexey Demakov
beforeClosed() - закрыт фотоэлемент перед барьером
92
beforeOpened() - открыт ранее закрытый фотоэлемент перед барьером
93
afterClosed() - закрыт фотоэлемент после барьера
94
afterOpened() - открыт ранее закрытый фотоэлемент после барьера
95 5 Alexey Demakov
Информация:
96
boolean passLight() - green/red индикатор
97
boolean barrier() - true, если барьер закрыт
98
99 2 Alexey Demakov
Требуется определить состояния турникета и запрограммировать обход автомата на Summer.