Vlastnosti vývoja softvérových agentov. Zdôvodnenie výberu nástrojov a prostredia na vývoj softvéru

Poskytujeme komplexný prehľad všetkých prvkov

Prečo potrebujete definovať požiadavky

Vývojové prostredie by malo obsahovať všetko, čo potrebujete na vytváranie a nasadzovanie softvérovo náročných systémov (t.j. systémov, v ktorých je softvér najdôležitejším a nenahraditeľným prvkom). Prečo je dôležité mať konzistentnú definíciu požiadaviek na vývojové prostredie? Stručne povedané, mnohé organizácie sa snažia skrátiť čas uvedenia na trh, znížiť náklady a zlepšiť kvalitu, čo všetko sú obchodné ciele, ktoré priamo súvisia s kvalitou prostredia používaného na budovanie takýchto systémov. Konzistentná a komplexná definícia vývojového prostredia zaisťuje, že sa nič neprehliadne pri plánovaní činností na zlepšenie existujúceho prostredia, definovaní požiadaviek na prostredie, definovaní architektúry prostredia, hodnotení prostredia, zabezpečení primeranej úrovne návratnosti investícií pri zmena prostredia a pod. Definovanie vášho vývojového prostredia je kritickým vstupom pre všetky tieto úlohy.

Miesto vývojového prostredia v kontexte

Predtým, ako sa pozriete na konkrétne prvky, ktoré tvoria vývojové prostredie, je veľmi užitočné najprv pochopiť, kam vývojové prostredie zapadá do celkového obrazu.

Obrázok 1 ukazuje centrum zabezpečenia kvality(Center of Excellence), zodpovedný za tvorbu a údržbu vývojového prostredia. Toto prostredie sa používa vo vývojových projektoch, ktoré zase vytvárajú a udržiavajú softvérovo náročné systémy (alebo niektoré iné softvérové ​​aktíva, ako sú komponenty alebo služby). Táto jednoduchá vizualizácia vám umožňuje objasniť rozdiely medzi úlohou QA centra (vrátane rolí členov tímu, procesov a kľúčového uzla – vývojového prostredia) a projektmi, ktoré použitie toto vývojové prostredie (a ich role, procesy a uzly).


Prvky vývojového prostredia

Podľa softvérových expertov IBM Rational sa vývojové prostredie skladá z nasledujúcich šiestich prvkov, z ktorých každý je znázornený na obrázku 2 a podrobne popísaný nižšie:

  • Metóda
  • Nástroje
  • Príprava (umožnenie)
  • Organizácia
  • Implementácia (prijatie)

Možno poznáte komponenty modelu People-Process-Technology, ktoré sú kľúčovými stavebnými kameňmi úspešného vývojového projektu. Tento model je však na účely tohto článku príliš zjednodušený. Tento model je však postavený na prvkoch znázornených na obrázku 2:

  • personál Ide o organizáciu a prípravu.
  • Proces je metodika.
  • Technológia Sú to prostriedky a infraštruktúra.

Nasadenie je nový (a veľmi dôležitý) prvok, ktorý sa zameriava na distribúciu vývojového prostredia v rámci organizácie, obchodnej jednotky alebo projektu.

Metóda

Kľúčovým prvkom každého vývojového prostredia je metodológia, ktorú formálne alebo neformálne dodržiavajú odborníci z praxe. Tu sú kľúčové komponenty súvisiace s metodikou:

  • Kľúčové prvky metodológie, ako sú roly, pracovné produkty, úlohy a procesy.
  • Ďalšie prvky metodiky, ako sú normy, usmernenia, usmernenia, šablóny a príklady.
  • Topológia nasadenia techniky, ktorú je možné zvážiť napríklad pri nasadzovaní techniky ako webovej stránky na intranete spoločnosti. V našom príklade je na hosťovanie obsahu potrebný webový server a pracovné stanice musia mať nainštalovaný vhodný webový prehliadač a pripojený k webovému serveru.

Nástroje

Vývojové nástroje automatizujú aspekty zvolenej metodológie. Môžete napríklad použiť nástroje na ukladanie a správu požiadaviek na projekt vo vývoji, na vizuálne modelovanie architektúry a dizajnu, na testovanie softvér atď.

Kľúčové prvky súvisiace s nástrojmi:

  • Vývojové nástroje a nástroje na ich integráciu.
  • Scenáre inštalácie a konfigurácie vývojových nástrojov.
  • Topológia nasadenia vývojových nástrojov, ktorá zohľadňuje potrebný softvér a Hardvér na strane klienta aj na strane servera spolu so všetkými cieľovými platformami a emulátormi (napríklad pri vývoji zariadení v reálnom čase alebo vstavaných zariadení).

Príprava (umožnenie)

Školenie špecialistov na používanie vývojového prostredia (školenie a mentoring) je dôležitá podmienka jeho úspešnú realizáciu. Preto aspekty vývojového prostredia zahŕňajú definíciu a tvorbu školiacich a inštruktážnych materiálov. Platia aj popredné spoločnosti Osobitná pozornosť zvyšovanie odbornosti svojich zamestnancov a orientácia na externé odborné organizácie.

Kľúčové prvky súvisiace s prípravou:

  • Študijné programy a kurzy. Pokrývajú rôzne potreby, od školenia skúsených odborníkov v detailoch vývojového prostredia až po komplexný rekvalifikačný program pre špecialistov.
  • Inštruktážne materiály. Používajú ich špecialisti pri poradenstve menej skúseným kolegom.
  • Poskytovanie topológie nasadenia. Je potrebné vziať do úvahy topológiu nasadenia, napríklad keď sa školenie špecialistov organizuje prostredníctvom školenia na webe. Na hosťovanie obsahu je opäť potrebný webový server a pracovné stanice musia byť vybavené webovými prehliadačmi. Topológia nasadenia môže tiež špecifikovať miestnosti a učebne potrebné na školenie v triede.

Organizácia

Ďalším aspektom vývojového prostredia je zabezpečiť, aby boli k dispozícii vhodné organizačné zdroje na jeho definovanie, nasadenie a správu. Môžu to byť špecialisti na špecifické aspekty vývojového prostredia (napr. metodológovia, subšpecialisti, školitelia a mentori), pracovníci na správu a údržbu prostredia, pracovníci s príslušnou kvalifikáciou na firemnom helpdesk a príslušné komunity praxe.

Kľúčové prvky súvisiace s organizáciou:

  • Určite organizačné roly a oddelenia, ktoré sú súčasťou vývojového prostredia.
  • Topológia nasadenia organizačných prostriedkov, ktorá špecifikuje umiestnenie týchto organizačných jednotiek.

Infraštruktúra

Z pohľadu vývojového prostredia je infraštruktúra uvažovaná z hľadiska hardvéru a softvéru. Toto bolo diskutované skôr v diskusii o metodológii, nástrojoch, školení a organizácii. Existujú však tri dôvody, prečo samostatne považovať infraštruktúru za kľúčový prvok:

  1. Po prvé, konsolidácia. Napríklad pri zvažovaní potrieb infraštruktúry vývojového prostredia ako celku možno určiť, že na podporu metodológie webového obsahu aj webového učenia je potrebný iba jeden webový server.
  2. Po druhé, zaistite, aby sa náležite zohľadnil všetok dodatočný hardvér a softvér podporujúci vývojové prostredie (napr. operačné systémy, systémy správy databáz, systémy správy hardvéru, testovacie nástroje pre vývoj v reálnom čase a vstavaných zariadení).
  3. Po tretie, Centrum zabezpečenia kvality môže vyžadovať nasadenie infraštruktúry na podporu vytvárania a testovania vývojového prostredia pred jeho nasadením do akejkoľvek produkčnej infraštruktúry podporujúcej obchodné projekty.

Kľúčové prvky súvisiace s infraštruktúrou:

  • Poloha, uzly a konektivita.
  • Softvér (napr. operačné systémy, systémy správy databáz, systémy správy hardvéru, testovacie nástroje).

Implementácia (prijatie)

Okrem už uvedených prvkov je dôležité zvážiť implementáciu prostredia do organizácie, obchodnej jednotky alebo rozvojového projektu.

Kľúčové prvky súvisiace s implementáciou:

  • Implementačný plán. Tento plán definuje úlohy, ktoré sa zvyčajne vykonávajú pri implementácii prostredia, ako je napríklad získavanie hardvéru a softvéru.
  • Spôsoby vykonávania organizačných zmien. Budú potrebné na implementáciu a integráciu vývojového prostredia do každodenných činností príslušných organizačných štruktúr.
  • Stanovenie ukazovateľov životného prostredia. Metriky sa používajú na meranie výkonnosti prostredia.

Kontext riešenia

Dôležitý je aj kontext riešenia (kde je predmetným riešením vývojové prostredie). Kontext predstavuje požiadavky na vývojové prostredie a možno ho zvážiť z hľadiska funkčnosť, vlastnosti a obmedzenia.

  • Funkčnosť predstavuje schému alebo poradie vývoja softvéru poskytované vývojovým prostredím. Implementácia týchto požiadaviek si vyžaduje zohľadnenie všetkých prvkov uvedených vyššie. Napríklad príkaz na správu požiadaviek (pozri obrázok 3) je podporovaný nasledujúcimi aspektmi:
    • Metodika riadenia požiadaviek.
    • Nástroje na správu požiadaviek.
    • Školenie a mentoring v oblasti manažmentu požiadaviek.
    • Podporný tím, ktorý vie, ako sa vysporiadať s problémami správy požiadaviek.
    • Hardvér a softvér na podporu prvkov súvisiacich so správou požiadaviek.
    • Vhodná implementácia postupov riadenia požiadaviek v projektoch.

Rovnakým spôsobom možno uvažovať aj o ďalších komponentoch vývojového prostredia, ako je architektúra alebo manažment kvality. Túto metodiku je možné aplikovať aj na špecifické činnosti, ako je iteračný vývoj (ktorý je základom agilného prístupu k vývoju a dodávaniu softvéru), ktorý si tiež vyžaduje zohľadnenie všetkých prvkov.

  • Vlastnosti sú parametre, ktoré by vývojové prostredie malo mať. Požadujú tiež, aby sa brali do úvahy všetky prvky vývojového prostredia. Napríklad na implementáciu vlastnosti škálovateľnosti (napríklad schopnosť podporovať iný počet súbežných používateľov) sa používajú tieto prístupy:
    • Metóda, ktorá sa dá prispôsobiť veľkosti projektu.
    • Nástroje, ktoré možno nakonfigurovať tak, aby podporovali konfigurovateľnú metódu.
    • Vhodné mechanizmy a úrovne učenia pre projekty rôznych veľkostí.
    • Organizačné zdroje, aby sa zabezpečilo, že personál s príslušnou úrovňou zručností bude k dispozícii na podporu očakávaného počtu rozvojových projektov.
    • Infraštruktúra, ktorá sa môže škálovať tak, aby podporovala očakávaný počet súbežných používateľov.
    • Vhodné mechanizmy vstrekovania prostredia.
  • Obmedzenia, ktoré musí vývojové prostredie spĺňať, vyžadujú aj zohľadnenie všetkých prvkov vývojového prostredia. Ak napríklad potrebujete migrovať z existujúceho prostredia, možno budete musieť urobiť nasledovné:
    • Prevezmite pravidlá z existujúcej metodiky a zakomponujte ich do novej.
    • Migrujte pracovné produkty zo starého súboru nástrojov na nový (alebo integrujte s existujúcimi nástrojmi).
    • Poskytovať školenia primerané aktuálnemu stavu a riadne organizované.
    • Poskytnite personál na zabezpečenie hladkého prechodu z originálny uvádza v plánované.
    • Identifikujte infraštruktúru, ktorá maximálne využíva existujúcu infraštruktúru (napr. opätovné použitie existujúcich hardvérových a softvérových licencií tam, kde je to možné).
    • Poskytnite implementačné mechanizmy, ktoré potvrdia, že migrácia bola dokončená.

Ďalším dôležitým obmedzením pri zvažovaní zmeny existujúceho vývojového prostredia je, samozrejme, návratnosť investícií (ROI). Aby bola takáto iniciatíva úspešná, určite musí priniesť pozitívne výsledky v súlade s podnikateľským plánom. Každý aspekt vývojového prostredia ovplyvňuje ROI z hľadiska nákladov aj zisku.

