Среды быстрого проектирования доклад

Обновлено: 17.05.2024

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

Оценить 216 0

Федеральное государственное бюджетное образовательное учреждение

Кафедра информатики и вычислительной техники

Понятие среды (системы) программирования. Основные компоненты среды программирования, их назначение

Автор работы _____________________________________ Д.Р. Янгаева

Направления подготовки 44.03.05 Педагогическое образование

Профиль Информатика. Математика

доцент____________________________________________Т. В. Кормилицына

1. Системы программирования как неотъемлемая часть ЭВМ4

1.1 Определение системы программирования4

1.2 Классификация систем программирования5

1.3 Средства создания программ6

1.4. Основные компоненты среды программирования8

2. Современные системы программирования. Microsoft Visual Basic10

Введение

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

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

Цель работы - описать системы программирования и основные компоненты среды программирования.

1. Системы программирования как неотъемлемая часть ЭВМ

1.1 Определение системы программирования

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

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

Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ (2, 569). Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд, и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.

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

Среда программирования– это набор инструментов, которые используются для преобразования символов в выполнимые вычисления.

Среда программирования это совокупность программ, обеспечивающих технологический цикл разработки программ: анализ, спецификация,проектирование, кодирование (редактирование, компиляция, компоновка), тестирование, отладка.

1.2 Классификация систем программирования

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

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

Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков:

высокое качество создаваемых программ;

возможность использования конкретных аппаратных ресурсов;

предсказуемость объектного кода и заказов памяти;

для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

низкая скорость программирования;

невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

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

1.3 Средства создания программ

В самом общем случае для создания программы на выбранном языке программирования нужно иметь следующие компоненты.

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

2. Исходный текст с помощью программы-компилятора переводится в машинный код. Исходный текст программы состоит, как правило, из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, которые затем требуется объединить в одно целое. Кроме того, системы программирования, как правило, включают в себя библиотеки стандартных подпрограмм (имеют расширение . LIB ). Стандартные подпрограммы имеют единую форму обращения, что создает возможности автоматического включения таких подпрограмм в вызывающую программу и настройки их параметров.

3. Объектный код модулей и подключенные к нему стандартные функции обрабатывает специальная программа – редактор связей. Данная программа объединяет объектные коды с учетом требований операционной системы и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы. Исполнимый код это законченная программа, которую можно запустить на любом компьютер, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение . exe или . com .

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

5. В последние несколько лет в программировании (особенно для операционной среды Windows ) наметился так называемый визуальный подход. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, свойства и поведение которых настраиваются с помощью специальных редакторов. Таким образом, происходит переход от языков программирования системного уровня к языкам сценариев.

1.4. Основные компоненты среды программирования

Рассмотрев несколько интернет источников, я поняла, что на разных сайтах выделяют разное количество основных компонентов среды программирования, но все они не менее важны. Проанализировав, я выделила:


Редактор – это средство для создания и изменения исходных файлов, которые содержат написанную на языке программирования программу.

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

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

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

Интерпретатор– выполняет исходный код программы в отличие от компилятора, переводящего исходный файл в объектный.

Компоновщик (редактор связей) – собирает объектные файлы программы и формирует исполняемый файл (разрешая внешние ссылки между объектными файлами).

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

Основные функции отладчика:


2. Современные системы программирования. Microsoft Visual Basic

Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Бейсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.

Visual Basic считается хорошим средством быстрой разработки прототипов программы, для разработки приложений баз данных и вообще для компонентного способа создания программ, работающих под управлением операционных систем семейства Microsoft Windows.

Первое признание серьёзными разработчиками Visual Basic получил после выхода версии 3 — VB3. Окончательное признание как полноценного средства программирования для Windows — при выходе версии 5 — VB5. Версию VB6, входящую в состав Microsoft Visual Studio 6.0, стала по-настоящему зрелым и функционально богатым продуктом. После этого разработчики из Microsoft существенно изменили направление развития данной технологии.

1) Классический Visual Basic (версии 5-6).Этот язык очень сильно привязан к своей среде разработки и к операционной системе Windows, являясь исключительно инструментом написания Windows-приложений. Привязка к среде заключается в том, что существует большое количество средств, предназначенных для помощи и удобства программирования: встроенный отладчик, просмотр переменных и структур данных на лету, окно отладки, всплывающая подсказка при наборе текста программы (Intellisense). Все эти преимущества делают бесполезным и даже невозможным использование Visual Basic вне среды разработки, например в обычном текстовом редакторе.

2) Visual Basic for Applications (VBA) Это средство программирования, практически ничем не отличающееся от классического Visual Basic, которое предназначено для написания макросов и других прикладных программ для конкретных приложений. Наибольшую популярность получил благодаря своему использованию в пакете Microsoft Office. Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов.

3) Visual Basic Scripting Edition (VBScript).Скриптовый язык, являющийся несколько усечённой версией обычного Visual Basic. Используется в основном для автоматизации администрирования систем Windows, а также для создания страниц ASP и сценариев для Internet Explorer.

Высокая скорость создания приложений с графическим интерфейсом для MS Windows.

Простой синтаксис, позволяющий очень быстро освоить язык.

Возможность как компиляции в машинный код, так и интерпретации во время отладки.

Поддержка операционных систем только семейства Windows и Mac OS X (Исключение — VB1 for DOS).

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

Требует установленных DLL для работы программы


Сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционные системы. Наиболее популярны следующие визуальные среды быстрого проектирования:
1) MicrosoftVisualBasic;

4) Symantec Caf é.

Из универсальных языков программирования сегодня наиболее популярны следующие:

Бейсик (Basic) – для освоения требует начальной подготовки (общеобразовательные школы)

Паскаль (Pascal) – требует специальной подготовки (школы с углубленным изучением предмета и общетехнические вузы)

Си++ (C++), Ява (Java) – требуют профессиональной подготовки (специализированные средние и высшие учебные заведения)

Именно эти системы и языки программирования в дальнейшем будут определять развитие информатики.

Список использованных источников

1. Зуев Е.А. прграммирование на языке Turbo Pascal 6.0, 7.0. – М.: Веста, Радио и связь, 1993, – 376 с.

2. Информатика: Базовый курс/ Симонович С.В. и др. – СПб.: Питер, 2001. – 640 с.

3. Моначов В. Язык программирования Java и среда NetBeans . – 2-е изд. – СПб.: БХВ-Петербург, 2009. – 720 с.

4. Моргун А.Н. Справочник по Turbo Pascal для студентов. – М.: Диалектика, 2006. – 608 с.

5. Сайлер Б., Споттс Д. Использование VisualBasic 6. Классическое издание. – М.: Вильямс, 2007. – 832 с.

7. Стефенс Д. Р. C++. Сборник рецептов. — КУДИЦ-ПРЕСС, 2007. — 624 с.

8. Страуструп Б. Язык программирования С++ = The C++ Programming Language / Пер. с англ. — 3-е изд. — СПб.; М.: Невский диалект — Бином, 1999. — 991 с.

9. Угринович Н. Информатика и информационные технологии. Учебник для 10 – 11 классов. 4-е изд. – М.: Бином. Лаборатория знаний, 2007. – 511с.

10. ФароновВ.В. Turbo Pascal. Наиболее полное руководство. – СПб.: Питер, 2007. – 763 с.

11. Хорстманн К.С., Корнелл Г. Java 2. Библиотека профессионала, том 1. Основы. – М.: Вильямс, 2008. – 816 с.

Архитектура программных систем

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

Автономные приложения. Работают на одном компьютере.

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

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

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

Приложения в клиент-серверной архитектуре. Эта архитектура похожа на предыдущую, только сервер помимо простого обеспечения одновременного доступа к данным способен еще выполнять программы (обычно выполняются СУБД –тогда сервер называется сервером баз данных), которые берут на себя определенный объем вычислений (в файл-серверной архитектуре он реализуется полностью на клиентских местах). Благодаря этому удается повысить общую надежность системы, так как сервер работает значительно более устойчиво, чем ПК, и снять лишнюю нагрузку с клиентских мест, на которых удается использовать дешевые компьютеры. Запускаемые на них приложения реально осуществляют небольшие объемы вычислений, а иногда занимаются только отображением получаемой от сервера информации, поэтому они называются тонкими клиентами.

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

Частный случай компонентного подхода — доступ к серверным приложениям из броузеров через Интернет.

Сегодня наиболее популярны три компонентные технологии – CORBA консорциума ОМG, Java Beans компании Sun и СОМ+ корпорации Microsoft.


Начнём с официальных представителей лидеров мобильного рынка: Windows, Google и Apple.

Visual Studio 2015

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

Недостатки: новичку будет просто невозможно самостоятельно разобраться с Visual Studio без прохождения специальных курсов и чтения литературы. Это продукт скорее для опытных разработчиков, обращающих внимание на качество редактора и функции тестирования.

Android Studio

Описание: относительно молодая и стремительно развивающаяся IDE, ориентированная на разработчиков приложений для Android.

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

XCode

Описание: IDE, ориентированная на создание приложений для OS X и iOS. Для использования языков Objective C и Swift на сегодня это лучшее, а для некоторых задач и вовсе единственное решение.

Недостатки: многие разработчики жалуются на стабильность среды, вынуждающую вносить дополнительные изменения в свои проекты после выхода очередной версии. Кроме того, XCode относительно сложная IDE для самопознания новичком. Именно поэтому рекомендуем вам пройти наш бесплатный интенсив по основам языка Swift. На нем мы рассмотрим тонкости работы с этой IDE.


От официальных представителей перейдём к универсальным кроссплатформенным средам разработки:

Xamarin Studio

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

IntelliJ IDEA

Описание: IDE, разработанная компанией JetBrains, позволяющая создавать программы на множестве популярных языков, среди которых Java, JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++.

Недостатки: производительность. Томительное ожидание выполнения компиляции, перекомпиляции, тестирования порой действительно раздражает.

Appcelerator Titanium

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

Недостатки: возможности, предоставляемые Appcelerator Titanium имеют и обратную сторону: генерируемые ошибки в коде, искусственные ограничения, недостаточно качественная документация.

Eclipse

Описание: среда разработки, изначально ориентированная на работу с Java, прославилась большим количеством внешних модулей, существенно расширяющих её функциональность (в том числе, это касается количества поддерживаемых языков).

Недостатки: существенная нехватка документации, нет единого сообщества разработчиков.

Netbeans

Описание: мощная IDE для разработки приложений на Java, JavaScript, Python, PHP, C, C++ и даже Ада.


PhoneGap

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

А какими IDE пользуетесь вы? И какие у них недостатки?


Начнём с официальных представителей лидеров мобильного рынка: Windows, Google и Apple.

Visual Studio 2015

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

Недостатки: новичку будет просто невозможно самостоятельно разобраться с Visual Studio без прохождения специальных курсов и чтения литературы. Это продукт скорее для опытных разработчиков, обращающих внимание на качество редактора и функции тестирования.

Android Studio

Описание: относительно молодая и стремительно развивающаяся IDE, ориентированная на разработчиков приложений для Android.

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

XCode

Описание: IDE, ориентированная на создание приложений для OS X и iOS. Для использования языков Objective C и Swift на сегодня это лучшее, а для некоторых задач и вовсе единственное решение.

Недостатки: многие разработчики жалуются на стабильность среды, вынуждающую вносить дополнительные изменения в свои проекты после выхода очередной версии. Кроме того, XCode относительно сложная IDE для самопознания новичком. Именно поэтому рекомендуем вам пройти наш бесплатный интенсив по основам языка Swift. На нем мы рассмотрим тонкости работы с этой IDE.


От официальных представителей перейдём к универсальным кроссплатформенным средам разработки:

Xamarin Studio

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

IntelliJ IDEA

Описание: IDE, разработанная компанией JetBrains, позволяющая создавать программы на множестве популярных языков, среди которых Java, JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++.

Недостатки: производительность. Томительное ожидание выполнения компиляции, перекомпиляции, тестирования порой действительно раздражает.

Appcelerator Titanium

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

Недостатки: возможности, предоставляемые Appcelerator Titanium имеют и обратную сторону: генерируемые ошибки в коде, искусственные ограничения, недостаточно качественная документация.

Eclipse

Описание: среда разработки, изначально ориентированная на работу с Java, прославилась большим количеством внешних модулей, существенно расширяющих её функциональность (в том числе, это касается количества поддерживаемых языков).

Недостатки: существенная нехватка документации, нет единого сообщества разработчиков.

Netbeans

Описание: мощная IDE для разработки приложений на Java, JavaScript, Python, PHP, C, C++ и даже Ада.


PhoneGap

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

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

Появление RAD

За появление быстрой разработки приложения стоит благодарить неидеальность модели семейства Waterfall при создании ПО. Всё дело в том, что изначально водопадная система разработки была основана на традиционной инженерной модели, используемой для проектирования и возведения зданий и мостов.

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

Waterfall vs RAD

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

Спиральная модель — процесс разработки ПО, комбинирующий проектирование и постадийное прототипирование.

Основы (принципы) быстрой разработки приложений

Принципы RAD сосредоточены на том, чтобы обеспечить основные преимущества методики быстрой разработки приложений:

  • повышенная скорость разработки
  • низкая стоимость
  • высокое качество.

С последним пунктом возникает больше всего проблем, потому что разработчик и заказчик видят предмет разработки по-разному.

Для устранения этой и других проблем Джеймсом Мартином и его последователями были выделены следующие принципы RAD:

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

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

Жизненный цикл программного обеспечения по RAD

В процессе RAD приложение проходит четыре фазы.

Фаза анализа и планирования требований

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

Фаза проектирования

Часть пользователей участвует в техническом проектировании системы под руководством разработчиков. Группы или подгруппы RAD на этой фазе обычно используют комбинацию техник с овместной разработки приложений (JAD) и CASE-инструменты для воплощения потребностей пользователей в рабочих моделях.

JAD (Joint Application Development) — концепция совместной разработки приложений, в рамках которой происходит тесное взаимодействие между заказчиком и исполнителями для максимально эффективного решения вопросов, касающихся разрабатываемого ПО.
Case — комплект инструментов и методов для проектирования ПО для обеспечения высокого качества программ, отсутствия ошибок и простоты в обслуживании программных продуктов.

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

В результате фазы создаются:

  • общая информационная модель приложения
  • функциональные модели системы и подсистем
  • рабочие прототипы экранов, отчётов и диалогов.

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

В качестве платформы разработки выбрали freeware SpringToolSuite, для которой доступно большое количество сэмплов — прописанных кусочков кода.
В роли сервера — Apache Tomcat 6.0.

Фаза построения

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

Фаза внедрения

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

При этом доля заказов по телефону пропорционально снизилась, а значит удалось сократить штат менеджеров по работе с клиентами.

Стоит отметить, что в отличии от Waterfall, жизненный цикл проекта по методологии RAD не является жёстким. Зависимо от стартовых условий, количество фаз может уменьшаться, как и их наполнение.

Плюсы и минусы быстрой разработки приложений в вашей компании

Использовать Rapid Application Development или нет, во многом зависит от стартовых условий, требований заказчика и вида приложения.

К однозначным преимуществам RAD относятся:

  1. высокое качество. Взаимодействие пользователей с прототипами повышает функциональность проектов, выполненных в рамках быстрой разработки приложений. Такое программное обеспечение может больше отвечать потребностям заказчика (конечного пользователя), чем при использовании методик Agile/Waterfall.
  2. контроль рисков — несмотря на то, что львиная частьматериалов о RAD фокусируется на скорости и вовлечении пользователей как ключевым особенностям модели, нельзя исключать третье важное преимуществоснижение рисков. Интересно, но Боэм, создавший первую версию RAD, охарактеризовал спиральную модель как основанную на риске.
    Использование rapid application development позволяет уже на ранних стадиях сосредоточиться на главных факторах риска и приспособиться к ним.
  3. за единицу времени выполняется больше проектов в рамках бюджета — так как RAD подразумевает инкрементную модель разработки, шансы на критические ошибки, которые часто случаются в больших проектах по системе Waterfall, снижены.
    Если в проектах по водопадной системе реализация проекта была возможна после шести и более месяцев анализа и разработки, то в RAD вся необходима информация открывается раньше, во время самого процесса создания приложения.
Инкрементная модель разработки — формат разработки программного обеспечения, которая предусматривает деление продукта на относительно независимые компоненты. Последние разрабатываются и вводятся в эксплуатацию по отдельности.

Не обошлось и без недостатков.

К минусам rapid application development можно отнести:

Методология RAD подойдет вашему проекту

Методология RAD подойдет вашему проекту, если:

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

Методология rapid application development не подойдёт вашему проекту, если:

  • для него важно качество и контроль
  • идет речь о создании крупномасштабного проекта — предполагаемое максимальное время разработки приложения составляет 60-90 дней, а при написании сотни тысяч строк программного кода соблюсти такое ограничение практически невозможно
  • критически важным для реализации является высокий уровень планирования и жесткая дисциплина проектирования, строгое следование заранее разработанным протоколам и интерфейсам
  • от приложения в определенной степени зависит безопасность людей.

Вердикт

Концепция быстрой разработки приложений (сокращённо RAD от Rapid Application Development) — разновидность инкреметных моделей разработки ПО.

Ключевые параметры, которыми оперирует RAD —
скорость и удобство программирования.

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

Читайте также: