Программа дисциплины Проектирование и архитектуры программных систем для направления 231000. 68 Программная инженерия подготовки маг - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Программа дисциплины «Менеджмент» для направления 231000. 62 «Программная... 1 364.48kb.
Программа дисциплины Компьютерная графика для направления 231000. 1 162.58kb.
Программа дисциплины Английский язык для направления 231000. 6 1590.35kb.
Программа вступительных испытаний по дисциплине «архитектура ЭВМ... 1 191.41kb.
Рабочая программа дисциплины информационная безопасность Направление... 1 306.73kb.
Программа вступительного экзамена в магистратуру по направлению подготовки... 1 90.38kb.
Рабочая программа дисциплины: б б 11 Разработка и анализ требований... 1 102.43kb.
Программа дисциплины «Программная инженерия» 1 130.97kb.
Рабочая учебная программа По дисциплине: Проектирование и архитектура... 1 155.26kb.
Направление подготовки – 231000 Программная инженерия. Профиль –... 1 150.37kb.
Программа учебной дисциплины "Проектирование корпоративных информационных... 1 195.42kb.
Стандарты и управление проектами 1 100.96kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Программа дисциплины Проектирование и архитектуры программных систем для направления - страница №1/1




Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины “Проектирование и архитектуры программных систем для направления 231000.68 Программная инженерия подготовки магистра





Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"

Факультет Бизнес Информатика

Отделение программной инженерии

Программа дисциплины “Проектирование и архитектура

программных систем”

для специализации «Программная инженерия»

направления 231000.62 Программная инженерия

подготовки бакалавра

Автор программы:

Назаров Станислав Викторович, доктор технических наук, профессор, snazarov@hse.ru

Одобрена на заседании кафедры архитектуры программных систем «___» августа 2012 г.

Зав. кафедрой С.В. Назаров


Рекомендована секцией УМС по бизнес-информатике «___»____________ 2012 г.

Председатель Ю.В. Таратухина


Утверждена УС факультета Бизнес информатика «___»_____________2012 г.
Ученый секретарь В.А. Фомичев

Москва, 2012



Настоящая программа не может быть использована другими подразделениями

университета и другими вузами без разрешения кафедры-разработчика программы.

1Область применения и нормативные ссылки


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

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



Программа разработана в соответствии с:

  • Государственным образовательным стандартом высшего профессионального образования по направлению подготовки 231000 Программная инженерия (квалификация (степень) “бакалавр”);

  • базовым учебным планом направления 231000.62 "Программная инженерия" подготовки бакалавра

  • рабочим учебным планом университета по направлению 231000.62 "Программная инженерия" подготовки бакалавра в 2012 году.

2 Цели освоения дисциплины


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

3Компетенции обучающегося, формируемые в результате освоения дисциплины


В результате освоения дисциплины студент должен:

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

  • Уметь решать задачи, возникающие на различных фазах жизненного цикла программных систем, связанных с проектированием архитектуры программных систем;

  • Иметь навыки использования современных CASE-средств, используемых на различных фазах проектирования архитектуры программных систем.





В результате освоения дисциплины студент осваивает следующие компетенции:



Компетенция

Код по ФГОС/ НИУ

Дескрипторы – основные признаки освоения (показатели достижения результата)

Формы и методы обучения, способствующие формированию и развитию компетенции

Способность к самостоятельному обучению новым методам исследования

ОК-2

Применяет новые методы, реализованные в программном продукте RSA

Практические занятия

Способность к профессиональной эксплуатации современного оборудования

ОК-7

Умеет использовать навыки работы с ПК, локальной сетью и Интернет

Подготовка к семинарам, самостоятельная работа

Умение отбирать и разрабатывать методы исследования объектов профессиональной деятельности на основе общих тенденций развития программной инженерии

ПК-1

Отбирает методы моделирования программных систем

Самостоятельная работа по выполнению домашнего задания

Умение планировать, управлять и контролировать выполнение требований

ПК-4

Разрабатывает требования к программным системам

Лекции. Самостоятельная работа по выполнению домашнего задания

Способность к проектной деятельности в профессиональной сфере на основе системного подхода, умение строить и использовать модели для описания и прогнозирования различных явлений, осуществлять их качественный и количественный анализ

