- •1.2.Начало 70-х годов - “software crisis” (кризис по)
- •3.Категории современных проектов
- •4. Проблемы сегодняшнего дня
- •5. Экстремальные проекты
- •6. Сопровождение
- •7. Принципы оценки технологий (Agile Software Development)
- •8. Модель смм
- •9.Основные направления развития современных технологий
- •11.Жизненный цикл по. Процессы и модели
- •13. Процесс разработки по
- •14. Процесс управления конфигурацией (configuration management process) –
- •15. Процесс обеспечения качества (quality assurance process)
- •16. Модель жц по
- •17. Состав стадий полного жц по
- •18 Каскадная модель жц по (waterfall)
- •21.Подход rad (Rapid Application Development) – ibm, James Martin, середина 80-х годов
- •23А. Модели и их роль в создании систем
- •23. Графическое моделирование - средство преодоления сложности больших систем
- •24. Язык моделирования:
- •26. Диаграммы uml (версия 1.Х)
- •27. Технологии создания программного обеспечения
- •28. Технология Rational Unified Process (rup)
- •29. Стадии жизненного цикла по
- •30. Понятие бизнес-процесса
- •31.Области применения бизнес-моделей:
- •32.Многообразие средств моделирования
- •33.Метод sadt
- •34.Преимущества и недостатки idef0
- •35.Метод idef3
- •36.37.Моделирование потоков данных (процессов)
- •38.39.Erd (Entity-Relationship Diagrams) – диаграммы “сущность-связь”
23А. Модели и их роль в создании систем
Проблема сложности является главной проблемой, которую приходится решать при создании больших и сложных систем любой природы
«Cложность является самым существенным и неотъемлемым свойством программных систем»
Фредерик Брукс, руководитель проекта OS/360
Основные особенности крупных проектов-Техническая сложность
Структурная сложность (большое количество элементов и сложные взаимосвязи между ними)
отсутствие полных аналогов, ограничивающее возможность использования типовых проектных решений и прикладных систем
необходимость интеграции существующих и вновь разрабатываемых приложений
функционирование в неоднородной среде на нескольких аппаратных платформах
высокие требования к надежности и производительности
Сложность управления
сильное воздействие внешней среды (политика, экономическая ситуация, контракты, много заинтересованных лиц, противоречивые требования)
большой коллектив разработчиков, много различных проектов и продуктов
разобщенность и разнородность отдельных групп разработчиков по уровню квалификации и традициям использования инструментальных средств
значительная временная протяженность проекта
Главный способ преодоления сложности разработки больших систем - правильная декомпозиция
Правила декомпозиции -
Количество связей между отдельными подсистемами должно быть минимальным Связность отдельных частей внутри каждой подсистемы должна быть максимальной
Взаимодействия между подсистемами должны укладываться в ограниченные, стандартные рамки. Иначе говоря: Каждая подсистема должна инкапсулировать свое содержимое (скрывать его от других подсистем). Инкапсуляция позволяет рассматривать структуру каждой подсистемы независимо от других подсистем Каждая подсистема должна иметь четко определенный интерфейс с другими подсистемами. Интерфейсы позволяют строить систему более высокого уровня, рассматривая каждую подсистему как единое целое и игнорируя ее внутреннее устройство
Два основных подхода к разработке систем (способа декомпозиции):
функционально-модульный, или структурный Функциональная, или алгоритмическая декомпозиция: структура системы описывается в терминах иерархии ее функций и передачи информации между отдельными функциональными элементами, а поведение системы описывается в терминах последовательности выполнения процедур, реализующих алгоритмы функций
объектно-ориентированный Объектная декомпозиция: структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.
23. Графическое моделирование - средство преодоления сложности больших систем
Архитектура ПО
Набор ключевых правил, определяющих организацию программной системы:
совокупность структурных элементов системы и связей между ними;
поведение элементов системы в процессе их взаимодействия;
иерархия подсистем, объединяющих структурные элементы;
архитектурный стиль.
Модель - формализованное описание системы на определенном уровне абстракции
Модель определяет конкретный аспект системы, использует набор диаграмм и документов заданного формата, а также отражает точку зрения и является объектом деятельности различных людей с конкретными интересами, ролями или задачами
Моделирование - процесс создания точного описания системы в виде совокупности моделей
М есть модель системы S, если М может быть использована для получения ответов на вопросы относительно S с точностью А
Модели - средства для визуализации, описания, проектирования и документирования архитектуры системы
Гради Буч:
«Моделирование является центральным звеном всей деятельности по созданию качественного ПО. Модели строятся для того, чтобы понять и осмыслить структуру и поведение будущей системы, облегчить управление процессом ее создания и уменьшить возможный риск, а также документировать принимаемые проектные решения»