Сущность объектно-ориентированного подхода к программированию




Основные идеи объектно-ориентированного подхода опираются на следующие положения:

- Программа представляет собой модель некоторого реального процесса, части реального мира.

- Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.

- Объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект.

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

- Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.

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

Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.

Классы объектов часто удобно строить так, чтобы они образовывали иерархическую структуру. Например, класс “Студент”, описывающий абстрактного студента, может служить основой для построения классов “Студент 1 курса”, “Студент 2 курса” и т.д., которые обладают всеми свойствами студента вообще и некоторыми дополнительными свойствами, характеризующими студента конкретного курса. При разработке интерфейса с пользователем программы могут использовать объекты общего класса “Окно” и объекты классов специальных окон, например, окон информационных сообщений, окон ввода данных и т.п. В таких иерархических структурах один класс может рассматриваться как базовый для других, производных от него классов. Объект производного класса обладает всеми свойствами базового класса и некоторыми собственными свойствами, он может реагировать на те же типы сообщений от других объектов, что и объект базового класса и на сообщения, имеющие смысл только для производного класса. Обычно говорят, что объект производного класса наследует все свойства своего базового класса.

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

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

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

Наиболее используемыми в настоящее время объектно-ориентированными языками являются Паскаль с объектами и Си++, причем наиболее развитые средства для работы с объектами содержатся в Си++.

Практически все объектно-ориентированные языки программирования являются развивающимися языками, их стандарты регулярно уточняются и расширяются. Следствием этого развития являются неизбежные различия во входных языках компиляторов различных систем программирования..Наиболее распространенными в настоящее время являются системы программирования Microsoft C++, Microsoft Visual C++ и системы программирования фирмы Borland International. Дальнейший материал в данном пособии излагается применительно к системе программирования Borland C++. Это связано прежде всего наличием в этой системе программирования развитой интегрированной среды, объединяющей текстовый редактор, компилятор, редактор связей (компоновщик) и отладочные средства.

 

Заключение

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

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

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

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

Создавая программы размером до 1000 операторов, в которых отсутствуют ошибки, хотя и можно, но достаточно трудно. Однако теоретически и практически в девяти случаях из десяти несложно составить правильную программу из 50 операторов. С помощью методов структурного программирования можно программу из 1000 операторов записать в виде 20 блоков по 50 операторов в каждом, причем не в виде автономных программ, а как последовательно выявляются части программы. Если 18 из этих 20 блоков не содержат первичных ошибок, а остальные 2 могут быть исправлены, то можно получить высокую степень доверия к реальной программе, состоящей из 1000 операторов.

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

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

 

 

Список литературы

1. Бьерн Страуструп «Языки программирования С и С++»2. Д.П. Клочков, Д.А. Павлов «Введение в объективно-ориентированное программирование» - Н.Новгород, 1995. 3. М.М. Бежанова, И.В. Поттосин «Современные методы и понятия программирования» - Москва, 2000.4. Б.Мейер «Методы программирования» - Москва, 1982.5. Е.А. Жоголев «Технология программирования» - Москва, 2004.6. С.В. Глушаков «Язык программирования С++» - Харьков, 2002.7. Ю.Н. Патрикеев «Объективно-ориентированное программирование»8. Н.Н. Непейвода «Основания программирования» - Москва, 2003

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: