Метод моделирования программных объектов для облегчения процесса создания и сопровождения программных продуктов
Мотивация использования высокоуровневых языковых расширений. Особенности и описание модели автоматизируемого программного объекта. Алгоритм создания модели программного объекта, характеристика его основных свойств. Процесс разработки семейства программ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 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