Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635), страница 96
Текст из файла (страница 96)
Противопоставляется прямому инжинирингу.объект, object, Нечто, чем можно оперировать. Объект имеет состояние,поведение и идентичность. Структура и поведение сходных объектов определены вобщем для них классе. Термины «экземпляр» и «объект» взаимозаменяемы.объектная модель, object model. Совокупность основополагающих принципов,лежащих в основе объектно-ориентированного проектирования; парадигмапрограммирования, основанная на принципах абстрагирования, инкапсуляции,модульности, иерархичности, типизации, параллелизма и устойчивости.объектное программирование, object-based programming.
Методпрограммирования, основанный на представлении программы как совокупностиобъектов, каждый из которых является экземпляром некоторого типа. Типы образуютиерархию, но не наследственную. В таких программах типы рассматриваются какстатические, а объекты имеют более динамическую природу, которую ограничиваютстатическое связывание и мономорфизм.объектно-ориентированная декомпозиция, object-oriented decomposition.Процесс разбиения системы на части, соответствующие классам и объектам предметнойобласти.
Практическое применение методов объектно-ориентированного проектированияприводит к объектно-ориентированной декомпозиции, при которой мы рассматриваеммир как совокупность объектов, согласованно действующих для обеспечения требуемогоповедения.объектно-ориентированное программирование, object-oriented programming(OOP). Методология реализации, при которой программа организуется, каксовокупность сотрудничающих объектов, каждый из которых является экземпляромкакого-либо класса, а классы образуют иерархию наследования.
При этом классы обычностатичны, а объекты очень динамичны, что поощряется динамическим связыванием иполиморфизмом.объектно-ориентированное проектирование, object-oriented design (OOD).Методология проектирования, соединяющая процесс объектно-ориентированнойдекомпозиции и систему обозначений для представления логической и физической,статической и динамической моделей проектируемой системы. Система обозначенийсостоит из диаграмм классов, объектов, модулей и процессов.объектно-ориентированный анализ, object-oriented analysis. Метод анализа,согласно которому требования рассматриваются с точки зрения классов и объектов,составляющих словарь предметной области.объект-член, member object. Часть состояния объекта.
В совокупности объектычлены полностью определяют структуру объекта. Термины «переменная экземпляра»,«поле». «объект-член» и «слот» взаимозаменяемы.ограничение, constraint. Выражение некоторого смыслового условия, котороедолжно выполняться.операция класса, class operation. Операция, например, конструктор илидеструктор, общая для всего класса и не принадлежащая конкретному объекту.операция, operation. Нечто, проделываемое одним объектом над другим, чтобывызвать реакцию.
Все операции, которые можно выполнить над каким-либо объектом,сосредоточены в свободных подпрограммах и функциях-членах (методах). Термины«операция», «метод» и «сообщение» взаимозаменяемы.ответственность, responsibility. Поведение, за которое ответственен объект.открытая, public. Часть интерфейса какого-либо класса, объекта или модуля,открытая (видимая) для всех классов, объектов и модулей.параллелизм, concurrency.
Свойство, отличающее активные объекты отнеактивных.параллельный объект, concurrent object. Активный объект, способныйработать в многопоточной среде.параметризованный класс, parameterized class. Класс, служащий шаблономдля других классов; шаблон параметризуется другими классами, объектами и/илиоперациями. Параметризованный класс должен быть инстаццирован до созданияобъектов. Параметризованные классы используются как контейнеры. Термины«обобщенный класс» и «параметризованный класс» взаимозаменяемы.пассивный объект, passive object.
Объект, не имеющий собственного потокауправления.переменная класса, class variable. Часть состояния класса. Совокупность всехпеременных класса образует его структуру. Переменные класса совместно используютсявсеми его экземплярами. В C++ переменная класса объявляется как статический член.переменная экземпляра, instance variable. Часть состояния объекта. Всовокупности переменные экземпляра полностью определяют структуру объекта.Термины «переменная экземпляра», «поле», «объект-член» и «слот» взаимозаменяемы.переход, transition. Переход из одного состояния в другое.поведение, behavior. Действия и реакции объекта, выраженные в терминахпередачи сообщений и изменения состояния; видимая извне и воспроизводимаяактивность объекта.подкласс, subclass.
Класс, наследующий от одного или нескольких классов(которые называются его непосредственными суперклассами).подсистема, subsystem. Совокупность модулей, часть которых видима длядругих подсистем, а часть — скрыта.поле, field. Часть состояния объекта; совокупность полей объекта образуют егоструктуру.
Термины «поле», «переменная экземпляра», «объект-член» и «слот» означаютодно и то же.полиморфизм, polymorphism. Положение теории типов, согласно которомуимена (например, переменных) могут обозначать объекты разных (но имеющих общегородителя) классов. Следовательно, любой объект, обозначаемый полиморфным именем,может по-своему реагировать на некий общий набор операций.последовательное проектирование, round-trip gestalt design. Стильпроектирования, который подчеркивает последовательность и итеративность в развитиисистемы: посредством уточнения различных, хотя и согласованных логических ифизических представлений системы в целом; объектно-ориентированное проектированиеосновывается на последовательном проектировании, что является выражениемвзаимозависимости общей картины проекта и его деталей.последовательный объект, sequential object.
Пассивный объект, рассчитанныйна работу в однопоточном окружении.постусловие, postcondition. Инвариант, соблюдаемый на выходе из операции.поток управления, thread of control. Отдельный процесс. Запуск потокауправления приводит к возникновению независимой динамической деятельности всистеме; данная система может иметь несколько одновременно выполняемых потоков,некоторые из которых могут динамически возникать и уничтожаться.Многопроцессорные системы допускают истинную многопоточность.
в то время как наоднопроцессорных компьютерах возможна только иллюзия многопоточности. (Термин«thread of control» переводится также «нить управления». В данном издании принятперевод «поток управления» как более распространенный. Отметим, что в некоторыхслучаях автор использует термин «flow of control», который переведен также. — Примеч.ред.)предусловие, precondition. Инвариант, предполагаемый на входе в операцию.примесь, mixin. Класс, реализующий какое-либо четко выделенное поведение;используется для уточнения поведения других классов посредством наследования;поведение примеси обычно ортогонально поведению класса, с которым она смешивается.пространственная сложность, space complexity, Относительный илиабсолютный объем памяти, занимаемый объектом.пространство состояний, state space.
Перечислимое множество всех возможныхсостояний объекта. Пространство состояний программы содержит неопределенное, ноконечное число состояний (не обязательно желаемых или ожидаемых).протокол, protocol. Способы, которыми объекты могут действовать иреагировать; полное статическое и динамическое представление объекта; протоколобъекта определяет допустимое поведение объекта.процесс, process. Запуск одного потока управления.
процессор, processor. Частьаппаратного обеспечения, имеющая вычислительные ресурсы.прямой инжиниринг, forward-engineering. Создание исполнимого кода пологической или физической модели. Противопоставляется обратному инжинирингу.раздел, partition. Категории классов или подсистемы, составляющие частьданного уровня абстракции.реактивная система, reactive system.
Система, движимая событиями. Поведениетакой системы не определяется простым отображением «вход-выход».реализация, implementation. Внутреннее представление класса, объекта илимодуля, включая секреты его поведения.роль, role. Способность или цель, с которой класс или объект участвует вотношениях с другими; некоторая четко выделяемая черта поведения объекта вопределенный момент времени; роль — это лицо, которое объект являет миру в данныймомент.свободная подпрограмма, free subprogram. Процедура или функция, котораявыполняется как непримитивная операция над объектом или объектами одного и тожеили различных классов. Свободная подпрограмма — это любая подпрограмма, котораяне является методом какого-либо класса.связь, link. Связь между объектами, экземпляр ассоциации. селектор, selector.Операция, имеющая доступ к состоянию объекта, но не изменяющая его.сервер, server.
Объект, который никогда не воздействует на другие объекты, ноиспользуется ими; объект, предоставляющий некоторые услуги.сигнатура, signature. Полная спецификация операции с указанием типоваргументов и возвращаемого значения.сильно типизированный, strongly typed. Свойство языка программирования, всоответствии с которым во всех выражениях гарантируется согласованность типов.синхронизация, synchronization. Семантика параллельности операции.Операция может быть простой (присутствует только один поток управления);синхронной (рандеву двух потоков); односторонняя (рандеву, при котором одному изпотоков приходится ждать);по истечении времени (рандеву, в котором один процессждет другого определенное время); асинхронной (два процесса независимы друг отдруга).система реального времени, real-time system.
Система, в которой некоторыесущественные процессы должны укладываться в отведенное время. Система «жесткого»реального времени должна быть детерминированной; запаздывание с реакцией грозиткатастрофой.скрытие информации, information hiding. Процесс скрытия всех секретовобъекта, которые ничего не добавляют к его существенным характеристикам; обычноскрывают структуру объекта и реализацию его методов.словарь данных, data dictionary. Полный перечень всех классов в системе. слой,layer.
Совокупность категорий классов или подсистем одного уровня абстракции.слот, slot. Часть состояния объекта; совокупность слотов образуют структуруобъекта. Термины «поле», «переменная экземпляра», «объект-член» и «слот» означаютодно и то же.событие, event. Что-то, что может изменить состояние системы.сообщение, message. Операция, которую один объект может выполнять наддругим. Термины «сообщение», «метод» и «операция» обычно взаимозаменяемы.составной объект (агрегат), aggregate object. Объект, состоящий из другихобъектов (его частей).состояние, state. Совокупный результат поведения объекта: одно из стабильныхусловий, в которых объект может существовать, охарактеризованных количественно; влюбой конкретный момент времени состояние объекта включает в себя перечень(обычно, статический) свойств объекта и текущие значения (обычно, динамические) этихсвойств.сотрудничество, collaboration.
Процесс, в котором несколько объектовсотрудничают для обеспечения требуемого поведения верхнего уровня.сохраняемость, persistence. Способность объекта существовать во времени,переживая породивший его процесс, и (или) в пространстве, перемещаясь из одногоадресного пространства в другое.среда разработки, framework. Набор классов, предоставляющих некоторыебазовые услуги в определенной области. Таким образом, среда разработки экспортируетклассы и механизмы, которые клиенты могут использовать или адаптировать.статическое связывание, static binding.