ПК-6

Создает и исследует модели на различных этапах жизненного цикла программных систем

Лекции. Самостоятельная работа по выполнению домашнего задания

Умение формировать технические задания и способность руководить разработкой программного обеспечения

ПК-7

Разрабатывает ТЗ на создание программной системы

Лекции. Самостоятельная работа по выполнению домашнего задания



4Место дисциплины в структуре образовательной программы


Настоящая дисциплина относится к циклу дисциплин Б.3.Б базовой части профессионального цикла.

Изучение данной дисциплины базируется на следующих дисциплинах:



  • введение в программную инженерию;

  • конструирование программного обеспечения;

  • программирование;

  • архитектура вычислительных систем;

  • операционные системы.

    Для освоения учебной дисциплины студенты должны владеть следующими знаниями и компетенциями:



  • способность к формализации в своей предметной области с учетом ограничений используемых методов исследования (ПК-2);

  • готовность к использованию методов и инструментов средств исследования объектов профессиональной деятельности (ПК-3);

  • готовность обосновать принимаемые проектные решения, осуществлять постановку и выполнение экспериментов по проверке их корректности и эффективности (ПК-4); умение готовить презентации, оформлять научно-технические отчеты по результатам выполненной работы, публиковать результаты исследований в виде статей и докладов на НТК (ПК-5);

  • способность формализовать предметную область программного проекта и разработать спецификации для компонентов программного продукта (ПК-6).



Основные положения дисциплины должны быть использованы в дальнейшем при изучении следующих дисциплин:

  • методология разработки корпоративных приложений;

  • системы управления бизнес-процессами;

  • архитектура распределенных систем.


5Тематический план учебной дисциплины







Название раздела

Всего часов

Аудиторные часы

Самостоя­тельная работа

Лекции

Семинары

Практические занятия

1

Введение. Проблемы создания сложных программных систем (ПС).

8

2

2




4

2

Архитектуры программных систем

40

6

2

6

26

3

Жизненный цикл программных систем

18

4

2




12

4

Проектирование программных систем. Постановка требований к ПС

22

4

2

2

14

5

Представление и анализ требований и спецификаций

26

4

2




20

6

Разработка предварительного внешнего проекта

16

2

2

2

10

7

Методология и методы проектирования архитектуры программных систем

32

6

4

2

20

8

Рефакторинг программных систем

22

4

2

2

14




ИТОГО

180

32

18

14

116


6Формы контроля знаний студентов


Тип контроля

Форма контроля

3 год

Параметры

1

2

3

4

Текущий

(неделя)


Доклад на семинаре







*

*

Презентация, 10-15 слайдов. Электронная форма.

Контрольная работа







*




Построение UML-диаграмм. Электронная форма




Домашнее задание










*

ТЗ на разработку и отчет о разработке архитектуры программной системы. Электронный и отпечатанный отчеты

Итоговый

Экзамен










*

Письменный экзамен


6.1Критерии оценки знаний, навыков


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

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

Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале.

7Содержание дисциплины


Раздел представляется в удобной форме (список, таблица). Изложение строится по разделам и темам. Содержание темы может распределяться по лекционным и практическим занятиям.

    Раздел 1 Введение. Проблемы создания сложных программных систем.

    Программные системы (ПС) как отрасль экономики. Проблемы создания ПС. Особенности разработки сложных (больших) программных систем. Кризис программирования. Становление и развитие программной инженерии. Развитие технологий программирования. CASE-технологии. Современное состояние ИТ-индустрии в России.





Литература по разделу:

Основная литература



  1. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: учебное пособие / под ред. Л.Г. Гагариной. – М.: ИД «Форум»: Инфра-М, 2008

  2. Крылов Е.В. Техника разработки программ: В 2 кн. Кн. 2 Технология, надежность и качество программного обеспечения: Учебник / Е.В. Крылов, В.А. Островский, Н.Г. Типикин. – М.: Высш. Шк., 2008

  3. Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.

