―Proqram mühəndisliyinin aktual elmi-praktiki problemləri‖ I respublika konfransı, Bakı, 17 may 2017-ci il
10
Proqram Mühəndisliyinin Elmi-Nəzəri Əsasları
Haqqında
Tofiq Kazımov
1
,
Tamilla Bayramova
2
AMEA Ġnformasiya Texnologiyaları Ġnstitutu, Bakı, Azərbaycan
1
tofig@mail.ru,
2
tamilla@iit.ab.az
Xülasə— Bu işdə proqram mühəndisliyinin elmi, mühəndis və
təcrübi istiqamətdə sistemli təhlili verilmişdir. Proqram
mühəndisliyinin həyat dövrü proseslərinin işlənilməsi üçün
SWEBOK biliklər bazasının, standartların, infrastrukturun və
menecmentin
rolu
əsaslandırılmışdır.
Hazır
proqram
komponentlərindən istifadə edərək proqram məhsullarının
işlənilməsinin mühəndis və təcrübi aspektləri araşdırılmışdır.
Açar sözlər—
proqram mühəndisliyi, proqram mühəndisliyinin
elmi-nəzəri
əsasları, mühəndislik fənni, proqramlaşdırma
metodları, təkrar istifadə edilən komponentlər, baza prosesləri,
infrastruktur, standartlar
I.
GĠRĠġ
Proqram mühəndisliyi (PM) proqram təminatının (PT)
iĢlənməsi, istifadə və müĢaiyət
edilməsinə sistematik,
intizamlı, ölçülə bilən yanaĢmanın tətbiq edilməsidir [1].
Ġlk dəfə Software Engineering termini 1968-ci ildə NATO-
nun, üçüncü nəsil hesablama texnikasının tətbiqi nəticəsində
―proqram təminatında yaranmıĢ böhrana‖ həsr edilmiĢ
konfransında irəli sürülüb [2]. Elə həmin ildə Londonda PT-
nin iĢlənilməsi üzrə 22 layihə rəhbərinin görüĢündə PT-nin
problem və perspektivləri müzakirə edildi və ilk dəfə PT-nin
həyat dövrü (SLC – Software Lifetime Cycle) konsepsiyası
irəli sürüldü. 1970 ildə U.U.Roys (W.W.Royce) belə bir
fikir
irəli sürdü ki, həyat dövrünün mərhələləri üzərində nəzarətin
olması PT-nin keyfiyyətini artırmağa və onun iĢlənilməsinə
çəkilən xərcləri azaltmağa imkan verəcək [3].
Mürəkkəb sistemlərin həyat dövrü sistemin yaradılması
ideyasından baĢlayır, tələblərin təyin edilməsi, layihələndirmə,
proqramlaĢdırma, sınaq, tətbiq edilmə, sistemin müĢayiət
edilməsi və istismardan çıxarılması ilə sona çatır. Sistemin
həyat dövrü modelini ardıcıl yerinə
yetirilən mərhələlərə
bölürlər. Hər mərhələdə onda yerinə yetiriləcək proseslər,
məsələlər və iĢlər göstərilir, standartlar və istifadə ediləcək
metodlar təyin edilir.
Əgər PT-nin yaradılması sistemsiz və nizamlanmamıĢ
proses olarsa keyfiyyətli proqram təminatını iĢlənilməsindən
danıĢmaq olmaz. Ciddi reqlamentləĢdirilmiĢ proseslərin tətbiqi
keyfiyyətli proqram təminatının yaradılmasında ilk addımdır.
PM-in
əsas məqsədi PT-nin istehsalı prosesini
dəstəkləmək, maksimal effektivliyə
və keyfiyyətə nail olmaq
üçün vasitə, metod və nəzəriyyələrin iĢlənilməsindən ibarətdir
[4].
Aparat platformalarının fasiləsiz Ģəkildə inkiĢaf etməsi,
eyni zamanda, onların sənaye və istehsalatın müxtəlif
sahələrində tətbiqinin getdikcə artması proqram təminatına
olan tələbatı daha da artırır. Bununla yanaĢı, proqramlaĢdırma
texnologiyaları da dayanmadan inkiĢaf edir.
II.
PROQRAM
MÜHƏNDĠSLĠYĠNĠN
NƏZƏRĠ
ƏSASLARI
Proqram mühəndisliyi hansı sahəyə daha yaxındır: sənət,
elm və ya mühəndislik?
sənət
xidmət göstərmək və məmulatların hazırlanması
üçün ənənəvi üsulları tətbiq edir və bu həm də fərdi
yaradıcılıq qabiliyyətidir;
elm
tədqiqatlar vasitəsilə toplanmıĢ bilikləri və
ixtiraları yığır, yoxlayır və sənədləĢdirir;
mühəndislik
texniki məmulatların iĢlənilməsi və
hazırlanması üçün bilikləri və elmi cəhətdən
əsaslandırılmıĢ metodları tətbiq edir.
Ġlk illərdə proqramlaĢdırma bir adamın yaradıcı
əməyi
olduğundan onu sənət hesab etmək olardı. Lakin hal-hazırda
proqram mühəndisliyinin uğur qazanması üçün PT-nin
təkamülünün müxtəlif aspektləri haqqında biliklərin olması
zəruridir: texnologiyalar (avadanlıq, əməliyyat sistemləri,
proqramlaĢdırma dilləri), tələblərin iĢlənilməsi, arxitekturun
layihələndirilməsi, proqramın kodunun keyfiyyətinin təmin
edilməsi, onun inteqrasiya və verifikasiya məsələləri, proqram
sistemlərinin modifikasiya və təkmilləĢdirilməsi, iĢin təĢkili,
konkret fənn
sahəsi üzrə biliklərin olmas, PT-nin sosial və
iqtisadi aspektləri, proqram mühəndislərinin etik normaları,
marketinq və sahibkarlıq.
Bütün bu göstərilən məsələlərin həlli üçün yeni metodlar
lazımdır və nəzəriyyəni bilmədən bunları həyata keçirmək
mümkün deyil. Ona görə də demək olar ki, PM bir fənn kimi
özündə
həm elmi, həm də mühəndislik biliklərini
birləĢdirməlidir.
Proqram
mühəndisləri
proqram
sistemlərinin
layihələndirilməsi və iĢlənilməsi zamanı həm elmi (riyazi,
iqtisadi və sosial), həm də təcrübi biliklərdən istifadə edirlər.
Son illərdə proqramların konveyer prinsipi əsasında hazır
modullardan (reuse, application, asset provision və s. kimi)
yığılmasına
baĢlanmıĢdır.
Proqram
məhsullarının
avtomatlaĢdırılma vasitələri kimi instrumental-texnoloji
sistemlər və mühitlərdən istifadə edilir [5].
Məlumdur ki, istənilən elm digər elm sahələri ilə qarĢılıqlı
əlaqəlidir. Proqram mühəndisliyi mühəndislik, informatika və
riyaziyyatın qarĢılıqlı inteqrasiyasından ibarətdir. Onun
DOI: 10.25045/NCSoftEng.2017.01