Эволюция программного обеспечения кратко

Обновлено: 05.07.2024

Software Evolution — это термин, который относится к процессу разработки программного обеспечения на начальном этапе, а затем к своевременному обновлению его по различным причинам, т. Е. Для добавления новых функций или удаления устаревших функций и т. Д. Процесс эволюции включает фундаментальные действия анализа изменений, планирования выпуска, системы внедрение и выпуск системы для клиентов.

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

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


Законы, используемые для эволюции программного обеспечения:


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

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

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

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

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

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

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

Введение

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

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

Эволюция программных средств

Информационные технологии базируются на аппаратном и программном обеспечении. Аппаратное обеспечение (hardware) состоит из физических компьютерных модулей, но не имеет в своём составе информационных данных, обрабатываемых и сохраняемых в нём.

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

Все программы проектируются программистами на разных программных языках, предназначенных для записи программного обеспечения. Первой программисткой стала Ада Лавлейс, дочка известнейшего поэта, лорда Байрона. Ещё в 1843-ем году Ада Лавлейс сделала перевод лекции английского изобретателя Чарльза Беббиджа о спроектированном им вычислительном устройстве, которую он читал в Туринском университете, с итальянского языка на английский. При осуществлении перевода Ада Лавлейс добавила в текст свои подробнейшие комментарии, превышающие по размеру сам текст лекции в три раза.

Готовые работы на аналогичную тему

В одном из комментариев содержался перечень инструкций, позволяющих вычислить числа Бернулли на описываемом вычислительном устройстве. Данный список инструкций и может считаться первой программой, но Ада Лавлейс не дожила до реального воплощения в жизнь этой вычислительной машины.

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

Первый программируемый компьютер был создан в 1943-ем году немецким специалистом Конрадом Цузе, и назывался z3. В последующие два года Конрад Цузе разработал для своего компьютера первый программный язык Plankalkul, но суровое венное время не позволило его претворить в жизнь.

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

В пятидесятых годах прошлого века потребовалось уже много компьютерных программ, увеличились их размеры, вследствие чего были разработаны специальные формирователи программ, именуемые ассемблерами. Это позволило сделать программы более понятными, но они всё-таки имели зависимость от модели центрального процессора компьютера.

В 1954-ом году было начато проектирование первого высокоуровневого языка программирования Фортран, которое завершилось созданием первой рабочей версии в 1957-ом. Высокоуровневые программные языки совершили настоящий прорыв в сфере программирования. Работа программного обеспечения компьютера фактически стала независимой от технического оснащения конкретного компьютера, при этом, языки программирования приблизились к естественным разговорным языкам. То есть, размеры программ существенно уменьшились, а изучать язык программирования стало достаточно просто.

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

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

Балансировка нагрузки: равномерно распределяйте запросы по разным серверам для достижения баланса.

Высокая степень параллелизма: возможность обрабатывать одно и то же одновременно (решения: распределенные, кластерные, с балансировкой нагрузки)

Высокая доступность: система доступна.


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

1. Монолитная архитектура приложения

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

  • Преимущества архитектуры:
    Структура проста, начальная стоимость разработки низкая, а цикл разработки короткий, подходит для небольших проектов (OA, CRM, ERP).
  • Недостатки архитектуры:
    Все функции интегрированы в один проект
    (1) Бизнес-код сильно связан, и его нелегко поддерживать.
    (2) Высокая стоимость обслуживания, нелегко расширить
    (3) Уровень параллелизма велик, и его трудно решить.
    (4) Стек технологий ограничен и может быть разработан только на одном языке.

2. Вертикальная архитектура приложений

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

  • Преимущества архитектуры:
    (1) Относительное разделение бизнес-кодов
    (2) Затраты на обслуживание относительно легко увеличить (измените функцию, вы можете напрямую изменить проект и развернуть отдельно)
    (3) Большой параллелизм относительно легко решить (создать кластер).
    (4) Технологический стек может быть расширен (разные системы могут быть написаны на разных языках программирования).
  • Недостатки архитектуры:
    Функции сосредоточены в одном проекте, что не способствует развитию, расширению и обслуживанию.
    Между кодами существует избыточность данных и методов.

3. Распределенная сервисная архитектура

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

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

4. Архитектура мобильных вычислений

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

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

1. Монолитная архитектура приложения, также известная как централизованная архитектура.


2. Распределенная архитектура


3. Архитектура SOA

Эволюция вертикальной архитектуры Распределенная архитектура

4. Архитектура SOA:

Сервисно-ориентированная архитектура (SOA) - это компонентная модель, полное название: Сервис-ориентированная архитектура, которая разделяет различные функциональные единицы (называемые сервисами) приложения и связывает их через четко определенные интерфейсы и контракты между этими сервисами. вставать.

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

Вы можете использовать даббо в качестве инструмента планирования (протокол RPC)

5. Микросервисная архитектура

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

Степень детализации извлечения более мала, следуя единому принципу, и данные могут передаваться между службами (обычно с использованием запросов на восстановление для вызова ресурсов).

Каждая служба использует отдельную базу данных, полностью независимую и несвязанную.

6. Процесс эволюции:

От архитектуры единого приложения (централизованная архитектура) -> распределенная архитектура -> архитектура SOA

Он все еще развивается, и звонки также могут выполняться между службами

То есть: микросервисная архитектура (сервисы тоже можно вызывать).

Функция 2: каждая служба использует отдельную базу данных, полностью независимую и несвязанную.

Интеллектуальная рекомендация

Говоря о супермапе ICLID для листовки (2) точка рисования, функциональные шаги функции изображения

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

Tooltip + F2

Разработайте программу JAVA на ECLIPSE. Когда мы открываем класс JAVA, ECLIPSE откроет JDT JAVA EDITOR для отображения этого класса. Когда мы подведем мышь к определенному типу JAVA, появится подсказк.


Ali ECS (Linux Centos) устанавливает Центр регистрации NACOS


Python поднимается на 2011-2019 годы в Хэнане


Введение в управление состоянием Flink и механизм отказоустойчивости

Эта статья была опубликована на встрече Flink Meetup, состоявшейся в Пекине 11 августа. Рассказывает Ши Сяоган. В настоящее время он занимается исследованиями и разработками Blink в отделе больших дан.

Вам также может понравиться

2.28 Меч относится к предложению разбить массив на наименьшее число.

тема Введите массив положительных целых чисел, объедините все числа в массиве в одно число и выведите наименьшее из всех чисел, которые можно соединить вместе. Например, введите массив , а.


День 1-Java-imooc-4. Заявление об управлении процессом


Алгоритм взрывного заказа

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

Теория чисел Струна Скарлет не может быть такой милой

Значение темы: Найти набор символов как k k kДлина L L LСтрока, которая не удовлетворяет никого дольше, чем 1 1 1Количество последовательных палиндромных подстрок, которые могут указывать первые s s s.


Конвейер межпроцессного взаимодействия

Что такое межпроцессное взаимодействие? Буквальное значение - позволить двум процессам передавать информацию друг другу, а суть - позволить двум несвязанным процессам видеть один и тот же ресурс. Цель.

Читайте также: