Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Жизненный цикл проектируемой системы).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.06.2023

Просмотров: 80

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

  1. Eiffel

Разработан президентом компании Interactive Software Engineering (ISE) Бертраном Мейером в 1987 году. В этом языке впервые был реализован метод контрактного программирования, что является самым характерным его свойством: встроенные утверждения создают принудительный контракт между вызывающим оператором и вызываемым кодом подпрограмм[1, с.346].

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

В языке Eiffel программист может присоединить к методу утверждения. Они являются логическими выражениями, которые проверяют состояние объекта во время исполнения, обеспечивая тем самым выполнение определенных условий. Утверждения автоматически наследуются подклассами в прежней форме, даже когда текущие методы переопределяются методами подкласса. Таким образом, утверждения могут использоваться для того, чтобы удостовериться, что дочерний класс ведет себя допустимым образом[11, с.157].

  1. Ada

В 1983 году под эгидой Министерства Обороны США был создан язык Ada. Язык замечателен тем, что очень много ошибок может быть выявлено на этапе компиляции. Кроме того, поддерживаются многие аспекты программирования, которые часто отдаются на откуп операционной системе (параллелизм, обработка исключений). В 1995 году был принят стандарт языка Ada 95, который развивает предыдущую версию, добавляя в нее объекно-ориентированность и исправляя некоторые неточности. Оба этих языка не получили широкого распространения вне военных и прочих крупномасштабных проектов (авиация, железнодорожные перевозки). Основной причиной является сложность освоения языка и достаточно

громоздкий синтаксис[1, с.345].

Разработчики Ada прежде всего беспокоились о:

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

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

Глава 4. Достоинства и недостатки объектно-ориентированного проектирования

Гради Буч сформулировал главное достоинство объектно-ориентированного подхода: объектно-ориентированные системы более открыты и легче поддаются внесению изменений, поскольку их конструкция базируется на устойчивых формах[1]. Это дает возможность системе развиваться постепенно и не приводит к полной ее переработке даже в случае существенных изменений исходных требований.

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

  1. Объектная декомпозиция дает возможность создавать программные системы меньшего размера путем использования общих механизмов, обеспечивающих необходимую экономию выразительных средств. Использование объектного подхода существенно повышает уровень унификации разработки и пригодность для повторного использования не только программ, но и проектов, что в конце концов ведет к созданию среды разработки и переходу к сборочному созданию ПО. Системы зачастую получаются более компактными, чем их структурные эквиваленты, что означает не только уменьшение объема программного кода, но и удешевление проекта за счет использования предыдущих разработок[3, с.83].
  2. Объектная декомпозиция уменьшает риск создания сложных систем ПО, так как она предполагает эволюционный путь развития системы на базе относительно небольших подсистем. Процесс интеграции системы растягивается на все время разработки, а не превращается в единовременное событие[2, стр.33-34].
  3. Объектная модель вполне естественна, поскольку в первую очередь ориентирована на человеческое восприятие мира, а не на компьютерную реализацию.
  4. Объектная модель позволяет в полной мере использовать выразительные возможности объектных и объектно-ориентированных языков программирования.

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

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


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

К недостаткам объектно-ориентированного подхода относятся некоторое снижение производительности функционирования ПО из-за использования объектно-ориентированных средств:

  1. Динамическое связывание методов. Обеспечение полиморфного поведения объектов приводит к необходимости связывать методы, вызываемые программой не на этапе компиляции, а в процессе исполнения программы, на что тратится дополнительное время[3, с.93].
  2. Значительная глубина абстракции. ООП-разработка часто приводит к созданию «многослойных» приложений, где выполнение объектом требуемого действия сводится к множеству обращений к объектам более низкого уровня. В таком приложении происходит очень много вызовов методов и возвратов из методов, что, естественно, сказывается на производительности.
  3. Инкапсуляция снижает скорость доступа к данным. Запрет на прямой доступ к полям класса извне приводит к необходимости создания и использования методов доступа[1, с. 86].
  4. Высокие начальные затраты. При переходе от структурного подхода к объектному, как при всякой смене технологии, необходимо вкладывать деньги в приобретение новых инструментальных средств, а также расходы на обучение.

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

Выводы: Обычно сравнивают объектное и процедурное программирование. Процедурное программирование лучше подходит для случаев,

когда важны быстродействие и используемые программой ресурсы, но

требует большего времени для разработки. Объектное – когда важна управляемость проекта и его модифицируемость, а также скорость разработки.

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

Заключение

Объектно-ориентированное проектирование - проверенная технология. Этот метод проектирования успешно используется для создания множества сложных систем в самых разных областях.


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

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

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

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

Библиография

  1. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений / Г. Буч, Р.А. Максимчук, М.У. Энгл и др. – М.: Вильямс, 2010. – 720 с.
  2. Лафоре, Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. – СПб.: Питер, 2015. – 928 с
  3. Мамонова Т.Е. Информатика. Общая информатика. Основы языка C++: учебное пособие / Т.Е. Мамонова; Томский политехнический университет. - Томск: Изд-во Томского политехнического университета, 2011. - 206 с
  4. Орлов С. Технологии разработки программного обеспечения / С.Орлов. — СПб.: Питер, 2002. — 464 с.
  5. Основы разработки программного обеспечения вычислительной системы: Учебное пособие / И.В. Милованов, В.И. Лоскутов– Тамбов : Изд-во ГОУ ВПО ТГТУ, 2011. – 88 с.
  6. Ананьев П.И., Кайгородова М.А. Основы баз данных,2-еизд..: Учебное пособие/ Алт. госуд. технич.ун-тим. И.И. Ползунова.- Барнаул: 2015.- 189.
  7. Программирование. Учебное пособие / Н.А. Давыдова, Е.В. Боровская – М.: БИНОМ. Лаборатория знаний, 2012. –238 с.
  8. Васильев, А.Н. C#. Объектно-ориентированное программирование / А.Н. Васильев. – СПб.: Питер, 2012. – 320 с.
  9. Иванова Г.С. Объектно-ориентированное программирование. Учебник / Г.С. Иванова, Т.Н. Ничушкина. – М.: МГТУ им. Н. Э. Баумана, 2014. – 456 с
  10. Объектно-ориентированное программирование. Язык Smalltalk / Ю.А. Кирютенко, В.А. Савельев. — М.: Вузовская книга, 2006. — 328 с.
  11. Объектно-ориентированное программирование в действии/ Т. Бадд: пер. с англ. А. Бердникова СПб.: Питер, 1997. –460 с
  12. Ашарина, И.В. Язык С++ и объектно-ориентированное программирование в С++. Лабораторный практикум. Учебное пособие / И.В. Ашарина. – М.: Горячая Линия – Телеком, 2015. – 232 с.
  13. Лесневский, А.С. Объектно-ориентированное программирование для начинающих / А.С. Лесневский. – М.: Бином. Лаборатория знаний, 2010. – 232 с.
  14. И.П. Бесценный, Е.Н. Султанкин. Объектно-ориентированный анализ информационной системы для периодических изданий // Математические структуры и моделирование 2011, вып. 23, с. 49–57
  15. С.С. Гайсарян Объектно-ориентированные технологии проектирования прикладных программных систем. URL: http://lab.nix.ru/oop.pdf