Процесс разработки по
Информационная система – совокупность программ, технических средств, данных и пользователей, организованная для достижения определенных целей.
Этапы разработки ПО:
Определение требований
Анализ (что делать)
Проектирование (как делать)
Реализация
Тестирование
Жизненные циклы ПО:
Каскадный (водопадный) метод
Проблемы: рост риска со временем (устранять ошибки слишком дорого) Водопадный подход имеет тенденцию к маскировке действительных рисков до тех пор, пока не будет слишком поздно
Итерационный метод – повторение водопадного процесса, реализация по частям
Преимущества:
установление рисков на более ранних этапах, когда их еще можно избежать
тесная обратная связь с клиентом и более точное соответствие требованиям
объективная оценка состояния проекта в любой момент
нагрузка возрастает постепенно
есть возможность постоянного обучения и совершенствования процесса
Итерационный метод с наложением – каждый отдел занимается своим этапом разработки
Стандарты
ISO 12207 – профиль жизненного цикла программных средств:
Системный анализ
обследование объекта информатизации (цели, программы, средства)
разработка системного проекта
Эскизное (предварительное) проектирование
выбор средств разработки
разработка предварительной архитектуры
разработка эскизного проекта
Техническое (детальное) проектирование
уточнение архитектуры
формализация требований к модулям системы
разработка технического проекта версии ПО
Кодирование
разработка исходных текстов
тестирование и отладка программы
разработка документации на компоненты ПО
Интеграция (сбор и запуск)
Испытание и документирование
тестирование программного средства в целом
разработка комплекта документов на программное средство
Сопровождение
RUP (Rational Unified Process) – все разбито на фазы:
Inception – начало (анализ)
Цели:
Понять границы проекта
Разработать экономическое обоснование
Добиться соглашения между заинтересованными сторонами
Веха: LCO (Lifestyle Objective Milestone) – веха целей жизненного цикла
Elaboration – проектирование
Цели:
Свести к минимуму главные технические риски
Создать базовую архитектуру
Понять, во что обойдется построение системы
Веха: LCA (Lifecycle Architecture Milestone) – веха архитектуры жизненного цикла
Construction – построение, реализация
Цели:
Построить первую рабочую версию продукта
Веха: IOC (Initial Operational Capability Milestone) – веха начальной функциональной готовности
Transition – внедрение (тестирование, развертывание, обучение, поддержка, …)
Цели:
Создать окончательную версию продукта и отправить ее заказчику
Веха: PR (Product Release Milestone) – веха готовности продукта
Каждая фаза может содержать несколько итераций
Объектно-ориентированные и структурные методы по
Основное отличие объектно-ориентированных методов от структурных – объектная декомпозиция в противоположность функциональной.
Структурные методы проектирования фокусируются на функциях системы: что она делает. Объектно-ориентированные методы фокусируются на данных (объектах) системы: что делают с ними.
Основные принципы объектно-ориентированного подхода:
Абстракция – выделение существенных характеристик некоторого объекта, отличающих его от всех других видов объектов
Инкапсуляция – отделение друг от друга элементов объекта, определяющих его внутреннее устройство и внешнее поведение
Модульность – разложение системы на внутренне связные, но слабо связанные между собой модули
Иерархия – упорядоченье абстракций, расположение их по уровням
Дополнительные принципы объектно-ориентированного подхода:
Типизация – способ защититься от использования объектов одного класса вместо другого или по крайней мере управлять таким использованием
Параллелизм – способность различных объектов действовать одновременно
Сохраняемость – способность объекта существовать во времени, переживая породивший его процесс или в пространстве, перемещаясь из своего первоначального адресного пространства
UML (Unified Moduling Language) – появился в результате унификации множества языков графического моделирования в 1997 году. Язык UML – это стандарт. Тем не менее, является рекомендацией, которую те, кто его применяет, выполняют на свое рассмотрение, по соглашению. Мы можем, например, добавлять на диаграммы свои символы и обозначения, если с этим согласны те, кто будет пользоваться этими диаграммами.
Используется в трех ситуациях:
Эскизирование – для обмена между разработчиками информацией о различных аспектах системы
Прямая разработка – построение максимально полной, детальной модели для программиста. Программист должен иметь возможность следовать ей прямо и не особо задумываясь
Обратная разработка – диаграммы строятся на основе кода, чтобы определить, как работает система