Опубликован: 20.07.2007 | Доступ: свободный | Студентов: 765 / 147 | Оценка: 4.30 / 4.06 | Длительность: 09:58:00
Специальности: Программист
Введение 1:

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

Введение 1: 12345 || Лекция 1 >
Ключевые слова: microsoft solutions framework, MSFS, UML, визуальное моделирование, средняя сложность, software developer, диаграммы классов, представление архитектуры, запаздывания, object pascal, цикл работы, ПО, опыт, основной раздел, Модель процессов, объектно-ориентированный анализ и проектирование, элемент языка, методология разработки, модель проектной группы, программа, программное обеспечение, компонентное программирование, программная инженерия, область действия, деятельность, качество программного продукта, спиральная модель, анализ, алгоритмическая, программирование, абстрагирование, инкапсуляция, иерархия, агрегация, наследование, полиморфизм, постановка задачи, ассоциация, диаграммы вариантов использования, диаграмма, отображение, композиция, управление проектом, управление рисками, позиционирование, поддержка, CMMI, improvement, microsoft visual studio, проектная группа, команда, группа, Ролевые группы, архитектура, менеджер проекта, архитектор, релиз, Зоны ответственности, мониторинг, жизненный цикл проекта, обмен информацией, контроль версий, сборка, итерация, оценка риска, представление, главная веха, промежуточная веха, ядро, документирование, верификация, базовая, графика, функциональная спецификация, график, компонент, билд, исполняемый код, фаза тестирования, конвергенция, инструментарий, работ, информационные системы, моделирование, тип модели, ACM, structured programming, unified modeling language, reference manual, course, analyzer, architecture, processing model, white paper, risk management, discipline, team, software engineer, methodology, guidance, язык моделирования, разбиение, роли разработчиков, объектно-ориентированный подход, векторная графика, карта изображений, решатель, дифференциальное уравнение, выходные данные, выходные параметры, почтовый клиент, динамическая структура данных, задача проекта

1. Цели и задачи курса и его место в учебном процессе

1.1. Цель преподавания курса

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

Цель данного курса состоит в изучении основных путей организации и проведения успешных проектов в области разработки программного обеспечения на базе принципов 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).

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

Рис. 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).

2.1. Анализ и проектирование. Некоторые частные вопросы

2.1.1. Обзор принципов объектного подхода.

Алгоритмическая и объектная декомпозиции. Классы и объекты.

Объектно-ориентированный анализ.

Объектно-ориентированное проектирование.

Объектно-ориентированное программирование.

Принципы объектного подхода: абстрагирование, инкапсуляция, иерархия, агрегация и наследование, полиморфизм.

Пример: ООП и структуры данных. Проектирование структуры данных стек.

2.1.2. Повторное использование.

Идея повторного использования. Важность повторного использования.

Достоинства повторного использования. Виды повторного использования.

2.2. Визуальное моделирование. История языка UML.

Идея визуального моделирования.

Необходимость универсального языка для визуального моделирования.

История возникновения и развития языка UML.

2.3. Структура языка UML.

Модели UML.

Диаграммы и понятия UML.

2.4. Учебный пример: Задача о разработке программного комплекса бронирования билетов для авиакомпании "SRS - Seat Reservation System". Постановка задачи.

2.5. Визуальное описание модели функционирования системы средствами UML.

Понятия Актера и Варианта использования.

Ассоциация между Актером и Вариантом использования.

Диаграмма вариантов использования.

Диаграмма действия.

Пример: Использование средств UML для визуального моделирования поведения программной системы "SRS".

2.6. Классы, объекты, поля, методы, подсистемы, компоненты, пакеты и их отображение средствами UML.

Пример: Использование средств UML для визуального проектирования программной системы "SRS".

2.7. Проектирование системы. Диаграммы классов и их описание средствами UML.

Диаграммы классов. Зависимость, наследование, ассоциация, агрегация, композиция и их отображение средствами UML.

Пример: Использование средств UML для визуального проектирования программной системы "SRS".

Введение 1: 12345 || Лекция 1 >