
- •Предисловие
- •Оглавление
- •Глава 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. Требования к пользовательскому интерфейсу
В условиях использования компьютерных информационных технологий актуальны вопросы организации взаимодействия человека с техническими и программными средствами. Такое взаимодействие обеспечивает пользовательский интерфейс. Интерфейс с общих позиций определяется как определенная стандартами граница раздела двух систем, устройств или программ. Применительно к информационным технологиям интерфейс определим как совокупность средств и правил, обеспечивающих взаимодействие устройств, программ.
Наконец, определим понятие «интерфейс пользователя (пользовательский интерфейс)». Интерфейс пользователя - элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с ПО. Пользовательский интерфейс включает три основных компонента:
общение приложения с пользователем;
общение пользователя с приложением;
язык общения.
Язык общения определяется разработчиком программного приложения. Свойствами интерфейса являются: конкретность и наглядность.
Для эффективного взаимодействия конечных пользователей с вычислительной системой новые информационные технологии опираются на принципиально иную организацию интерфейса пользователей с вычислительной системой, основанную на принципах дружественного интерфейса:
обеспечение права пользователя на ошибку благодаря защите информационно вычислительных ресурсов системы от непрофессиональных действий на компьютере;
наличие широкого набора иерархических меню, системы подсказок и обучения и т.п., облегчающих процесс взаимодействия пользователя с компьютером;
наличие системы «отката», позволяющей при выполнении регламентированного действия, последствия которого по каким-либо причинам не удовлетворили пользователя, вернуться к предыдущему состоянию системы.
Одной из важных функций интерфейса является формирование у пользователя одинаковой реакции на одинаковые действия приложений, их согласованность.
Согласование интерфейса должно быть выполнено в трех аспектах:
физический, который относится к техническим средствам (пока отсутствует);
синтаксический, который определяет последовательность и порядок появления элементов на экране (язык общения) и последовательность запросов (язык действий);
семантический, который обусловлен значениями элементов, составляющих интерфейс.
Согласованность интерфейса экономит время пользователя и разработчика. Для пользователя уменьшается время изучения, а затем использования системы, сокращается число ошибок, появляется чувство комфортности и уверенности.
Разработчику согласованный интерфейс позволяет выделить общие блоки интерфейса, стандартизировать отдельные элементы и правила взаимодействия с ними, сократить время проектирования новой системы.
3. Типы пользовательского интерфейса
С точки зрения пользователя операционная система формирует удобный пользовательский интерфейс, программное окружение, на фоне которого выполняется разработка и осуществляется исполнение прикладной программы пользователя.
Здесь пользовательский интерфейс можно рассматривать как командный язык для управления функционированием компьютера и набор сервисных услуг, освобождающих пользователя от выполнения рутинных операций. Интерфейс пользователя — элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением. В том числе:
средства отображения информации, отображаемая информация, форматы и коды;
командные режимы, язык пользователь-интерфейс;
устройства и технологии ввода данных;
диалоги, взаимодействие и транзакции между пользователем и компьютером; обратная связь с пользователем;
поддержка принятия решений в конкретной предметной области; порядок использования программы и документация на нее.
В зависимости от типа пользовательского интерфейса информационные технологии имеют соответствующую классификацию (Рис. 1). При этом выделяется системный и прикладной интерфейс. Прикладной интерфейс связан с реализацией некоторых функциональных информационных технологий. Системный интерфейс — это набор приемов взаимодействия с компьютером, который реализуется операционной системой или ее надстройкой.
Командный |
WIMP |
SIKL |
Однопрограммная ОС |
Многопрограммная ОС |
Многопользовательская ОС |
Пакетная технология |
Диалоговая технология |
Сетевая технология |
Рис. 1. Классификация информационных технологий по типу пользовательского интерфейса
Кратко охарактеризуем основные типы пользовательского интерфейса:
командный;
WIMP (графический);
SILK (речевой).
Командный интерфейс
Командный интерфейс — самый простой. Он обеспечивает выдачу на экран системного приглашения для ввода команды. Например, в операционной системе MS-DOS приглашение выглядит как С:\>, а в операционной системе UNIX — это обычно знак доллара.
Некогда ранее распространенный командный интерфейс имеет ряд существенных недостатков с точки зрения пользователя: многочисленность команд, отсутствие стандарта для приложений и т.д. Все это что ограничивает круг его применения.
Для преодоления недостатков были предприняты попытки упрощения командного интерфейса. Так появились специальные программные оболочки, облегчающие общение пользователя с операционной системой (программа Norton Commander и др.).
Настоящим же решением проблемы стало создание и внедрение графической оболочки для операционной системы.
WIMP-интерфейс
WIMP-интерфейс расшифровывается как Windows (окно) Image (образ) Menu (меню) Pointer (указатель).
При использовании WIMP-интерфейса на экране высвечивается окно, содержащее образы программ и меню действий. Для выбора одного из них используется указатель.
В настоящее время практически все распространенные операционные системы предоставляют для своей работы графический интерфейс WIMP, использующий указательное устройство (например, «мышь»), выбор команд из меню, предоставление программам отдельных окон, использование для обозначения программ образов в виде пиктограмм.
Удобство интерфейса и богатство возможностей делают Windows оптимальной системой для повседневной работы. Приложения, написанные под Windows, используют тот же интерфейс, поэтому его единообразие сводит к минимуму процесс обучения работе с любым приложением Windows.
SILK-интерфейс
SILK-интерфейс расшифровывается как Speech (речь) Image (образ) Language (язык) Knowledge (знание). При использовании SILK-интерфейса на экране по речевой команде происходит перемещение от одних поисковых образов к другим по смысловым семантическим связям.
Современные операционные системы поддерживают командный, WIMP- и SILK- интерфейсы. В последнее время внимание привлекают новые виды интерфейса, такие как биометрический (мимический) и семантический (общественный). В связи с этим поставлена проблема создания общественного интерфейса (social interface). Общественный интерфейс будет включать в себя лучшие решения WIMP- и SILK-интерфейсов. Предполагается, что при использовании общественного интерфейса не нужно будет разбираться в меню. Экранные образы однозначно укажут дальнейший путь. Перемещение от одних поисковых образов к другим будет проходить по смысловым семантическим связям.