- •Учебно-методический комплекс по дисциплине Методы программирования Специальность 090102 Компьютерная безопасность
- •Москва 2011 г.
- •Автор-составитель:
- •Малинский Станислав Вальтерович, к.Т.Н., доцент, доцент кафедры
- •«Математического обеспечения автоматизированных систем управления»
- •Рабочая учебная программа по дисциплине Методы программирования Специальность 090102 Компьютерная безопасность
- •Тема 22. Методы проектирования по.
- •Для проведения практических заданий по дисциплине «Методы программирования» группе студентов необходима аудитория с пк (компьютерный класс) со стандартным по. Методические указания для студентов
- •Методические рекомендации для преподавателей
Тема 22. Методы проектирования по.
Содержание темы: Методы нисходящего и восходящего проектирования ПО. Модульное проектирование. Структурное программирование.
Модели жизненного цикла ПО. Каскадная модель, ее достоинства и недостатки. Спиральная модель, ее достоинства и недостатки. CASE-технологии. Технологии RAD (Rapid Application Development - быстрая разработка программ).
Распределение часов по темам и видам учебной работы
Названия разделов и тем |
Всего часов |
Виды учебных занятий |
Индивид.занятия |
Самостоят.работа |
|
аудиторные |
|||||
лекц. |
практ. занят. |
||||
Раздел 1. Методы, алгоритмы и программы Семестр №1
|
|||||
1. Программирование и методы программирования. |
4 |
2 |
|
|
2 |
2. Практическое программирование.
|
6 |
2 |
|
|
4 |
3. Простейшие программы. |
10 |
2 |
2 |
2 |
4 |
4. Методы сортировки |
12 |
4 |
2 |
2 |
4 |
Раздел 2. Метрики ПО и их использование при сравнении методов, алгоритмов и ПО
|
|||||
5. Метрики ПО |
7 |
3 |
|
|
4 |
6. Применение метрик при анализе ПО |
12 |
4 |
2 |
2 |
4 |
Раздел 3. Стандартные приемы программирования при решении практических задач
|
|||||
7. Вычисление суммы и произведения элементов массива |
4 |
1 |
1 |
|
2 |
8. Экстраполяция и интерполяция |
4 |
1 |
1 |
|
2 |
9. Построение моделей методом наименьших квадратов
|
6 |
2 |
2 |
|
2 |
10. Численное интегрирование |
4 |
2 |
- |
|
2 |
11. Численные методы решения уравнений |
4 |
2 |
- |
|
2 |
Раздел 4. Стандартные приемы программирования при решении практических задач
|
|||||
12. Методы решения задач с многомерными массивами
|
4 |
2 |
|
|
2 |
13. Операции с матрицами |
6 |
1 |
2 |
1 |
2 |
14. Методы решения системы линейных уравнений. |
3 |
1 |
- |
|
2 |
Раздел 5. Имитационное моделирование
|
|||||
15. Случайные величины и процессы. |
4 |
2 |
2 |
|
|
16. Имитационное моделирование производственных процессов. |
4 |
1 |
1 |
|
2 |
17. Имитационное моделирование ПО |
6 |
2 |
2 |
2 |
|
Раздел 6. Тестирование , отладка и проектирование программных средств Семестр №2
|
|||||
18. Контроль, тестирование и отладка ПО |
17 |
3 |
4 |
2 |
8 |
19. Проектирование ПО |
16 |
4 |
2 |
2 |
8 |
20. Качество ПО и его оценка. |
20 |
4 |
7 |
1 |
8 |
21. Модульное программирование. |
11 |
2 |
2 |
1 |
6 |
22. Методы проектирования ПО. |
16 |
4 |
2 |
2 |
8 |
Итого: |
180 |
51 |
34 |
17 |
78 |
Практические занятия
Занятия проводятся в компьютерном классе, оборудованном персональными компьютерами.
№№ разделов и тем |
Цель и содержание практических занятий |
Результаты практических занятий |
Занятие № 1. Простейшие программы ( 2 часа ) Семестр №1 |
||
Раздел 1. Тема 3 |
- Алгоритмы и их свойства (массовость, результативность, дискретность). - Операторы и операнды. Их взаимосвязь. - Элементы, одномерные, двумерные и многомерные массивы. - Псевдопрограммирование. Операторы: присвоение, вычисление, условный переход, безусловный переход, функции, печать, начало, конец. - Разработка алгоритмов и написание простейших программ (вычисление по формуле, вычисление значений функции, поиск максимума и минимума, нахождение элементов, удовлетворяющих заданным условиям, ввод элементов одномерного массива) . Типичные ошибки.
|
Простейшие программы, самостоятельно написанные студентами. |
Занятие № 2. Методы сортировки ( 2 часа ) |
||
Раздел 1. Тема 4 |
- методы сортировки: пузырьком, выбором, вставками. - разработка алгоритмов и написание программ сортировки. |
Алгоритмы и программы сортировки одномерных массивов. |
Занятие № 3. Применение метрик при анализе ПО ( 2 часа ) |
||
Раздел 2. Тема 6 |
- основные метрики ПО и их определение (размер программы, объем программы, сложность потока управления, сложность потока данных, интеллектуальность ПО) - оценка метрик простейших программ (см. Работа № 1) и программ сортировки (см. Работа № 2) - содержательный анализ полученных оценок.
|
Метрики ПО, написанного на занятиях №1 и 2. |
Занятие № 4. Вычисление суммы и произведения элементов одномерного массива. Применение метода узловых точек в задачах интерполяции ( 2 часа ) |
||
Раздел 3. Темы 7 и 8 |
- сумма и произведение элементов одномерного массива: приемы (алгоритмы) организации вычислений - алгоритмы вычисления суммы и произведения элементов, удовлетворяющих заданным условиям - алгоритмы вычисления суммы и произведения элементов числового ряда - написание программ, реализующих разработанные алгоритмы - оценка метрологических характеристик написанных программ - задачи интерполяции и экстраполяции и методы их решения - алгоритмы и программы интерполяции и экстраполяции - оценка метрологических характеристик написанных программ
|
.Программы, вычисляющие сумму и произведение элементов одномерного массива, удовлетворяющих заданным требованиям. Программа интерполяции значений методом узловых точек. Метрологические характеристики написанных программ и их интерпретация. |
Занятие № 5. Построение моделей методом наименьших квадратов ( 2 часа ) |
||
Раздел 3. Тема 9 |
- метод наименьших квадратов (МНК) и его применение при построении эмпирических закономерностей - алгоритм обработки данных при построении линейных моделей - программа оценки параметров линейной модели МНК - оценка метрологических характеристик написанной программы
|
.Программа для оценки параметров линейной модели методом наименьших квадратов. Метрологические характеристики написанной программы. |
Занятие № 6. Операции с матрицами ( 2 часа ) |
||
Раздел 4. Тема 13 |
- двумерные и многомерные массивы в научных исследованиях - стандартные приемы анализа элементов массивов при решении задач поиска максимума (минимума) - стандартные приемы анализа элементов массивов при решении задач сортировки - стандартные приемы анализа элементов массивов при решении задач поиска элементов по заданным условиям - алгоритмы решения рассмотренных задач и их программная реализация - оценка метрологических характеристик написанной программы
|
Программы, выполняющие обработку двумерных и многомерных массивов. Метрики написанных программ. |
Занятие № 7. Случайные величины и процессы ( 2 часа ) |
||
Раздел 5. Тема 15 |
- случайные величины и процессы - моделирование равномерно- и нормальнораспределенных величин - алгоритмы и программы моделирования случайных величин с заданными законами распределения - оценка метрологических характеристик написанных программ
|
Программы, моделирующие случайные величины и вычисляющие их статистические характеристики. Метрики написанных программ. |
Занятие № 8. Имитационное моделирование производственных процессов и ПО ( 3 часа ) |
||
Раздел 5. Темы 16 и 17 |
- производственные операции и процессы , их вероятностные и временные описания - последовательные и параллельные операции и их моделирование - алгоритмы и программы имитационного моделирования сложных процессов - оценка метрологических характеристик написанных программ - представление сложного ПО в виде модульных схем - имитация работы программных модулей - применение имитационного моделирования при разработке надежного ПО - разработка алгоритмов и программ моделирования работы сложного ПО - оценка метрологических характеристик написанных программ
|
.Программы, имитирующие заданные производственные процессы. Программы, имитирующие работу сложных программных комплексов. Метрики написанных программ. |
Занятие № 9. Контроль, тестирование и отладка ПО ( 4 часа ) Семестр №2 |
||
Раздел 6. Тема 18 |
- Понятия «контроль», «тестирование» и «отладка». - Опытная и промышленная эксплуатация ПО. - Виды контроля ПО: визуальный, статический, динамический. - Тестирование: функциональное и структурное. - Анализ и синтез.
|
Усвоение теоретической информации, приведенной в лекции по Теме 18, а также дополнительной информации по данной теме, подготовленной студентами в ходе самостоятельной работы. Особое внимание уделяется практическим навыкам тестирования сложного ПО. |
Занятие № 10. Проектирование ПО ( 2 часа ) |
||
Раздел 6. Тема 19. |
- Технология программирования. - Методология программирования. - Жизненный цикл ПО. - Модели жизненного цикла ПО. - Документирование разработки ПО. - Системная архитектура ПО. - Функциональная структура ПО.
|
Усвоение теоретической информации, приведенной в лекции по Теме 19, а также дополнительной информации по данной теме, подготовленной студентами в ходе самостоятельной работы. Особое внимание уделяется практическим навыкам анализа этапов жизненного цикла ПО |
Занятие № 11. Качество ПО и его оценка ( 7 часов ) |
||
Раздел 6. Тема 20. |
- Понятие «качество» и его определения. - Критерии качества ПО. - Функциональность, надежность, легкость применения, эффективность, сопровождаемость, мобильность ПО и их оценка. - Основные атрибуты для каждой из характеристик качества ПО.
|
Усвоение теоретической информации, приведенной в лекции по Теме 20, а также дополнительной информации по данной теме, подготовленной студентами в ходе самостоятельной работы. Особое внимание уделяется практическим навыкам использования рекомендаций ГОСТ 28195 и МЭК 9126 при оценке качества ПО. |
Занятие № 12. Модульное программирование ( 2 часа ) |
||
Раздел 6. Тема 21 |
- Понятие «модуль». - Основные атрибуты модуля. - Классы прочности модулей: прочность по совпадению, прочность по логике, прочность по классу, процедурно-прочный модуль, коммуникационно-прочный модуль, информационная прочность, функциональная прочность. - Сцепление модулей: сцепление по содержимому, сцепление по общей области, сцепление по управлению, сцепление по формату, сцепление по данным. - Принципы Хольта.
|
Усвоение теоретической информации, приведенной в лекции по Теме 21, а также дополнительной информации по данной теме, подготовленной студентами в ходе самостоятельной работы. Особое внимание уделяется практическим навыкам модульного программирования. |
Занятие № 13. Методы проектирования ПО ( 2 часа ) |
||
Раздел 6. Тема 22 |
- Методы нисходящего и восходящего проектирования ПО. - Модульное проектирование. - Структурное программирование. - Модели жизненного цикла ПО. - Каскадная модель, ее достоинства и недостатки. - Спиральная модель, ее достоинства и недостатки. - CASE-технологии. |
Усвоение теоретической информации, приведенной в лекции по Теме 22, а также дополнительной информации по данной теме, подготовленной студентами в ходе самостоятельной работы. Особое внимание уделяется практическим навыкам анализа достоинств и недостатков каскадной и спиральной моделей жизненного цикла ПО. |
Методические указания по выполнению практических заданий выдаются преподавателем каждому студенту персонально.
Тематика контрольных работ и методические указания по их
выполнению
Контрольная работа №1 :
Метрики ПО и их использование при сравнении методов,
алгоритмов и ПО
Содержание работы:
Студенту задаются содержательная вычислительная задача и два алгоритма ее решения. Предлагается написать две программы, реализующие заданные алгоритмы решения задачи, оценить метрики каждой из написанных программ и проанализировать их.
Контрольная работа №2: Имитационное моделирование производственных процессов и ПО
Содержание работы:
Студенту задается структура модулей и взаимосвязей, реализующая сложное ПО. Предлагается написать программу имитационного моделирования заданного ПО, которая позволит получить вероятностную оценку успешной работы всего программного продукта. Предлагается вычислить эту же вероятностную оценку теоретически.
Самостоятельная работа
В ходе самостоятельной работы студенты изучают дополнительные сведения, необходимые им для выполнения индивидуальных заданий по лабораторным работам, осуществляют отладку программ.
Разделы и темы для самостоятельного изучения |
Виды и содержание самостоятельной работы |
Раздел 1. Тема 1. Программирование и методы программирования. (2 часа) |
Программирование. Алгоритмы и их свойства (массовость, результативность, дискретность). Операторы и операнды. Определения понятий и их взаимосвязь. Данные и информация. Структуры данных. Элементы, одномерные, двумерные и многомерные массивы.
|
Раздел 1. Тема 2. Практическое программирование (4 часа) |
Программирование и псевдопрограммирование. Основные операторы: присвоение, вычисление, условный переход, безусловный переход, функции, печать, начало, конец. Типичные ошибки при программировании. Написание простейших программ
|
Раздел 1. Тема 3. Простейшие программы. (4 часа) |
Простейшие программы: вычисление по формуле, вычисление значений функции, поиск максимума и минимума, нахождение элементов, удовлетворяющих заданным условиям, ввод элементов одномерного массива. Написание простейших программ.
|
Раздел 1. Тема 4. Методы сортировки (4 часа) |
методы сортировки (пузырька, перестановок и пр.) и их применение в практических задачах. Алгоритмы сортировки. Написание программ сортировки.
|
Раздел 2. Тема 5. Метрики ПО (4 часа) |
Основные метрики ПО: размер программы, объем программы, сложность потока управления, сложность потока данных, интеллектуальность ПО. Вычисление метрик ПО для простейших программ. |
Раздел 2. Тема 6. Применение метрик при анализе ПО ( 4 часа) |
Практические приемы оценки и содержательного анализа метрик ПО. Необходимые практические договоренности при вычислении метрик. Вычисление метрик ПО для простейших программ.
|
Раздел 3. Тема 7. Вычисление суммы и произведения элементов массива ( 2 часа) |
Организация вычисления суммы и произведения элементов одномерного массива; организация вычисления суммы и произведения элементов одномерного массива, удовлетворяющих заданным условиям, применение изученных схем при вычислении суммы и произведения элементов числового ряда. Оценка метрологических характеристик написанных программ.
|
Раздел 3. Тема 8. Экстраполяция и интерполяция ( 2 часа) |
Задачи экстраполяции и интерполяции и методы их решения: Разработка алгоритмов и простейших программ интерполяции и экстраполяции, оценка их метрологических свойств. |
Раздел 3. Тема 9. Построение моделей методом наименьших квадратов ( 2 часа) |
Метод наименьших квадратов и его использование при построении линейных и квадратичных моделей. Разработка алгоритмов и написание программ оценки параметров моделей методом наименьших квадратов. Оценка их метрологических свойств.
|
Раздел 3. Тема 10. Численное интегрирование ( 2 часа) |
Задачи численного интегрирования и методы их решения (методы прямоугольника, трапеции). Разработка алгоритмов и программ, реализующих методы численного интегрирования. Оценка их метрологических свойств.
|
Раздел 3. Тема 11. Численные методы решения уравнений ( 2 часа) |
Численные методы решения уравнений и их использование на практике. Разработка алгоритма и написание программы решения уравнений методом деления отрезка пополам. Оценка метрологических свойств программы.
|
Раздел 4. Тема 12. Методы решения задач с многомерными массивами ( 2 часа) |
Двумерные и многомерные массивы в научных исследованиях. Стандартные приемы анализа элементов массивов при решении задач поиска максимума, сортировки, выбора элементов по заданным условиям. Разработка алгоритмов и программ
|
Раздел 4. Тема 13. Операции с матрицами ( 2 часа) |
Двумерные и многомерные массивы и их обработка. Сложение и умножение матриц.. Разработка алгоритмов и программ, реализующих сложение и умножение матриц. Оценка метрологических свойств программ.
|
Раздел 4. Тема 14. Методы решения системы линейных уравнений ( 2 часа) |
Методы решения системы линейных уравнений. Разработка алгоритмов и программ, реализующих методы решения системы линейных уравнений . Оценка метрологических свойств программ.
|
Раздел 5. Тема 16. Имитационное моделирование производственных процессов ( 2 часа) |
Производственные операции и процессы. Последовательные и параллельные операции. Имитационное моделирование операций и процессов. Разработка алгоритмов и программ, реализующих различные имитационные схемы .
|
Раздел 6. Тема 18. Контроль, тестирование и отладка ПО (8 часов) |
Понятия «контроль», «тестирование» и «отладка». Опытная и промышленная эксплуатация ПО. Виды контроля ПО: визуальный, статический, динамический. Тестирование: функциональное и структурное. Анализ и синтез.
|
Раздел 6. Тема 19. Проектирование ПО (8 часов) |
Технология программирования. Методология программирования. Жизненный цикл ПО. Модели жизненного цикла ПО. Документирование разработки ПО. Системная архитектура ПО. Функциональная структура ПО.
|
Раздел 6. Тема 20. Качество ПО и его оценка (8 часов) |
Понятие «качество» и его определения. Критерии качества ПО. Функциональность, надежность, легкость применения, эффективность, сопровождаемость, мобильность ПО. Основные атрибуты для каждой из характеристик качества ПО. Использование рекомендаций ГОСТ 28195 и МЭК 9126 при оценке качества ПО.
|
Раздел 6. Тема 21. Модульное программирование (6 часов) |
Понятие «модуль». Основные атрибуты модуля. Классы прочности модулей: прочность по совпадению, прочность по логике, прочность по классу, процедурно-прочный модуль, коммуникационно-прочный модуль, информационная прочность, функциональная прочность. . Сцепление модулей: сцепление по содержимому, сцепление по общей области, сцепление по управлению, сцепление по формату, сцепление по данным. Принципы Хольта.
|
Раздел 6. Тема 22. Методы проектирования ПО. (8 часов) |
Методы нисходящего и восходящего проектирования ПО. Модульное проектирование. Структурное программирование. Модели жизненного цикла ПО. Каскадная модель, ее достоинства и недостатки. Спиральная модель, ее достоинства и недостатки. CASE-технологии. |
Учебно-методическое обеспечение дисциплины
Литература
Основная:
Вендров А.М. Проектирование программного обеспечения экономических информационных систем (Учебник для ВУЗов) - М.: Финансы и статистика, 2003.- 352с.
Вендров А.М. Практикум по проектированию программного обеспечения экономических информационных систем – М.: Финансы и статистика, 2002.-190с.
Орлов С.А. Технологии разработки программного обеспечения. Разработка сложных программных систем (Учебник для ВУЗов) – СПб.: Питер, 2002.-464с
Брауде Э. Технология разработки программного обеспечения. – СПб.: Питер, 2004.- 655с
Ауэр К., Миллер Р. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца. – СПб.: Питер, 2004.-368с
Ройс У. Управление проектами по созданию программного обеспечения: унифицированный подход.-М.: Лори, 2002.- 424с
Дополнительная:
Рейнгольд Э., Нивергелд Ю., Део Н.. Комбинаторные алгоритмы . Теория и практика.- М.: Мир, 1980.- 480с.
Нивергельд Ю., Рейнголд Э., Фаррар Дж. Машинный подход к решению математических задач.- М.: Мир, 1977.- 351с.
Кнут Д. Искусство программирования для ЭВМ. т.3, Сортировка и поиск. - М.: Мир, 1978.- 848с.
Кормен. Т., Леверсон Ч., Ртвест Р. Алгоритмы. Построение и анализ.-М.: МЦНМО, 1999.- 960 с.
Грехем Р., Кнут Д., Поиашник О. Конкретная математика.- М.: Мир, 1998.- 702 с.
Ахо А. , Хопкрофт Дж. Построение и анализ вычислительных алгоритмов. – М.: Мир, 1979. - 536 с.
Мейер Б., Бодуэн К. Методы программирования. т.1, - М.: Мир, 1982. - 362с.
ANSI/IEEE 829 – 1983. Документация при тестировании программ.
ANSI/IEEE 1008 – 1986. Тестирование программных модулей и компонент ПС.
ANSI/IEEE 983 – 1986. Руководство по планированию обеспечения качества программных средств.
ISO 9126:1991. ИТ. Оценка программного продукта. Характеристики качества и руководство по их применению.
Характеристики качества программного обеспечения / Б. Боэм, Дж. Браун, Х. Каспар и др./ Пер. с англ. Е.К. Масловского. – М.: Мир, 1981- 392 с.
ISO 9000-3: 1991. Общее руководство качеством и стандарты по обеспечению качества. Ч.3: Руководящие указания по применению ISO 9001 при разработке, поставке и обслуживании программного обеспечения.
ГОСТ 28195-89. Оценка качества программных средств. Общие положения.
ГОСТ 28806-90. Качество программных средств. Термины и определения.
Материально-техническое и информационное обеспечение дисциплины