Переводчик
English French German Spain ItalianDutch Russian Portuguese Japanese Korean ArabicChinese Simplified
Скачать ИИ, р.№3797
Поделиться...
Партнеры
Создать форум
Рейтинг
Яндекс.Метрика

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

Предыдущая тема Следующая тема Перейти вниз

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

Сообщение автор IS2002 в 12.02.14 0:59

http://cyberleninka.ru/article/n/metody-adaptatsii-i-pokoleniya-razvitiya-programmnogo-obespecheniya

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

Программное обеспечение (ПО) появилось одновременно с техническими средствами компьютеров и вместе с совершенствованием компьютерной техники прошло существенный путь своего развития. В настоящее время область ПО является одной из самых науко- и трудоемких областей деятельности человечества, практически полностью базирующейся на ручном труде. Считается, что в истории развития ПО было всего две серьезных революции: возникновение программного управления техническими средствами компьютеров на заре зарождения компьютерной техники и разработка языков программирования высокого уровня и трансляторов с них в машинный код в 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. Самоорганизующееся ПО

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

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

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

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

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

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

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

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

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

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

Сообщения : 153
Очки : 559
Дата регистрации : 2012-05-22

Посмотреть профиль

Вернуться к началу Перейти вниз

Восклицание Методы адаптивной сборки программного продукта

Сообщение автор IS2002 в 12.02.14 11:04

http://www.dslib.net/teor-informatika/metody-adaptivnoj-sborki-programmnogo-produkta.html

Гурьянов Василий Иванович; [Место защиты: Нижегор. гос. техн. ун-т].- Чебоксары, 2008.- 20 с.: ил. РГБ ОД, 9 08-4/2542

Актуальность темы

Решение проблемы адаптивности программного обеспечения, возможно, является центральным звеном в создании программных продуктов нового поколения. Адаптивные программные системы (adaptive software) могут открыть новую страницу в развитии информационных технологий. Многие компании, прежде всего IBM, Hewlett-Packard и Microsoft, уже осознали необходимость в системах с элементами саморегулирования и объявили о своих программах по созданию адаптируемых и адаптивных систем. Это индуцирует развитие теоретической базы методологий поддержки жизненного цикла программных продуктов.

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

Концептуальная основа методологии проектирования адаптивных программных систем должна следовать из некоторых общих принципов, таких как принципы программной кибернетики (software cybernetics) и теории развития сложных систем. Можно ожидать, что исходной точкой может стать парадигма порождающего программирования (generative programming).

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

Цель работы

Цель диссертационного исследования состоит в разработке методологии проектирования модельных адаптивных программных систем.

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

Задачи исследования

В диссертационной работе решаются следующие задачи:

анализ существующих методов рекомпозиционной адаптации программных систем;

анализ программных архитектур, допускающих

реструктуризацию программой-сборщиком;

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

разработка методов проектирования адаптивных программных систем;

анализ требований к системе сопровождения;

разработка программного обеспечения;

имитационное моделирование процессов адаптации программных систем, разработанных на основе найденных решений.

Методы исследования

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

Научная новизна

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

интерфейсная модель адаптации программных систем;

лингвистическая модель развития системы со слоистой структурой;

метод расслоения класса по элементам интерфейса и методы эмуляции множественного интерфейса и множественного наследования;

методология проектирования модельных адаптивных программных систем;

многоагентная модель и методология проектирования среды поддержки программного продукта.

Личный творческий вклад автора

Автором выполнен анализ вариантов решения поставленных задач; обоснованы основные положения, выносимые на защиту; произведена разработка программного обеспечения.

Достоверность научных результатов

Новые результаты, полученные в диссертационном исследование, являются развитием идей предложенных рядом исследователей. Наиболее важное значение имеет паттерн Generation Gap, предложенный Д.Влисидесом. Использованы также работы Э. Дейкстры, М.В. Ксензова и др. по выделению слоев. Предложенная методология апробирована на ряде прикладных задач и проверена методами имитационного моделирования. Модель среды существования программного продукта исследована методами теории динамических систем.

Практическая ценность

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

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

Апробация работы и публикации

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

Всероссийская научно-методическая конференция "Наука и образование: тенденции и перспективы их развития". Тверь, 2003 г.

Межвузовский семинар «Математическое моделирование и прикладные задачи». Чебоксары, 2006, 2008 гг.

Межрегиональная научно-практическая конференция молодых ученых, аспирантов и студентов "Молодые ученые в решении актуальных проблем современной науки", Чебоксары, 2006.

Всероссийская научно-практическая конференция «Математика, информатика, естествознание в экономике и обществе, Московская финансово-юридическая академия, Москва», 21-22 ноября 2007 года.

Региональный семинар «Математическое и компьютерное моделирование в сложных системах», математический факультет, Оренбургский государственный университет, 2007.

Тринадцатая международная открытая научная конференция "Современные проблемы информатизации", с 01 октября 2007 г. по 31 января 2008 г.

Международная научно-практическая конференция "Проблемы развития и внедрения информационных технологий", г. Чебоксары, 26-27 января 2007.

II Международная научно-практическая конференция "Проблемы развития и внедрения информационных технологий", г. Чебоксары, 25 января 2008.

Заочная электронная конференция «Математическое моделирование» на , 2007.

VI Научно-практическая конференция «Современные информационные технологии в науке, образовании и практике», Оренбургский государственный университет, Оренбург 2007.

V международная научно-практическая конференция «Исследование, разработка и применение высоких технологий в промышленности» 28-30 апреля 2008 г. Санкт-Петербург.

Четвертая всероссийская научно-техническая конференция «Информационные системы и модели в научных исследованиях, промышленности и экологии», 28 апреля 2008, г.Тула.

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук:
http://www.nntu.ru/RUS/aspir_doktor/avtoreferat/guryanov_v_i.pdf
avatar
IS2002
Бакалавр
Бакалавр

Сообщения : 153
Очки : 559
Дата регистрации : 2012-05-22

Посмотреть профиль

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения