Двадцатая международная конференция «СОВРЕМЕННЫЕ ПРОБЛЕМЫ ДИСТАНЦИОННОГО ЗОНДИРОВАНИЯ ЗЕМЛИ ИЗ КОСМОСА (Физические основы, методы и технологии мониторинга окружающей среды, потенциально опасных явлений и объектов)»
XX.D.481
Декомпозиция, дизайн и архитектура программного обеспечения для спектрофотометра Брюэра
Савиных В.В. (1)
(1) Институт физики атмосферы имени А. М. Обухова РАН, Москва, Россия
Озон участвует во многих фотохимических реакциях и поглощает попадающее в стратосферу ультрафиолетовое (УФ) излучение. Спектрофотометры Брюэра измеряют спектральный состав солнечного излучения в коротковолновом УФ диапазоне (Kipp & Zonen, 2015). Для наблюдений на спектрофотометре Брюэра необходимо современное программное обеспечение (ПО) с легко поддерживаемым (maintainable) дизайном (Singer, 2021). В работе представлена поэтапная разработка ПО для накопления данных общего содержания озона и спектральной УФ радиации, полученных с помощью Брюэра. Рассмотрены основные требования или функциональные особенности (Wiegers, 2003), которым должно удовлетворять приложение для Брюэра, и элементы хорошего дизайна (модульность, инкапсуляция, связность и низкая связанность). Изложены принципы иерархической декомпозиции ПО и архитектурные паттерны (многоуровневая архитектура и модель–представление–контроллер, MVC), определяющие глобальную стратегию проектирования программной системы (Gamma et al., 1994). С помощью анализа потоков данных и сценариев использования (Booch et al., 2005) в рассматриваемой задаче для модулей верхнего уровня (стек данных, интерфейс пользователя и диспетчер команд) определены общедоступные интерфейсы. Детали реализации интерфейсов модулей демонстрирует код на объектно-ориентированном языке программирования C# (Albahari, 2022).
Для приложения Брюэра определены следующие требования: хранение данных, основанное на стеке; отмена и повторение операций; удаление элемента данных из стека и очистка всего стека; сохранение данных в файлах; наличие отказоустойчивости при неверном вводе пользователя и др. ПО Брюэра является модульным, т. е. проект разделен на более мелкие и поддающиеся решению компоненты. Благодаря инкапсуляции внутренняя реализация каждого модуля (структуры данных и алгоритмы) скрыта от других модулей, а взаимодействие между ними осуществляется через интерфейсы. Связность (cohesion) в приложении Брюэра означает, что код внутри модуля является самосогласованным и логически связан (не смешивает интерфейс пользователя с обработкой данных). Связанность (coupling) – это, когда логический поток одного модуля требует вызова другого для завершения своего действия. Низкая связанность в приложении Брюэра обеспечивается взаимодействием модулей только через чётко определённые интерфейсы. В ПО Брюэра реализован паттерн MVC (Wikipedia, 2022), в котором стек данных (модель) действует как репозиторий, данные репозитория отображаются в интерфейсе пользователя (представление), а диспетчер команд (контроллер) выполняет все операции с данными. Важно отметить, что представление отвечает только за принятие команд, а не за их интерпретацию или выполнение, не смешивая уровни представления и логики.
Работа выполнена в ходе исследования № 0129-2019-0002.
Ключевые слова: общее содержание озона, спектральная ультрафиолетовая радиация, спектрофотометр Брюэра, долгосрочные измерения, дизайн и архитектура программного обеспечения, язык программирования C#
Литература:
- Albahari J. C# 10 in a Nutshell: The Definitive Reference. Sebastopol: O’Reilly, 2022. 1058 p.
- Booch G., Rumbaugh J., Jacobson I. The Unified Modeling Language User Guide, 2nd Ed. Boston: Addison-Wesley, 2005. 475 p.
- Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Boston: Addison-Wesley, 1994. 416 p.
- Kipp & Zonen. Brewer MkIII Spectrophotometer Operator’s Manual, Rev F. Delft: Kipp & Zonen, 2015. 123 p.
- Singer A.B. Practical C++ Design: From Programming to Architecture. 2nd Ed. New York: Apress, 2021. 312 p.
- Wiegers K.E. Software Requirements. 3rd Ed. Redmond: Microsoft Press, 2003. 672 p.
- Wikipedia. Model–View–Controller // www.wikipedia.org. 20 October 2022. 8 p. https://en.wikipedia.org/wiki/Model–view–controller.
Презентация доклада
Дистанционные методы исследования атмосферных и климатических процессов
450