пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Технологии программирования. Достоинства и недостатки различных подходов. Объектно-ориентированное программирование (ООП). Концепция объектной модели. Иерархия, типизация, параллелизм, сохраняемость.

 

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

Методологий:

Период "стихийного" программирования (60 гг. ХХ в.).

Отсутствовало понятие структуры программы, типов данных и т.д. Следствие запутанный и противоречивый код. Программирование считалось искусством. Конец 60-х — кризис в программирование.

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

Теорема Бома-Якопини (1966):

Любую схему алгор. можно представить в виде композиции вложенных блоков begin и end, условных операторов if, then, else, циклов с предусловием (while) и логических переменных (флагов).

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

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

 

Принципы восходящего и нисходящего программирования

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

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

 

Модульное программирование Выделение групп подпрограмм, использующих одни и те же глобальные данные, в отдельно компилируемые модули (библиотеки подпрограмм). Пример. Модуль графических ресурсов. Связи между модулями осуществляются через специальный интерфейс, в то время как доступ к реализации модуля (телам подпрограмм и некоторым "внутренним" переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal и С (C++), языки Ада и Modula.

 

ООП (ООП, Simula–1967г, Кей, Страуструп, Буч)- технология создания ПО , основанная на представлении прог. в виде совокупности автономно действующих лиц (объектов). Лицо - экземпляром определенного класса (типа). Классы образуют иерархию с наследованием свойств. Взаимодействие осуществляется путем передачи сообщ. между объектами.

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

Записи.

Историческим предшественником объектного типа даннных в языке Паскаль явился тип данных запись (структура).

Type

<имя>=record  <поля записи>;

end;  

Обращение к полям записи организуется следующим образом:  <переменная>.<поле>  Для упрощения доступ к полям записи, используется оператор присоединения With:  With <переменная> DO <оператор>;

Принципы ООП (Алан Кей):

Всё является объектом.

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

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

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

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

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

Концепция объектной модели

Для объектно-ориентированного стиля концептуальная база - это объектная модель. 4 главных элемента: абстрагирование; инкапсуляция; модульность; иерархия.

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

 

Иерархия - это упорядочение абстракций, расположение их по уровням.  Основными видами иерархических структур применительно к сложным системам являются иерархия «is-a» и иерархия «part of».  Наследование - отношение между классами (отношение родитель/потомок), 1 класс заимствует структурную или функциональную часть 1 или нескольких других классов (одиночное и множественное наследование). Иными словами, наследование создает такую иерархию абстракций, в которой подклассы наследуют строение от одного или нескольких суперклассов. Часто подкласс достраивает или переписывает компоненты вышестоящего класса.

 

Типизация - способ защититься от использования объектов 1 класса вместо другого, или по крайней мере управлять таким использованием.  Конкретный ЯП может иметь сильный,  слабый механизм типизации или не иметь вообще никакого, оставаясь объектно- ориентированным. В Pascal соблюдение правил использования типов контролируется непреклонно. В сильно типизированных языках нарушение согласования типов может быть обнаружено во время трансляции программы.  C++ тяготеет к сильной типизации, но в этом языке правила типизации можно игнор или подавить полностью.  в Smalltalk типов нет. Нарушение согласования типов обычно проявляется как ошибка исполнения. Вид типизации определяет время, когда имена связываются с типами:  Статическая связь (ранее связывание) типы всех переменных и выражений известны во время компиляции;  Динамическое связывание (называемое также поздним связыванием) типы неизвестны до момента выполнения программы.  Концепции типизации и связывания являются независимыми, поэтому в ЯП может быть: типизация - сильная, связывание - статическое (Ada), типизация - сильная, связывание - динамическое (C++, Object Pascal), или и типов нет, и связывание динамическое (Smalltalk).

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

https://lh5.googleusercontent.com/IKt9CXFUuFzeH4yhiUWGRnJJ6oYgMTvqBfILFyYz0fCR7v4CSxH-5tr6LVb4jC4M5stcB8HcYm14vemi9sKsOGkjZjj8QK_aLFP6LColVsiYNjhM6en0K9SpXI8

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

 

29.      


22.01.2015; 18:45
хиты: 203
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь