Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Обзор языков, которые используют ООП).pdf

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

Категория: Курсовая работа

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

Добавлен: 24.04.2023

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

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

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

1.2.Структура информационной системы

Структуру ИС составляет специальная совокупность отдельных её компонентов, которые именуются подсистемами.

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

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

Основные требования к информационному обеспечению ИС: [10]

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

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

Программное обеспечение бывает:

Свободное ПО – это программы, которые бесплатно можно использовать в работе.

Системное ПО — это комплекс ПО для обеспечения работы информационной системы (операционная система, драйвера, и т.д.).[4]

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

Инструментальное ПО - это программные продукты для создания и проектирования нового ПО (языки программирования, среды программирования, и т.д.).

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

К средствам математического обеспечения относятся:

- типовые задачи управления;

- средства моделирования;

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


Техническое обеспечение (ТО) - это комплекс технических средств, предназначенных для работы АИС, а также соответствующая документация на эти средства и технологические процессы.[8]

К средствам технического обеспечения относятся:

- аппаратное обеспечение ПК;

- сервисное ТО;

- диагностическое ТО;

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

Основные требования к организационному обеспечению АИС:

- обработка информации АИС;

- администрирование АИС;

- обеспечение безопасности информации АИС;

- управление работой АИС.

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

Правовое обеспечение этапов функционирования информационной системы включает:

- статус АИС;

- правовые положения;

- права, ответственность и обязанности персонала.

2. Характеристика объектно-ориентированного подхода к разработке ИС

2.1. Характеристика понятий ООП

Рассмотрим основные понятия, которые связаны с понятием ООП.

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

В отличие от структур, типизированных данных и функций имеют различные уровни реализации доступа.[2]

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

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

Для создания разных объектов предусмотрены функции, которые принадлежат классу, заполняющие поля объектов. Такие функции называются конструкторами.


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

Определению класса в классическом программировании удовлетворяет понятие структуры.

В действительности, структура языка С++ реализована как класс, поля которой общедоступны в этом смысле, так как доступ к ним выполняется через имена:

название_структуры.поле, название_структуры.функция(параметры)

или указатели типа:

указатель->функция(аргумент), указатель->поле.

Самым простым образом класс определяется с помощью такой конструкции (рисунок 1): [8]

Рисунок 1 – Принцип оглашения конструкций

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

Рассматриваемые функции называют составными функциями класса.

Заключенный в приведенные фигурные скобки список программного кода называется телом класса.

Непосредственное определение тела класса всегда заканчивается точкой с запятой.

Стоит отметить, что тело составной функции является определенным вне класса.

В данном случае для указанной функции определяется имя класса, членом которой она является: [9]

формат_возвращаемого_значения название_класса::функция (параметры)

{

. . .

}

Следует заметить, что указатель на объект, для которого принадлежит составная функция, может определиться при применении ключевого слова this.

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

Получим, что:

класс = составные функции + данные.

Помимо инкапсуляции в ООП реализован механизм наследования, что позволяет строить иерархию типов, а также полиморфизм, который позволяет объектам отвечать на разные запросы соответственно их типу. [6]

Наследование реализовывается с помощью понятия так называемого производного класса (рисунок 2).

Рисунок 2 – Пример наследования

Класс считается производным от иного класса, если содержит он все функции и поля другого класса.

Если же класс не считается производным – он называется первичным.

Тело класса разбивается на несколько частей, соответствующие трем таким атрибутам: [3]

class название

{

protected:

. . .

private:

. . .

public:

. . .

}

Атрибут protected имеют те члены класса, которые доступны для дружественных и составных функций классов, что являются производными от указанного класса или же совпадают с ним. Такие члены класса называются защищенными.[1]


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

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

Такие члены класса считаются защищенными.

Полиморфизм применяется для отделения кода программы от других его составных частей. Пример использования полиморфизма показан на рисунке 3:

Рисунок 3 – Пример использования полиморфизма

В общем понимании, принципом полиморфизма является идея, которая описывается словосочетанием «один интерфейс – много методов».[12]

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

Стоит заметить, что полиморфизм может использоваться и к многим операторам, например «+» применяется для сложения целых, символьных и других переменных.

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

К примеру, класс «Насекомые» имеет определенную манеру поведения, что можно характеризовать как «метод перемещения». [8]

2.2. Обзор языков, которые используют ООП

2.2.1. ЯП C++

C++ разработан сотрудником исследовательского центра Bell Laboratories (США) Бьярном Страуструпом еще в 1978 году.

Первоначальное название ЯП - «С с классами» изменено на C++ в 1982 году.

При этом, начиная с 1979 года, C++ претерпел, 2 существенные модернизации, а именно в 1984 и 1989 годах. [3]

Последняя, 3-я модернизация связана с выполнением стандартизации C++. Стоит отметить, что несколько лет назад была начата работа по созданию одного международного стандарта C++. Для такой цели был сформирован комитет по стандартизации с названием ANSI и ISO для языка C++.


Первый проект указанного стандарта представлен еще 25 января 1993 года. Комитет по C++ фактически сохранял все основные черты ЯП, заложенные туда еще Б. Страуструпом, а также добавил несколько новых возможностей.

В своей базе этот первый проект только отражал положение, где в то время был язык C++.

Также многие утверждают, что ЯП C++ – это единственный серьезный язык, что просто обязан знать практически каждый уважающий себя программист.

С++ – это компилируемый типизированный язык программирования для общего назначения. Он поддерживает разные парадигмы:

– процедурную;

– функциональную;

– обобщённую.

Но наибольшее внимание уделено использованию объектно-ориентированного программирования. [16]

ЯП C++ – расширенная версия С. C++ содержит в себе все черты, что имеется в ЯП С, и кроме этого он также поддерживает принципы объектно-ориентированного программирования.

В C++ также имеется множество возможностей, которые независимо от ООП делают его несколько «лучше, чем С».

C++ был задуман, чтобы осуществить поддержку объектно-ориентированного программирования. Разные свойства C++ касаются OOП. Но важно понимать, что ЯП C++ может применяться для написания не лишь объектно-ориентированных программ.

То, как применяется C++, полностью зависит от разработчика.

Язык С++ является во многом надмножеством С. Принципиальные новые возможности С++ в себя включают:

– объявления выражений;

– преобразования типов;

– операторы для динамической памяти;

– ссылки;

– применение расширенного понятия константности;

– подставляемые функции и аргументы по умолчанию;

– функции-члены;

– разного рода виртуальные функции;

– конструкторы и абстрактные классы;

– переопределения операторов и шаблоны и многое другое.

Язык С++ во многих случаях относится строже к проверке типов. В С++ появились новые комментарии в виде «//».

Некоторые особенности С++ были позднее перенесены в С, к примеру, ключевые слова inline и const, объявления в циклах и другие.[12]

В более поздних реализациях ЯП С также представлены возможности, которых теперь нет в С++, к примеру макросы и улучшенная работа с массивами.

Достоинства языка С++:

Масштабируемость;

– Возможность работы с памятью на низком уровне;

– C++ имеет препроцессор, унаследованный ч C.

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