Elektronika.lt
 2020 m. birželio 4 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 NaujienosSąrašas
 StraipsniaiSąrašas
 - Elektronika, technika
 - Kompiuterija
 - Telekomunikacijos
 - Įvykiai, visuomenė
 - Pažintiniai, įdomybės
 Vaizdo siužetaiSąrašas
 Nuolaidos, akcijosSąrašas
 Produktų apžvalgosSąrašas
 Naudingi patarimaiSąrašas
 Vykdomi projektaiSąrašas
 Schemų archyvasSąrašas
 Teorija, žinynaiSąrašas
 Nuorodų katalogai
 Įvairūs siuntiniai
 Bendravimas
 Skelbimai ir pasiūlymai
 Elektronikos remontas
 Robotų kūrėjų klubas
 RTN žurnalo archyvas






 Verta paskaityti
Birželio 4 d. 18:49
Tyrimas: mobiliuoju telefonu vairuodami naudojasi du trečdaliai Lietuvos gyventojų
Birželio 4 d. 14:57
Specialistai pataria, kaip pasirūpinti telefonu vasarą
Birželio 4 d. 13:45
Dirbtinis intelektas – laukia mokslinės fantastikos vertas scenarijus?
Birželio 4 d. 08:46
„Android 11“ belaukiant: kaip per pastaruosius 5 metus keitėsi populiariausia mobilioji platforma pasaulyje?
Birželio 3 d. 21:02
Du nauji saulės elektrinių parkai ir vieną jų statys Ignalinos atominė elektrinė
Birželio 3 d. 18:43
Lietuvos padangėje ypatingas svečias: atliekami bandymai, užtikrinantys skrydžių saugą
Birželio 3 d. 18:05
Kol vietos prekybininkai svarsto, lietuvių sukurtą prekybos inovaciją sėkmingai taiko estai
Birželio 3 d. 13:23
Kibernetinio saugumo specialistas: pasinaudoję wi-fi sukčiai gali patekti net į jūsų namus
Birželio 3 d. 12:49
Perkate planšetinį kompiuterį? Viskas, ką 2020 m. turi turėti šis įrenginys
Birželio 3 d. 10:39
Trimačio Vilniaus žemėlapio nauda: aiškesni planai, darnesnė miesto plėtra
FS19 Mods
FS19 Map mods, FS19 Courseplay, FS19 GPS mod
SnowRunner Mods
SnowRunner maps, SnowRunner trucks, How to install mods
FS 19 Tractors
Farming Simulator 19 Mods, FS 19 Maps, FS 19 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
Install MC Mods
Minecraft Dungeons Mods, Minecraft Dungeons Skins, Minecraft Dungeons Maps
FS19 Combines
Farming Simulator 19 Mods, FS19 Trucks, FS 19 Mods
How to Install Mods
Minecraft Dungeons Mods, Minecraft Dungeons Maps, Minecraft Dungeons Skins
Mobilieji telefonai
Mobilieji telefonai internetu, telefonų dėklai, telefonų priedai
Šlagbaumas
Fontanai, lauko židinys, supynės
LS19 Mods
Fs19 modhub, fs19 maps, FS19 Seasons
Snowrunner Mods
Snowrunner Maps, Snowrunner Trucks, Install Snowrunner Mods
Reklama
 Straipsniai » Kompiuteriai, IT Dalintis | Spausdinti

Programinės įrangos architektūros projektavimas

Publikuota: 2005-06-14 07:47
Tematika: Kompiuteriai, IT
Skirta: Mėgėjams
Autorius: Darius Šilingas
Aut. teisės: ©Baltijos programinė įranga, UAB
Inf. šaltinis: Baltijos programinė įranga, UAB

Šiuo metu programinė įranga jau yra neatsiejama daugumos verslo organizacijų infrastruktūros dalis, tačiau jos kūrimo apimtys ir toliau auga. Ypač daug dėmesio skiriama paskirstytų interneto tinklui orientuotų sistemų kūrimui bei įvairių informacinių sistemų integracijai. Augant kuriamos programinės įrangos apimčiai ir sudėtingumui, projektavimas tampa vis svarbesne IT sistemų inžinerijos dalimi.

 Rodyti komentarus (1)
Įvertinimas:  1 2 3 4 5 

Programinės įrangos projektavimo svarba

Šiuo metu programinė įranga jau yra neatsiejama daugumos verslo organizacijų infrastruktūros dalis, tačiau jos kūrimo apimtys ir toliau auga. Ypač daug dėmesio skiriama paskirstytų interneto tinklui orientuotų sistemų kūrimui bei įvairių informacinių sistemų integracijai. Augant kuriamos programinės įrangos apimčiai ir sudėtingumui, projektavimas tampa vis svarbesne IT sistemų inžinerijos dalimi, o projektavimas dažnai lyginamas su pastatų architektūra. Christopherio Alexanderio parašytos klasikinės architektūros knygos „The Timeless Way of Building“ ir „A Pattern Language: Towns, Buildings, Construction“ nepaprastai išpopuliarėjo dėl pastebėtų paralelių su programinės įrangos architektūros projektavimu. Programinės įrangos projektavimas gali būti neformalus ir nedokumentuojamas, jeigu yra kuriamos nesudėtingos sistemos (galima palyginti su lauko sandėliuku arba pavėsine), kurių nenumatoma palaikyti ir plėsti. Tuo tarpu sudėtingesnių sistemų (galima palyginti su dangoraižiu arba aerouostu) be detalaus projektavimo sukurti iš viso neįmanoma. Programinės įrangos projektavimas ir architektūros dokumentavimas taip pat labai svarbūs sistemos palaikymui – plėtimui, aptiktų defektų taisymui, sistemos adaptavimui skirtingoms platformoms, integravimui su kitomis sistemomis. Kadangi dauguma šiuo metu kuriamų programinės įrangos sistemų yra sudėtingos, ir beveik visada yra siekiama užtikrinti jų išliekamąją vertę, yra būtina:

  1. Prieš kuriant sistemą, suprojektuoti jos realizaciją;
  2. Dokumentuoti projektavimo sprendimus;
  3. Aptarti, įvertinti ir optimizuoti projektavimo sprendimus;
  4. Programuoti pagal sukurtą architektūrą;
  5. Tikrinti ar programinis kodas nenukrypo nuo sukurtos architektūros.

Projektavimo veikla programinės įrangos kūrimo proceso kontekste

1 paveikslas. Projektavimo veikla programinės įrangos kūrimo proceso kontekste

Programinės įrangos kūrimo inžinerinių veiklų eiliškumas nepriklausomai nuo pasirinkto modelio visada yra Reikalavimai -> Projektavimas -> Programavimas -> Testavimas. Viso projekto metu vyksta ir valdymo veiklos – projekto valdymas bei kokybės valdymas. Dažnai valdymo veiklos akcentuoja tik išorines inžinerines veiklas: projekto valdymas – reikalavimus, o kokybės valdymas – testavimą. Projektavimas ir programavimas yra vidinės veiklos, kurių tiesiogiai nemato programinės įrangos užsakovai. Todėl jos paprastai yra mažiau kontroliuojamos projektų vadovų. Programinė įranga vertinama pagal atitikimą reikalavimams ir kokybę, kuri dažnai siejama su testavimo veikla. Tačiau iš tikrųjų testavimas leidžia tik patikrinti kokybę ir atrasti defektus, o pati kokybė ir kitos programinės įrangos savybės, tokios kaip palaikomumas, greitis, našumas, tiesiogiai priklauso nuo projektavimo sprendimų.

UML modeliavimo kalbos panaudojimas, projektuojant programinę įrangą

Šiuo metu programinės įrangos industrijoje yra plačiai naudojama UML (Unified Modeling Language) modeliavimo kalba, leidžianti aprašyti projektavimo sprendimus. UML yra vizuali kalba, apibrėžianti grafinę notaciją, skirtą įvairių programinės įrangos architektūros aspektų modeliavimui. Sakoma, kad paveikslėlis vertas tūkstančio žodžių, o UML modelis dar daugiau. UML modeliai taip pat dar vadinami programinės įrangos žemėlapiais – jie leidžia greičiau ir lengviau suprasti programinės įrangos struktūrą ir veikimo principus, todėl yra efektyviai panaudojami programinės įrangos architektūros dokumentavimui bei projektavimo sprendimų aptarimui. Programinės įrangos rinkoje siūloma daug brandžių UML įrankių, leidžiančių patogiai ir efektyviai modeliuoti projektavimo sprendimus. „MagicDraw UML“, kuris kuriamas UAB „Baltijos programinės įranga“ darbuotojų pagal „No Magic, Inc.“ užsakymą, yra vienas žinomiausių pasaulyje UML įrankių. Tai įrodo ir gauti prestižiniai tarptautinių žurnalų apdovanojimai – „JDJ Readers’ Choice Award ir Jolt Productivity Award“.

Praktinės projektavimo problemos

Reikia pripažinti, kad praktikoje taikomi projektavimo metodai dažnai neduoda naudos, kurią akcentuoja teorija. Lietuvoje projektavimo praktikos taip pat dar nėra nusistovėjusios. Šių pastebėjimų dėka galima teigti, kad ir pats projektavimas nėra stipriai akcentuojama veikla:

  • programinę įrangą kuriančiose kompanijose dažnai nėra išskirta sistemų architekto specializacija;
  • daug programinę įrangą kuriančių įmonių nenaudoja programinės įrangos projektavimui skirtos UML modeliavimo kalbos ir jai specializuotų įrankių;
  • programinės įrangos architektūros dokumentacija dažnai nėra ruošiama.

Viena neefektyvaus projektavimo priežasčių – per daug detaliai modeliuojami dažnai kintantys realizacijos lygio aspektai, tuo tarpu aukštesnio lygio sistemos architektūros projektavimas vykdomas nepakankamai. Todėl dažnai projektavimo modeliai vertinami pagal detalumo lygį, tačiau nepastebimi prasti projektavimo sprendimai, kuriuose nesilaikoma projektavimo principų. Taip pat nėra išlaikomi ryšiai tarp reikalavimų analizės, aukšto lygio architektūrinių sprendimų bei detalių realizacijos sprendimų modelių – neišskiriami ir nesusiejami skirtingi modeliavimo abstrakcijos lygiai. Daugelyje įmonių nėra naudojama UML modeliavimo kalba, o projektavimo sprendimai aprašomi tekstu arba paprastomis diagramomis, nenaudojant sutartinės notacijos. Tai sukelia komunikacijos problemų bei apriboja projektavimo sprendimų dokumentavimo galimybes.

UAB „Baltijos programinė įranga“ pirmieji projektai, kuriuose buvo pradėtas naudoti modeliavimas UML kalba, taip pat pateko į pernelyg detalaus modeliavimo „spąstus“. Dėl didelio entuziazmo taikant naują technologiją, buvo pernelyg detaliai modeliuojamos realizacijos lygio klasių diagramos, kuriose tiksliai specifikuojami klasių metodai ir atributai. Buvo paruošta išsami programinės įrangos architektūros dokumentacija, o iš paruoštų detalių realizacijos lygio diagramų sugeneruota pradinė programinio kodo struktūra. Tačiau, pradėjus programuoti, daug detalių ėmė keistis dėl įvairių iš anksto nenumatytų aspektų, o paruoštas detalias realizacijos diagramas teko dažnai atnaujinti, kad jos būtų sinchronizuotos su kodu. Tai tapo nuobodžiu ir daug laiko užimančiu darbu, kuris nedavė realios naudos, todėl sinchronizavimas buvo apleistas. Projekto eigoje dauguma detalių diagramų nebeatitiko programinio kodo struktūros, todėl tapo nevertingos ir nebuvo naudojamos. Tuo tarpu pagrindinius architektūros sprendimus akcentuojančios mažesnio detalumo diagramos pakito minimaliai ir buvo dažnai naudojamos aptariant įvairius sistemos realizacijos aspektus.

