Диплом: Автоматизация процесса контроля знаний учащихся ГОУ СОШ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
25
очередной версии. Кроме того, XCode относительно сложная IDE для
самостоятельного изучения.
Xamarin Studio – популярный инструмент разработки приложений под
Windows, Phone, Android и iOS, использующий, по сути, только один язык - C#.
Помимо непосредственно Xamarin Studio вы также можете пользоваться
плагином для Visual Studio. Недостатки: незначительные, но тем не менее
регулярные ошибки, как непосредственно в самой IDE, так и в выходном коде.
Также, несмотря на репутацию кроссплатформенной среды, портировать уже
готовые приложения на Xamarin достаточно затруднительно.
IntelliJ IDEA - IDE, разработанная компанией JetBrains, позволяющая
создавать программы на множестве популярных языков, среди которых Java,
JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++. Недостатки:
производительность. Томительное ожидание выполнения компиляции,
перекомпиляции, тестирования порой действительно раздражает.
Appcelerator Titanium – платформа для быстрого создания консольных и
графических приложений для всех подручных устройств. Недостатки:
возможности, предоставляемые Appcelerator Titanium имеют и обратную сторону:
генерируемые ошибки в коде, искусственные ограничения, недостаточно
качественная документация.
Netbeans - мощная IDE для разработки приложений на Java, JavaScript,
Python, PHP, C, C++ и даже Ада. Недостатки: невысокое быстродействие из-за
концепции «все в одном». Некоторые плагины том числе для разработки
приложений для Android) имеют существенные ограничения функциональности.
PhoneGap - необычная среда разработки кроссплатформенных приложений,
не требующая знания «родных» языков. То есть для того, чтобы создать
приложение для Android, знание Java не потребуется. Используются JavaScript в
связке с HTML5 и CSS3. Недостатки: ограниченная функциональность вызванная
непосредственно основной идеей нецелевой среды разработки.
26
1.3 Анализ существующих разработок и выбор стратегии автоматизации
«КАК ДОЛЖНО БЫТЬ»
1.3.1 Анализ существующих разработок для автоматизации задачи
Для разработки приложения тестирования знаний, на наш взгляд, больше
подходит программное обеспечение Borland C++ Builder.
Borland C++ Builder – одна из ведущих сред разработки для создания
Internet-приложений, «настольных» и распределенных приложений, а также
приложений, основанных на модели клиент/сервер. C++ Builder сочетает простоту
среды быстрой разработки приложений, или RAD-среды (Rapid Application
Development - RAD), с мощью и производительностью языка C++, совместимого
со стандартом ANSI.
Язык программирования C++ остается наиболее распространенным. Он
применяется для разработки самых разных приложений – от сложных
многоуровневых бизнес-систем до высокопроизводительных программ
визуализации данных и систем реального времени.
Язык C++ является ядром среды C++ Builder, которая обеспечивает очень
высокую степень поддержки этого стандартизированного языка
программирования [14, c.72].
Язык C++ появился в результате развития языка С, созданного в компании
Bell Labs. Подобно C, язык C++ получил всеобщее признание и широкое
распространение. Широкая распространенность C++ способствовала
конкуренции между поставщиками компиляторов и сред разработки, что сыграло
положительную роль. Однако, поскольку поставщики стремились к увеличению
своего технологического влияния, они часто вносили в язык программирования
собственные уникальные особенности. Хотя такие доработки и были полезны,
они приводили к несовместимости программ, написанных для одного
компилятора, с другими компиляторами.
27
1.3.2 Выбор и обоснование стратегии автоматизации задачи
Американский национальный институт стандартов (American National
Standards Institute - ANSI), основанный в 1918 году как частная некоммерческая
организация, занимается координацией и определением промышленных
стандартов в различных областях. Таким образом, ANSI стал наиболее
подходящей организацией, которая могла взяться за проблему стандартизации
языков С и C++. В XXI веке соответствие стандарту ANSI стало одним из
наиболее важных свойств языка. Этот стандарт позволяет создавать и
компилировать программы в разных системах разработки, для различных
операционных систем и наборов процессорных инструкций.
Компания Borland предлагает мощный набор собственных расширений
языка C++, обеспечивающий поддержку VCL-библиотек (Visual Component
Library). Однако эта компания также представила язык, соответствующий
стандартам ANSI, возможно, в большей мере, чем остальные. Компилятор можно
настроить таким образом, чтобы он воспринимал только те программы, которые
соответствуют стандарту ANSI. Для этого достаточно изменить одну настройку
среды программирования. Выберите команду меню ProjectOOptions…, перейдите
в диалоговом окне Project Options во вкладку Advanced Compiler и установите
переключатель Language compliance в положение ANSI.
Если программа откомпилирована без учета совместимости со стандартами
ANSI (например, если выбрана опция совместимости со стандартами Borland), то
программы под Windows будут нормально компилироваться. Это базовый
уровень совместимости с продуктами Microsoft.
Например, вы не сможете откомпилировать программы, которые
используют библиотеку Microsoft Foundation Classes (MFC), если во вкладке
Advanced Compile не установлен флажок MFC compatibility.
Существенно увеличены производительность компилятора C++,
возможности отладчика. Поддержка большей памяти в линкере.
Поддержка в 32- и 64-битных расширенных Clang-компиляторах -O3
уровня сильной оптимизации, которая может в некоторых случаях удвоить
производительность скомпилированного кода.
28
Улучшенная кодогенерация для оптимизаций -O1 и -O2 в расширенных
Clang-компиляторах.
Расширенный Win32 Clang-компилятор теперь поддерживает генерацию
отладочной информации со ссылками на внешние типы, что сокращает объем
отладочной информации, генерируемой при ссылках на общие разделяемые типы,
такие как типы VCL. Это значительно уменьшает размер генерируемых
отладочных данных.
Пакеты для iOS и Android, которые скомпонованы статически, теперь
создаются с корректным расширением «.a», вместо «.so».
Приложения на C++ для Android теперь могут быть построены без явного
требования конкретной версии NDK.
Большое количество исправлений, направленных на качество, включая:
Ошибки компоновщика out of memory error: теперь компоновщик использует
адресацию большей памяти и модифицирован для современных вариантов
использования: это должно избавить от таких ошибок компоновщика. В IDE
также представлены дополнительные опции для настройки проектов с
необычными способами сборки.
1.3.3 Выбор и обоснование способа приобретения ИС для автоматизации
задачи
Классический и расширенный Clang-компиляторы) Утечки памяти и
странное поведение при обработке исключений были переработаны и
исправлены.
(Расширенный Clang-компилятор) Имена классов всегда доступны в стеке
вызовов.
(Расширенный Clang-компилятор) Работа с локальными переменными для
Win32 и Win64 значительно улучшена в отладчике.
(Расширенный Clang-компилятор) В отладчике теперь есть поддержка для
нескольких переменных с одинаковыми именами в одном и том же методе.
Это ведет к снижению строгости ряда правил компилятора, в частности
отменяет следующие правила:
29
запрет на использование лишних точек с запятой в области
видимости класса;
запрет на применение безымянных структур;
запрет на использование старого стиля определения области
видимости имен в циклах;
запрет на объявления методов с указанием соглашения о вызове, если
эти объявления располагаются отдельно от определения и соглашения о вызовах;
запрет на использование оператора new при невозможности
разрешения его вызова;
запрет на автоматическое приведение типа const-класса, переданного
функции по значению;
запрет на приведение к указателю на член класса, если тип указателя
не наследуется от класса, в котором объявлена сама функция-член;
запрет на объявления с дублируемым спецификатором класса
хранения;
запрет или игнорирование директив #pragma comment(linker, «,»).
Кроме того, к программе требуется подключить библиотеку совместимости
с MFC nafxcw.lib, которая поставляется в комплекте C++ Builder. При выборе
опции совместимости с MFC в среде C++ Builder эта библиотека подключается
автоматически, но если компилирование и компоновка программы выполняется
из командной строки, то необходимо указывать специальный флаг (-VF).
Совместное использование библиотек MFC и VCL оказывается более
сложной задачей. Обычно для этого требуется внести определенные изменения в
некоторые заголовочные файлы, чтобы избежать конфликтов между именами,
используемыми в библиотеках MFC и VCL.
Другой уровень совместимости с продуктами Microsoft - возможность
импортировать проекты Microsoft Visual C++ непосредственно в среду разработки
C++ Builder. Для этого проект достаточно просто открыть и откомпилировать.
30
1.4 Обоснование проектных решений
1.4.1 Обоснование проектных решений по информационному обеспечению
Чтобы преобразовать проект, можно воспользоваться утилитой VCTOBPR,
которая превратит файлы проекта и рабочей среды Visual C++ в их эквиваленты
для C++ Builder.
В среду разработки C++ Builder компании Borland интегрирована
библиотека визуальных компонентов VCL из пакета Delphi. Проблема в том, что
Delphi основан на языке Pascal, а C++ - на языке С, который должен удовлетворять
определенным стандартам. Поэтому при добавлении к C++ новых возможностей
компания Borland делала это в соответствии с рекомендациями ANSI,
касающимися расширений языка.
В объектно-ориентированных языках программирования состояние
объекта в период его активности описывается с помощью переменных-членов.
Однако, если такие переменные напрямую доступны для элементов программы,
внешних по отношению к объекту, другие фрагменты программы могут нарушить
объект, неправильно изменив значения его переменных-членов.
Чтобы избежать возможных проблем, многие разработчики объектно-
ориентированных приложений создают функции-члены, которые носят название
функций получения (getter) и установки (setter) значения переменной (или
функций доступа). Эти функции позволяют программисту изменять значения,
присваиваемые переменным-членам класса, и генерировать исключение или
другое состояние ошибки в случае, когда функция получает неправильное
значение. Кроме того, программист получает возможность скрыть реальный тип
внутренней переменной или даже создать несколько различных скрытых
реализаций для хранения переменной-члена класса (например, файл, базу данных
или более сложные структуры).
31
1.4.2 Обоснование проектных решений по программному обеспечению
При использовании функций доступа возникает ряд проблем, одна из
которых состоит в том, что в вычислениях эти функции не так удобны, как
переменные-члены.
В классах C++ Builder свойство обычно состоит из объявления переменной-
члена (в разделе private), функций доступа (в разделе protected) и объявления
свойства в разделе public, как в приведенном ниже коде:
class aClassWithAProperty {
private:
int myMemberVariable; protected:
int __fastcall GetMemberVariable(void)
{
return myMemberVariable;
};
void __fastcall SetMemberVariable(
int theMemberVariable)
{
myMemberVariable = theMemberVariable;
};
public:
property int MemberVariable =
{
read=GetMemberVariable, write=SetMemberVariable
};
Экземпляр этого класса и его свойства можно использовать, как показано
ниже.
AClassWithAProperty ClassWithAProperty;
ClassWithAProperty.MemberVariable = 2;
int Something = ClassWithAProperty.MemberVariable;
В функциях доступа разрешается применять любой код. Свойства чаще
всего используются в компонентах C++ Builder. Для поддержки среды
32
визуального проектирования компания Borland создала специальный раздел
класса (который выделяется ключевым словом published), подобный разделам
public и private. Если свойство описано в разделе published, то оно будет
отображено в окне Object Inspector среды C++ Builder, где его можно будет
изменить.
1.4.3 Обоснование проектных решений по техническому обеспечению
При сохранении проекта значения свойств компонентов, которые описаны
в разделе published класса компонента, также сохраняются для каждого
экземпляра класса. Ниже приводится описанный ранее класс, представленный в
виде компонента (обратите внимание на раздел published, который теперь
содержит объявление property).
class aClassWithAProperty: public TComponent
{
private:
int myMemberVariable; protected:
int __fastcall GetMemberVariable(void)
{
return myMemberVariable;
};
void __fastcall SetMemberVariable(int theMemberVariable)
{
myMemberVariable = theMemberVariable;
};
published:
__property int MemberVariable = {
read=GetMemberVariable, write=SetMemberVariable
};
Многие компоненты, используемые для создания приложений с помощью
C++ Builder, извлекаются из библиотеки визуальных компонентов (Visual
Component Library - VCL). В аналогичной ей библиотеке межплатформенных
33
компонентов (Component Library for Cross-Platform - CLX) находятся
межплатформенные компоненты. Компонентом называется объект, обычно
визуальный, например флажок, комбинированный управляющий элемент или
рисунок. Компоненты могут быть и не визуальными, к ним относятся связи с
базами данных, сокеты для связи в распределенных системах.
Выбор компонентов осуществляется с помощью щелчка левой кнопкой
мыши и перемещения в рабочую область формы. Более подробно работа с
палитрой компонентов описана далее в главе, в разделе «Палитра компонентов».
Разработчик может не только использовать готовые компоненты, но и
создавать собственные, пользуясь способами, которые описаны в последующих
главах. Таким образом, компоненты VCL помогают избежать трудоемких и
рутинных операций.
Все компоненты обладают свойствами, которые можно изменять во время
разработки программы в интегрированной среде C++ Builder. Для изменения
свойств компонента предназначена вкладка Properties в окне Object Inspector,
расположенном в левой части экрана. Параметры свойств можно также изменять
непосредственно в коде, но без достаточного опыта работы с C++ Builder и VCL
этого делать не рекомендуется. Окно Object Inspector также содержит вкладку
событий Events, в которой можно создавать код событий, определяющий способ
взаимодействия пользователя с тем или иным компонентом. Такие обработчики
событий составляют основу кода программ, создающихся в среде C++ Builder.
Вывод по первой главе. В данной главе была рассмотрена теоретическая
база исследования. Проведен анализ языков программирования и программных
средств для разработки программного обеспечения.
Для разработки приложения тестирования знаний было выбрано
программное обеспечение Borland C++ Builder.
Borland C++ Builder - одна из ведущих сред разработки для создания
Internet-приложений, «настольных» и распределенных приложений, а также
приложений, основанных на модели клиент/сервер. C++ Builder сочетает простоту
среды быстрой разработки приложений, или RAD-среды (Rapid Application
Development - RAD), с мощью и производительностью языка C++, совместимого
со стандартом ANSI.
34
Язык программирования C++ остается наиболее распространенным. Он
применяется для разработки самых разных приложений - от сложных
многоуровневых бизнес-систем до высокопроизводительных программ
визуализации данных и систем реального времени.
Язык C++ является ядром среды C++ Builder, которая обеспечивает очень
высокую степень поддержки этого стандартизированного языка
программирования.
Язык C++ появился в результате развития языка С, созданного в компании
Bell Labs. Подобно C, язык C++ получил всеобщее признание и широкое
распространение.
Любая программа, написанная только на стандартном языке
программирования C будет компилироваться без изменений на любой платформе,
которая имеет соответствующие C реализации компилятора. Хотя C обычно
называется языком высокого уровня, это только язык «высокого уровня» по
сравнению с ассемблером, но значительно ниже уровнем, чем большинство
других языков программирования. Но в отличии от большинства он дает
программисту возможность полностью управлять содержимым памяти
компьютера. С не дает инструментов для проверки границ массива или
автоматической сборки мусора.
Руководство управления памятью обеспечивает программисту большую
свободу в настройке производительности программы, что особенно важно для
таких программ, как драйверы устройств. Однако, она также легко позволяет
случайно создать код с ошибками, вытекающих из ошибочных операций с
памятью, таких как переполнение буфера. Некоторые инструменты были созданы,
чтобы помочь программистам избежать этих ошибок, в том числе библиотеки для
проведения проверки границ массива и сбор мусора, и библиотеки проверки
исходного кода. Преднамеренное использование программ, написанных на С с
нуля и содержащих механизм переполнения буфера очень распространено во
многих компьютерных вирусов и очень популярно у хакеров, разрабатывающих
компьютерные черви.
Некоторые из выявленных недостатков С были рассмотрены и учтены в
новых языках программирования, полученных из Си. Язык программирования

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)