автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Разработка метода проектирования модифицируемых СУБД-приложений
Оглавление автор диссертации — кандидата технических наук Салтыкова, Наталья Николаевна
Введение.
Глава 1 Средства и технологии проектирования СУБД-приложений, облегчающие разработку и сопровождение.
1.1 Развитие технологии разработки и сопровождения программных систем
1.2 Теоретические основы метода безболезненной модификации.
1.2.1 Технология вертикального слоения А.Л. Фуксмана.
1.2.2 "Однородные конструкции" и стратегия программирования "вширь" М.М. Горбунова-Посадова.
1.2.3 Безболезненные модификации М.М. Горбунова-Посадова. Модификации "вширь" и "вглубь".
1.2.4 Спецификация приложения. Автоматическое генерирование приложения по спецификации.
1.2.5 Принцип единственности определяющих вхождений.
1.3 Современные аналоги основных составляющих предлагаемого метода.
1.3.1 Автоматическое генерирование кода по формальной спецификации.
1.3.1.1 CASE-средства, поддерживающие спецификации на языке UML.
1.3.1.2 Язык разметки пользовательского интерфейса UIML.
1.3.2 Событийное программирование.
1.3.2.1 Обработка исключительных ситуаций в Windows ХР.
1.3.2.2 Механизм событий EJB (Enterprise JavaBeans).
1.3.3 Подключаемые (plug-in) модули.
Выводы.
Глава 2 Фундаментальные принципы метода проектирования модифицируемых СУБД-приложений.
2.1 Краткая характеристика метода.
2.2 Модульная архитектура приложения в виде горизонтальных и вертикальных слоев.
2.3 Однородные пространства.
2.4 Спецификации.
2.5 События приложения.
2.6 Вертикальные слои - модули изменений, plug-in модули.
Выводы.
Глава 3 Основные составляющие метода проектирования безболезненно модифицируемых СУБД-приложений.
3.1 Спецификация СУБД-приложения.
3.1.1 Определение и свойства спецификации.
3.1.2 Роль спецификации в рассматриваемой технологии.
3.1.2.1 Спецификация как средство реализации принципа единственности определяющих вхождений.
3.1.2.2 Спецификация - хранилище однородных элементов.
3.2 Аппарат работы с событиями приложения.
3.2.1 Схема работы приложения на основе событий.
3.2.1.1 Точки присоединения.
3.2.1.2 Генерация событий. Регистрация обработчиков событий.
3.2.2 Роль событийного аппарата в рассматриваемом методе.
3.3 Подключаемые модули.
Выводы.
Глава 4 Реализация метода проектирования безболезненно-модифицируемых СУБД-приложений в технологии ASP.
4.1 Описание структуры и состава "типового" СУБД-приложения.
4.2 Особенности реализации событийного аппарата в ASP.
4.3 Реализация спецификаций.
Выводы.
Глава 5 Практическое применение метода - ИИС Нижнего Дона.
Выводы.
Введение 2002 год, диссертация по информатике, вычислительной технике и управлению, Салтыкова, Наталья Николаевна
На протяжении последних десятилетий по мере повышения мощности компьютеров увеличивается и сложность решаемых с их помощью задач, что в свою очередь приводит к возрастанию объемов и сложности программного обеспечения. Это ещё больше актуализирует вопросы технологии проектирования и разработки программных систем, в рамках которой рассматривается целый комплекс вопросов, связанных с решением двух основных проблем в производстве программного обеспечения: его высокой стоимостью и низким качеством. Решение проблемы стоимости обычно сводится к поиску инструментов и методов, позволяющих повысить производительность труда программиста. На это направлены такие технологии, как RAD (Rapid Application Development), CASE (Computer Aided Software Engineering) и др. Вопросам качества также уделяется серьезное внимание, о чем свидетельствует большое количество публикаций, посвященных этому вопросу [1, 2, 3-9]. Как отмечается в этих источниках, одним из наиболее важных критериев качества программы, наряду с корректностью и надежностью, является сопровождаемость (гибкость, адаптируемость, универсальность).
Сопровождаемость - это совокупность характеристик программной системы, которые позволяют минимизировать усилия по внесению изменений для устранения в ней ошибок и по её модификации в соответствии с изменяющимися потребностями пользователей [10]. От того, обладает ли программная система этим свойством, (и в какой степени) зависит удобство её сопровождения, расходы на обслуживание и, в конечном счете, её срок жизни. Предлагаемые в диссертационной работе решения направлены на облегчение сопровождения программных систем, а именно, на обеспечение безболезненных [11] модификаций системы в течение всего её жизненного цикла.
Актуальность проблемы сопровождения и модификации программ.
Под жизненным циклом программной системы (ПС) {software life cycle) понимают весь период её разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и заканчивая прекращением всех видов её использования [4, 10, 12]. Обычно в жизненном цикле программных систем выделяют следующие этапы [3-6]:
- проектирование (куда входит анализ требований к системе, определение спецификаций и собственно проектирование),
- программирование (кодирование),
- тестирование,
- сопровождение.
По длительности жизненного цикла все ПС можно разделить на два класса: с малым и большим временем эксплуатации [6].
Программы с малой длительностью эксплуатации создаются, в основном, для решения научных и инженерных задач, для получения конкретных результатов вычисления. Такие программы обычно относительно невелики, разрабатываются одним специалистом или небольшой группой, они не предназначены для тиражирования и передачи для последующего использования в другие коллективы. По существу, такие программы являются частью научно-исследовательской работы и не могут рассматриваться в качестве товарной продукции. Их жизненный цикл включает длительные периоды системного анализа и формализации проблемы, достаточно длительный этап проектирования и относительно небольшое время эксплуатации и получения результатов. Сопровождение и модификация таких программ не так актуальны, их жизненный цикл составляет несколько лет и завершается после получения результатов вычислений.
Программы с большой длительностью эксплуатации создаются для регулярной обработки информации. Они допускают тиражирование, использование различными специалистами и могут реализовываться на рынке программных продуктов. Размеры их изменяются в широком диапазоне, способы проектирования их могут быть различными, но все они должны обладать возможностью модификации в процессе длительного сопровождения. Жизненный цикл таких ПС может составлять 10-20 лет, из которых 70-90 % приходятся на эксплуатацию и сопровождение.
Таким образом, если исключить из рассмотрения программы с малой длительностью эксплуатации, то можно сказать, что на этап сопровождения программного обеспечения приходится львиная доля всех его затрат. По оценкам Г. Майерса и М. Зелковица [3,4], денежные и временные затраты на программное обеспечение в течение всего его жизненного цикла распределяются, как правило, таким образом, что на этап сопровождения приходится от 50 до 75% всех затрат.
Всё это говорит о том, что сопровождение является очень важным этапом в жизненном цикле программных систем и, безусловно, заслуживает внимания разработчиков.
Что же представляет собой этап сопровождения, и каковы его основные задачи? Сопровождение {maintenance) программного средства -это его эксплуатационное обслуживание, в процессе которого устраняются обнаруженные в нем ошибки, и производится его доработка и модификация, в том числе и развитие его функциональных возможностей.
Свойство программы допускать различные модификации является чрезвычайно важным, т.к. программы редко являются застывшими объектами, однажды созданными и не требующими изменений при эксплуатации. Если программа активно используется, то внесение изменений в неё на этапе сопровождения неизбежно. Это объясняется тем, что со временем меняется ситуация в предметной области, и необходимо отражать эти изменения в программе (например, вносятся изменения, дополнения в системах законодательства, налогообложения), или происходят функциональные и структурные изменения на предприятии, использующем программное обеспечение, наконец, возможно обнаружение ошибок в программе или изменение требований к ней. Для современных отечественных предприятий подобная нестабильность внешних и внутренних условий деятельности особенно характерна, что отмечается во многих статьях, посвященных корпоративным информационным системам [13-17].
Таким образом, развитие программы, внесение изменений в неё - это не единичная задача, а проблема, с которой приходится постоянно сталкиваться любому практикующему программисту. Поэтому поиск путей разработки программной системы, в которую легко вносить изменения, является чрезвычайно важной и актуальной задачей.
Предметом исследования в данной диссертационной работе являются СУБД-приложения, которые представляют класс наиболее часто модифицируемых программ, хотя разрабатываемый метод проектирования может быть применен и для других приложений.
Целью диссертации явилась разработка метода проектирования СУБД-приложения, упрощающего процесс модификации приложения, позволяющего расширять и изменять приложение, не затрагивая уже отлаженные и работающие его части.
Задачи исследования.
Для реализации цели исследования были поставлены следующие задачи:
1. Разработать базовые архитектурные принципы модифицируемого СУБД-приложения.
2. Разработать метод внесения безболезненных изменений в СУБД-приложение для реализации его "типовых" (наиболее вероятных) модификаций:
• модификаций структуры базы данных приложения,
• расширения, изменения или отмены функциональных возможностей приложения.
3. Реализовать в интерпретирующей среде разработки программную поддержку метода проектирования безболезненно модифицируемого СУБД-приложения.
4. Проверить разработанный метод проектирования модифицируемого СУБД-приложения на практике.
Научная новизна результатов исследования.
При разработке метода проектирования безболезненно модифицируемого СУБД-приложения получены следующие научные результаты:
1. Для сопряжения программных модулей разработана концепция "точек присоединения", допускающая безболезненную вставку дополнительных фрагментов кода в программу. В качестве способа реализации данной концепции разработан оригинальный метод с использованием событийного аппарата, позволяющий наращивать и изменять приложение с помощью безболезненного подключения новых фрагментов кода в "точки присоединения" программы.
2. Введен специальный вид модулей программы - модуль изменений, в нём собираются все изменения, которые необходимо внести в разные места программы для реализации её содержательной модификации.
3. Определены требования к реализации приложений, допускающих безболезненные модификации:
- реализация основных элементов приложения на основе открытых спецификаций,
- использование однородных пространств при формировании горизонтальных функций приложения.
4. Предложена новая практическая реализация программной поддержки технологии вертикального слоения и принципа сосредоточенного описания рассредоточенных действий А.Л. Фуксмана:
- предложен способ представления вертикального слоя в виде модуля, реализующего сосредоточенное описание рассредоточенных фрагментов кода,
- в качества способа соединения вертикальных модулей с остальной частью программы предложено использовать точки присоединения.
Практическая значимость работы.
В результате проведенного исследования разработан метод проектирования СУБД-приложения, который позволяет существенно облегчить процесс внесения эволюционных изменений в работающее приложение на этапе сопровождения. Кроме того, осуществлена практическая реализация данного метода в технологии Active Server Pages (ASP): разработана структура реляционной спецификации СУБД-приложения, программный инструментарий для поддержки событийного аппарата и подключения модулей расширения/изменения в стиле "plug and play", а также реализованы функциональные модули, реализующие типовые потребности СУБД-приложения. Применение предложенного метода проектирования и данного программного инструментария позволит значительно сократить сроки разработки типового, легко модифицируемого СУБД-приложения в любой предметной области.
Апробация работы.
Результаты диссертации докладывались автором на научных семинарах кафедры Информатики и вычислительного эксперимента РГУ; VII Международной конференции "Математика. Экономика. Экология. Образование" (Новороссийск, 1999 г.); XXVII, XXVIII, XXIX школах-семинарах "Математическое моделирование в проблемах рационального природоиспользования". Экология, экономика, информатика (1999, 2000, 2001 гг.); III международной конференции "Устойчивое развитие горных территорий" (Владикавказ, 2001 г.); научной молодежной школе-семинаре "Природные воды: рациональное использование, защита от загрязнения"
Аксай, 2001 г.). Результаты диссертации были успешно использованы при разработке Интегрированной Информационной Системы управления водными ресурсами Нижнего Дона (ИИС НД).
Публикации.
По теме диссертации опубликовано 11 печатных работ.
Положения, выносимые на защиту:
1. Разработана концепция сопряжения программных модулей, допускающая безболезненную вставку фрагментов программного кода с помощью "точек присоединения". Данная концепция реализована в виде специализированного событийного аппарата.
2. Предложен механизм реализации программной поддержки технологии вертикального слоения А.Л. Фуксмана.
3. Определены требования к реализации приложений, допускающих безболезненные модификации.
4. Разработаны способы генерации программного кода для основных интерфейсных элементов приложения по открытым высокоуровневым декларативным спецификациям.
Объем и структура диссертационной работы.
Диссертация состоит из введения, пяти глав, заключения, библиографии по теме диссертации и приложения. Содержание диссертационной работы изложено на 174 машинописных страницах, из них 134 страниц основного текста, 18 рисунков, 2 таблицы и 1 приложение. Список литературы содержит 105 наименований.
Заключение диссертация на тему "Разработка метода проектирования модифицируемых СУБД-приложений"
Выводы
Данная диссертационная работа входит в состав комплекса исследований, выполненных на Нижнем Дону в рамках Проекта по управлению окружающей средой РФ Всемирного банка реконструкции и развития. Предлагаемый в диссертационной работе метод проектирования безболезненно модифицируемых СУБД-приложений был успешно применен для разработки Интегрированной информационной системы управления водными ресурсами Нижнего Дона.
ЗАКЛЮЧЕНИЕ
Диссертация посвящена разработке метода проектирования СУБД-приложений, упрощающего процесс его модификации на этапе сопровождения, позволяющего расширять и изменять приложение безболезненно, т.е. не затрагивая уже отлаженные и работающие его части. В результате проведенных исследований такой метод разработан, основными его составляющими являются следующие концепции и принципы:
- архитектура приложения в виде горизонтальных и вертикальных слоев,
- вертикальные слои оформляются в виде модулей изменений/расширений, реализующих сосредоточенное описание рассредоточенных функций,
- для формирования горизонтальных слоев используются однородные пространства,
- для каждого горизонтального слоя вся входная информация подаётся в виде открытой высокоуровневой декларативной спецификации, по которой автоматически генерируются однородные элементы соответствующего пространства однородности,
- для сопряжения программных модулей используется концепция точек присоединения,
- модули изменений/расширений осуществляют модификацию однородных пространств и добавляют дополнительные фрагменты кода в точки присоединения программы,
- для безболезненной вставки дополнительных фрагментов кода в точки присоединения используется механизм событий приложения,
- модули изменений подключаются к остальной программе (и отключаются от неё) по принципу "plug and play".
Разработана программная поддержка данного метода в среде Active Server Pages (ASP), которая включает в себя:
- инструментарий, поддерживающий работу с событиями приложения,
- реляционную спецификацию,
- модули, реализующие типовые потребности СУБД-приложения,
- инструментарий, позволяющий подключать и отключать модули изменений по принципу "plug and play".
Эффективность представленного в диссертационной работе метода проектирования безболезненно модифицируемого СУБД-приложения проверена на приложениях, функционирующих в течение уже нескольких лет [103 - 105]. Среди них приложения, входящие в состав Интегрированной информационной системы управления водными ресурсами Нижнего Дона, которая разрабатывалась в рамках Проекта по управлению окружающей средой РФ Всемирного банка реконструкции и развития.
Библиография Салтыкова, Наталья Николаевна, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Брукс Ф. П. Как проектируются и создаются программные комплексы. Мифический человеко-месяц. - М.: Наука, 1979. - 150 с.
2. Дисков Б., Гатэг Дж. Использование абстракций и спецификаций при разработке программ.— М.: Мир, 1989. 424 с.
3. Майерс Г. Надежность программного обеспечения. М.: Мир, 1980. -360 с.
4. Зелковиц М. и др. Принципы разработки программного обеспечения / Зелковиц М., Шоу А., Гэннон Дж.: Пер. с англ. М.: Мир, 1982. - 368 с.
5. Мейер Б., Бодуэн К. Методы программирования: В 2-х томах. Т. 1,2. Пер. с франц. Ю.А. Первина. М.: Мир, 1982. - 368 с.
6. Липаев В.В. Проектирование программных средств: Учеб. пособие для вузов по спец. "Автом. сист. обр. информ. и упр.". М.: Высш. шк., 1990.-303 с.
7. Малинин А. Поговорим о программировании. Размышления бывшего программиста // КомпьютерПресс. 2001. - 1. CD. http://www.compress.ru/Temp/989/index.htm
8. Терехов A.A., Туньон В. Современные модели качества программного обеспечения // BYTE/Россия. №12, 1999. С. 30-35.
9. В. Kitchenham, S. Pfleeger. Software quality: the elusive target // IEEE Software. 1996. - vol. 13. - no. 1. - P. 12-21.
10. Жоголев E.A. Введение в технологию программирования (конспект лекций). М.: "ДИАЛОГ-МГУ", 1994.
11. Горбунов-Посадов М.М. Расширяемые программы. М.: Полиптих, 1999.-336 с.
12. Фокс Дж. Программное обеспечение и его разработка.— М.: Мир, 1985.- 368 с.
13. Головко М. КИС'кин дом // PC WEEK. 1998. - №21.http ://www.pcweek.ru/year1998/N21 /CP 1251 /Reviews/chapt5 .htm
14. Дворникова E. Корпоративная информационная система "Эталон" // Открытые системы. 1998. - №2. - С. 44 - 47.
15. Брюхов Д.О., Задороджный В.И., Калиниченко JI.A., Курошев М.Ю., Шумилов С.С. Интероперабельные информационные системы: архитектуры и технологии // СУБД. 1995. - №4. -С. 96-113
16. Паронджанов С.Д. Методология создания корпоративных ИС // Материалы первой технической конференции "Корпоративные базы данных'96". http://www.citforum.ru/database/kbd96/43.shtml
17. Верников Г. Технологическая эволюция корпоративных информационных систем. Сервер информационных технологий.- http://www.citforum.ru/cfin/articles/kisxml.shtml
18. Сафонов В.О. Языки и методы программирования в системе "Эльбрус". М.: Наука, 1989. - 392 с.
19. Бек К . Экстремальное программирование. // Открытые системы. -2000.-№ 1-2.-С. 59-65.
20. Bell D. et al. Software Engineering. A programming Approach / Bell D., Morrey I., Pogh J. Prentice Hall, 1992. - 338 P.
21. Мельников И. А., Раабе A.C., Тамм Б. Г. Инструментарий машинной поддержки цикла жизни программного обеспечения. Обзор западных средств // Прикладная информатика. 1988. - Вып. 14. - С. 16-40.
22. Позин Б. А. Современные средства программной инженерии для создания открытых прикладных информационных систем // СУБД . -1995.-№ 1.-С. 139-144.
-
Похожие работы
- Методы внедрения фрагментного параллелизма в последовательную СУБД с открытым исходным кодом
- Разработка моделей, алгоритмов и программ реализации мандатного разграничения доступа в СУБД с использованием цифровых сертификатов
- Разработка и сопровождение открытых СУБД приложений
- Управление обновлениями в СУБД расширенной архитектуры "клиент-сервер"
- Методы и средства обработки информации в реляционных базах данных
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность