телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Съвременни инструменти за разработка на приложения. Характеристики на разработката на софтуерен агент

Появата на Makefile може да се счита за първата стъпка в създаването на системи за програмиране. Езикът Makefile стана стандартни средства, общ за компилаторите на всички разработчици. Беше удобно, но доста сложно технически средства, което изисква висока степен на обучение и професионални познания от разработчика, тъй като самият команден език на Makefile беше сравним по сложност с на прост езикпрограмиране.

Тази структура от инструменти за разработка съществуваше доста за дълго време, а в някои случаи се използва и днес (особено при създаване системни програми). Широкото му използване се дължи на факта, че самата тази структура от инструменти за разработка е много удобна за групово изпълнение на програми на компютър, което допринесе за широкото му използване в ерата на мейнфреймите с операционни системи като Unix.

4.5. Интегрирани среди за разработка

  1. Visual Studio 97 е първата пусната версия на Visual Studio. Той обедини различни инструменти за разработка на софтуер за първи път. Системата беше пусната в две версии: Professional и Enterprise. Той включваше Visual Basic 5.0, Visual C++ 5.0, Visual J++ 1.1, Visual FoxPro 5.0 и средата за разработка на ASP, Visual InterDev, се появи за първи път. Visual Studio 97 беше първият опит на Microsoft да създаде единна среда за разработка за различни езици за програмиране: Visual C++, Visual J++, Visual InterDev и MSDN, всички споделяха една среда, наречена Developer Studio. Visual Basic и Visual FoxPro използваха отделни среди за разработка.
  2. Visual Studio 6.0 беше пуснат през юни 1998 г. То последна версия Visual Studio, работещ на платформа Win9x. Все още популярен сред програмистите, използващи Visual Basic. Тази версия беше основната среда за разработка на приложения за Windows от Microsoft преди появата на платформата .NET.
  3. Visual Studio .NET (с кодово име Rainier; вътрешна версия 7.0), издаден през февруари 2002 г. (включва .NET Framework 1.0). Сервизен пакет 1 за Visual Studio .NET (2002), издаден през март 2005 г.
  4. Visual Studio .NET 2003 (с кодово име Everett; вътрешна версия 7.1) беше пуснат през април 2003 г. (включва .NET Framework 1.1). Service Pack 1 за Visual Studio .NET 2003 беше пуснат на 13 септември 2006 г.
  5. Visual Studio 2005 (кодово име Whidbey; вътрешна версия 8.0), пуснат в края на октомври 2005 г., последният, който официално работи на Windows 2000 (включва .NET Framework 2.0). В началото на ноември 2005 г. бяха пуснати и серия от продукти в изданието Express: Visual C++ 2005 Express, Visual Basic 2005 Express, Visual C# 2005 Express и др. На 19 април 2006 г. изданието Express стана безплатно. Service Pack 1 за VS2005 и всички Express издания беше пуснат на 14 декември 2006 г. Допълнителна корекция за SP1, разрешаващ проблемиСъвместимост с Windows Vista, издадена на 6 март 2007 г
  6. Visual Studio 2008 (с кодово име Orcas) беше пуснат на 19 ноември 2007 г., заедно с .NET Framework 3.5. Насочен към създаване на приложения за Windows Vista (но поддържа и XP), Office 2007 и уеб приложения. Включва LINQ, нови версии на C# и Visual Basic. Visual J# не беше включен в студиото. От 28 октомври 2008 г. за първи път е достъпна руската версия.
  7. Visual Studio 2010 (кодово име Hawaii, за Ultimate - Rosario) беше пуснат на 12 април 2010 г. с .NET Framework 4.0. Visual Studio включва поддръжка за C# 4.0 и Visual Basic .NET 10.0, както и F#, който не беше наличен в предишните версии.

Visual Studio 2010 ви позволява ефективно да създавате сложни приложения за кратък период от време. Моделът на тази среда е много по-богат от по-ранните версии и използва концепции като решение, проект, пространство от имена и асемблиране. Концепцията за проект присъства в много среди, напр. Delphi среда. Файлът на проекта съдържа списък с изходни файлове и други ресурси, от които системата ще изгради приложението. Решението на Visual Studio включва множество проекти, които могат да бъдат зависими или независими един от друг. Откроява стартиращ проект. Концепцията за асемблиране идва от Common Language Runtime (CLR). CLR е най-революционното изобретение, с появата на което процесът на писане и стартиране на приложения става коренно различен.

Компилаторът преобразува файлове с изходен код в код на междинния език MSIL ( Междинен език на Microsoft). Заедно с метаданните, тези кодове записват PE файлове (Portal Executable), които имат разширение exe или dll, в зависимост от типа на проекта. Също така е възможно да се получи модул с разширение netmodule, който не съдържа метаданни.

Има общо 12 вида проекти. При зареждане PE файловете се превеждат в движение в команди на реалния процесор. Рамка Рамка. NET, който изпълнява програми, не е включен във Visual Studio, но е ощипване върху операционната система. Това е аналог на виртуална машина на Java.

Сглобката е минималната единица за разполагане на приложения. Всеки тип монтаж се характеризира с уникален идентификатор, идентифициран цифров подписавтор и уникален номер на версията. Връзката между сглобките и пространствата от имена е както следва. Едно събрание може да съдържа множество пространства от имена. В същото време пространството от имена може да обхваща множество сборки. Едно сглобяване може да съдържа един или няколко файла, които са комбинирани в така наречения манифест или описание на сглобката.

На езиковото ниво C# пространствата от имена, подобно на пакетите в Java, служат за структуриране на проект. Пространството от имена съдържа един или повече класове. Няколко пространства от имена могат да бъдат дефинирани в един изходен файл и в същото време едно пространство от имена може да бъде дефинирано в няколко файла. И дори един клас може да бъде разположен в няколко файла (частични класове).

За начинаещите програмисти такова изобилие от възможности може да създаде значителни трудности. Мащабът и сложността на средата може да се прецени от следната сравнителна таблица на трите среди.

Изглежда интересно и обещаващо работна среда Eclipse, разработен от IBM. Първоначалната цел на проекта беше да се създаде корпоративен IDE стандарт за разработване на програми на различни езици за различни платформи. Тогава проектът беше преименуван на Eclipse и разделен на свободен достъп. Лицензът ви позволява да използвате кода и средата за разработка безплатно и в същото време да създавате затворени търговски продукти. Благодарение на това системата получи широко разпространение и се превърна в корпоративен стандарт за разработка на приложения за много организации.

Екосистемата Eclipse принадлежи към консолидираните технологии, чиято година на широко разпространение е 2007 г. Системата е реализирана на Java и първоначално е била пълноценна интегрирана среда за език Java. По-късно бяха поддържани и други езици. Първите версии бяха неудобни, защото целевият продукт беше принуден да включва ненужна функционалност. Започвайки от третата версия, архитектурата на цялата система беше преработена, за да се увеличи максимално разделянето на модулите и връзката между тях. В същото време модулите на Eclipse, формирани от последователни набори от класове, осигуряват функционалността на цели подсистеми, като подсистеми за помощ, актуализации на продукти, обучение, презентации, многоезична поддръжка и много други. Когато разработвате приложение, вече можете постепенно да увеличавате функционалността чрез свързване на готови безплатни компоненти. В терминологията на Eclipse тези компоненти се наричат ​​„плъгини“ или „плъгини“. Тази технология става типична в зрели работни среди. Платформата, базирана на тази технология, се нарича

Алексей Федоров, Наталия Елманова

