Метод моделирования программных объектов для облегчения процесса создания и сопровождения программных продуктов

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

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

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

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

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

Метод моделирования программных объектов для облегчения процесса создания и сопровождения программных продуктов

Литвиненко А.Н.

Сопровождение программ является самым важным и сложным этапом в жизненном цикле программной системы. Ключевым моментом в сопровождении являеется обеспечение быстрых и безболезненных модификаций. Модификации программы называются безболезненными, если после таких модификаций работоспособность программы сохраняется [1]. Безболезненность достигается, прежде всего, за счет повышения декларативности и сосредоточения в одном месте информации о программных объектах системы.

Моделирование программных объектов - это создание абстракций, помогающих программировать в терминах целей решаемых задач, а не в терминах используемого языка программирования. Под программным объектом понимается сложная, относительно самостоятельная компонента системы, обладающая заданными свойствами и предназначенная для решения определенной задачи. Например: экранные формы, меню, отчеты, удаленные представления (RemoteView в языке VisualFoxPro). Модель программного объекта - это высокоуровневое, декларативное описание, отображающее концептуальное представление разработчика об этом объекте. Наиболее удобной и адекватной формой такого описания является XML структура. Для использования модели в программе, необходимо создать соответствующий генератор - механизм, синтезирующий по спецификации модели выполняемый программный код. Разработанный подход можно представить в виде формулы:

[Модель программного объекта] + [генератор] = [ программный код]

Создание высокоуровневых моделей программных объектов согласуется с тенденцией повышения уровня языков программирования. Языки программирования навязывают свою собственную объектную модель и свой тип модульности, которые далеко не всегда адекватны логической модели задач, решаемых разработчиком. Работая с программой, разработчик строит свою собственную объектную модель как надстройку над моделью среды разработки. Эти и многие другие ограничения заставляют программиста думать как компьютер, вместо того чтобы научить компьютер понимать замыслы человека [6]. Это серьезные, закоренелые ограничения и преодолеть их будет непросто. Ключевая идея предлагаемого подхода заключается в том, что предлагается не ждать, когда выйдет очередная новая версия языка программирования, а повышать уровень имеющегося в наличии языка программирования. Причем повышать уровень не всего языка, а так называемыми «островками», создавая декларативные спецификации, отвечающие за реализацию часто встречающихся рутинных задач.

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

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

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

[XML модель]+[генератор]=[ XML модель]+[генератор]=[программ. код]

Алгоритм создания модели программного объекта:

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

2. Выделяется общая и специфичная части в интерфейсе и логике работы множества выделенных объектов.

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

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

Свойства модели программного объекта:

- Упрощённость. Использование модели объекта проще самого объекта, в том смысле, что программисту не нужно заботиться о «типичной» части объекта, которая принята за правило по умолчанию.

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

- Массовость. Модель программного объекта позволяет описать не один конкретный объект, а целый набор однотипных программных объектов.

- Повышенный уровень абстракции. Использование модели объекта предоставляет программисту более высокий уровень абстракции.

- Параметризованность, позволяющая использовать различные сложные автовычисления и умолчания.

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

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

Литература

1. Горбунов_Посадов М.М. Расширяемые программы // М.:Полиптих. - 1999.

2. Фуксман А.Л. Технологические аспекты создания программных систем // М.: Статистика, 1979. -- 184 с.

3. Чарнецки К., Айзенекер У. Порождающее программирование. Методы, инструменты, применение. Для профессионалов // СПБ.:Питер,2005. - 731 с.

4. Charles Simonyi. The Death Of Computer Languages, The Birth of Intentional Programming // Microsoft Corporation, Redmond. September 1995.

5. Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative Programming: Methods, Tools and Applications // Addison-Wesley, 2000. ISBN: 0201309777.

6. Sergey Dmitriev. Language Oriented Programming: The Next Programming Paradigm. http://www.onboard.jetbrains.com/is1/articles/04/10/lop/.

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


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

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

    дипломная работа [861,9 K], добавлен 27.11.2014

  • Особенности разработки программ для ЭВМ. Этапы планирования программы. Понятие и особенности алгоритмов. Средства, используемые для создания программ. Виды и классификация языков программирования. Структурное и объектно-ориентированное программирование.

    реферат [59,7 K], добавлен 19.08.2010

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

    доклад [33,5 K], добавлен 06.04.2015

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

    реферат [26,7 K], добавлен 10.10.2014

  • Проектирование напряженно-деформированного состояния объекта при граничных условиях. Разработка концептуальной модели и расчетной схемы объекта анализа. Выбор и краткое описание программных и технических средств. Интерпретация результатов моделирования.

    дипломная работа [439,8 K], добавлен 18.08.2009

  • Рассмотрение свойств Web-ресурса, позволяющих решить выбранную задачу. Выбор графического режима Web-ресурса. Выбор программных продуктов для создания программного кода. Меры по защите пользователя от вредных воздействий, связанных с работой на ПК.

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

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

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

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

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

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

    презентация [1,9 M], добавлен 01.05.2011

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

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

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