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

Категория: Не указан

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

Добавлен: 27.08.2020

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

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

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

2.Понятие объектно-ориентированного анализа. Классы и объекты. Основные отношения между классами и объектами.

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

В результате объектно-ориентированного анализа строится концептуальная база — объектная модель, которая включает в себя 4 главных элемента:

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

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

  3. Модульность - это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули.

  4. Иерархия - это упорядочение абстракций, расположение их по уровням.

Эти элементы являются главными в том смысле, что без них модель не будет объектно-ориентированной. Кроме главных, имеются еще 3 дополнительных элементы:

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

  2. Параллелизм - это свойство, отличающее активные объекты от пассивных.

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

Важным элементом объектной модели является объект. С точки зрения восприятия человеком объектом может быть:

    • осязаемый и (или) видимый предмет;

    • нечто, воспринимаемое мышлением;

    • нечто, на что направлена мысль или действие.

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

    Для инициализации объектов в процессе их конкретизации используются специальные методы, называемые конструкторами. Процесс создания объекта называется реализацией.

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


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

    • открытым (public) – разрешение доступа для всех объектов;

    • защищенным (protected) – разрешение доступа только самому классу и его подклассам;

    • закрытым (private) – разрешение доступа только самому классу.

    Структура и поведение схожих объектов определяет общий для них класс. Классы так же как и объекты вступают в отношения. Выделяют 4 главных типа отношений между классами. Ассоциация — это смысловая связь: один-к-одному, один-ко-многим или многие-ко-многим. Наследование — дочерний класс может унаследовать структуру и поведение родительских классов. Агрегация описывает отношения целого и части (Has-a” — «содержит»: один объект содержится в другом объекте). Использование – это агрегация, когда одна из сторон (клиент) пользуется услугами второй стороны (сервера).

    Моделирование в процессе объектно-ориентированного анализа позволяет решить 4 различные задачи:

    • визуализировать систему в ее текущем или желательном для нас состоянии;

    • определить структуру или поведение системы;

    • получить шаблон, позволяющий затем сконструировать систему;

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

    Основные принципы моделирования:

    1. Выбор модели оказывает определяющее влияние на подход к решению проблемы и на то, как будет выглядеть это решение.

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

    3. Лучшие модели — те, что ближе к реальности.

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





    3.Понятие о системе программирования, ее основные функции и компоненты. Интерпретаторы и компиляторы. Трансляция программ. Библиотеки объектов. Интерфейсные объекты: управляющие элементы, окна, диалоги. События и сообщения

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

    • трансляторы;

    • среду разработки программ;

    • библиотеки справочных программ (функций, процедур);

    • отладчики;

    • редакторы связей и др.

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


    По этому критерию можно выделить следующие уровни языков программирования:

    машинные;

    машинно-оpиентиpованные (ассемблеры);

    машинно-независимые (языки высокого уровня).

    Машинные языки и машинно-ориентированные языки — это языки низкого уровня, требующие указания мелких деталей процесса обработки данных.

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

    Языки высокого уровня делятся на:

    алгоритмические (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов;

    логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.

    объектно-ориентированные (Object Pascal, Delphi, C++, Visual Basic, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.

    Алгоритмический язык (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.

    Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.

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

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

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

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

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

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

    Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.


    Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.

    Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. (Pascal).

    Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. (Basic).

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


    Развитие объектно-ориентированного программирования позволило создавать библиотеки объектов. Объектная библиотека (Object Library) - это модуль, который может объединять в себе различные наборы объектов, предназначенных для многократного использования. Объектная библиотека - это очень мощная структура, позволяющая хранить в себе всевозможные объекты и программные единицы. Применяя это средство многократного использования объектов, вы получаете возможность хранить в одном объекте однажды созданные объекты и программные единицы для совместной работы в других модулях. Объектная библиотека не имеет редактируемых свойств, кроме имени. Для включения в библиотеку новых объектов используется метод "Drag-and-Drop" ("перетащить и оставить").

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


    Задание полного интерфейсного объекта с соответствующими интерфейсными элементами требует двух шагов:

    * Построения объекта.

    * Создания элемента экрана.


    Как и в случае создания интерфейсный объектов, их уничтожение предполагает выполнение двух шагов:

    * Уничтожение визуального интерфейсного элемента (Destroy).

    * Уничтожение интерфейсного объекта (Dispose).


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

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


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




    4. Классификация данных. Типы данных. Совместимость типов. Константы и переменные. Работа с данными статической структуры. Простые типы данных и работа с ними.

    Данные – информация представленная в формальном виде, предназначенная для обработки на ЭВМ.

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

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

    Таким образом, данные различных типов хранятся и обрабатываются по-разному. Тип данных определяет:

    • внутреннее представление данных в памяти компьютера;

    • объем памяти, выделяемый под данные;

    • множество (диапазон) значений, которые могут принимать величины этого типа;

    • операции и функции, которые можно применять к данным этого типа.

    Базовые типы – это типы данных, которые предопределены стандартом языка, указываются зарезервированными ключевыми словами, характеризуются одним значением и внутренним представлением.

    Вещественный тип – это базовый тип данных, который применяется для хранения дробных чисел в формате с плавающей точкой.

    Логический (булевый) тип – это базовый тип данных, который применяется для хранения значений двузначной логики.

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

    Перечисляемый тип – это производный тип данных, он определяется как набор идентификаторов, являющихся именованными целыми константами, которым приписаны уникальные обозначения

    Преобразование типов – это приведение значения переменной одного типа в значение другого типа.

    Производные типы – это типы данных, которые задаются пользователем.

    Символьный тип – это базовый тип данных, который применяется для хранения символов или управляющих последовательностей в виде кода.

    Типы класса – это типы данных, экземплярами которых являются объекты.

    Целочисленный тип – это базовый тип данных, который применяется для хранения целых чисел.

    Явное приведение типа – это преобразование значения переменной к новому типу, при котором указывается тип переменной, к которому необходимо привести исходную переменную.