Hoci to nie je znázornené na obrázku 2, funkčnosť, vlastnosti a obmedzenia sú zvyčajne spojené s konkrétnym obchodným kontextom (napr. obchodnými cieľmi). V tomto zmysle kontext rozhodovania zahŕňa aj obchodné aspekty. To môže byť obzvlášť dôležité pri preukazovaní priameho alebo nepriameho zapojenia vývojového prostredia do dosahovania obchodných cieľov.

Definujte, nasadzujte, spravujte

Pri definovaní rôznych prvkov vývojového prostredia je užitočné zvážiť nasledujúce prvky životného cyklu prostredia (pozri obrázok 4), pretože okrem kontextu rozhodovania má každý z nich svoje vlastné aspekty, ktoré ovplyvňujú definíciu:

  • Definícia prostredia.
  • Nasadenie prostredia.
  • Environmentálny manažment.

Predtým, ako sa pozrieme na regióny na obrázku 4, malo by sa vysvetliť, prečo sú spojené cyklu. Tento údaj potvrdzuje, že efektívna zmena (v tomto prípade zlepšenie vývojového prostredia) sa zvyčajne dosiahne skôr sériou postupných zmien než metódou veľký tresk(evolúcia, nie revolúcia) a každá prírastková zmena predstavuje jeden prechod cez cyklus. Zmena implementovaná v jednom cykle však už z definície mení kontext nasledujúceho cyklu (napríklad špecialisti teraz majú potrebnú kvalifikáciu, objavilo sa nové vybavenie, získali sa nové nástroje atď.), t. j. cyklický charakter zmien.

Nasledujúce časti pokrývajú každý prvok vývojového prostredia spolu s definovaním riešenia, nasadením riešenia a riadením riešenia.

Definícia

Aplikovaný na definícia vývojové prostredia pripomínajú predchádzajúcu diskusiu o kľúčových prvkoch. Táto diskusia sa tu neopakuje, aj keď kvôli úplnosti uvádza tabuľka 1 rôzne prvky definované skôr.

Treba tiež poznamenať, že definícia sa zvyčajne zvažuje na organizačnej úrovni a môže vyžadovať miestna implementácia na splnenie požiadaviek konkrétnej obchodnej jednotky alebo projektu pri nasadení. To sa odráža v nasledujúcich častiach.

Tabuľka 1 Aspekty definície
PrvokPopis
MetódaRoly, pracovné produkty, úlohy, procesy
Normy, odporúčania, pokyny atď.
Topológia nasadenia metódy
NástrojeVývojové a integračné nástroje
Scenáre inštalácie a konfigurácie vývojových nástrojov
Vývojová topológia nasadenia
Príprava (umožnenie)Študijné programy a kurzy
Usmerňovacie materiály
Provisioning Deployment Topology
OrganizáciaOrganizačné úlohy a jednotky
Topológia rozmiestnenia prostriedkov organizácie
Poloha, uzly a konektivita
Podporný softvér (napríklad operačné systémy)
Implementácia (prijatie)Implementačný plán
Techniky organizačných zmien
Indikátory prostredia

Nasadenie

Nasadenie vývojového prostredia vyvoláva špecifické otázky o každom prvku (pozri tabuľku 2).

Tabuľka 2. Úvahy o nasadení
PrvokPopis
Metóda
Metodika nasadenia
NástrojeVykonávanie lokálnej konfigurácie
Inštalácia nástrojov
Migrácia lokálnych údajov
Príprava (umožnenie)Konfigurácia poľa
Rozmiestnenie poradenských materiálov
Školenie interpretov
OrganizáciaUrčenie lokálnej konfigurácie
Reorganizácia
InfraštruktúraDefinícia lokálnej infraštruktúry
Poskytovanie umiestnení, hostiteľov a konektivity
Poskytovanie podporného softvéru
Implementácia (prijatie)Formulácia miestneho plánu implementácie
Kontrola prostredia

Kľúčové elementy metódy:

  • Určenie lokálnej konfigurácie. Pri nasadzovaní metodiky do obchodnej jednotky alebo vývojového projektu sa môže vyžadovať určitá lokálna konfigurácia, aby odrážala špecifické charakteristiky obchodnej jednotky, vývojového projektu alebo systému (napríklad poskytnutím vhodných úroveň formálnosti).
  • Nasadenie metodiky. Zaručuje dostupnosť techniky pre špecialistov.

Kľúčové elementy nástrojov:

  • Výkon miestne nastavenie. Akékoľvek lokálne prispôsobenie nástrojov sa používa na automatizáciu prispôsobenia miestnej metodiky.
  • Inštalácia nástrojov. Sprístupňuje nainštalované nástroje (a ich integráciu) odborníkom.
  • Migrácia lokálnych údajov. Napríklad môže byť potrebné migrovať údaje z existujúceho súboru nástrojov do nového.

Kľúčové elementy školenia:

  • Vykonajte lokálne nastavenie. miestne nastavenie. Ak je to potrebné - prispôsobenie, objasnenie alebo aktualizácia učebných materiálov. Môžete napríklad upraviť školiace materiály, aby ste ich zosúladili s procesom definovaným pre danú obchodnú jednotku alebo vývojový projekt.
  • Rozmiestnenie školiacich materiálov. Zaručuje prístup účinkujúcich k nim, vrátane prístupu ku všetkým webovým materiálom.
  • Školenie interpretov. Počas tréningu sa zbiera spätná väzba od účinkujúcich.

Kľúčové elementy organizácií:

  • Určenie lokálnej konfigurácie. Na podporu špecifických potrieb konkrétnej obchodnej jednotky alebo vývojového projektu môžu byť potrební odborníci.
  • Reorganizácia. Organizácia personálu a zdrojov na podporu vývojového prostredia.

Kľúčové elementy infraštruktúry:

  • Určenie lokálnej konfigurácie. Určite infraštruktúru potrebnú pre konkrétnu obchodnú jednotku alebo vývojový projekt.
  • Poskytovanie polohy, uzlov a konektivity. Sprístupnite všetok potrebný hardvér (vrátane všetkých cieľových platforiem a emulátorov pre zariadenia v reálnom čase a vstavané zariadenia).
  • Poskytovanie podporného softvéru. Nainštalujte všetok potrebný softvér, ktorý podporuje vývojové prostredie (napríklad systémy správy databáz alebo testovacie nástroje).

Kľúčové elementy implementáciu:

  • Stanovenie miestneho plánu implementácie. Spresnite plán implementácie tak, aby vyhovoval špecifickým potrebám obchodnej jednotky alebo rozvojového projektu.
  • Kontrola správnosti prostredia. Otestujte nasadené prostredie a overte, či spĺňa špecifické požiadavky z hľadiska špecifikovaných funkcií, vlastností a obmedzení.

Kontrola

Ako je uvedené v tabuľke 3, správa vývojového prostredia po jeho nasadení má tiež špecifické aspekty pre každý prvok.

Tabuľka 3. Aspekty riadenia
PrvokPopis
MetódaZhromažďovanie spätnej väzby k metodike
NástrojeZálohovanie, archivácia, obnova dát
Získajte spätnú väzbu o nástrojoch
Príprava (umožnenie)Školenie špecialistov
Získajte spätnú väzbu na prípravu
OrganizáciaZhromažďovanie spätnej väzby na
InfraštruktúraPoskytnutie alebo stiahnutie infraštruktúry podľa potreby
Získajte spätnú väzbu o infraštruktúre
Implementácia (prijatie)Meranie efektívnosti prostredia
Získajte spätnú väzbu o implementácii

Kľúčové elementy metódy:

  • Zber spätnej väzby k metodike. Kľúčovým aspektom riadenia vývojového prostredia je jeho neustále zlepšovanie. Preto sa zber spätnej väzby vzťahuje na všetky prvky. Spätná väzba sa zvyčajne zbiera subjektívne napríklad pomocou dotazníkov.

Kľúčové elementy nástrojov:

  • Zálohovanie, archivácia, obnova dát. Overte, či sú pracovné produkty vytvorené odborníkmi správne riadené a či sa uplatňujú postupy „správnej správy“.
  • Získajte spätnú väzbu o nástrojoch. Získajte spätnú väzbu (pozitívnu aj negatívnu) o dostupnosti a výkonnosti nástrojov.

Kľúčové elementy školenia:

  • Školenie interpretov. Určiť sponzorov projektu, aby realizátori vedeli využiť prostredie.
  • Zhromažďovanie spätnej väzby na prípravu, t.j. na školenie alebo mentoring.

Kľúčové elementy organizácií:

  • Získajte spätnú väzbu o organizácii. Vykonávatelia sa vyjadrujú k poskytovanej podpore pri používaní vývojového prostredia (napríklad ku kvalite podpornej služby).

Kľúčové elementy infraštruktúry:

  • Zabezpečenie alebo odstránenie prvkov infraštruktúry podľa potreby. Od začiatku do konca projektov musí byť veľkosť vývojového prostredia primerane zmenená tak, aby optimálne podporovala počet ľudí, ktorí dané prostredie v danom čase využívajú.
  • Získajte spätnú väzbu o infraštruktúre vrátane hardvéru a podporného softvéru.

Kľúčové elementy implementáciu:

  • Meranie efektívnosti prostredia. Toto je kľúčový aspekt úspešnej implementácie. Môžete napríklad poskytnúť účinkujúcim kontrolný zoznam a požiadať ich, aby zhodnotili efektívnosť zavádzania nových spôsobov práce.
  • Zhromažďovanie spätnej väzby o implementácii. Zhromažďovanie spätnej väzby o prístupoch k implementácii.

Vzájomné závislosti

A nakoniec, majte na pamäti, že rôzne prvky vývojového prostredia nie sú nezávislé. Alternatívne znázornenie obrázku 2 je znázornené na obrázku 5, ktorý ukazuje, že každý prvok má vzťahy so všetkými ostatnými prvkami.

Tu je niekoľko príkladov závislostí medzi prvkami:

  • Metodológia (metodika) sa týka dostupných vzdelávacích kurzov (školení).
  • Nástroje (nástroje) automatizujú úlohy (metodika).
  • Administratívne roly (organizácia) sú definované na podporu nástrojov (nástrojov).
  • Servery (infraštruktúra) slúžia na hosťovanie súboru nástrojov (nástrojov).
  • Implementácia pracovných metód (implementácia) sa posudzuje pomocou špecifického prístupu (metodiky).

Záver

Tento článok dopĺňa článok (EN) publikovaný rovnakým autorom v The Rational Edge v roku 2008. Podrobne popisuje kľúčové prvky vývojového prostredia a zdôrazňuje rôzne aspekty definovania, nasadenia a správy tohto prostredia. Poskytuje jednoduchý rámec na zabezpečenie toho, aby sa všetky tieto aspekty zohľadnili pri plánovaní činností na zlepšenie existujúceho prostredia, definovaní environmentálnych požiadaviek, definovaní architektúry, hodnotení prostredia atď.

Alexej Fedorov, Natalia Elmanová

Predchádzajúci článok tejto série bol venovaný úvahám o logickom a fyzickom návrhu údajov a nástrojoch používaných v tomto procese. Sme presvedčení, že dátové inžinierstvo zohráva kľúčovú úlohu pri vývoji informačných systémov, pretože kvalita tejto práce určuje náklady spojené s tvorbou aplikácií pre koncových užívateľov, ako aj s následnou údržbou a modernizáciou vytvoreného produktu. Výsledkom tohto kroku je „prázdna“ databáza (t. j. databáza, ktorej tabuľky väčšinou neobsahujú žiadne záznamy, snáď s výnimkou referenčných tabuliek, ako je zoznam predmetov Ruská federácia alebo telefónne predvoľby).

Ďalšia etapa životného cyklu informačný systém- vývoj klientskych aplikácií. Výsledkom tejto etapy je hotový produkt, pozostávajúci z množstva aplikácií, ktoré umožňujú užívateľom zadávať dáta do tabuliek alebo upravovať existujúce dáta, analyzovať zadané dáta a prezentovať ich v čitateľnejšej forme – grafy, kontingenčné tabuľky či reporty (napr. „papierové dokumenty).

Proces navrhovania údajov pre relačné DBMS je do určitej miery logický proces a podlieha jednotnej štandardnej metodike. To spôsobuje nízku mieru závislosti postupnosti akcií vykonávaných počas návrhu týchto akcií od toho, ktorý nástroj na návrh údajov sa používa, a od toho, či sa vôbec používa. V skutočnosti je to dôvod, prečo sú nástroje na návrh údajov viac-menej podobné vo svojom rozhraní, ktoré v podstate odráža proces kreslenia údajových modelov na papier.

Proces vytvárania klientskych aplikácií, ktoré pracujú s databázami, je dosť ťažké opísať vo forme takejto univerzálnej postupnosti akcií, pretože logika konkrétnej aplikácie takmer úplne závisí od logiky modelovaného obchodného procesu. Nástroje na vývoj aplikácií ako kategória softvérových produktov existujú oveľa dlhšie ako nástroje na návrh údajov a sú rozmanitejšie – od kompilátora spusteného z príkazový riadok, na nástroje, kde sa hotová aplikácia poskladá „myšou“ z hotových komponentov a automaticky sa vygeneruje kód. S takou rozmanitosťou vývojových nástrojov by mali byť nejakým spôsobom klasifikované, čo sa pokúsime urobiť v tomto článku, pričom povieme, ktoré z nich je vhodné použiť v konkrétnom prípade.

Klasifikácia nástrojov vývoja aplikácií

Vývojové nástroje možno klasifikovať z rôznych pozícií, napríklad na základe programovacieho jazyka, ktorý podporujú, alebo výkonu vytvorených aplikácií na konkrétnej platforme, či prítomnosti určitých knižníc a vizuálnych nástrojov v nich. Pokúsime sa klasifikovať nástroje vývoja aplikácií na základe pohodlia ich použitia na vytváranie produktov, ktoré sú používateľským rozhraním databázy.

Takmer každý vývojový nástroj, ktorý tvrdí, že je univerzálny, môže byť prispôsobený na prácu s akoukoľvek databázou – stačí podporovať používanie knižníc tretích strán v tomto vývojovom nástroji a táto databáza má sadu klientskych rozhraní (API) pre platformu na ktoré by mali vytvorené aplikácie prevádzkovať . Nie každá dvojica produktov „vývojový nástroj plus DBMS“ je však atraktívna z hľadiska mzdových nákladov spojených s tvorbou takýchto aplikácií. Môžete napísať kompletnú aplikáciu, ktorá volá funkcie klientskeho rozhrania API a implementuje pohodlné používateľské rozhranie pomocou kompilátora C a jednoduchej grafickej knižnice (napríklad umožňujúcej meniť farbu pixelov na obrazovke) pre operačný systém, na ktorom aplikácia sa spustí. Náklady spojené s implementáciou takéhoto projektu však môžu byť úplne neopodstatnené, pretože v tomto prípade budú musieť vývojári implementovať funkcie, ktoré sú už obsiahnuté v knižniciach tried a komponenty vývojových nástrojov, ktoré sú hlbšie zamerané na vytváranie databázových aplikácií alebo zahŕňajú podporu na vytváranie takýchto aplikácií.

Vývojové nástroje zamerané na špecifické DBMS

Pred desiatimi alebo dvadsiatimi rokmi sa v mnohých aplikáciách využívajúcich databázy volali funkcie klientskeho API z kódu napísaného v jednom z programovacích jazykov, najčastejšie v C. Stačí sa pozrieť na popis API klientskej časti takmer ľubovoľnej serverovej časti DBMS - a nájdete veľa príkladov najtypickejších fragmentov kódu, napríklad na registráciu používateľa, vykonávanie dopytov atď. Vývojárom DBMS však bolo rýchlo jasné, že náklady na prácu spojené s písaním takéhoto kódu možno výrazne znížiť zhromažďovaním najtypickejších fragmentov kódu a najčastejšie sa vyskytujúcich prvkov používateľského rozhrania do knižníc (dokonca aj pre alfanumerické terminály), formátovaním týchto knižníc v ako samostatný produkt a k nemu sa pridáva vývojové prostredie a pomôcky na tvorbu používateľských formulárov na prezeranie a úpravu údajov, ako aj zostáv. Takto sa objavili prvé vývojové nástroje špecifické pre DBMS, ako napríklad Oracle * Forms (predchodca súčasného Oracle Forms Developer).

Produkty tejto triedy sú aj dnes dostupné na trhu vývojových nástrojov. Takmer všetci predajcovia databáz serverov vyrábajú aj nástroje na vývoj aplikácií. Moderné verzie týchto vývojových nástrojov v drvivej väčšine prípadov podporujú prístup k DBMS od iných výrobcov pomocou aspoň jedného z univerzálnych mechanizmov prístupu k dátam (ODBC, OLE DB, BDE). Prístup k „ich“ DBMS sa však zvyčajne vykonáva v maximálnej možnej miere efektívnym spôsobom, teda pomocou klientskych API, objektov obsiahnutých v knižniciach klientskej časti servera DBMS, špeciálnych tried na prístup k údajom tejto DBMS alebo implementáciou ovládačov pre mechanizmy univerzálneho prístupu k údajom, ktoré môžu zohľadňovať špecifické vlastnosti tento DBMS.

Desktopové vývojové prostredia DBMS možno rozdeliť do samostatnej kategórie. V článku tejto série venovanom desktopovým DBMS sme už poznamenali, že veľká väčšina desktopových DBMS, ktoré prežili dodnes, ako napríklad Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual dBase, podporuje prístup k serverovým DBMS, aspoň pomocou univerzálnych mechanizmov na prístup k údajom, čo nám umožňuje podmienečne ich zaradiť medzi vývojové nástroje. Všimnite si však, že v súčasnosti je tvorba aplikácií v architektúre „klient-server“ s ich pomocou zriedkavým javom. Výnimkou sú snáď dvojice Microsoft Access - MSDE, Microsoft Access - Microsoft SQL Server a Microsoft Visual FoxPro - Microsoft SQL Server. Je to výsledok kompetentnej politiky spoločnosti Microsoft, ktorá sa snaží o maximálnu kompatibilitu svojich produktov a poskytuje používateľom bezbolestné nahradenie ich desktopového DBMS vlastnými databázovými servermi (Access->MSDE->Microsoft SQL Server, FoxPro->Visual FoxPro->Microsoft SQL Server) .

Vývojové nástroje, ktoré sú univerzálne vo vzťahu k DBMS

Vývojové nástroje, ktoré sú univerzálne vo vzťahu k DBMS (alebo tvrdia, že majú podobnú univerzálnosť), sú spravidla nasledovníkmi konvenčných nástrojov na vývoj aplikácií, ktoré priamo nesúvisia s databázami. Typickými príkladmi takýchto vývojových nástrojov sú Borland Pascal, Borland C++, Microsoft QuickC. Tieto nástroje, ktoré boli schopné využívať knižnice tretích strán, umožnili prístup k funkciám klientskych API a s rozvojom univerzálnych mechanizmov prístupu k údajom (ako je ODBC) aj k funkciám API knižníc, ktoré takéto mechanizmy implementujú. Treba poznamenať, že desktopové DBMS prostredia (ako dBase, FoxBase) alebo pseudo-kompilátory pre jazyky rodiny xBase (ako Clipper) boli často vytvorené pomocou týchto vývojových nástrojov.

Neskoršie verzie vyššie uvedených vývojových nástrojov získali knižnice funkcií a tried určených na prístup k údajom pomocou určitých univerzálnych mechanizmov. Ďalší vývoj vývojových nástrojov viedol k vzniku dvoch kategórií produktov na tento účel.

Prvá kategória zahŕňa vývojové nástroje, ktoré majú rozsiahle knižnice tried, veľké množstvo „sprievodcov“ a generátorov kódu, ale sú zamerané na „manuálnu“ tvorbu kódu a málokedy sa používajú na vytváranie „štandardných“ databázových aplikácií (tu pod slovným spojením „ štandardná aplikácia"myslíme aplikáciu, ktorá má priamy prístup k databáze, s ktorou používateľ interaguje, čiže je to "klasický" klient servera DBMS). Typický (a jediný skutočne populárny na softvérovom trhu) zástupca tohto triedou produktov je Microsoft Visual C ++. pomoc od Microsoftu Knižnice Visual C++ a MFC (Microsoft Foundation Classes) môžu vytvoriť akúkoľvek aplikáciu, ak máte zručnosti, znalosti, zručnosti a čas. Napriek tomu sa s jeho pomocou často nevyvíjajú aplikácie s komplexným používateľským rozhraním (napríklad tie, ktoré využívajú databázy) (aj keď príklady jeho použitia možno nájsť aj v ruskej literatúre). V podstate tento produkt slúži na vytváranie klientskych aplikácií v prípade, že sú na ne kladené špeciálne požiadavky, ako je vysoký výkon, možnosť vykonávať akékoľvek neštandardné operácie a pod.

Do druhej kategórie patria vývojové nástroje s pokročilými vizuálnymi nástrojmi, ktoré umožňujú doslova „kresliť“ používateľské rozhranie, čiastočne stierať rozdiely medzi prácou programátora a používateľa a znižovať náklady na konečný produkt prilákaním vývojárov, ktorí nie sú z najvyššia kvalifikácia na navrhovanie rozhrania (ak si pozorne preštudujete programy kurzov školiacich stredísk špecializujúcich sa na výučbu vývojových nástrojov Microsoft, Borland a Sybase, zistíte, že trvanie školiaceho kurzu, po vypočutí, ktoré je obvyklé Používateľ systému Windows by sa mal naučiť vytvárať klientske aplikácie pre server DBMS, je od 5 do 10 pracovných dní).

Práve táto kategória vývojových nástrojov sa najčastejšie využíva pri tvorbe klientskych aplikácií. Medzi najobľúbenejšie produkty tejto triedy patria Microsoft Visual Basic, Borland Delphi , Sybase PowerBuilder a Borland C++ Builder. Vývojové prostredia pre takéto produkty sú na pohľad veľmi podobné (až do umiestnenia okien na obrazovke, ktoré je nastavené „štandardne“): vývojové prostredie pre takýto produkt spravidla obsahuje „prázdnu“ navrhnutú formulár (podobne ako okno), samostatný panel s ikonami prvkov používateľského rozhrania a iných objektov používaných v aplikácii, ktoré je možné vybrať a umiestniť do formulára, okno, v ktorom sú vlastnosti jedného z prvkov vybratých vo formulári zobrazené a upravované (a niekedy aj zoznam udalostí, na ktoré tento prvok reaguje), okno editora kódu, kde môžete zadávať útržky kódu spojené so spracovaním určitých udalostí, ako aj kód, ktorý implementuje logiku práce túto aplikáciu. zvyčajne moderné vybavenie vývoj tejto triedy vám umožňuje vytvárať najjednoduchšie aplikácie na úpravu údajov s malým alebo žiadnym kódom.

V poslednej dobe je tiež veľmi populárne vytvárať aplikácie, ktoré využívajú prístup k databáze, ale nachádzajú sa vo vnútri bežných dokumentov. Vývojové nástroje pre takéto aplikácie sú založené na makrojazykoch príslušných editorov. Najtypickejším a takmer jediným obľúbeným zástupcom vývojových nástrojov v tejto kategórii je Visual. Základné pre Aplikácie, ktoré sú podobné nástrojom vizuálneho vývoja uvedeným vyššie a líšia sa od nich tým, že aplikácie vytvorené pomocou nich sú obsiahnuté v dokumentoch Microsoft Office a nie sú im odcudzené.

Upozorňujeme však, že vyššie uvedené rozdelenie vývojových nástrojov do týchto dvoch tried je skôr podmienené. Ako sme uviedli vyššie, takmer všetky nástroje na vývoj databázových aplikácií, vrátane tých, ktoré sú zamerané na špecifické DBMS, podporujú aspoň jeden z univerzálnych mechanizmov prístupu k údajom. A takmer všetky „univerzálne“ nástroje na vývoj aplikácií, ak patria výrobcovi akéhokoľvek servera DBMS, podporujú „ich“ DBMS lepšie ako DBMS tretích strán (môže to byť vyjadrené napríklad v špeciálnych knižniciach tried alebo komponentoch na prístup k tomuto server, a tiež v prítomnosti spoločných úložísk objektov a dátových modelov a niekedy aj editorov parametrov prístupu k dátam alebo dátových schém spoločných s klientskou časťou servera DBMS)

Klasifikácia aplikácií, ktoré využívajú databázy

Aplikácie v architektúre klient-server

V predchádzajúcich článkoch tejto série sme už hovorili o tom, čo predstavuje architektúru „klient-server“ v tradičnom slova zmysle. Preto si len stručne pripomenieme, že informačné systémy vytvorené v tejto architektúre sú databázovým serverom, ktorý manipuluje s údajmi, a klientskou aplikáciou, ktorá k nim pristupuje a používa buď klientske API (alebo triedy a komponenty, ktoré zapuzdrujú ich volania), alebo jednu z univerzálnych údajov. prístupové mechanizmy. Pri použití takejto aplikačnej architektúry je databázový server zvyčajne zodpovedný aj za presadzovanie obchodných pravidiel implementovaných vo forme uložených procedúr, spúšťačov, obmedzení servera a iných databázových objektov.

V tomto prípade sa na tvorbu klientskych aplikácií najčastejšie používajú vývojové nástroje s pokročilými vizuálnymi nástrojmi, ako sú Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder.

Upozorňujeme však, že výber moderných aplikačných architektúr je v súčasnosti pomerne široký a neobmedzuje sa len na „klasickú“ architektúru klient-server, čo znamená, že aplikácia pozostáva z databázového servera a klientskych aplikácií interagujúcich s týmto serverom. Preto nižšie rozoberieme, ktoré vývojové nástroje je vhodné použiť pri vytváraní distribuovaných aplikácií.

Distribuované aplikácie

Distribuované (alebo viacvrstvové) aplikácie zvyčajne pozostávajú z prezentačných služieb (alebo „tenkých“ klientov, s ktorými zvyčajne interagujú koncoví používatelia), služieb obchodnej logiky implementovaných ako obchodné objekty (alebo služieb strednej vrstvy; často sa na opis súboru takýchto služieb nazývajú middleware) a dátové služby (zvyčajne pozostávajúce z databázového servera a mechanizmov prístupu k údajom). Služby obchodnej logiky sú navrhnuté tak, aby prijímali vstupy používateľov z prezentačných služieb, spolupracovali s dátovými službami na vykonávanie obchodných operácií (ako je spracovanie objednávok alebo výpočet súvahy) a vracali výsledky týchto operácií do prezentačných služieb.

Na rozdiel od konvenčných aplikácií klient-server vo viacvrstvových systémoch tenký klienti zvyčajne nemajú priamy prístup k údajom. Namiesto toho klienti posielajú požiadavky na obchodné objekty špeciálne navrhnuté na tento účel. Tí zase môžu vykonávať obchodné operácie požadované klientom (ako je spracovanie objednávky, dokončenie banková transakcia atď.).

Niektoré z obchodných objektov môžu pristupovať k dátovým službám pomocou nejakého mechanizmu prístupu k dátam. Keďže koncový používateľ neinteraguje priamo s obchodnými objektmi, tieto zvyčajne nemajú používateľské rozhranie v obvyklom zmysle. Fyzicky môžu byť obchodné objekty implementované ako služby operačného systému, konzolové aplikácie alebo aplikácie Windows, ako aj knižnice načítané do adresného priestoru serverovej aplikácie špeciálne navrhnutej na tento účel (webový server, aplikačný server, monitor transakcií atď.). ). Nie je nezvyčajné, že jeden podnikateľský subjekt obsluhuje množstvo zákazníkov.

Na vytváranie biznis objektov sa používajú vývojové nástroje s pokročilými vizuálnymi nástrojmi a vývojové nástroje zamerané na „ručnú“ tvorbu aplikačného kódu (napr. Visual C++). Všimnite si, že najnovšie verzie takmer všetkých najpopulárnejších nástrojov na vývoj aplikácií Windows (Microsoft Visual Basic, Visual FoxPro a Visual C++, Borland Delphi a C++Builder, Sybase PowerBuilder) podporujú vytváranie rôznych typov obchodných objektov (webové aplikácie, ASP-objekty, COM servery a pod.), možno s výnimkou Microsoft Access - tento produkt je určený skôr pre kvalifikovaných používateľov ako pre vývojárov distribuovaných systémov. Často sa na tento účel používajú aj nástroje na vytváranie aplikácií Java (napríklad Borland JBuilder).

Všimnite si, že okrem vyššie uvedených „univerzálnych“ nástrojov na vytváranie aplikácií v architektúre „klient-server“, ako aj obchodných objektov pre distribuované systémy, existujú na trhu vývojových nástrojov špecializované nástroje, ktoré sú určené špeciálne na vytváranie obchodných objektov. (zvyčajne webové aplikácie). Z vývojových nástrojov tejto triedy pre platformu Windows je najpopulárnejší Microsoft Visual InterDev, ktorého prvá verzia sa objavila v roku 1998. Spomenúť môžeme aj ďalší zaujímavý produkt patriaci do rovnakej kategórie vývojových nástrojov – Borland IntraBuilder, ktorý sa objavil o dva roky skôr, no z nejakého dôvodu, napriek rastúcej potrebe produktov tejto triedy, nedostal ďalší vývoj. Vývojové nástroje tejto triedy vám spravidla umožňujú vytvárať aplikácie, ktoré dynamicky generujú HTML kód alebo kód v jednom zo skriptovacích jazykov (VBScript alebo JavaScript), ktorý je prenášaný webovým serverom do prehliadača užívateľa ako súčasť webovú stránku a akceptovanie údajov zadaných používateľom vo forme HTML a odovzdaných prehliadačom na webový server.

Záver

V tomto článku sme rozobrali proces vytvárania aplikácií, ktoré využívajú databázy, ako aj rôzne kategórie nástrojov používaných pri ich vývoji. Videli sme, že vývojové nástroje možno podmienene rozdeliť na jednej strane na nástroje zamerané na použitie špecifických DBMS, nástroje, ktoré sú vo vzťahu k DBMS univerzálne a desktopové DBMS prostredia používané na vývoj aplikácií. Na druhej strane ich možno rozdeliť na nástroje zamerané na návrh vizuálneho používateľského rozhrania (do tejto kategórie patria Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder) a nástroje zamerané na písanie kódu aplikácie (Visual C++ ).

Po preskúmaní niektorých z najpopulárnejších nástrojov na vývoj aplikácií sme zistili, že väčšina týchto produktov spravidla podporuje:

  • aspoň jeden z mechanizmov univerzálneho prístupu k dátam, ktorý umožňuje využívať dáta z rôznych DBMS vo vytváraných aplikáciách;
  • vytváranie niekoľkých typov distribuovaných aplikácií;
  • automatické generovanie aplikačného kódu na základe modelov vytvorených pomocou najpopulárnejších nástrojov na návrh údajov a modelovanie obchodných procesov.

Diskutovali sme aj o tom, ako sa aplikácie klient-server líšia od distribuovaných systémov a aké vývojové nástroje možno použiť na vytvorenie oboch typov aplikácií.

Vývojom aplikácií sa životný cyklus informačného systému nekončí. Po vytvorení sa predpokladá, že budú testované, implementované, vyškolené na ich používanie a nakoniec niekoľko rokov využívané. V dôsledku takéhoto využívania sa hromadia údaje, ktoré sú spravidla oveľa cennejšie ako samotné aplikácie. Tieto údaje často predstavujú materiál potrebný na prijímanie dôležitých manažérskych rozhodnutí, preto je dôležité vedieť ich previesť do podoby vhodnej na takýto účel. K tomu slúžia nástroje súvisiace s kategóriou Business Intelligence – generátory reportov, nástroje analytické spracovanieúdaje a hľadať vzory. Povieme si o nich v ďalšom článku tejto série.

Pre optimálny vývoj softvérového prostredia je potrebné kombinovať rôzne programovacie jazyky, keďže každý z nich je zameraný na splnenie určitých cieľov a zámerov. Rovnako ako niekoľko PHP príkazov umožňuje vytvoriť celú webovú stránku, ale v praxi sa skript takmer vždy používa v spojení s HTML a zdrojový kód skriptu zvyčajne obsahuje veľké množstvo riadkov. Ale napriek tomu je potrebné poznamenať, že PHP kód môže byť umiestnený kdekoľvek v HTML dokumente, ale nemusí používať HTML. Je len potrebné zabezpečiť, aby PHP kód generoval platný HTML kód, ktorý potom webový prehliadač správne zobrazuje.

HTML je hypertextový značkovací jazyk, ktorý sa používa na vytváranie dokumentov na internete. S ním sa vytvára potrebná štruktúra a mriežka stránky, ktorej vzhľad ešte vylepšujú CSS a JavaScript. Aktuálne je najnovšou verziou HTML5, ktorej predchádzalo HTML4.01. Väčšina webových zdrojov je postavená na základe tohto konkrétneho jazyka.

Na rozdiel od HTML 4, ktorý má 3 validátory, HTML 5 má jeden validátor:. HTML 5 podporuje MathML a SVG.

Nové značky: sekcia, článok, bok, hgroup, hlavička, päta, navigácia, dialóg, obrázok, video, zvuk, zdroj, embed na vloženie obsahu s pluginom (iba), značka, priebeh, meter, čas, rubín, rt, rp , canvas, command, details, datalist, keygen, output.

Nové typy vstupu: tel, vyhľadávanie, adresa URL, e-mail, dátum a čas, dátum, mesiac, týždeň, čas, miestny dátum a čas, číslo, rozsah, farba.

Nové atribúty pre značky: ping atribúty médií pre oblasť a atď.

Zmiznutie niektorých značiek z dôvodu, že ich možno nahradiť CSS: basefont, big, center, font, s, strike, tt, u.

Rámy miznú v dôsledku negatívneho vplyvu na celú stránku

Zmiznutie niektorých značiek, nahradených v aktualizovanej špecifikácii relevantnejšími: akronym (použitá skratka), applet (použitý objekt), isindex, dir.

Niektoré atribúty značiek nie sú podporované z dôvodu nedostatku nevyhnutnosti: rev a znaková sada pre odkaz a, tvar a súradnice pre a atď.

Niektoré atribúty značiek nie sú podporované z dôvodu, že kedy pomocou CSS dosiahnuté najlepší efekt: zarovnanie pre všetky značky, odkaz, odkaz, text, vlink pre telo atď.

Nové API: kreslenie 2D obrázkov v reálnom čase; ovládanie prehrávania mediálnych súborov; ukladanie údajov v prehliadači; úprava; drag-and-drop; vytváranie sietí; MIME nové prvky v DOM.

CSS je formálny jazyk na popis vzhľadu dokumentu napísaného pomocou značkovacieho jazyka. CSS je skratka pre kaskádové štýly. CSS je štýlový jazyk, ktorý definuje vykresľovanie HTML dokumentov. CSS sa napríklad zaoberá fontami, farbou, okrajmi, čiarami, výškou, šírkou, obrázkami na pozadí, umiestnením prvkov a mnohými ďalšími vecami. HTML možno použiť na úpravu webových stránok, ale CSS je výkonnejšie, presnejšie a prepracovanejšie. CSS v súčasnosti podporujú všetky prehliadače.

HTML sa používa na štruktúrovanie obsahu stránky. Na formátovanie tohto štruktúrovaného obsahu sa používa CSS. Ako vývoj webových aplikácií dizajnéri začali hľadať spôsoby, ako formátovať online dokumenty. Aby výrobcovia prehliadačov (vtedy Netscape a Microsoft) vyhoveli zvyšujúcim sa požiadavkám spotrebiteľov, vymysleli nové HTML značky ako napr , ktoré sa od pôvodných značiek HTML líšili tým, že definovali skôr vzhľad než štruktúru. Z toho vyplynuli aj originálne štruktúrovacie tagy ako napr

, sa čoraz viac používajú na dizajn stránky namiesto štruktúrovania textu. Mnoho nových dizajnových značiek ako napr , boli podporované iba jedným prehliadačom. „Na zobrazenie tejto stránky potrebujete prehliadač X“ je na webových stránkach bežným odmietnutím.

CSS bol vytvorený na nápravu tejto situácie tým, že poskytuje webovým dizajnérom presné možnosti návrhu, ktoré podporujú všetky prehliadače. Zároveň došlo k oddeleniu obsahu prezentácie a dokumentu, čo značne zjednodušilo prácu.

Príchod CSS spôsobil revolúciu vo svete webového dizajnu. Konkrétne výhody CSS:

Správa zobrazenia viacerých dokumentov pomocou jednej šablóny štýlov;

Presnejšia kontrola nad vzhľadom stránok;

Rôzne zobrazenia pre rôzne médiá (obrazovka, tlač atď.);

Sofistikovaná a sofistikovaná dizajnová technika.

Existujú spôsoby, ako podať žiadosť css pravidlá do dokumentu HTML.

Metóda 1: Inline / In-line (atribút štýlu). CSS môžete použiť na HTML pomocou atribútu štýlu HTML. Červenú farbu pozadia je možné nastaviť takto:

príklad

Toto je červená stránka

Metóda 2: Interná (značka štýlu). Druhý spôsob vkladania CSS kódov - HTML tag