
- •Предисловие
- •Оглавление
- •Глава 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. Методы оценки технико-экономических показателей программных средств на различных этапах их жизненного цикла
- •Контрольные вопросы
- •Список литературы
3 Пакеты прикладных программ
Это комплекс взаимосвязанных программ для решения задач определенного класса. Выделяются следующие виды ППП:
проблемно-ориентированные. Используются для тех проблемных областей, в которых возможна типизация функций управления, структур данных и алгоритмов обработки. Например, это ППП автоматизации бухучета, финансовой деятельности, управления персоналом и т.д.;
автоматизации проектирования (или САПР). Используются в работе конструкторов и технологов, связанных с разработкой чертежей, схем, диаграмм;
общего назначения. Поддерживают компьютерные технологии конечных пользователей и включают текстовые и табличные процессоры, графические редакторы, системы управления базами данных (СУБД);
офисные. Обеспечивают организационное управление деятельностью офиса. Включают органайзеры (записные и телефонные книжки, календари, презентации и т.д.), средства распознавания текста;
настольные издательские системы – более функционально мощные текстовые процессоры;
системы искусственного интеллекта. Используют в работе некоторые принципы обработки информации, свойственные человеку. Включают информационные системы, поддерживающие диалог на естественном языке; экспертные системы, позволяющие давать рекомендации пользователю в различных ситуациях; интеллектуальные пакеты прикладных программ, позволяющие решать прикладные задачи без программирования.
Проблемно-ориентированные пакеты. Используются в тех предметных областях, для которых возможна типизация функций управления, структур данных и алгоритмов обработки. Типичным примером является серия программ 1С:, позволяющая автоматизировать решение задач управления предприятием, например, 1С:Бухгалтерия, 1С: Предприятие, 1С: Кадры и т.д. К пакетам этого класса относятся и программы, реализующие дистанционное обучение, например пакет SunRav_BookOffice для создания и работы с электронным учебником, с помощью которого был разработан данный электронный учебник.
Системы автоматизации проектирования (САПР)
Эти пакеты используются в работе конструкторов и технологов, связанных с разработкой чертежей, схем, диаграмм, т.е. с обработкой графических изображений. Реализуют функции: коллективная работа в сети; экспорт - импорт файлов различных форматов; масштабирование объектов; группировка объектов, передвижение, растяжка, поворот, разрезание, изменение размеров, работа со слоями; перерисовка; управление файлами; использование чертежных инструментов, позволяющих рисовать кривые, эллипсы, линии произвольной формы, многоугольники и т.п.; работа с цветом; автоматизация отдельных процедур с использованием встроенного макроязыка.
Примерами пакетов этого класса являются: AutoCAD (AutoDesk), DesignCAD, Grafic CAD Professional, DrawBase, Microstation, TurboCAD
Пакеты общего назначения
Поддерживают компьютерные технологии конечных пользователей и включают текстовые и табличные процессоры (редакторы), графические редакторы, системы управления базами данных (СУБД), пакеты программ мультимедиа, пакеты демонстрационной графики.
Текстовые процессоры (редакторы) позволяют готовить текстовые документы, которые могут включать и таблицы, и рисунки, и диаграммы. Примером пакетов этого класса являются MS Word, Блокнот, WordPad. Перечень выполняемых функций, например MS Word, очень широк и изучается студентами в лабораторном практикуме по информатике.
Табличные процессоры (типичный пример - MS Excel) позволяют обрабатывать большие объемы числовой информации (не исключая при этом обычную символьную), формируя из данных таблицы. Можно сказать, что это очень мощные калькуляторы, хранящие в своей памяти огромные числовые массивы и позволяющие выполнять над ними различные арифметические и логические операции, формировать диаграммы и делать множество других операций, полезных для решения различных задач пользователя. Аналогично пакету MS Word, табличный процессор MS Excel изучается в лабораторном практикуме по информатике.
Графические редакторы позволяют генерировать различные изобразительные объекты. Они делятся на 2 класса - растровой и векторной графики - в зависимости от того, какое внутреннее представление этих объектов в них поддерживается. Редакторы растровой графики используются для работы с фотографиями. Они кодируют фотоизображения в цифровую форму и позволяют выполнять над ними различные редактирующие операции (выделение фрагментов, перемещение, вырезание, копирование и т.д.). Примерами редакторов этого класса являются: Adobe Photoshop, Aldus Photo Styler, Picture Publisher, Photo Works Plus. Редакторы векторной графики используются для профессиональной работы, связанной с технической и художественной иллюстрацией с последующей цветной печатью. Они занимают промежуточное место между САПР и настольными издательскими системами. Включают инструментарий для создания графического объекта; средства манипулирования объектами; средства обработки текста в части оформления и модификации параграфов, работы со шрифтами; средства вывода на печать и настройки цвета. Примерами графических редакторов этого класса являются Corel Draw, Adobe Illustrator, Aldus Free Hand, Professional Draw.
Системы управления базами данных (СУБД) используются для автоматизации процедур создания, хранения и извлечения электронных данных. Различаются способом организации данных, форматом, языком формирования запросов на операции с данными. типичными примерами являются MS Access, Oracle, Paradox.
Пакеты программ мультимедиа используются для отображения (воспроизведения) и обработки аудио- и видеоинформации. Включают, в частности, пакеты Director for Windows, Multimedia Viewer Kit, NEC MultiSpin.
Пакеты демонстрационной графики - это конструкторы графических образов деловой информации, призванные в наглядной и динамической форме представлять результаты некоторых аналитических исследований. последовательность работы с такими пакетами включает шаги: разработка общего плана представления, выбор шаблона для оформления элементов, формирование и импорт элементов (текст, графика, таблицы, диаграммы, звуковые эффекты, видеоклипы). Примеры таких пакетов: Power Point, Harvard Graphics, WordPerfect Presentations.
Офисные пакеты
Обеспечивают организационное управление деятельностью офиса. Включают:
Органайзеры используются для автоматизации процедур планирования использования различных ресурсов (времени, денег, материалов) как отдельного человека, так и всей фирмы или ее подразделений. Существуют 2 вида пакетов этого класса:
органайзеры для управления проектами. используются для сетевого планирования и управления проектами. Позволяют спланировать проект любой величины и сложности, эффективно распределить людские, финансовые и материальные ресурсы, составить оптимальный график работ и проконтролировать его исполнение. К ним относятся Time Line, MS Project, CА - Super Project;
органайзеры для организации деятельности отдельного человека. Это электронные секретари для эффективного управления деловыми контактами. Включают, в частности, Lotus Organizer, ACTI.
Программы для распознавания символов используются для перевода графических изображений букв и цифр в ASCII-коды этих символов. Применяются в сканерах. Примерами таких пакетов являются Fine Reader, Cunie Form, Tiger, Omni Page.
Настольные издательские системы
Применяются для профессиональной издательской деятельности. Позволяют осуществлять электронную верстку широкого спектра основных типов документов типа информационного бюллетеня, цветной брошюры, каталога, справочника. Позволяют решать задачи:
компоновать (верстать) текст;
использовать всевозможные шрифты и выполнять полиграфические изображения;
осуществлять редактирование текста на уровне лучших текстовых процессоров;
обрабатывать графические изображения;
выводить документы полиграфического качества;
работать в сетях на разных платформах.
Примерами таких пакетов являются: Corel Ventura, Page Maker, QuarkXPress, Frame Maker, MS Publisher, Page Plus, Compu Work Publisher.
Системы искусственного интеллекта
Этот класс пакетов включает: информационные системы, поддерживающие диалог на естественном языке (естественно-языковый интерфейс); экспертные системы, позволяющие давать рекомендации пользователю в различных ситуациях; интеллектуальные пакеты прикладных программ, позволяющие решать прикладные задачи без программирования.
Естественно-языковый интерфейс был наиболее привлекателен для общения с ЭВМ с момента ее появления. Это позволило бы исключить необходимость обучения конечного пользователя языку команд или другим приемам формулировки своих заданий для решения на компьютере, поскольку естественный язык является наиболее приемлемым средством общения для человека. Поэтому работы по созданию такого рода интерфейса начались с середины 20-го века. Однако, несмотря на весь энтузиазм исследователей и проектировщиков, эта задача не решена и по сей день из-за огромных сложностей, связанных с пониманием предложений естественного языка и связного текста в целом. Некоторые программные продукты, которые появлялись на рынке, носили скорее экспериментальный характер, имели множество ограничений и не решали задачу кардинально. Тем не менее, несмотря на кажущийся застой в этой сфере, данная проблема остается актуальной и по сей день и вошла в состав проблематики, связанной с проектом ЭВМ пятого поколения.
Экспертные системы впервые появились в области медицины. Возникла идея интеграции знаний экспертов в области медицины или ее отдельных разделов в некоторую электронную форму, которая позволила бы начинающему врачу иметь своеобразного электронного советника при принятии решений по тому или иному врачебному случаю. Выбор области медицины объясняется слишком большой ценой ошибок, которые касаются жизни и здоровья людей. Постепенно от области медицины эта технология распространилась и на другие сферы деятельности человека, например, производство. Технология использования экспертных систем предполагает первоначальное "обучение" системы, т.е. заполнение ее конкретными знаниями из той или иной проблемной области, а потом уже эксплуатацию наполненной знаниями экспертной системы для решения прикладных задач. Эта идеология проявила себя в проекте ЭВМ пятого поколения в части привлечения конечного пользователя к решению своих задач и связана с проблемой автоформализации знаний.
Интеллектуальные пакеты прикладных программ позволяют, аналогично экспертным системам, предварительно создавать базу знаний, включающую совокупность знаний из той или иной области деятельности человека, а затем решать практические задачи с привлечением этих знаний. Различие этих видов пакетов состоит в том, что экспертные системы, в отличие от интеллектуальных ППП, позволяют интегрировать знания из так называемых слабо формализуемых предметных областей, в которых сложно определить входные и выходные параметры задачи, а также невозможно сформировать четкий алгоритм ее решения. Кроме того, экспертные системы не формируют алгоритм решения задачи как в случае интеллектуальных ППП, а лишь выдают "советы" пользователю на основании его запроса