Предишната статия от тази серия беше посветена на разглеждането на логическия и физически дизайн на данни и инструментите, използвани в този процес. Ние сме убедени, че дизайнът на данни играе ключова роля в развитието на информационните системи - в крайна сметка разходите, свързани със създаването на приложения за крайните потребители, както и последващата поддръжка и модернизация на създадения продукт, зависят от качеството на тази работа. . Резултатът от този етап е „празна“ база данни (т.е. база данни, чиито таблици в по-голямата си част не съдържат записи, с възможно изключение на референтни таблици, като например списък с теми Руска федерацияили телефонни регионални кодове).

Следващият етап от жизнения цикъл на информационната система е развитието клиентски приложения. Резултатът от този етап е завършен продукт, състоящ се от множество приложения, които позволяват на потребителите да въвеждат данни в таблици или да редактират съществуващи данни, да анализират въведените данни и да ги представят в по-удобна за потребителя форма - графики, обобщени таблици или отчети ( включително под формата на „хартиени документи).

Процесът на проектиране на данни за релационни СУБД е до известна степен логичен процес и се подчинява на единна стандартна методология. Това определя ниската степен на зависимост на последователността от действия, извършвани по време на проектиране на данни, както от това кой инструмент за проектиране на данни се използва, така и от това дали изобщо се използва. Всъщност, това е причината инструментите за проектиране на данни да са повече или по-малко сходни по своя интерфейс, който по същество отразява процеса на изчертаване на модели на данни на хартия.

Процесът на създаване на клиентски приложения, които работят с бази данни, е доста трудно да се опише под формата на такава универсална последователност от действия, тъй като логиката на конкретно приложение почти напълно зависи от логиката на моделирания бизнес процес. Инструменти за разработка на приложения като категория софтуерни продуктисъществуват много по-дълго от инструментите за инженеринг на данни и са по-разнообразни - от компилатор, стартиран от командна линия, към инструменти, където готовото приложение се сглобява с мишката от готови компоненти, а кодът се генерира автоматично. С такова разнообразие от инструменти за разработка, те трябва да бъдат класифицирани по някакъв начин, което ще се опитаме да направим в тази статия, като същевременно кажем кои от тях са удобни за използване в конкретен случай.

Класификация на средствата за разработка на приложения

Инструментите за разработка могат да бъдат класифицирани от различни позиции, например въз основа на езика за програмиране, който поддържат, или функционалността на създадените приложения на определена платформа, или наличието на определени библиотеки и визуални инструменти в тях. Ще се опитаме да класифицираме инструментите за разработка на приложения въз основа на лекотата на тяхното използване за създаване на продукти, които представляват потребителски интерфейс към база данни.

Почти всеки инструмент за разработка, който има и най-малки претенции за универсалност, може да бъде направен да работи с всяка база данни - достатъчно е да поддържа използването на библиотеки на трети страни в този инструмент за разработка и тази база данни да има набор от клиентски интерфейси (API) за платформата, на която трябва да функционират създадените приложения. Въпреки това, не всяка двойка продукти „инструмент за разработка плюс СУБД“ е привлекателна от гледна точка на разходите за труд, свързани със създаването на такива приложения. Можеш да пишеш пълно приложение, който извиква клиентски API функции и имплементира удобен потребителски интерфейс, използвайки компилатор на език C и проста графична библиотека (например, позволяваща ви да промените цвета на пикселите на екрана) за това операционна система, в който ще работи това приложение. Но разходите, свързани с внедряването на такъв проект, може да са напълно неоправдани - в крайна сметка в този случай разработчиците ще трябва да внедрят функции, които вече се съдържат в библиотеки с класове и компоненти на инструменти за разработка, които са по-дълбоко фокусирани върху създаването на приложения за бази данни или включват поддръжка за създаване на такива приложения.

Инструменти за разработка, насочени към конкретни СУБД

Преди десет до двадесет години в много приложения, които използваха бази данни, клиентските API функции се извикваха от код, написан на един от езиците за програмиране, най-често на C. Просто погледнете описанието на клиентския API на почти всяка сървърна СУБД - и ще намерите много примери за най-типичните кодови фрагменти, например за регистриране на потребител, изпълнение на заявки и т.н. Въпреки това, бързо стана ясно на разработчиците на СУБД, че разходите за труд, свързани с писането на такъв код, могат да бъдат значително намалени чрез събиране на най-типичните кодови фрагменти и най-често срещаните елементи на потребителския интерфейс (дори за буквено-цифрови терминали) в библиотеки, форматиране на тези библиотеки като отделен продукт и добавяне към него на среда за разработка и помощни програми за проектиране на персонализирани форми за преглед и редактиране на данни, както и отчети. Точно така се появяват първите инструменти за разработка, фокусирани върху конкретни СУБД, като Oracle*Forms (предшественикът на сегашната Разработчик на Oracle Forms).

Продукти от този клас все още се предлагат на пазара на инструменти за разработка днес. Почти всички производители на сървърни СУБД също произвеждат инструменти за разработка на приложения. В по-голямата част от случаите съвременните версии на тези инструменти за разработка поддържат достъп до СУБД от други производители, използвайки поне един от универсалните механизми за достъп до данни (ODBC, OLE DB, BDE). Въпреки това, достъпът до „вашата“ СУБД обикновено се извършва възможно най-много ефективен начин, тоест чрез използване на клиентски API, обекти, съдържащи се в библиотеките на клиентската част на сървърните СУБД, специални класове за достъп до данни от тази СУБД или чрез внедряване на драйвери за универсални механизми за достъп до данни, които могат да вземат предвид специфичните характеристики на тази СУБД.

Средите за разработка на настолни СУБД могат да бъдат класифицирани като отделна категория. В статията от тази серия, посветена на настолните СУБД, вече отбелязахме, че по-голямата част от настолните СУБД, които са оцелели до днес, като Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual dBase, поддържат достъп до сървърни СУБД, като минимум използват универсални механизми за достъп до данни, което им позволява условно да бъдат класифицирани като инструменти за разработка. Имайте предвид обаче, че понастоящем създаването на приложения в клиент-сървърна архитектура с тяхна помощ е рядко явление. Изключение може би са двойките Microsoft Access - MSDE, Microsoft Access - Microsoft SQL Server и Microsoft Visual FoxPro - Microsoft SQL сървър. Това е резултат от компетентната политика на Microsoft, стремяща се към максимална съвместимост на своите продукти и осигуряваща най-безболезнената замяна за потребителите на техните настолни СУБД със собствени сървъри за бази данни (Access->MSDE-> Microsoft SQLСървър, FoxPro->Visual FoxPro->Microsoft SQL Server).

Инструменти за разработка, които са универсални по отношение на СУБД

Инструментите за разработка, които са универсални по отношение на СУБД (или които претендират за подобна универсалност), като правило са последователи на конвенционалните инструменти за разработка на приложения, които не са пряко свързани с базите данни. Типични примери за такива инструменти за разработка са Borland Pascal, Borland C++, Microsoft QuickC. Способни да използват библиотеки на трети страни, тези инструменти направиха възможен достъп до функциите на клиентските API, а с разработването на универсални механизми за достъп до данни (като ODBC), също и достъп до API функциите на библиотеки, които прилагат такива механизми. Имайте предвид, че тези инструменти за разработка често се използват за създаване на настолни DBMS среди (като dBase, FoxBase) или псевдокомпилатори за езици от семейството xBase (например Clipper).

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

Първата категория включва инструменти за разработка с обширни библиотеки от класове, голяма сума"masters" и генератори на кодове, но фокусирани върху "ръчно" създаване на код и доста рядко използвани за създаване на "стандартни" приложения за работа с бази данни (тук под израза " стандартно приложение"имаме предвид приложение, което има директен достъп до базата данни, с която потребителят взаимодейства, тоест това е "класически" клиент на сървърна СУБД). Типично (и единственото наистина популярно на пазара софтуер) представител на този клас продукти е Microsoft Visual C++. СЪС с помощта на MicrosoftБиблиотеките на Visual C++ и MFC (Microsoft Foundation Classes) могат да създадат всяко приложение, ако имате умения, знания, способности и време. Приложенията със сложен потребителски интерфейс (например, използващи бази данни) обаче не се разработват толкова често с негова помощ (въпреки че примери за такова използване могат да бъдат намерени дори в руската литература). Този продукт се използва основно за създаване на клиентски приложения в случай на специални изисквания към тях, като напр висока производителност, възможност за извършване на всякакви нестандартни операции и др.

Втората категория включва инструменти за разработка с разработени визуални инструменти, които ви позволяват буквално да „нарисувате“ потребителския интерфейс, като частично изтривате разликите между работата на програмиста и потребителя и намалявате цената на крайния продукт чрез включване на разработчици, които не са много квалифицирани в интерфейсния дизайн (ако внимателно проучите програмите на курса центрове за обучение, специализирани в обучение в инструменти за разработка на Microsoft, Borland и Sybase, можете да откриете, че продължителността на курса на обучение, след като изслушате обичайното потребител на Windowsтрябва да се научите да създавате клиентски приложения за сървърни СУБД, отнема от 5 до 10 работни дни).

Именно тази категория инструменти за разработка се използва най-често при създаване на клиентски приложения. Най-популярните продукти от този клас включват Microsoft Visual Basic Borland Delphi Sybase PowerBuilderи Borland C++ Builder. Средите за разработка за такива продукти са много сходни на външен вид (до подреждането по подразбиране на прозорците на екрана): като правило средата за разработка за такъв продукт съдържа „заготовка“ на проектираната форма (аналог на прозорец) , отделен панел с икони на елементи на потребителския интерфейс и други обекти, използвани в приложението, които могат да бъдат избрани и поставени във формуляра, прозорец, в който се показват и редактират свойствата на един от елементите, избрани във формуляра (и понякога списък на събитията, към които този елемент), прозорец на редактор на код, където можете да въвеждате кодови фрагменти, свързани с обработката на определени събития, както и код, който реализира логиката на операцията това приложение. По правило съвременните инструменти за разработка от този клас ви позволяват да създавате прости приложения за редактиране на данни без практически никакво кодиране.

IN напоследъкСъщо така стана много популярно да се създават приложения, които използват достъп до бази данни, но се намират в обикновени документи. Инструментите за разработка на такива приложения се основават на макро езиците на съответните редактори. Най-типичният и практически единствен популярен представител на инструментите за разработка в тази категория е Visual Basic for Applications, който е подобен на изброените по-горе инструменти за визуална разработка и се различава от тях по това, че създадените с него приложения се съдържат в документи Microsoft Officeи не се отчуждават от тях.

Имайте предвид обаче, че горното разделение на инструментите за разработка на тези два класа е много произволно. Както казахме по-горе, почти всички инструменти за разработка на приложения за бази данни, включително тези, фокусирани върху конкретни СУБД, поддържат поне един от универсалните механизми за достъп до данни. И почти всички „универсални“ инструменти за разработка на приложения, ако принадлежат на производителя на която и да е сървърна СУБД, поддържат „своята“ СУБД по-добре от СУБД на трети страни (това може да се изрази, например, в специални библиотеки от класове или компоненти за достъп този сървър, както и наличието на общи хранилища на обекти и модели на данни, а понякога и редактори на параметри за достъп до данни или схеми на данни, общи за клиентската част на сървърната СУБД)

Класификация на приложения, използващи бази данни

Приложения в архитектура клиент-сървър

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

За създаване на клиентски приложения в този случай най-често се използват инструменти за разработка с разширени визуални инструменти, като Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder.

Имайте предвид обаче, че изборът на архитектури за съвременните приложения вече е доста широк и не се ограничава до „класическата“ клиент-сървър архитектура, което предполага, че приложението се състои от сървър на база данни и клиентски приложения, които взаимодействат с този сървър. Ето защо по-долу ще обсъдим кои инструменти за разработка са удобни за използване при създаване на разпределени приложения.

Разпределени приложения

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

За разлика от конвенционалните приложения в клиент-сървърна архитектура, в многослойните системи тънките клиенти по правило нямат директен достъп до данни. Вместо това клиентите изпращат заявки към бизнес обекти, специално проектирани за тази цел. Те от своя страна могат да извършват бизнес операции, заявени от клиента (като обработка на поръчка, извършване на банкова транзакция и др.).

Някои от бизнес обектите могат да имат достъп до услуги за данни, използвайки един или друг механизъм за достъп до данни. Тъй като крайният потребител не взаимодейства директно с бизнес обекти, те обикновено нямат потребителски интерфейс в традиционния смисъл. Физически бизнес обектите могат да бъдат реализирани под формата на услуги на операционната система, конзолни приложения или Windows приложения, както и под формата на библиотеки, заредени в адресното пространство на сървърно приложение, специално проектирано за тази цел (уеб сървър, сървър на приложения, монитор на транзакции и др.). Не е необичайно един бизнес субект да обслужва много клиенти.

За създаване на бизнес обекти се използват както инструменти за разработка с разширени визуални инструменти, така и инструменти за разработка, фокусирани върху „ръчното“ създаване на код на приложение (като Visual C++). Имайте предвид, че най-новите версии на почти всички най-популярни инструменти за разработка на Windows приложения (Microsoft Visual Basic, Visual FoxPro и Visual C++, Borland Delphi и C++Builder, Sybase PowerBuilder) поддържат създаването различни видовебизнес обекти (уеб приложения, ASP обекти, COM сървъри и др.), с възможно изключение на Microsoft Access - този продукт е предназначен повече за квалифицирани потребители, отколкото за разработчици разпределени системи. Инструментите за създаване на Java приложения (като Borland JBuilder) често се използват за тази цел.

Обърнете внимание, че в допълнение към изброените по-горе „универсални“ инструменти за създаване както на приложения в архитектурата клиент-сървър, така и на бизнес обекти за разпределени системи, пазарът на инструменти за разработка също има специализирани инструменти, предназначени специално за създаване на бизнес обекти (обикновено уеб приложения) . От средствата за разработка от този клас за Windows платформинай-популярният е Microsoft Visual InterDev, чиято първа версия се появи през 1998 г. Можем да споменем и друг интересен продукт, принадлежащ към същата категория инструменти за разработка - Borland IntraBuilder, който се появи две години по-рано, но по някаква причина, въпреки нарастващата нужда от продукти от този клас, не получи по-нататъшно развитие. Инструментите за разработка от този клас, като правило, ви позволяват да създавате приложения, които динамично генерират HTML код или код на един от скриптовите езици (VBScript или JavaScript), който се предава от уеб сървъра към браузъра на потребителя като част от уеб страницата и възприема данни, въведени от потребителя в HTML форма и предадени от браузъра към уеб сървъра.

Заключение

В тази статия обсъдихме процеса на създаване на приложения, които използват бази данни, както и различните категории инструменти, използвани при тяхното разработване. Видяхме, че инструментите за разработка могат да бъдат разделени, от една страна, на инструменти, фокусирани върху използването на специфични СУБД, инструменти, които са универсални по отношение на СУБД, и настолни СУБД среди, използвани за разработка на приложения. От друга страна, те могат да бъдат разделени на инструменти, фокусирани върху дизайна на визуален потребителски интерфейс (тази категория включва Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder) и инструменти, фокусирани върху писане на код на приложение (Visual C++).

След като прегледахме няколко от най-популярните инструменти за разработка на приложения, видяхме, че повечето от тези продукти обикновено поддържат:

  • поне един от универсалните механизми за достъп до данни, който ви позволява да използвате създадени приложенияданни от различни СУБД;
  • създаване на няколко вида разпределени приложения;
  • автоматично генериране на код на приложение въз основа на модели, създадени с помощта на най-популярните инструменти за проектиране на данни и моделиране на бизнес процеси.

Обсъдихме също как приложенията клиент-сървър се различават от разпределените системи и какви инструменти за разработка могат да се използват за създаване на двата типа приложения.

Жизненият цикъл на една информационна система не завършва с разработването на приложение. Веднъж създадени, те трябва да бъдат тествани, внедрени, обучени за използване от потребителите и накрая да работят в продължение на няколко години. В резултат на такава експлоатация се натрупват данни, които по правило са много по-ценни от самите приложения. Тези данни често са необходими, за да бъдат важни управленски решенияматериал, така че е важно да можете да ги преобразувате във форма, подходяща за такава цел. За целта има инструменти от категорията Business Intelligence – генератори на отчети, инструменти за аналитична обработка на данни и търсене на модели. Ще говорим за тях в следващата статия от тази поредица.

Интегрираната среда за разработка (IDE) е система софтуер, използвани от програмисти за разработване на софтуер. IN английски езиктакава среда се нарича интегрирана среда за разработка или накратко IDE.

WBS обикновено включва текстов редактор, компилатор, интерпретатор, инструменти за автоматизация за разработка и асемблиране на софтуер и програма за отстраняване на грешки. Понякога съдържа и инструменти за интегриране със системи за контрол на версиите и различни инструменти за опростяване на дизайна на графичен потребителски интерфейс. Много съвременни среди за разработка също включват преглед на класове, инспектор на обекти и йерархична диаграма на класове за използване при разработка на обектно-ориентиран софтуер. Повечето съвременни ISR са предназначени за разработване на програми на няколко езика за програмиране едновременно.

Един от специалните случаи на ISD са визуалните среди за разработка, които включват възможност за визуално редактиране на програмния интерфейс.

Основният прозорец е текстов редактор, който се използва за въвеждане на изходния код в ISR и е фокусиран върху работата с последователности от знаци в текстови файлове. Такива редактори предоставят разширена функционалност - подчертаване на синтаксис, сортиране на низове, шаблони, преобразуване на кодиране, показване на кодове на символи и т.н. Понякога те се наричат ​​редактори на кодове, тъй като основната им цел е да пишат изходни кодове за компютърни програми.

Осветяване на синтаксис – подчертаване на синтактични структури на текст с помощта на различни цветове, шрифтове и стилове. Обикновено се използва в текстови редактори, за да направи изходния текст по-лесен за четене и да подобри визуалното възприятие. Често се използва при публикуване на изходни кодове в Интернет.

Концепцията за превод, компилатор и интерпретатор беше дадена в предишни лекции.

Една от най-важните части на WBS е дебъгерът, който е модул на средата за разработка или отделно приложение, предназначен за намиране на грешки в програмата. Дебъгерът ви позволява да извършвате проследяване стъпка по стъпка, да наблюдавате, да задавате или променяте стойности на променливи по време на изпълнение на програмата, да задавате и премахвате точки на прекъсване или условия за спиране и т.н.

Най-често срещаните дебъгери са:

- GNU Debugger – програмен дебъгер от проекта GNU;

- IDA – дизасемблер и дебъгер на ниско ниво за операционни системи Семейство Windowsи GNU/Linux;

- Microsoft Visual Studio е среда за разработка на софтуер, която включва инструменти за отстраняване на грешки от Microsoft;

- OllyDbg е безплатен дебъгер на ниско ниво за операционни системи Windows;

- SoftICE е дебъгер на ниско ниво за операционни системи от семейството на Windows;

- д-р Watson е стандартен дебъгер на Windows, който ви позволява да създавате дъмпове на паметта;

- WinDbg е безплатен дебъгер от Microsoft.

Основният процес на отстраняване на грешки е проследяване. Проследяването е процес на изпълнение на програма стъпка по стъпка. В режим на проследяване програмистът вижда последователността на изпълнение на командата и стойностите на променливите на дадена стъпка от изпълнение на програмата, което улеснява откриването на грешки. Проследяването може да започне и завърши навсякъде в програмата, изпълнението на програмата може да спре при всяка команда или в точки на прекъсване, проследяването може да се извърши със или без въвеждане на процедури/функции.

Най-важният WBS модул в съвместното разработване на проекти със средна и висока сложност е системата за контрол на версиите. Системата за контрол на версиите (CVS) е софтуер, който улеснява работата с променяща се информация. Тя ви позволява да съхранявате множество версии на един и същ документ и, ако е необходимо, да се върнете към повече по-ранни версии, определят кой и кога е направил тази или онази промяна и много други.

Такива системи се използват най-широко в разработката на софтуер за съхраняване на изходните кодове на разработваната програма. Въпреки това, те могат да бъдат успешно приложени в други области, в които се работи с голям брой непрекъснато променящи се електронни документиПо-специално, те се използват все повече в CAD, обикновено като част от системи за управление на данни за продукти. Версионирането се използва в инструментите за управление на конфигурацията различни устройстваи системи.

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

Повечето системи за контрол на версиите използват централизиран модел, където има едно хранилище на документи, управлявано от специален сървър, който изпълнява повечето от функциите за контрол на версиите. Потребителят, който работи с документи, трябва първо да получи версията на документа, от която се нуждае от хранилището; Обикновено се създава локално копие на документа, така нареченото „работно копие“. Най-новата версия или която и да е от предишните може да бъде получена, избрана по номер на версия или дата на създаване, понякога по други критерии. След като бъдат направени необходимите промени в документа, нова версияпоставени на склад. За разлика от простото запазване на файл, предишна версияне се изтрива, но също така остава в хранилището и може да бъде извлечено от там по всяко време. Сървърът може да използва делта компресия - метод за съхраняване на документи, при който се запазват само промените между последователните версии, което позволява намаляване на обема на съхраняваните данни.

Понякога създаването на нова версия се извършва незабелязано от потребителя (прозрачно) - или с помощта на приложна програма, която има вградена поддръжка за такава функция, или чрез използването на специален файлова система. В последния случай потребителят просто работи с файла както обикновено и при запазване на файла автоматично се създава нова версия.

Често се случва няколко души да работят по един проект едновременно. Ако двама души променят един и същ файл, единият от тях може случайно да отмени промените, направени от другия. Системите за контрол на версиите проследяват такива конфликти и предоставят средства за разрешаването им. Повечето системи могат автоматично да обединяват (обединяват) промени, направени от различни разработчици. Такова автоматично обединяване на промените обаче обикновено е възможно само за текстови файлове и то само при условие, че са променени различни (неприпокриващи се) части от този файл. Това ограничение се дължи на факта, че повечето системи за контрол на версиите са фокусирани върху поддръжката на процеса на разработка на софтуер и програмните изходни кодове се съхраняват в текстови файлове. Ако автоматичното сливане е неуспешно, системата може да предложи ръчно разрешаване на проблема.

Често не е възможно да се извърши сливане нито автоматично, нито ръчно управление, например, ако файловият формат е твърде сложен или напълно непознат. Някои системи за контрол на версиите предоставят възможност за заключване на файл в хранилището. Заключването не позволява на други потребители да получат работно копие или не позволява работното копие на файл да бъде модифицирано (например посредством файловата система) и по този начин гарантира изключителен достъп само на потребителя, който работи с документа.

Други функции за контрол на версиите включват:

При създаване на различни версии на един разклонителен документ, с обща история на промените преди точката на разклонение и с различни след нея.

Поддържане на регистър на промените, където потребителите могат да записват обяснения какво и защо са променили в дадена версия;

Контролира правата за достъп на потребителите, като разрешава или отказва четене или промяна на данни в зависимост от това кой иска това действие.

Разпределените системи за контрол на версиите са отделен клас. Такива системи използват разпределен модел вместо традиционния модел клиент-сървър. Те са вътре общ случай, не изискват централизирано хранилище: цялата история на промените в документа се съхранява на всеки компютър, в локално хранилище и, ако е необходимо, отделни фрагменти от историята на локалното съхранение се синхронизират с подобно хранилище на друг компютър. В някои от тези системи локалното хранилище се намира директно в директориите на работното копие.

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

Основното предимство на разпределените системи е тяхната гъвкавост. Всеки разработчик може да работи самостоятелно, по удобния за него начин, като запазва междинни версии на документи и прехвърля резултатите на други участници, когато намери за добре. В този случай обменът на набори от промени може да се извърши по различни схеми. В малки екипи участниците в работата могат да обменят промени на принципа „всеки с всеки“, като по този начин елиминират необходимостта от създаване на специален сървър. Голяма общност, напротив, може да използва централизиран сървър, с който се синхронизират копия на всички нейни участници. Възможни са и по-сложни варианти, например със създаване на групи за работа в отделни области в рамките на по-голям проект.

За да използвате системи за контрол на версиите, трябва да сте запознати с терминологията на тези системи. Няма общоприета терминология, различни системиразлични имена могат да се използват за едни и същи действия.

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

клон (клон) – посока на развитие, независима от други. Клонът е копие на част (обикновено една директория) от хранилището, в което можете да направите свои собствени промени, без да засягате други клонове. Документите в различни клонове имат една и съща история преди точката на клон и различни след нея.

регистриране, ангажиране, изпращане – създаване на нова версия, публикуване на промени. Разпространете промените, направени в работното копие, в хранилището на документи. В същото време в хранилището се създава нова версия на променените документи.

° С изваждане, клониране – извличане на документ от хранилището и създаване на работно копие.

° С onflict – конфликтна ситуация, когато няколко потребители са направили промени в една и съща секция на документа. Конфликт се открива, когато един потребител вече е публикувал своите промени, а вторият просто се опитва да ги публикува и самата система не може правилно да обедини конфликтните промени. Тъй като програмата може да не е достатъчно интелигентна, за да определи коя промяна е "правилна", вторият потребител трябва сам да разреши конфликта.

М erge, интеграция (сливане) - комбиниране на независими промени в една версия на документа. Възниква, когато двама души са променили един и същи файл или когато натискат промени от един клон към друг.

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

Р evision (версия на документ). Системите за контрол на версиите разграничават версиите по номера, които се присвояват автоматично.

T ag, етикет (етикет) – който може да бъде присвоен на определена версия на документа. Етикетът е символично име за група документи и описва не само набор от имена на файлове, но и ревизията на всеки файл. Ревизиите на документите, включени в етикета, може да принадлежат към различни точки във времето.

T runk, mainline (trunk) – основният клон на разработката на проекта. Политиката за ствола може да варира от проект на проект, но като цяло е следната: повечето промени се правят в ствола; ако е необходима голяма промяна, която може да доведе до нестабилност, се създава клон, който се слива със ствола, когато иновацията е достатъчно тествана; Преди пускането на следващата версия се създава клон „release“, в който се правят само корекции.

U pdate, sync (актуализация, синхронизация) – синхронизиране на работното копие до определено определено състояние на съхранение. Най-често това действие означава актуализиране на работното копие до последното състояние на хранилището. Въпреки това, ако е необходимо, можете да синхронизирате работното копие в по-старо състояние от текущото.

У orking copy (working copy) – работещо (локално) копие на документи.

Нека разгледаме възможностите на ISR, като използваме примера на най-достъпните и популярни версии.

Eclipse (от английски eclipse) е безплатна интегрирана среда за разработка на модулни междуплатформени приложения (Фигура 69). Разработено и поддържано от организацията с нестопанска цел Eclipse Foundation (http://www.eclipse.org/).

Първоначално Eclipse е разработен от IBM като корпоративен ISR стандарт за разработка на различни езици за платформи от тази компания. Според IBM дизайнът и разработката са стрували $40 млн. Изходният код е с напълно отворен код и е предоставен след пускането на Eclipse на общност, независима от IBM, за по-нататъшно развитие.

Eclipse е базиран на OSGi и SWT/JFace framework, на базата на които е разработен следващият слой - RCP (Rich Client Platform, платформа за разработка на пълноценни клиентски приложения). RCP служи като основа не само за Eclipse, но и за други RCP приложения, като Azureus и File Arranger. Следващият слой е самият Eclipse, който е набор от RCP разширения: редактори, панели, перспективи, CVS модул и Java Development Tools (JDT) модул.

Eclipse е преди всичко пълноправен Java ISR, насочен към групово развитие: поддръжката на CVS е включена в разпространението на Eclipse, активно се разработват няколко варианта на SVN модули, има поддръжка за VSS и други. Поради своята безплатна природа и високо качество, Eclipse е корпоративен стандарт за разработка на приложения в много организации.

Втората цел на Eclipse е да служи като платформа за разработване на нови разширения, поради което той придоби популярност: всеки разработчик може да разшири Eclipse със свои собствени модули. Вече има C/C++ Development Tools (CDT), разработени от инженерите на QNX съвместно с IBM, и инструменти за COBOL, FORTRAN, PHP и други от различни разработчици. Много разширения допълват средата на Eclipse с мениджъри за работа с бази данни, сървъри на приложения и др.

Фигура 69 . Интерфейс на главния прозорец на Eclipse

Eclipse е написан на Java, следователно е продукт, независим от платформата, с изключение на библиотеката SWT, която е разработена за всички общи платформи. Библиотеката SWT се използва вместо стандартната библиотека Java Swing. Той разчита изцяло на основната платформа (операционна система), което гарантира бързо и естествено външен видпотребителски интерфейс, но понякога се обажда различни платформиПроблеми със съвместимостта и стабилността на приложенията.

Основата на Eclipse е богатата клиентска платформа (RCP). Неговите компоненти:

OSGi (стандартна среда за доставка на пакети);

SWT (преносим инструментариум за джаджи);

JFace (файлови буфери, работа с текст, текстови редактори);

Работна среда на Eclipse (панели, редактори, прожекции, мастъри).

Друга популярна безплатна WBS е KDevelop (http://www.kdevelop.org, фиг. 70). KDevelop (на английски KDevelop) е безплатна среда за разработка на софтуер за UNIX-подобни операционни системи. Проектът стартира през 1998 г. KDevelopment се разпространява под GNU (общ публичен лиценз).

Фигура 70. KDevelop интерфейс

KDevelop не включва компилатор; вместо това той използва всеки компилатор, за да създаде изпълним код.

Текущ стабилна версияподдържа голям брой езици за програмиране като Ada, Bash, C, C++, Fortran, Java, Pascal, Perl, PHP, Python, Ruby и SQL.

KDevelopment използва вграден компонент - текстов редактор - чрез технологията Kparts. Главен редактор е Кейт.

Функции на K за разработка:

Осветяване на изходния код въз основа на синтаксиса на използвания език за програмиране, който се определя автоматично;

Ръководител проекти за проекти различни видове, като Automake, qmake за проекти, базирани на Qt технологии и Ant за проекти, базирани на Java;

Class Navigator (Class Browser);

Преден край за GNU Compiler Collection;

Преден край за GNU Debugger;

Помощници за генериране и актуализиране на дефиниции на класове и платформи (рамка);

Система за автоматично допълване на код (C/C++);

Вградена поддръжка за системата за документиране на изходния код (Doxygen);

Една от системите за контрол на версиите: SCM, CVS, Subversion, Perforce и ClearCase;

Функцията за бързо отваряне ви позволява бързо да навигирате през файловете.

KDevelop е "plug-in" архитектура. Когато разработчик прави промени, той трябва само да компилира плъгина. Възможно е да се запазват профили, показващи кои плъгини трябва да бъдат заредени. KDevelop не идва с вграден текстов редактор, свързан е като плъгин. KDevelop Той е независим от езика за програмиране и платформата, на която работи, като поддържа KDE, GNOME и много други технологии (например Qt, GTK+ и wxWidgets).

Вграден дебъгер KDevelop ви позволява да работите графично с всички инструменти за отстраняване на грешки, като точки на прекъсване и следи. Може да работи и с динамично заредени добавки, за разлика от конзолния gdb.

В момента има приблизително 50 до 100 добавки за тази IDE. Сред най-полезните са постоянни кодови отметки за целия проект, кодови съкращения, които ви позволяват бързо да разширите текст, форматиращ източник, който преформатира текста за стилово ръководство преди записване, търсене на регулярен израз и търсене/замяна в целия проект.

Последният разгледан WBS е Microsoft Visual Studio (Microsoft Visual Studio, Фиг. 71). Всъщност, Microsoft Visual Studio е линия от продукти на Microsoft, която включва интегрирана среда за разработка на софтуер и редица други инструменти.


Фигура 71. Microsoft интерфейсВизуално студио

Microsoft Visual Studio включва едно или повече от следните: Visual Basic.NET, Visual C++, Visual C#, Visual F#, Microsoft SQL Server, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, Visual Source Safe.

Едно от основните предимства на Microsoft Visual Studio е високо качестводокументиране на процеса на разработка и описание възможни проблемив библиотеката на MSDN. Но най-интересната част за професионалист, посветена на тънкостите на разработката, съществува само на английски.

Microsoft също предлага безплатен аналогПродукт на Visual Studio Express.

Избор на среда за разработка

Интегрирана среда за разработка, ISD (на английски IDE, Integrated development environment или интегрирана среда за отстраняване на грешки) е система от софтуерни инструменти, използвани от програмистите за разработка на софтуер.

Средата за разработка включва:

Текстов редактор;

Компилатор и/или интерпретатор;

Инструменти за автоматизация на монтажа;

Дебъгер.

WBS понякога също съдържа инструменти за интегриране със системи за контрол на версиите и различни инструменти за опростяване на дизайна на графичен потребителски интерфейс. Много съвременни среди за разработка също включват браузър на класове, инспектор на обекти и йерархична диаграма на класове за използване при разработка на обектно-ориентиран софтуер. Въпреки че има WBS, използвани за няколко езика за програмиране - като Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, но обикновено WBS използва един специфичен език за програмиране - като Visual Basic, Delphi, Dev -C++.

Специален случай на ISR е визуална среда за разработка, която включва възможност за визуално редактиране на програмния интерфейс.

Бяха създадени интегрирани среди за разработка, за да се увеличи максимално продуктивността на програмиста чрез тясно свързани компоненти с прости потребителски интерфейси. Това ще позволи на разработчика да направи по-малко стъпки за превключване между различни режими, за разлика от дискретните програми за разработка. Въпреки това, тъй като IDE е сложна софтуерен пакет, тогава само след дълъг процес на обучение средата за разработка ще може значително да ускори процеса на разработка на софтуер.

IDE обикновено е единствената програма, в която е извършена цялата разработка. Обикновено съдържа много функции за създаване, модифициране, компилиране, внедряване и отстраняване на грешки в софтуер. Целта на средата за разработка е да абстрахира конфигурацията, необходима за комбиниране на помощните програми на командния ред в един модул, което ще намали времето за изучаване на език и ще увеличи продуктивността на разработчиците. Смята се също, че трудната интеграция на задачите за разработка може допълнително да подобри производителността. Например IDE ви позволява да анализирате код и по този начин да осигурите незабавно обратна връзкаи уведомява за синтактични грешки. Докато повечето съвременни IDE са графични, те са били използвани преди прозоречните системи (които са внедрени в Microsoft Windowsили X11 за *nix системи). Те се основаваха на текста, използвайки функционални клавишиили бързи клавиши за изпълнение на различни задачи (напр. Turbo Pascal). Използването на IDE за разработване на софтуер е точно обратното на използването на несвързани инструменти като vi (текстови редактор), GCC (компилатор) и т.н.

В момента има няколко среди за разработване на приложения на езика C#, основните от които са показани в таблица 1.1.

Таблица 1.1 - Сравнение на среди за разработка на C#

Лицензът GPL дава на потребителя правото да копира, променя и разпространява (включително на търговска основа) програми (което е забранено по подразбиране съгласно закона за авторското право), а също така гарантира, че потребителите на всички производни програми ще получат горните права.

Лицензът LGPL позволява дадена библиотека или програма да бъде свързана с всеки лиценз, който е несъвместим с GNU GPL, при условие че програмата не е извлечена от елемент, разпространяван под (L)GPL, освен чрез свързване. Основната разлика между GPL и LGPL е, че последният също така позволява свързване с даден обект на други, което създава производно на дадена работа, ако лицензът на свързания обект позволява „модификации за вътрешна потребителска употреба и обратно инженерство за отстраняване на грешки в такива модификации“. Тези. LGPL, за разлика от GPL, позволява библиотеката да бъде свързана с всяка програма, не непременно безплатна.

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

Geany е безплатна среда за разработка на софтуер, написана с помощта на библиотеката GTK2. Предлага се за следните операционни системи: BSD, Linux, Mac OS X, Solaris и Windows. Geany се разпространява под GNU General Public License. Geany не включва компилатор. Вместо това, GNU Compiler Collection (или всеки друг компилатор) се използва за създаване на изпълним код.

Microsoft Visual Studio е линия от продукти на Microsoft, която включва интегрирана среда за разработка на софтуер и редица други инструменти. Тези продукти ви позволяват да разработвате както конзолни приложения, така и приложения с графичен интерфейс, включително такива с поддръжка на технологията Windows Forms, както и уебсайтове, уеб приложения, уеб услуги както в естествен, така и в управляван код за всички платформи, поддържани от Microsoft Windows Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight. Visual Studio включва редактор на изходния код с поддръжка на технологията IntelliSense и възможност за лесно преработване на код. Вграденият дебъгер може да работи като дебъгер на ниво източник или като дебъгер на ниво машина. Други вградени инструменти включват редактор на формуляри, за да се улесни създаването на GUI на приложение, уеб редактор, дизайнер на класове и дизайнер на схема на база данни. Visual Studio ви позволява да създавате и свързвате добавки (плъгини) на трети страни, за да разширите функционалността на почти всяко ниво, включително добавяне на поддръжка за системи за контрол на версиите на изходния код (като Subversion и Visual SourceSafe), добавяне на нови комплекти инструменти (напр. за редактиране и визуален дизайн на код в специфични за домейна езици за програмиране или инструменти за други аспекти на цикъла на разработка на софтуер (например клиентът Team Explorer за работа с Team Foundation Server).

MonoDevelop е безплатна среда за разработка, предназначена за създаване на C#, Java, Boo, Nemerle, Visual Basic .NET, Vala, CIL, C и C++ приложения. Embarcadero Technologies също ще поддържа Oxygene. Първоначално беше порт на SharpDevelop на Mono/GTK+, но оттогава проектът се е отдалечил далеч от първоначалното си състояние. MonoDevelop е част от проекта Mono.

SharpDevelop е безплатна среда за разработка за C#, Visual Basic .NET, Boo, IronPython, IronRuby, F#, C++. Обикновено се използва от тези, които не искат да използват Visual Studio .NET. Има и разклонение към Mono/Gtk+ - MonoDevelop. SharpDevelop 2.0 предоставя интегриран дебъгер, който използва собствени библиотеки и взаимодейства с .NET runtime чрез COM Interop. Въпреки че SharpDevelop 2.0 (като VS2005) използва MSBuild проектни файлове, той все още може да използва компилатори от .NET Framework 1.0 и 1.1, както и от Mono.

За разработка трябва активно да използвате всички инструменти на езика за програмиране. Средата MonoDevelop обаче използва собствен компилатор, който не поддържа напълно езика C# поради факта, че е безплатна мултиплатформена разработка, независима от създателите на езика. Въпреки че предлага мултиплатформа, е невъзможно да се предвиди поведението на езика в новите версии. И един от ключовите компоненти на проекта е неговата устойчивост на грешки и стабилност, като в същото време не се изисква мултиплатформа (има изчезващо малко потребители на 1C на Linux). Следователно тази среда не е подходяща за разработване на този проект.

SharpDevelop и Geany нямат собствени компилатори. Следователно, за да разработите с помощта на тези рамки, все пак ще трябва да използвате патентован софтуер, което прави използването им оправдано само в някои случаи. Например на компютри с ниска производителност или с много ограничен бюджет на проекта. Въпреки факта, че могат да работят и работят на Linux, тези среди за разработка, поради липсата на собствени компилатори, няма да могат да създадат мултиплатформено приложение и разработката все още ще бъде ограничена до операционни системи Windows.

Microsoft Visual Studio също не е без недостатъци. Основните са тежки, изискващи доста голяма компютърна мощност; плащане; липса на мултиплатформа. Въпреки тези недостатъци, Visual Studio остава предпочитаната среда за разработка за повечето програмисти на C#. Причината за това е пълната езикова поддръжка, усъвършенстваните инструменти за разработка, енергично развиващата се документация и самата среда. Тази срядаЩе използваме разработките в проекта.

Тази статия е посветена на технологиите за разработка на приложения и тенденциите в тяхното развитие в контекста на прехода на повечето местни и чуждестранни компании от спонтанна автоматизация на отделни области на тяхната дейност към унифицирани интегрирани решения.

Разработка на приложения в съвременни ИТ проекти

Настоящият период на развитие на средствата за автоматизация и информатизация на местните предприятия може да се характеризира като време на масов преход от спонтанна автоматизация на отделни области от дейността на компаниите към унифицирани интегрирани решения, обхващащи всички аспекти на тяхното съществуване. Това не може да не се отрази на състава и обхвата на най-често изпълняваните ИТ проекти и методите на тяхното изпълнение.

Характеристики на съвременните ИТ проекти

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

Преход към разделение на труда в проектите за разработка на софтуер

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

Промяна на изискванията за кандидатстване

Говорейки за проекти за разработка на приложения и части от сложни ИТ проекти, свързани с разработка на приложения, трябва да се отбележи, че днес най-актуално е създаването на корпоративни решения, базирани не само на СУБД, но и на други продукти - офис приложения, ГИС и CAD системи , инструменти за бизнес анализ, специализирани сървърни продукти, системи за управление на предприятието и други бизнес приложения. Изискванията за сигурност на създаваните решения също са значително различни от тези, които съществуваха преди три години. И накрая, една важна тенденция е нарастващият интерес към приложенията за мобилни устройстваи приложения, които могат да работят автономно и, ако е необходимо, да се синхронизират с корпоративната информационна система.

Сред другите тенденции, които се появиха наскоро в развитието на корпоративни решения, заслужава да се отбележи нарастващата нужда на компаниите от инструменти за бизнес анализ, които са част от съществуващи решения или съществуват като отделни инструменти. Въпреки факта, че създаването на приложения, използващи бизнес анализи, е трудно поради факта, че днес въпросите за стандартизиране на достъпа до данни от многомерни хранилища и езика за заявки към тях остават актуални, разработчиците вече имат достатъчно инструменти в ръцете си за решаване на подобни проблеми за най-популярните аналитични платформи, като например от доставчици на самите аналитични платформи (например Oracle, Microsoft и Hyperion) и от компании, специализирани в инструменти за анализ на данни (Cognos, ProClarity и Business Objects). В допълнение, Business Intelligence and Report Tools (BIRT) са достъпни за платформата Eclipse, която сега представлява половината от пазара за инструменти за разработка на Java приложения.

Включване на клиента в процеса на разработка

Оценката на приноса на разработчиците на приложения за успеха на бизнеса на компанията клиент, както и оценката на качеството на самия процес на разработка и резултата от него, винаги е бил спорен въпрос и повод за недоразумения и конфликти. Напоследък обаче се появиха методи за оценка на зрелостта на процесите на разработка и препоръки, базирани на модела за интегриране на модела за зрялост на способностите (CMMI), както и редица методологии за разработка на приложения, които предоставят на клиента на приложението възможност да контролира напредъка на процеса на развитие. Моделът CMMI ви позволява да оценявате и подобрявате процесите на разработка на приложения и да се възползвате от успешни примери за настройка на такива процеси, а наличието на оценка на такъв или нивото на зрялост според този модел в компанията разработчик е до известна степен гаранция за качеството на крайния резултат от процеса на разработване на продукта в тази компания.

Семейство от методологии за разработка на приложения под общото наименование Agile методологии (включително по-специално методологията екстремно програмиране, за който писахме преди няколко месеца) предоставя „рецепти“ за ежедневно управление на екип по проекта, включително, наред с други, принципа на тестово ориентирано развитие (TDD), който се е доказал като средство за създаване на висококачествен код. Характеристика на това семейство методологии е включването на клиента в процеса на разработка, така че той да може да го контролира на всички етапи.

Най-популярните архитектури и платформи

Сервизно-ориентирана архитектура

Една от съвременните тенденции в развитието на ИТ инфраструктурата на съвременните предприятия и архитектури корпоративни приложения- преход към сервизно-ориентирана архитектура (SOA). Тази архитектура включва създаването и внедряването на разпределени приложения и услуги, базирани на използването на различни технологии, като уеб услуги (такива технологии се поддържат широко от платформата Eclipse и инструментите за разработка на Borland и Microsoft).

Най-популярните платформи

Една от най-забележимите тенденции в последно време е унифицирането на платформите, за които се създават повечето приложения, и идентифицирането на два лидера сред тях - Windows/Microsoft .NET и Java/J2EE. Това до голяма степен се дължи на способността на тези платформи да предоставят възможност за създаване на приложения, степента на защита на данните, в която, както и възможността за създаване потребителски интерфейсии предоставяне на достъп до услуги и данни, отговарящи на съвременните изисквания. Тази тенденция обаче отдавна не е нова за никого.

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

Нарастващата популярност на мобилните платформи

Днес мобилните приложения се разработват за около една и половина дузина платформи. Според проучване от края на миналата година на изследователската фирма Evans Data Corp. проучване на няколкостотин разработчици мобилни приложения, основните лидери в тази област са .NET Compact Framework и Java 2 Mobile Edition (J2ME), както и др. Платформи на Microsoftза мобилни устройства и вграден Linux (фиг. 1).

Ориз. 1. Популярност мобилни платформисред разработчиците (източник - Developers’ Choice Wireless Platforms. Definitive Rankings of Wireless Platform by Developers Worldwide - Evans Data Corp., септември 2005 г.)

Въпреки това, според същото проучване, по отношение на удовлетвореността на разработчиците от качеството на инструментите и нивото на поддръжка от общността на разработчиците, платформата Nokia Series 60 вече е на първо място.Според прогнозите на същата Evans Data Corp., делът на вградения Linux на пазара на мобилни платформи се очаква да расте.

По отношение на инструментите за разработка на приложения, инструментите на Microsoft са налични за платформата Windows Mobile от няколко години. Инструментите на Borland са налични за платформите .NET Compact Framework, Symbian и J2ME. Освен това има някои инструменти за разработка на мобилни приложения от Sybase, както и от редица други производители.

Инструменти за програмисти днес

Тясната специализация на разработчиците доведе до активното развитие през последните пет години на така наречените инструменти за поддръжка на жизнения цикъл на приложенията, предназначени за големи екипи от разработчици. Такива инструменти включват инструменти за управление на изискванията, бизнес процеси, моделиране на приложения и данни, тестване и оптимизиране на приложения, управление на работата в екип, контрол на версиите и управление на промените. Много водещи доставчици на софтуер произвеждат такива инструменти: IBM, Computer Associates, Borland, Microsoft, Oracle и няколко други.

Напоследък много компании, които преди са се специализирали в създаването на среди за разработка (по-специално IBM, Computer Associates, Borland, Microsoft, Oracle и Sybase), започнаха да обръщат голямо внимание на инструменти за тази цел. Необходимостта от взаимна интеграция на всички тези „тежки“ инструменти доведе до създаването на цели платформи за ролева разработка на софтуер и управление на жизнения цикъл на приложенията - такива платформи сега се произвеждат от Borland, IBM, Microsoft и редица други.

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

Безплатни версии на търговски инструменти

Ако си спомняте какво се случи с инструментите за разработка през последните две години, ще забележите, че напоследък има много активна тенденция водещи производители на инструменти за разработка да пускат безплатни техни версии (и с добри функционалност), за да привлече вниманието на разработчиците към потенциала и възможностите на пълнофункционалните продукти и платформите, за които са предназначени. По-специално, компанията Borland произвежда безплатни версиинякои от неговите инструменти за разработка. Microsoft наскоро пусна семейството си продукти Express, което включва няколко инструмента за разработване на Windows Forms и ASP .NET приложения. Oracle Corporation от своя страна също предостави на разработчиците безплатен достъп до инструмента Oracle JDeveloper 10g.

Инструменти с отворен код

Съществува и друга тенденция, която е характерна за съвременния пазар на инструменти за разработка - активният растеж на популярността на платформи и инструменти с отворен код, в чието развитие сега се инвестират много пари от търговски компании, включително такива добре познати платформи производители като IBM, Novell и Oracle. Сред най-ярките примери, заслужава да се отбележи активното развитие на средата Eclipse - универсална отворена платформа за разработка, съвместима с много езици, платформи за внедряване и технологии, както и проекта Mono, внедряващ част от платформата .NET за операционна система . Linux системи(компилатори и други инструменти вече се произвеждат активно за последните).

Проектът Eclipse стартира през 1998 г. от IBM с цел създаване на интегрирана среда за разработка на Java от следващо поколение, разширяема с вградени инструменти, в множество доставчици на инструменти на Java. За тази цел IBM в края на 2001 г. предостави на общността с отворен код част от изходния код на своя инструмент за разработка на Java приложения WebSphere Studio Workbench и формира консорциума Eclipse (включващ представители на Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft и Webgain), за да управлява по-нататъшното развитие на тази среда за разработка, която по-късно се превърна в независима организация с нестопанска цел, Eclipse Foundation, която сега има 115 членове.

Днес, пет години след създаването си, платформата Eclipse стана толкова популярна, че започна да измества широко използваните комерсиални инструменти (като някои инструменти за разработка на Java) от пазара. Днес пазарният дял на Eclipse при инструментите за разработка на Java приложения е приблизително 50%. През изминалата година обаче имаше ясна тенденция Eclipse да се трансформира от среда за разработка на Java в платформа за интегриране на инструменти за целия жизнен цикъл на разработка на приложения - наскоро консорциумът Eclipse стартира проекти като създаването на среда за графично моделиране, инструменти за ориентирана към услуги архитектура и бяха пуснати актуализирани версии на инструменти за тестване, бизнес анализ и инструменти за създаване на уеб приложения.

Що се отнася до действителните инструменти за разработка на приложения, средите за разработка за PHP, Fortran, Macromedia Flex вече са създадени на базата на платформата Eclipse; Планираме да пуснем редица инструменти за разработване на приложения за вградени и мобилни платформи. Има и комерсиални инструменти за разработка за платформата Eclipse от IBM, Borland и SAP.

Най-популярните среди за разработка

Според проучване сред 1200 разработчици, проведено през юни тази година от изследователската компания Evans Data Corp., Microsoft Visual Studio .NET е най-широко използваната среда за разработка (Фигура 2).

Ориз. 2. Честота на използване на среди за разработка (източник - Developers’ Choice IDE Scorecard - Evans Data Corp., юни 2006 г.)

Според същото проучване най-популярната среда за разработка на приложения по отношение на функционалността е IBM Rational Application Developer, призната от участниците в анкетата като най-добрият инструмент за моделиране и изграждане на приложения и имаща най-добрия набор от примери (Фигура 3).

Резултатите от това проучване отразяват вече споменатите тенденции на доминирането на двете най-популярни платформи (Windows/Microsoft .NET и Java/J2EE - почти всички популярни среди за разработка са предназначени за тези платформи) и нарастващата популярност на инструментите за разработка с отворен код и платформи (както се вижда от присъствието на Eclipse в топ пет на най-популярните среди за разработка).

И така, съвременните тенденции в развитието на технологиите за разработка на приложения включват намаляване на дела на разработката на приложения в ИТ проектите, постепенен преход от дребномащабно производство на изключителен софтуер към масово индустриално производство на стандартни решения, все по-активно използване на инструменти за поддържа жизнения цикъл на разработка на приложения (включително проекти за внедряване на интегрирани платформи за разработка на приложения). Напоследък се забелязва и повишен интерес към създаването на приложения за мобилни платформи. Характерна тенденция последните годиние и появата на висококачествени инструменти с отворен код. Възможно е тези тенденции да продължат поне още няколко години.



Свързани публикации