- •Тема 3.1 (цели использования компьютеров при решении прикладных задач)
- •Урок 2.Основные инструмента прикладного программиста.
- •Урок 4.Технология прикладного программирования:целя,задачи и основные принципы и инструменты. Алгоритмическая и объектно-ориентированная декомпозиция.
- •Урок 5.Принципы объектно-ориентированного анализа,абстрагирование,инкапсуляция,наследование,полиморфизм,модульность,сохраняемость,параллелизм.
- •Модульность
- •Атрибуты объектов
- •Экземпляр
- •Методы доступа
- •Урок 8 Объектно –ориентированное программирование.
- •Развитие и совершенствование языков программирования высокого уровня.
- •Урок 9.Документирование результатов анализа и проектирования.
- •Урок 11.Создание абстрактных типов данных.(практика)
- •Примеры атд
- •Чистые виртуальные функции.
- •Выполнение чистых виртуальных функций
- •Урок 12.Диаграмма объекта.
- •Урок 13.Принципы объектно-ориентированного анализа:абстрагирование,инкапсуляция.
- •Урок 14. Принципы объектно-ориентированного анализа: наследование полиморфизм.
- •Урок 15. Принципы объектно-ориентированного анализа:модульность,сохраняемость,параллелизм
Урок 15. Принципы объектно-ориентированного анализа:модульность,сохраняемость,параллелизм
Модульное программирование. Принцип модульности формулируется как требование разработки программы в виде совокупности модулей (функций). При этом разделение на модули должно носить не механический характер, а исходить из логики программы:
размер модуля должен быть ограничен;
модуль должен выполнять логически целостное и завершенное действие;
модуль должен быть универсальным, то есть по возможности параметризованным: все изменяемые характеристики выполняемого действия должны передаваться через параметры;
входные параметры и результат модуля желательно передавать не через глобальные переменные, а через формальные параметры и результат функции.
Еще одной, но уже физической единицей программы является текстовый файл, содержащий некоторое количество функций и определений типов данных и переменных. Модульное программирование на уровне файлов - это возможность разделить полный текст программы на несколько файлов, транслировать их независимо друг от друга. Принцип модульности распространяется не только на программы, но и на данные: любой набор параметров, характеризующих логический или физический объект, должен быть представлен в программе в виде единой структуры данных (структурированной переменной). Олицетворением принципа модульности является библиотека стандартных функций. Она, как правило, обеспечивает полный набор параметризованных действий, используя общие структуры данных. Библиотеки представляют собой аналогичные Си-программы, независимо оттранслированные и помещенные в каталог библиотек.
Модульность - это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули. В процессе разделения системы на модули могут быть полезными два правила. Во-первых, поскольку модули служат в качестве элементарных и неделимых блоков программы, которые могут использоваться в системе повторно, распределение классов и объектов по модулям должно учитывать это. Во-вторых, многие компиляторы создают отдельный сегмент кода для каждого модуля. Поэтому могут появиться ограничения на размер модуля. Динамика вызовов подпрограмм и расположение описаний внутри модулей может сильно повлиять на локальность ссылок и на управление страницами виртуальной памяти. При плохом разбиении процедур по модулям учащаются взаимные вызовы между сегментами, что приводит к потере эффективности кэш-памяти и частой смене страниц. Свести воедино столь разноречивые требования довольно трудно, но главное – это уяснить, что вычленение классов и объектов в проекте и организация модульной структуры есть независимые действия. Процесс вычленения классов и объектов составляет часть процесса логического проектирования системы, а деление на модули - этап физического проектирования. Разумеется, иногда невозможно завершить логическое проектирование системы, не завершив физическое проектирование, и наоборот. Два этих процесса выполняются итеративно.
Сохраняемость - способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего первоначального адресного пространства.
Урок 16:Объектно-ориентированнное проектирование.
Объектно-ориентированное проектирование. Программирование прежде всего подразумевает правильное и эффективное использование механизмов конкретных языков программирования. Проектирование, напротив, основное внимание уделяет правильному и эффективному структурированию сложных систем. Мы определяем объектно-ориентированное проектирование следующим образом:
Объектно-ориентированное проектирование - это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
В данном определении содержатся две важные части: объектно-ориентированное проектирование
основывается на объектно-ориентированной декомпозиции;
использует многообразие приемов представления моделей, отражающих логическую (классы и объекты) и физическую (модули и процессы) структуру системы, а также ее статические и динамические аспекты.
Именно объектно-ориентированная декомпозиция отличает объектно-ориентированное проектирование от структурного; в первом случае логическая структура системы отражается абстракциями в виде классов и объектов, во втором - алгоритмами.
Объектно-ориентированный анализ - это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области.
