Дневник КМБ-2014 » History » Revision 2
Revision 1 (Alexey Demakov, 09/29/2014 05:01 PM) → Revision 2/6 (Alexey Demakov, 11/17/2014 03:35 PM)
h1. 2014
h2. 9 сентября 15:30-17:50
h3. План
* Демаков
** очень кратное содержание курса:
** Возьмём небольшую задачу и попробуем проследить жизненный цикл программного продукта, создание и изменение артефактов и связи между ними.
*** требования
*** код
*** документация
*** тесты
** Учебная задача несложная, всё можно удержать в голове и жульничать. Но попробуем одновременно с разработкой думать о больших проектах, как бороться с их сложностью.
** Будет практическая часть. Студенты приносят ноутбуки. Windows/Linux - без разницы. Используемые инструменты
*** Java
*** Eclipse
*** JUnit
*** EclEmma
*** Git
* Более менее систематизированное представление о Java (top level, до уровня членов классов)
** пакеты -> классы и интерфейсы -> члены. Это код.
** Объекты. Их нет в коде, только в голове. Жизненный цикл объектов
*** конструктор
*** поля и методы
*** уничтожение и finalize
*** управление памятью
** Примитивные типы. Они не объекты.
** Схема обращения к классам и методам. Область видимости.
** Методы виртуальные и статические.
** Передача параметров: объекты по ссылке, примитивы по значению.
* И правила хорошего тона: комментарии (и javadoc), форматирование кода, схема именования
* Что из чего: .java -> .class -> jar + javadoc
h3. Факт
Всё по плану
Список присутствующих(координаты в почте у Демакова, Пакулина, Кулямина, Петренко, Хорошилова):
ВМиК, группа 328:
Полушкин Алексей Юрьевич
Волков Антон Романович
Хвальков Дмитрий Александрович
Колосков Андрей Анатольевич
Бережков Михаил Сергеевич
h2. 16 сентября 15:30-17:50
* Повтор целей и задач семинара
* Постановка задачи для первого проекта
** Калькулятор, на входе выражение, требования:
*** с несколькими операциями +, -, *, /
*** на входе только целые числа, диапазон как у встроенных в ЯП
*** несколько вариантов обработки
*** на выходе точность не теряется
*** лексемы могут быть разделены пробелами или табуляциями
** Проектные решения:
*** Интерфейс командной строки
*** На выходе нормальная дробь M/N, M целое, N натуральное, взаимнопростые
*** или сообщение об ошибке в случае неправильного входа, переполнения или деления на ноль
Всё по плану
h3. 29 сентября 17:15-???
h3. 6 октября 17:15-???
mockito
h3. 13 октября 17:15-???
mockito
h3. 20 октября 17:15-???
h3. 27 октября 17:15-???
промежуточный зачет
h3. 10 ноября 17:15-???
вводная лекция по model-based testing и Summer (Кулямин)
h3. 17 ноября 17:15-???
описание тестовых автоматов с использованием Summer
h4. пример Турникет
Турникет состоит из барьера, фотоэлементов до него и после, а также имеет устройство считывания билетов.
Барьер открыт всегда, кроме ситуации, когда кто-то пытается пройти без билета.
Воздействия:
card() - считана карта, дающая право на проход
before(true) - закрыт фотоэлемент перед барьером
before(false) - открыт ранее закрытый фотоэлемент перед барьером
after(true) - закрыт фотоэлемент после барьера
after(false) - открыт ранее закрытый фотоэлемент после барьера
Требуется определить состояния турникета и запрограммировать обход автомата на Summer.