
- •Составные части технологии программирования (тп). Отличие тп от методологии программирования и программной инженерии.
- •Технология быстрой разработки приложений (rad). Основные принципы и особенности.
- •Иерархия понятий в технологии программирования.
- •Определение понятия «предметная область». В чем заключается принцип концептуализации предметной области.
- •Особенности современных программных систем как объектов разработки. Проблемы разработки сложных программных систем.
- •Общие принципы разработки сложных программных систем. Признаки сложных программных систем.
- •Показатели качества программных систем.
- •Основные подходы к созданию сложных программных систем (структурный и объектный).
- •Структурный подход к разработке программных систем.
- •2) Объектный подход к разработке программных систем.
- •Основные этапы жц: Требования к по.
- •Основные этапы жц: Проектирование по.
- •Основные этапы жц: Конструирование по.
- •Основные этапы жц: Тестирование по.
- •Основные этапы жц: Сопровождение по.
- •1. Технические вопросы:
- •Жизненный цикл (жц) программных систем: определение, стандарты и проблемы.
- •Основные процессы жизненного цикла по.
- •Модель жизненного цикла по: Каскадная модель разработки по.
- •Модель жизненного цикла по: Спиральная модель разработки по.
- •Другие типы моделей жизненного цикла (V-образная, инкрементная, быстрого прототипирования).
- •Модели организации команд: Административная модель. Модель хаоса. Модель открытой архитектуры.
- •Модель проектной группы msf for Agile Software Development: Основные принципы построения команды.
- •Модель проектной группы msf. Ролевые группы и роли.
Определение понятия «предметная область». В чем заключается принцип концептуализации предметной области.
Под предметной областью принято понимать ту часть реального мира, которая имеет существенное значение или непосредственное отношение к процессу функционирования программы. Другими словами, предметная область включает в себя только те объекты и взаимосвязи между ними, которые необходимы для описания требований и условий решения некоторой задачи.
концептуализации предметной области - выделения или идентификации компонентов предметной области. При этом под компонентом понимают некоторую абстрактную единицу, которая обладает функциональностью, т. е. может выполнять определенные действия, связанные с решением поставленных задач.
Особенности современных программных систем как объектов разработки. Проблемы разработки сложных программных систем.
В объектах программной инженерии (ПС) за последние годы произошли следующие коренные изменения:
Резко возросли масштабы и функциональная размерность ПС.
Высокая трудоёмкость разработки комплексов программ и БД.
Разработка П. системных комплексов на различных платформах, в частности для удаленных, которые требуют распределённого хранения и обработку.
Перенос ПО на моб. платформы.
Появление сети интернет и разработка веб сервисов и обработка данных по удаленному принципу.
Увеличение спектра показателя качества и рост требований к безопасности функционирования ПС и БД.
Перечисленные выше изменения объектов и проблемы обеспечения их ЖЦ вызвали ряд принципиальных изменений в методологии их создания и развития:
Появление методологии коллективной разработки, разделения труда
Применение автоматизированных методов и средств управления разработки
Появлением экономических методов анализа и рисков, связанных с разработкой ПС
Изменение моделей жизненного цикла разработки ПС
Стала применяться идеология открытых систем
Кросс-платформенные языки программирования, повышающие мобильность приложения.
Повысились требования к квалификации разработчиков всех уровней
Проблемы разработки сложных программных систем.
Сложность реальной предметной области.. К программам предъявляется множество различных, порой взаимоисключающих требований (часто не формулируемых явно), такие как удобство, производительность, стоимость, выживаемость и надежность.
Внешняя сложность у пользователей и разработчиков разные взгляды на сущность проблемы
Внутренние сложности возникают в результате изменений требований к ПС уже в процессе разработки
2, Трудности управления процессом разработки. Для создания современной ПС требуется привлечение команды разработчиков, в идеале как можно меньшей по численности. Таким образом, при коллективном выполнении проекта главной задачей руководства является поддержание единства и целостности разработки.
Гибкость программного обеспечения. Компании-разработчики стремятся к созданию библиотек компонентов, которые можно было бы использовать в дальнейших разработках. Однако в этом случае такие компоненты приходится делать все более универсальными и унифицированными (стандартизованными), что в конечном итоге увеличивает трудоемкость и сложность разработки.
Проблема описания поведения больших дискретных систем. Так как исполнение ПС осуществляется на цифровом компьютере, то любая ПС – это система с дискретными состояниями, в больших системах это число очень велико, т. к. внутри большой прикладной программы могут существовать сотни и даже тысячи переменных и несколько потоков управления.
Основной способ проектирования системы – когда она разделяется на части так, чтобы одна часть минимально воздействовала на другую. Однако каждое событие, внешнее по отношению к ПС, может перевести систему в новое состояние, и, более того, переход из одного состояния в другое не всегда детерминирован. В некоторых случаях внешнее событие может нарушить работу ПС, т.к. разработчики не предусмотрели его. Проблемой является то, что в распоряжении разработчиков нет возможностей для полного моделирования поведения больших дискретных систем. Язык UML хотя и решает большую часть проблем и является хорошим средством коммуникации в рамках проекта, но не все.