Дополнительная литература



  1. Боэм Б.У. Инженерное проектирование программного обеспечения: Пер. с англ. – М.: Радио и связь. 1985. – 512 с.

  2. Майерс Г. Надежность программного обеспечения: Пер. с англ. – М .: Мир, 1980. – 360 с.

  3. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. Учебник для вузов. 2-е изд. – М.: Финансы и статистика, 2006

  4. Эберт К. Экскурс в историю программных технологий. – Открытые системы, N10, 2008.

  5. Software 500 / Промышленность - Избранные статьи. [Электронный ресурс]. Режим доступа: http://www.softwaremag.com/focus-areas/the-software-500-industry/featured-articles/innovation-alive-and-well/

  6. Ассоциация АП КИТ. [Электронный ресурс]. Режим доступа: http://www.apkit.ru/ http://www.apkit.ru/



Раздел 2. Архитектуры программных систем

    Понятие архитектуры программной системы. Что определяет и на что влияет архитектура. Архитектурные структуры и представления. Модульные структуры. Отношения между структурами Структуры “компонент и соединитель”. Структуры распределения. Отношения между структурами. Архитектурные образцы, эталонные модели и эталонные варианты архитектуры. Варианты архитектур программных систем. Архитектура, основанная на уровнях абстракций. Архитектуры, основанные на портах. Архитектуры независимых компонентов. Архитектуры, основанные на потоках данных. Сервис-ориентированные архитектуры (SOA).



Основная литература

  1. Басс Л., Клементс П., Кацман Р. Архитектура программного обеспечения на практике. 2-е издание. – СПб.: Питер, 2006

  2. Майерс Г. Надежность программного обеспечения: Пер. с англ. – М .: Мир, 1980.

Дополнительная литература

  1. Назаров С.В. Операционные среды, системы и оболочки. Основы структурной и функциональной организации: Учеб. Пособие. – М.: - КУДИЦ-ПРЕСС, 2007

  2. Назаров С.В., Широков И.А. Современные операционные системы. М.: Интернет-университет Информационных технологий, БИНОМ. Лаборатория знаний, 2010. 279 с.

  3. Сервис-ориентированная архитектура. http://ru.wikipedia.org/wiki/%D1%E5%F0%E2%E8%F1

  4. Соснин П.И. Архитектурное моделирование систем, интенсивно использующих программное обеспечение. http://www.ict.edu.ru/ft/005651/62328e1-st15.pdf


Раздел 3. Жизненный цикл программных систем (ПС)

Понятие жизненного цикла ПС. Основные процессы ЖЦ ПС. Вспомогательные процессы ЖЦ ПС. Организационные процессы ЖЦ ПС. Взаимосвязь между процессами ЖЦ ПС. Состав и стадии жизненного цикла ПС. Модели ЖЦ ПС. Каскадная модель (классический жизненный цикл). Итерационная модель ЖЦ ПС. Макетирование. Стратегии конструирования ПС. Инкрементная модель. Спиральная модель. Спиральная модель ЖЦ ПС “Рациональный унифицированный процесс” (RUP). SCRAM-методология. Agile-методологии. Управление жизненным циклом приложений. Интегрированная среда поддержки создания программных систем.


Основная литература

  1. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. Учебник для вузов. 2-е изд. – М.: Финансы и статистика, 2006

  2. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: учебное пособие / под ред. Л.Г. Гагариной. – М.: ИД «Форум»: Инфра-М, 2008

  3. Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.

Дополнительная литература



  1. Полис Г., Огастин Л., Мадхар Д. Разработка программных проектов: на основе Rational Unified Process (RUP). – М.: ООО «Бином-Пресс», 2009

  2. Трофимов А. Обзор нового продукта IBM Rational Team Concert и открытой платформы Jazz. http://www.interface.ru/home.asp?artId=16750

  3. Уразбаев А. Внедрение Agile. КомпьютерПресс 5'2007 http://www.compress.ru/article.aspx?id=17661&iid=817

  4. Что нового в IBM Rational Software Architect 8.0 http://www.ibm.com/developerworks/ru/library/r-whats-new-in-rational-software-architect-8/#author1

  5. Эллингсуорт М Как использовать метод управления проектами Scrum, работая с IBM Rational Team Concert и платформой Jazz. http://www.ibm.com/developerworks/ru/library/r-0701_ellingsworth/index.html


Раздел 4. Проектирование программных систем. Постановка требований к ПС

