КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Конспект лекций
по дисциплине: Технология программирования по направлению 654600 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА Факультет автоматики и информационных технологий специальность 230101 Вычислительные машины, комплексы, системы и сети
САМАРА 2008 С О Д Е Р Ж А Н И Е Раздел 1. Задача проектирования программных систем.. 5 Тема 1.1. Технология программирования и основные этапы ее развития 6 1.1.1. Стихийное программирование. 7 1.1.2. Структурное программирование. 9 1.1.3. Объектно-ориентированное программирование. 10 1.1.4. Компоненты и CASE-технология. 12 1.1.5. Платформа.NET. 15 Тема 1.2. Организация процесса проектирования программного обеспечения (ПО) 17 1.2.1. Проблемы разработки сложных программных систем. 17 1.2.2. Блочно-иерархический подход к проектированию ПО. 18 1.2.3. Жизненный цикл ПО. 19 1.2.4. Процессы жизненного цикла. 21 1.2.5. Модели жизненного цикла ПО. 22 1.2.6. Оценка качества процессов разработки ПО. 25 1.2.7. Технология RAD. 27 Тема 1.3. Технологичность программных продуктов 29 1.3.1. Понятие технологичности ПО. 29 1.3.2. Модульное программирование. 30 1.3.3. Нисходящая и восходящая разработка ПО. 35 1.3.4. Стиль оформления программы. 36 1.3.5. Эффективность и технологичность. 38 Тема 1.4. Определение требований к ПО 40 1.4.1. Классификация программных систем. 40 1.4.2. Эксплуатационные требования к ПО. 42 1.4.3. Исследование предметной области. 44 1.4.4. Разработка технического задания. 45 Тема 1.5. Начальный этап проектирования 47 1.5.1. Выбор архитектуры ПО. 47 1.5.2. Выбор типа пользовательского интерфейса. 48 1.5.3. Выбор подхода к разработке. 49 1.5.4. Выбор средств разработки. 49 1.5.5. Стандарты разработки. 51 Раздел 2. Использование декомпозиции и абстракции при структурном подходе к анализу и проектированию ПО.. 53 Тема 2.1. Анализ требований к ПО и декомпозиция системы при структурном подходе 53 2.1.1. Спецификация процедур и данных при структурном подходе. 53 2.1.2. Диаграммы переходов состояний. 54 2.1.3. Функциональные диаграммы. 56 2.1.4. Диаграммы потоков данных. 58 2.1.5. Абстрактные структуры данных. 61 2.1.6. Математические модели задач. 63 Тема 2.2. Методы проектирования структуры ПО 67 2.2.1. Структурная схема ПО. 67 2.2.2. Функциональная схема ПО. 68 2.2.3. Метод пошаговой детализации. 69 2.2.4. Проектирование ПО, основанное на декомпозиции данных. 71 2.2.5. Case-технологии на основе структурного подхода. 72 Тема 2.3. Проектирование структур данных 73 2.3.1. Векторная структура. 74 2.3.2. Списковые структуры. 74 2.3.3. Представление данных во внешней памяти. 75 Раздел 3. Использование декомпозиции и абстракции при объектно-ориентированном подходе к анализу и проектированию ПО.. 78 Тема 3.1. Анализ требований к ПО и декомпозиция системы при объектном подходе 78 3.1.1. Язык UML. 78 3.1.2. Диаграммы вариантов использования. 80 3.1.3. Диаграммы классов. 83 3.1.4. Диаграмма последовательностей. 85 3.1.5. Диаграмма деятельностей. 87 Тема 3.2. Проектирование ПО при объектном подходе 90 3.2.1. Типы классов объектов. 90 3.2.2. Отношения между объектами. 92 3.2.3. Интерфейсы. 93 3.2.4. Проектирование классов. 94 3.2.5. Компоновка программных компонентов. 96 Раздел 4. Разработка ПО.. 99 Тема 4.1. Проектирование интерфейса с пользователем 99 4.1.1. Типы пользовательских интерфейсов. 99 4.1.2. Пользовательская и программная модели интерфейса. 100 4.1.3. Разработка диалогов. 100 4.1.4. Основные компоненты графических пользовательских интерфейсов. 100 Тема 4.2. Реализация графических пользовательских интерфейсов. 100 4.2.1. Диалоги, управляемые пользователем. 100 4.2.2. Диалоги, управляемые системой. 100 4.2.3. Использование метафор. 100 4.2.4. Технология Drag and Drop. 100 4.2.5. Интеллектуальные элементы. 100 Тема 4.3. Структурное программирование в Visual C++. 100 4.3.1. Базовые типы данных. 100 4.3.2. Указатели и адресная арифметика. 100 4.3.3. Составные типы данных. 100 4.3.4. Выражения и операции. 100 4.3.5. Управляющие конструкции. 100 Тема 4.4. Разработка векторных структур данных в Visual C++. 100 4.4.1. Статические одномерные массивы. 100 4.4.2. Статические многомерные массивы. 100 4.4.3. Динамические массивы. 100 4.4.4. Массивы указателей. 100 Тема 4.5. Разработка списковых структур данных в Visual C++. 100 4.5.1. Стеки. 100 4.5.2. Очереди. 100 4.5.3. Списки. 100 4.5.4. Бинарные деревья. 100 Тема 4.6. Классы в Visual C++. 100 4.6.1. Объявление классов и экземпляров классов. 100 4.6.2. Инкапсуляция данных и методов. 100 4.6.3. Конструкторы классов. 100 4.6.4. Деструкторы классов. 100 Тема 4.7. Скрытие данных в классах Visual C++. 100 4.7.1. Разделы в описании класса. 100 4.7.2. Friend-конструкции. 100 4.7.3. Статические члены классов. 100 4.7.4. Использование описателя CONST в классах. 100 Тема 4.8. Наследование классов в Visual C++. 100 4.8.1. Вложенность классов. 100 4.8.2. Наследование данных и методов. 100 4.8.3. Типы наследования. 101 Тема 4.9. Полиморфизм в Visual C++. 101 4.9.1. Полиморфизм раннего связывания. 101 4.9.2. Полиморфизм позднего связывания и виртуальные функции. 101 4.9.3. Абстрактные методы и классы. 101 Тема 4.10. Операции ввода/вывода данных в Visual C++. 101 4.10.1. Функции консольного ввода-вывода. 101 4.10.2. Функции файлового ввода-вывода. 101 4.10.3. Использование библиотеки классов потокового ввода-вывода. 101 Тема 4.11. Методы повышения гибкости и надежности объектно-ориентированных программ в Visual C++. 101 4.11.1. Перегрузка операций. 101 4.11.2. Шаблоны функций. 101 4.11.3. Шаблоны классов. 101 4.11.4. Обработка исключений. 101 Тема 4.12. COM-технология. 101 4.12.1. Основные понятия. 101 4.12.2. Типы интерфейсов. 101 4.12.3. Типы COM-объектов. 101 4.12.4. Фабрика классов. 101 Тема 4.13. Построение COM-сервера. 101 4.13.1. Язык IDL. 101 4.13.2. Определение пользовательского интерфейса. 101 4.13.3. Реализация пользовательского интерфейса. 101 4.13.4. Создание тестового клиента. 101 Тема 4.14. Обзор платформы MS.NET. 101 4.14.1. Общая идея архитектуры.NET. 101 4.14.2. Достоинства и недостатки.NET. 101 4.14.3. Схема трансляции программ в.NET. 101 4.14.4. Язык MSIL. 101 4.14.5. Объектно-ориентированная модель.NET. 101 Раздел 5. Тестирование, отладка и документирование ПО. 101 Тема 5.1. Методы тестирования программ. 101 5.1.1. Виды контроля качества ПО. 101 5.1.2. Ручной контроль ПО. 101 5.1.3. Структурное тестирование. 101 5.1.4. Функциональное тестирование. 101 5.1.5. Тестирование модулей и комплексное тестирование. 101 5.1.6. Оценочное тестирование, оценка качества программного продукта. 102 Тема 5.2. Методы отладки ПО. 102 5.2.1. Классификация ошибок. 102 5.2.2. Методы отладки ПО. 102 5.2.3. Интегрированные средства отладки. 102 Тема 5.3. Документирование и оценка качества программных продуктов. 102 5.3.1. Виды программных документов. 102 5.3.2. Пояснительная записка. 102 5.3.3. Руководство пользователя. 102 5.3.4. Руководство системного программиста. 102 5.3.5. Правила оформления документации. 102
Введение. Содержание и задачи курса В различные периоды развития средств вычислительной техники и программного обеспечения применялись различные технологии разработки программ: · Процедурное программирование · Структурное программирование · Объектно-ориентированное программирование · Компонентная объектная модель программирования Возникновение новых технологий в программировании обусловлено резким ростом возможностей компьютеров по хранению, обработке и представлению информации и связанной с этим возрастающей сложностью программного обеспечения. При этом на каждом этапе наблюдается преемственность, когда технологии предыдущего поколения органически входят составной частью в новые технологии. Так, структурное программирование базируется на использовании процедур, объектно-ориентированное программирование является дальнейшим развитием структурного, а COM-технология – объектно-ориентированного программирования. Овладение технологией ООП и COM увеличивает продуктивность работы программиста, позволяет регулировать как сложность, так и стоимость сопровождения ПО и, самое главное, значительно повышает надежность разрабатываемого ПО. В рамках курса «Технология программирования» будем изучать язык программирования C++. Язык C++, технология объектно-ориентированного программирования (ООП), библиотеки классов позволяют эффективно реализовывать и сами алгоритмы, в каких бы областях знания они не были первоначально разработаны. Рассматривая место C++ среди других языков программирования, следует иметь в виду, что в мире уже существует более 3000 различных языков программирования. Несмотря на это, новые языки продолжают регулярно появляться, создавая значительные проблемы для тех, кто решил научиться программировать на самом лучшем языке. Новичков смущает такое обилие и разнообразие языков программирования. Да и законодатели мод, такие как IBM, делали попытки создать универсальный язык, например PL/I, но объективные закономерности развития информатики, конкурентная борьба на рынке ПО, а часто и субъективные пристрастия разработчиков системного ПО определяют ту картину, которую мы наблюдаем в настоящий момент. C++ был разработан в начале 80-х годов в AT&T Bell Laboratories и с тех пор непрерывно развивается. Этот язык представляет собой расширенную версию языка С плюс средства поддержки ООП. Такие черты языка С, как экономичность, гибкость, мощь выражений, эффективность объектного кода полностью сохранены в C++. Наиболее важным является, однако, то, что C++ предоставляет базу для поддержки ООП и, вследствие этого, сохранения высокого уровня абстракции данных при решении задач. Если одни свойства языка могут быть использованы, чтобы реализовать объектный подход к решению задачи, то другие позволяют поддерживать структурный подход, и это дает основание считать его «процедурным» языком, дополненным множеством новых конструкций по сравнению с языком С. Язык C++ представляет собой эволюционное усовершенствование самых лучших черт предыдущих языков. Он находится на одном уровне с Modula2 по простоте и средствам осуществления модульности, сохраняя в то же время удивительную эффективность и компактность языка С. Таким образом, C++ можно считать гибридом: одни его свойства поддерживают ООП, другие — структурное программирование. Ключевым при создании C++ было решение сделать его совместимым с языком С, что позволяет сохранить целостность миллионов строк программ на С, обширных С-библиотек и «С Tools», которые уже разработаны.
Дата добавления: 2014-01-07; Просмотров: 474; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |