это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
2397686
Ознакомительный фрагмент работы:
ВВЕДЕНИЕ
Развитие человечества все больше и больше наталкивало величайшие умы на мысли об автоматизации некоторых процессов. Начало этапа программирования приписывается по разным источникам нескольким периодам в промежутке от начала 19 до середины 20 веков.
За эти десятилетия появилось множество методик написания исходного кода. Каждая из них кардинально отличается своими принципами и идеями. В данной работе рассматриваем и анализируем структурное программирование, появившееся в 70-х годах прошлого столетия. С разработкой данной методологии стали появляться и развиваться языки программирования. Структурный подход реализуют такие известные из них, как Pascal (Паскаль), C (Си), а также более устаревший - Algol (Алгол).
В свое время структурное программирование имело довольно большое распространение в среде информационных технологий и помогало решать сложнейшие на тот период задачи. Однако жизнь не стоит на месте, и технический прогресс требует свежих идей.
Актуальность темы данного исследования заключается в необходимости анализа возможностей и средств разработки программных приложений с помощью языков программирования высокого уровня, реализующих принципы структурного программирования.
Объект исследования: особенности состава и практического применения современных высокоуровневых языков разработки программного обеспечения на базе парадигмы структурного программирования.
Предмет исследования: специфика разработки программных приложений с помощью структурных языков программирования
Цель работы заключается в расширении, закреплении и систематизации знаний по изучаемой дисциплине, путем проведения анализа высокоуровневых языков разработки программного обеспечения.
Задачи исследования:
Анализ принципов структурных языков программирования.
Анализ способов тестирования и отладки программ
Аналитический обзор популярных структурных языков программирования.
В первом разделе был проведен анализ особенностей структурных языков программирования. Рассмотрены и описаны основные положения согласно тематике работы, описаны основополагающие термины и понятия. Описаны принципы структурного программирования. Также рассмотрены способы тестирования и отладки программ.
Во втором разделе проведены результаты выполненного аналитического обзора некоторых популярных языков программирования, являющихся востребованными на рынке труда разработчиков программного обеспечения. В частности, описаны возможности высокоуровневых языков программирования Pascal, C. По каждому из рассмотренных языков разработки программного кода приведен пример, демонстрирующие концептуальные положения и особенности функционального состава используемых средств. Приведены основные преимущества описанных языков.
Третий раздел отражает специфику практической реализации программного приложения в виде игры «Крестики – Нолики». Описан состав разработанного проекта программного приложения с соответствующими иллюстрациями. Приведено описание реализации функциональных возможностей разработанного программного приложения, приведены скриншоты основных форм, таких как регистрация пользователей и результата игры.
ГЛАВА 1. ОСОБЕННОСТИ И ПРИНЦИПЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ
История возникновения структурного программированияУже в начале 70-х годов объёмы и сложность программ достигли такого уровня, что "интуитивная" разработка программ, которая была нормой в более раннее время, перестала удовлетворять потребностям пользователей. Программы становились слишком сложными, чтобы их можно было нормально сопровождать, поэтому потребовалась какая-то систематизация процесса разработки и структуры программ. [ REF _Ref459558049 \r \h \* MERGEFORMAT 17]
Наиболее сильной критике со стороны разработчиков структурного подхода к программированию подвергся оператор GOTO (оператор безусловного перехода), имеющийся почти во всех языках программирования. Использование произвольных переходов в тексте программы приводит к получению запутанных, плохо структурированных программ, по тексту которых практически невозможно понять порядок исполнения и взаимозависимость фрагментов.
Следование принципам структурного программирования сделало тексты программ, даже довольно крупных, но преимущество в том, что тексты стали более читабельными.
Серьёзно облегчилось понимание программ, появилась возможность разработки программ в нормальном промышленном режиме, когда программу может без особых затруднений понять не только её автор, но и программисты, а также просто и пользователи, которые хоть немного знакомы с программированием.
Это позволило разрабатывать достаточно крупные программные комплексы силами коллективов разработчиков, и сопровождать эти комплексы в течение многих лет, даже в условиях неизбежной ротации кадров.[ REF _Ref461629735 \r \h \* MERGEFORMAT 15]
Методология структурной разработки программного обеспечения была признана "самой сильной формализацией 70-х годов". После этого слово "структурный" стало модным в отрасли, его начали использовать везде, старались делать акцент именно на том, что использовали структурное программирование. Появились работы по "структурному проектированию", "структурному тестированию", "структурному дизайну" и так далее, в общем, произошло примерно то же самое, что происходило в 90-х годах и происходит в настоящее время с терминами "объектный" и "объектно-ориентированный".
Традиционная технология программирования формировалась на заре вычислительной техники, когда в распоряжении пользователей были ограниченные ресурсы ЭВМ, а разработчик программ был в то же время и главным ее пользователем. В этих условиях главное внимание обращалось на получение эффективных программ в смысле оптимального использования ресурсов ЭВМ.
В настоящее время, когда сфера применения ЭВМ чрезвычайно расширились, разработка и эксплуатация программ осуществляется, как правило, с разными людьми. Поэтому наряду с эффективностью на первый план выдвигаются и другие важные характеристики программ такие, как понятность, хорошая документированность, надежность, гибкость, удобство сопровождения и т.п.
Проблема разработки программ, обладающих такими качествами, объясняется трудоемкостью процесса программирования и связанным с этим быстрым ростом стоимости программного обеспечения.
Для создания "хорошей" программы появляется необходимость придерживаться определенных принципов или определенной дисциплины программирования. Значительный прогресс в области программирования достигается с использованием, так называемого структурного программирования.
Появление новой технологии, или другое широко используемое определение - дисциплины программирования, основанной на структурном подходе, связано с именем известного голландского ученого Э.Дейкстры. В своих работах он высказал предположение, что оператор GOTO может быть исключен из языков программирования и что квалификация программиста обратно пропорциональна числу операторов GOTO в его программах. Такая дисциплина программирования упрощает, и структурируют программу. Однако представление о структурном программировании, как о программировании без использования оператора GOTO, является ошибочным.
Например, Хоор определяет структурное программирование как "систематическое использование абстракции для управления массой деталей и способ документирования, который помогает проектировать программу".
Структурное программирование можно толковать как "проектирование, написание и тестирование программы в соответствии с заранее определенной дисциплиной
Структурный подход к программированию, представляет собой именно снижение трудоемкости всего процесса создания программного обеспечения от технического задания на разработку до завершения эксплуатации. Он означает необходимость единой дисциплины на всех стадиях разработки программы. В понятие структурного подхода к программированию обычно включают нисходящие методы разработки программ, такой принцип называется – принцип «сверху вниз», собственно структурное программирование и так называемый сквозной структурный контроль.
Основной целью структурного программирования является уменьшения трудностей тестирования, а также создание корректной программы. Данный момент достаточно важен при разработке, например больших программных систем. Опыт использования методов структурного программирования и также структурных программ при разработке ряда сложных операционных систем показывает, что корректность логической структуры системы доказательства, а в свою очередь сама программа допускает достаточно полное тестирование.
Таким образом, в выполненной программе встречаются только элементарные ошибки кодирования, данные ошибки всегда легко исправляются и также их обнаружить не составит труда.
Программы, при написании которых были использованные традиционные методы, особенно те, которые слишком перегружены операторами GOTO, содержат хаотичную структуру.
Структурированные программы, представляют собой последовательную организацию, поэтому такие программы читаются сверху до низу без каких либо затруднений, просто без перерыва. Кроме этого, структурное программирование в первую очередь используется чтобы улучшить эффективность программ.
Итак, подведем итог, структурное программирование представляет собой некоторые принципы написания программы в соответствии со строгой дисциплиной и ставить цель облегчить процесс тестирования, повысить и улучшить производительность труда сотрудников, в частности программистов, улучшить ясность и читабельность программы, а также повысить ее эффективность и работоспособность.
Общая характеристика структурного программированияВ теории схем программ было, замечено, что некоторые случаи блок-схем легче поддаются анализу. Поэтому логично было выделить определенный класс блок-схем, что и сделали итальянские ученые С. Бем и К.Джокопинни в 1966г.
Они доказали что любую блок-схему алгоритма можно привести к структурному виду, используя несколько дополнительных булевых переменных.
Такой ученый, как Э. Дейкстра подчеркнул, что структурные программы в таком, виде, как правило, является легче понимаемыми и модифицируемым, так как каждый блок программы имеет один вход и один выход.
В качестве методики структурного программирования Э. Дейкстра предложил использовать лишь конструкции цикла и условного оператора, изгоняя go to, как концептуально противоречащее этому стилю программирования.
Структурное программирование основано главным образом на теоретическом аппарате теории рекурсивных функций. Программа рассматривается, как условный оператор программирования над библиотечными подпрограммами и исходными операциями. Структурное программирование основывается также на теории доказательств.
Структура программы соответствуют структуре простейшего математического рассуждения, не использующего сложных схем и абстрактных понятий. [ REF _Ref461629735 \r \h \* MERGEFORMAT 15]
Средства структурного программирования в первую очередь включаются во все языки программирования традиционного типа и также многие нетрадиционные языки.
При использовании структурного программирования присваивания локальные действия становятся граничной частью программы.
Необходимо достаточно внимательно разрабатывать структуру программы, чтобы каждая переменная в модуле использовалась для одной определенной цели, и не допускать не в коем случае сокращения, потому что ненужная переменная временно используется под совсем другое значение. Такие сокращения переменных запутывает структуру информационных зависимостей, которая при данном стиле программирования должна быть хорошо согласована со структурным содержанием программы.
Структурное программирование логично возникает во многих классах задач, но прежде всего в таких, где задача естественно распределяется на подзадачи, а информация - на достаточно независимые структуры данных. Основной его вариант:
Любые действия и условия локальны.
Необходимой чертой хорошей реализации структурного стиля программирования является поддержание согласованности, а в идеальном варианте и единства, следующего компонента программы, а именно структуры информационного пространства.
Содержательно любую задачу можно описать как переработку объектов, полный набор которых называется информационным пространством задачи.
Для структурного стиля программирования требуется следующее:
Задача разбивается на подзадачи и таким образом выстраивается дерево вложенности подзадач.
Информационное пространство структурируется в точном соответствии с деревом вложенности: для каждой подзадачи информационное пространство состоит из ее локальных объектов, определяемых вместе с подзадачей и для нее и так называемых глобальных объектов, определяемых как информационное пространство непосредственно в подзадачи.
Исходя из выше перечисленного, информационное пространство всей задачи (подзадачи верхнего уровня) увеличивается по мере перехода к подзадачам за счет их локальных объектов.
Для различных вторичных подзадач одной подзадачи оно имеет общую часть - информационное пространство родительской подзадачи.
Структуры управления.
Стиль структурного программирования в его общепринятом варианте предполагает использование строго ограниченного набора управляющих конструкций: последовательных операторов, условные и выбирающие операторы, все вычислительные ветви которых сходиться в одной точке программы, а также процедуры, вычисления которых обязательно всегда заканчиваются возвратом управления в точку вызова.
К структурным операторам добавляются либо циклы, либо рекурсии.
Потоки передачи данных.
Разбивая задачу на части, т.е. на подзадачи, программист предусматривает их взаимодействия между собой по данным: одни подзадачи передают другими данные для переработки.
Структуры данных.
Данные объединяются в логические связанные фрагменты, существующие структурам задачи или вспомогательных конструкций, вводимых для нее решения.
Призраки.
Часто сама программа не может быть объяснена через понятия, которые используются внутри нее. Еще более чаще это происходит для ее связей с внешним миром. Понимание программы возможно лишь после сопоставления реальных внутри программных объектов с идеальными внепрограммными объектами. Эти идеальные внепрограммные объекты (призраки) часто не нужны, но они также достаточно вредны для дальнейшего исполнения программы.
Для структурного программирования весьма важно, такое требование, что все структуры подчиняться структуре информационного пространства программы.
Это общее требование конкретизируется в следующем:
Необходимо, чтобы структура управления программы была согласована со структурой ее информационного пространства.
Каждой структуре управления программы соответствуют согласующиеся с ней структуры данных и часть информационного пространства программы. Это условие позволяет человеку легко и быстро отслеживать порядок выполнения конструкций в разрабатываемой программе.
Подзадачи могут обмениваться данными только посредством обращения к объектам из общей части их информационных пространствам, в современных языках программирование чаще всего к глобальных.
Структурное программирование лучше всего описано, теоретически, но частные описания данного типа программирования не сведены в единую систему. Одни источники литературы трактуют его с точки зрения программиста, другие источники - с точки зрения теоретика. Так что даже здесь нет единой системы взглядов . Но все основания для ее формирования уже имеются и несколько попыток формулировки уже существует.
Для создания корректной программы появляется необходимость придерживаться определенных принципов программирования. Прогресс в области программирования достигается с использованием так называемого структурного программирования. [ REF _Ref494552314 \r \h \* MERGEFORMAT 1]
Структурный подход к программирования как раз и имеет целью снижение трудоспособности всего процесса разработки и создания программного обеспечения от технического задания на разработку программы до завершения отладки и демонстрации программы. Он означает единой дисциплины программирования на всех стадиях разработки программы.
В понятие структурного подхода к программированию обычно включают нисходящие методы разработки программ (принцип “сверху вниз, собственно структурное программирование программ и так называемый структурный сквозной контроль)
Основной целью структурного программирования является уменьшение или полная ликвидация трудностей тестирования и доказательства корректности программы.
Это достаточно важно при разработке объёмных программных приложений. Опыт применения методов разработки структурного программирования при разработке ряда сложных операционных систем показывает, что корректность логической структуры системы поддается доказательству, а сама программа допускает достаточно полное тестирование.
Как итог программирования, разработанные и реализованные программы структурного программирования, могут иметь только самые элементарные ошибки кодирования, которые легко исправляются. [ REF _Ref459309709 \r \h \* MERGEFORMAT 14]
Структурное программирование улучшает ясность и читабельность программ. Программы, которые написаны с использованием, так называемых традиционных методов, особенно те, которые перегруженные операторами GOTO, имеют хаотичную структуру.
Программы структурного программирования имеют последовательную организацию, поэтому возможно читать такую программу сверху донизу без перерываю.
Наконец, структурное программирование призвано улучшить эффективность программ.
К основным методам структурного программирования, относиться прежде всего, отказ от бессистемного употребления оператора GOTO и преимущественного использование других структурированных операторов, методы нисходящего проектирования разработки программы, идеи пошаговой детализации и некоторые другие соглашения, касающиеся структурного программирования.
Основные принципы структурного программированияРассмотрим подробно основные моменты структурного подхода.
Исходный код имеет модульную структуру.
Это значит, что программа фактически разбита на более мелкие единицы - функции и процедуры. Эти подпрограммы могут быть вызваны из любого места разработки. Процедуры - выделенные участки кода, имеющие название и выполняющие конкретные действия, заданные алгоритмом. Функции вдобавок к этим возможностям реализуют вычисление некоторых переменных, а также имеют возвращаемое значение, которое может быть использовано в основной части программы.
Кроме того, некоторые языки поддерживают рекурсию - вызов из "самой себя". Для решения задач это может быть эффективным, однако часто приводит к зацикливанию. [ REF _Ref492147805 \r \h \* MERGEFORMAT 12]
2. Сверху-вниз или снизу-вверх.
Структурное программирование поддерживает несколько направлений. Последовательное определение целей, задачи и их реализация по ходу исходного кода - подход "сверху-вниз". Такая методика наиболее понятна с точки зрения исследования написанной программы и обнаружения "узких мест". Однако существует и другая сторона - подход "снизу-вверх". Обычно он используется, когда точный алгоритм программы еще не разработан, но уже есть возможность для написания отдельных подпрограмм, реализующих конкретные действия.
3.Управляющие элементы.
Структурное программирование избавилось от некоторых "ассемблерных" подходов. В низкоуровневневых языках часто используется безусловный переход (goto), который достаточно сложно отследить и контролировать. Структурный подход к программированию вместо этого использует следующие элементы: цикл, условие и последовательность.
Всякая программа, в соответствии со структурным подходом к программированию, может быть построена только с использованием трех основных типов блоков.
1. Функциональный блок, который на блок-схеме изображается в виде прямоугольников с одним входом и одним выходом:
Функциональному блоку в языках программирования соответствуют операторы ввода и вывода или любой оператор присваивания.
В виде функционального блока может быть изображена любая последовательность операторов, выполняющихся один за другим, имеющая один вход и один выход.
2. Условная конструкция. Этот блок включает проверку некоторого логического условия (P), в зависимости от которого выполняется либо один (S1), либо другой (S2) операторы:
На языке TP:
if <условие> then <оператор1> else <оператор2>;
3. Блок обобщенного цикла. Этот блок обеспечивает многократное повторение выполнения оператора S пока выполнено логическое условие P:
На языке TP циклы реализуются 2 способами.
Цикл с параметром:
for <параметр> := <нач.значение> to <кон.значение>;
. . begin
<оператор1>
. . <оператор2>
. . ...
. end;
Цикл с предусловием:
. while <условие>
. .begin
<оператор1>
. . <оператор2>
. . ...
. end;
При конструировании программы с использованием рассмотренных типов блоков эти блоки образуют линейную цепочку так, что выход одного блока подсоединяется к входу следующего. Таким образом, программа имеет линейную структуру, причем порядок следования блоков соответствует порядку, в котором они выполняются. [ REF _Ref494552350 \r \h \* MERGEFORMAT 4]
Такая структура значительно облегчает чтение и понимание программы, а также упрощает доказательство ее правильности. Так как линейная цепочка блоков может быть сведена к одному блоку, то любая программа может, в конечном итоге, рассматриваться как функциональный единый блок с один входом и одним выходом.
При проектировании и написании программы нужно выполнить обратное преобразование, то есть этот блок разбить на последовательность под блоков, затем каждый под блок разбить на последовательность более мелких блоков до тех пор, пока не будут получены "атомарные" блоки, рассмотренных выше типов. Такой метод конструирования программы принято называть нисходящим ("сверху вниз").
При нисходящем методе конструирования алгоритма и программы первоначально рассматривается вся задача в целом. На каждом последующем этапе задача разбивается на более мелкие подзадачи, каждая подзадача, в конечном итоге на еще более мелкие подзадачи и так до тех пор, пока не будут получены такие подзадачи, которые легко кодируются на выбранном языке программирования. При этом на каждом шаге уточняются все новые и новые детали ("пошаговая детализация").
В процессе нисходящего проектирования сохраняется строгая дисциплина программирования, то есть разбиение на подзадачи осуществляется путем применения только рассмотренных типов конструкций (функциональный блок, условная конструкция, обобщенный цикл), поэтому, в конечном итоге, получается хорошо структурированная программа.
В настоящее время в помощь структурному подходу к программированию появилось новое направление - объектное программирование , не отменяющее, а дополняющее принципы структурного подхода, позволяющее разрабатывать и модернизировать программный код с меньшими затратами времени, распределять задачу программирования между большим количеством программистов.
Основные принципы структурного программирования:
Принцип абстрактности.
Принцип формальности.
Принцип разделяй и властвуй.
Принцип модульности.
Принцип открытости
Выводы по главе 1В данном разделе был проведен анализ особенностей и принципов структурного программирования. Рассмотрены и описаны основные положения согласно тематике работы, описаны основополагающие термины и понятия. Также рассмотрены основные принципы структурного программирования.
ГЛАВА 2 АНАЛИТИЧЕСКИЙ ОБЗОР ПОПУЛЯРНЫХ ЯЗЫКОВ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ. ТЕСТИРОВАНИЕ И ОТЛАДКА ПРОГРАММ2.1. Высокоуровневый язык программирования PascalРассмотрим особенности данного языка программирования. Данный язык относиться к структурным языкам программирования. Особенностями данного языка является строгая типизация и наличие средств структурного программирования. Язык программирования Pascal является одним из первых таких языков.
По Н. Вирта, он должен способствовать программирования, поэтому, приведены к минимуму все возможные синтаксические неоднозначности, а сам синтаксис языка интуитивно понятен при первом знакомстве с языком.
Несмотря на многочисленные преимущества, первоначально язык обладал множеством недостатков:
невозможность передачи функциям массивов длины
отсутствие средств работы памятью, ограниченная ввода-вывода
отсутствие для подключения функций на других отсутствие средств компиляции и т. п.
По мнению Н. Вирта, язык программирования должен способствовать дисциплинированному программирования, поэтому в языке программирования паскаль, наряду со строгой типизацией, сведены к минимуму возможные синтактические неоднозначности, а синтаксис понятен даже при первом знакомстве с данным языком программирования. [ REF _Ref494552362 \r \h \* MERGEFORMAT 2]
В качестве информационных данных в программах на языке программирования Паскаль могут быть числа, символы, различные строки символов. Необходимо учитывать, что с этими данными различных видов информации выполняются совершенно разные действия. Например, с числовыми величинами производятся арифметические операции, чего не может быть с символьными данными.
Кроме того, разные виды данных требуют различного объема и распределения памяти для хранения.
В соответствии с этими рассуждениями в языке программирования Паскаль введено понятие Тип - (TYPE). Тип такой переменно указывает на то, какие именно данные могут быть сохранены в данном участке памяти, и в каких действиях эта переменная может участвовать. Существую зарезервированные (базовые) типы данных в языке Паскаль, но существует возможность создавать свои собственные типы данных .
К базовым типам переменных относятся:
тип целых чисел - Integer
тип "длинных" целых чисел - Longint
тип действительных чисел - Real
тип неотрицательных чисел от 0 до 255 - Byte
тип неотрицательных чисел от 0 до eq 65535 -Word
символьный тип -Char
строковый тип - String
логический тип - Boolean
Физически типы информационных данных отличаются друг от друга количеством ячеек памяти (байтов), отводимых для хранения соответствующей переменной. Если рассмотреть логическое отличие, то выявляется в интерпретации хранящейся информации. Например, переменные типа Char и также типа Byte занимают в памяти по одному байту. Однако, если рассмотреть структуру то в первом случае содержимое ячейки памяти интерпретируется как целый тип данных без знаковое число, а во втором - как код символа.
2.2. Высокоуровневый язык программирования C#Данный язык изначально создавался с целью обеспечения компонентного программирования, поэтому в его ядро закладывались возможности повторной инициализации и интеграции разработанных программистов программных компонентов. Особенностями данного языка являются [10]:
язык создавался параллельно с технологией .Net, что позволило разработчикам интегрировать все необходимые механизмы обеспечение функциональных взаимосвязей фреймворка, в том числе FCL и CLR;
это полноценный объектно-ориентированным язык, причем даже примитивные типы данных языка представлены в качестве отдельных классов;
поддержка механизмов наследования, инкапсуляции и полиморфизма;
разработан на базе использования C и C ++, что позволило интегрировать наиболее функциональные возможности этих высокоуровневых языков программирования;
с помощью поддержки ряда фреймворков, выступающих в виде некой надстройки над операционной системой пользователя, разработчики C# могут использовать механизмы создания и работы с виртуальной машиной, аналогично существующим технологиям языка Java. При этом существенно повышается эффективность и используемость программного кода. Это связано с тем, что исполнительная среда CLR позволяет обеспечить работу компилятора промежуточного уровня, что является более эффективным по сравнению с интерпретатором байт-кода в Java Virtual Machine.
При разработке языка C#, его создатели основывались на существующих преимуществах других языков, таких как C++, C, Java. В результате работы по созданию данного языка программирования высокого уровня получился удобный и гибкий язык, который по функциональным возможностям практически не уступает языку С++, однако существенно повышает эффективность и скорость разработки программ [13].
В качестве среды разработки для языка С# чаще всего применяется IDE Visual Studio. Данная среда разработки включает в себя гибкий и современный редактор исходного программного кода, интегрируя поддержку технологии IntelliSense, а также средства оперативного профилирования и рефакторинга кода.
Имеющийся в среде разработки отладчик способен функционировать в качестве отладчика на уровне исходного программного кода, а также имеются возможности его использования в качестве отладчика на машинном уровне.
К другим встроенным средствам и инструментам среды следует отнести интуитивно понятный редактор форм, который способствует ускорению процесса создания и конфигурирования компонентов графического интерфейса программного приложения, дизайнеры классов, объектов и схем баз данных [ REF _Ref459309709 \r \h \* MERGEFORMAT 14].
В настоящее время весьма популярен среди разработчиков программного обеспечения (ПО) набор продуктов компании Microsoft, включающих, в частности, интегрированную среду разработки (IDE) программ - Microsoft Visual Studio. В настоящее время актуальной версией является MVS 2015.
Предлагаемые средства разработки ПО продукты позволяют оперативно и гибко разрабатывать различные типы приложений, в частности, согласно [ REF _Ref494552382 \r \h \* MERGEFORMAT 10]:
консольные приложения;
приложения с графическим интерфейсом, на базе использования популярной среди разработчиков десктопных решений технологии Windows Forms;
веб-сайты, на базе использования ASP.net.
Состав основных компонентов проекта на языке C# в Visual Studio приведена на рис. 1.
Рисунок SEQ Рисунок \* ARABIC 1- - Состав основных компонентов проекта на языке C# в Visual Studio
IDE Visual Studio включает в себя гибкий и современный редактор исходного программного кода, интегрируя поддержку технологии IntelliSense, а также средства оперативного профилирования и рефакторинга кода. Имеющийся в среде разработки отладчик способен функционировать в качестве отладчика на уровне исходного программного кода, а также имеются возможности его использования в качестве отладчика на машинном уровне.
К другим встроенным средствам и инструментам среды следует отнести интуитивно понятный редактор форм, который способствует ускорению процесса создания и конфигурирования компонентов графического интерфейса программного приложения, дизайнеры классов, объектов и схем баз данных [ REF _Ref494552382 \r \h \* MERGEFORMAT 10].
IDE Visual Studio, также, позволяет разрабатывать и интегрировать в проект сторонние плагины и функциональные расширения, которые обеспечивают новые возможности разработки приложений на различных уровнях. В частности, широко используются плагины добавления функций использования современных систем контроля версий (Subversion, Git), интеграции новых пакетов инструментов для визуального редактирования проектирования кода на UML-языке, создания диаграмм сценариев использования, разработки алгоритмов [ REF _Ref494552382 \r \h \* MERGEFORMAT 10].
2.3. Тестирование и отладка программы. Корректность программыПри разработке программ наиболее трудоемким считается этап отладки и тестирования программ.
Цель, тестирования программы, т.е. испытания программы, заключается в выявлении имеющихся в этой программе ошибок. Цель отладки программы состоит в выявлении и устранении причин выявленных ошибок.
Отладку программы начинают с составления плана тестирования. Такой план тестирования должен представлять себе любой программист или просто разработчик программы, даже если например просто студенческая разработка программы. Составление плана опирается на понятие об источниках и характерах ошибок.
Основными источниками ошибок являются:
недостаточно глубокая проработка математической и логической модели или алгоритма решения задачи;
нарушение соответствия между схемой алгоритма или записью его на алгоритмическом языке и программой, записанной на языке программирования;
неверное представление исходных данных на так называем программном бланке;
невнимательность при наборе программы и исходных данных на клавиатуре устройства ввода.
В данной работе при разработке и реализации программы был использован язык программирования Паскаль. Поэтому рассмотрим как именно происходит тестирования и отладка программы в данном языке программирования. Итак дадим определение понятию тестирование и отладка.
Для проверки правильности функционирования программы выполняется тестирование. Тестирование – это исполнение программы с использованием некоторого набора входных данных, охватывающего весь спектр возможных значений для данного типа задач и проверяющих граничные условия, а также позволяющего через контроль промежуточных и конечных результатов решения задачи в ходе исполнения программы проверить выполнение операторов программы в требуемой последовательности и правильность действия всех алгоритмических конструкций.
Набор данных для тестирования, результаты выполнения и ход работы правильной программы при выполнении теста просчитывают заранее. Процесс тестирования удостоверяет качество программы, поэтому он должен быть документирован, то есть будущие пользователи должны знать, как и при каких условиях программа тестировалась, каковы были входные данные и результаты, с тем чтобы тест можно было повторить.
Если цель тестирования - только выявить ошибки в программе, то для обнаружения и устранения ошибок в программе выполняют ее отладку.
Рассмотрим процесс отладки программы в среде программирования Паскаль.
Отладка в интегрированной среде программирования Pascal заключается в том, что с помощью встроенного в интегрированную среду программирования специального средства - отладчика анализируется поведение программы в "окрестностях" ошибки.
С этой целью в интегрированной среде программирования обеспечивается возможность трассировки программы, то есть выполнения "по шагам", а также с остановкой в указанных точках или при выполнении заданных условий, просмотр и изменение содержимого ячеек памяти компьютера, регистров процессора.
Эти возможности отладки предоставляются через пункт Debug главного меню интегрированной среды программирования.
Для просмотра значений переменных в процессе выполнения программы активизируйте опцию Add.
В окно добавления переменных для просмотра (Add watch) введите выражение, например B=0, за изменением значения которого в ходе выполнения программы необходимо наблюдать.
Включить переменную (выражение) в список просмотра можно, установив курсор на этой переменной или начале выражения, нажать клавиши Ctrl+F7. В появившемся на экране окне ввода выражения, нажимая клавишу со стрелкой вправо, задайте нужное выражение и нажмите Enter .
Для того, чтобы в процессе отладки одновременно с окном редактирования на экране было выведено окно просмотра, в главном меню выберите пункт Window и задайте режим Tile (отображения окон.
Если вы ошибочно ввели неверный идентификатор переменной, или желаете удалить некоторый идентификатор из окна просмотра, то нажмите клавишу F6, после этого из окна редактирования вы перейдете в окно просмотра. Клавишами со стрелками ""-"¯" установите курсор на удаляемом идентификаторе и нажмите клавишу Delete. Если вы хотите пополнить список переменных, чьи значения просматриваются в процесс
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Требуется разобрать ст. 135 Налогового кодекса по составу напогового...
Решение задач, Налоговое право
Срок сдачи к 5 дек.
Школьный кабинет химии и его роль в химико-образовательном процессе
Курсовая, Методика преподавания химии
Срок сдачи к 26 дек.
Реферат по теме «общественное мнение как объект манипулятивного воздействий. интерпретация общественного мнения по п. бурдьё»
Реферат, Социология
Срок сдачи к 9 дек.
Выполнить курсовую работу. Образовательные стандарты и программы. Е-01220
Курсовая, Английский язык
Срок сдачи к 10 дек.
Изложение темы: экзистенциализм. основные идеи с. кьеркегора.
Реферат, Философия
Срок сдачи к 12 дек.
Заполните форму и узнайте цену на индивидуальную работу!