Mybrary.ru

Бертран Мейер - Основы объектно-ориентированного программирования

Тут можно читать бесплатно Бертран Мейер - Основы объектно-ориентированного программирования. Жанр: Прочая околокомпьтерная литература издательство неизвестно, год 2004. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте mybrary.ru (mybrary) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Название:
Основы объектно-ориентированного программирования
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
262
Читать онлайн
Бертран Мейер - Основы объектно-ориентированного программирования

Бертран Мейер - Основы объектно-ориентированного программирования краткое содержание

Бертран Мейер - Основы объектно-ориентированного программирования - описание и краткое содержание, автор Бертран Мейер, читайте бесплатно онлайн на сайте электронной библиотеки Mybrary.Ru
Фундаментальный учебник по основам объектно-ориентированного программирования и инженерии программ. В книге подробно излагаются основные понятия объектной технологии – классы, объекты, управление памятью, типизация, наследование, универсализация. Большое внимание уделяется проектированию по контракту и обработке исключений, как механизмам, обеспечивающим корректность и устойчивость программных систем.В книге Бертрана Мейера рассматриваются основы объектно-ориентированного программирования. Изложение начинается с рассмотрения критериев качества программных систем и обоснования того, как объектная технология разработки может обеспечить требуемое качество. Основные понятия объектной технологии и соответствующая нотация появляются как результат тщательного анализа и обсуждений. Подробно рассматривается понятие класса - центральное понятие объектной технологии. Рассматривается абстрактный тип данных, лежащий в основе класса, совмещение классом роли типа данных и модуля и другие аспекты построения класса. Столь же подробно рассматриваются объекты и проблемы управления памятью. Большая часть книги уделена отношениям между классами – наследованию, универсализации и их роли в построении программных систем. Важную часть книги составляет введение понятия контракта, описание технологии проектирования по контракту, как механизма, обеспечивающего корректность создаваемых программ. Не обойдены вниманием и другие важные темы объектного программирования – скрытие информации, статическая типизация, динамическое связывание и обработка исключений. Глубина охвата рассматриваемых тем делает книгу Бертрана Мейера незаменимой для понимания основ объектного программирования.

Основы объектно-ориентированного программирования читать онлайн бесплатно

Основы объектно-ориентированного программирования - читать книгу онлайн бесплатно, автор Бертран Мейер

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

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

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

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

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

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

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

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

Повторное использование (Reusability)

Определение: повторное использование

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

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

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

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

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

Совместимость (Compatibility)

Определение: совместимость

Совместимость - это легкость сочетания одних элементов ПО с другими.

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

Ключ к совместимости находится в однородности построения и в стандартных соглашениях на коммуникации между программами. Эти подходы включают:

[x]. Стандартные форматы файлов, как в системе Unix, где каждый текстовый файл - это просто последовательность символов.

[x]. Стандартные структуры данных, как в системе Lisp, где все данные, а также программы, представлены бинарными деревьями (называемыми списками).

[x]. Стандартные пользовательские интерфейсы, как в различных версиях Windows, OS/2 и MacOS, где все инструменты опираются на единую парадигму для коммуникации с пользователем, основанную на стандартных компонентах, таких как окна, значки, меню и т. д.

Большая общность достигается при определении стандартных протоколов доступа ко всем важным элементам, управляемым программами. Такова идея, лежащая в основе абстрактных типов данных и ОО-подхода, а также так называемого связующего программного обеспечения (middleware), например CORBA и Microsoft's OLE-COM (ActiveX).

Эффективность (Efficiency)

Определение: эффективность

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

Почти синонимом эффективности является слово "производительность" (performance). В программистском сообществе есть два типичных отношения к эффективности:

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

[x]. Существует общая тенденция недооценки вопросов эффективности, вытекающая из справедливых убеждений, существующих в промышленности:"сделай правильно, прежде чем сделать быстро" и "модель компьютера будущего года все равно будет на 50% быстрее".

Часто один и тот же человек в разное время высказывает разные типы отношения и является то доктором Abstract, то мистером Microsecond - происходит раздвоение личности, как в известной истории про доктора Джекила и мистера Хайда.

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

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

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

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

Постоянное увеличение компьютерной мощи, каким бы оно ни было впечатляющим, не может заменить эффективность, по крайней мере, по трем причинам:

[x]. Тот, кто покупает больший и более быстрый компьютер, хочет видеть действительные выгоды от дополнительной мощности - решать новые задачи, более быстро работать со старыми задачами, решать более важные версии старых задач за то же время. Если новый компьютер решает старые задачи за то же самое время - это нехорошо!


Бертран Мейер читать все книги автора по порядку

Бертран Мейер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки Mybrary.Ru.


Основы объектно-ориентированного программирования отзывы

Отзывы читателей о книге Основы объектно-ориентированного программирования, автор: Бертран Мейер. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту my.brary@yandex.ru или заполнить форму обратной связи.
×
×