
- •Предисловие
- •Оглавление
- •Глава 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. Методы оценки технико-экономических показателей программных средств на различных этапах их жизненного цикла
- •Контрольные вопросы
- •Список литературы
Глава 18. Инструментарий технологии программирования.
CASE – технологии …………………………………………………………………206
1. Классификация инструментальных средств …………………………………………….206
2. Общая характеристика CASE- средств …………………………………………………..208
3. Классификация CASE-средств ………………………………………………………......210
4.Технология внедрения CASE-средств ……………………………………………………211
Контрольные вопросы ……………………………………………………………………….214
Глава 19. Коллективная разработка по ………………………………………………..215
1. Особенности больших программных проектов …………………………………………215
2. Коллективный характер разработки программного обеспечения
Бригада главного программиста …………………………………………………………217
3. Психологические факторы при формировании программистских коллективов ……...219
4. Коллективная разработка программ - «Коллективная игра» …………………………..222
Контрольные вопросы ……………………………………………………………………….230
Глава 20 Стандартизация по.
Экономические аспекты создания ПО …………………………………………232
1.Краткая характеристика программных средств как объекта
разработки и стандартизации …………………………………………………………….232
2. Основные понятия и положения технологии разработки
программных средств ……………………………………………………………………..236
3. Эффективность технологий проектирования ПС……………………………………….238
4.Общие сведения о сертификации информационных систем
и их программных средств ……………………………………………………………….240
5. Методы оценки технико-экономических показателей программных
средств на различных этапах их жизненного цикла …………………………………….243
Контрольные вопросы ……………………………………………………………………….245
Список литературы ………………………………………………………………………...246
Глава 1. Программные продукты, характеристика, классификация
1.Основные определения, характеристики
Основными критериями разделения результата деятельности программистов на просто программы и программное обеспечение (ПО) должны служить и объем, и сложность решаемых задач. При этом под сложностью решаемых задач будем понимать не алгоритмическую и вычислительные сложности, а трудоемкость создания данной программы или ПО. Аспекты, по которым чаще всего классифицируется и изучается ПО: сфера применения, использование ресурсов вычислительного комплекса, технология изготовления, назначение, качество, в том числе сложность, товарная продукция и т. п.
Сфера применения ПО, в значительной мере, определяется областью использования ЭВМ, для которой разрабатывается данное ПО. С этой точки зрения ПО принято делить на
ПО для научных исследований,
коммерческое или прикладное,
системное
ПО ЭВМ, встраиваемое в контуры управления, так называемое программно-аппаратное обеспечение (ПАО).
ПО для научных исследований состоит в основном из программ, разрабатываемых для решения частных инженерных и исследовательских задач. Обычно эти программы невелики по объему, их функционирование не связано с реальным масштабом времени, но самое главное это то, что такие программы имеют экспериментальный характер. Они сугубо индивидуальны, т. е. не ориентированы на массового пользователя, и, следовательно, не снабжены технической и технологической документацией. Как правило, эти программы сугубо авторские, т. е. разработаны одним человеком, являющимся в большей степени специалистом в конкретной проблемной области, а не профессиональным программистом.
Выделяя в самостоятельный класс ПО для научных исследований, сюда не относятся мощные инструментальные системы для автоматизации научных исследований (АСНИ), представляющие собой большие программные системы, оформленные в виде пакетов прикладных программ (ППП). Такое ПО относится ко второму классу: коммерческому (прикладному).
Коммерческое или прикладное ПО предназначено, в основном, для автоматизации различных систем обработки данных, которые, в свою очередь, могут входить как составные части в некоторые технические, организационные, информационные и т. п. системы. Объем такого ПО может быть очень значителен, оно может функционировать в реальном масштабе времени и отчуждаться от программистов-разработчиков. В связи с большим объемом и сложностью разработка ПО этого класса осуществляется коллективом разработчиков, что в свою очередь порождает ряд особенностей, обусловливаемых технологией его создания.
Системное ПО имеет внешне много общего с коммерческим, или прикладным ПО. Так, оно также отчуждается от программиста-разработчика, имеет большой объем и поэтому требует для своего создания коллектива разработчиков. Системное ПО, в отличие от прикладного, носит более универсальный характер, постоянно тиражируется, а самое главное, предназначено для автоматизации разработки ПО первых двух классов и управления ресурсами самой ЭВМ.. К системному ПО относят всевозможные трансляторы с алгоритмических языков, операционные системы (ОС), системы управления базами данных (СУБД) и т. п. В состав системного иногда включают и инструментальное ПО, с помощью которого автоматизируются основные процессы разработки различного ПО. Это, в первую очередь, всевозможные текстовые редакторы, графические пакеты, интегрированные технологические системы и т. п.
Программно-аппаратное обеспечение (ПАО) составляет программное обеспечение, непосредственно входящее в контур различных систем автоматического управления. Отличительной особенностью ПАО является то, что функционирует оно в реальном масштабе времени, полностью использует ресурсы компьютера, в системном ПО которого обычно отсутствует операционная система и языки высокого уровня. К ПАО предъявляются жесткие требования по качеству (надежность, быстродействие, живучесть и т. п.), оно должно снабжаться подробной технической и технологической документацией. В большинстве случаев ПАО функционирует только на чтение, так как его программы, как правило, прошиты в ПЗУ, чтобы исключить их порчу при несанкционированном доступе.
Технологический аспект разработки ПО второго и третьего классов имеет много общего, и поэтому его целесообразно рассмотреть с единых позиций. Эта общность, прежде всего, состоит в том, что ПО данных классов имеет большой объем и высокую сложность изготовления, что диктует коллективный характер его разработки, кроме того, предназначено оно для использования сторонним пользователем, т. е. отчуждается от программистов-разработчиков. В свою очередь, коллективный характер разработки требует определенных приемов структурной декомпозиции всего ПО на составные части, стандартизации интерфейсов, эффективных методов организации и управления разработкой и т. п. Отчуждение ПО от разработчиков налагает на ПО ряд требований, превращающих его в продукцию производственно-технического назначения или в программное изделие (ПИ). Эти требования касаются, прежде всего, различных показателей качества, к которым можно отнести и технико-экономические, и уровень документируемости ПО.
Все сказанное о ПО второго и третьего классов относится и к ПАО. Однако ПАО обладает и существенной особенностью, позволяющей выделить в технологии его разработки свойства, присущие только ему одному. Эти свойства прежде всего обусловливаются ЭВМ, для которой разрабатывается данное ПО. Полное отсутствие у таких ЭВМ ОС и развитых средств программирования, кроме системы команд самой ЭВМ, и достаточно жесткие требования, предъявляемые к разрабатываемому ПАО на надежность, эффективность, документируемость и т. п., большой объем и высокая сложность самого ПАО — все эти факторы, вместе взятые, требуют для создания ПАО развитых технологических инструментальных средств, которые, как правило, реализуются на мощной универсальной ЭВМ, называемой технологической или инструментальной. Перенос ПО, разработанного на такой ЭВМ, на конкретную ЭВМ, встраиваемую в контур управления, осуществляется с помощью специальной программной или аппаратной кросс-системы. Именно кросс-система является той особенностью, благодаря которой технология разработки ПАО отличается от разработки коммерческого и системного ПО.
Программное обеспечение - это комплекс взаимосвязанных программных модулей, предназначенный для решения конкретной задачи или определенного класса задач, отчуждаемый от программистов-разработчиков, снабженный в соответствии с заданными требованиями необходимой технической и технологической документацией, удовлетворяющей заданным требованиям качества, и обладающий товарной стоимостью.