Модель проектирования ПС как последовательная трансляция требований, предъявляемых к системе. Методология решения задач проектирования по Г. Майерсу. Уровни требований к программным системам. Постановка задачи и принципы разработки требований.

Определение требований к программным системам. Бизнес-моделирование. Функциональные и нефункциональные (эксплуатационные) требования. Анализ и управление требованиями. Требования и риски. Процесс определения целей продукта и проекта. Разработка технического задания.
Основная литература


  1. Майерс Г. Надежность программного обеспечения: Пер. с англ. – М .: Мир, 1980.

  2. Э.Халл, К. Джексон: Разработка и управление требованиями

  3. Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.

Дополнительная литература



  1. Колин Ю. Применение Rational Software Architect в разработке, управляемой моделями и на основе шаблонов: Часть 2. Инструментальная поддержка разработки. http://www.ibm.com/developerworks/ru/library/0116_yu/#author1

  2. Валидация требований. CM Consult. http://www.cmcons.com/articles/microsoft/vsts2010_rm/requirements_validation/#val

  3. Трофимов С. Определение требований к программному обеспечению. http://www.caseclub.ru/articles/treb.html#Вступление#Вступление

  4. Полис Г., Огастин Л., Лоу К., Мадхар Д. Разработка программных проектов на основе Rational Unnified Process (RUP). – М.: ООО «Бином-Пресс», 2009. – 256 с.

  5. Тавассоли Д. Управление требованиями. Десять шагов на пути к совершенству, http://www.swd.ru/files/pdf/IBM_uspeh_edit1.pdf

  6. Терехов А.Н. Технология программирования: Учебное пособие/ А.Н. Терехов. – М.: Университет информационных технологий; БИНОМ. Лаборатория знаний. 2006. – 148 с.

  7. Уровни требований к программному обеспечению http://www.atis.ru/DocItem.aspx?groupId_10=8&itemId_10=15

  8. Фасбиндер М. Новые возможности версии WebSphere Business Modeler V6.2. http://www.ibm.com/developerworks/ru/library/wes-0812_fasbinder4/#author1



Раздел 5. Представление и анализ требований и спецификаций

Требования в V-модели Халла. Моделирование в определении требований и спецификаций. Разработка программных систем, управляемая моделями. Анализ требований и определение спецификаций при структурном подходе. Спецификации. Метод функционального моделирования. Функциональные диаграммы. Диаграммы потоков данных. Диаграммы переходов состояний. Диаграммы сущность – связь. Анализ требований и определение спецификаций при объектном подходе. Общие сведения о языке UML как языке моделирования сложных систем. Структурные диаграммы: классов, компонентов, композитной/составной структуры и др. Диаграммы поведения: деятельности, состояний, вариантов использования и др. Диаграммы взаимодействия: коммуникации (UML2.0) / кооперации (UML1.x), обзора взаимодействия и др.


Основная литература

  1. Майерс Г. Надежность программного обеспечения: Пер. с англ. – М .: Мир, 1980.

  2. Технологии разработки программного обеспечения: Учебник/ С. Орлов. — СПб.: Питер, 2002.

  3. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: учебное пособие / под ред. Л.Г. Гагариной. – М.: ИД «Форум»: Инфра-М, 2008

  4. Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.

Дополнительная литература



  1. Амсден Д. Фиксация требований с помощью инструментов Business Motivation Model, IBM Rational RequisitePro и IBM Rational Software Modeler. http://www.ibm.com/developerworks/ru/library/r-0401_amsden/index.html#author1

  2. Халл Э., Джексон К., Дик Д. Разработка и управление требованиями. Практическое руководство пользователя. Telelogic, 2005

  3. Общий обзор и концепция разработки, управляемой моделями. http://www.ibm.com/developerworks/ru/library/mdd/ch1/ch1.html#author1

  4. Описание подключаемого модуля RUP для управляемой моделями разработки систем, http://www.interface.ru/home.asp?artId=21714

  5. Основы Программной Инженерии (по SWEBOK). http://swebok.sorlik.ru/1_software_requirements.html

  6. Полис Г., Огастин Л., Лоу К., Мадхар Д. Разработка программных проектов на основе Rational Unnified Process (RUP). – М.: ООО «Бином-Пресс», 2009. – 256 с.



Раздел 6. Разработка предварительного внешнего проекта

