Введение в программную инженерию
Отдельные занятия в рамках курса доц. Кознова Д. В.
(III семестр у направлений 010300Б и 231000Б)
Системы автоматизации сборки
Системы автоматизации сборки
Задачи (вариант для cmd.exe):
- Сделать solution в Visual Studio на C# из двух проектов, один из которых использует другой.
- Выложить проект в систему контроля версий.
- Научиться работать с клиентом системы контроля версий из командной оболочки.
- Научиться собирать солюшн из командной строки.
- Скомбинировать 3 и 4.
- Научиться получать и сохранять логи взятия из репозитория и сборки.
- Скомбинировать 5 и 6.
- Сделать в командных файлах guard’ы (защиту от запуска не-главных батников, if exist, goto :EOF)
- Научиться удалять старый каталог с предыдущими результатами сборки, создавать новый, брать исходники туда и собирать
- Научиться проверять успешность сборки по захардкоженным именам библиотек.
- То же, но по списку из файла (освоить for)
- Написать или использовать готовую программу, шлющую Email, научиться использовать её из командной оболочки.
- Из билдера слать почту об успешности билда.
- При анализе успешности учитывать результаты модульного тестирования (см. раздел "Модульное тестирование").
В итоге билдер должен:
- очищать каталог сборки проекта;
- доставать в этот каталог исходники из репозитория;
- запускать сборку проекта и модульное тестирование;
- в случае успеха проверять наличие требуемых для дистрибутива бинарников;
- посылать письмо, в котором, если всё хорошо, об этом сказано, а если что-то плохо, то сказано, что плохо и прицеплен лог.
Билдер не должен содержать настроек в середине файлов с "логикой".
Задачи по аналитической геометрии
Задачи по аналитической геометрии
- пересекаются ли прямоугольники (стороны параллельны осям координат);
- пересекаются ли круги (заданы координаты центров и радиусы);
- лежит (с заранее оговоренным допущением) ли точка на заданной прямой (прямая задаётся координатами концов любого своего отрезка);
- пересекаются ли два отрезка;
- лежит ли точка в треугольнике;
- попадает ли точка в эллипс;
- является ли треугольник равносторонним (с заранее оговоренным допущением);
- является ли треугольник прямоугольным (с заранее оговоренным допущением);
- является ли четырёхугольник параллелограммом;
- является ли четырёхугольник выпуклым;
- пересекаются ли отрезок и окружность;
- задача про множества точек + GUI к ней.
Модули проекта
Модули проекта
Проект должен состоять из следующих программных модулей:
- библиотека с описанными выше функциями (кстати если кому охота, может написать и все, может быть им будет приятно вспомнить первый семестр геометрии);
- тестовая сюита для описанных функций (см. раздел "Модульное тестирование");
- графическая программа, которая генерирует несколько случайных ситуаций, отображает их, и при помощи библиотеки определяет, что там пересекается, а что нет
Модульное тестирование
Модульное тестирование
Модульные тесты, в зависимости от формулировки задания, могут требоваться или нет.
Отправка Email
Отправка Email
Неплохой инструмент отправки почты: https://github.com/muquit/mailsend/releases
Как его использовать: https://github.com/muquit/mailsend/blob/master/doc/examples.mediawiki
Пример
mailsend -to user@some.server -from user@another.server -ssl -port 465 -auth -smtp smtp.another.server -sub "test subject" +cc +bc -v -user some_user -pass "*****************" <email_body.txt
Распределение практических заданий и результаты их проверки
Распределение практических заданий и результаты их проверки