Программное обеспечение: от идеи до реализации

Системное проектирование
Содержание
  1. «RAD Model» (rapid application development model или быстрая разработка приложений)
  2. Архитектура определяет поведение
  3. Уровней
  4. Проектирование программного обеспечения: Уровень 1
  5. Проектирование программного обеспечения: Уровень 2
  6. Проектирование программного обеспечения: Уровень 3
  7. Проектирование программного обеспечения: Уровень 4
  8. Проектирование программного обеспечения: Уровень 5
  9. Проектирование программного обеспечения: Уровень 6
  10. Проектирование программного обеспечения: Уровень 7
  11. Архитектура может соответствовать некоторому архитектурному стилю
  12. Составление технического задания на программирование
  13. Этапы и результаты проектирования
  14. Среди прочего, вот ключевые преимущества разработки программного обеспечения:
  15. Помогает вам автоматизировать задачи
  16. Делает вас более эффективным
  17. Помогает вам решать проблемы
  18. Позволяет вам проявлять творческий подход
  19. Предлагает отличный способ узнать что-то новое
  20. Это сложно, но полезно
  21. Это выгодно
  22. Это всегда востребовано

«RAD Model» (rapid application development model или быстрая разработка приложений)

Модель быстрой разработки приложений включает следующие фазы:

  • Бизнес-моделирование: определение списка информационных потоков между различными подразделениями.
  • Моделирование данных: информация, собранная на предыдущем этапе, используется для определения объектов и иных сущностей, необходимых для циркуляции информации.
  • Моделирование процесса: информационные потоки связывают объекты для достижения целей разработки.
  • Сборка приложения: используются средства автоматической сборки для преобразования моделей системы автоматического проектирования в код.
  • Тестирование: тестируются новые компоненты и интерфейсы.

Когда используется RAD-модель?

Может использоваться только при наличии высококвалифицированных и узкоспециализированных архитекторов. Бюджет проекта большой, чтобы оплатить этих специалистов вместе со стоимостью готовых инструментов автоматизированной сборки. RAD-модель может быть выбрана при уверенном знании целевого бизнеса и необходимости срочного производства системы в течение 2-3 месяцев.

Архитектура определяет поведение

Наряду с определением структурных элементов любая архитектура определяет взаимодействия между этими структурными элементами. Это такие взаимодействия, которые обеспечивают желаемое поведение системы. На рисунке 2 представлена диаграмма сценария UML, которая показывает несколько взаимодействий, которые в сумме позволяют системе поддерживать создание заказа в системе обработки заказов. Мы видим здесь пять взаимодействий. Сначала, деятель Sales Clerk создает заказ при помощи экземпляра класса OrderEntry. Экземпляр класса OrderEntry получает сведения о клиенте при помощи экземпляра класса CustomerManagement. Затем экземпляр класса OrderEntry использует экземпляр класса AccountManagement для того, чтобы создать заказ, внести в него элементы заказа, а затем разместить заказ.

Рисунок 2: диаграмма сценария UML, показывающая элементы поведения

Следует отметить, что рисунок два согласуется с рисунком 1 так, что мы можем извлечь зависимости, показанные на рисунке 1, из взаимодействий, определенных на рисунке 2. Например, экземпляр класса OrderEntry в процессе выполнения зависит от экземляра класса CustomerManagement, как показывают взаимодействия на рисунке 2. Эта зависимость отражается в отношении зависимости между соответствующими классами OrderEntry и CustomerManagement, как показано на рисунке 1.

Уровней

Определяются на следующих уровнях: 2 3 4 5 6

Проектирование программного обеспечения:
Уровень 1

Проектирование программного обеспечения:
Уровень 2

Создает и документирует подробные проекты для простых программных приложений или компонентов, применяя согласованные методы моделирования, стандарты, шаблоны и инструменты. Участвует в разработке компонентов более крупных программных систем. Рецензирует собственные работы.

Проектирование программного обеспечения:
Уровень 3

Осуществляет полное проектирование умеренно сложных программных приложений или компонентов с применением согласованных стандартов, шаблонов и инструментов. Помогает в составе команды в разработке компонентов более крупных программных систем. Задает пользовательские и/или системные интерфейсы. Создает несколько представлений проекта для решения проблем различных заинтересованных сторон проекта и для обработки отдельно функциональных и нефункциональных требований. Помогает в оценке вариантов и компромиссов. При необходимости сотрудничает в проверке работы с другими.

Проектирование программного обеспечения:
Уровень 4

Разрабатывает программные компоненты и модули, используя соответствующие методы моделирования, в соответствии с согласованными стандартами, шаблонами и методологией проектирования программного обеспечения. Создает и передает несколько представлений проектирования, чтобы выявить и уравновесить интересы всех заинтересованных сторон при разработке программного обеспечения и учесть как функциональные, так и нефункциональные требования. Определяет и оценивает альтернативные варианты проектирования и компромиссы. Рекомендует проекты, которые учитывают целевую среду, требования безопасности производительности и существующие системы. Проверяет и улучшает собственные разработки в соответствии со спецификациями. Проводит обзоры результатов проектирования. Моделирует, имитирует или прототипирует поведение предлагаемого программного обеспечения для утверждения заинтересованными сторонами и эффективного построения программного обеспечения. Проверяет проектирование программного обеспечения, создавая и применяя соответствующие методы.

Проектирование программного обеспечения:
Уровень 5

Выбирает, принимает и адаптирует соответствующие методы, инструменты и способы проектирования программного обеспечения; правильный выбор из прогнозных (плановых) подходов или адаптивных (итерационных/гибких) подходов. Определяет и проектирует крупные или сложные программные компоненты. Проводит анализ воздействия на основные варианты проектирования, дает рекомендации, оценивает связанные с ними риски и управляет ими. Определяет прототипы/модели для принятия обоснованных решений. Оценивает качество разработок других систем для обеспечения соблюдения стандартов и определяет корректирующие действия, если это необходимо. Обеспечивает баланс функциональных требований, требований к качеству, безопасности и системному менеджменту при проектировании системы. Участвует в разработке организационных политик и стандартов проектирования и архитектуры программного обеспечения.

Проектирование программного обеспечения:
Уровень 6

Руководит выбором и разработкой подходящих методов, инструментов, способов проектирования программного обеспечения; будь то прогнозный (плановый) подход или более адаптивный (итеративный/гибкий) подход. Разрабатывает организационные политики, стандарты и руководства для проектирования программного обеспечения и программных архитектур. Обеспечивает соблюдение технических стратегий и системных архитектур (включая безопасность).

Проектирование программного обеспечения:
Уровень 7

Архитектура может соответствовать некоторому архитектурному стилю

Большинство архитектур построены на основе систем, которые используют сходные наборы интересов. Сходство может быть определено как архитектурный стиль, который можно рассматривать как особый вид шаблона, хотя этот шаблон часто является сложным и составным (когда одновременно применяются несколько шаблонов). Как и шаблон, архитектурный стиль представляет собой кодификацию опыта, и для разработчиков архитектур было бы неплохо ждать случая, чтобы снова использовать этот опыт. Примеры архитектурных стилей включают распределенный стиль, стиль «каналы и фильтры», стиль с централизованной обработкой данных, стиль, построенный на правилах и так далее. Конкретная система может демонстрировать более одного архитектурного стиля. Вот как описывают архитектурный стиль Шоу и Гарлан (Show and Garlan):

Еще одно определение в терминах UML:

Кроме повторного использования опыта, применение архитектурного стиля (или шаблона) несколько облегчает жизнь разработчиков, поскольку стиль обычно документирован в терминах рационального обоснования его использования (следовательно, меньше придется обдумывать) и в терминах его структуры и поведения (следовательно, придется выработать меньше документации по архитектуре, поскольку вместо этого мы может просто обратиться к стилю).