Процесс внешнего проектирования. Проектирование взаимодействия с пользователем. Подготовка внешних спецификаций. Языки описания внешних спецификаций. Основные принципы спецификаций. Виды и языки формальных спецификаций. Создание спецификаций с помощью PDL. Таблицы и деревья решений. Проверка правильности внешних спецификаций. Методы проверки правильности внешних спецификаций. Планирование изменений спецификаций.

Основная литература


  1. Майерс Г. Надежность программного обеспечения: Пер. с англ. – М .: Мир, 1980.

  2. Технологии разработки программного обеспечения: Учебник/ С. Орлов. — СПб.: Питер, 2002.

  3. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: учебное пособие / под ред. Л.Г. Гагариной. – М.: ИД «Форум»: Инфра-М, 2008

  4. Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.

Раздел 7. Проектирование архитектуры программных систем

Методология проектирования. Методы проектирования компонентных и модульных архитектур программных систем. Структурное проектирование. Модульность и ее характеристики. Оценка сложности модульных иерархических структур. Слои программного продукта. Метод восходящей разработки (“снизу-вверх”). Метод нисходящей разработки (“сверху-вниз”). Замечания по структурному проектированию. Формальное описание методики разработки модульной (компонентной) архитектуры программных систем. Пример проектирования структуры программной системы. Проектирование и программирование модулей. Проектирование программных систем при объектном подходе.


Основная литература

  1. Полис Г., Огастин Л., Мадхар Д. Разработка программных проектов: на основе Rational Unified Process (RUP). – М.: ООО «Бином-Пресс», 2009

  2. Майерс Г. Надежность программного обеспечения: Пер. с англ. – М .: Мир, 1980.

  3. Технологии разработки программного обеспечения: Учебник/ С. Орлов. — СПб.: Питер, 2002.

  4. Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: учебное пособие / под ред. Л.Г. Гагариной. – М.: ИД «Форум»: Инфра-М, 2008

  5. Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.

Дополнительная литература



  1. Ксензов М. Рефакторинг архитектуры программного обеспечения: выделение слоев. Труды ИПИРАН

  2. Хьюз Дж., Мичтом ДЖ. Структурный подход к программированию: Пер. с англ. – М .: Мир, 1980.

  3. Кулямин В. В. Технологии программирования. Компонентный подход. [Электронный ресурс]. Режим доступа: http://lib.mdpu.org.ua/e-book/vstup/L/Jogolev.pdf

  4. Лисков Б.. Гатэг Дж. Использование абстракций и спецификаций при разработке программ: Пер. с англ. – М.: Мир, 1989. – 424 с.

  5. Назаров С.В. Операционные системы специализированных вычислительных комплексов: теория построения и системного проектирования. – М.: Машиностроение, 1989. – 400 с.

  6. Назаров С.В. Сложность программной системы. Сборник научных трудов по материалам международной научно-практической конференции «Современные направления теоретических и прикладных исследований ‘2011», том 2 Технические науки. – Одесса: Черноморье, 2011. с. 58 – 65

  7. Назаров С.В. Формальное описание методики разработки модульной архитектуры программной системы. В кн.: Сборник научных трудов по материалам международной научно-практической конференции ПЕРСПЕКТИВНЫЕ ИННОВАЦИИ В НАУКЕ, ОБРАЗОВАНИИ, ПРОИЗВОДСТВЕ И ТРАНСПОРТЕ '2011. Одесса: Черноморье, 2011. Т. 5. C. 3—11


Раздел 8. Рефакторинг программных систем

Понятие рефакторинга программных систем. Рефакторинг, проектирование и производительность программ. Когда применять рефакторинг. Уровни рефакторинга. Методы рефакторинга. Основные методы. Рефакторинг кода первого уровня. Рефакторинг условных выражений. Рефакторинг кода второго уровня. Методы рефакторинга, облегчающие работу с данными. Рефакторинг третьего уровня. Архитектурный рефакторинг. Когда нужен архитектурный рефакторинг. Построение архитектуры ПС по ее программному коду. Рефакторинг архитектуры многослойной иерархической ПС. Слои в архитектуре ПС. Паттерн выделения слоев.


