
- •Лекция 1. Основные модели разработки по Определение технологии конструирования программного обеспечения
- •Классический жизненный цикл
- •Макетирование
- •Стратегии конструирования по
- •Инкрементная модель
- •Быстрая разработка приложений
- •Спиральная модель
- •Компонентно-ориентированная модель
- •Лекция 2. Анализ программных систем Структурный анализ
- •Диаграммы потоков данных
- •Описание потоков данных и процессов
- •Расширения для систем реального времени
- •Расширение возможностей управления
- •Методы анализа, ориентированные на структуры данных
- •Метод анализа Джексона. Методика Джексона.
- •Методика Джексона
- •Шаг объект-действие
- •Шаг объект-структура
- •Шаг начального моделирования
- •Лекция 3. Синтез программных систем Особенности процесса синтеза программных систем
- •Особенности этапа проектирования
- •Структурирование системы
- •Моделирование управления
- •Декомпозиция подсистем на модули
- •Модульность
- •Информационная закрытость
- •Связность модуля
- •Сцепление модулей
- •Сложность программной системы
- •Лекция 4. Классические методы проектирования
- •Метод структурного проектирования
- •Типы информационных потоков
- •Проектирование для потока данных типа «преобразование»
- •Диаграмма потоков данных пдд
- •Проектирование для потока данных типа «запрос»
- •Диаграмма потоков данных
- •Метод проектирования Джексона
- •Доопределение функций
- •Учет системного времени
- •Принципы объектно-ориентированного представления программных систем
- •Абстрагирование
- •Инкапсуляция
- •Модульность
- •Иерархическая организация
- •Лекция 5. Объекты. Классы. Отношения Объекты
- •Общая характеристика объектов
- •Виды отношений между объектами
- •Видимость объектов
- •Агрегация
- •Общая характеристика классов
- •Виды отношений между классами
- •Ассоциации классов
- •Наследование
- •Полиморфизм
- •Агрегация
- •Зависимость
- •Конкретизация
- •Лекция 6. Базис языка визуального моделирования
- •Унифицированный язык моделирования
- •Предметы в uml
- •Отношения в uml
- •Диаграммы в uml
- •Механизмы расширения в uml
- •Лекция 7. Статические модели объектно-ориентированных программных систем
- •Вершины в диаграммах классов
- •Свойства
- •Операции
- •Организация свойств и операций
- •Множественность
- •Отношения в диаграммах классов
- •Деревья наследования
- •Лекция 8. Динамические модели объектно-ориентированных программных систем
- •Моделирование поведения программной системы
- •Диаграммы схем состояний
- •Действия в состояниях
- •Условные переходы
- •Вложенные состояния
- •Диаграммы деятельности
- •Диаграммы взаимодействия
- •Диаграммы сотрудничества
- •Диаграммы последовательности
- •Лекция 9. Диаграммы use casEe
- •Актеры и элементы Use Case
- •Отношения в диаграммах Use Case
- •Работа с элементами Use Case
- •Пример диаграммы Use Case
- •Построение модели требований
- •Лекция 10. Кооперации и паттерны
- •Паттерн Наблюдатель
- •Паттерн Компоновщик
- •Бизнес-модели
- •Глава 11. Модели реализации объектно-ориентированных программных систем
- •Компонентные диаграммы
- •Компоненты
- •Интерфейсы
- •Компоновка системы
- •Разновидности компонентов
- •Использование компонентных диаграмм
- •Моделирование программного текста системы
- •Моделирование реализации системы
- •Лекция 12. Основы компонентной объектной модели
- •Организация интерфейса сом
- •Идентификация интерфейса
- •Описание интерфейса
- •Реализация интерфейса
- •Unknown — базовый интерфейс com
- •Серверы сом-объектов
- •Преимущества com
- •Работа с сом-объектами
- •Создание сом-объектов
- •IClassFactory :: Createlnstance (iid a); 2 — фабрика класса создает сом-объект и получает
- •Повторное использование сом-объектов
- •Маршалинг
- •Лекция 13. Современные визуальнЫе среды и case - средства
- •Общая характеристика case-системы Rational Rose
- •Создание диаграммы Use Case
- •Создание диаграммы последовательности
- •Создание диаграммы классов
- •Создание компонентной диаграммы
- •Генерация программного кода
- •Лекция 14. Особенности информационных банковских систем и технологий
- •Модульный принцип
- •Ядро системы - базовый модуль
- •Лекция 15. Принцип единства информационного пространства
- •Принцип безопасности
- •Принцип эффективности
- •Принцип взаимодействия
- •Лекция 16. Общие вопросы обеспечения технологии и систем
- •Рынок информационных банковских систем
- •Виды информационных банковских технологий
- •Операционные технологии
- •Документарные информационные технологии
- •Объектные информационные технологии
Методы анализа, ориентированные на структуры данных
Элементами проблемной области для любой системы являются потоки, процессы и структуры данных. При структурном анализе активно работают только с потоками данных и процессами.
Методы, ориентированные на структуры данных, обеспечивают:
1) определение ключевых информационных объектов и операций;
2) определение иерархической структуры данных;
3) компоновку структур данных из типовых конструкций — последовательности, выбора, повторения;
4) последовательность шагов для превращения иерархической структуры данных в структуру программы.
Наиболее известны два метода: метод Варнье-Орра и метод Джексона.
В методе Варнье-Орра для представления структур применяют диаграммы Варнье [54].
Для построения диаграмм Варнье используют 3 базовых элемента: последовательность, выбор, повторение (рис. 3.11) [74].
Рис. 3.11. Базовые элементы в диаграммах Варнье
Как показано на рис. 3.12, с помощью этих элементов можно строить информационные структуры с любым количеством уровней иерархии.
Рис. 3.12. Структура газеты в виде диаграммы Варнье
Как видим, для представления структуры газеты здесь используются три уровня иерархии.
Метод анализа Джексона. Методика Джексона.
Как и метод Варнье-Орра, метод Джексона появился в период революции структурного программирования. Фактически оба метода решали одинаковую задачу: распространить базовые структуры программирования (последовательность, выбор, повторение) на всю область конструирования сложных программных систем. Именно поэтому основные выразительные средства этих методов оказались так похожи друг на друга.
Методика Джексона
Метод Джексона (1975) включает 6 шагов [39]. Три шага выполняются на этапе анализа, а остальные — на этапе проектирования.
1. Объект-действие. Определяются объекты — источники или приемники информации и действия — события реального мира, воздействующие на объекты.
2. Объект-структура. Действия над объектами представляются диаграммами Джексона.
3. Начальное моделирование. Объекты и действия представляются как обрабатывающая модель. Определяются связи между моделью и реальным миром.
4. Доопределение функций. Выделяются и описываются сервисные функции.
5. Учет системного времени. Определяются и оцениваются характеристики планирования будущих процессов.
6. Реализация. Согласование с системной средой, разработка аппаратной платформы.
Шаг объект-действие
Начинается с определения проблемы на естественном языке.
Пример:
Разработать компьютерную систему для обслуживания университетских перевозок. Университет размещается на двух территориях. Для перемещения студентов используется один транспорт. Он перемещается между двумя фиксированными остановками. На каждой остановке имеется кнопка вызова.
При нажатии кнопки:
если транспорт на остановке, то студенты заходят в него и перемещаются на другую остановку;
если транспорт в пути, то студенты ждут прибытия на другую остановку, приема студентов и возврата на текущую остановку;
если транспорт на другой остановке, то он ее покидает, прибывает на текущую остановку и принимает студентов, нажавших кнопку.
Транспорт должен стоять на остановке до появления запроса на обслуживание.
Описание исследуется для выделения объектов. Производится грамматический разбор. Возможны следующие кандидаты в объекты: территория, студенты, транспорт, остановка, кнопка. У нас нет нужды прямо использовать территорию, студентов, остановку — все они лежат вне области модели и отвергаются как возможные объекты. Таким образом, мы выбираем объекты транспорт и кнопка.
Для выделения действий исследуются все глаголы описания.
Кандидатами действий являются: перемещаться, прибывает, нажимать, принимать, покидать. Мы отвергаем перемещаться, принимать потому, что они относятся к студентам, а студенты не выделены как объект. Мы выбираем действия: прибывает, нажимать, покидать.
Заметим, что при выделении объектов и действий возможны ошибки. Например, отвергнув студентов, мы лишились возможности исследовать загрузку транспорта. Впрочем, список объектов и действий может модифицироваться в ходе дальнейшего анализа.