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


 

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

Цель курса – рассказать школьникам о том, как практическая деятельность в IT-индустрии отличается от решения задач по программированию, а также описать всё многообразие работы, совершаемой на разных этапах разработки ПО. Также ставится цель научить слушателей курса работать с крупными проектами.

На курсе школьники:

  • Познакомятся с многообразием профессий в IT-индустрии.
  • Узнают о том, из каких этапов состоит жизненный цикл программного продукта, от возникновения первой идеи до момента, когда его бросает последний пользователь.
  • Научатся работать над крупными задачами, разделяя их на более мелкие и планируя своё время.
  • Узнают о том, что такое предметная область и почему её важно изучать, взявшись за разработку программного продукта.
  • Узнают о специфике работы с заказчиком, а также с коллективом разработчиков.
  • Познакомятся с различными моделями разработки программного обеспечения.
  • Узнают о том, какую часть работы можно переложить на автоматику и познакомитесь с множеством средств автоматизации, полезных на разных этапах разработки ПО.
  • Познакомятся с различными видами графических схем, которые применяются при разработке ПО.
  • Научатся представлять свой проект на публике и составлять сопроводительную документацию.

Полный курс "Управление разработкой программных продуктов" содержит два модуля и рассчитан на год обучения в типовом формате – один раз в неделю.

Краткое содержание первого модуля:

Занятие 1. Устройство IT-компании, распределение ролей

Занятие 2. Жизненный цикл программного обеспечения. От первой идеи до последнего пользователя

Занятие 3. Жизненный цикл программного обеспечения

Занятие 4. Что, собственно, разрабатываем?

Занятие 5. Разработка технического задания

Занятие 6. Обзор предшествующих решений и анализ предметной области – дополнительные знания, которые понадобятся нам для разработки

Занятие 7. Какую систему считать хорошей? Критерии качества программной системы. Чего хочет пользователь?

Занятие 8. Какую систему считать хорошей? Чего хотят программисты?

Занятие 9. Проектирование пользовательских интерфейсов

Занятие 10. Как свести сложную задачу к более простым. О чем нужно думать, прежде чем начинать разработку. Проектирование и декомпозиция. Этапы проектирования

Занятие 11. Разным задачам – разные решения.  Различные модели разработки по, их достоинства, недостатки и область применения. Каскадная и эволюционная модели

Занятие 12. Методологии итерационной модели. Рациональный унифицированный процесс

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

 

Краткое содержание второго модуля:

Занятие 1. Гибкая (Agile) методология разработки

Занятие 2. Методология SCRUM

Занятие 3. Экстремальное программирование (XP)        

Занятие 4. Модель "сборки из конструктора" (разработка на основе ранее созданных компонентов в условиях ограниченных ресурсов)

Занятие 5. Как упростить технические процессы и переложить часть работы на "автоматику". Различные средства автоматизации. История, классификация и область применения

Занятие 6. Как распланировать свою работу, чтобы уложиться в сроки. Оценка сложности и объема работы. Планирование, управление временем и учёт рисков. Сроки-качество-объем-ресурсы. Что выбрать?

Занятие 7. Распределенная коллективная работа и системы контроля версий

Занятие 8. Чем схемы лучше текста. Нотация UML. Обзор основных диаграмм. Диаграмма вариантов использования

Занятие 9. Нотация UML. Диаграмма классов. Диаграмма последовательностей

Занятие 10. Нотация UML. Диаграмма состояний, диаграмма компонентов и диаграмма развёртывания. Нотация IDEF

Занятие 11. Почему правильно показать – не менее важно, чем правильно разработать. Презентация и доклад как лицо проекта

Занятие 12. Почему важно описать полученный результат и как это лучше сделать. Внутренняя и внешняя документация

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