Цели и задачи курса и практикума

Цели и задачи курса и практикума

Отрасль разработки программного обеспечения - одна из самых молодых и перспективных отраслей человеческой деятельности. В настоящее время сложность задач, стоящих перед отраслью, непрерывно возрастает, что требует применения специальных технологий организации и проведения процесса разработки программного обеспечения. Теоретическое изучение подобных технологий, совмещенное с их практическим применением, представляет собой исключительно важную часть подготовки специалиста в области разработки программного обеспечения.

Цель данного курса состоит в изучении основных путей организации и проведения успешных проектов в области разработки программного обеспечения на базе принципов Microsoft Solutions Framework ( MSF ). Важная роль отводится практической составляющей курса.

1.2. Задачи изучения курса

В рамках изучения курса предполагается решение следующих задач:

  • рассмотрение технологических основ процесса разработки программного обеспечения;
  • изучение основ унифицированного языка UML для визуального моделирования элементов предметной области в рамках проектирования программной системы и ее основных компонент;
  • получение практического опыта работы в команде из 5-7 человек с применением методологии MSF ;
  • приобретение и развитие навыков анализа, проектирования, документирования и разработки программных комплексов средней сложности .

По окончании изучения курса студенты будут уметь использовать методологию Microsoft Solutions Framework for Agile Software Development , включая:

  • разработку формальных требований к программной системе, основанных на потребностях заинтересованных лиц;
  • разработку проекта программной системы с учетом возможностей ее дальнейшего развития, а также повторного использования некоторых ее компонент в других проектах;
  • создание диаграммы классов и компонент UML для визуального представления архитектуры программной системы;
  • документирование процесса разработки программной системы.
1.3. Дисциплины, усвоение которых необходимо при изучении данного курса

Курс опирается на материалы следующих курсов: CS101 "Введение в методы программирования", CS102 "Методы объектно-ориентированного программирования", CS105 "Дискретная математика" . Предполагается, что данный курс читается параллельно с курсом CS103 "Алгоритмы и структуры данных" с запаздыванием в 1 семестр ( рис. 1).

2. Характеристика курса

Данный курс читается в 4-ом семестре и опирается на прочитанные ранее общие курсы CS101 "Введение в методы программирования", CS102 "Методы объектно-ориентированного программирования", в рамках которых студенты знакомятся с фундаментальными понятиями, принципами и методами программирования, изучают основные алгоритмы, простейшие структуры данных, языки программирования Object Pascal и C/C++. В 3-ем семестре студенты изучают первую часть курса CS103 "Алгоритмы и структуры данных", выполняют лабораторные работы согласно учебному плану. Таким образом, полученных к 4-му семестру знаний и навыков достаточно для того, чтобы приступить к ознакомлению с технологиями коллективной разработки программ.

Конечно, уровень студента 2 курса все еще не позволяет овладеть этой темой полностью, поэтому учебный план предполагает изучение нескольких последовательно расположенных курсов, первым из которых, вводным, является данный курс - "Технологии программирования. Курс на базе Microsoft Solutions Framework ( MSF )".

В качестве базовой методологии разработки программного продукта выбрана перспективная, хорошо себя зарекомендовавшая методология MSF . В лекциях рассматривается суть методологии, ее основные этапы и принципы.

На протяжении изучения курса на лекциях рассматривается специально разработанный пример, на основе которого иллюстрируются все этапы разработки программного продукта.

Наряду с изучением теоретической составляющей - проблематики и базовых принципов коллективной разработки программ, сути и принципов MSF - большое внимание уделяется практической составляющей. В рамках лабораторного практикума студенты делятся на команды в соответствии с моделью команды MSF и, получив задачу, выполняют весь цикл работ по проектированию, разработке, тестированию и внедрению программного продукта.

В качестве некоторых управленческих ролей возможно привлечение магистрантов, имеющих некоторый опыт создания ПО в командах разработчиков.

Рассмотрим кратко основные разделы курса и их содержание.

Во введении (лекция 1) дается понятие программного обеспечения ( ПО ), описывается проблема роста сложности разработки качественного продукта в заданные сроки в соответствии с имеющимся бюджетом, рассматриваются основные технологии программирования как средства борьбы со сложностью. Дается краткая характеристика курса, формулируются его цели, задачи и структура учебного плана.

Основная часть курса состоит из трех разделов.

Данный учебный курс рассчитан на студентов 2 курса, как правило, не имеющих существенного опыта практического программирования, программирования в команде, и, тем более, управления процессом разработки ПО . Убеждение авторов состоит в том, что для подготовки грамотного исполнителя необходимо не только привить ему навыки разработки ПО , изучить принципы командной работы, но и отчетливо выявить основные проблемы отрасли. Именно этому и посвящен первый раздел курса.

В первом разделе курса (лекция 2) дается обзор некоторых понятий и принципов программной инженерии. В частности разбирается понятие программной инженерии, процесса, модели процесса разработки ПО . Рассматриваются конкретные модели процесса .

Во втором разделе курса (лекции 3, практики 1, 2, 3) идет речь о принципах объектно-ориентированного анализа и проектирования программного обеспечения при помощи визуальных средств языка UML . Дается обзор принципов объектного подхода, рассматриваются важные аспекты повторного использования, рассматриваются элементы языка UML . Демонстрируется применение UML для визуализации проектирования лекционных примеров из читаемого параллельно курса CS103 "Алгоритмы и структуры данных".

В третьем разделе курса (лекции 4, 5, 6, 7, практики 4, 5, 6, 7, 8) изучается методология разработки программного обеспечения Microsoft Solutions Framework 4.0. Рассматривается история MSF , основные принципы MSF , модель проектной группы , роли и фазы MSF . Через все фазы проводится лекционный пример - разработка системы бронирования билетов для аэропорта.

3. Содержание курса

Программа и программное обеспечение , основные отличия. О рынке программного обеспечения.

Сложность управления процессом разработки программного обеспечения.

Технологии программирования как способ борьбы со сложностью.

Обзор технологий программирования (структурное, модульное, объектно-ориентированное, компонентное программирование ).

Цели и задачи курса. Структура учебного плана. Основная и дополнительная литература, Интернет-источники.

1. Элементы программной инженерии.

1.1. Программная инженерия , основные понятия.

Инженерия и инженеры.

Программная инженерия как инженерная дисциплина.

Область действия программной инженерии и отличия от других инженерий.

Программные инженеры и их деятельность .

Программные инженеры и научная среда - ключевые различия и принципы успешного взаимодействия.

Показатели качества программного продукта .

1.2. Процесс создания программного обеспечения

Понятие процесса создания ПО . Основные стадии процесса.

Модели процесса создания ПО . Каскадная и эволюционная модели.

Итерационные модели процесса создания ПО . Модель пошаговой разработки, спиральная модель .

2. Визуальное моделирование при анализе и проектировании. Основы Unified Modeling Language (UML).

📎📎📎📎📎📎📎📎📎📎