Научная статья на тему 'Методы адаптации и поколения развития программного обеспечения'

Методы адаптации и поколения развития программного обеспечения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2498
248
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
поколения программного обеспечения / методы адаптации / адаптация программного обеспечения / generations of software / adaptation methods / adaptation of software

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Баканов А. Б., Дрождин В. В., Зинченко Р. Е., Кузнецов Р. Н.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The problem of software classification depending on the availability of modification and adaptation means is taken into consideration, the main features of each software class are reproduced. The classification of adaptation methods of software is given and adaptation methods for different generations of software are pointed out.

Текст научной работы на тему «Методы адаптации и поколения развития программного обеспечения»

ИЗВЕСТИЯ

ПЕНЗЕНСКОГО ГОСУДАРСТВЕННОГО ПЕДАГОГИЧЕСКОГО УНИВЕРСИТЕТА имени В. Г. БЕЛИНСКОГО ФИЗИКО-МАТЕМАТИЧЕСКИЕ И ТЕХНИЧЕСКИЕ НАУКИ № 13 (17) 2009

IZVESTIA

PENZENSKOGO GOSUDARSTVENNOGO PEDAGOGICHESKOGO UNIVERSITETA imeni V. G. BELINSKOGO PHYSICAL, MATHEMATICAL AND TECHNICAL SCIENCES № 13 (17) 2009

УДК 004.42

МЕТОДЫ АДАПТАЦИИ И ПОКОЛЕНИЯ РАЗВИТИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

© А. Б. БАКАНОВ, В. В. ДРОЖДИН, Р. Е. ЗИНЧЕНКО, Р. Н. КУЗНЕЦОВ Пензенский государственный педагогический университет имени В. Г. Белинского, кафедра прикладной математики и информатики e-mail: drozhdin@spu-penza.ru

Баканов А. Б., Дрождин В. В., Зинченко Р. Е., Кузнецов Р. Н. - Методы адаптации и поколения развития программного обеспечения // Известия ПГПУ им. В. Г. Белинского. 2009. № 13 (17). С. 66-69. - Рассмотрена проблема классификации программного обеспечения в зависимости от наличия средств модификации и адаптации, приведены основные свойства каждого класса программных систем. Дана классификация методов адаптации программного обеспечения и указано, какие методы адаптации характерны для различных поколений программных систем.

Ключевые слова: поколения программного обеспечения, методы адаптации, адаптация программного обеспечения.

Bakanov A. B., Drozhdin V. V., Zinchenko R. E., Kuznetsov R. N. - Adaptation methods and generations of software development // Izv. Penz. gos. pedagog. univ. im.i V. G. Belinskogo. 2009. № 13 (17). P. 66-69. -

The problem of software classification depending on the availability of modification and adaptation means is taken into consideration, the main features of each software class are reproduced. The classification of adaptation methods of software is given and adaptation methods for different generations of software are pointed out. Keywords: generations of software, adaptation methods, adaptation of software

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

Поколения развития ПО

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

1. ПО «под ключ»

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

2. ПО с установкой и инсталляцией

Началом этапа создания ПО данного типа можно считать появление инсталлируемых операционных систем (MS DOS, Windows 3.1. и др.).

В отличие от ПО «под ключ», инсталлируемое ПО имело возможность устанавливаться на компьютерах с различной конфигурацией, задаваемой в момент установки ПО. Это дало мощный толчок к

развитию аппаратных средств компьютерной техники (появились линейки компьютеров: IBM-совместимые, MAC и др.), а быстрое увеличение ресурсов технических средств позволило реализовать на уровне программного обеспечения новые функции: графический интерфейс, многозадачность, универсальность устройств и др.

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

3. ПО со встроенными средствами доработки

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

Одной из первых, действительно удачных реализаций реляционных баз данных стала система управления базой данных (СУБД) dBase фирмы Aston Table, достоинство который состояло в том, что она реально позволяла создавать таблицы и связи между ними. dBase поддерживала встроенный язык обработки данных xBase и была интерпретатором. Язык xBase оказался эффективным средством описания действий с таблицами БД поэтому было разработано несколько реализующих его систем: компилятор Clipper, интерпретатор и компилятор FoxBASE и др.

