Расширяемость (Extendibility)

Расширяемость (Extendibility)

Определение: расширяемость

Расширяемость - это легкость адаптации ПО к изменениям спецификации.

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

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

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

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

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

[x]. Простота построения: простая архитектура легче адаптируется к изменениям, чем сложная.

[x]. Децентрализация: чем более автономны модули, тем выше вероятность того, что простое изменение затронет только один или небольшое количество модулей и не вызовет цепную реакцию изменений во всей системе.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Расширяемость

Из книги автора

Расширяемость Другие языки разметки позволяют вам изобретать любой элемент, какой пожелаете. В XML, если вы хотите, чтобы в вашем документе был элемент event или price, вы просто берете и создаете его. Недостаток этой свободы заключается в том, что вам нужно будет затем обучить


Расширяемость XSLT

Из книги автора

Расширяемость XSLT Несмотря на кажущуюся сложность XSLT, он во многих отношениях ограничен по сравнению с языками программирования, и в процессорах XSLT сразу же начали появляться расширения XSLT. Например, Saxon представил элемент <saxon:while>, реализуя в XSLT стандартный для


Расширяемость

Из книги автора

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