2014¶
9 сентября 15:30-17:50¶
План¶
- Демаков
- очень кратное содержание курса:
- Возьмём небольшую задачу и попробуем проследить жизненный цикл программного продукта, создание и изменение артефактов и связи между ними.
- требования
- код
- документация
- тесты
- Учебная задача несложная, всё можно удержать в голове и жульничать. Но попробуем одновременно с разработкой думать о больших проектах, как бороться с их сложностью.
- Будет практическая часть. Студенты приносят ноутбуки. Windows/Linux - без разницы. Используемые инструменты
- Java
- Eclipse
- JUnit
- EclEmma
- Git
- Более менее систематизированное представление о Java (top level, до уровня членов классов)
- пакеты -> классы и интерфейсы -> члены. Это код.
- Объекты. Их нет в коде, только в голове. Жизненный цикл объектов
- конструктор
- поля и методы
- уничтожение и finalize
- управление памятью
- Примитивные типы. Они не объекты.
- Схема обращения к классам и методам. Область видимости.
- Методы виртуальные и статические.
- Передача параметров: объекты по ссылке, примитивы по значению.
- И правила хорошего тона: комментарии (и javadoc), форматирование кода, схема именования
- Что из чего: .java -> .class -> jar + javadoc
Факт¶
Всё по плану
Список присутствующих(координаты в почте у Демакова, Пакулина, Кулямина, Петренко, Хорошилова):
ВМиК, группа 328:
Полушкин Алексей Юрьевич
Волков Антон Романович
Хвальков Дмитрий Александрович
Колосков Андрей Анатольевич
Бережков Михаил Сергеевич
16 сентября 15:30-17:50¶
- Повтор целей и задач семинара
- Постановка задачи для первого проекта
- Калькулятор, на входе выражение, требования:
- с несколькими операциями +, -, *, /
- на входе только целые числа, диапазон как у встроенных в ЯП
- несколько вариантов обработки
- на выходе точность не теряется
- лексемы могут быть разделены пробелами или табуляциями
- Проектные решения:
- Интерфейс командной строки
- На выходе нормальная дробь M/N, M целое, N натуральное, взаимнопростые
- или сообщение об ошибке в случае неправильного входа, переполнения или деления на ноль
- Калькулятор, на входе выражение, требования:
Всё по плану
29 сентября 17:15-???¶
6 октября 17:15-???
mockito¶
13 октября 17:15-???
mockito¶
20 октября 17:15-???
h3. 27 октября 17:15-???¶
промежуточный зачет
10 ноября 17:15-???
вводная лекция по model-based testing и Summer (Кулямин)¶
17 ноября 17:15-???
описание тестовых автоматов с использованием Summer¶
пример Турникет¶
Турникет состоит из барьера, фотоэлементов до него и после, а также имеет устройство считывания билетов.
Барьер открыт всегда, кроме ситуации, когда кто-то пытается пройти без билета.
Турникет в обратную сторону не пропускает.
Воздействия:
card() - считана карта, дающая право на проход
beforeClosed() - закрыт фотоэлемент перед барьером
beforeOpened() - открыт ранее закрытый фотоэлемент перед барьером
afterClosed() - закрыт фотоэлемент после барьера
afterOpened() - открыт ранее закрытый фотоэлемент после барьера
Информация:
boolean passLight() - green/red индикатор
boolean barrier() - true, если барьер закрыт
Требуется определить состояния турникета и запрограммировать обход автомата на Summer.
Updated by Alexey Demakov about 10 years ago · 6 revisions