Управление разработкой программных продуктов

Управление разработкой программных продуктов

Даний курс знайомить школярів з основними особливостями практичної розробки програмного забезпечення.   

Мета курсу – розповісти школярам про те, як практична діяльність в IT-індустрії відрізняється від рішення задач з програмування, а також описати все різноманіття роботи, здійснюваної на різних етапах розробки ПЗ. Також ставиться мета навчити слухачів курсу працювати з великими проектами. 

На курсі школярі: 

  • Познайомляться з різноманіттям професій в IT-індустрії.
  • Дізнаються про те, з яких етапів складається життєвий цикл програмного продукту, від виникнення першої ідеї до моменту, коли його кидає останній користувач.
  • Навчаться працювати над великими завданнями, поділяючи їх на більш дрібні і плануючи свій час.
  • Дізнаються про те, що таке предметна область і чому її важливо вивчати, взявшись за розробку програмного продукту.
  • Дізнаються про специфіку роботи з замовником, а також з колективом розробників.
  • Познайомляться з різними моделями розробки програмного забезпечення.
  • Дізнаються про те, яку частину роботи можна перекласти на автоматику і познайомитись з безліччю засобів автоматизації, корисних на різних етапах розробки ПЗ.
  • Познайомляться з різними видами графічних схем, які застосовуються при розробці ПЗ.
  • Навчаться представляти свій проект на публіці і складати супровідну документацію
Повний курс "Управління розробкою програмних продуктів" містить два модулі і розрахований на рік навчання в типовому форматі – один раз в тиждень.

Тривалість кожного модуля курсу: 24 академічних години. 

Короткий зміст першого модуля: 

  • Влаштування IT-компанії, розподіл ролей 
  • Життєвий цикл програмного забезпечення. Від першої ідеї до останнього користувача 
  • Життєвий цикл програмного забезпечення 
  • Що, власне, розробляємо? 
  • Розробка технічного завдання 
  • Огляд попередніх рішень і аналіз предметної області – додаткові знання, які знадобляться нам для розробки 
  • Яку систему вважати хорошою? Критерії якості програмної системи. Чого хоче користувач? 
  • Яку систему вважати хорошою? Чого хочуть програмісти? 
  • Проектування користувальницьких інтерфейсів 
  • Як звести складну задачу до більш простих. Про що потрібно думати, перш ніж починати розробку. Проектування і декомпозиція. Етапи проектування 
  • Для різних завдань – різні рішення. Різні моделі розробки ПЗ, їх достоїнства, недоліки і область застосування. Каскадна та еволюційна моделі 
  • Методології ітераційної моделі. Раціональний уніфікований процес 
Короткий зміст другого модуля: 

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