- •Оглавление
- •1.1. Основные понятия
- •1.2. Жизненный цикл по
- •1.3. Модели жизненного цикла по
- •Каскадная модель жц:
- •Спиральная модель жц:
- •2. Методологии и технологии проектирования ис
- •2.1. Общие требования к методологии и технологии
- •2.2. Структура комплекта документов
- •2.3. Наиболее перспективные и приемлемые технологии разработки по
- •2.3.1. Технологии, базирующиеся на case–средствах Computer Associates
- •2.3.2. Технологии, базирующиеся на case–средствах ibm Rational
- •2.3.2.1. Краткая характеристика основных технологических программных продуктов ibm Rational
- •3. Методология функционального моделирования idef0
- •3.1. Концепция методологии функционального моделирования idef0
- •3.2. Основные определения (понятия) методологии и языка idef0
- •3.3. Синтаксис графического языка idef0
- •3.4. Семантика языка idef0
- •3.5. Имена и метки
- •3.6. Отношения блоков на диаграммах
- •3.7. Диаграммы idef0
- •3.8. Дочерняя диаграмма
- •3.9. Родительская диаграмма
- •3.10. Свойства диаграмм
- •3.10.1. Стрелки как ограничения
- •3.10.2. Параллельное функционирование
- •3.10.3. Ветвление и слияние сегментов стрелок
- •3.11. Создание диаграмм idef0 в среде AllFusionProcess Modeler
- •3.12. Диаграммы dfd
- •3.13. Пример проектирования функций подсистемы обработки и хранения данных
- •4. Idef3 – методология описания и моделирования процессов
- •4.1. Функциональный элемент
- •4.2. Элемент связи
- •4.2.1. Связи старшинства
- •4.2.2. Сдерживаемые связи старшинства
- •4.2.3. Относительные связи
- •4.2.4. Связь поток объектов
- •4.3. Перекресток
- •4.3.1. Типы перекрестков
- •4.3.2. Значения комбинаций перекрестков
- •4.4. Декомпозиция описания процесса
- •4.5. Примеры
- •5. Язык моделирования баз данных idef1x
- •5.1. Сущности
- •5.2. Связи и отношения
- •5.2.1. Мощность связей
- •5.3. Ключи
- •5.3.1 Внутренние и внешние ключи
- •5.3.2. Ссылочная целостность
- •5.4. Домены
- •5.5. Представления
- •5.6. Нормализация данных
- •5.7. Примеры построения диаграмм
- •5.8. Общие сведения о среде проектирования AllFusion Erwin Data Modeler
- •5.8.1. Построение логической модели
- •5.8.1.1. Диаграмма сущность – связь
- •5.8.1.2. Модель данных на основе ключа
- •5.8.1.3. Полная атрибутивная модель
- •5.8.2. Создание новой модели
- •5.8.3. Создание физического уровня базы данных на основе логического
- •5.8.4. Редактирование таблиц
- •5.8.5. Редактирование столбцов таблицы
- •5.8.6. Редактирование ключей и индексов таблицы
- •5.8.7. Редактирование связей таблиц
- •5.8.8. Сохранение модели базы данных
- •5.8.9. Генерация операторов для создания базы данных
- •5.8.10. Подготовка исходных данных для разработки новой версии бд
- •6. ЯзыкUml, модели по, объектно–ориентированный анализ и проектирование по.
- •6.1. Основные элементы языка uml
- •6.1.1. Сущности
- •6.1.2. Отношения
- •6.1.3. Диаграммы
- •6.2. Диаграмма вариантов использования как концептуальное представление бизнес–системы в процессе ее разработки
- •6.2.1. Базовые элементы диаграммы вариантов использования
- •6.2.2. Отношения на диаграмме вариантов использования
- •6.2.2.1. Отношение ассоциации
- •6.2.2.2. Отношение включения
- •6.2.2.3. Отношение расширения
- •6.2.2.4. Отношение обобщения
- •6.2.3. Дополнительные обозначения языка uml для бизнес–моделирования
- •6.2.4. Примеры use case и их реализация
- •6.3. Диаграммы последовательности
- •6.3.1. Сообщения на диаграмме последовательности
- •6.3.2. Ветвление потока управления
- •6.3.3. Пример диаграммы последовательности
- •6.4. Диаграмма кооперации
- •6.4.1. Объекты диаграммы кооперации и их графическое изображение
- •6.4.2. Кооперация объектов
- •6.4.3. Пример совместного использования диаграмм кооперации и последовательности
- •6.5. Сравнение диаграммы последовательности и диаграммы кооперации
- •6.6. Диаграммы состояний
- •6.6.1. Составное состояние и подсостояние
- •6.6.1.1. Последовательные подсостояния
- •6.6.1.2. Параллельные подсостояния
- •6.6.1.3. Несовместимые подсостояния
- •6.6.2. Исторические состояния
- •6.6.3. Сложные переходы и псевдосостояния
- •6.6.4. Состояние синхронизации
- •6.6.5. Рекомендации по построению диаграмм состояний
- •6.6.6. Примеры диаграмм состояний
- •6.7. Диаграммы деятельностей
- •6.7.1. Примеры диаграмм деятельностей
- •6.8. Классы
- •6.8.1. Области видимости и действия, кратность и иерархия классов
- •6.8.2. Отношения между классами
- •6.8.2.1. Отношение ассоциации
- •6.8.2.2. Отношение обобщения
- •6.8.2.3. Отношение агрегации
- •6.8.2.4. Отношение композиции
- •6.8.3. Примеры диаграмм классов
- •6.9. Компоненты
- •6.9.1. Виды компонентов
- •6.9.2. Отношения между компонентами
- •6.9.3. Компоненты и классы
- •6.9.4. Компоненты и интерфейсы
- •6.9.5. Варианты графического изображения компонентов
- •6.9.6. Пример диаграммы компонентов
- •6.10. Диаграмма развертывания
- •6.10.1. Узел диаграммы развертывания
- •6.10.2. Отношения между узлами диаграммы
- •6.10.3. Пример диаграммы развертывания
- •Литература
Министерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет
информатики и радиоэлектроники»
Кафедра информатики
Курс лекций по предмету
«МЕТОДЫ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ»
Для студентов специальности I-31 03 04 «Информатика» всех форм обучения
факультет компьютерных систем и сетей,
кафедра информатики
доцент кафедры информатики, к.ф.-м.н. – Пилецкий И.И.
Минск, 2007
Оглавление
ОГЛАВЛЕНИЕ 4
2. Методологии и технологии проектирования ИС 11
3. Методология функционального моделирования IDEF0 31
4. IDEF3 – методология описания и моделирования процессов 69
5. Язык моделирования баз данных IDEF1x 86
6. Язык UML, модели ПО, объектно–ориентированный анализ и проектирование ПО. 132
Литература 235
1. Введение в технологию разработки промышленного ПО
1.1. Основные понятия
Трудозатраты, связанные с созданием программного обеспечения (ПО) прямо связаны с качеством и сложностью создаваемого ПО. Так трудозатраты на создание программного продукта в три раза больше, чем обычной программы, а трудозатраты на создание простого приложения (редактор текстов), среднего уровня сложности (трансляторы) и высокого уровня сложности (операционные системы) возрастают еще в три раза.
Поэтому крайне важны используемые технологии для разработки промышленного программного продукта.
Технология ПО включает в себя такие понятия, как методы, инструменты, организационные мероприятия направленные на создания промышленного ПО.
Под технологией программирования понимают организованную совокупность методов, средств и их программного обеспечения, организационно–административных установлений, направленных на разработку, распространение и сопровождение программной продукции.
Создание ПО включает:
Существенные задачи – моделирование сложных концептуальных структур объектов реального мира большой сложности с помощью абстрактных программных объектов;
Второстепенные задачи – создание представлений этих абстрактных объектов в программе и описание их поведения.
И если 90% усилий разработчиков (затрат) связано не с существенными задачами, то сведя все затраты к нулю не получим роста в порядки (сравните с электроникой).
Если просмотреть историю, то все усилия были направлены на преодоление второстепенных задач.
Пути преодоления существенной сложности:
Массовый рынок (главное не скорость, а качество и сопровождение);
Лучший способ повысить производительность труда – купить;
Быстрое макетирование для установления технических требований к ПО;
Наращивать программы постепенно, добавляя функциональность (хорошо протестированную);
Хорошая команда.
Трудности создания ПО:
1. Внутренние, присущие ему (задание технических требований, проектирование и проверка):
Сложность – размеры, одинаковых нет, они не просто объединяются, масштабирование это непростое увеличение, это добавление новых элементов и связей, нелинейный рост сложности – сложность присуща (существенна) программным объектам и от нее абстрагироваться нельзя;
Согласованность – между людьми, между интерфейсами, которые появились не понятно, как и когда (10 и более лет);
Изменяемость – постоянно изменяются требования и применение ПО;
Незримость – ПО невидимо, различные графовые модели дают некоторое представление только с определенной точки зрения, но само ПО не плоское и его трудно передать такими моделями.
2. Сопутствующие, внутренне ему не присущие.
Движущей силой использования принципов программной инженерии было опасение крупных аварий, к которым могла привести (и привела) разработка все более сложных систем неуправляемыми художниками (не производительность в разы, хотя она и возросла от 3 до 5 раз)
Данные МО США по цене исправления одной ошибки следующие: обнаруженные и исправленные на стадии требований – 139$, на стадии кодирования – 1000$, на стадии тестирования – 7000$, на стадии внедрения – 14000$.