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

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

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

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

Добавлен: 24.04.2023

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

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

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

Пример кода на ЯП С++ показан на рисунке 4:

Рисунок 4 – Пример кода ЯП С++

2.2.2. ЯП Java

Язык программирования Java создавался в рамках проекта фирмы Sun Microsystems при разработке компьютерных аппаратно-программных комплексов нового поколения.

Первая версия Java была официально опубликована еще в 1995 году. С того момента язык Java стал "де-факто" стандартом, вытеснив за 10 лет языки C++ и C из многих направлений программирования.

Также в 1995 году C++ был абсолютным лидером, но к 2006 г. число программирующих Java стало превышать число программистов C и C++.

Число устройств, которые запрограммированы с помощью Java, уже превысило полтора миллиарда. [8]

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

Их также принято считать ЯП низкого уровня, так как они ориентированы непосредственно на особенности конкретных микропроцессоров.

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

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

Их можно скопировать в надобное место памяти ПК и передать управление непосредственно первой команде программы.

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

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

Имеются 2 основных типа трансляции:[8]

– компиляция;

– интерпретация.

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

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

Программы, написанные на Java, представляют собой набор классов и сохраняются в специальных текстовых файлах, которые имеют расширение java.


При выполнении компиляции текст программы сразу переводится (транслируется) в бинарные файлы, которые имеют с расширение class.

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

Для того чтобы выполнять байт-код на каком-то компьютере, его нужно конвертировать в инструкции для процессора. Именно это выполняет Java-машина. [4]

Байт-код всегда интерпритируется следующим образом: каждый раз, при встрече какой-то инструкции Java-процессора, она переводится в последовательность команд процессора компьютера, а это, естественно, замедляло работу Java-приложений.

В ныенешнее время используется сложная схема, которая называется JIT-компиляцией – компиляция "на лету".

Если какая-то инструкция (или же набор инструкций) процессора Javа выполняется в первый раз, то происходит компиляция байт-кода с хранением скомпилированного куска кода в буфере.

2.2.3. ЯП C#

Несмотря на то, что C# – самодостаточный ЯП, у него есть особая взаимосвязь с средой выполнения под названием .NET Framework.

Практическое наличие такой взаимосвязи можно обяснить двумя причинами: [20]

– C# первоначально предназначался как создатель кода, что должен выполняться в.NET Framework.

– используемые в C# модули и библиотеки определены в .NET Framework.

Стоит отметить, что на практике это значит, что C# с .NET Framework связаны тесно друг с другом, но теоретически C# можно отделять от среды программирования.

В связи с данным фактом очень важно иметь самое общее представление о работе в среде .NET и ее значении непосредственно для С#.

NET Framework – служит средой для поддержки выполнения и разработки сильно распределенных приложений.

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

Среда .NET Framework определяет 2 очень важны компонента. Первым из них есть общеязыковая среда выполнения CLR. [5]

Это система, которая выполняет программы. Среди прочих преимуществ CLR, как составной части среды .NET Framework использует многоязыковое программирование, обеспечивает безопасное выполнение и переносимость программ.

Вторым компонентом .NET Framework является так называемая библиотека классов.

Она предоставляет программе доступ непосредственно к среде выполнения. Если требуется выполнить операции ввода-вывода, к примеру, вывести что-то на экран, то используется для этой цели библиотека классов .NET. [10]


Если программа ограничивается методами, определяемыми в библиотеке .NET, то программа может выполняться практически везде, где поддерживается .NET. А так как в ЯП C# библиотека классов используется автоматически, то все программы на С# оказываются заведомо переносимыми во все среды .NET Framework.

2.3. Реализация информационной системы «Матричная арифметика» с помощью шаблонного класса

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

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

С помощью среды интегрированной разработки C++ Builder создадим оконный интерфейс для приложения (рисунок 5).

Рисунок 5 – Проектирование интерфейса для программы «Матричная арифметика»

Реализация программы состоит из файла Matrix.cpp, в котором находится описание шаблонного класса и все его функций и модуля с основной программой.

Рассмотрим кратко основные части кода реализации шаблонного класса.

//Объявление шаблонного класса

template<class T>

class Matrix {

//Описание открытых полей класса

public:

//конструктор

Matrix(int n, int m) {

rows = n;

cols = m;

mtx = new T*[rows];

for(int i=0; i<rows; i++) {

mtx[i] = new T[cols];

}

}

//реализация конструктора копирования

Matrix(const Matrix<T> &m) {

rows = m.rows;

cols = m.cols;

mtx = new T*[rows];

for(int i=0; i<rows; i++) {

mtx[i] = new T[cols];

for(int j=0; j<cols; j++) {

mtx[i][j] = m.get(i,j);

}

}

}

//деструктор класса

~Matrix() {

if(mtx == NULL)

return;

for(int i=0; i<rows; i++) {

delete [] mtx[i];

}

delete [] mtx;

}

//функция для сложения матриц

Matrix<T> add(const Matrix<T> &m) {

//новая матрица

Matrix<T> res(rows, cols);

for(int i=0; i<rows; i++) {

for(int j=0; j<cols; j++) {

res.mtx[i][j] = get(i,j)+m.get(i,j);

}

}

return res;

}

//функция для вычистания матриц

Matrix<T> substract(const Matrix<T> &m) {

//новая матрица

Matrix<T> res(rows, cols);


for(int i=0; i<rows; i++) {

for(int j=0; j<cols; j++) {

res.mtx[i][j] = get(i,j)-m.get(i,j);

}

}

return res;

}

//функция для транспонирования матрицы

void transp() {

for(int i=0; i<rows; i++) {

for(int j=i; j<cols; j++) {

T tmp = mtx[i][j];

mtx[i][j] = mtx[j][i];

mtx[j][i] = tmp;

}

}

}

Функционирование программы показано на рис. 6:

Рисунок 6 – Интерфейс программы

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

ЗАКЛЮЧЕНИЕ

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

Например, сегодня многие программисты комментируют свои программы для объяснения того, какие классы реализуют какой-либо абстрактный бизнес объект. C++ позволяет использовать типизированные, расширяемые метаданные, которые могут быть прикреплены к объекту, различные шаблонные классы и лямбда-функции.

Разработчик может программно проверить атрибуты какого-либо элемента.

В процессе выполнения работы были получены и закреплены практические навыки разработки программ с использованием шаблонных классов при написании программы в среде визуального программирования Borland C++ Builder 6.0.

В процессе написания курсовой работы были реализованы следующие задачи:

– рассмотрены основные определения теории разработки ИС;

  • охарактеризованы основные определения принципы объектно-ориентированного программирования;
  • рассмотрены понятие шаблона класса в С++;
  • рассмотрено технологию создания программ с помощью шаблонных классов.

В процессе анализа вышеизложенной информации выявлены следующие достоинства объектно-ориентированного программирования:

  • удобность создания экземпляров класса разных типов данных;
  • гибкость в использовании;
  • интегрированность шаблонных классов в среде C++ Builder.