Инструменты анализа и проектирования программного обеспечения

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

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

Давайте посмотрим на несколько инструментов анализа и проектирования, используемых разработчиками программного обеспечения:

Диаграмма потока данных

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

Между DFD и Flowchart есть заметная разница. На блок-схеме показан поток управления в программных модулях. DFD отображают поток данных в системе на разных уровнях. DFD не содержит элементов управления или ответвлений.

Типы DFD

Диаграммы потоков данных могут быть логическими или физическими.

  • Logical DFD - Этот тип DFD концентрируется на системном процессе и потоке данных в системе. Например, в системе программного обеспечения для банковских операций, как данные перемещаются между различными объектами.
  • Physical DFD- Этот тип DFD показывает, как поток данных фактически реализован в системе. Он более конкретен и близок к реализации.

Компоненты DFD

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

  • Entities- Сущности являются источником и получателем информационных данных. Сущности представлены прямоугольниками с соответствующими именами.
  • Process - Действия и действия, предпринятые с данными, представлены прямоугольниками с круглыми или закругленными краями.
  • Data Storage - Существует два варианта хранения данных - он может быть представлен либо в виде прямоугольника с отсутствием обеих меньших сторон, либо в виде прямоугольника с открытыми сторонами, у которого отсутствует только одна сторона.
  • Data Flow- Движение данных показано заостренными стрелками. Движение данных показано от основания стрелки в качестве источника к головке стрелки в качестве пункта назначения.

Уровни DFD

  • Level 0- DFD самого высокого уровня абстракции известен как DFD уровня 0, который отображает всю информационную систему в виде одной диаграммы, скрывающей все лежащие в основе детали. DFD уровня 0 также известны как DFD уровня контекста.
  • Level 1- DFD уровня 0 подразделяется на более конкретные DFD уровня 1. Уровень 1 DFD отображает основные модули в системе и поток данных между различными модулями. Уровень 1 DFD также упоминает основные процессы и источники информации.
  • Level 2 - На этом уровне DFD показывает, как данные проходят внутри модулей, упомянутых на уровне 1.

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

Структурные диаграммы

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

Структурная диаграмма представляет собой иерархическую структуру модулей. На каждом уровне выполняется определенная задача.

Вот символы, используемые при построении структурных диаграмм -

  • Module- Он представляет процесс, подпрограмму или задачу. Модуль управления ответвляется на несколько субмодулей. Модули библиотеки можно использовать повторно и вызывать из любого модуля.
  • Condition- Он представлен маленьким ромбиком в основании модуля. Он показывает, что модуль управления может выбрать любую подпрограмму на основе некоторого условия.
  • Jump - Стрелка внутри модуля указывает на то, что элемент управления переместится в середину подмодуля.
  • Loop- Изогнутая стрелка представляет петлю в модуле. Все подмодули, охваченные циклом, повторяют выполнение модуля.
  • Data flow - Направленная стрелка с пустым кружком в конце представляет поток данных.
  • Control flow - Направленная стрелка с закрашенным кружком в конце представляет поток управления.

Схема HIPO

Диаграмма HIPO (Hierarchical Input Process Output) представляет собой комбинацию двух организованных методов анализа системы и предоставления средств документации. Модель HIPO была разработана IBM в 1970 году.

Диаграмма HIPO представляет собой иерархию модулей в программной системе. Аналитик использует диаграмму HIPO, чтобы получить общее представление о функциях системы. Он иерархически разделяет функции на подфункции. Он отображает функции, выполняемые системой.

Диаграммы HIPO хороши для целей документации. Их графическое представление позволяет дизайнерам и менеджерам получить наглядное представление о структуре системы.

В отличие от диаграммы IPO (входной процесс-выход), которая отображает поток управления и данных в модуле, HIPO не предоставляет никакой информации о потоке данных или потоке управления.

пример

Обе части диаграммы HIPO, иерархического представления и диаграммы IPO используются для проектирования структуры программного обеспечения, а также его документации.

Структурированный английский

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

Другие формы методов, в которых используются графики или диаграммы, могут иногда по-разному интерпретироваться разными людьми.

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

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

Структурированный английский язык - это простые английские слова в парадигме структурированного программирования. Это не окончательный код, а своего рода описание того, что требуется для кодирования и как его кодировать. Ниже приведены некоторые признаки структурного программирования.

IF-THEN-ELSE,  
DO-WHILE-UNTIL

Analyst использует те же переменные и имена данных, которые хранятся в Data Dictionary, что значительно упрощает написание и понимание кода.

пример