Praktiniai patarimai, kaip efektyviau projektuoti programinės įrangos architektūrą

Apie tai galite paskaityti skyriuje „Naudingi patarimai“.

Žvilgsnis į ateitį

Lietuvoje po truputį auga dėmesys geriems projektavimo sprendimams ir pačiai projektavimo veiklai: domimasi projektavimo ir UML modeliavimo kalbos mokymais ir konsultacijomis, daugėja kompanijų, kurios įsigyja ir naudoja UML įrankius, apsibrėžia projektavimo dokumentų ruošinius ir dokumentavimo stilių, įveda programinės įrangos architektų specializaciją. Projektavimo, naudojant UML modeliavimo kalbą, disciplinos jau yra dėstomos informatikos specialybės studentams daugumoje universitetų (VDU, KTU, VU ir kt.). Lietuvos programinės įrangos kūrimo pramonė plečiasi, o kartu auga ir poreikis kurti didesnės apimties programinės įrangos sistemas, kur programinės įrangos architektūros projektavimas tampa vis svarbesnis. Lietuvos IT darbo kaštai jau priartėjo prie kitų Europos šalių, tokių kaip Vokietija, Anglija, Prancūzija, todėl reikia kelti programinės įrangos kokybę ir darbo efektyvumą. Efektyvus kokybiškos didelės apimties programinės įrangos kūrimas neįmanomas be profesionalaus projektavimo, todėl mes esame įsitikinę, kad ir toliau augs poreikis projektavimo žinioms, priemonėms ir metodams.

Bibliotekos informacinės sistemos projektavimo pavyzdžiai

Pateiksime UML kalba sumodeliuotų projektavimo sprendimų pavyzdžius bibliotekos informacinei sistemai.

Architektūrinės struktūros modeliavimas

2 paveikslas. Bibliotekos informacinės sistemos išskaidymas į modulius bei realizacijos architektūra

Antrame paveiksle esančioje diagramoje pavaizduota kuriamos sistemos techninės realizacijos infrastruktūra, pagrindiniai programinės įrangos komponentai, jų priklausomybės ryšiai, realizacijos technologijos bei protokolai, kuriais jie bendraus. Detalesniame lygyje būtų galima nurodyti ir komponentų bendravimo sąsajų struktūras, tačiau šiuo metu jos yra neaiškios ir neišvengiamai kis, todėl nėra modeliuojamos.

3 paveikslas. Bibliotekos sistemos viršutinio lygio paketų išskaidymas

Trečiame paveiksle pavaizduota viršutinio lygio paketų išskaidymo struktūra, kur sumodeliuoti priklausomybės ryšiai. Paketų struktūra suprojektuota pagal rekomenduotą sluoksniuotos architektūros principą, taikant MVC šabloną, ir išskiriant bendrai naudojamas klases į atskirą paketą. Paketų priklausomybės ryšiai nesudaro ciklų, priklausomybės ryšiai suformuoti stabilumo kryptimi, kadangi paprastai vartotojo sąsaja keičiasi dažniausiai, verslo logika keičiasi rečiau, duomenų valdymas ir duomenų klasių struktūros – rečiausiai. Reikėtų pabrėžti, kad dauguma UML įrankių leidžia atstatyti modelį iš programinio kodo ir atsekti, ar neatsirado papildomų ryšių, kurie dažnai indikuoja programavimo nusižengimus projektavimo sprendimams.

Duomenų klasių modeliavimas

Duomenys yra svarbiausia informacinių sistemų dalis, todėl juos reikia išanalizuoti ir sumodeliuoti įvairiuose abstrakcijos lygiuose – vartotojo suprantamus ryšius, klasių ir duomenų bazių realizacijos struktūras.

4 paveikslas. Konceptualus duomenų klasių ryšių modeliavimas.

Ketvirtame paveiksle pateiktas konceptualus duomenų klasių modelis, kuriame akcentuojami loginiai ryšiai, nenagrinėjant jų vidinių savybių. Tokios diagramos leidžia aptarti duomenų sąryšius su vartotojais, padeda analizuoti reikalavimus, ir yra pirminis šaltinis realizacijos duomenų klasių modeliavimui.

5 paveikslas. Realizacijos duomenų klasių modeliavimas.

Penktame paveiksle pateikta objektinė realizacijos duomenų struktūra, kurioje konceptualaus duomenų klasių struktūra transformuojama, pritaikant ją realizacijai: pridedant klasių savybių atributus ir nurodant Java programavimo kalbos duomenų tipus. Šis pavyzdys iliustruoja modeliavimą skirtinguose abstrakcijos lygiuose.

Detalus servisų sąsajų metodų modeliavimas

Programinės įrangos funkcionalumas tiesiogiai atspindimas veiklos logikos servisų sąsajų metoduose, kurie dažniausiai yra detaliai modeliuojami. Prisimenant modeliavimą skirtinguose abstrakcijos lygiuose, galima teigti, kad reikalavimų analizei naudojami panaudojimo atvejai turi išlaikyti atitikmenis veiklos logikos servisuose. Šeštame paveiksle pavaizduota detali bibliotekos logikos servisų sąsajos paketo struktūra. Joje akcentuojami sąsajų metodai ir klasė „ServiceFactory“, kuri bus atsakinga už konkrečių servisų realizacijų sukūrimą ir pateikimą.

6 paveikslas. Detalus bibliotekos servisų sąsajų modelis.


BPI




Draudžiama platinti, skelbti, kopijuoti
informaciją su nurodyta autoriaus teisių žyma be redakcijos sutikimo.

Global electronic components distributor – Allicdata Electronics

TMS ELECTRONICS
TMS ELECTRONICS

www.rslietuva.com – nemokamas elektronikos komponentų pristatymas

ENEBA's game store

Lietuvos mokinių neformaliojo švietimo centras

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Technologijos.lt

Mokslo festivalis „Erdvėlaivis Žemė

www.esaugumas.lt – apsaugok savo kompiuterį!

LTV.LT - lietuviškų tinklalapių vitrina

www.matuok.lt - Interneto spartos matavimo sistema

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

MRO Supply


Reklama
‡ 1999–2020 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Farming Simulator 2017 Mods, FS 17 Mods
ls2017.com
„TV programa“ – tiksli
televizijos programa

www.tvprograma.lt
Lietuvos mokinių neformaliojo švietimo centras
www.lmnsc.lt
Ilgalaikiai kreditai, paskola už automobilį, kreditų skaičiuoklė
www.mokilizingas.lt
Lietuvių kalba informacinėse technologijose
www.likit.lt
Mokslo festivalis „Erdvėlaivis žemė“
MoksloFestivalis.lt
Mokslo ir technologijų pasaulis – naujienos ir straipsniai
www.technologijos.lt
Farming Simulator 2019 Mods, FS19 Tractors, FS19 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – geriausių lietuviškų tinklalapių katalogas
www.ltv.lt/technologijos/
FS19 Mods, FS17 Mods, FS15 Mods
www.farming2015mods.com
Mokslo populiarinimo projektas „Mokslas verslui ir visuomenei“
www.mokslasplius.lt
Reklama


Reklama