Составление технического задания на программирование

Этап анализа и спецификации программ, жизненного цикла программных продуктов. При составлении технического задания требуется:

  • определить платформу разрабатываемой программы – тип операционной системы;
  • определить необходимость разработки программы, которую можно переносить на различные платформы;
  • выбрать методы решения задачи;
  • разработать обобщенный алгоритм решения комплекса задач, функциональную структуру алгоритма или состав объектов;
  • определить требования к комплексу технических средств системы обработки информации, интерфейсу конечного пользователя.

Этапы и результаты проектирования

  1. Описание: совместная работа заказчика (говорит о пользе продукта, требованиях к работоспособности и внешнему виду) и EDISON (предлагает технические и алгоритмические решения).
  2. Архитектура: утверждается язык программирования, база данных, серверы и фреймворки.
  3. Техническое задание: составляется архитектором на основании описания и ответов заказчика на вопросы, согласовывается с менеджером проекта, затем передается клиенту, производятся правки.
  4. Макеты (добавляются к техзаданию): интерфейсов, принципиальные схемы устройства, диаграммы структуры базы данных, схемы взаимодействия компонентов.
  5. Контроль: архитектор устраняет замечания менеджера проектов.
  6. Утверждение: заказчик проверяет и меняет ТЗ самостоятельно или сообщает список правок проект-менеджеру, замечания устраняются, ТЗ утверждается и прилагается к контракту.
  1. Что делаем (описание продукта, функционала, пользователей)?
  2. Как делаем (архитектура)?
  3. Как проверить, что цель достигнута (тестирование, критерии оценки)?

бесплатной оценке проекта

Среди прочего, вот ключевые преимущества разработки программного обеспечения:

Помогает вам автоматизировать задачи

Если вы тот, кто всегда делает одно и то же снова и снова, разработка программного обеспечения может помочь вам автоматизировать эти задачи, чтобы вы могли сосредоточиться на других вещах.

Например, если вы сотрудник по вводу данных, вы можете разработать сценарий, который будет автоматически заполнять за вас формы.

Делает вас более эффективным

В общем, разработка программного обеспечения делает вас более эффективными во всем, что вы пытаетесь сделать.

Если вы веб-разработчик, вы можете разработать инструменты, которые упростят создание веб-сайтов. Точно так же, если вы графический дизайнер, вы можете разработать инструменты, которые помогут вам создавать лучшую графику.

Помогает вам решать проблемы

Одна из лучших особенностей разработки программного обеспечения — это то, что она помогает решать проблемы.

Если у вас возникли проблемы с определенной задачей, скорее всего, существует инструмент, который поможет вам выполнить ее лучше или быстрее. А если нет, то вы всегда можете создать свой!

Позволяет вам проявлять творческий подход

Разработка программного обеспечения — отличный способ проявить творческий подход. Вы можете выразить себя способами, которые ограничены только вашим воображением. А если вы застрянете, есть множество ресурсов, которые помогут вам.

Предлагает отличный способ узнать что-то новое

Если вы ищете способ узнать что-то новое, разработка программного обеспечения — отличный вариант. Всегда есть новые языки и фреймворки для изучения, и сообщество всегда радо помочь новичкам.

Это сложно, но полезно

Разработка программного обеспечения может быть сложной задачей, но она также очень полезна. Видеть, как твой код оживает, и знать, что он помогает людям, — это прекрасное чувство.

А когда вы, наконец, решите эту сложную проблему, станет еще лучше!

Это выгодно

Если вы хорошо разбираетесь в разработке программного обеспечения, есть большая вероятность, что вы сможете заработать на этом немного денег.

Для разработчиков существует множество возможностей, будь то фриланс или работа в компании. И если вы создадите что-то великолепное, всегда есть возможность продать это!

Это всегда востребовано

Сейчас существует огромный спрос на разработчиков программного обеспечения. Компании постоянно ищут талантливых разработчиков, которые помогут им построить следующую большую задачу.

Оцените статью