Elektronika.lt
 2024 m. kovo 28 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
Kovo 28 d. 17:25
NASA „BurstCube“ palydovas paleistas tirti galingiausius sprogimus kosmose
Kovo 28 d. 14:50
„Logitech“ pristato „Signature Slim“ klaviatūrą ir darbo bei gyvenimo derinį prie rašomojo stalo
Kovo 28 d. 11:17
Kaip atrodys mokslai, studijos ir darbas DI eroje: pagrindiniai parodos „Karjera & studijos Lietuvoje“ akcentai
Kovo 28 d. 08:52
Jungikliai pagaminti iš atliekų – naujovė tvariems namams
Kovo 27 d. 20:30
Saulės elektrinė – daugiabučio balkone: ar tai įmanoma Lietuvoje? (1)
Kovo 27 d. 18:19
4 išmanūs sprendimai, leidžiantys efektyviai taupyti elektrą
Kovo 27 d. 16:36
Ekspertė apie dirbtinį intelektą ir darbuotojų produktyvumą: „Svarbu suprasti, jog nėra vieno stebuklingo įrankio, kuris išspręstų visas problemas“
Kovo 27 d. 14:14
„Philips Monitors“ E1 serija turės tris naujus daugiafunkcinius modelius, skirtus hibridiniam ir nuotoliniam darbui
Kovo 27 d. 12:43
Reikalavimas elektrifikuoti penktadalį stovėjimo vietų glumina verslą: nukentės galutiniai vartotojai
Kovo 27 d. 10:37
KTU mokslininkų ir partnerių bendras darbas: virtuali realybė padės mokantis chirurgijos
FS 22 Tractors
Farming Simulator 19 Mods, FS 22 Maps, FS22 Mods
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS22 Trucks
VAT calculator
VAT number check, What is VAT, How much is VAT
Paskola internetu
Vartojimo paskola, paskola automobiliui, paskola būsto remontui
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS22 Mods
FS22 Harvesters, FS22 Tractors Mods, FS22 Maps Mods
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting
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

Electronic component supply – „Eurodis Electronics“

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

Full feature custom PCB prototype service

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

„Deinavos baldai“ — šeimos baldai


Reklama
‡ 1999–2024 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Script hook v, Openiv, Menyoo
gta5mod.net
Farming Simulator 2019 Mods, FS22 Mods, FS22 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama