Министерство образования и науки Российской Федерации Рабочая программа (основное содержание)

advertisement
Министерство образования и науки Российской Федерации
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ
Рабочая программа (основное содержание)
1. Цели и задачи дисциплины
Цель данной дисциплины -- дать студенту систематические знания и навыки в области
теории, методов, средств и технологий разработки программного обеспечения (ПО).
Дисциплина "Технологии программирования" определяет профессиональную
направленность специалистов в области разработки ПО вычислительных систем.
После изучения данной дисциплины студент должен знать:
 критерии качества программы;
 сущность современных концепций в области разработки ПО;
 фазы и этапы жизненного цикла ПО;
 основные методы и средства разработки ПО.
Пользуясь полученными знаниями, студент должен уметь:
 организовать процесс разработки ПО;
 грамотно выполнить системный анализ, проектирование, кодирование, отладку и
тестирование, документирование и выпуск программного продукта;
 осуществлять коллективную разработку;
 оценивать основные критерии качества созданного программного продукта. Для
изучения данной дисциплины требуется усвоение студентами дисциплин "Информатика"
и "Программирование на языке высокого уровня".
2. Содержание теоретического раздела дисциплины
2.1 Введение
Предмет курса. Основная терминология. Краткая историческая справка. Значение курса.
2.2 Промышленный подход к разработке программного обеспечения
2.2.1 Основные положения: Виды обеспечения ВС. Понятия программы, программной
системы (комплекса), программного продукта (средства, изделия), программного
обеспечения. Основные этапы решения задач на ЭВМ.
2.2.2 Характеристики программного обеспечения: понятие качества и критерии качества
программы; основные характеристики; планирование свойств.
2.2.3 Жизненный цикл программного обеспечения: фазы жизненного цикла; этапы и
процессы разработки; итеративность разработки. Модели и методологии разработки.
2.2.4 Сложность разработки ПО
2.2.5 Планирование процесса разработки и управление проектом.
2.2.6 Качество организации работ по производсту ПО. Модель CMM.
2.3 Системный анализ
2.3.1 Общие положения: роль, цели и проблемы системного анализа
2.3.2 Стадии системного анализа: постановка задачи; обоснование необходимости
разработки программы; научно-исследовательские работы; разработка и утверждение
технического задания как спецификации программы.
2.4 Проектирование
2.4.1 Общие положения: роль, цели и проблемы проектирования.
2.4.2 Архитектурное (эскизное) проектирование.
2.4.3 Техническое (детальное) проектирование.
2.4.4 Проектирование интерфейса: понятие и классификации интерфейса пользователя,
требования к интерфейсу, диалоговые программы, дружественность. Рекомендации по
проектированию визуального интерфейса.
2.5 Программирование
2.5.1 Общие положения: цели и проблемы программирования.
2.5.2 Основные способы конструирования программ. Основные структуры программы:
итерация, ветвление, повторение. Процедурное и модульное программирование.
Стандартные типы данных и типы, определяемые пользователем, записи, файлы,
динамические структуры данных, списки, рекурсивные алгоритмы.
2.5.3 Инструментальные средства: редакторы, трансляторы, отладчики, системы
поддержки версий; интегрированные среды разработчика.
2.5.4 Повышение понимаемости программ: требования к исходным текстам программ.
2.6 Отладка и тестирование
2.6.1 Общие положения: цели, объекты и проблемы отладки и тестирования.
2.6.2 Понятие верификации и основы доказательства правильности.
2.6.3 Виды тестирования: автономное и комплексное тестирование, тестирование белого и
черного ящика, регрессионное тестирование, нагрузочное тестирование.
2.6.4 Методы тестирования: инспекция кода, метод эквивалентов и граничных условий,
метод многократной разработки и др.
2.6.5 Классификация ошибок
2.7 Документирование
2.7.1 Общие положения: цели и проблемы документирования и выпуска.
2.7.2 Основные виды программных документов.
2.7.3 Основные виды эксплуатационных документов.
2.8 Выпуск
2.8.1 Проведение предварительных, приемо-сдаточных и других испытаний. Общее и
детальное планирование испытаний.
2.8.2 Корректировка программ и документации по результатам испытаний.
2.8.3 Подготовка программ и документации для изготовления.
2.9 Оценка качества программного обеспечения
2.9.1 Общие положения: цели и проблемы оценки качества ПО; основные понятия.
2.9.2 Методы оценки свойств ПО.
2.9.3 Номенклатура показателей качества ПО: показатели качества первого и второго
уровня.
3. Курсовая работа
Целью курсовой работы является разработка полноценного программного продукта,
снабженного комплектом программной документации и прошедшего процедуру приемки
и оценки качества.
Задания студентам выдаются в общем виде, то есть неформализовано. Полная
формализация задания осуществляется в техническом задании, разрабатываемым
студентами и утверждаемом преподавателем.
Работа выполняется одним студентом или коллективом из 2-3 студентов, каждый из
которых выполняет строго определенную часть работ, специфицированную в техническом
задании и в плане-графике разработки. Итоговая оценка каждого студента формируется
как с учетом качества выполнения своей части работ, так и с учетом качества
разработанного коллективом продукта в целом.
Работа выполняется в течение всего семестра поэтапно. Срок сдачи этапов определяется в
техническом задании. Каждый этап сдается преподавателю.
Основные этапы:
1.
2.
3.
4.
Разработка и утверждение Технического задания
Эскизное проектирование (варианты использования, пользовательский интерфейс
Программная реализация
Документирование (Руководство пользователя)
Вопросы к экзамену
1. Виды обеспечения ВС. Понятия программы, программной системы (комплекса),
программного продукта (средства, изделия), программного обеспечения.
2. Причины сложности разработки ПО.
3. Процессы жизненного цикла программного продукта по стандарту ISO/IEC 12207
(ГОСТ Р ИСО/МЭК 12207).
4. Основные процессы разработки программного продукта.
5. Основные модели и методологии разработки ПО.
6. Задачи и проблемы планирования разработки.
7. Понятие конфигурации и управления конфигурацией, задачи управления
конфигурацией.
8. Модель зрелости возможностей CMM.
9. Задачи анализа требований. Основные виды работ при анализе. Назначение
технического задания.
10. Варианты использования: определение, роль в жизненном цикле, UML-диаграмма,
текстовые спецификации.
11. Цель и объекты проектирования. Архитектурное и детальное проектирование.
12. Виды декомпозиции системы. Основные структурные методы проектирования (по
направлению декомпозиции).
13. Понятие модуля. Критерии качества проектирования модулей и классов.
14. Проектирование интерфейса пользователя (определение, классификации)
15. Проектирование интерфейса пользователя (определение, требования).
16. Повышение информативности программ: цели, основные методы.
17. Безопасное программирование.
18. Цели тестирования и отладки. Объекты и особенности процесса тестирования.
19. Виды тестирования.
20. Критерии качества тестирования.
21. Метод ручной инспекции кода; метод эквивалентов и граничных условий.
22. Тесты и тестовые процедуры (определения, принципы создания).
23. Классификация ошибок с точки зрения процесса разработки.
24. Основные программные и эксплуатационные документы (по ГОСТ 19.101-77).
25. Общее и детальное планирование испытаний.
26. Методы оценки свойств программного продукта.
27. Основные факторы качества программного продукта (по ГОСТ Р ИСО/МЭК
912693).
Программу разработал Мирошниченко Е.А., к.т.н., доцент кафедры ВТ
Download