Автор работы: Пользователь скрыл имя, 14 Мая 2015 в 15:16, курсовая работа
Объектно-ориентированное программирование (ООП) возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события и компонента
ВВЕДЕНИЕ..................................................................................................................4
1 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ...................6
1.1 Подходы к проектированию...........................................................................6
1.2 Основные идеи объектно-ориентированного программирования..................8
Вывод..........................................................................................................................11
2 ОБЗОР СРЕДСТВ РАЗРАБОТКИ......................................................................12
2.1 Определение C++.........................................................................................12
2.2 Сравнение языко С++ и Си…………...........................................................13
2.1 Обзор сред для программирования на С++.......................................................15
Вывод..........................................................................................................................18
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ КЛАССА FILESTREAM............................19
2.1 Постановка задачи...............................................................................................19
2.2 Реализация класса FileStream...........................................................................19
Вывод..........................................................................................................................21
ЗАКЛЮЧЕНИЕ..........................................................................................................22
ГЛОССАРИЙ.............................................................................................................23
СПИСОК АББРЕВИАТУР......................................................................................24
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ....................................................
СОДЕРЖАНИЕ
ВВЕДЕНИЕ......................
1 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ
ПРОГРАММИРОВАНИЕ..............
1.1 Подходы к проектированию......
1.2 Основные идеи объектно-
Вывод.........................
2 ОБЗОР СРЕДСТВ РАЗРАБОТКИ......
2.1 Определение C++...........................
2.2 Сравнение языко С++ и Си…………........................
2.1 Обзор сред для
Вывод.........................
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
КЛАССА FILESTREAM....................
2.1 Постановка задачи.............
2.2 Реализация класса FileStream....................
Вывод.........................
ЗАКЛЮЧЕНИЕ....................
ГЛОССАРИЙ.....................
СПИСОК АББРЕВИАТУР...................
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ....................
Приложение 1.............................
Объектно-ориентированное программирование (ООП) возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события и компонента [1].
Взаимодействие объектов происходит посредством сообщений. Результатом дальнейшего развития ООП, по-видимому, будет агентно-ориентированое программирование, где агенты - независимые части кода на уровне выполнения. Взаимодействие агентов происходит посредством изменения среды, в которой они находятся.
Языковые конструкции, конструктивно не относящиеся непосредственно к объектам, но сопутствующие им для их безопасной (исключительные ситуации, проверки) и эффективной работы, инкапсулируются от них в аспекты (в аспектно-ориентированном программировании). Субъектно-ориентированное программирование расширяет понятие объекта посредством обеспечения более унифицированного и независимого взаимодействия объектов. Может являться переходной стадией между ООП и агентным программированием в части самостоятельного их взаимодействия[2].
Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент его появления в 1967 году в нём были предложены революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования[1].
В настоящее время количество прикладных языков программирования, реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является Cи. При взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, одной из наиболее распространённых библиотек мультиплатформенного программирования является объектно-ориентированная библиотека Qt, написанная на языке C++[2].
Актуальность исследования обусловлена повышением знаний и навыков объектно-ориентированное программирование.
Объект исследования – объектно-ориентированное программирование.
Предмет исследования – разработка класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си++.
Цель исследования – разработать класс FileStream, инкапсулирующий работу с файлами через стандартную библиотеку Си++.
Задачи исследования:
Структура и объем работы. Пояснительная записка к курсовой работе выполнена на 33 страницах машинописного текста. Состоит из введения, трех разделов и заключения. Список используемых источников содержит 11 наименований работ отечественных и зарубежных авторов.
Объектно-ориентированное программирование (ООП) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов[1].
Класс – это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления. Объект – это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности, так называемого объекта.
Объект – сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса, например, после запуска результатов компиляции исходного кода на выполнение.
Прототип – это объект-образец, по образу и подобию которого создаются другие объекты[2].
1.1 Подходы к проектированию
ООП ориентировано на разработку крупных программных комплексов, разрабатываемых командой программистов (возможно, достаточно большой). Проектирование системы в целом, создание отдельных компонентов и их объединение в конечный продукт при этом часто выполняется разными людьми, и нет ни одного специалиста, который знал бы о проекте всё[4].
С точки зрения языка программирования класс объектов можно рассматривать как тип данного, а отдельный объект – как данное этого типа. Определение программистом собственных классов объектов для конкретного набора задач должно позволить описывать отдельные задачи в терминах самого класса задач (при соответствующем выборе имен типов и имен объектов, их параметров и выполняемых действий) [6].
Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.
Понятия объекта и класса тесно связаны. Тем не менее, существует важное различие между этими понятиями. Класс – это абстракция существенных характеристик объекта. Класс – описание множеств объектов, которые разделяют одинаковые свойства, операции, отношения и семантику (смысл). Любой объект – просто экземпляр класса. Различают внутренне представление класса (реализацию) и внешнее представление (интерфейс).
Значительное увеличение сложности задач, решаемых с помощью компьютеров, приводит к увеличению размеров и сложности программ, что порождает трудности при их разработке и отладке. Рассмотрение любой сложной системы требует применения техники декомпозиции – разбиения на составляющие элементы. Известны две схемы декомпозиции: алгоритмическая декомпозиция и объектно-ориентированная декомпозиция.
В основе алгоритмической декомпозиции лежит разбиение по действиям – алгоритмам. Эта схема представления применяется в обычных программных средствах. Объектно-ориентированная декомпозиция обеспечивает разбиение по автономным лицам – объектам реального (или виртуального) мира. Эти лица (объекты) – более «крупные» элементы, каждый из них несет в себе и описания действий, и описания данных[7].
Объектно-ориентированное представление программного средства основывается на принципах абстрагирования, инкапсуляции, модульности и иерархической организации. Каждый из этих принципов не нов, но их совместное применение рассчитано на проведение объектно-ориентированной декомпозиции. Это определяет модификацию их содержания и механизмов взаимодействия друг с другом.
Аппарат абстракции – удобный инструмент для борьбы со сложностью реальных систем. Создавая понятие в интересах какой-либо задачи, мы отвлекаемся (абстрагируемся) от несущественных характеристик конкретных объектов, определяя только существенные характеристики. Абстрагирование сводится к формированию абстракций. Каждая абстракция фиксирует основные характеристики объекта, которые отличают его от других видов объектов и обеспечивают ясные понятийные границы. Абстракция концентрирует внимание на внешнем представлении объекта, позволяет отделить основное в поведении объекта от его реализации. Абстракцию удобно строить путем выделения обязанностей объекта[8].
Инкапсуляция и абстракция – взаимодополняющие понятия: абстракция выделяет внешнее поведение объекта, а инкапсуляция содержит и скрывает реализацию, которая обеспечивает это поведение. Инкапсуляция достигается с помощью информационной закрытости. Обычно скрываются структура объектов и реализация их методов. Инкапсуляция является процессом разделения элементов абстракции на секции с различной видимостью. Инкапсуляция служит для отделения интерфейса абстракции от ее реализации.
В языке С++ абстракция классов и объектов формируют логическую структуру системы. При производстве физической структуры эти абстракции помещаются в модули. В больших системах, где классов сотни, модули помогают управлять сложностью. Модули служат физическими контейнерами, в которых объявляются классы и объекты логической разработки.
Модульность определяет способность системы подвергаться декомпозиции на ряд сильно связанных и слабо сцепленных модулей. Общая цель декомпозиции на модули: уменьшение сроков разработки и стоимости программного средства за счет выделения модулей, которые проектируются и изменяются независимо[10].
Каждая модульная структура должна быть достаточно простой, чтобы быть полностью понятной. Изменение реализации модулей должно проводиться без знания реализации других модулей и без влияния на их поведение.
Определение классов и объектов выполняется в ходе логической разработки, а определение модулей – в ходе физической разработки системы. Эти действия сильно взаимосвязаны, осуществляются итеративно.
Прекрасным дополнением к предыдущим принципам является иерархическая организация – формирование из абстракций иерархической структуры.
Определением иерархии в проекте упрощаются понимание проблем заказчика и их реализация – сложная система становится обозримой человеком.
Иерархическая организация задает размещение абстракция на различных уровнях описания системы[11].
Вывод
Объектно-ориентированное программирование (ООП) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
Информация о работе Основные идеи объектно-ориентированного программирования