Дневник КМБ-2014 » History » Revision 4
Revision 3 (Alexey Demakov, 11/17/2014 03:35 PM) → Revision 4/6 (Alexey Demakov, 11/17/2014 03:44 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() - считана карта, дающая право на проход beforeClosed() before(true) - закрыт фотоэлемент перед барьером beforeOpened() before(false) - открыт ранее закрытый фотоэлемент перед барьером afterClosed() after(true) - закрыт фотоэлемент после барьера afterOpened() after(false) - открыт ранее закрытый фотоэлемент после барьера Требуется определить состояния турникета и запрограммировать обход автомата на Summer.