Преимущества и недостатки визуализации программного кода

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 30.04.2019
Размер файла 17,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Преимущества и недостатки визуализации программного кода

Казачков А.Д.

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

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

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

Практически любые попытки визуально представить и объяснить принцип работы третьему лицу программный код наталкиваются на потребность делать это с нескольких разных точек зрения. Предположим, если взять модель автомобиля в масштабе 1:43, то это даст возможность составить ясное представление о реальном продукте, в том числе и ребенку. Но вот с программным кодом сделать то же самое проблематично. Вот тут на помощь и приходит различные методы визуализации программного кода.

Один из наиболее востребованных в настоящее время способов визуализации и моделирования программ является UML. UML (англ. Unified Modeling Language -- унифицированный язык моделирования) -- язык визуального описания принципов работы программных продуктов. UML является языком широкого профиля, использующий графические обозначения для создания абстрактной модели системы, называемой UMLмоделью. UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.

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

прогрессивные инструментальные средства отчасти могут применяться, как правило, к довольно узким задачам: проектированию графического интерфейса, формированию структуры БД;

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

UML нередко критикуют за его громоздкость и трудность в понимании. Особенно эти претензии можно предъявить к ранним поколениям UML

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

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

Поэтому, несмотря на перечисленные недостатки UML, у него имеются и множество достоинств:

Объектно-ориентированность языка. Исходя из этого, методы описания сравнительно недалеки от современных объектно-ориентированных языков;

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

При наглядном и правильном оформлении диаграммы становятся просты и понятны обывателю;

UML гибок. Это означает, что язык имеет возможность добавления новых стандартов, что выводит его применение за пределы программной инженерии;

UML получил обширное распространение и постоянно развивается

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

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

Есть еще один архиважный в процессе разработки программных продуктов момент: сбор требований. Как говорит Брукс, "наиболее тяжелой частью создания системы программного обеспечения является решение о том, что вы собираетесь создавать. Никакая другая часть работы не может настолько навредить созданию системы, как эта, в том случае, если она неверна. Любую другую часть легче исправить, нежели эту." Так что для создания адекватной системы ПО необходима технология, которая может определить и создать систему, которая будет отвечать поставленным требованиям. Если такая система есть, то уже можно говорить о высоком опыте разработчиков, они точно знают что делают и их проект делает шаги к успеху.

Так как этапы анализа и проектирования независимо от модели ЖЦ считаются характеризующими при построении корпоративных информационных систем, в работе представлен анализ современных методик анализа и проектирования их применимости в разных типах проектов. Значимость этого изыскания обусловлена, с одной стороны, тем, что разработчики обыкновенно регламентируют собственные средства (подходы, нотации), как универсальные, а с иной, тем, что настоящая информация по методологии применения отсутствует.

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

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

Хочется отметить, что с развитием программного обеспечения повышается и сложность его разработки. Среднестатистическому человеку процесс создания программ разного уровня порой являет собой непостижимую тайну. Заказчики программных систем обычно и являются этими «обычными» людьми. Но, чтобы они могли донести все свои требования специалистам, которые возьмутся за создание ПО, клиент и исполнитель должны уметь разговаривать на одном языке. Таким языком и является UML. Да, в нем много недостатков, его часто критикуют, но никто не ставит под сомнение важность его существования. Все, что когда-либо было создано, имеет возможность совершенствоваться, идти в ногу с прогрессом. Возможно, уже в скором времени актуальность моей статьи будет исчерпана и про недостатки визуализации программного кода уже и нечего будет сказать. Сделать языки программирования намного ближе к естественным языкам - одна из главных задач современности, и UML в какой-то степени приближает нас к осуществлению этой задачи.

Библиографический список

визуализация программный код

Абрамова, О.Ф. CASE-технологии: изучать или исключить? / Абрамова О.Ф. // Alma mater (Вестник высшей школы). - 2012. - № 9. - C. 109-110.

IT-портал «Компьютерное обозрение» URL http:// ko.com.ua / vizualizaciya_programmnogo_koda_uvidet_nezrimoe_50261

Интернет энциклопедия «Википедия» URL http: // ru.wikipedia.org / wiki /

UML

Ресурс «OMG-Portal.ru» URL http://www.omg-portal.ru/articlematerial17

Портал «Аналитик» URL https: // sites.google.com / site/ infoprobusinessanalysis / project-definition/uml

Форум «Архитектура программного обеспечения» URL http: // rsdn.ru / forum / design/618143.flat

Силантьев, А.В. Использование компьютерной визуализации в процессе эволюции сложных программных систем [Электронный ресурс] / Силантьев А.В., Абрамова О.Ф. // Студенческий научный форум 2014 : докл. VI междунар. студ. электрон. науч. конф., 15 февр. - 31 марта 2014 г. Направл.: Технические

науки / РАЕ. - М., 2014. - C. 1-7. - Режим доступа : http://www.scienceforum.ru/2014/pdf/3774.pdf.

Лясин, Д.Н. Объектно-ориентированный анализ и программирование [Электронный ресурс] : учеб. пособие / Лясин Д.Н., Абрамова О.Ф.; ВПИ

(филиал) ВолгГТУ // Учебные пособия : сб. Вып. 1. - 1 электрон. опт. диск (CD-ROM). - Волгоград, 2014. - 98 с

Матрохин, А.Е. Проблемы процесса разработки программных систем [Электронный ресурс] / Матрохин А.Е., Абрамова О.Ф. // Студенческий научный форум 2014 : докл. VI междунар. студ. электрон. науч. конф., 15 февр. - 31 марта 2014 г. Направл.: Технические науки / РАЕ. - М., 2014. - C. 1-6. - Режим доступа : http://www.scienceforum.ru/2014/pdf/3414.pdf.

Размещено на Allbest.ru

...

Подобные документы

  • Характеристика UML как унифицированного графического языка моделирования для описания, визуализации, проектирования и документирования объектно-ориентированных систем. Диаграмма программного обеспечения, деятельности, последовательности и реализации UML.

    курсовая работа [439,9 K], добавлен 05.06.2014

  • Унифицированный язык моделирования (UML) как стандартный инструмент для создания "чертежей" программного обеспечения. Визуализирование, специфицирование, конструирование и документирование артефактов программных систем. Правила языка, диаграммы классов.

    курсовая работа [613,9 K], добавлен 24.11.2010

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

    дипломная работа [5,7 M], добавлен 29.06.2011

  • Особенности документирования программных средств, стадии разработки продуктов. Классификация обеспечивающего пакета документов. Сущность и основные недостатки Единой системы программной документации. Классификация стандартов, Гост 19.102-77 ЕСПД.

    презентация [64,8 K], добавлен 22.03.2014

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

    презентация [350,6 K], добавлен 09.11.2015

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

    дипломная работа [3,6 M], добавлен 10.06.2013

  • Характеристика программных продуктов Open Source: Umbrello - среды UML-моделирования на языке, Rational Rose - средства визуального моделирования объектно-ориентированных информационных систем. Описание и сравнение сайтов по созданию онлайн UML диаграмм.

    контрольная работа [1,5 M], добавлен 03.11.2013

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

    отчет по практике [2,0 M], добавлен 28.11.2022

  • Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.

    курсовая работа [974,0 K], добавлен 21.12.2016

  • Влияние качества программных продуктов на экономические характеристики производства, управление ими. Стандартизированные характеристики качества сложных программных продуктов. Гипотетические примеры определения требований к характеристикам качества.

    контрольная работа [22,4 K], добавлен 13.12.2014

  • Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.

    курсовая работа [962,8 K], добавлен 13.01.2016

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

    дипломная работа [5,0 M], добавлен 08.06.2017

  • Унифицированный язык моделирования UML. Проектирование и документирование программных систем. Листинги кода проектируемой программы, сгенерированные RationalRose. Модель информационной подсистемы для управления, учета, контроля и ведения библиотеки.

    курсовая работа [1,3 M], добавлен 22.06.2011

  • Создание программных комплексов для систем автоматизированного проектирования с системами объемного моделирования и экспресс-тестами. SolidWorks - мировой стандарт автоматизированного проектирования. Пользовательский интерфейс, визуализация модели.

    курсовая работа [3,2 M], добавлен 13.10.2012

  • Основные интегрированные информационные системы поддержки принятия решений. Обзор и сравнительный анализ программных продуктов инвестиционного проектирования. Программа управления проектами "MS Project". Примеры программных продуктов в ОАО "Криогенмаш".

    курсовая работа [776,0 K], добавлен 03.06.2014

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

    курсовая работа [46,8 K], добавлен 05.04.2009

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

    контрольная работа [24,5 K], добавлен 06.11.2013

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

    научная работа [355,5 K], добавлен 06.03.2009

  • Особенности разработки и реализации модулей двухмерной и трехмерной визуализации. Основные задачи трехмерного модуля управления. Анализ функций модуля управления ParamColorDrawer. Характерные особенности схемы функционирования программного средства.

    реферат [2,2 M], добавлен 07.03.2012

  • Использование CASE-средств для моделирования деловых процессов; совершенствование проектирования информационных систем с помощью программного пакета CA ERwin Modeling Suite: характеристики, возможности визуализации структуры данных и среды развертывания.

    реферат [970,5 K], добавлен 20.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.