Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Применение объектно-ориентированного подхода при проектировании информационной системы (Основные достоинства и недостатки подхода объектно-ориентированного подхода)

Содержание:

ВВЕДЕНИЕ

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

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

1) рассмотреть понятие и сущность объектно-ориентированного подхода,

2) проанализировать принципы объектно-ориентированного подхода,

3) исследовать достоинства объектно-ориентированного подхода,

4) изучить недостатки объектно-ориентированного подхода,

5) исследовать объектно-ориентированные языки высокого уровня,

6) проанализировать основные характеристики программных средств, используемых для реализации объектно-ориентированного подхода.

Объектом исследования является объектно-ориентированное программирование. Предметом исследования выступают особенности применения объектно-ориентированного подхода при проектировании информационных систем.

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

1.1 Понятие и сущность объектно-ориентированного подхода

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

Объектно-ориентированное программирование предполагает использование для разработки специализированных языков. Их принято характеризовать тройкой основных свойств:

- инкапсуляцией, то есть комбинирование записей с функциями и процедурами, а также манипулирующими полями данных записей, формируя принципиально новую разновидность данных, названную объектом;

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

- полиморфизмом, то есть возможностью присвоить действиям одно имя, которое будет потом совместно использоваться вниз и вверх по объектной иерархии, при этом на каждый объект иерархии будет возложено выполнение действия таким способом, который подходит именно ему [9, c.104].

Объектно-ориентированное программирование Delphi предоставляет полный набор средств по программированию, в числе которых можно выделить: большую модульность и структурированность, абстрактность, встроенную возможность повторного применения. Эти все характеристики можно отнести к коду, являющемуся более структурированным, более легким в плане обслуживания и заметно более гибким. Очень часто объектно-ориентированное программирование вынуждает нас оставить в стороне характерные суждения о программировании, многие годы считавшиеся стандартными. Однако, когда это уже сделано, данный способ разработки не кажется таким сложным, а представляется наглядным и прекрасным средством для решения множества задач, доставляющих огромные неприятности тривиальному программному обеспечению [10, c.112].

Если основной задачей является, к примеру, изучение объектно-ориентированное программирование на PHP, то стоит отбросить и забыть то, что было знакомо о нем ранее, приступив к его изучению с чистого листа. Только так вы сумеете рассмотреть все тонкости этого подхода, оценить его удобство и возможности. Объектно-ориентированное программирование не представляет собой единственный путь, оно больше похоже на континуум идей, ориентированным на компилирование чистого кода. Компилятор работает по несколько иным принципам, если сравнивать его с интерпретатором, при этом скорость его работы намного выше. Компиляторы нацелены на разработку каких-либо готовых программных продуктов, а не на решение ограниченного круга задач [12, c.83].

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

1.2 Принципы объектно-ориентированного подхода

Все языки объектно-ориентированного программирования предоставляют механизмы, которые облегчают реализацию объектно-ориентированной модели. Этими механизмами являются инкапсуляция, наследование и полиморфизм [8, c.74]

Рассмотрим эти концепции.

Инкапсуляция. Механизм, связывающий код и данные, которыми он манипулирует, защищая оба эти компонента от внешнего вмешательства и злоупотреблений, является инкапсуляцией. Инкапсуляцию можно считать защитной оболочкой, которая предохраняет код и данные от произвольного доступа со стороны другого кода, находящегося снаружи оболочки. Доступ к коду и данным, находящимся внутри оболочки, строго контролируется тщательно определенным интерфейсом. Чтобы провести аналогию с реальным миром, рассмотрим автоматическую коробку передач автомобиля. Она инкапсулирует сотни бит информации об автомобиле, такой как степень ускорения, крутизна поверхности, по которой совершается движение, и положение рычага переключения скоростей. Пользователь (водитель) может влиять на эту сложную инкапсуляцию только одним методом: перемещая рычаг переключения скоростей. На коробку передач нельзя влиять, например, при помощи индикатора поворота или дворников. Таким образом, рычаг переключения скоростей — строго определенный (а в действительности единственный) интерфейс к коробке передач. Более того, происходящее внутри коробки передач не влияет на объекты, находящиеся вне ее. Например, переключение передач не включает фары! Поскольку функция автоматического переключения передач инкапсулирована, десятки изготовителей автомобилей могут реализовать ее, как угодно. Однако с точки зрения водителя все эти коробки передач работают одинаково. Аналогичную идею можно применять к программированию. Сила инкапсулированного кода в том, что все знают, как к нему можно получить доступ, а, следовательно, могут его использовать независимо от нюансов реализации и не опасаясь неожиданных побочных эффектов [11, c.136].

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

Полиморфизм (от греч. “много форм”) — свойство, которое позволяет использовать один и тот же интерфейс для общего класса действий. Конкретное действие определяется конкретным характером ситуации. Рассмотрим стек (представляющий собой список типа “последним вошел, первым вышел”). Предположим, программе требуются стеки трех типов: для целочисленных значений, для значений с плавающей точкой и для символов. Алгоритм реализации каждого из этих стеков остается неизменным, несмотря на различие хранящихся в них данных. В не объектно-ориентированном языке пришлось бы создавать три различных набора подпрограмм стека, каждый из которых должен был бы иметь отдельное имя. Однако в Java, благодаря полиморфизму, можно определить общий набор подпрограмм стека, использующих одни и те же имена [13, c.84].

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

2. Основные достоинства и недостатки подхода объектно-ориентированного подхода

2.1 Достоинства объектно-ориентированного подхода

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

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

Данные и операции вместе образуют определенную сущность, и они не «размазываются» по всей программе, как это нередко бывает в случае процедурного программирования.

Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения [8, c.93].

Инкапсуляция информации защищает наиболее критичные данные от несанкционированного доступа.

ООП дает возможность создавать расширяемые системы (extensible systems). Это одно из самых значительных достоинств ООП и именно оно отличает данный подход от традиционных методов программирования. Расширяемость (extensibility) означает, что существующую систему можно заставить работать с новыми компонентами, причем без внесения в нее каких-либо изменений. Компоненты могут быть добавлены на этапе выполнения.

Расширение типа (type extension) и вытекающий из него полиморфизм переменных оказываются полезными преимущественно в следующих ситуациях.

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

Изменение поведения во время выполнения. На этапе выполнения один объект может быть заменен другим. Это может привести к изменению алгоритма, в котором используется данный объект.

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

Доведение полуфабрикатов. Компоненты нет надобности подстраивать под определенное приложение. Их можно сохранять в библиотеке в виде полуфабрикатов (semifinished products) и расширять по мере необходимости до различных законченных продуктов.

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

Многоразового использования программного обеспечения на практике добиться не удается из-за того, что существующие компоненты уже не отвечают новым требованиям. ООП помогает этого достичь без нарушения работы уже имеющихся клиентов, что позволяет нам извлечь максимум из многоразового использования компонент [14, c.125].

Компоненты многоразового использования обычно содержат гораздо меньше ошибок, чем вновь разработанные, ведь они уже не раз подвергались проверке.

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

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

2.2 Недостатки подхода

Объектно-ориентированное программирование требует знания четырех вещей.

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

2) Многоразовое использование требует от программиста познакомиться с большими библиотеками классов. А это может оказаться сложнее, чем даже изучение нового языка программирования. Библиотека классов фактически представляет собой виртуальный язык, который может включать в себя сотни типов и тысячи операций. В языке Smalltalk, к примеру, до того, как перейти к практическому программированию, нужно изучить значительную часть его библиотеки классов. А это тоже требует времени.

3) Проектирование классов — задача куда более сложная, чем их использование. Проектирование класса, как и проектирование языка, требует большого опыта. Это итеративный процесс, где приходится учиться на своих же ошибках.

4) Очень трудно изучать классы, не имея возможности их «пощупать». Только с приобретением опыта можно уверенно себя почувствовать при работе с использованием ООП [7, c.142].

Усилия на освоение базовых концепций невелики, но вот в случае библиотек классов и их использования они могут быть очень существенными.

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

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

В сложных иерархиях классов поля и методы обычно наследуются с разных уровней. И не всегда легко определить, какие поля и методы фактически относятся к данному классу. Для получения такой информации нужны специальные инструменты вроде навигаторов классов. Если конкретный класс расширяется, то каждый метод обычно сокращают перед передачей сообщения базовому классу. Реализация операции, таким образом, рассредоточивается по нескольким классам, и чтобы понять, как она работает, нам приходится внимательно просматривать весь код [15, c.73].

Методы, как правило, короче процедур, поскольку они осуществляют только одну операцию над данными. Зато количество методов намного выше. Короткие методы обладают тем преимуществом, что в них легче разбираться, неудобство же их связано с тем, что код для обработки сообщения иногда «размазан» по многим маленьким методам.

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

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

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

1) Неэффективность на этапе выполнения. В языках типа Smalltalk сообщения интерпретируются во время выполнения программы путем осуществления поиска их в одной или нескольких таблицах и за счет выбора подходящего метода. Конечно, это медленный процесс. И даже при использовании наилучших методов оптимизации Smalltalk-программы в десять раз медленнее оптимизированных C-программ [6, c.82].

В гибридных языках типа Oberon-2, Object Pascal и C++ посылка сообщения приводит лишь к вызову через указатель процедурной переменной. На некоторых машинах сообщения выполняются лишь на 10% медленнее, чем обычные процедурные вызовы. И поскольку сообщения встречаются в программе гораздо реже других операций, их воздействие на время выполнения влияния практически не оказывает.

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

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

3) Излишняя универсальность. Неэффективность может также означать, что программа имеет ненужные возможности. В библиотечном классе часто содержится больше методов, чем это реально необходимо. А поскольку лишние методы не могут быть удалены, то они становятся мертвым грузом. Это не воздействует на время выполнения, но влияет на возрастание размера кода [16, c.94].

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

Другой подход — дать возможность компоновщику удалять лишние методы.

Такие интеллектуальные компоновщики уже доступны для различных языков и операционных систем.

3. Обзор программных средств для реализации объектно-ориентированного программирования

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

Впервые объектно-ориентированное программирование начало применяться в языке Simula 67, который оказал большое влияние на развитие таких языков, как Lisp и Smalltalk. Но наибольшее развитие ООП получил в середине 90-х, когда был создан «классик ООП» C++, работу которого с объектами переняли популярные среды программирования Delphi и VisualFoxPro. ООП продолжает развиваться, и среди новых парадигм можно выделить аспектно-ориентированную и субъектно-ориентированную парадигму. Каждый объектно-ориентированный язык расширяет базовые понятия ООП уникальными дополнениями и расширениями, в зависимости от специфики использования [1, c.72]

Рассмотрим примеры языков программирования высокого уровня, которые относятся к категории объектно-ориентированных. В числе таковых — Visual Basic, Delphi, Visual Fortran, C++, а также Prolog ++. Фактически все они в своей основе содержат процедурно-ориентированные языки. Однако предполагается существенное их дополнение визуальными элементами управления с целью последующего освоения необходимых алгоритмов разработчиками, привыкшими к другим инструментам. Так, первый язык программирования высокого уровня — Фортран — может быть в оперативные сроки изучен IT-специалистами посредством возможностей Visual Fortran. Аналогичным методом можно быстро освоить Бейсик или Пролог.

Осуществляется, в свою очередь, при использовании Delphi программирование на языке высокого уровня Object Pascal. Существует большое количество иных сред разработки ПО, классифицируемых как объектно-ориентированный язык. Данная сфера технологий разработки ПО активно развивается.

Языки, принадлежащие семейству С, являются частными конструкциями C. Так, его дополнение различными объектно-ориентированными компонентами привело к разработке C++. После существенной фильтрации ряда конструкций C появился язык Java. Можно отметить, что Java создавался во многом под влиянием концепций проекта Oberon, которым руководит Никлаус Вирт, создатель языка Паскаль. Относится ли к высокоуровневым JavaScript? Безусловно, да, несмотря на узость применения — в качестве инструмента разработки веб-страниц. Но к языкам программирования высокого уровня не относятся, в частности, HTML, XML и SGML. Они классифицируются как инструменты разметки гипертекста [17, c.125].

В основе среды разработки лежит подмножество языка Pascal с элементами ООП - Object Pascal. Среда и язык Delphi были первой графической средой разработки программ для MS Windows. Объектно-ориентированное программирование delphi есть набор стандартных абстрактных классов, инкапсулирующих в себе определенные элементы Windows-программы, такие как графический интерфейс, работа с оперативной памятью и т. д. Delphi оказал значительное влияние на развитие всех объектно-ориентированных языков, особенно на язык C# для среды разработки .NET компании Microsoft. Последняя версия Delphi 8 работает только с .NET.

PHP является одним из самых популярных языков для веб-разработки и первоначально представлял собой полностью процедурный язык программирования. Поэтому объектно-ориентированное программирование на php появилось позднее, начиная с четвертой версии. Необходимость поддерживать оба стиля программирования – процедурный и объектно-ориентированный - привела к тому, что элементы ООП до сих пор являются дополнением, а не основой языка. Но ситуация стремительно меняется в сторону объектного PHP. Версия PHP 5 полностью поддерживает все элементы ООП, и разработчик имеет полную свободу в создании собственных классов и объектов, в отличие от Delphi, где разработчик так или иначе должен использовать стандартные классы со всеми их возможными недостатками. Синтаксис объектных элементов PHP не представляет сложности программистам, ранее работающим на C++/# и Delphi [2, c.103].

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

3.2 Основные характеристики программных средств, используемых для реализации объектно-ориентированного подхода

Delphi — среда разработки прикладных программ, которые предназначены для запуска в ОС Windows, MacOS, а также в мобильных операционных системах — iOS и Android. Характеризуется простотой языка и процедур генерации кода.

При необходимости обеспечивает низкоуровневую коммуникацию с ОС и библиотеками, составленными на языках C и C++. Программы, которые создаются с помощью Delphi, не требуют сторонних оболочек для запуска — таких как, например, Java Virtual Machine. Delphi — среда разработки, которая может успешно применяться как профессионалами, так и в учебных целях. Для того чтобы освоить базовые ее возможности, необязательно обладать высокой квалификацией и знанием сложных языков программирования.

Изучим то, каковы ключевые преимущества программного продукта, о котором идет речь. Когда в той или иной IT-компании осуществляется обоснование выбора среды разработки, Delphi становится выбором многих программистов и рекомендуется ими к использованию. Это связано с тем, что данная среда позволяет создавать приложения в самые оперативные сроки, обеспечивать их высокую производительность даже на тех компьютерах, которые имеют скромные аппаратные характеристики. Значимый аргумент в пользу выбора рассматриваемой среды разработки — ее можно дополнять за счет новых инструментов, не предусмотренных стандартным набором решений, присутствующим в интерфейсе Delphi [18, c.73].

Можно обратить внимание на некоторые особенности интерфейса рассматриваемой среды разработки ПО. Так, структура рабочего пространства программы предполагает одновременную работу с несколькими основными окнами. Рассмотрим данное свойство подробнее.

Среда разработки Delphi, 7 версии в частности, предполагает задействование следующих ключевых модулей: дизайнера форм, редактора, палитры, инспектора объектов, а также справочника. В некоторых модификациях Delphi отмеченные компоненты могут именоваться иначе. Например, редактору может соответствовать окно кода программы, дизайнеру — окно формы. Однако функциональное назначение их будет тем же самым. Отмеченные элементы интерфейса Delphi могут дополнять различные вспомогательные инструменты. Основными с точки зрения процедур разработки программ считаются первые два. Но важны также и остальные. Рассмотрим особенности пользования отмеченными модулями Delphi.

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

Как только пользователь начинает создавать программу и запускает дизайнер форм, то изначально в нем нет никаких элементов, он пустой. Но его тут же можно заполнить с помощью инструментов, расположенных на другом модуле Delphi — палитре. Элементы интерфейса программы, которые настраиваются в дизайнере форм, должны управляться командами, которые, в свою очередь, пишутся в редакторе чт.

Вернемся к палитре. С помощью нее можно размещать в области дизайнера форм нужные объекты. Для того чтобы использовать тот или иной инструмент, следует щелкнуть один раз на нем — пока он в области палитры, второй раз — в окне дизайнера форм. После этого соответствующий объект переместится в область разработки, и для него можно прописывать код в редакторе [3, c.93].

Другой значимый элемент, который содержит Delphi — среда разработки приложений для ОС Windows и иных распространенных платформ — инспектор объектов. Можно отметить, что информация, отображаемая в нем, меняется: на это влияет статус объекта, который выбран в области дизайнера форм.

Рис. 1 Окно Delphi

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

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

Разработка программного обеспечения в Delphi предполагает использование инспектора объектов для решения самых разных задач. Это предопределяется тем, что с помощью данного инструмента можно изменять свойства фактически любых объектов, расположенных на форме, а также ее самой. Изучим подробнее некоторые особенности работы с инспектором объектов [19, c.102].

Delphi — среда разработки, которая дополнена достаточно подробной справочной системой. Для того чтобы обратиться к ней, следует выбрать в меню пункт Help. После этого в окне отобразится один из отмеченных нами выше программных модулей рассматриваемой среды разработки — справочник. Особенность пользования им в том, что при нажатии F1 пользователь получит конкретную подсказку, отражающую специфику задействования текущего инструмента. Например, если программист работает с инспектором объектов, то он может выбрать одно из свойств, после чего нажать на F1 и получить справочную информацию о соответствующей опции. То же самое можно делать при работе с любым другим элементом интерфейса, который включает в себя среда разработки Delphi 7 и иные версии соответствующего типа ПО.

В числе иных значимых компонентов интерфейса рассматриваемого программного решения — меню, панель быстрого доступа, а также редактор изображений. Касательно меню — оно позволяет программисту получать быстрый доступ к нужным компонентам, присутствующим в структуре среды разработки. Пользоваться им можно как с помощью мыши, так и при задействовании горячих клавиш. Чуть ниже меню располагается панель быстрого доступа. Некоторые из ее функций дублируют те, что характерны для меню, но доступ к ним осуществляется быстрее. Редактор изображений Delphi в чем-то похож на программу Paint в Windows. То есть с помощью него можно производить простейшие корректировки картинок, наносить на них надписи и иные элементы [4, c.73].

Рассмотрим еще одно средство объектно-ориентированного программирования - Visual Basic.

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

Основные возможности языка Visual Basic:

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

- Создание самых разнообразных многоуровневых и всплывающих меню.

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

- Управление цветом, настройками принтера, использование стандартных диалогов.

- Работа с графикой, рисование, обработка изображений.

- Использование таймера.

- Обработка файлов и каталог на жестком диске.

- Доступ к базам данных.

- Разработка собственных элементов управления ActiveX.

VB и Delphi имеют окна с одинаковыми именами и функциональностью. Например, оба продукта имеют окна, позволяющие модифицировать свойства элементов управления. Visual Basic является средой разработки с многодокументным интерфейсом (MDI); все его окна размещаются в основном окне приложения. Delphi, в свою очередь, является средой с однодокументным интерфейсом (SDI) с самостоятельными свободно-перемещаемыми окнами. В последующих параграфах будут представлены IDE-элементы Delphi, а также проведено их сравнение и противопоставление соответствующим окнам VB [20, c.102].

Как и VB, Delphi имеет горизонтальное меню. Горизонтальное меню в Delphi представляет собой типичное "выпадающее" меню. Многие опции меню доступны через комбинации "горячих клавиш", приведенные справа от "выпадающего" меню. Через горизонтальное меню разработчик может получить доступ ко всем функциональным возможностям, необходимым для создания приложения.

Новейшая система объектно-ориентированного программирования C++ Builder производства корпорации Borland предназначена для операционных систем Windows 95 и NT. Интегрированная среда C++ Builder обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонент в сочетании с мощью языковых средств C++, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.

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

C++ Builder предоставляет свою мощность и широкие возможности языка C++ всему семейству систем объектно-ориентированного программирования. C++ Builder может быть использован везде, где требуется дополнить существующие приложения расширенным промышленным стандартом языка C++, повысить быстродействие и придать пользовательскому интерфейсу профессиональный облик [5, c.96].

Все компоненты, формы и модули данных, которые накопили программисты, работающие в Delphi, могут быть повторно использованы в приложениях C++Builder для Windows без каких бы то ни было изменении. Delphi пока еще продолжает оставаться самой легкой в использовании и самой продуктивной системой RAD. Поэтому C++Builder идеально подойдет тем разработчикам, которые предпочитают выразительную мощность языка C++, однако хотят сохранить продуктивность Delphi. Уникальная взаимосвязь этих систем программирования позволяет при создании приложения без труда переходить из одной среды разработки в другую.

Современные программисты, как правило, владеют по меньшей мере одним из этих языков. Если осуществляется работа в среде Delphi, переход на C++Builder не покажется слишком болезненным, и наоборот. Обе системы находятся на примерно одинаковом уровне популярности среди потребителей. Обе системы построены на идентичном фундаменте - Библиотеке Визуальных Компонент.

ЗАКЛЮЧЕНИЕ

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

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

Объектно-ориентированное программирование предполагает использование для разработки специализированных языков. Их принято характеризовать тройкой основных свойств:

- инкапсуляцией, то есть комбинирование записей с функциями и процедурами, а также манипулирующими полями данных записей, формируя принципиально новую разновидность данных, названную объектом;

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

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

Все языки, поддерживающие объектно-ориентированное программирование, имеют одинаковую трактовку понятия класса и объекта. Класс - тип данных для описания свойств и работы «реального» объекта, такого как банковский счет. Объект - отдельный экземпляр класса. Метод - программный код, изменяющий поведение объекта или его состояние в зависимости от значения его свойств. Модификатор доступа - метод, разделяющий элементы класса на открытые и закрытые поля. Конструктор - метод, выполняющийся первым после инициализации объекта и приводящий его в исходное состояние. Деструктор - метод, вызываемый при удалении объекта. На схеме показано взаимодействие элементов класса.

В основе среды разработки лежит подмножество языка Pascal с элементами ООП - Object Pascal. Среда и язык Delphi были первой графической средой разработки программ для MS Windows. Объектно-ориентированное программирование delphi есть набор стандартных абстрактных классов, инкапсулирующих в себе определенные элементы Windows-программы, такие как графический интерфейс, работа с оперативной памятью и т. д. Delphi оказал значительное влияние на развитие всех объектно-ориентированных языков, особенно на язык C# для среды разработки .NET компании Microsoft. Последняя версия Delphi 8 работает только с .NET.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Аспекты проектирования информационных систем/ В.Ф. Бабак, И.Н. Рыженко// Тезисы конференции посвященной 200-ю со дня рождения Пушкина, Бишкек- КРСУ, 2014. – 248 с.
  2. Васильев А., Андреев A. VBA в Office 2000: Учебный курс / В. Васильев, А. Андреев. - СПб.: Питер, 2011.-432 с.
  3. Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем / А.М. Вендров. – М.: Финансы и статистика, 2007.– 176 с.
  4. Вендров A.M. Практикум по проектированию программного обес-печения экономических информационных систем. Учебное пособие / А.М. Вендров. -М.: Финансы и статистика, 2002. - 192 с.
  5. Гаврилов М. В. Информатика и информационные технологии: учебник для бакалавров / М. В. Гаврилов, В. А. Климов. 3-е изд., перераб. и доп. М.: Юрайт, 2013. – 378 с.
  6. Грекул В. И. Проектирование информационных систем : учеб. пособие / Грекул В. И., Денищенко Г. Н., Коровкина Н. Л. - М. :Интернет-Университет Информационных Технологий, 2008. - 300 с.
  7. Грэхем И. Объектно-ориентированные методы. Принципы и практика / И. Грэхем. –М.: Вильямс, 2014.–880 с.
  8. Ивасенко А. Г. Информационные технологии в экономике и управлении: учеб. пособие для вузов / Ивасенко А. Г., Гридасов А. Ю., Павленко В. А. - М.: КноРус, 2015. - 154 с.
  9. Козырев А. А. Информационные технологии в экономике и управлении: учебник / Козырев А. А. - СПб.: Питер, 2013. - 496 с.
  10. Маклаков С.В. Моделирование бизнес-процессов с AllFusion Pro-cess Modeler / С.В. Маклаков. – М.: ДИАЛОГ-МИФИ, 2013. – 240 с.
  11. Методология структурного анализа и проектирования/ Д.А. Марка, К. МакГоуэн.- М.: МетаТехнология, 2013. – 528 с.
  12. Назаров С.В., Мельников П.П. Программирование на MS Visual basic. Учебное пособие / С.В. Назанов, П.П. Мельников. -М.: Финансы и статистика, 2013. - 320 с.
  13. Новоженов Ю. В. Объектно-ориентированные технологии разработки сложных программных систем / Ю.В. Новоженов. - М.: ИНФРА-М, 2014. – 458 с.
  14. Попов И.И. Автоматизированные информационные системы (по отраслям применения): Учеб. пособие / И.И. Попов. - М.: Изд-во РЭА, 2013.-103 с.
  15. Саак, А. Э. Информационные технологии управления: учеб. для вузов / Саак А. Э., Пахомов Е. В., Тюшняков В. Н. СПб. :Питер, 2013. - 320 с.
  16. Титаренко Г. А. Информационные технологии управления / Г. А. Титоренко. - М.: Юнити-Дана, 2013. – 439 с.
  17. Трубилин И. Т. Автоматизированные информационные технологии в экономике: учеб. для вузов / И. Т. Трубилин. - М.: Финансы и статистика, 2012. - 416 с.
  18. Угринович Н.Д. Информатика и ИКТ. Базовый уровень. Учебник для 10 класса / Н. Д. Угринович. - М.: БИНОМ, 2013. - 456 с.
  19. Федотова Д.Э., Семенов Ю.Д., Чижик К.Н. Case – технологии. Практикум / Д.Э. Федотова, Ю.Д. Семенов, К.Н. Чижик. – М.: Горячая линия-Телеком, 2013. – 160 с.
  20. Черников Б. В. Информационные технологии управления: учеб. для вузов / Черников Б. В. - М. :ФОРУМ, 2013. - 352 с.