Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет Бизнес-информатики Отделение программной инженерии Утверждаю Заведующий отделением Программной инженерии С.М. Авдошин ___________________________ «___» ___________ 201_ г Программа дисциплины Проектирование и архитектура программных систем для направления 231000.62 «Программная инженерия» подготовки бакалавра Автор программы: Гостев И.М. д.т.н. [email protected] Одобрена на заседании кафедры управления разработкой программного обеспечения «___»____________ 2013 г Зав. кафедрой С.М. Авдошин Рекомендована секцией УМС факультета бизнес информатики «___»____________ 2013 г Председатель Ю.В. Таратухина Москва, 2013 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра 1 Область применения и нормативные ссылки Данный курс является частью базового блока по программной инженерии II (Core Software Engineering Package II) и предназначен для позиции D в шаблоне учебного плана. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 231000.62 «Программная инженерия» подготовки бакалавра, изучающих дисциплину «Проектирование и архитектура программного обеспечения». Программа разработана в соответствии с: Образовательным стандартом государственного образовательного бюджетного учреждения высшего профессионального образования «Национальный исследовательский университет «Высшая школа экономики» по направлению 231000.62 «Программная инженерия» подготовки бакалавров http://www.hse.ru/data/2012/01/30/1264146100/ProgInzh.pdf; Образовательной программой направления 231000.62 «Программная инженерия» подготовки бакалавра. Рабочим учебным планом университета по направлению 231000.62 «Программная инженерия» подготовки бакалавра, утвержденным в 2013 г. http://www.hse.ru/standards/rup/archive/?fid=24262. Стандартом образовательного процесса по программной инженерии - Core Software Engineering Package II 2 Цели освоения дисциплины Основной целью дисциплины «Проектирование и архитектура программных систем» дисциплины является ознакомление студентов с основными принципами построения современных вычислительных систем. Изучение их архитектуры. Курс предполагает углубленное изучение программирования промежуточного программного обеспечения в распределенных и гетерогенных средах. Углубленное изучение шаблонов проектирования, методов построения многозвенных вычислительных систем и архитектуры вычислительных систем. Основная цель достигается освоением следующих тем: 1. Проектирование распределенных систем с использованием промежуточного программного обеспечения. 2. Компонентное проектирование. 3. Теория измерения и использование метрик в проектировании. 4. Проектирование с учетом таких качеств, как производительность, безопасность, защищенность, возможность повторного использования, надежность и т.д. 5. Измерение внутренних параметров и сложности программного обеспечения. 6. Основы эволюции программного обеспечения, реинжиниринга и обратной инженерии. С точки зрения практической составляющей курса, основной целью ставится обучение современным методам программирования с использованием шаблонов проектирования, создание приложений в различных архитектурах промежуточного программного обеспечения. Оценка его качества, сложности быстродействия и т.п. В данном курсе поставлена задача, сформировать у студентов набор компетенций, связанных с базовыми понятиями компонентного программирования и разработки промежуточного программного обеспечения, которые позволяют решать задачи с использованием имеющихся шаблонов и возможностей рефакторинга и реинжениринга. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра 3 Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины студент должен: Знать: Базовые принципы разработки программного обеспечения с использованием шаблонов; Основные принципы построения многозвенного программного обеспечения с использованием различных сред для построения промежуточного программного обеспечения; Основные принципы оценки качества программного обеспечения по различным критериям; Принципы модификации проектов с использованием различных подходов к управлению изменениями; Основные принципы рефакторинга и реинжениринга. Уметь: применять множество различных шаблонов проектирования, сред разработки и архитектур в проектировании разнообразного программного обеспечения; проектировать и реализовывать программное обеспечение, используя несколько различных технологий промежуточного программного обеспечения; использовать адекватные метрики качества как средство оценки качества проектирования, оценивать соответствие результатов проектирования поставленным целям; модифицировать проекты, используя продуманные подходы к управлению изменениями; использовать методы обратной инженерии (reverse engineering) для переработки программного обеспечения. Иметь навыки (приобрести опыт): - в решении задач по построению многозвенных приложений в гетерогенных средах с использованием компонентного принципа проектирования; - уметь модифицировать программные продукты с добавлением к ним функциональности и анализов качества получаемого продукта. В результате освоения дисциплины студент осваивает следующие компетенции: Код по Компетенция ФГОС/ НИУ владение культурой мышления, способность к обобщению, анализу, ОК-1 восприятию информации, постановки цели и выбору путей ее достижения умение логически верно, аргументировано и ясно строить устную и ОК-2 письменную речь готовность к кооперации с коллегами, работе в коллективе ОК-3 стремление к саморазвитию, повышению своей квалификации и ОК-6 мастерства умение критически оценивать свои достоинства и недостатки, наметить ОК-7 пути и выбрать средства развития достоинств и устранения недостатков Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра Компетенция готовность использовать основные законы естественнонаучных дисциплин в профессиональной деятельности, применять методы математического анализа и моделирования, теоретического и экспериментального исследования владение иностранным языком на уровне, достаточном для разговорного общения, а также для поиска и анализа иностранных источников информации понимание основных концепций, принципов, теорий и фактов, связанных с информатикой способность к формализации в своей предметной области с учетом ограничений используемых методов исследования готовность к использованию методов и инструментальных средств исследования объектов профессиональной деятельности готовность обосновать принимаемые проектные решения, осуществлять постановку и выполнение экспериментов по проверке их корректности и эффективности умение готовить презентации, оформлять научно-технические отчеты по результатам выполненной работы, публиковать результаты исследований в виде статей и докладов на научно-технических конференциях способность формализовать предметную область программного проекта и разработать спецификации для компонентов программного продукта способность выполнить начальную оценку степени трудности, рисков, затрат и сформировать рабочий график знакомство с архитектурой ЭВМ и систем умение применять основы информатики и программирования к проектированию, конструированию и тестированию программных продуктов навыки чтения, понимания и выделения главной идеи прочитанного исходного кода, документации навыки моделирования, анализа и использования формальных методов конструирования программного обеспечения способность создавать программные интерфейсы навыки использования различных технологий разработки программного обеспечения умение применять основные методы и инструменты разработки программного обеспечения понимание стандартов и моделей жизненного цикла 4 Код по ФГОС/ НИУ ОК-10 ОК-11 ПК-1 ПК-2 ПК-3 ПК-4 ПК-5 ПК-6 ПК-7 ПК-9 ПК-10 ПК-11 ПК-12 ПК-14 ПК-16 ПК-17 ПК-18 Место дисциплины в структуре образовательной программы Настоящая дисциплина относится к профессиональному циклу дисциплин и блоку дисциплин, обеспечивающих базовую подготовку. Дисциплина требует предварительного изучение основ программирования на Java, C++, HTML, знания теории алгоритмов и структур данных, умения программировать в различных интегрированных средах. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра Дисциплина является завершающей в серии дисциплин, связанных с приложением умения программировать и решать задачи связанные с программированием. 5 Тематический план учебной дисциплины Всего часов Название раздела № Основы архитектуры построения сетей (Модель OSI) Введение в компонентное программирование. DDE, OLE, ActiveX Архитектура гетерогенных распределенных систем (DES.ar). Промежуточное программное обеспечение (CMP.ct.11) Методы построения распределенной программной системы Основы моделирования, Структурное моделирование (MAA.md, MAA.tm) 16 7 8 1 2 3 4 5 6 9 10 6 Аудиторные часы Самосто Практиче ятельная Лекци работа ские и занятия 4 4 8 16 4 4 8 14 2 2 10 14 2 2 10 12 2 2 8 24 4 4 16 Стратегии проектирования программного обеспечения Архитектурное проектирование, Детальное проектирование (DES.str, DES.dd) 24 4 4 16 Шаблоны проектирования (design patterns), Применения шаблонов проектирования к прикладным задачам Методы реинжиниринга и обратной инженерии Рефакторинг программных систем ИТОГО 24 4 4 16 20 4 4 12 16 180 2 32 2 32 12 116 Формы контроля знаний студентов Тип контроля Текущий (неделя) Форма контроля Домашнее задание Итоговы Экзамен й 4 мод 2 7 неделя Параметры Разработка программ с использованием шаблонов в среде промежуточного звена Письменный экзамен 90 мин. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра 6.1 Критерии оценки знаний, навыков Текущий контроль предусматривает домашнее задание в четвертом модуле. Итоговый контроль - экзамен в конце второго модуля. Итоговая оценка по учебной дисциплине складывается из следующих элементов: Элементы текущего контроля : Н1 - Накопительная оценка складывается из средней оценки за выполненные в течении двух модулей выданных студентам заданий. Студент получает задание при помощи LMS и выполняет его за определенное время. Время выполнения зависит от сложности задания и имеет сроки от одной недели до четырех. Отсутствие сданного задания в LMS вызывает нулевую оценку за это задание. Наличие в результатах выполнения задания в LMS двух одинаковых работ (плагиата) приводи к выставлению нулей всем студентам у которых было обнаружено заимствование, независимо от авторства. Оценка за каждое задание зависит от реализованной функциональности и качества оформления работы. Минимальная функциональность оценивается в 4-5 баллов по 10-бальной шкале. Любое добавление функциональности и/или улучшение интерфейса пользователя повышает балл работы. Итоговая оценка выставляется как среднее арифметическое от всех выполненных работ в течении двух модулей. Д1 – оценка за домашнее задание. Домашнее задание, предлагаемое во втором модуле, заключается в написании программы в среде MS Windows, содержащей графический интерфейс и реализующей несколько функций по получению услуг от сервера баз данных через сервер приложений. Разрабатываемое приложение должно состоять из трех частей. Оконного приложения, обеспечивающего посылку запросов на сервер приложений. Второй частью должен быть сервер приложений, обеспечивающий трансляцию запроса на сервер баз данных. На сервере баз данных должна быть реализована необходимая структура сущностей и связей, для выполнения запроса клиента. Особенностью работы является использование класса компонента на сервере приложений, в функциональность которого входит реализация бизнес функций приложения и трансляцию запросов к базе данных. Срок сдачи домашнего задания – седьмая неделя четвертого модуля. Оценка за домашнее задание выставляется по десятибалльной шкале. Оценка зависит от реализованной функциональности и качества оформления работы. Минимальная функциональность оценивается в 4-5 баллов по 10-бальной шкале. Любое добавление функциональности и/или улучшение интерфейса пользователя повышает балл работы. Элементы итогового контроля: Э В качестве итогового контроля используется письменный экзамен. На экзамене студент получает пять вопросов. Стоимость каждого вопроса составляет 2 балла по десятибалльной шкале. На выполнение экзаменационной работы отводится 120 минут. Вопросы охватывают темы дисциплины, которые обсуждались на лекционных и практических занятиях в течение обоих модулей. Итоговая оценка И по дисциплине формируется из оценок текущего и итогового контроля по следующим правилам. Итоговая оценка И по дисциплине формируется по десятибалльной шкале как взвешенная сумма полученных оценок текущего контроля по формуле И = 0,3Н + 0,3Д + 0,4Э с учетом правил округления до целого числа баллов при условии (Д>3)& (Н>3)& (Э>3). Здесь: Н - накопительная оценка за выполнение текущих заданий в первом и втором модулях, Э - оценка за экзамен, Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра Д - оценка за домашнее задание, При пересдаче экзамена (независимо от предыдущих оценок) итоговая экзаменационная оценка Э по дисциплине формируется как взвешенная сумма полученных оценок за каждый вопрос - Бi, по формуле Э = 0,8 (∑Бi ) с учетом правил округления до целого числа баллов. Правила округления до целого числа баллов при выставлении оценок: средневзвешенная оценка округляется до большего целого, если дробная часть оценки не ниже 0,5, в противном случае оценка округляется до меньшего целого. Перевод итоговой экзаменационной оценки (Э) по дисциплине в оценку по пятибалльной шкале осуществляется в соответствии со следующей таблицей: Таблица соответствия оценок по десятибалльной и пятибалльной системам По десятибалльной шкале 1 – неудовлетворительно 2 – очень плохо 3 – плохо 4 – удовлетворительно 5 – весьма удовлетворительно 6 – хорошо 7 – очень хорошо 8 – почти отлично 9 – отлично 10 – блестяще 7 По пятибалльной шкале неудовлетворительно – 2 удовлетворительно – 3 хорошо – 4 отлично – 5 Содержание дисциплины Тема 1. Основы архитектуры построения сетей (Модель OSI). Содержание лекционных занятий. Принципы построения сетей. Семиуровневая модель взаимодействия открытых сетей. Функциональность уровней. Услуги получаемые на каждом уровне. Особенности реализации уровней. Протоколы, используемые на каждом уровне. . Содержание практических занятий. Построение двузвенной вычислительной системы с элементарным набором функций и ее тестирование. Основная литература: Крачтен Ф., Оббинк Х., Стаффорд Д. Ретроспектива программных архитектур // Открытые системы. СУБД. - 2006. - N3. - . 20-27. Р. Орфали, Д. Харки Java и CORBA в приложениях клиент-сервер М. Лори -2000 г. Дополнительная литература: Руководство Microsoft по проектированию АРХИТЕКТУРЫ ПРИЛОЖЕНИЙ Microsofr 2009г. Стандарт на программную инженерию SWEABOK на сайте: http://www.computer.org/portal/web/swebok/home;jsessionid=163c8d2b8789a405a4289f e09c70В. В.. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра C. Szyperski. Component Software— Beyond Object-Oriented Programming. AddisonWesley, 1998. Тема 2. Архитектура гетерогенных распределенных систем. Содержание лекционных занятий. Сетевые архитектуры; Специализации распределенных вычислений; Двух, трех и более звенные архитектуры. Принципы построения серверов приложений; Распределение функций в звеньях различных уровней; Сети и протоколы в многозвенных системах. . Содержание практических занятий. Построение двузвенной вычислительной системы с элементарным набором функций и ее тестирование. Основная литература: Крачтен Ф., Оббинк Х., Стаффорд Д. Ретроспектива программных архитектур // Открытые системы. СУБД. - 2006. - N3. - . 20-27. Р. Орфали, Д. Харки Java и CORBA в приложениях клиент-сервер М. Лори -2000 г. Дополнительная литература: Руководство Microsoft по проектированию АРХИТЕКТУРЫ ПРИЛОЖЕНИЙ Microsofr 2009г. Стандарт на программную инженерию SWEABOK на сайте: http://www.computer.org/portal/web/swebok/home;jsessionid=163c8d2b8789a405a4289f e09c70В. В.. C. Szyperski. Component Software— Beyond Object-Oriented Programming. AddisonWesley, 1998. Тема 3. Промежуточное программное обеспечение. Содержание лекционных занятий. Стандартное программное обеспечение для организации промежуточного слоя. CORBA, Enterprise Java Beens, ASP.Net, JMS, OMG, ORB, RMI, SOAP, WSDL. Содержание практических занятий. Разработка программного приложения с использованием функций из API, и предназначенного для создания приложений, которые используют протоколы TCP и UDP Основная литература: А. Цимбал Технология CORBA для профессионалов С-Пб. Питер 2001 г I. Sommerville,. Software Engineering, 8th ed. New York: Addison-Wesley, 2007. Р. Дж. Оберг Технология COM+. Основы и программирование — М.: «Вильямс», 2000. Дополнительная литература: Moor J. W. The Road Map to Software Engineering: A Standards-Based Guide, 1st ed. Hoboken, New Jersey: John Wiley/Los Alamitos, California: IEEE Computer Society Press, 2006 Тема 4. Методы построения распределенной программной системы. Содержание лекционных занятий. Рассмотрение технологий Java RMI. CORBA, механизмов DII и DSI. с примерами построения распределенной системы, разработанной с использованием этих технологий. Дается краткий обзор технологии Web-сервисов. Содержание практических занятий. Разработка программного обеспечения с использованием технологий Java RMI и/или CORBA. Основная литература: Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра А. Цимбал Технология CORBA для профессионалов С-Пб. Питер 2001 г C. Pfisler Component Software 2007. на сайте http://oberoncore.ru/library/component_soft.. C. Szyperski. Component Software— Beyond Object-Oriented Programming. AddisonWesley, 1998. Дополнительная литература: ISO/IEС Srd. 24765, Systems and Software Engineering Vocabulary. Geneva, Switzerland: International Organization for Standardization. Тема 5. Основы моделирования, Структурное моделирование. Содержание лекционных занятий. Принципы моделирования организационной структуры систем и подсистем; моделирование состава и связей между элементами системы. Принципы достижения оптимальности функционирования всей системы, в целом. Содержание практических занятий. Определение показателей разработанных на предыдущих занятиях систем и определение качества их функционирования. Основная литература: C. Szyperski. Component Software— Beyond Object-Oriented Programming. AddisonWesley, 1998. R. C. Martin, Agile Software Development, Principles, Patterns, and Practices, 1st ed. Prentice Hall, 2002. Деннинг А. ActiveX для профессионалов — СПб.: Питер, 1998. Дополнительная литература: I. Sommerville,. Software Engineering, 8th ed. New York: Addison-Wesley, 2007. Тема 6. Стратегии проектирования программного обеспечения. Архитектурное проектирование, Детальное проектирование. Содержание лекционных занятий. Проектированию по принципам "снизу вверх", "сверху вниз" и "проектирование изнутри к границам". Проектирование с применением стандартных компонент. Выбор структурных элементов и объединение их в единый программный продукт; Анализ поведения совместной работы этих компонент; Понятие архитектурного стиля для некоторой организации. Функциональность, удобства использования, устойчивость, производительность; Повторное использование, понятность, экономические и технологические ограничения; Эстетическое восприятие и поиск компромиссов интерфейсов Содержание практических занятий. Построение архитектуры для программного обеспечения, разрабатываемого в домашнем задании с учетом различных факторов и применения элементов детального проектирования. Основная литература: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектноориентированного проектирования. Паттерны проектирования, С-П. Питер 2007г Фаулер М., Райс Д., Фоммел М., и др. Шаблоны корпоративных приложений М. Вильямс, 2010 г . Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс Паттерны проектирования С-П. Питер 2011 г. Дж. Кериевски Рефакторинг с использованием шаблонов М., Вильямс, 2006 г.Дополнительная литература: Майерс Г. Надёжность программного обеспечения. М. Мир, 1980. Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра McConnell, S.. Code Complete. Redmond, Washington: Microsoft Press,2004 Тема 7. Шаблоны проектирования (design patterns), Применения шаблонов проектирования к прикладным задачам. Содержание лекционных занятий. Понятие шаблонов, типы шаблонов, организация данных, составление методов, разработка тестов, упрощение методов и условных выражений. Содержание практических занятий. Практическая работа с шаблонами. Встраивание шаблонов в программу домашнего задания. Разработка тестов. Основная литература: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектноориентированного проектирования. Паттерны проектирования, С-П. Питер 2007г Фаулер М., Райс Д., Фоммел М., и др. Шаблоны корпоративных приложений М. Вильямс, 2010 г . Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс Паттерны проектирования С-П. Питер 2011 г. Дж. Кериевски Рефакторинг с использованием шаблонов М., Вильямс, 2006 Дополнительная литература: Preece, Jenny. Human Interaction: Concepts and Design. New York: Addison-Wesley, 1994.. Тема 8. Методы реинжиниринга и обратной инженерии. Содержание лекционных занятий. Понятие реинжениринга, области и условия применения, преимущества и недостатки, Инструментарий для реинженироинга. Содержание практических занятий. Проведение реинжениронга для задачи из домашнего задания и анализ полученных результатов. Основная литература: J. Russell Обратная разработка М. VSD 2012 г. Стандарт на программную инженерию SWEABOK на сайте: http://www.computer.org/portal/web/swebok/home;jsessionid=163c8d2b8789a405a4289f e09c70В. В.. Дополнительная литература: Samuelson P., Scotchmer S. The Law and Economics of Reverse Engineering // The Yale Law Journal, Vol. 111, No. 7 (May, 2002), pp. 1575-1663. Тема 9. Рефакторинг программных систем. Содержание лекционных занятий. Базовые принципы рефакторинга. Приемы рефакторинга. Принципы построения тестовых задач. Базовые приемы рефакторинга. Содержание практических занятий. Написание программного обеспечения для домашнего задания с применением компонентов и методов рефакторинга. Основная литература: Дж. Кериевски Рефакторинг с использованием шаблонов М., Вильямс, 2006 г. Фаулер М. Рефакторинг: улучшение существующего кода. - СПб: Символ-Плюс, 2003. - 432 с Дополнительная литература: Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектноориентированного проектирования. Паттерны проектирования, С-П. Питер 2007г Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра 8 Фаулер М., Райс Д., Фоммел М., и др. Шаблоны корпоративных приложений М. Вильямс, 2010 г.. Образовательные технологии На каждом практическом занятии проводится разбор и анализ реализаций различных методов и алгоритмов с применением компонентного подхода. 9 Оценочные средства для текущего контроля и аттестации студента 9.1 Тематика заданий текущего контроля В качестве тем для домашнего задания, предлагается разработать программное приложение, выступающее в качестве сервера приложений и образованного несколькими компонентами. Приложение должно взаимодействовать с сервером баз данных с одной стороны и с клиентским приложением с другой. К разработанному приложению необходимо продумать методику тестирования. Таким образом результатом выполнения домашнего задания будет программный комплекс, состоящий из трех частей. Клиентской, сервера приложений, базы данных. Замечание. Тип базы данных может быть выбран студентом самостоятельно, но он обязан при сдаче продемонстрировать ее структуру (сущности и связи), для проверки правильности работы всего комплекса. Тематика домашнего задания может быть выбрана студентом самостоятельно и согласована с преподавателем. 10 Учебно-методическое и информационное обеспечение дисциплины 10.1 Базовый учебник - отсутствует 10.2 Основная литература Фаулер М. Рефакторинг: улучшение существующего кода. - СПб: Символ-Плюс, 2003. - 432 с Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектноориентированного проектирования. Паттерны проектирования, С-П. Питер 2007г Фаулер М., Райс Д., Фоммел М., и др. Шаблоны корпоративных приложений М. Вильямс, 2010 г Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс Паттерны проектирования С-П. Питер 2011 г.. Дж. Кериевски Рефакторинг с использованием шаблонов М., Вильямс, 2006 г. Крачтен Ф., Оббинк Х., Стаффорд Д. Ретроспектива программных архитектур // Открытые системы. СУБД. - 2006. - N3. - . 20-27 Г. Майерс, Т. Баджетт, К. Сандлер Искусство тестирования программ, — М.: «Диалектика», 2012. — 272 с Фаулер М., Скотт К. UML. Основы. -СПб: Символ-Плюс, 2002.- 192 с. J. Russell Обратная разработка М. VSD 2012 г. Р. Орфали, Д. Харки Java и CORBA в приложениях клиент-сервер М. Лори -2000 г. Samuelson P., Scotchmer S. The Law and Economics of Reverse Engineering // The Yale Law Journal, Vol. 111, No. 7 (May, 2002), pp. 1575-1663 Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Проектирование и архитектура программных систем» для направления 231000.62 «Программная инженерия» подготовки бакалавра 10.3 Дополнительная литература Майерс Г. Надёжность программного обеспечения. М. Мир, 1980. Руководство Microsoft по проектированию АРХИТЕКТУРЫ ПРИЛОЖЕНИЙ Microsofr 2009г. Р. Дж. Оберг Технология COM+. Основы и программирование — М.: «Вильямс», 2000. Стандарт на программную инженерию SWEABOK на сайте: http://www.computer.org/portal/web/swebok/home;jsessionid=163c8d2b8789a405a4289f e09c70В. В.. C. Szyperski. Component Software— Beyond Object-Oriented Programming. AddisonWesley, 1998. C. Pfisler Component Software 2007. на сайте http://oberoncore.ru/library/component_soft. Kahler, H. Developing Groupware with Evolution an Participation - A Case Study. In: Proceedings of the Participatory Design Conference 1996, Cambridge, MA,November 1996, pp. 173-182.. А. Цимбал Технология CORBA для профессионалов С-Пб. Питер 2001 г.. A. Vogel C++ Programming with CORBA Wiley 1999 г. Деннинг А. ActiveX для профессионалов — СПб.: Питер, 1998. R. C. Martin, Agile Software Development, Principles, Patterns, and Practices, 1st ed. Prentice Hall, 2002. I. Sommerville,. Software Engineering, 8th ed. New York: Addison-Wesley, 2007. Thayer R. H., M. Dorfman, eds. Software Engineering, Volume 1 and 2: The Supporting Processes, 3rd ed. Hoboken, New Jersey: John Wiley/Los Alamitos, California: IEEE Coinputer Socieiy Press, 2005. ISO/IEС Srd. 24765, Systems and Software Engineering Vocabulary. Geneva, Switzerland: International Organization for Standardization. McConnell, S.. Code Complete. Redmond, Washington: Microsoft Press,2004. Moor J. W. The Road Map to Software Engineering: A Standards-Based Guide, 1st ed. Hoboken, New Jersey: John Wiley/Los Alamitos, California: IEEE Computer Society Press, 2006. Nielsen, Jakob. "How to Conduct a Heuristic Evaluation," на сайте www.useit.com/papers/heuristic/heuristicevaluation.html. Preece, Jenny. Human Interaction: Concepts and Design. New York: Addison-Wesley, 1994. 10.4 Программные средства В качестве интегрированных программных сред используется MS Visual Studio, и по желанию студентов среда Cbuilder 2006. 11 Материально-техническое обеспечение дисциплины Проектор для лекций и семинаров, классы для практических занятий с компьютерами, на которых установлена инструментальная среда. Автор программы: _____________________________Гостев И.М.