- •1. Кризис программирования
- •2. Понятие жизненного цикла по
- •3. Требования к технологии проектирования
- •4. Понятия профессионального программирования
- •5. Проект и команда
- •6. Задача профессионального программирования
- •7. Алгоритмы
- •8. Модели и моделирование
- •9. Структурный подход
- •9.1. Проблема сложности
- •9.2. Сущность структурного подхода
- •9.3. Метод функционального моделирования (sadt)
- •9.3.1. Состав функциональных моделей
- •9.3.2. Методика построения модели
- •9.4. Метод моделирования процессов - потоков данных (dfd)
- •9.4.1. Общая концепция
- •9.4.2. Состав диаграмм потоков данных
- •13. Венгерская нотация
- •14. Методология и парадигма программирования
- •15. Современные методологии программирования
- •16. Методология императивного программирования
- •17. Методология объектно-ориентированного программирования
- •18. Методология функционального программирования
- •19. Методология логического программирования
- •20. Методология программирования в ограничениях
- •21. Методология структурного императивного программирования
- •22. Методология параллельного императивного программирования
- •23. Методология нейросетевого программирования
- •23.1. Модель нейрона с линейной функцией активации
- •23.2. Модель нейрона с радиальной функцией активации
- •23.3. Разработка нейросетевой модели
- •24. Основные типы ошибок в программах
- •25. Отладка и тестирование
- •26. Режимы работы компилятора Delphi для поиска ошибок
- •27. Задание режимов работы отладчика с помощью переключающих директив
- •28. Пользователи и их поддержка
- •29. Поддержка программиста: общие требования
- •29.1. Пролог модуля
- •29.2. Проектная документация
- •29.3. Оформление текста программы
- •30. Поддержка конечного пользователя
- •31. Технология программирования графики
- •31.1. Графическая подсистема оболочек Win32/64
- •31.2. Графические средства Delphi
- •31.3. Проектирование интерфейса с пользователем: компоненты стандартных диалогов
- •32.Технология компонентного программирования
- •32.1. Технология com
- •32.1.1. Общая концепция
- •32.1.2. Интерфейс com
- •32.1.3. Сервер com
- •32.2. Технология ole
- •32.2.1 Суть и содержание ole
- •32.2.2.Терминология ole
- •32.2.3. Автоматизация ole
- •32.2.4. Структурированная память
- •32.3. Технология corba
- •32.4. Технология Java
- •32.5.Технология .Net
- •33. Технология описания аппаратуры
- •Input clock, reset, en;
- •If(!reset)
- •34. Технология коллективной разработки
- •34.1. Авторская разработка
- •34.2. Коллективная разработка
- •34.2.1. Технические командные роли
- •34.2.2. Психологические командные роли
- •34.2.3. Типы совместной деятельности
- •34.3. Общинная модель разработки
- •35. Технология оценки качества по
- •35.1. Подходы к оценке качества по
- •35.2. Характеристики качества по
- •35.3. Оценка качества процесса разработки
- •35.3.1. Модель зрелости процесса разработки по
- •35.3.2. Определение возможностей и улучшение процесса создания по
- •35.4. «Достаточно хорошее» по
- •33.5. Стандартизация информационных технологий
- •Международные организации, входящие в структуру оон.
- •Промышленные профессиональные или административные организации.
- •Промышленные консорциумы.
- •36. Инструментальные средства поддержки некоторых технологических подходов
- •36.1. Инструментальные системы
- •36.1.1. Инструментальные среды программирования
- •36.1.2. Средства автоматизации разработки программ (case-средства)
- •36.1.3. Интегрированные среды
- •36.1.4. Репозитории проекта
- •36.2. Поддержка коллективной разработки: системы управления версиями
- •37. Организация диалогов
- •38. Защита программного кода
36.1.2. Средства автоматизации разработки программ (case-средства)
Средства автоматизации разработки программ – это инструментарий для системных аналитиков, разработчиков и программистов, позволяющий автоматизировать процесс проектирования и разработки ПО.
Первоначально под CASE-средствами понимались средства, применяемые на ранних процессах жизненного цикла: в первую очередь – на наиболее трудоемких процессах анализа и проектирования.
Сегодня CASE-средства трактуются как программные средства с мощными инструментами визуального моделирования, поддерживающие процессы жизненного цикла программного обеспечения.
Средства автоматизации разработки программ выделяются наличием следующих особенностей:
поддерживают единственную методологию;
ориентируются на определенную технологию;
предназначаются для команд, работающих над единственным проектом;
используются для разработки информационных систем;
разрабатываются одной компанией.
Примерами CASE-средств являются Oracle Designer, ERwin (Computer Associates International, Inc.), Rational Rose (Rational Software Corporation) и т. п.
36.1.3. Интегрированные среды
Интегрированная среда – совокупность программных инструментов, поддерживающая все процессы жизненного цикла программного обеспечения в рамках определенной технологии. Компонентами интегрированных сред являются:
инструменты управления процессами;
инструменты управления проектом;
инструменты конфигурационного управления;
инструменты верификации;
инструменты поддержки разработки документации.
Выделяют три уровня интеграции инструментов в интегрированных средах.
Интеграция инструментов – очень слабая. Обмен информацией между ними происходит, как правило, через интерфейсы экспорта и импорта.
Интеграция инструментов одной компании осуществляется на основе единого репозитория. Интеграция собственных инструментов с инструментами третьих фирм происходит по образцу предыдущего уровня.
Интеграция всех инструментов осуществляется с помощью общего репозитория. При этом любой инструмент любой компании может осуществлять взаимодействие через службы взаимодействия с репозиторием.
Особенности интегрированных сред:
поддерживают различные методологии;
определяют технологию разработки;
применяются командами, работающими вместе над несколькими проектами;
как правило, используются для разработки научных и инженерных приложений;
разрабатываются одной компанией, но имеется возможность интеграции с инструментами третьих фирм.
Примерами интегрированных сред являются WebSphere Studio WorkBench (IBM), CohesionWorX (Digital Equipment Corp.) и SorfBench (Hewlett-Packard).
36.1.4. Репозитории проекта
Репозиторий – хранилище информации, связанной с проектом разработки программного продукта в течение всего его жизненного цикла.
Большинство технологических подходов к разработке ПО предполагает работу с тремя основными типами информации – модельными спецификациями, интерфейсом прикладного программиста и окружением проекта. В соответствии с этими типами выделяют и три класса уровней репозиториев:
Модельный.
Программного интерфейса.
Окружения.
Уровень моделирования достаточно хорошо может быть описан универсальным языком UML. Данный язык является абстрактным, не привязанным к конкретной модели. Язык дает возможность описать зависимости элементов, иерархию, взаимосвязи, свойства и т. п.
Уровень программного интерфейса разумно описывать с помощью языка определения интерфейсов IDL, обеспечивающего независимость спецификации интерфейсов от их реализации. Уровень играет не только роль промежуточного слоя – его средства также поддерживают распределенное программирование.
Репозиторий окружения программного проекта предназначен для хранения информации, разделяемой компонентами и подкомпонентами систем программирования в процессе их работы. При этом основными группами и подгруппами полезной информации считаются следующие:
Языково-независимая группа:
информация для отладчика;
информация для анализатора исходных текстов.
Языково-зависимая группа:
информация для шаблонов;
коды встроенных функций;
виртуальные функции.
Группа контроля репозитория:
контроль информации о версиях;
контроль отношения к проекту;
тип параллельной обработки;
тип управления репозиторием;
проверка цифровой подписи.
Главными достоинствами применения репозиториев окружения являются:
эффективность работы с информацией;
использование информации для целей оптимизации;
распределенность (из которой следуют доступность, параллелизм и специализация);
модульность, включающая независимость от конкретных инструментов (например, компиляторов);
возможность работы с репозиторием как в архитектуре «клиент-сервер», так и в «связанном» с инструментом режиме.
Статистика отмечает, что около 80% ПО создается по уже имеющемуся. Следовательно, необходимо иметь электронную библиотеку, которая будет поддерживать архивы и интеллектуальный поиск нужных прототипов и фрагментов. Одним из наиболее известных репозиториев является Microsoft Repository.