Мы возьмем тот же пример аутентификации клиентов в среде онлайн-покупок. Эта процедура аутентификации клиента может быть записана на структурированном английском языке как:

Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
   Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
   PRINT error message
   Call procedure NEW_CUSTOMER_REQUEST()
ENDIF

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

Псевдокод

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

Псевдокод избегает объявления переменных, но они написаны с использованием некоторых конструкций реального языка программирования, таких как C, Fortran, Pascal и т. Д.

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

пример

Программа для печати Фибоначчи до n чисел.

void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
   if a greater than b 
   {
      Increase b by a;
      Print b;
   } 
   else if b greater than a
   {
      increase a by b;
      print a;
   }
}

Таблицы решений

Таблица решений представляет условия и соответствующие действия, которые необходимо предпринять для их решения, в структурированном табличном формате.

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

Создание таблицы решений

Чтобы создать таблицу решений, разработчик должен выполнить четыре основных шага:

  • Определите все возможные условия, которые необходимо решить
  • Определите действия для всех выявленных условий
  • Создать максимально возможные правила
  • Определите действие для каждого правила

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

пример

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

Мы перечисляем все возможные проблемы в столбце «Условия» и предполагаемые действия в столбце «Действия».

Условия / Действия Правила
Условия Показывает подключен N N N N Y Y Y Y
Пинг работает N N Y Y N N Y Y
Открывает сайт Y N Y N Y N Y N
Действия Проверить сетевой кабель Икс
Проверить интернет-роутер Икс Икс Икс Икс
Перезапустите веб-браузер Икс
Связаться с поставщиком услуг Икс Икс Икс Икс Икс Икс
Не делать никаких действий
Таблица: Таблица решений - Устранение неполадок в Интернете собственными силами

Модель отношения сущность

Модель сущности-отношения - это тип модели базы данных, основанный на понятии сущностей реального мира и взаимосвязи между ними. Мы можем отобразить сценарий реального мира на модель базы данных ER. Модель ER создает набор сущностей с их атрибутами, набором ограничений и отношениями между ними.

ER-модель лучше всего использовать для концептуального проектирования базы данных. Модель ER может быть представлена ​​следующим образом:

  • Entity - Сущность в модели ER - это существо реального мира, которое имеет некоторые свойства, называемые attributes. Каждый атрибут определяется соответствующим набором значений, называемыхdomain.

    Например, рассмотрим школьную базу данных. Здесь студент - это сущность. У студента есть различные атрибуты, такие как имя, идентификатор, возраст, класс и т. Д.

  • Relationship - Логическая ассоциация между сущностями называется relationship. Отношения отображаются с сущностями различными способами. Кардинальность кардинальности определяет количество ассоциаций между двумя объектами.

    Отображение мощности:

    • один к одному
    • один ко многим
    • многие к одному
    • многие ко многим

Словарь с данными

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

Словарь данных часто упоминается как репозиторий метаданных (данных о данных). Он создается вместе с моделью программного обеспечения DFD (диаграмма потока данных) и, как ожидается, будет обновляться всякий раз, когда DFD изменяется или обновляется.

Требование словаря данных

На данные ссылаются через словарь данных при разработке и внедрении программного обеспечения. Словарь данных устраняет любую двусмысленность. Это помогает синхронизировать работу программистов и дизайнеров при использовании одинаковых ссылок на объекты повсюду в программе.

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

Содержание

Словарь данных должен содержать информацию о следующих

  • Поток данных
  • Структура данных
  • Элементы данных
  • Хранилища данных
  • Обработка данных

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

знак равно Состоит из
{} Повторение
() Необязательный
+ И
[/] Или же

пример

Адрес = Номер дома + (Улица / Район) + Город + Штат

Идентификатор курса = Номер курса + Название курса + Уровень курса + Оценки за курс

Элементы данных

Элементы данных состоят из имени и описаний данных и элементов управления, внутренних или внешних хранилищ данных и т. Д. Со следующими деталями:

  • Основное имя
  • Дополнительное имя (псевдоним)
  • Пример использования (как и где использовать)
  • Описание содержания (обозначения и т. Д.)
  • Дополнительная информация (предустановленные значения, ограничения и т. Д.)

Хранилище данных

Он хранит информацию, откуда данные поступают в систему и существуют вне системы. Хранилище данных может включать -

  • Files
    • Внутренний для программного обеспечения.
    • Внешний по отношению к программному обеспечению, но на той же машине.
    • Внешний по отношению к программному обеспечению и системе, расположенному на другом компьютере.
  • Tables
    • Соглашение об именовании
    • Свойство индексации

Обработка данных

Есть два типа обработки данных:

  • Logical: Как видит это пользователь
  • Physical: Как это видит программное обеспечение