- •Конспект лекций
- •Раздел 1. Задача проектирования программных систем Введение. Содержание и задачи курса
- •Задачи и этапы проектирования сложных программных средств
- •Тема 1.1. Технология программирования и основные этапы ее развития
- •1.1.1. Стихийное программирование.
- •1.1.2. Структурное программирование.
- •1.1.3. Объектно-ориентированное программирование.
- •1.1.4. Компоненты и case-технология.
- •1.1.5. Платформа .Net.
- •Тема 1.2. Организация процесса проектирования программного обеспечения (по)
- •1.2.1. Проблемы разработки сложных программных систем.
- •1.2.2. Блочно-иерархический подход к проектированию по.
- •1.2.3. Жизненный цикл по.
- •1.2.4. Процессы жизненного цикла.
- •1.2.5. Модели жизненного цикла по.
- •1.2.6. Оценка качества процессов разработки по.
- •1.2.7. Технология rad.
- •Тема 1.3. Технологичность программных продуктов
- •1.3.1. Понятие технологичности по.
- •1.3.2. Модульное программирование.
- •1.3.3. Нисходящая и восходящая разработка по.
- •1.3.4. Стиль оформления программы.
- •1.3.5. Эффективность и технологичность.
- •Тема 1.4. Определение требований к по
- •1.4.1. Классификация программных систем.
- •1.4.2. Эксплуатационные требования к по.
- •1.4.3. Исследование предметной области.
- •1.4.4. Разработка технического задания.
- •Тема 1.5. Начальный этап проектирования
- •1.5.1. Выбор архитектуры по.
- •1.5.2. Выбор типа пользовательского интерфейса.
- •1.5.3. Выбор подхода к разработке.
- •1.5.4. Выбор средств разработки.
- •1.5.5. Стандарты разработки.
- •Раздел 2. Использование декомпозиции и абстракции при структурном подходе к анализу и проектированию по Тема 2.1. Анализ требований к по и декомпозиция системы при структурном подходе
- •2.1.1. Спецификация процедур и данных при структурном подходе.
- •2.1.2. Диаграммы переходов состояний.
- •2.1.3. Функциональные диаграммы.
- •2.1.4. Диаграммы потоков данных.
- •2.1.5. Абстрактные структуры данных.
- •2.1.6. Математические модели задач.
- •Тема 2.2. Методы проектирования структуры по
- •2.2.1. Структурная схема по.
- •2.2.2. Функциональная схема по.
- •2.2.3. Метод пошаговой детализации.
- •2.2.4. Проектирование по, основанное на декомпозиции данных.
- •2.2.5. Case-технологии на основе структурного подхода.
- •Тема 2.3. Проектирование структур данных
- •2.3.1. Векторная структура.
- •2.3.2. Списковые структуры.
- •2.3.3. Представление данных во внешней памяти.
- •Раздел 3. Использование декомпозиции и абстракции при объектно-ориентированном подходе к анализу и проектированию по Тема 3.1. Анализ требований к по и декомпозиция системы при объектном подходе
- •3.1.1. Язык uml.
- •3.1.2. Диаграммы вариантов использования.
- •3.1.3. Диаграммы классов.
- •3.1.4. Диаграмма последовательностей.
- •3.1.5. Диаграмма деятельностей.
- •Тема 3.2. Проектирование по при объектном подходе
- •3.2.1. Типы классов объектов.
- •3.2.2. Отношения между объектами.
- •3.2.3. Интерфейсы.
- •3.2.4. Проектирование классов.
- •3.2.5. Компоновка программных компонентов.
- •Раздел 4. Разработка по Тема 4.1. Проектирование интерфейса с пользователем
- •4.1.1. Типы пользовательских интерфейсов.
3.2.5. Компоновка программных компонентов.
Диаграммы компонентов применяют при проектировании физической структуры разрабатываемого программного обеспечения. Эти диаграммы показывают, как выглядит программное обеспечение на физическом уровне, т. е. из каких частей оно состоит и как эти части связаны между собой.
Диаграммы компонентов оперируют понятиями компонент и зависимость. Под компонентами при этом понимают физические заменяемые части программного обеспечения, которые соответствуют некоторому набору интерфейсов и обеспечивают их реализацию. По сути дела, это отдельные файлы различных типов: исполняемые (.ехе), текстовые, графические, таблицы баз данных и т. п., составляющие разрабатываемое программное обеспечение. Условные графические обозначения компонентов различных типов приведены на рис. 7 22.
Зависимость между компонентами фиксируют, если один компонент содержит некоторый ресурс (модуль, объект, класс и т. д.), а другой - его использует. Качество компоновки оценивают по количеству и типу связей между компонентами, т. е. по степени независимости компонентов. На диаграмме компонентов зависимость обозначают пунктиром со стрелкой на конце.
На рис. 7.23 в качестве примера приведена диаграмма компонентов системы решения комбинаторно-оптимизационных задач.
При компонентном подходе на диаграмме компонентов целесообразна показывать интерфейсы, через которые компоненты связаны между собой» (рис. 7.24).
Для программного обеспечения с архитектурой «клиент-сервер», диаграмму компонентов можно использовать в качестве структурной схемы, определяющей архитектуру разрабатываемого программного обеспечения, так как она позволяет показать связи по управлению частей системы (компонентов). Однако при проектировании такую схему необходимо уточнить, показав более подробно состав компонентов разрабатываемой системы.
Раздел 4. Разработка по Тема 4.1. Проектирование интерфейса с пользователем
4.1.1. Типы пользовательских интерфейсов.
Пользовательский интерфейс представляет собой совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Основу такого взаимодействия составляют диалоги. 1од диалогом в данном случае понимают регламентированный обмен информацией между человеком и компьютером, осуществляемый в реальном масштабе времени и направленный на совместное решение конкретной задачи: обмен информацией и координация действий [35]. Каждый диалог состо-1Т из отдельных процессов ввода-вывода, которые физически обеспечивают связь пользователя и компьютера.
Обмен информацией осуществляется передачей сообщений и управляющзих сигналов. Сообщение - порция информации, участвующая в диалоговом обмене. Различают:
• входные сообщения, которые генерируются человеком с помощью средств ввода: клавиатуры, манипуляторов, например мыши и т. п.;
4.1.2. Пользовательская и программная модели интерфейса.
4.1.3. Разработка диалогов.
4.1.4. Основные компоненты графических пользовательских интерфейсов.
Тема 4.2. Реализация графических пользовательских интерфейсов.
4.2.1. Диалоги, управляемые пользователем.
4.2.2. Диалоги, управляемые системой.
4.2.3. Использование метафор.
4.2.4. Технология Drag and Drop.
4.2.5. Интеллектуальные элементы.
Тема 4.3. Структурное программирование в Visual C++.
4.3.1. Базовые типы данных.
4.3.2. Указатели и адресная арифметика.
4.3.3. Составные типы данных.
4.3.4. Выражения и операции.
4.3.5. Управляющие конструкции.
Тема 4.4. Разработка векторных структур данных в Visual C++.
4.4.1. Статические одномерные массивы.
4.4.2. Статические многомерные массивы.
4.4.3. Динамические массивы.
4.4.4. Массивы указателей.
Тема 4.5. Разработка списковых структур данных в Visual C++.
4.5.1. Стеки.
4.5.2. Очереди.
4.5.3. Списки.
4.5.4. Бинарные деревья.
Тема 4.6. Классы в Visual C++.
4.6.1. Объявление классов и экземпляров классов.
4.6.2. Инкапсуляция данных и методов.
4.6.3. Конструкторы классов.
4.6.4. Деструкторы классов.
Тема 4.7. Скрытие данных в классах Visual C++.
4.7.1. Разделы в описании класса.
4.7.2. Friend-конструкции.
4.7.3. Статические члены классов.
4.7.4. Использование описателя CONST в классах.
Тема 4.8. Наследование классов в Visual C++.
4.8.1. Вложенность классов.
4.8.2. Наследование данных и методов.
4.8.3. Типы наследования.
Тема 4.9. Полиморфизм в Visual C++.
4.9.1. Полиморфизм раннего связывания.
4.9.2. Полиморфизм позднего связывания и виртуальные функции.
4.9.3. Абстрактные методы и классы.
Тема 4.10. Операции ввода/вывода данных в Visual C++.
4.10.1. Функции консольного ввода-вывода.
4.10.2. Функции файлового ввода-вывода.
4.10.3. Использование библиотеки классов потокового ввода-вывода.
Тема 4.11. Методы повышения гибкости и надежности объектно-ориентированных программ в Visual C++.
4.11.1. Перегрузка операций.
4.11.2. Шаблоны функций.
4.11.3. Шаблоны классов.
4.11.4. Обработка исключений.
Тема 4.12. COM-технология.
4.12.1. Основные понятия.
4.12.2. Типы интерфейсов.
4.12.3. Типы COM-объектов.
4.12.4. Фабрика классов.
Тема 4.13. Построение COM-сервера.
4.13.1. Язык IDL.
4.13.2. Определение пользовательского интерфейса.
4.13.3. Реализация пользовательского интерфейса.
4.13.4. Создание тестового клиента.
Тема 4.14. Обзор платформы MS .NET.
4.14.1. Общая идея архитектуры .NET.
4.14.2. Достоинства и недостатки .NET.
4.14.3. Схема трансляции программ в .NET.
4.14.4. Язык MSIL.
4.14.5. Объектно-ориентированная модель .NET.
Раздел 5. Тестирование, отладка и документирование ПО.
Тема 5.1. Методы тестирования программ.
5.1.1. Виды контроля качества ПО.
5.1.2. Ручной контроль ПО.
5.1.3. Структурное тестирование.
5.1.4. Функциональное тестирование.
5.1.5. Тестирование модулей и комплексное тестирование.
5.1.6. Оценочное тестирование, оценка качества программного продукта.
Тема 5.2. Методы отладки ПО.
5.2.1. Классификация ошибок.
5.2.2. Методы отладки ПО.
5.2.3. Интегрированные средства отладки.
Тема 5.3. Документирование и оценка качества программных продуктов.
5.3.1. Виды программных документов.
5.3.2. Пояснительная записка.
5.3.3. Руководство пользователя.
5.3.4. Руководство системного программиста.
5.3.5. Правила оформления документации.