Практическая реализация программного средства автоматизированного контроля точечных сварных соединений на основе рентгенографии

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

Архитектура программного обеспечения (англ, software architecture) — это структура программы или вычислительной системы, которая включает программные компоненты, видимые снаружи свойства этих компонентов, а также отношения между ними. Этот термин также относится к документированию архитектуры программного обеспечения. Документирование архитектуры программного обеспечения упрощает процесс коммуникации между заинтересованными лицами (англ, stakeholders), позволяет зафиксировать принятые на ранних этапах проектирования решения о высокоуровневом дизайне системы и позволяет использовать компоненты этого дизайна и шаблоны повторно в других проектах [3].

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

Применительно к вычислительным системам термин «архитектура» может быть определен как распределение функций, реализуемых системой, между ее уровнями, точнее как определение границ между этими уровнями. Таким образом, архитектура вычислительной системы предполагает многоуровневую организацию. Архитектура первого уровня определяет, какие функции по обработке данных выполняются системой в целом, а какие возлагаются на внешний мир (пользователей, операторов, администраторов баз данных и т.д.). Система взаимодействует с внешним миром через набор интерфейсов: языки (язык оператора, языки программирования, языки описания и манипулирования базой данных, язык управления заданиями) и системные программы (программы-утилиты, программы редактирования, сортировки, сохранения и восстановления информации).

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

Следующий уровень отражает основную линию разграничения системы, а именно границу между системным программным обеспечением и аппаратурой. Эту идею можно развить и дальше и говорить о распределении функций между отдельными частями физической системы. Например, некоторый интерфейс определяет, какие функции реализуют центральные процессоры, а какие - процессоры вво-да/вывода. Архитектура следующего уровня определяет разграничение функций между процессорами ввода/вывода и контроллерами внешних устройств. В свою очередь можно разграничить функции, реализуемые контроллерами и самими устройствами ввода/вывода (терминалами, модемами, накопителями на магнитных дисках и лентах). Архитектура таких уровней часто называется архитектурой физического ввода/вывода [76].

Концепция слоев — одна из общеупотребительных моделей, используемых разработчиками программного обеспечения для разделения сложных систем на более простые части. В архитектурах компьютерных систем, например, различают слои кода на языке программирования, функций операционной системы, драйверов устройств, наборов инструкций центрального процессора и внутренней логики микросхем [71].

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

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

Архитектура разработанного ПО, представленная в виде слоистой структуры

Рисунок 4.1 - Архитектура разработанного ПО, представленная в виде слоистой структуры

Модульный уровень состоит из отдельных функционально разделенных модулей приложения, а именно: модуль работы со сканером, предназначенный для получения рентгенограмм напрямую, модуль ручной обработки, предоставляющий инструментальные средства для обработки рентгенограмм «вручную», модуль автоматической обработки, включающий в себя алгоритмы автоматической обработки и модуль настроек, реализующий диалог с пользователем по настройке основных параметров программы.

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

Другой вариант представления архитектуры - UML-диаграмма компонентов программного продукта. Для представления физических сущностей в языке UML применяется специальный термин - компонент (component). Компонент реализует некоторый набор интерфейсов и служит для общего обозначения элементов физического представления модели. Для графического представления компонента используется специальный символ - прямоугольник со вставленными слева двумя более мелкими прямоугольниками. Внутри большого прямоугольника записывается имя компонента и, при необходимости, некоторая дополнительная информация. Изображение этого символа может незначительно варьироваться в зависимости от характера ассоциируемой с компонентом информации [30].

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

UML-диаграмма компонентов программного продукта разработанной системы представлена на рисунке 4.2.

UML-диаграмма компонентов программного продукта

Рисунок 4.2 - UML-диаграмма компонентов программного продукта

Модуль работы

I с принтером

Модуль

[ | Модуль

1 1 Модуль

1 роботы

~Т~ ручной

. 1 „ настроек

1—р-1 со сканером

1—J—1 обработки

Г~1

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

І I—J Выходные

і L-т—1 Файл

L-pJ Сегмент

1 р-Lj документы

! [—!—| настроек

? 1 1 1---------------------

^-^изображения

| Функция анализа

гистограммы

1 1 Абтоматизи-

! 1 Модуль

Л-Ллгоритм

1 L-pJ районная

! 1—pJ адтоматизи-

-г-1 анализа

; система

; ! робанной

Ч~^результатоб

1 обработки

1 др обработки

распозн-я

Алгоритм определения центра соединения

1 Алгоритм 1—[—1 определения

1 Алгоритм ^-г-^бычисления

Г~g геометрич-х

Г~*—1 перспект-го

др параметров

смещения

Г~~~1 Функция

Г~~| Функция

Г~~| Функция

получения

ИЗ групп

| обработки

чр сегмента

Ly-1 фильтров

—р1 по Лапласу

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >