
- •Предисловие
- •Оглавление
- •Глава 1. Программные продукты, характеристика, классификация .........................8
- •Глава 2. Жизненный цикл. Стратегии и модели конструирования по ……………..17
- •Глава 3.Руководство проектом. Метрики ………………………………………………..31
- •Глава 4. Структурное проектирование ………………………………………..................42
- •Глава 5. Основы объектно-ориентированного представления
- •Глава 6. Язык визуального моделирования uml …………………………....................73
- •Глава 7. Проектирование интерфейса пользователя …………………………………..90
- •Глава 12. Эффективность и оптимизация программ ………………………………….139
- •Глава 13. Структурное тестирование по ………………………...................................153
- •Глава 14. Функциональное тестирование по ………………………………………….160
- •Глава 15. Комплексное тестирование. Отладка ………………………………………...170
- •Глава 16. Сопровождение программного обеспечения.
- •Глава 17. Защита программ ……………………………………………………………...187
- •Глава 18. Инструментарий технологии программирования.
- •Глава 19. Коллективная разработка по ………………………………………………..215
- •Глава 20 Стандартизация по.
- •Глава 1. Программные продукты, характеристика, классификация
- •1.Основные определения, характеристики
- •2.Классификация по по праву владения, использования, распространения
- •3 Пакеты прикладных программ
- •Контрольные вопросы
- •Глава 2. Жизненный цикл. Стратегии и модели конструирования по
- •1. Технология конструирования программного обеспечения– определение, парадигмы
- •1.1 Классический жизненный цикл
- •Проектирование
- •Кодирование
- •1.2 Макетирование
- •2. Стратегии конструирования по
- •3. Модели конструирования
- •3.1 Инкрементная модель
- •3.2 Модель rad - Быстрая разработка приложений
- •3.3 Спиральная модель
- •3.4 Компонентно-ориентированная модель
- •4. Прогнозирующие и адаптивные процессы
- •6. Модели качества процессов конструирования
- •Контрольные вопросы
- •Глава 3.Руководство проектом. Метрики
- •1. Процесс руководства проектом
- •2. Метрики
- •2.1 Размерно-ориентированные метрики
- •2.2 Функционально-ориентированные метрики
- •3. Выполнение оценки в ходе руководства проектом
- •3.1.Оценка проекта на основе loc- и fp-метрик
- •3.2.Конструктивная модель стоимости cocomo
- •Контрольные вопросы
- •Глава 4. Структурное проектирование
- •1.1 Диаграммы потоков данных
- •1.2 .Методы анализа, ориентированные на структуры данных
- •2. Основы проектирования программных систем
- •Этапы проектирования
- •2.2 Структурирование системы
- •2.3 Моделирование управления
- •2.4 Декомпозиция подсистем на модули
- •3. Модульность
- •3.1. Свойства, обоснование
- •3.2 Информационная закрытость
- •3.3 Связность модуля
- •3.4. Алгоритм определения связности модуля
- •3.5. Сцепление модулей
- •4. Сложность программной системы
- •5. Характеристики иерархической структуры программной системы
- •Контрольные вопросы
- •Глава 5. Основы объектно-ориентированного представления программных систем. Метрики
- •1. Принципы объектно-ориентированного
- •Представления программных систем
- •2. Объекты
- •2.1 Определение, характеристика объектов
- •2.2 Виды отношений между объектами
- •1.Связи
- •2.Агрегация
- •3. Классы
- •3.1 Понятие, характеристика
- •3.2 Виды отношений между классами
- •1).Ассоциации классов
- •4).Зависимость
- •4. Метрики объектно-ориентированных программных систем
- •4.1 Метрические особенности объектно-ориентированных систем
- •4. 2.Эволюция мер связи для объектно-ориентированных систем
- •4.3. Набор метрик Чидамбера и Кемерера
- •Контрольные вопросы
- •Глава 6. Язык визуального моделирования uml
- •1. Базис uml
- •1.1.Предметы в uml
- •1.1.Структурные предметы
- •1.2.Предметы поведения
- •1.3.Группирующие предметы
- •1.4.Поясняющие предметы
- •1.2.Отношения в uml
- •1.3.Диаграммы в uml
- •2. Диаграммы use case
- •2.1 Особенности диаграмм Use Case
- •2.2 Актеры и элементы Use Case
- •2.3 Отношения в диаграммах Use Case
- •2.4 Примеры диаграмм use case
- •3. Модели реализации объектно-ориентированных программных систем в uml
- •3.1.Компонентные диаграммы
- •3.2. Использование компонентных диаграмм
- •Контрольные вопросы
- •Глава 7. Проектирование интерфейса пользователя
- •Принципы организации интерфейса пользователя
- •2. Требования к пользовательскому интерфейсу
- •3. Типы пользовательского интерфейса
- •4. Стандарты пользовательского интерфейса информационных технологий
- •4.1. Стандартизация в области информационных технологий
- •4.2 Проектирование пользовательского интерфейса
- •Контрольные вопросы
- •Глава 8. Информационное моделирование
- •1. Этапы проектирования баз данных
- •2. Классификация и характеристика моделей данных
- •3. Типы и структуры данных
- •Контрольные вопросы
- •Глава 9. Модель "Сущность-связь"(er - Entity Relationship)
- •Базовые понятия er-модели
- •2. Пример построения er-модели
- •Контрольные вопросы
- •Глава 10. Стиль программирования
- •1. Три подхода к программированию
- •2. Стиль структу́рного программи́рования
- •3. Общие положения стандарта оформления кода
- •Необходимо
- •Контрольные вопросы
- •Глава 11. Парадигмы программирования
- •1. Процедурное программирование
- •2. Функциональное программирование
- •3. Логическое программирование
- •4. Автоматное программирование
- •5. Объектно-ориентированное программирование
- •5.1 История ооп
- •5.2 Главные понятия и разновидности ооп
- •5.2.1 Основные понятия
- •5.2.2 Сложности определения
- •5.2.3 Определение ооп
- •5.2.3 Концепции
- •5.2.4 Особенности реализации
- •5.3 Подходы ооп к проектированию программ в целом
- •5.4 Родственные методологии
- •5.4.1 Компонентное программирование
- •5.4.2 Прототипное программирование
- •5.5 Производительность объектных программ
- •5.6 Критика ооп
- •5.7 Объектно-ориентированные языки - характеристика
- •6. Аспектно-ориентированное программирование
- •Контрольные вопросы
- •Глава 12. Эффективность и оптимизация программ
- •1. Общие понятия эффективности
- •2. Оптимизирующие компиляторы
- •3. Оптимизация программ
- •4. Эффективность выполнения программ
- •5. Оптимизация использования памяти
- •6. Некоторые приёмы повышения эффективности программ
- •1.Вычисление констант
- •2.Инициирование переменных
- •3.Арифметические операции
- •4. Арифметика с фиксированной точкой
- •5. Смешанные типы данных
- •6. Способ устранения ошибок
- •7. Выравнивание десятичных чисел
- •8. Упорядочивание памяти
- •9. Группировка
- •10. Исключение циклов
- •11. Организация циклов
- •12. Условные и логические выражения
- •13. Ввод-вывод
- •14. Использование сведения о машине и компиляторе
- •7. Советы программисту по оптимизации программ
- •Контрольные вопросы
- •Глава 13. Структурное тестирование по
- •1.Основные понятия и принципы тестирования по
- •2.Тестирование «черного ящика»
- •3.Тестирование «белого ящика»
- •Контрольные вопросы
- •Глава 14. Функциональное тестирование по
- •1. Особенности тестирования «чёрного ящика»
- •2. Способ разбиения по эквивалентности
- •3. Способ анализа граничных значений
- •4. Способ диаграмм причин-следствий
- •Глава 15. Комплексное тестирование. Отладка
- •1. Методика комплексного тестирования пс
- •2.Тестирование элементов
- •3.Тестирование интеграции
- •3.1.Нисходящее тестирование интеграции
- •3.2 Восходящее тестирование интеграции
- •4.Тестирование правильности
- •5.Системное тестирование
- •5.1.Тестирование восстановления
- •5.2.Тестирование безопасности
- •5.3.Стрессовое тестирование
- •5.4. Тестирование производительности
- •6. Искусство отладки
- •Контрольные вопросы
- •Глава 16. Сопровождение программного обеспечения. Документирование результатов и хода разработки
- •1. Проблемы документирования
- •2. Виды документации
- •3. Средства автоматизации документирования
- •Контрольные вопросы
- •Глава 17. Защита программ
- •1. Концептуальные основы защиты информации
- •2. Организационно-правовое обеспечение защиты информации Организационные мероприятия и процедуры по обеспечению защиты информации
- •3. Защита информации от несанкционированного доступа
- •3.1. Основные понятия защиты от нсд
- •3.2. Формальные модели защиты
- •3 3. Системы разграничения доступа
- •4 Защита информации в каналах связи
- •4. 1. Основные понятия и определения
- •4.2. Криптоалгоритмы и протоколы шифрования
- •4. 3. Алгоритмы и протоколы реализации функции цифровой подписи
- •5.2. Сигнатурные методы защиты от несанкционированного копирования
- •5. 3. Аппаратные методы защиты от несанкционированного копирования
- •6 Компьютерная вирусология
- •Контрольные вопросы
- •Глава 18. Инструментарий технологии программирования. Case - технологии
- •Классификация инструментальных средств
- •2. Общая характеристика case- средств
- •3. Классификация case-средств
- •4.Технология внедрения case-средств
- •Контрольные вопросы
- •Глава 19. Коллективная разработка по
- •1. Особенности больших программных проектов
- •2. Коллективный характер разработки программного обеспечения. Бригада главного программиста
- •3. Психологические факторы при формировании программистских коллективов
- •4. Коллективная разработка программ - «Коллективная игра»
- •Инженерная модель программирования не оправдывает себя
- •Модель коллективной игры Виды игр, коллективные игры, последовательность игр
- •Кооперация и коммуникация
- •Изобретательность
- •Контрольные вопросы
- •Глава 20 Стандартизация по. Экономические аспекты создания по
- •1.Краткая характеристика программных средств как объекта разработки и стандартизации
- •2. Основные понятия и положения технологии разработки программных средств
- •2) Проблемы технологии разработки пс, включающие:
- •3. Критерии оценки технологий проектирования программных средств
- •4.Общие сведения о сертификации информационных систем и программных средств
- •1) Количественные пк:
- •2) Качественные пк:
- •5. Методы оценки технико-экономических показателей программных средств на различных этапах их жизненного цикла
- •Контрольные вопросы
- •Список литературы
2.2 Структурирование системы
Известны четыре модели системного структурирования:
модель хранилища данных;
модель клиент-сервер;
трехуровневая модель;
модель абстрактной машины.
В модели хранилища данных (рис. 7) подсистемы разделяют данные, находящиеся в общей памяти. Как правило, данные образуют БД. Предусматривается система управления этой базой.
Рис. 7. Модель хранилища данных
Модель клиент-сервер используется для распределенных систем, где данные распределены по серверам (рис. 8). Для передачи данных применяют сетевой протокол, например TCP/IP.
Рис. 8. Модель клиент-сервер
Трехуровневая модель является развитием модели клиент-сервер (рис.9).
Рис. 9. Трехуровневая модель
Уровень графического интерфейса пользователя запускается на машине клиента. Бизнес-логику образуют модули, осуществляющие функциональные обязанности системы. Этот уровень запускается на сервере приложения. Реляционная СУБД хранит данные, требуемые уровню бизнес-логики. Этот уровень запускается на втором сервере – сервере базы данных. Преимущества трехуровневой модели:
упрощается такая модификация уровня, которая не влияет на другие уровни;
отделение прикладных функций от функций управления БД упрощает оптимизацию всей системы.
Модель абстрактной машины отображает многослойную систему (рис. 10). Каждый текущий слой реализуется с использованием средств, обеспечиваемых слоем-фундаментом.
Рис. 10. Модель абстрактной машины
2.3 Моделирование управления
Известны два типа моделей управления: модель централизованного управления; модель событийного управления.
В модели централизованного управления одна подсистема выделяется как системный контроллер. Ее обязанности – руководить работой других подсистем.
Различают две разновидности моделей централизованного управления:
модель вызов-возврат (рис. 11)
модель менеджера (рис. 12), которая используется в системах параллельной обработки.
Рис. 11. Модель вызов-возврат
Рис. 12. Модель менеджера
В модели событийного управления системой управляют внешние события. Используются две разновидности модели событийного управления:
широковещательная модель
модель, управляемая прерываниями.
В широковещательной модели (рис. 13) каждая подсистема уведомляет обработчика о своем интересе к конкретным событиям. Когда событие происходит, обработчик пересылает его подсистеме, которая может обработать это событие. Функции управления в обработчик не встраиваются.
Рис. 13. Широковещательная модель
Рис. 14. Модель, управляемая прерываниями
В модели, управляемой прерываниями (рис. 14), все прерывания разбиты на группы – типы, которые образуют вектор прерываний. Для каждого типа прерывания есть свой обработчик. Каждый обработчик реагирует на свой тип прерывания и запускает свой процесс.
2.4 Декомпозиция подсистем на модули
Известны два типа моделей модульной декомпозиции: модель потока данных; модель объектов. В основе модели потока данных лежит разбиение по функциям. Модель объектов основана на слабо сцепленных сущностях, имеющих собственные наборы данных, состояния и наборы операций. Очевидно, что выбор типа декомпозиции должен определяться сложностью разбиваемой подсистемы.