Однако настоящий взрыв произвело появление СУБД FoxPro фирмы FoxSoftware, ориентированной преимущественно на разработчиков БД, а не на пользователей. язык FoxPro был значительно расширен конструкциями для оформления программ, создания интерфейсов взаимодействия с пользователями и др. Но самое главное отличие FoxPro состояло в наличии оптимизатора доступа к данным по технологии Rushmore, обеспечивающего высокую эффективность обработки данных. После покупки компании FoxSoftware корпорацией Microsoft был разработан мощный продукт Visual FoxPro, полностью поддерживающий концепцию реляционных БД и включенный в объектно-ориентированную среду программирования, предназначенную для профессиональных разработчиков ПО.

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

других СУБД, например, поддержка языка PL-SQL в СУБД ORACLE.

Не отстают от СУБД и развитые прикладные системы, наиболее ярким представителем которых является система 1С:Предприятие.

Система 1С:Предприятие может дорабатываться и устанавливаться на малых и больших предприятиях, на предприятиях разных форм собственности и др.

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

На понижение этой трудоемкости ориентированы системы следующего класса.

4. ПО, создаваемое на основе проектирования, и самонастраивающееся ПО

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

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

Подобными свойствами обладают компоненты ОС и другие программные системы, поддерживающие характеристику Plug-and-play.

Однако самонастраивающееся ПО в настоящее время получило достаточно ограниченное распространение вследствие его высокой внутренней сложности.

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

5. Самоорганизующееся ПО

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

ИЗВЕСТИЯ ПГПУ • Физико-математические и технические науки • № 13 (17) 2009 г.

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

- являться автономной активной интенсивной системой, способной самостоятельно функционировать в определенной изменяющейся среде;

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

- функционировать преимущественно на основе собственной цели и внутренних потребностей с учетом неспецифических воздействий внешней среды;

- обеспечивать корректность и высокий уровень надежности и эффективности функционирования в изменяющейся среде;

- обеспечивать взаимодействие с внешней средой на семантическом уровне и предоставлять простой интерфейс взаимодействия, скрывающий от внешней среды высокую внутреннюю сложность системы;

- способность системы с течением времени предоставлять внешней среде (пользователям) все более широкие возможности по решению задач, организации и обработке данных;

- способность системы возникать и формироваться естественным путем (без участия программистов, разработчиков) и др.

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

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

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

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

Методы адаптации ПО

1. Параметрическая адаптация - настройка параметров ПО.

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

2. Функциональная адаптация - изменение функций ПО в допустимых пределах.

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

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

3. Организационная адаптация - изменение организации (потоков и процессов) в системе.

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

4. Структурная адаптация - изменение структуры системы.

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

5. Размножение - порождение себе подобных потомков.

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

6. Развитие - направленный процесс эволюции систем.

Развитие предполагает как направленный процесс эволюции (изменений) конкретной системы, включающий 4 этапа: зарождение системы, становление системы определенного качества, устойчивое функционирование системы, деградацию и гибель системы, так и популяционно-видовой способ существования и эволюции множеств подобных систем. Таким образом, конкретные системы, порождаясь достаточно простыми, в процессе существования (функционирования) накапливают информацию о себе, о внешней среде и о решаемых задачах и становятся более приспособленными для решения задач, изменяющихся во времени. С другой стороны, параллельное существование систем с разным уровнем развития позволяет более совершенным системам осуществлять обучение менее развитых систем, что порождает процесс коэволюции систем и существенно ускоряет прогресс совершенствования и развития всей популяции систем. Кроме этого, при определенных условиях краткосрочно могут возникать новые виды развивающихся систем, которые будут существенно более адекватны внешней среде и решаемым задачам.

В таблице приведены сведения о методах адаптации, используемых в различных поколениях ПО.

таблица

методы ^^^^^адаптации поколения по параметрическая Функциональная организационная структурная размножение развитие

ПО под ключ * - - -

ПО с установкой и инсталляцией * * - -

ПО со встроенными средствами доработки * * * * - -

ПО, создаваемое на основе проектирования, и самонастраивающееся ПО * * * - - -

Самоорганизующееся ПО * * * * * *

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.