русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-24; просмотров: 1295; Нарушение авторских прав


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

· сложность моделируемой предметной области;

· отсутствие математического аппарата, обеспечивающего удовлетворительные способы описания поведения больших дискретных систем;

· трудность управления процессом разработки программ;

· необходимость обеспечения достаточной гибкости программ.

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

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



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

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

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

В общем случае объекты обладают двумя качествами:

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

2. Они имеют методы, связанные с объектами. Метод определяет особое поведение объекта.

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

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

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

По степени общности различают следующие типы свойств:

· свойства уровня реализации,

· свойства уровня класса.

По количеству значений различают:

· однозначные, или немножественные, свойства,

· многозначные, или множественные, свойства.

По характеру хранимой информации различают:

· содержательные, или сущностные, свойства;

· ссылочные свойства.

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

Свойства уровня реализации и уровня класса могут быть однозначными и многозначными (множественными). Однозначные (немножественные) свойства могут иметь только одно значение. В противоположность этому множественные свойства могут иметь одно или более значений.

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

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

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

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

– прогресс в области архитектуры ЭВМ;

– развитие языков программирования;

– развитие методологии программирования, включая принципы модульности и скрытия данных;

– развитие теории баз данных;

– исследования в области искусственного интеллекта;

– достижения философии и теории познания.

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

Развивавшиеся достаточно независимо технологии построения баз данных оказали влияние на объектный подход, в первую очередь благодаря так называемой модели «сущность-отношение» (ER, entity-relationship). В моделях ER моделирование происходит в терминах сущностей, их атрибутов и взаимоотношений.

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

Объектный подход известен еще издавна. Грекам принадлежит идея о том, что мир можно рассматривать в терминах как объектов, так и событий. А в XVII веке Декарт отмечал, что люди обычно имеют объектно-ориентированный взгляд на мир. В XX веке эту тему развивала Рэнд в своей философии объективистской эпистемологии. Позднее Мински предложил модель человеческого мышления, в которой разум человека рассматривается как общность различно мыслящих агентов. Он доказывает, что только совместное действие таких агентов приводит к осмысленному поведению человека.



<== предыдущая лекция | следующая лекция ==>
Реализация замысла и документирование | Принципы объектно-ориентированной технологии


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.