Способностью к распознаванию объектов физического мира человек владеет из самого раннего возраста. Ярко окрашенный мяч привлекает внимание ребенка, но, если спрятать мяч, ребенок, как правило, не пытается его искать: только что предмет оставляет поле зрения, он перестает существовать для ребенка. Только в возрасте около года у ребенка появляется представление о предмете: навык, незаменимый для распознавания. Покажите мяч однолетнему ребенку и спрячьте его: скорее всего, ребенок начнет искать спрятанный предмет. Ребенок связывает понятие предмета с постоянством и индивидуальностью формы независимо от действий, которые выполняются над этим предметом. Раньше объект был неформальный определен как ощутимая реальность, которая проявляет поведение, которое четко выделяется. С точки зрения восприятия человеком объектом может быть: • ощутимый и (или) видимый предмет; • что-то, воспринимаемое мышлением; • что-то, на что направлена мысль или действие.
Таким образом, объект моделирует часть окружающей действительности и таким способом существует во времени и пространстве. Термин объект, в программном обеспечении впервые был введен в языке SImula и применялся для моделирования реальности. Более выразительное определение объекта дают Смит и Ток. Объект являет собой конкретный предмет, который узнается, единицу или сущность (реальную или абстрактную), которая имеет четко определенное функциональное назначение в данной предметной области". В еще более общем плане объект может быть определен как что-то, что имеет четко очерченные границы. Представим себе завод, на котором создаются композитные материалы для таких разных изделий как, скажем, велосипедные рамы и крыла самолетов. Заводы часто разделяются на цеха: механический, химический, электрический и тому подобное. Цеха подразделяются на участки, на каждом из которых установлено несколько единиц оборудования: штампы, прессы, верстать. На производственных линиях можно увидеть множественное число емкостей с исходными материалами, из которых с помощью химических процессов создаются блоки композитных материалов. Потом из них делается конечный продукт - рамы или крыла. Каждый ощутимый предмет может рассматриваться как объект. Станок токаря имеет четко очерченные границі, которые отделяют его от обрабатываемого на этом станке композитного блока; рама велосипеда в свою очередь имеет четкие границы относительно участка с оборудованием.
Существуют такие объекты, для которых определены явные концептуальные границы, но сами объекты являют собой неуловимые события или процессы. Например, химический процесс на заводе можно трактовать как объект, потому что он имеет четкую концептуальную границу, взаимодействует с другими объектами с помощью упорядоченного и распределенного во времени набора операций и проявляет хорошо определенное поведение. Подобно тому, что тот, кто взял к рукам молоток, начинает видеть во всем окружающем лишь гвозди, проектировщик с объектно-ориентированным мышлением начинает воспринимать весь мир в виде объектов. Понятно, такой взгляд немного упрощен, потому что существуют понятия, которые явно не являются объектами. К ним относятся атрибуты, такие, как время, красота, цвета, эмоции (например, любовь или ярость). Однако, потенциально все перечислено - это свойства, что присущие объектам.
Полезно понимать, что объект - это что-то, что имеет четко определенные границі, но этого недостаточно, чтобы отделить один объект от другого или дать оценку качества абстракции. На основе имеющегося опыта можно дать следующее определение: ОБЪЕКТ имеет состояние, поведение и идентичность Объект имеет состояние, владеет некоторым хорошо определенным поведением и уникальной идентичностью.
Для нашей последующей работы необходимо как-то помечать объекты и классы (так называемые нотации есть во всех сферах деятельности человека). На сегодня самой распространенной системой обозначения проектов является UML (Unified Modeling Language - унифицирован язык моделирования) - средство для обозначения объектов и классов в объектно-ориентированном анализе и проектировании. Поддерживается большинством сред программирования, которые позволяют за заданными диаграммами сгенерировать каркас программного кода. Принятый промышленным стандартом.
|