Project

General

Profile

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

Revision 4 (Alexey Demakov, 11/17/2014 03:44 PM) → Revision 5/6 (Alexey Demakov, 11/17/2014 04:40 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() - закрыт фотоэлемент перед барьером 
 beforeOpened() - открыт ранее закрытый фотоэлемент перед барьером 
 afterClosed() - закрыт фотоэлемент после барьера 
 afterOpened() - открыт ранее закрытый фотоэлемент после барьера 
 Информация: 
 boolean passLight() - green/red индикатор 
 boolean barrier() - true, если барьер закрыт 

 Требуется определить состояния турникета и запрограммировать обход автомата на Summer.