Адаптация. Лекция 9 Адаптация. Тема 9 Целесообразность разработки модулей адаптации
Скачать 20.22 Kb.
|
Тема 1.9 Целесообразность разработки модулей адаптацииРассмотрим поколения ПО в зависимости от средств их модификации и адаптации к требованиям пользователей на этапе установки и эксплуатации. 1. ПО «под ключ» Первое ПО представляло собой достаточно простые автономные программы для решения отдельных задач в определенной прикладной области, функционирующие на компьютерах жестко определенной конфигурации. В качестве системного обеспечения обычно использовались штатные компоненты программного обеспечения компьютеров: компиляторы с алгоритмических языков, редакторы текстов, средства организации библиотек программ, архивные системы и т. д. ПО «под ключ» не требовало развитой системной поддержки и для их функционирования было достаточно указанных системных средств. Разработчиками ПО «под ключ» являлись прикладные программисты, которые писали программы на универсальных языках программирования. 2. ПО с установкой и инсталляцией Началом этапа создания ПО данного типа можно считать появление инсталлируемых операционных систем (MS DOS, Windows 3.1. и др.). В отличие от ПО «под ключ», инсталлируемое ПО имело возможность устанавливаться на компьютерах с различной конфигурацией, задаваемой в момент установки ПО. Это дало мощный толчок к развитию аппаратных средств компьютерной техники (появились линейки компьютеров: IBM-совместимые, MAC и др.), а быстрое увеличение ресурсов технических средств позволило реализовать на уровне программного обеспечения новые функции: графический интерфейс, многозадачность, универсальность устройств и др. Постепенно инсталлируемость стала использоваться и при разработке прикладного ПО. Это позволило разрабатывать ПО для решения целых классов близких задач, устранило дублирование разработки ПО для компьютеров из одной линейки и снизило цены на ПО. Таким образом, программирование стало преобразовываться из области искусства в профессиональную отрасль. 3. ПО со встроенными средствами доработки По пути поддержки специализированных языков программирования пошли также разработчики и СУБД, например, поддержка языка PL-SQL в СУБД ORACLE. Не отстают от СУБД и развитые прикладные системы, наиболее ярким представителем которых является система 1С:Предприятие. Система 1С:Предприятие может дорабатываться и устанавливаться на малых и больших предприятиях, на предприятиях разных форм собственности и др. Таким образом, именно наличие встроенных средств программирования, позволяющих существенно расширять и модифицировать функции базовой системы, позволяют системам данного класса получить достаточно широкое распространение и увеличить срок их эксплуатации. Однако создание и сопровождение прикладных систем на базе систем со встроенными средствами доработки являются очень трудоемкими. На понижение этой трудоемкости ориентированы системы следующего класса. 4. ПО, создаваемое на основе проектирования, и самонастраивающееся ПО Снижение трудоемкости на этапе проектирования и создания ПО осуществляется путем использования Case-систем моделирования и разработки ПО. Case-системы хорошо документируют процесс создания и сопровождения ПО, но они ориентированы на профессиональных разработчиков ПО и создают плохо оптимизированный программный код. Самонастраивающееся ПО призвано снизить трудоемкость при установке и инсталляции систем, а также поддерживать качество своего функционирования в процессе эксплуатации. Такими свойствами обладает современная операционная система (ОС) Windows, автоматически определяющая конфигурацию технических средств компьютера при инсталляции и каждом запуске системы, а также автоматически определяющая изменения конфигурации технических средств и устанавливаемое ПО в процессе своего функционирования. Существенно повысить качество и срок эксплуатации с принципиальным снижением трудоемкости и затрат на создание и сопровождение систем позволяет только самоорганизующееся ПО. 5. Самоорганизующееся ПО Самоорганизующимся является ПО, способное длительное (потенциально бесконечное) время быть адекватным внешней среде на основе адаптации к изменениям внешней среды (решаемым задачам, объектам взаимодействия) и внутренней организации системы (объему данных, их размещению и т. д.). Для обеспечения таких возможностей самоорганизующееся ПО должно обладать рядом принципиально новых свойств, отличающих его от пассивных систем: являться автономной активной интенсивной системой, способной самостоятельно функционировать в определенной изменяющейся среде; быть открытой системой на всех уровнях организации: структурном, функциональном, интерфейсном, организации данных и др.; функционировать преимущественно на основе собственной цели и внутренних потребностей с учетом неспецифических воздействий внешней среды; обеспечивать корректность и высокий уровень надежности и эффективности функционирования в изменяющейся среде; обеспечивать взаимодействие с внешней средой на семантическом уровне и предоставлять простой интерфейс взаимодействия, скрывающий от внешней среды высокую внутреннюю сложность системы; способность системы с течением времени предоставлять внешней среде (пользователям) все более широкие возможности по решению задач, организации и обработке данных; способность системы возникать и формироваться естественным путем (без участия программистов, разработчиков) и др. В настоящее время практически нет программных систем, у которых достаточно четко проявлялись бы указанные свойства. Простейшими представителями данного класса систем можно считать генетические алгоритмы, самообучаемые перестраивающиеся нейронные сети и компьютерные вирусы. Таким образом, создание программных систем данного класса является делом будущего и, возможно, ознаменует собой третью революцию в области ПО. Рассмотренные поколения ПО позволяют выявить ряд методов, используемых для адаптации программных систем к изменениям внешней среды и внутренней организации системы: Параметрическая адаптация - настройка параметров ПО. Параметрическая адаптация является простейшим видом адаптации и предполагает изменение значений переменных (параметров), определяющих поведение и функционирование программы. При таком подходе можно настраивать функции и компоненты ПО, а также выбирать определенные стратегии поведения из допустимого набора стратегий. 2. Функциональная адаптация - изменение функций ПО в допустимых пределах. Функциональная адаптация обеспечивает изменение функций ПО, в пределах имеющейся структуры и организации системы. При этом допустима параметрическая настройка всего ПО, сохраняющая неизменной ее структуру и организацию для выполнения задач, первоначально заложенных в систему. 3. Организационная адаптация - изменение организации (процессов) в системе. Организационная адаптация предполагает изменение потоков и процессов, протекающих внутри системы, с возможностью изменения функций и параметрической настройки. При данной адаптации происходит перераспределение внутренних ресурсов системы без изменения ее структуры для достижения более высокой производительности и качественного исполнения_решаемых_задач. 4. Структурная адаптация - изменение структуры системы. Структурная адаптация предполагает модификацию или замену одних структурных компонентов (алгоритмических модулей) системы другими компонентами, позволяющими программе становиться более адекватной решаемым задачам и условиям функционирования. При этом возможно использование организационной, функциональной и параметрической адаптации системы. 5. Размножение - порождение себе подобных потомков. Размножение, как способ адаптации, является невероятно сложным, но и необычайно эффективным методом адаптации. Оно позволяет системе порождать потомки, со свойствами подобными родительским, но обладающими большими возможностями (наличием свободных ресурсов и способностью к изменениям), что позволяет им более эффективно адаптироваться к существенным изменениям внешней среды. 6. Развитие - направленный процесс эволюции систем. Развитие предполагает, как направленный процесс эволюции (изменений) конкретной системы, включающий 4 этапа: зарождение системы, становление системы определенного качества, устойчивое функционирование системы, деградацию и гибель системы, так и популяционно-видовой способ существования и эволюции множеств подобных систем. Таким образом, конкретные системы, порождаясь достаточно простыми, в процессе существования (функционирования) накапливают информацию о себе, о внешней среде и о решаемых задачах и становятся более приспособленными для решения задач, изменяющихся во времени. С другой стороны, параллельное существование систем с разным уровнем развития позволяет более совершенным системам осуществлять обучение менее развитых систем, что порождает процесс коэволюции систем и существенно ускоряет прогресс совершенствования и развития всей популяции систем. Кроме этого, при определенных условиях краткосрочно могут возникать новые виды развивающихся систем, которые будут существенно более адекватны внешней среде и решаемым задачам. Решение проблемы адаптивности программного обеспечения, возможно, является центральным звеном в создании программных продуктов нового поколения. Адаптивные программные системы (adaptive software) могут открыть новую страницу в развитии информационных технологий. Многие компании, прежде всего IBM, Hewlett-Packard и Microsoft, уже осознали необходимость в системах с элементами саморегулирования и объявили о своих программах по созданию адаптируемых и адаптивных систем. Это индуцирует развитие теоретической базы методологий поддержки жизненного цикла программных продуктов. В настоящее время применяется ряд методов рекомпозиционной адаптации программных систем. Однако целостная методология проектирования таких систем отсутствует |