Ожидания: 1. Знание подходов к разработке ПО, стадий жизненного цикла разработки ПО; 2. Знание понятий процесса системного анализа, структуры документов, используемых в системном анализе; 3. Знание правил построения интерфейсов: принципы, этапы разработки, критерии качества; 4. Опыт формирования функциональных требований к обменам между системами (контрактам). Опыт работы с ПО класса ESB: MQ, Rabbit, Kafka; 5. Опыт проведения тестирования разработанного функционала; 6. Умение строить SQL запросы. 1.1. Подходы к разработке ПО 1.1.1 каскадная модель или «водопад» последовательное прохождение стадий, каждая из которых должна завершиться полностью до начала следующей Когда использовать каскадную методологию? Только тогда, когда требования известны, понятны и зафиксированы. Противоречивых требований не имеется. Нет проблем с доступностью программистов нужной квалификации. В относительно небольших проектах. 1.1.2. «V-Model» «шаг за шагом» (аналогично водопаду) + тщательная проверка и тестирование продукта, находящегося уже на первоначальных стадиях проектирования Когда использовать V-модель? Если требуется тщательное тестирование продукта, то V-модель оправдает заложенную в себя идею: validation and verification. Для малых и средних проектов, где требования четко определены и фиксированы. В условиях доступности инженеров необходимой квалификации, особенно тестировщиков. 1.1.3. инкрементная модель несколько циклов разработки Когда использовать инкрементную модель? Когда основные требования к системе четко определены и понятны. В то же время некоторые детали могут дорабатываться с течением времени. Требуется ранний вывод продукта на рынок. Есть несколько рисковых фич или целей. 1.1.4. «RAD Model» (быстрая разработка приложений) Бизнес-моделирование -> Моделирование данных -> Моделирование процесса -> Сборка приложения -> Тестирование Когда используется RAD-модель? Бюджет проекта большой, RAD-модель может быть выбрана при уверенном знании целевого бизнеса и необходимости срочного производства системы в течение 2-3 месяцев. 1.1.5. «Agile Model» (гибкая методология разработки) Методология подходит для больших или нацеленных на длительный жизненный цикл проектов, постоянно адаптируемых к условиям рынка. Соответственно, в процессе реализации требования изменяются. Когда использовать Agile? Когда потребности пользователей постоянно меняются в динамическом бизнесе. Изменения на Agile реализуются за меньшую цену из-за частых инкрементов. В отличие от модели водопада, в гибкой модели для старта проекта достаточно лишь небольшого планирования. 1.1.6. итерационная модель похожа на инкрементную, НО в инкрементной модели функционал продукта наращивается по кусочкам, продукт составляется из частей, А в итерационной модели каждый кусочек представляет собой целостный элемент. Когда оптимально использовать итеративную модель? Требования к конечной системе заранее четко определены и понятны. Проект большой или очень большой. Основная задача должна быть определена, но детали реализации могут эволюционировать с течением времени. 1.1.7. спиральная модель «Спиральная модель» похожа на инкрементную, но с акцентом на анализ рисков. 1.2. Этапы ЖЦ разработки ПО сбор и анализ требований, проектирование, разработка, тестирование, внедрение, сопровождение. 2. Системный анализ Системный анализ обеспечивает строгий подход к технике принятия решений. Он используется для исследования альтернатив и включает моделирование и имитацию, анализ затрат, анализ технических рисков и анализ эффективности. Шаги системного анализа: Определение проблемы -> Анализ проблемы -> Разработать потенциальные решения -> Оценить потенциальные решения -> Реализовать решение 3. Интерфейсы Основные принципы проектирования интерфейсов: Сигнализировать о состоянии системы. Использовать опыт пользователя и силу привычки. Экономить усилия пользователя. Продумать пути выхода из сценария. Позволить пользователям настроить интерфейс для себя. Помнить о едины стандартах (нет многообразия форм) Предотвращать ошибки. Дозировать информацию.