Анализ и проектирование программного обеспечения включают все действия, которые помогают преобразовать спецификацию требований в реализацию. Спецификации требований определяют все функциональные и нефункциональные ожидания от программного обеспечения. Эти спецификации требований представлены в форме удобочитаемых и понятных документов, к которым компьютер не имеет никакого отношения.
Анализ и проектирование программного обеспечения — это промежуточный этап, который помогает преобразовать понятные человеку требования в реальный код.
Давайте рассмотрим несколько инструментов анализа и проектирования, используемых разработчиками программного обеспечения:
Диаграмма потока данных
Диаграмма потока данных — это графическое представление потока данных в информационной системе. Он способен отображать входящий поток данных, исходящий поток данных и сохраненные данные. В DFD ничего не говорится о том, как данные проходят через систему.
Существует заметная разница между DFD и блок-схемами. Блок-схема изображает поток управления в программных модулях. DFD отображают поток данных в системе на разных уровнях. DFD не содержит элементов управления или ветвления.
Типы ДФД
Диаграммы потоков данных являются либо логическими, либо физическими.
- Логический DFD — этот тип DFD концентрируется на системном процессе и потоке данных в системе. Например, в банковской системе программного обеспечения, как данные перемещаются между различными объектами.
- Физический DFD — этот тип DFD показывает, как поток данных фактически реализуется в системе. Это более конкретно и близко к реализации.
DFD Компоненты
DFD может представлять источник, место назначения, хранилище и поток данных, используя следующий набор компонентов:
- Объекты — объекты являются источником и местом назначения информационных данных. Сущности представлены прямоугольниками с соответствующими именами.
- Процесс — Действия и действия, предпринятые с данными, представлены прямоугольниками с круглыми или круглыми краями.
- Хранение данных. Существует два варианта хранения данных: оно может быть представлено в виде прямоугольника с отсутствием обеих меньших сторон или в виде прямоугольника с открытой стороной с отсутствующей только одной стороной.
- Поток данных — движение данных показано стрелками. Движение данных показано от основания стрелки в качестве источника к направлению стрелки в качестве пункта назначения.
Уровни DFD
- Уровень 0 — DFD самого высокого уровня абстракции известен как DFD уровня 0, который изображает всю информационную систему в виде одной диаграммы, скрывающей все базовые детали. DFD уровня 0 также известны как DFD контекста уровня.
- Уровень 1 — DFD уровня 0 подразделяется на более конкретный DFD уровня 1. Уровень 1 DFD отображает основные модули в системе и поток данных между различными модулями. Уровень 1 DFD также упоминает основные процессы и источники информации.
-
Уровень 2 — На этом уровне DFD показывает, как данные передаются внутри модулей, упомянутых на уровне 1.
DFD более высокого уровня могут быть преобразованы в более конкретные DFD более низкого уровня с более глубоким уровнем понимания, если не будет достигнут желаемый уровень спецификации.
Уровень 2 — На этом уровне DFD показывает, как данные передаются внутри модулей, упомянутых на уровне 1.
DFD более высокого уровня могут быть преобразованы в более конкретные DFD более низкого уровня с более глубоким уровнем понимания, если не будет достигнут желаемый уровень спецификации.
Структурные диаграммы
Структурная диаграмма — это диаграмма, полученная из диаграммы потока данных. Он представляет систему более подробно, чем DFD. Он разбивает всю систему на низшие функциональные модули, описывает функции и подфункции каждого модуля системы более подробно, чем DFD.
Структурная схема представляет собой иерархическую структуру модулей. На каждом слое выполняется определенная задача.
Вот символы, используемые при построении структурных схем —
- Модуль — представляет процесс, подпрограмму или задачу. Модуль управления разветвляется на несколько подмодулей. Библиотечные модули можно использовать повторно и вызывать из любого модуля.
- Состояние — он представлен маленьким бриллиантом у основания модуля. Он показывает, что модуль управления может выбирать любую подпрограмму на основании некоторого условия.
- Прыжок — внутри модуля показана стрелка, показывающая, что элемент управления будет прыгать в середине субмодуля.
- Петля — изогнутая стрелка представляет петлю в модуле. Все подмодули, охватываемые циклом, повторяют выполнение модуля.
- Поток данных — направленная стрелка с пустым кружком в конце представляет поток данных.
- Контрольный поток — направленная стрелка с заполненным кружком на конце представляет контрольный поток.
Диаграмма HIPO
Диаграмма HIPO (иерархический ввод-вывод) представляет собой комбинацию двух организованных методов для анализа системы и предоставления средств документирования. Модель HIPO была разработана IBM в 1970 году.
Диаграмма HIPO представляет иерархию модулей в программной системе. Аналитик использует диаграмму HIPO, чтобы получить общее представление о функциях системы. Он разбивает функции на подфункции в иерархическом порядке. Он изображает функции, выполняемые системой.
Диаграммы HIPO хороши для целей документирования. Их графическое представление позволяет дизайнерам и менеджерам получить наглядное представление о структуре системы.
В отличие от диаграммы IPO (Input Process Output), которая отображает поток управления и данные в модуле, HIPO не предоставляет никакой информации о потоке данных или потоке управления.
пример
Обе части диаграммы HIPO, иерархического представления и диаграммы IPO используются для проектирования структуры программного обеспечения, а также для документации по ним.
Структурированный английский
Большинство программистов не знают об общей картине программного обеспечения, поэтому они полагаются только на то, что им говорят их менеджеры. Ответственность за предоставление точной информации программистам для разработки точного, но быстрого кода лежит на высшем руководстве программного обеспечения.
Другие формы методов, которые используют графики или диаграммы, могут иногда по-разному интерпретироваться разными людьми.
Следовательно, аналитики и разработчики программного обеспечения придумывают такие инструменты, как структурированный английский. Это не что иное, как описание того, что требуется для кодирования и как его кодировать. Структурированный английский помогает программисту писать безошибочный код.
Другие формы методов, которые используют графики или диаграммы, могут иногда по-разному интерпретироваться разными людьми. Здесь и структурированный английский, и псевдокод пытаются устранить этот пробел в понимании.
Структурированный английский — это использует простые английские слова в парадигме структурированного программирования. Это не окончательный код, а своего рода описание того, что требуется для кодирования и как его кодировать. Ниже приведены некоторые токены структурного программирования.
IF-THEN-ELSE, DO-WHILE-UNTIL
Analyst использует ту же переменную и имя данных, которые хранятся в словаре данных, что значительно упрощает написание и понимание кода.
пример
Мы используем тот же пример аутентификации клиентов в среде онлайн-покупок. Эта процедура для аутентификации клиента может быть написана на структурированном английском языке как:
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 | |
действия | Проверьте сетевой кабель | Икс | |||||||
Проверьте интернет-роутер | Икс | Икс | Икс | Икс | |||||
Перезапустите веб-браузер | Икс | ||||||||
Связаться с поставщиком услуг | Икс | Икс | Икс | Икс | Икс | Икс | |||
Не делать никаких действий |
Модель сущности-отношения
Модель Entity-Relationship — это тип модели базы данных, основанный на понятии сущностей реального мира и взаимосвязи между ними. Мы можем отобразить сценарий реального мира на модель базы данных ER. Модель ER создает набор объектов с их атрибутами, набором ограничений и связей между ними.
Модель ER лучше всего использовать для концептуального проектирования базы данных. Модель ER может быть представлена следующим образом:
-
Сущность — Сущность в модели ER — это существо реального мира, которое имеет некоторые свойства, называемые атрибутами . Каждый атрибут определяется соответствующим набором значений, который называется доменом .
Например, рассмотрим школьную базу данных. Здесь студент — это сущность. Студент имеет различные атрибуты, такие как имя, идентификатор, возраст и класс и т. Д.
-
Отношения — логическая связь между сущностями называется отношениями . Отношения отображаются с сущностями различными способами. Кардинальности отображения определяют количество ассоциаций между двумя объектами.
Картирование кардинальности:
- один к одному
- один ко многим
- много к одному
- много ко многим
Сущность — Сущность в модели ER — это существо реального мира, которое имеет некоторые свойства, называемые атрибутами . Каждый атрибут определяется соответствующим набором значений, который называется доменом .
Например, рассмотрим школьную базу данных. Здесь студент — это сущность. Студент имеет различные атрибуты, такие как имя, идентификатор, возраст и класс и т. Д.
Отношения — логическая связь между сущностями называется отношениями . Отношения отображаются с сущностями различными способами. Кардинальности отображения определяют количество ассоциаций между двумя объектами.
Картирование кардинальности:
Словарь данных
Словарь данных — это централизованный сбор информации о данных. Он хранит значение и происхождение данных, их связь с другими данными, формат данных для использования и т. Д. Словарь данных содержит строгие определения всех имен для облегчения работы пользователей и разработчиков программного обеспечения.
Словарь данных часто упоминается как хранилище метаданных (данных о данных). Он создается вместе с моделью программного обеспечения DFD (Диаграмма потока данных) и, как ожидается, будет обновляться всякий раз, когда DFD изменяется или обновляется.
Требование к словарю данных
На данные ссылаются через словарь данных при проектировании и реализации программного обеспечения. Данные словарь устраняет любые шансы двусмысленности. Это помогает синхронизировать работу программистов и дизайнеров, используя одну и ту же ссылку на объект повсюду в программе.
Словарь данных предоставляет способ документирования для всей системы баз данных в одном месте. Валидация DFD проводится с использованием словаря данных.
содержание
Словарь данных должен содержать информацию о следующем
- Поток данных
- Структура данных
- Элементы данных
- Хранилища данных
- Обработка данных
Поток данных описывается с помощью DFD, как было изучено ранее, и представлен в алгебраической форме, как описано.
знак равно | Состоит из |
---|---|
{} | Репетиция |
() | Необязательный |
+ | А также |
[/] | Или же |
пример
Адрес = дом № + (улица / район) + город + штат
Идентификатор курса = номер курса + название курса + уровень курса + оценки курса
Элементы данных
Элементы данных состоят из имени и описания элементов данных и элементов управления, внутренних или внешних хранилищ данных и т. Д. Со следующими подробностями:
- Основное имя
- Вторичное имя (псевдоним)
- Вариант использования (как и где использовать)
- Описание содержимого (нотация и т. Д.)
- Дополнительная информация (предустановленные значения, ограничения и т. Д.)
Хранилище данных
Он хранит информацию, откуда данные поступают в систему и существуют вне системы. Хранилище данных может включать в себя —
- файлы
- Внутренний для программного обеспечения.
- Внешний по отношению к программному обеспечению, но на той же машине.
- Внешний по отношению к программному обеспечению и системе, расположенной на другой машине.
- таблицы
- Соглашение об именовании
- Индексирование свойства
Обработка данных
Существует два типа обработки данных: