Быстрая разработка по. Анализ технологий создания программного обеспечения

Новости 13.08.2019

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

  • Современное управление
  • Контроль
  • Мониторинг

Срочно - не значит некачественно?

Разработка программ - это трудоёмкий процесс, который требователен к уровню и знаниям исполнителя. Традиционно считается, что качество подразумевает долгий цикл. Но так ли это на самом деле? Возможна ли быстро и срочно разработать ПО?

  • Чтобы продукт получался быстро - необходима либо слаженная команда профессионалов, либо отдельный исполнитель-универсал. Разумеется, это не подходит ко всем программам.
  • Контроль качества - обязательная процедура. Контроль качества и отлов «багов» в таком процессе как создание программного обеспечения не может быть исключён из производственного процесса, даже для ускорения. Это необходимое условие для профессионально сделанной программы.
  • Чтобы срочность не вредила итоговому продукту, нужны исполнители, которые давно освоили и создали свой производственный процесс. Скорее всего разработка ПО у таких специалистов пройдёт действительно качественно и быстро.

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

Поиск исполнителей.

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

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

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

Rapid Application Development (RAD) - это жизненный цикл процесса проектирования, созданный для достижения более высоких скорости разработки и качества ПО, чем это возможно при традиционном подходе к проектированию.

Концепция RAD стала ответом на методы разработки программ 1970-х и начала 1980-х годов, такие как «модель водопада». Эти методы предусматривали настолько медленный процесс создания программы, что зачастую даже требования к программе успевали измениться до окончания разработки. Основателем RAD считается сотрудник IBM Джеймс Мартин, который в 1980-х годах сформулировал основные принципы RAD, основываясь на идеях Барри Бойма и Скотта Шульца. А в 1991 году Мартин опубликовал известную книгу, в которой детально изложил концепцию RAD и возможности её применения. В настоящее время RAD становится общепринятой схемой для создания средств разработки программных продуктов.

RAD предполагает, что разработка ПО осуществляется небольшой командой разработчиков за срок порядка трех-четырех с применением инструментальных средств визуального моделирования и разработки. Технология RAD предусматривает активное привлечение заказчика уже на ранних стадиях - обследование организации, выработка требований к системе. Методология RAD является одним из подходов к разработке ПО в рамках спиральной модели ЖЦ.

Жизненный цикл ПО по методологии RAD состоит из четырех фаз:

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

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

фаза построения;

фаза внедрения.

На стадии анализа и планирования требований пользователи осуществляют следующие действия:

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

выделение наиболее приоритетных функций, требующих проработки в первую очередь;

описание информационных потребностей.

Формулирование требований к системе осуществляется в основном силами пользователей под руководством специалистов-разработчиков. Кроме того, на данной стадии решаются следующие задачи:

ограничивается масштаб проекта;

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

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

список расположенных по приоритету функций будущего ПО ИС;

предварительные модели ПО.

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

более детально рассматриваются процессы системы;

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

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

определяется состав необходимой документации.

Далее проект распределяется между различными командами разработчиков. В случае использования CASE-средств это означает деление функциональной модели системы (диаграммы потоков данных для структурного подхода или диаграммы вариантов использования для объектно-ориентированного подхода). Результатом данной стадии должны быть:

общая информационная модель системы;

функциональные модели системы в целом и подсистем, реализуемых отдельными командами разработчиков;

точно определенные интерфейсы между автономно разрабатываемыми подсистемами;

построенные прототипы экранных форм, отчетов, диалогов.

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

На стадии реализации выполняется быстрая разработка приложения:

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

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

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

осуществляется анализ использования данных и определяется необходимость их распределения;

производится физическое проектирование базы данных;

формулируются требования к аппаратным ресурсам;

устанавливаются способы увеличения производительности;

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

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

Применение технологии RAD целесообразно, когда:

требуется выполнение проекта в сжатые сроки (90 дней);

нечетко определены требования к ПО;

проект выполняется в условиях ограниченности бюджета;

интерфейс пользователя (GUI) есть главный фактор;

проект большой, но поддается разделению на более мелкие функциональные компоненты;

ПО не обладает большой вычислительной сложностью.

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

Рисунок 1 - Сравнение RAD и Каскадного метода

Среды быстрой разработки приложений

CASE -системы часто отождествляют с инструментальными средами разработки ПО, называемыми средами быстрой разработки приложений (RAD - Rapid Application Development ). Примерами широко известных инструментальных сред RAD являются Visual Basic , Delphi , PowerBuilder фирм Microsoft , Borland , PowerSoft соответственно. Применение инструментальных сред существенно сокращает объем ручной работы программистов, особенно при проектировании интерактивных частей программ.

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

Простейшая система для написания Windows-программ на языке С++, позволяющая сократить объем кода, создаваемого пользователем вручную, основана на библиотеке DLL (Dynamic Link Library ), которая содержит модули, реализующие функции API для связи прикладных программ с ОС Windows .

Эта система получила развитие в MFC (Microsoft Foundation Classes ), представляющей собой библиотеку классов для автоматического создания каркасов ПО многоуровневых приложений. В библиотеке имеются средства для поддержки оконного интерфейса, работы с файлами и др.

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

  1. Окно меню с пунктами « file », « edit », « window » и т. п., реализующими функции, очевидные из названия пунктов.
  2. Окно формы, на котором собственно и создается прототип экрана будущей прикладной программы.
  3. Палитра инструментов - набор изображений объектов пользовательского интерфейса, из которых можно компоновать содержимое окна формы.
  4. Окно свойств и событий, с помощью которого ставятся в соответствие друг другу объекты окна формы, события и обработчики событий. Событием в прикладной программе является нажатие клавиши или установка курсора мыши в объект формы. Каждому событию должна соответствовать событийная процедура (обработчик события), которая проверяет код клавиши и вызывает нужную реакцию. В RAD имеются средства для удобства разработки обработчиков событий.
  5. Окно редактора кода, в котором пользователь записывает создаваемую вручную часть кода.

6. Окно проекта - список модулей и форм в создаваемой программе.

Для написания событийных процедур в Visual Basic используется одноименный язык и текстовый редактор этого языка, в Delphi - язык и редактор языка Object Pascal . В CASE -системе фирмы IBM , включающей части VisualAge (для клиентских приложений) и VisualGen (для серверных приложений), базовым языком выбран SmallTalk . В среде разработки приложений клиент - сервер SQLWindows оригинальные фрагменты программ пишутся на специальном языке SAL . Нужно заметить, что для реализации вычислительных процедур и, в частности, для написания мини-спецификаций используется обычная для 3 GL технология программирования.

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

Помимо упрощения написания пользовательского интерфейса, в средах RAD предусматриваются средства для реализации и ряда других функций. Так, в наиболее развитой версии Visual Basic к ним относятся средства выполнения следующих функций:

поддержка ODBC , что дает возможность работы с различными СУБД;

разработка баз данных;

разработка трехзвенных систем распределенных вычислений;

интерактивная отладка процедур на SQL Server ;

управление версиями при групповой разработке ПО;

моделирование и анализ сценариев распределенных вычислений.

Для создания сред RAD в случае сетевого программирования требуется решить ряд дополнительных проблем, обусловленных многоплатформенностью в гетерогенных сетях, обилием применяемых форматов данных, необходимостью защиты информации и т. п. Решение этих проблем достигнуто в объектно-ориентированных технологиях на базе языка сетевого программирования Java . Кроме того, с помощью Java удается решить еще одну актуальную для Internet и Intranet задачу - сделать Web -страницы интерактивными.

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

