Управление разработкой программных продуктов
Даний курс знайомить школярів з основними особливостями практичної розробки програмного забезпечення.
Мета курсу – розповісти школярам про те, як практична діяльність в IT-індустрії відрізняється від рішення задач з програмування, а також описати все різноманіття роботи, здійснюваної на різних етапах розробки ПЗ. Також ставиться мета навчити слухачів курсу працювати з великими проектами.
На курсі школярі:
- Познайомляться з різноманіттям професій в IT-індустрії.
- Дізнаються про те, з яких етапів складається життєвий цикл програмного продукту, від виникнення першої ідеї до моменту, коли його кидає останній користувач.
- Навчаться працювати над великими завданнями, поділяючи їх на більш дрібні і плануючи свій час.
- Дізнаються про те, що таке предметна область і чому її важливо вивчати, взявшись за розробку програмного продукту.
- Дізнаються про специфіку роботи з замовником, а також з колективом розробників.
- Познайомляться з різними моделями розробки програмного забезпечення.
- Дізнаються про те, яку частину роботи можна перекласти на автоматику і познайомитись з безліччю засобів автоматизації, корисних на різних етапах розробки ПЗ.
- Познайомляться з різними видами графічних схем, які застосовуються при розробці ПЗ.
- Навчаться представляти свій проект на публіці і складати супровідну документацію
Повний курс "Управління розробкою програмних продуктів" містить два модулі і розрахований на рік навчання в типовому форматі – один раз в тиждень.
Тривалість кожного модуля курсу: 24 академічних години.
Короткий зміст першого модуля:
- Влаштування IT-компанії, розподіл ролей
- Життєвий цикл програмного забезпечення. Від першої ідеї до останнього користувача
- Життєвий цикл програмного забезпечення
- Що, власне, розробляємо?
- Розробка технічного завдання
- Огляд попередніх рішень і аналіз предметної області – додаткові знання, які знадобляться нам для розробки
- Яку систему вважати хорошою? Критерії якості програмної системи. Чого хоче користувач?
- Яку систему вважати хорошою? Чого хочуть програмісти?
- Проектування користувальницьких інтерфейсів
- Як звести складну задачу до більш простих. Про що потрібно думати, перш ніж починати розробку. Проектування і декомпозиція. Етапи проектування
- Для різних завдань – різні рішення. Різні моделі розробки ПЗ, їх достоїнства, недоліки і область застосування. Каскадна та еволюційна моделі
- Методології ітераційної моделі. Раціональний уніфікований процес
Короткий зміст другого модуля:
- Гнучка (Agile) методологія розробки
- Методологія SCRUM
- Екстремальне програмування (XP)
- Модель "складання з конструктора" (розробка на основі раніше створених компонентів в умовах обмежених ресурсів)
- Як спростити технічні процеси і перекласти частину роботи на "автоматику". Різні засоби автоматизації. Історія, класифікація та область застосування
- Як розпланувати свою роботу, щоб укластися в терміни. Оцінка складності та обсягу роботи. Планування, управління часом та врахування ризиків. Терміни-якість-обсяг-ресурси. Що вибрати?
- Розподілена колективна робота та системи контролю версій
- Чим схеми краще тексту. Нотації UML. Огляд основних діаграм. Діаграма варіантів використання
- Нотації UML. Діаграма класів. Діаграма послідовностей
- Нотації UML. Діаграми станів, діаграми компонентів, діаграми розгортання. Нотація IDEF
- Чому правильно показати – не менш важливо, ніж правильно розробити. Презентація та доповідь як обличчя проекту
- Чому важливо описати отриманий результат і як це краще зробити. Внутрішня і зовнішня документація