Elektronika.lt
 2024 m. lapkričio 5 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
Lapkričio 4 d. 20:23
„Hyundai“ pristato „Initium“ – naujos kartos vandenilio kuro visureigį
Lapkričio 4 d. 17:23
KTU mokslininkas apie DI ir automatizacijos paradoksą: pakeisdamos žmogų, jos kuria naujas darbo vietas
Lapkričio 4 d. 14:55
Rizikos zona ar galimybės verslui? Kokios grėsmės tyko naudojančių dirbtinį intelektą
Lapkričio 4 d. 11:33
„NanoAvionics“ palydovas nufotografavo Lietuvą iš kosmoso – skriejo aukščiau nei Tarptautinė kosminė stotis
Lapkričio 4 d. 08:23
„Volvo Trucks“ pristato naujos kartos saugumo sistemas pėstiesiems ir dviratininkams apsaugoti
Lapkričio 3 d. 17:23
Žaliasis vandenilis pramonėje: Lietuvos ir Vokietijos mokslininkai siūlo aplinkai nekenksmingą technologiją
Lapkričio 3 d. 11:29
Patarė, kaip išsirinkti EV įkrovimo stotelę: efektyvumą garantuoja tinkama elektromobilio ir įkroviklio kombinacija
Lapkričio 2 d. 17:35
Lietuvos ateities transportas: nuo skraidančių automobilių iki 240 km/h lekiančių traukinių
Lapkričio 2 d. 11:19
„Adobe“ vieną iš savo programų padarė nemokama
Lapkričio 1 d. 17:43
Tikroji energetinė laisvė – globaliai konkurencingos kainos
FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 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

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

Draugiškas internetas


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
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
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