Для разработки ПО на языке Java создан ряд инструментальных средств. Основной средой является JDK (Java Developer " s Kit ). В ней имеются: 1) библиотеки классов, в том числе библиотеки элементов языка, часто используемых оболочек (wrapper ), процедур ввода-вывода, компонентов оконного интерфейса и другие; 2) инструментальные средства, такие, как компилятор байт-кодов, интерпретатор, просмотрщик аплетов, отладчик, формирователь оконных форм и т. п. Развитую RAD -среду - Power J - предлагает фирма Sybase .

Наряду с самостоятельными RAD -системами имеются и RAD -системы в составе САПР. Это прежде всего упомянутая выше система CAS . CADE фирмы Matra Datavision .

RAD-технология (Rapid Application Development ) – это технология бы­строго создания приложений на основе прототипирования и использо­вания графического пользовательского интерфейса GUI (Graphical User Interface ).

RAD-технология не в состоянии обеспечивать разработку сложных продуктов, содержащих много фрагментов, программирование кото­рых занимает более двух недель. Эта технология ориентирована ско­рее на разработку достаточно простого заказного программного обес­печения, чем на индустриальное проектирование ИС.

Решения почти всех проблем, связанных с разработкой небольших ИС, достигаются с применением признанной во всем мире RAD-технологии. Она заключается в том, что организуется так называемая RAD-группа из 6-7 человек, состоящая из руководите­ля, системного аналитика и 4-5 программистов, которым даются четкие планы на весь период разработки проекта со сроками от 1 до 2 недель.

Основой этой технологии является спиральная модель создания ИС (рис. 6.1). Как видно на рисунке, разработка идет по спирали, проходя не­однократно все 4 стадии разработки ИС.

Рисунок 6.1 – Спиральная модель проектирования на основе RAD-технологии

На стадии анализа пользователи осуществляют следующие действия:

    определяют функции, которые должна выполнять система;

    выделяют наиболее приоритетные функции, требующие проработки в первую очередь;

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

    ограничивается масштаб проекта;

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

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

    список расставленных по приоритету функций будущего ПО ИС;

    предварительные модели ПО.

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

    более детально рассматриваются процессы системы;

    при необходимости для каждого элементарного процесса созда­ется частичный прототип: экранная форма, диалог, отчет, устра­няющий неясности или неоднозначности;

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

    определяется состав необходимой документации.

После детального определения состава процессов оценивается количество так называемых функциональных точек (function point) разрабатываемой системы и принимается решение о разделении ИС на подсистемы, поддающиеся реализации одной командой разработ­чиков за приемлемое для RAD-проектов время (до 3 месяцев).

Функциональная точка – это любой из элемен­тов разрабатываемой системы:

    входной элемент приложения (входной документ или экранная форма);

    выходной элемент приложения (отчет, документ, экранная форма);

    запрос (пара «вопрос/ответ»);

    логический файл (совокупность записей данных, используемых внутри приложения);

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

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

В случае использования CASE-средств это означает деление функциональной модели системы (ди­аграммы потоков данных для структурного подхода или диаграммы вариантов использования для объектно-ориентированно­го подхода.

Результатом данной стадии должны быть:

    общая информационная модель системы;

    функциональные модели системы в целом и подсистем, реализу­емых отдельными командами разработчиков;

    точно определенные интерфейсы между автономно разрабаты­ваемыми подсистемами;

    построенные прототипы экранных форм, отчетов, диалогов.

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

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

На стадии реализации выполняется непосредственно сама быст­рая разработка приложения:

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

    пользователи оценивают получаемые результаты и вносят кор­рективы, если в процессе разработки система перестает удовлет­ворять определенным ранее требованиям. Тестирование системы осуществляется в процессе разработки.

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

    осуществляется анализ использования данных и определяется не­обходимость их распределения;

    производится физическое проектирование базы данных;

    формулируются требования к аппаратным ресурсам;

    устанавливаются способы увеличения производительности;

    завершается разработка документации проекта.



Рекомендуем почитать

Наверх