скачать МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Томский государственный университет систем управления и радиоэлектроники УТВЕРЖДАЮ Проректор по учебной работе __________ М.Т.Решетников "____"_______________2007 г. РАБОЧАЯ ПРОГРАММА По дисциплине «Технология разработки программного обеспечения» для специальности 230105 (220400) — «Программное обеспечение вычислительной техники и автоматизированных систем» Факультет - систем управления Профилирующая кафедра - Автоматизированных систем управления Курс - 4 Семестр – 7,8 Учебный план набора 2001, 2002, 2003 и последующих лет. Распределение учебного времени: ^ Лабораторные занятия - 18 часов Практические занятия - ….. часов Курсовой проект – 16 часов Всего аудиторных занятий - 86 часа Самостоятельная работа - 68 часа Общая трудоемкость - 170 часов Экзамен - 8 семестр Зачет – 7 семестр Дифференцированный зачет – 8 семестр 2007 Рабочая программа составлена в соответствии с Государственным образовательным стандартом по направлению подготовки 654600 – Информатика и вычислительная техника, специальность 230105 «Программное обеспечение вычислительной техники и автоматизированных систем». Рабочая программа обсуждена на заседании кафедры АСУ, протокол №___от «___» ________ 2007 г. ^ Рабочая программа согласована с факультетом, профилирующей и выпускающей кафедрами специальности. ^ Декан ФСУ Н. В. Замятин Зав. профилирующей кафедрой А.М.Кориков
Технология разработки программного обеспечения дисциплина, входящая в цикл «Специальные дисциплины» (СД.07) и рассматривающая вопросы проектирования, разработки и испытаний больших программных систем с точки зрения требований разработчика. Этот курс обобщает знания, полученные студентами, и обеспечивает изучение современнных технологий разработки программного обеспечения.
В результате изучения курса студенты должны:
4. 1. Разделы дисциплины и виды занятий
4. 2. Содержание разделов дисциплины Введение. Краткая характеристика дисциплины, ее цели и задачи, порядок изучения материала, связи с другими дисциплинами учебного плана и место в подготовки инженеров по специальности 230105. Перечень дисциплин, усвоение которых необходимо студентам для изучения данной дисциплины. Основы методики и форм контроля самостоятельной работы, краткая характеристика учебной литературы. Этапы разработки программного обеспечения. Анализ требований, предъявляемых к системе. Жизненный цикл программного обеспечения. Функциональные спецификации. Определение спецификаций. Проектирование. Кодирование. Тестирование: программное, системное, оценочное и сравнительное тестирование. Сбой системы, выброс, ошибка. Испытания. Верификация системы. Правильность и надежность программ. Эксплуатация и сопровождение. Периоды обновления. Методы разработки программного обеспечения, как научная дисциплина. Методы управления разработкой. Организация интерфейса между модулями, написанными разными программистами. Выполнение проекта. Бригада главного программиста. Методика оценки затрат. Методика инженерно — технической оценки затрат. Методика экспертных оценок. Метод алгоритмического анализа. Пошаговый анализ. Закон Паркинсона. Затраты на завершения разработки. Оценка длительности разработки на основе распределения Рэлея. Контрольные точки. Средства обработки. Надежность. Концептуальная целостность. Методы проведения разработки программного обеспечения. Верификация и испытания. Дамп. Трассировка. Анализ графов программ. «Уровни правильности» программ. Методы программирования. Эффективность программ. Определение спецификаций. Язык определения задач и анализатор определения задач (PSL/PSA). Система структурного проектирования SADT. Система SREM. Структурное проектирование. Методика Джексона. Стратегия объединения различных методов проектирования. Методы разработки программного обеспечения. Язык проектирования программ PDL. Операторы выбора. Операторы цикла. Операторы описания данных. Операторы ввода вывода и вызова процедур. Оператор leave. Предложения на естественном языке. Стратегии проектирования. Нисходящее проектирование и нисходящая разработка. Пошаговое совершенствование. Восходящее проектирование. Иерархия абстрактных (виртуальных) машин. Подыгрывающие программы (заглушки). Три «вершины» стратегии нисходящего проектирования. Метод последовательной модернизации. Структурное проектирование. Простая программа. Элементарная программа. Управляющие структуры, способы их описания. Данные. Обзор структур данных. Скалярные и агрегативные типы данных. Массивы. Структуры. Списки. Очереди. Стеки. Множества. Графы. Деревья. Абстрактные конструкции. Фиксированные данные абстрактного типа. Размещение указателей. Защита данных от несанкционированного доступа. Правильность программ. Математическое доказательство правильности программ (верификация). Аксиомы: правила следствия; аксиома присвоения; аксиома следования; аксиома цикла; аксиома выбора. Правила целочисленной арифметики — коммутативность, ассоциативность, дистрибутивность, вычитания, обработка констант. Доказательство правильности программ. Тестирование. Стратегия тестирования. Имена переменных. Константы. Входные данные. Списки параметров. Проверка спецификаций. Разработка заглушек. Данные для тестирования. Формализация тестирования программ. Психология и экономика тестирования программ. Инспекции, сквозные просмотры и обзоры программ. Проектирование теста. Тестирование утем покрытия логики программы. Эквивалентное разбиение. Анализ граничных значений. Применеие функциальных диаграмм. Предположение об ошибке. Стандартные методы проектирования. Разбиение задачи на независимые подзадачи. Разбиение задачи на одинаковые по сложности части. Рекурсия. Динамическое программирование. Моделирование. Поиск. Поиск в списках. Прямой поиск. Линейный поиск. Двоичный поиск. Хэш-поиск. Сортировка. Обменная сортировка. Сортировка слиянием. Поиск с возвратом. Алгоритм выбора из конечного числа состояний. Стратегия распределения памяти. Сопрограммы. Организация управления проектированием программного изделия. Понятие программного изделия, как средства общения. Нисходящий анализ процесса управления проектированием программного изделия. Организация взаимодействия. Установление целей, средства их достижения. Подбор и обучение кадров. Организация планирования разработок программного изделия. Виды планов. Декомпозиция планов. Организационная структура группы планирования. Планы, связанные с созданием программного изделия. Опытный образец изделия. Организация планирования в фазе исследований. Организация планирования в фазе осуществимости. Организация планирования в фазах конструирования и кодирования. Организация планирования в фазах оценки и использования. Обязанности группы планирования при разработке и утверждении планов разработки программного изделия. Организация разработки программного изделия. Организация разработки программного изделия в фазе исследований. Организация разработки программного изделия в фазе анализа осуществимости. Организация разработки программного изделия в фазе конструирования (проектирования). Организация разработки программного изделия в фазе программирования. Организация разработки программного изделия в фазе оценки. Окончание проекта. Участие группы разработки в фазовых обзорах. Организация обслуживания разработки программного изделия. Организационная структура группы обслуживания. Организация обслуживания разработки программного изделия в фазе исследования. Организация обслуживания разработки программного изделия в фазах анализа осуществимости и конструирования. Организация обслуживания разработки программного изделия в фазах программирования и оценки. Организация обслуживания разработки программного изделия в фазе использования. Участие группы обслуживания в фазовых обзорах. Организация выпуска документации. Организационная структура группы выпуска документации. Стандарты и практические руководства. Организация выпуска документации в фазах исследования и анализа осуществимости. Организация выпуска документации в фазах конструирования и программирования. Организация выпуска документации в фазах оценки и использования. Участие группы выпуска документации в фазовых обзорах. Организация испытаний программных изделий. Современное состояние методов обеспечения качества программного изделия. Организационная структура группы испытаний. Организация испытаний в фазах исследований и анализа осуществимости. Организация испытаний в фазах конструирования и программирования. Организация испытаний в фазе оценки. Организация испытаний в фазе использования. Участие группы испытаний в фазовых обзорах.
1. Анализ требований к программному продукту 1.1. Соглашение о требованиях. 1.2. Расчет длительности разработки по Рэлею. 1.3. Расчет стоимости разработки. 1.4. Календарный план разработки программного изделия. 2. Определение спецификаций. 2.1. Написание функциональных спецификаций (внешних и внутренних). 2.2. Написание спецификаций для абстрактных типов данных. 3. Проектирование разрабатываемой программы одним из изучаемых методов. 4. Доказательство правильности отдельной части программы. 5. Создание комплекса тестов для программы.
8. 1. Рекомендуемая литература. а) основная литература: 1. Калайда В. Т. Технология разработки программного обеспечения. Методическое пособие. – Томск: Изд. во ТУСУР, 2007 — 235 с. 2. Брауде Э. Д. Технология разработки программного обеспечения. СПб.: Питер, 2004. - 654 с. (22 экз.) 3. Гантер Р. Методы управления проектированием программного обеспечения. – М.: Мир, 1981 – 388 с. (4 экз.) 4. Вендров А. М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2002. – 176 с. (34 экз) б) дополнительная литература: 1. Волховер В. Г., Иванов Л. А., Производственные методы разработки программ. — М.: Финансы и статистика, 1983 – 236 с. 2. Боем Б., Браун Дж., Каспар Х. и др. Характеристики качества программного обеспечения. — М.: Мир, 1981 – 176 с. 3. Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-ое издание/ Пер. с англ. – М.:«Издательство Бином», СПб.: «Невский диалект», 1999. – 560 с. 4. Зелькович М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения. М.: Мир, 1982 386 с. 5. Брукс Фредерик. Мифический человеко-месяц или как создаются программные системы: Пер. с англ. – СПб.: Символ, 2000. – 298 с. 7 С. Канер, Дж. Фолк, Енг Кек Нгуен. Тестирование программного обеспечения. – К.: Издательство Диасофт, 2000. – 544 с.
Контроль обучения осуществляется в соответствии с рейтинговой системой. Рейтинговые оценки распределяются в соответствии с таблицей:
Максимальный семестровый рейтинг = 120 баллов. ^ № 1: контрольная работа по лекционному материалу. Контрольная точка № 2: контрольная работа по лекционному материалу. Максимально за контрольную работу – 30 баллов. ^ Экзаменационная оценка «Отлично» по предмету выставляется автоматически при наличии 100–120 баллов за 8 семестр и защищенного курсового проекта на оценку «Отлично». Оценка «Хорошо» по предмету выставляется автоматически при наличии при наличии 80—99 баллов за 8 семестр и защищечноого курсовоого проекта на оценку не менее чем «Хорошо». При недостаче баллов решаются дополнительные задачи (каждая задача = 10 баллов).
Максимальное количество баллов – 120. Рейтингу 60–79 соответствует оценка «удовлетворительно». Рейтингу 80–99 соответствует оценка «хорошо». Рейтингу 100–120 соответствует оценка «отлично». Система рейтинга:
Если курсовая работа не выполнена в положенной срок (до экзаменационной сессии), то выставляется оценка на балл меньше, чем по полученному рейтингу и рейтинг обнуляется.
|