Основная литература

  1. Фаулер М., Бек К., Брант Д., Робертс Д., Апдайк У. Рефакторинг: улучшение существующего кода. – Спб: Символ-Плюс, 2009. — С. 432.

Дополнительная литература

  1. Refactoring (Рефакторинг) (комментарии). http://www.gamedev.ru/code/forum/?id=131858

  2. Smalltalk?! http://www.smalltalk.ru/articles/smalltalk-2.html

  3. Welcome to Graphviz. http://graphviz.org/

  4. wxWidgets. http://www.wxwidgets.org/

  5. Ворожко Я. Refactoring. http://pro100pro.com/category/refactoring

  6. Деревянко В. Рефакторинг в Visual Studio. http://soft.sibnet.ru/review/?id=623

  7. ДУБАКОВ М. Рефакторинг: улучшение существующего кода http://www.kv.by/index2003302301.htm

  8. Дубина О. Обзор паттернов проектирования. http://citforum.ru/SE/project/pattern/p_4.shtml

  9. Кериевски Дж. Рефакторинг с использованием шаблонов. : Пер. с англ. – М. : ООО “И.Д. Вильямс”, 2008. – 400 с.

  10. Методы улучшения качества кода: рефакторинг. http://social.msdn.microsoft.com/Forums/ru-ru/fordesktopru/thread/63d9ba19-491b-4e75-9796-6de5132e1a56

  11. Миронов В.О. Применение графов для анализа сложных систем на основе исходного кода программ. http://berestneva.am.tpu.ru/Papers/KONF2009/%f7%c9%ce%c5%d2%cf%d7%d3%cb%c9%c5%20%de%d4%c5%ce%c9%d1/2009%20(F)/fscommand/pdf/056.pdf

8Образовательные технологии


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

Семинарские занятия поводятся в форме дискуссии.

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

8.1Методические рекомендации преподавателю


Преподаватель, проводящий лекционные занятия должен отметить следующее.

Дисциплина является важной составной частью теоретической подготовки бакалавра по направлению 231000.62 “Программная инженерия" и занимает существенное место в его будущей практической деятельности. Знание теории и практики проектирования архитектуры программных систем, обеспечивает возможность разработки эффективных программных систем для любых средств вычислительной техники, начиная от персонального компьютера и локальных вычислительных сетей до больших корпоративных информационных систем и сетей.

Содержание курса соответствует своду знаний по программной инженерии Software Engineering Education Knowledge (SEEK) описанному в документе Software Engineering 2004 (SE 2004), определяющему руководящие принципы создания учебных планов для преподавания программной инженерии в высших учебных заведениях. Построение курса отвечает требованиям отечественных профессиональных стандартов в области информационных технологий и международного профессионального стандарта Guide to the Software Engineering Body of Knowledge (SWEBOK) ISO/IEC TR 19759 IEEE.

8.2Методические указания студентам


Студенты, изучающие дисциплину проектирование и архитектуры программных систем, должны обратить внимание на широту и глубину знаний, требуемых для успешного освоения этой дисциплины. При этом на дисциплину отводится сравнительно небольшое количество часов аудиторных занятий. Отсюда следует, что результат успешного освоения дисциплины во многом определяется самостоятельной работой студентов. В связи с этим можно рекомендовать регулярный просмотр сайтов зарубежных и отечественных компаний, занимающихся разработкой программных систем. Подобные ссылки даются на лекциях и практических занятиях. Следует также участвовать в конференциях и семинарах, которые регулярно проводятся в Москве ведущими компаниями-разработчиками программных продуктов. Стоит обратить внимание на следующие сайты: http://events.cnews.ru/events/

http://www.ibm.com/ru/events/

http://www.academy.it.ru/ru/about/actions/

http://www.techdays.ru/

https://msevents.microsoft.com/cui/default.aspx?culture=ru-ru

http:// h41110.www4.hp.com/ur/institute.html

и многие другие. Многие ведущие программные компании (IBM, MS, HP и др.) реализуют программы академической инициативы, которые позволяют студентам получать бесплатно программные продукты, проходить курсы обучения, участвовать в семинарах и конференциях.

8.3Тематика заданий текущего контроля


Примерные вопросы для семинарских занятий по теме 1 (Сравнительный анализ технологий программирования):

1. “Стихийное” программирование

