Автор работы: Пользователь скрыл имя, 12 Декабря 2010 в 15:52, курсовая работа
Данная курсовая работа написана по теме «Модульное и объектно-ориентированное программирование». Вот некоторый список вопросов, которые раскрывают тему:
понятия: модуль и модульное программирование;
основные концепции модульного программирования;
модульная структура программных продуктов;
понятие: компиляция, его использование в модульном программировании;
объектно-ориентированное программирование как технология создания сложного программного обеспечения;
достоинство и недостаток объектно-ориентированного программирования;
принципы, положенные в основу объектно-ориентированного программирования;
объектно-ориентированные языки программирования;
этапы разработки программных систем с использованием объектно-ориентированного программирования.
В практической части курсовой работы представлено решение задачи находящейся в методических указаниях под номером 8.
Общее введение 2
Введение 2
Понятие модуль и модульное программирование 4
Модульная структура программных продуктов 6
Объектно-ориентированное программирование 9
Объектно-ориентированные языки программирования 12
Этапы разработки программных систем с использованием ООП 13
Заключение 15
Практикум 16
Общая характеристика задачи 16
Алгоритм решения задачи 19
Список использованной литературы 24
Оглавление
Общее введение
Данная
курсовая работа написана по теме «Модульное
и объектно-ориентированное
понятия: модуль и модульное программирование;
В
практической части курсовой работы
представлено решение задачи находящейся
в методических указаниях под номером
8.
Введение
Объектом изучения теоретической части моей работы является программирование как процесс подготовки задач для их решения с помощью компьютера.
Предметом
же изучения является непосредственно
модульное – как метод разработки программ,
предполагающий разбиение программы на
независимые модули и объектно-ориентированное
программирование – как методика разработки
программ, в основе которой лежит понятие
объекта как некоторой структуры, описывающей
объект реального мира, его поведение.
Понятие модуль и модульное программирование
Модульное программирование осуществляется путём разбиения задачи на некоторое число различных модулей. Под модульным программированием понимают умение широко (всесторонне) использовать стандартные модули путём настройки их параметров; автоматизацию сборки готовых модулей из библиотек, банков модулей.
Модуль, в свою очередь, отдельная функционально-законченная программная единица. Как правило, каждый модуль содержит паспорт, в котором указаны все основные его характеристики: язык программирования, объём, входные и выходные переменные, их формат, ограничения на них, точки входа, параметры настройки и так далее. Объём модуля обычно не превышает 1000 команд ЭВМ или операторов языка программирования. В противном случае модуль становится громоздким и трудным к восприятию и использованию.
Модуль можно сравнить с устройством, имеющим средства сопряжения (подключения), через которые происходит как управление самим устройством, так и обмен данными. Это своего рода чёрный ящик, для которого импорт и экспорт определяют его интерфейс и зависимость от других устройств.
Стандартизация интерфейса между отдельными программными единицами – вот основная черта модульного программирования.
Интерфейс в модульном программировании рассматривается как жёсткая спецификация, контракт, который должен неукоснительно соблюдаться клиентами модуля (импортирующими его) и реализацией данного модуля (или несколькими альтернативными реализациями).
Основные концепции модульного программирования:
- каждый модуль реализует единственную независимую функцию;
- каждый
модуль имеет единственную
- размер модуля по возможности должен быть минимизирован;
- каждый
модуль может быть разработан
и закодирован различными
- вся система построена из модулей;
- модуль не должен давать побочных эффектов;
- каждый модуль не зависит от того, как реализованы другие модули.
В
результате такого подхода сложная система
разделяется на несколько частей, одновременно
создаваемых различными программистами.
Каждый модуль реализует единственную
функцию. Размер модуля не велик, поэтому
тестирование управляемо и может быть
проведено тщательным образом. После кодирования
и тестирования всех модулей происходит
их интеграция, и тестируется вся система.
При сопровождении тестируется и отлаживается
только тот модуль, который плохо работает.
Очевидны преимущества в облегчении написания
и тестирования программ, уменьшается
стоимость их сопровождения.
Модульная структура программных продуктов
Принципы модульного программирования программных продуктов строятся на такой системе: сначала определяются состав и подчинённость функций, а затем – набор программных модулей, реализующих эти функции. Однотипные функции реализуются одними и теми же модулями. Функция верхнего уровня обеспечивается главным модулем; он управляет выполнением нижестоящих функций, которым соответствуют подчинённые модули.
При определении набора модулей, реализующих функции конкретного алгоритма, необходимо учитывать следующее:
- каждый
модуль вызывается на
- принятие
основных решений в алгоритме
выносится на максимально «
- для использования одной и той же функции в разных местах алгоритма создаётся один модуль, который вызывается на выполнение по мере необходимости.
В
результате дальнейшей детализации
алгоритма создаётся
Чтобы более подробно разобраться в природе модульного программирования, обратимся к истории. До начала 1970-х годов программы создавались в виде монолитных блоков, либо делались из независимых частей, сопряжение которых было достаточно примитивным – на уровне вызовов подпрограмм (процедур). Отсюда появились два понятия – цельная компиляция и независимая компиляция. В свою очередь, под компиляцией понимают трансляцию программы или отдельного программного модуля, составленных на языке программирования высокого уровня (исходная программа, исходный модуль) в программу или модуль на машинном языке или языке, близком к машинному (объектная программа, объектный модуль).
Первый случай, то есть цельная компиляция – простой: транслируется вся программа целиком. Во втором случае, при независимой компиляции каждый блок (файл) транслируется отдельно, фактически без наличия информации о точках сопряжения. Все проблемы увязки возлагались на компоновщик. Именно он состыковывал оттранслированные части, соединял программу с библиотеками, которые та использовала.
В процессе компиляции программа преобразуется в промежуточную форму, к которой впоследствии необходимо присоединить библиотечные средства, содержащие стандартные подпрограммы и процедуры, а если нужно, то можно добавить любые другие модули, написанные самим пользователем, и скомпилированные в объектные модули, возможно, с иных языков высокого уровня.
Для модульного программирования характерно использование раздельной компиляции, когда компиляция интерфейса и реализации модуля делается отдельно от реализации других модулей, но с обязательным участием интерфейсов всех прямо и косвенно импортируемых модулей. Если нет возможности отделить интерфейс в текстовом или бинарном виде от реализации модуля, то такую систему программирования нельзя считать системой раздельной компиляции, ибо нарушается главный принцип – компиляции модуля при отсутствии в пределах досягаемости компилятора реализаций импортируемых им модулей.
Все
ошибки несостыковки обнаруживаются на
этапе трансляции (причём даже до реализации
других модулей, ведь нужны только контракты-интерфейсы).
Более примитивная и
Объектно-ориентированное программирование
Стремление
уменьшить количество связей между
отдельными частями программы привело
к появлению объектно-
В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности программных объектов, каждый из которых является экземпляром определённого типа (класса), а классы образуют иерархию с наследованием свойств.
Взаимодействие программных объектов в такой системе осуществляется путём передачи сообщений.
Основное достоинство ООП – сокращение количества межмодульных вызовов и уменьшение объёмов информации, передаваемой между модулями, по сравнению с модульным программированием. Это достигается за счёт более полной локализации данных и интегрирования их с подпрограммами обработки, что позволяет вести практически независимую разработку отдельных частей (объектов) программы.
Основной
недостаток ООП – некоторое снижение
быстродействия за счёт более сложной
организации программной
В основу ООП положены принципы абстрагирования, ограничения доступа, модульности, иерархичности, типизации, параллелизма, устойчивости.
Рассмотрим, что представляет собой каждый принцип.
Абстрагирование – процесс выделения абстракций в предметной области задачи. Абстракция – совокупность существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, чётко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа решаемой задачи. В соответствии с определением применяемая абстракция реального предмета существенно зависит от решаемой задачи: в одном случае нас будет интересовать форма предмета, в другом – вес, в третьем – материалы, из которых он сделан, в четвёртом – закон движения предмета и т.д. ООП предполагает объединение всех свойств абстракции (как касающихся состояния анализируемого объекта, так и определяющих его поведение) в единую программную единицу – некий абстрактный тип (класс).
Ограничение доступа – сокрытие отдельных элементов реализации абстракции, не затрагивающих существенных характеристик её как целого.
Необходимость ограничения доступа предполагает разграничение двух частей в описании абстракции:
- интерфейс
– совокупность доступных
- реализация
– совокупность недоступных
Ограничение
доступа в ООП позволяет
Информация о работе Модульное и объектно-ориентированное программирование