2. Структурное программирование.

3. Модульное программирование

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

5. Компонентное программирование

6. Средства автоматизации программирования
Примерные вопросы для семинарских занятий по теме 2 (Архитектурные типы и структуры):

1. Двухуровневые и многоуровневые клиент-серверные архитектуры

2. Архитектуры, основанные на потоках данных

3. Архитектуры независимых компонентов

4. CORBA – архитектура

5. Сервис-ориентированные архитектуры


Примерные вопросы для семинарских занятий по теме 3 (Модели жизненного цикла программных систем):

  1. Состав и стадии жизненного цикла ПС

  2. Каскадная модель (классический жизненный цикл)

  3. Итерационная модель

  4. Инкрементная модель

  5. Спиральная модель

  6. Спиральная модель “Рациональный унифицированный процесс” (RUP)

  7. Модель проектной группы MSF

8.4Вопросы для оценки качества освоения дисциплины


  1. Дайте характеристику особенностей создания программного продукта.

  2. Перечислите особенности сложных программных систем.

  3. Дайте характеристику современных методологий создания ПС.

  4. Что понимается под технологией создания ПС?

  5. Назовите основные этапы развития технологии проектирования ПС.

  6. Какие языки программирования использовались в различных технологиях создания ПС?

  7. Назовите причины неудачного завершения программных проектов.

  8. Что такое архитектура ПС, как ее определить?

  9. Какие виды архитектур ПС характерны для современных программных систем.

  10. Какие методы и средства моделирования архитектуры ПС вы знаете? Дайте их характеристику

  11. Что такое жизненный цикл (ЖЦ) программного продукта?

  12. Чем регламентируется ЖЦ программных систем (ПС) ?

  13. Какие группы процессов входят в состав ЖЦ ПС и какие процессы входят в состав каждой группы?

  14. Какие из процессов, по вашему мнению, наиболее часто используются в реальных проектах, какие в меньшей степени и почему?

  15. Назовите модели ЖЦ ПС.

  16. В чем достоинства и недостатки каскадной модели ЖЦ ПС?

  17. Каковы принципиальные особенности спиральной модели?

  18. Как определить метод и технологию проектирования ПС?

  19. Каким требованиям должна удовлетворять технология проектирования ПС?

  20. Сравните стоимость исправления ошибок на различных стадиях разработки ПС.

  21. Что такое управление требованиями?

  22. Назовите методы выявления требований к ПС.

  23. В чем заключаются основные принципы структурного подхода к определению требований?

  24. Что общего и в чем различия между методом SADT и моделированием потоков данных?

  25. Перечислите функциональные требования к ПС.

  26. Перечислите эксплуатационные требования к ПС.

  27. В чем отличия системных и функциональных требований к ПС?

  28. Приведите пример диаграммы переходов состояний.

  29. Приведите пример структурной схемы ПС.

  30. В чем достоинства и недостатки структурного подхода к проектированию ПС?

  31. В чем заключаются основные принципы объектно-ориентированного подхода к проектированию ПС?

  32. Что такое CASE-технологии и CASE-средства?

  33. В чем различие. Достоинства и недостатки методов проектирования сверху-вниз и снизу-вверх?

  34. Охарактеризуйте метод пошаговой детализации.

  35. Что понимается под рефакторингом программной системы?

  36. Назовите цели рефакторинга программной системы и урони рефакторинга.

  37. Что такое архитектурный рефакторинг программной системы?

  38. Дайте определение понятию паттерна проектирования.

8.5Примеры заданий итогового контроля


Итоговый контроль производится по результатам выполнения домашнего задания. Каждый студент выполняет индивидуальное домашнее задание. В домашнем задании требуется разработать техническое задание на проектирование программной системы, архитектуру этой программной системы и получить предварительный программный код на одном из языков программирования (С++, С# и др.), используя CASE-средства.

Пример исходных данных для домашнего задания:



Система учета автомобили - владельцы - доверенности. Система должна обеспечивать следующие возможности: добавлять/удалять нового владельца и соответственно новый автомобиль для заданного владельца, осуществлять аналогичные операции с доверенностями на автомобиль, выдавать необходимую справочную информацию (например, для указанного автомобиля определять его владельца и т.д.), при этом предполагается, что у каждого автомобиля может быть только один владелец, на один и тот же автомобиль может быть зафиксировано несколько доверенностей.

9Порядок формирования оценок по дисциплине


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

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


Результирующая оценка за промежуточный контроль выставляется по следующей формуле:

Опромежуточный = k1·Осам. работа + k2·Оаудиторная k1 = k2 =0,5.

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

Результирующая оценка за итоговый контроль в форме экзамена выставляется по следующей формуле, где Одз – оценка за домашнее задание:

Оитоговый = k1·Опромежуточный + k2·Одз + k3·Оэкз , k1 = 0,3; k2 =0,3; k3=0,4

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

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

10Учебно-методическое и информационное обеспечение дисциплины

10.1Базовый учебник


Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: учебное пособие / под ред. Л.Г. Гагариной. – М.: ИД «ФОРУМ»: ИНФРА-М., 2008.

Крылов Е.В., Острейковский В.А., Типикин Н.Г. Техника разработки программ: в 2 кн. Кн. 2. Технология, надежность и качество программного обеспечения. – М.: Высшая шк., 2008.

Басс Л., Клементс П., Кацман Р. Архитектура программного обеспечения на практике. 2-е издание. – СПб.: Питер, 2006.

Назаров С.В. Архитектура и проектирование программных систем: Монография. – М.: ИНФРА-М, 2013.



10.2Основная литература


Боэм Б.У. Инженерное проектирование программного обеспечения: Пер. с англ. – М.: Радио и связь. 1985.

Брукс Ф.П. Как проектируются и создаются программные комплексы. /Очерки по системному программированию. — М.: Наука, 1979

Буч Г., Рамбо Д., Якобсон И. Язык UML, Руководство пользователя. 2-е изд. : Пер. с англ. мухин Н. – М.: ДМК Пресс, 2007.

Вендров А.М. Проектирование программного обеспечения экономических информационных систем. Учебник для вузов. 2-е изд. – М.: Финансы и статистика, 2006.

Кватрани Т., Палистрает Д. Визуальное моделирование с помощью IBM Rational Software Architect и UML. Пер. с англ. – М.: КУДИЦ-ПРЕСС. – 2007.

10.3Дополнительная литература


Shari Lawrence Pfleeger; Joanne M. Atlee. Software Engineering: Theory and Practice. Rand corporation Prentice Hall. 2005.

Зиглер К.. Методы проектирования программных систем: Пер. с англ. – М .: Мир, 1985.

Кулямин В. В. Технологии программирования. Компонентный подход. [Электронный ресурс]. Режим доступа: http://lib.mdpu.org.ua/e-book/vstup/L/Jogolev.pdf

Таненбаум Э. Современные операционные системы. 4-е изд. – СПб.: Питер, 2006.

Турский В. Методология программирования: пер. с англ. – М .: Мир, 1981.

Халл Э., Джексон К., Дик Д. Разработка и управление требованиями. Практическое руководство пользователя. Telelogic, 2005

Хьюз Дж., Мичтом ДЖ. Структурный подход к программированию: Пер. с англ. – М .: Мир, 1980.

Чернышов Л.Н. Среды разработки программного обеспечения: история и перспективы. [Электронный ресурс]. Режим доступа: http://nit.miem.edu.ru/sbornik/2009-/plen/008.html

Эберт К. Экскурс в историю программных технологий. – Открытые системы, №10, 2008.

Полис Г., Огастин Л., Мадхар Д. Разработка программных проектов: на основе Rational Unified Process (RUP). – М.: ООО «Бином-Пресс», 2009.



Ксензов М. Рефакторинг архитектуры программного обеспечения: выделение слоев. Труды ИПИРАН, 2006.

10.4Программные средства


Для успешного освоения дисциплины, студент использует следующие программные средства:

  • Программный продукт компании IBM Rational Software Architect версии 7.5.

  • Программный продукт компании IBM Rational RequisitePro.

11Материально-техническое обеспечение дисциплины


Для проведения лекционных, семинарских и практических занятий используется проектор. Все занятия студенты проводят на персональном рабочем месте (компьютере) с использованием локальной вычислительной сети и сетевых устройств хранения данных.
Доктор технических наук, профессор Назаров С.В.