Proqram modullarının modul proqramı inkişafı. "Kompüter sistemləri üçün proqram modullarının hazırlanması" peşəkar modulu üçün təlim praktikasının iş proqramı. Proqram təminatının tamlığının təmin edilməsi

Proqram modulunun hazırlanması qaydası.

  • 1. modulun spesifikasiyasını öyrənmək və yoxlamaq, proqramlaşdırma dili seçmək; (yəni, spesifikasiyanı öyrənən geliştirici, modulu kifayət qədər tam təsvir etdiyini başa düşdüyünü və ya anlamadığını öyrənir; sonra proqramlaşdırma dili eyni ola bilsə də, modulun yazılacağı proqramlaşdırma dilini seçir. bütün proqram sistemi)
  • 2. bir alqoritm və məlumat quruluşunun seçilməsi (burada problemi həll etmək üçün hər hansı bir alqoritmin bilinib -bilinməməsi məlumdur və əgər varsa istifadə edin)
  • 3. modulun proqramlaşdırılması (proqram kodunun yazılması)
  • 4. modul mətnini cilalamaq (mövcud şərhləri redaktə etmək, tələb olunan keyfiyyəti təmin etmək üçün əlavə şərhlər əlavə etmək)
  • 5. modulu yoxlayın (modulun məntiqi yoxlanılır, işi düzəldilir)

Proqram modulunu idarə etmək üçün aşağıdakı üsullardan istifadə olunur:

  • - modul mətninin statik yoxlanılması (moduldakı səhvləri tapmaq üçün mətn əvvəldən sona qədər oxunur. Adətən belə bir yoxlamaya modul hazırlayıcısından əlavə bir və ya bir neçə proqramçı da cəlb olunur. belə bir yoxlama zamanı tapılan səhvlər dərhal düzəldilmir, ancaq modulun mətnini oxuduqdan sonra)
  • -uçtan uca izləmə (modulun icrası əl ilə sürüşdürülür (operator tərəfindən modulun məntiqindən irəli gələn ardıcıllıqla) müəyyən bir test dəsti üzərində)
  • 6. modulun tərtib edilməsi.

Strukturlaşdırılmış proqramlaşdırma.

Bu gün ən populyar proqramlaşdırma texnikası yuxarıdan aşağıya qurulmuş proqramlaşdırmadır.

Strukturlaşdırılmış proqramlaşdırma, xüsusi reseptlərin asanlıqla yazılacağı elementləri əldə etmək üçün bir alqoritmi addım -addım kiçik və kiçik hissələrə ayırmaq prosesidir.

Strukturlaşdırılmış proqramlaşdırmanın iki prinsipi:

  • 1. "yuxarıdan aşağıya" ardıcıl təfərrüatlar
  • 2. hər hansı bir mürəkkəblik alqoritmi qurmaq üçün əsas struktur dəstinin məhdudlaşdırılması

Strukturlaşdırılmış proqramlaşdırma tələbləri:

  • 1. proqram kiçik addımlarla tərtib edilməlidir, beləliklə mürəkkəb bir vəzifə kifayət qədər sadə, asanlıqla qəbul edilən hissələrə bölünür.
  • 2. proqramın məntiqi kifayət qədər əsas idarəetmə strukturlarının minimum sayına əsaslanmalıdır (xətti, budaqlanan və dövri quruluşlar)

Strukturlaşdırılmış proqramlaşdırmanın əsas xüsusiyyətləri və üstünlükləri:

  • 1. proqramların mürəkkəbliyini azaltmaq
  • 2. problemin müxtəlif mərhələlərində proqramların düzgünlüyünü nümayiş etdirmək bacarığı
  • 3. proqramların görünməsi
  • 4. proqramların dəyişdirilməsinin (dəyişikliklərin edilməsi) sadəliyi.

Müasir proqramlaşdırma vasitələri, mümkün geliştirici səhvlərindən maksimum qorunma təmin etməlidir.

Avtomobil idarəetmə metodlarının inkişafı ilə burada bir bənzətmə edilə bilər. Əvvəlcə yol hərəkəti qaydalarının inkişafı ilə təhlükəsizlik təmin edildi. Sonra yol nişanı və kəsişmə idarəetmə sistemi gəldi. Və nəhayət, prinsipcə, avtomobillərin və piyadaların nəqliyyat axınının kəsişməsini maneə törədən yol qovşaqları tikilməyə başladı. Bununla birlikdə, istifadə olunan vasitələr həll ediləcək problemin xarakteri ilə müəyyən edilməlidir: bir kənd yolu üçün sadə bir qaydaya riayət etmək kifayətdir - "ayaqlarına və tərəflərinə bax".

Strukturlaşdırılmış proqramlaşdırmanın əsas fikri: proqram, hər birinin bir girişi və bir çıxışı olan iyerarxik ağac quruluşunda birləşdirilmiş bir bloklar dəsti olmalıdır.

Hər hansı bir proqram yalnız üç əsas növ blokdan istifadə etməklə qurula bilər:

  • 1. funksional blok - ayrı bir xətti operator və ya onların ardıcıllığı;
  • 2. filial - Əgər
  • 3. ümumiləşdirilmiş döngə - Tip qurarkən

Bu strukturların hər birinin nəzarət üçün yalnız bir girişi və bir çıxışı olması vacibdir. Beləliklə, ümumiləşdirilmiş operatorun yalnız bir girişi və bir çıxışı var.

Strukturlaşdırılmış proqramlaşdırma bəzən "proqramlaşdırmaya getmə" olaraq adlandırılır. Ancaq burada məqsəd GO GO ifadəsində deyil, nizamsız istifadəsindədir. Çox vaxt, bəzi proqramlaşdırma dillərində strukturlaşdırılmış proqramlaşdırma həyata keçirilərkən, keçid operatoru (GO TO) strukturlaşdırılmış proqramlaşdırmanın əsas üstünlüklərini azaltmadan strukturlaşdırılmış konstruksiyaları həyata keçirmək üçün istifadə olunur. Proqramı, xüsusən də yuxarıdakı modul mətnində (əvvəllər) yerinə yetirilən atlama operatorunda yerləşən operatora atlamağı qarışdıran "qeyri-struktur" atlama operatorlarıdır. Buna baxmayaraq, bəzi sadə hallarda filial operatorundan qaçmaq cəhdi, aydınlığını artırmayan və modulun mətnində əlavə səhvlərin olma təhlükəsini ehtiva edən çox çətin strukturlaşdırılmış proqramlara səbəb ola bilər. Buna görə də, proqramın aydınlığı bahasına deyil, mümkün olduqda atlama operatorundan istifadə etməməyi tövsiyə edə bilərik.

Atlama operatorundan istifadə etmənin faydalı halları arasında, müəyyən bir dövrün və ya müəyyən bir prosedurun işini "vaxtından əvvəl" dayandıran xüsusi bir şərtlə bir döngə və ya prosedurdan çıxmaq daxildir. bəzi struktur bölmələrinin (ümumiləşdirilmiş operatorun) işini dayandırmaq və beləliklə proqramın strukturlaşdırılmasını yalnız lokal şəkildə pozmaq. Böyük çətinliklər (və quruluşun mürəkkəbliyi) ortaya çıxan müstəsna (çox vaxt səhv) vəziyyətlərə reaksiyanın struktur tətbiqindən qaynaqlanır, çünki bunun üçün yalnız struktur bölmədən erkən çıxmaq deyil, həm də bu vəziyyətin lazımi şəkildə işlənməsi lazımdır ( məsələn, uyğun diaqnostik məlumatların verilməsi). İstisna işləyicisi istənilən səviyyədə ola bilər proqram quruluşu və müxtəlif aşağı səviyyələrdən əldə edilə bilər. İstisna vəziyyətlərə cavabın aşağıdakı "qeyri-struktur" tətbiqi texnoloji baxımdan olduqca məqbuldur. İstisna işləyicilər bu və ya digər struktur bölmənin sonuna yerləşdirilir və hər bir işçi işini bitirdikdən sonra yerləşdirildiyi struktur bölmədən çıxacaq şəkildə proqramlaşdırılır. Belə bir idarəçiyə zəng, verilən struktur bölmədən (içərisində qurulmuş hər hansı bir struktur vahidi daxil olmaqla) keçid operatoru tərəfindən edilir.

Ümumiyyətlə, strukturlaşdırılmış proqramlaşdırmada əsas şey dil vasitəsi ilə həyata keçirilməsi ikinci dərəcəli məsələ olan proqramın düzgün məntiqi sxeminin səriştəli tərtib edilməsidir.

    J. Hughes, J. Michtom. Proqramlaşdırmaya strukturlaşdırılmış bir yanaşma. - M.: Mir, 1980. - s. 29-71.

    V. Turski. Proqramlaşdırma metodologiyası. - M.: Mir, 1981 .-- s. 90-164.

    E.A. Zhogolev. Modul proqramlaşdırmanın texnoloji əsasları // Proqramlaşdırma, 1980, no. - s.44-49.

    R.C. Holt. Kompüter proqramlarının quruluşu: bir araşdırma // IEEE, 1975, 63 (6). - səh. 879-893.

    G. Myers. Etibarlılıq proqram təminatı... - M.: Mir, 1980.- s. 92-113.

    Ya Pyle. ADA, quraşdırılmış sistemlərin dilidir. M.: Maliyyə və statistika, 1984. - s. 67-75.

    M. Zelkovets, A. Shaw, J. Gannon. Proqram təminatının hazırlanması prinsipləri. - M.: Mir, 1982, s. 65-71.

    A.L. Fuksman. Proqram sistemlərinin yaradılmasının texnoloji aspektləri. M.: Statistika, 1979. - s. 79-94.

  1. Mühazirə 8. Proqram modulunun hazırlanması

  2. Proqram modulunun hazırlanması qaydası. Strukturlaşdırılmış proqramlaşdırma və addım -addım detallar. Pseudocode anlayışı. Proqram moduluna nəzarət.

  3. 8.1. Proqram modulunun hazırlanması qaydası.

  4. Bir proqram modulu hazırlayarkən aşağıdakı qaydalara riayət etmək məsləhət görülür:

    modulun xüsusiyyətlərini öyrənmək və yoxlamaq, dil seçmək

    proqramlaşdırma;

    alqoritm və məlumat quruluşu seçimi;

    modul proqramlaşdırma;

    modul mətninin cilalanması;

    modul yoxlama;

    modulun tərtib edilməsi.

    Proqram modulunun hazırlanmasında ilk addım, əsasən proqram quruluşunun aşağıdan bitişik nəzarətidir: modul spesifikasiyasını öyrənərək, geliştirici bunun ona aydın olduğunu və bu modulun inkişafı üçün kifayət qədər olduğundan əmin olmalıdır. Bu addımın sonunda bir proqramlaşdırma dili seçilir: proqramlaşdırma dili bütün proqram sistemi üçün əvvəlcədən təyin olunsa da, bəzi hallarda (proqramlaşdırma sistemi icazə verərsə) daha uyğun olan başqa bir dil seçilə bilər. həyata keçirilməsi üçün. bu moduldan(məsələn, montaj dili).

    Proqram modulunun inkişafının ikinci mərhələsində, qoyulan problemin həlli üçün və ya ona yaxın olan hər hansı bir alqoritmin artıq məlum olub olmadığını öyrənmək lazımdır. Və uyğun bir alqoritm tapılarsa, ondan istifadə etmək məsləhətdir. Bir modul öz funksiyalarını yerinə yetirərkən istifadə ediləcək uyğun məlumat strukturlarının seçilməsi, inkişaf etdirilən modulun məntiqini və keyfiyyət göstəricilərini əvvəlcədən müəyyən edir, buna görə də çox məsuliyyətli bir qərar kimi qiymətləndirilməlidir.

    Üçüncü addımda modulun mətni seçilmiş proqramlaşdırma dilində qurulur. Modul spesifikasiyasında göstərilən funksiyaları həyata keçirərkən nəzərə alınması lazım olan hər cür detalların bolluğu asanlıqla çoxlu səhvlər və qeyri -dəqiqliklər ehtiva edən çox qarışıq bir mətnin yaranmasına səbəb ola bilər. Belə bir modulda səhv tapmaq və ona lazımi dəyişikliklər etmək çox vaxt aparan bir iş ola bilər. Buna görə də, modulun mətnini qurmaq üçün texnoloji cəhətdən sağlam və praktiki olaraq sübut edilmiş proqramlaşdırma intizamından istifadə etmək çox vacibdir. İlk dəfə Dijkstra, strukturlaşdırılmış proqramlaşdırmanın əsas prinsiplərini formalaşdıraraq əsaslandıraraq buna diqqət çəkdi. Praktikada geniş istifadə olunan bir çox proqramlaşdırma fənni bu prinsiplərə əsaslanır. Ən çox yayılmış nizam -intizam, 8.2 və 8.3 -cü bölmələrdə ətraflı şəkildə müzakirə olunan artan incəlikdir.

    Modulun inkişafındakı növbəti addım, proqramın keyfiyyətinin spesifikasiyasına uyğun olaraq modulun mətninin tam formaya gətirilməsi ilə bağlıdır. Bir modul proqramlaşdırarkən, geliştirici, modulun funksiyalarının düzgün yerinə yetirilməsinə diqqət yetirir, natamam şərhlər buraxır və proqram tərzi üçün tələblərin bəzi pozuntularına yol verir. Modulun mətnini cilalayarkən, lazım olan keyfiyyət primitivlərini təmin etmək üçün mətndəki mövcud şərhləri redaktə etməli və ehtimal ki, ona əlavə şərhlər daxil etməlidir. Eyni məqsəd üçün proqramın mətni üslub tələblərinə uyğun olaraq düzəldilir.

    Modul yoxlama addımı, modulun ayıklanmadan əvvəl daxili məntiqinin əl ilə yoxlanılmasıdır (kompüterdə icrasından istifadə etməklə), müzakirə olunan proqramlaşdırma texnologiyası üçün formalaşdırılmış ümumi prinsipi, hər bir mərhələdə verilən qərarlara nəzarət edilməsinin zəruriliyini həyata keçirir. proqram təminatının inkişafı (bax. Mühazirə 3). Modulun doğrulama üsulları Bölmə 8.4 -də müzakirə olunur.

    Və nəhayət, bir modulun inkişafındakı son addım, modulun yoxlanılmasını tamamlamaq (tərtibçinin köməyi ilə) və modulun ayıklama prosesinə keçmək deməkdir.

  5. 8.2. Strukturlaşdırılmış proqramlaşdırma.

  6. Bir modulu proqramlaşdırarkən, proqramın yalnız bir kompüter üçün deyil, həm də bir insan üçün başa düşülməsi lazım olduğunu nəzərə almaq lazımdır: həm modulu hazırlayan, həm də modulu yoxlayan şəxslər, həm də ayıklama üçün testlər hazırlayan mətnçilər. modul və modul üçün lazımi dəyişiklikləri edən PS işçiləri, modulun məntiqini dəfələrlə sökməli olacaqlar. Müasir proqramlaşdırma dillərində bu məntiqi istədiyiniz qədər qarışdırmaq üçün kifayət qədər vasitələr var ki, bu da modulu insanların başa düşməsini çətinləşdirir və nəticədə etibarsız və ya saxlanmasını çətinləşdirir. Buna görə uyğun dil vasitələrini seçmək və xüsusi bir proqramlaşdırma intizamına riayət etmək üçün addımlar atmaq lazımdır. İlk dəfə Dijkstra buna diqqət çəkdi və proqramın məntiq anlayışını xeyli artıra biləcək bir neçə növ idarəetmə quruluşundan (quruluşundan) ibarət bir proqram qurmağı təklif etdi. Yalnız belə konstruksiyalardan istifadə edərək proqramlaşdırma struktur adlanırdı.

    Strukturlaşdırılmış proqramlaşdırmanın əsas quruluşları bunlardır: izləmə, bölmə və təkrarlama (bax Şəkil 8.1). Bu konstruksiyaların komponentləri ümumiləşdirilmiş operatorlardır (işlənmə qovşaqları) S, S1, S2 və şərt (predikat) P. Ümumiləşdirilmiş operator ya istifadə olunan proqramlaşdırma dilinin sadə operatoru ola bilər (təyinat, giriş, çıxış, prosedur zəng operatorları) və ya əsas strukturlaşdırılmış proqramlaşdırma idarəetmə konstruksiyalarından ibarət olan bir proqram parçası. Bu strukturların hər birinin nəzarət üçün yalnız bir girişi və bir çıxışı olması vacibdir. Beləliklə, ümumiləşdirilmiş operatorun yalnız bir girişi və bir çıxışı var.

    Bu konstruksiyaların artıq riyazi obyektlər olması da çox vacibdir (mahiyyətcə strukturlaşdırılmış proqramlaşdırmanın uğurunun səbəbini izah edir). Sübut edilmişdir ki, hər bir strukturlaşdırılmamış proqram üçün funksional ekvivalent (yəni eyni problemi həll edən) strukturlaşdırılmış proqram qurmaq mümkündür. Strukturlaşdırılmış proqramlar üçün proqramdakı bəzi səhvləri aşkar etməyə imkan verən bəzi xüsusiyyətləri riyazi olaraq sübut edə bilərsiniz. Bu mövzuda ayrıca bir dərs veriləcək.

    Strukturlaşdırılmış proqramlaşdırma bəzən "proqramlaşdırmaya getmə" olaraq da adlandırılır. Ancaq burada məqsəd GO GO ifadəsində deyil, nizamsız istifadəsindədir. Çox vaxt, bəzi proqramlaşdırma dillərində (məsələn, FORTRAN -da) strukturlaşdırılmış proqramlaşdırma həyata keçirilərkən, keçid operatoru (GO TO) strukturlaşdırılmış proqramlaşdırmanın əsas üstünlüklərini pozmadan strukturlaşdırılmış konstruksiyaları həyata keçirmək üçün istifadə olunur. Proqramı, xüsusən də yuxarıdakı modul mətnində (əvvəllər) icra olunan atlama operatorunda yerləşən operatora atlamağı qarışdıran "qeyri-struktur" atlama operatorlarıdır. Buna baxmayaraq, bəzi sadə hallarda filial operatorundan qaçmaq cəhdi, aydınlığını artırmayan və modulun mətnində əlavə səhvlərin olma ehtimalını ehtiva edən çox çətin strukturlaşdırılmış proqramlara səbəb ola bilər. Buna görə də, proqramın aydınlığı hesabına deyil, mümkün olduqda atlama operatorundan istifadə etməməyi tövsiyə edə bilərik.

    Atlama operatorundan istifadə etmənin faydalı halları, müəyyən bir dövrün və ya müəyyən bir prosedurun işini "erkən" dayandıran xüsusi bir şərtlə bir döngə və ya prosedurdan çıxmaqdır. bəzi struktur bölmələrinin (ümumiləşdirilmiş operatorun) işini dayandırmaq və beləliklə proqramın strukturlaşdırılmasını yalnız lokal şəkildə pozmaq. Böyük çətinliklər (və strukturun mürəkkəbliyi) ortaya çıxan müstəsna (çox vaxt səhv) vəziyyətlərə reaksiyanın struktur tətbiqindən qaynaqlanır, çünki bunun üçün yalnız struktur bölmədən erkən çıxmaq deyil, həm də lazımi emal (istisna) tələb olunur. bu vəziyyət (məsələn, uyğun bir diaqnostik məlumatın verilməsi). İstisna işləyicisi proqram quruluşunun istənilən səviyyəsində ola bilər və ona müxtəlif aşağı səviyyələrdən daxil olmaq mümkündür. İstisna vəziyyətlərə cavabın aşağıdakı "qeyri-struktur" tətbiqi texnoloji baxımdan olduqca məqbuldur. İstisna işləyicilər bu və ya digər struktur bölmənin sonuna yerləşdirilir və hər bir işçi işini başa vurduqdan sonra yerləşdirildiyi struktur bölmədən çıxacaq şəkildə proqramlaşdırılır. Belə bir idarəçiyə zəng, verilən struktur bölmədən (içərisində yuvalanmış hər hansı bir struktur vahidi daxil olmaqla) keçid operatoru tərəfindən edilir.

  7. 8.3. Addım-addım detallar və psevdokod anlayışı.

  8. Strukturlaşdırılmış proqramlaşdırma modul mətninin necə olması barədə təlimatlar verir. Belə bir mətn qurmaq üçün bir proqramçının necə davranması lazım olduğu ortaya çıxır. Bəzən bir modulun proqramlaşdırılması onun işləmə məntiqini əks etdirən blok diaqramının qurulması ilə başlayır. Amma müasir texnologiya proqramlaşdırma bunu etməyi məsləhət görmür. Blok diaqramları modulun işləmə məntiqini çox aydın şəkildə ifadə etməyi mümkün etsə də, bir proqramlaşdırma dilində kodlandıqda çox spesifik bir səhv mənbəyi meydana gəlir: blok diaqramlar kimi mahiyyətcə iki ölçülü strukturların bir modulu təmsil edən xətti mətn, modulun məntiqini təhrif etmək təhlükəsini ehtiva edir, buna görə də psixoloji cəhətdən qorumaq olduqca çətindir yüksək səviyyə yenidən nəzərdən keçirərkən diqqət yetirin. İstisna, qrafik redaktorun blok diaqramlar qurmaq üçün istifadə edildiyi və proqramlaşdırma dilində mətnin onlardan avtomatik olaraq yaradılacağı şəkildə rəsmiləşdirildiyi bir hal ola bilər (məsələn, bunu R texnologiyasında etmək olar).

    Modulun mətninin qurulmasının əsas üsulu olaraq, müasir proqramlaşdırma texnologiyası addım-addım detallandırmağı tövsiyə edir. Bu metodun mahiyyəti, modul mətninin hazırlanması prosesini bir neçə mərhələyə bölməkdir. İlk addımda modulun işinin ümumi sxemi müşahidə edilə bilən xətti mətn formasında (yəni çox böyük anlayışlardan istifadə etməklə) təsvir edilir və bu təsvir tam şəkildə rəsmiləşdirilmir və insan qavrayışına yönəlib. Hər bir sonrakı addımda anlayışlardan biri incələnir və detallaşdırılır (biz onu zərif adlandıracağıq), əvvəlki addımlardan birində hazırlanan hər hansı bir təsvirdə istifadə olunur (bir qayda olaraq rəsmi olaraq deyil). Bu addımın nəticəsi olaraq, seçilmiş zərif konsepsiyanın təsviri ya əsas proqramlaşdırma dili (yəni təqdimat üçün seçilmiş modul) baxımından, ya da yeni zərif anlayışlardan istifadə etməklə birinci addımdakı formada yaradılır. Bu proses bütün zərif anlayışlar sonda əsas proqramlaşdırma dilində ifadə edildikdə başa çatır. Son addım, zərif anlayışların bütün təzahürlərini verilən təsvirlərlə əvəz etməklə və bu proqramlaşdırma dilindən istifadə edərək strukturlaşdırılmış proqramlaşdırma konstruksiyalarının bütün təzahürlərini ifadə etməklə əsas proqramlaşdırma dilində modulun mətnini əldə etməkdir.

    Addım-addım təfərrüatlar, pseudocode adlanan göstərilən təsvirləri əks etdirmək üçün qismən rəsmiləşdirilmiş bir dilin istifadəsi ilə əlaqədardır. Bu dil, ümumi operatorları və şərtləri təmsil etmək üçün təbii dildə qeyri -rəsmi fraqmentlərlə birlikdə rəsmiləşdirilmiş bütün strukturlaşdırılmış proqramlaşdırma konstruksiyalarının istifadəsinə imkan verir. Əsas proqramlaşdırma dilindəki müvafiq fraqmentlər ümumiləşdirilmiş operatorlar və şərtlər olaraq da təyin edilə bilər.

    Pseudocode -da baş təsviri modulun əsas proqramlaşdırma dilində xarici dizaynı hesab edilə bilər

    əsas dildə bir modulun başlanğıcı, yəni. bu modulun ilk cümləsi və ya adı (spesifikasiyası);

    əsas dildə təsvirlər bölməsi (dəsti) və prosedur və funksiyaların təsvirləri yerinə - yalnız onların xarici dizaynı;

    bir ümumiləşdirilmiş operator olaraq modul gövdəsinin operatorlarının ardıcıllığının qeyri -rəsmi təyin edilməsi (aşağıya baxın), həmçinin hər bir prosedurun və ya funksiyanın bir ümumiləşdirilmiş operator kimi təsvirinin bədən operatorlarının ardıcıllığının qeyri -rəsmi təyin edilməsi;

    əsas dildə modulun son cümləsi (sonu).

    Prosedur və ya funksiyanın təsvirinin görünüşü oxşardır. Bununla birlikdə, Dijkstra'yı təqib edirsinizsə, detallarını ayrı bir təsvir şəklində etməklə burada təsvirlər hissəsini qeyri -rəsmi bir təyinatla təqdim etmək daha yaxşıdır.

    Pseudocode -da ümumiləşdirilmiş bir operatorun qeyri -rəsmi təyinatı, məzmununu əks etdirən ixtiyari bir cümlə ilə təbii dildə tərtib edilmişdir. Belə bir təyinatın dizaynı üçün yeganə rəsmi tələb aşağıdakılardır: bu cümlə bütünlüklə bir və ya bir neçə qrafik (çap) sətri tutmalı və nöqtə ilə bitməlidir.

    Hər bir qeyri -rəsmi ümumiləşdirilmiş operator üçün strukturlaşdırılmış proqramlaşdırmanın və digər ümumiləşdirilmiş operatorların əsas strukturlarının tərkibindən istifadə etməklə onun fəaliyyətinin məntiqini (məzmununu ətraflı şəkildə) ifadə edən ayrı bir təsvir yaradılmalıdır. Belə bir təsvirin adı ətraflı ümumi operatorun qeyri -rəsmi təyinatı olmalıdır. Strukturlaşdırılmış proqramlaşdırmanın əsas strukturları aşağıdakı formada təqdim edilə bilər (bax. Şəkil 8.2). Burada şərt ya əsas proqramlaşdırma dilində boole ifadəsi olaraq açıq şəkildə göstərilə bilər, ya da bu şərtin mənasını izah edən bir parça ilə qeyri -rəsmi olaraq təbii dildə təqdim edilə bilər. İkinci halda, bu şərtin (təbii dildə bir fraqment) başlıq olaraq təyin edilməsini göstərən, bu şərti ətraflı şəkildə izah edən ayrı bir təsvir yaradılmalıdır.

  9. Pirinç. 8.2. Pseudocode -da strukturlaşdırılmış proqramlaşdırmanın əsas quruluşları.

  10. Pirinç. 8.3. Ümumiləşdirilmiş operator kimi keçid operatorunun xüsusi halları.

    Pseudocode üzrə ümumiləşdirilmiş operator olaraq, keçid operatorunun yuxarıdakı xüsusi hallarından istifadə etmək olar (bax. Şəkil 8.3). Bir modulun sonunda və ya bir prosedurun (funksiyanın) təsvirində istisna işləyiciləri (istisnalar) ardıcıllığı göstərilir. Hər bir işçi belə görünür:

    EXCEPTION istisna_adı

    generic_operator

    BÜTÜN İSTİSNALAR

    İstisna işləyicisi ilə parametrləri olmayan prosedur arasındakı fərq aşağıdakı kimidir: prosedur yerinə yetirildikdən sonra idarəetmə ona edilən zəngdən sonra operatora qayıdır və istisnanı yerinə yetirdikdən sonra idarəetmə modula və ya prosedur (funksiya), bunun sonunda (hansı) bu istisna qoyulur.

    Mətnin bir səhifəsinə yerləşdirilməsi üçün kifayət qədər mənalı, lakin asanlıqla görünən (təsviri) bir təsvir yaratmaq üçün detalların hər addımında tövsiyə olunur. Tipik olaraq, bu, belə bir təsvirin beş və ya altı strukturlaşdırılmış proqramlaşdırma quruluşundan ibarət olması deməkdir. Bir neçə mövqe ilə sağa sürüşən yuvalı strukturların yerləşdirilməsi də tövsiyə olunur (bax. Şəkil 8.4). Nəticədə, işin məntiqinin aydınlığı baxımından əldə etmək mümkündür ki, bu da blok sxemlərlə kifayət qədər rəqabət aparır, lakin əhəmiyyətli bir üstünlüyə malikdir - təsvirin xəttiliyi qalır.

  11. İLKDƏN ÖNCƏ DOSYADA QEYDİYYATLARI SİLİN,

    MƏMMUN FİLTRƏ:

    DOSYA BAŞLAYIN.

    QAYDALI GİRİŞ MEMNUNİYYƏTLƏRİ

    ÜÇÜN FİLTRE

    DÖVMƏLİ GİRİŞİ DOSYADAN SİLİN.

    BÜTÜN OLSA

    BAYE

    QEYDİYYATLAR SİLİLMƏYƏCƏK

    "GİRİŞLƏR SİLİLMİR" yazdırın.

    "SİLİLDİN QEYDİYYATLAR" ÇAPINA.

    BÜTÜN OLSA

  12. Pirinç. 8.4. Psevdokodda detallaşdırmanın bir addımına nümunə.

  13. Dijkstra bəzən addım-addım təfərrüatlarla fikirləşir. Bununla birlikdə, Dijkstra modulun mətninin qurulması üçün bizə daha dərin və daha perspektivli görünən prinsipcə fərqli bir üsul təklif etdi. Birincisi, operatorların aydınlaşdırılması ilə yanaşı, istifadə olunan məlumat strukturlarını tədricən (addım -addım) dəqiqləşdirməyi (detallandırmağı) təklif etdi. İkincisi, hər addımda detallaşdırmaq üçün bir virtual maşın yaratmağı və sözün həqiqi mənasında bu maşının yerinə yetirməsinə imkan verən bütün zərif anlayışları detallandırmağı təklif etdi. Beləliklə, Dijkstra mahiyyətcə üfüqi təbəqələrlə təfərrüat yaratmağı təklif etdi ki, bu da onun təbəqəli sistemlər ideyasının (bax mühazirə 6) modul inkişaf səviyyəsinə keçir. Bu modul inkişaf etdirmə üsulu hazırda ADA dil paketləri və obyekt yönümlü proqramlaşdırma vasitələri tərəfindən dəstəklənir.

  14. 8.4. Proqram moduluna nəzarət.

  15. Proqram modulunu idarə etmək üçün aşağıdakı üsullardan istifadə olunur:

    modul mətninin statik yoxlanılması;

    sondan uca izləmə;

    proqram modulunun xüsusiyyətlərinin sübutu.

    Bir modulun mətnini statik olaraq yoxlayarkən, modulda səhvləri tapmaq üçün bu mətn əvvəldən axıra qədər oxunur. Adətən belə bir yoxlama üçün modul hazırlayıcısına əlavə olaraq bir və ya bir neçə proqramçı cəlb olunur. Belə bir yoxlama zamanı aşkar edilən səhvlərin dərhal düzəldilməməsi, ancaq modulun mətnini oxuduqdan sonra tövsiyə olunur.

    İzləmə dinamik modul nəzarətinin bir növüdür. Ayrıca müəyyən bir test dəstində modulun icrasını (operator tərəfindən modulun məntiqindən çıxan ardıcıllıqla) əl ilə keçirən bir neçə proqramçı daxildir.

    Növbəti mühazirə proqramların xüsusiyyətlərini sübut etməyə həsr edilmişdir. Burada yalnız qeyd etmək lazımdır ki, bu üsul hələ çox nadir hallarda istifadə olunur.

  16. Mühazirə üçün ədəbiyyat 8.

  17. 8.2. E. Dijkstra. Strukturlaşdırılmış proqramlaşdırma haqqında qeydlər // W. Dahl, E. Dijkstra, K. Hoore. Strukturlaşdırılmış proqramlaşdırma. - M.: Mir, 1975.- S. 24-97.

    8.3. N. Virt. Sistemli proqramlaşdırma. - M.: Mir, 1977.- S. 94-164.

  18. Mühazirə 9. Proqram xüsusiyyətlərinin sübutu

  19. Proqramın əsaslandırılması anlayışı. Proqram xüsusiyyətlərinin rəsmiləşdirilməsi, Hoor üçlüyü. Tapşırıq operatorunun, şərti və mürəkkəb operatorların xüsusiyyətlərinin təyin edilməsi qaydaları. Bir döngə operatorunun xüsusiyyətlərini təyin etmək qaydaları, dönməz bir anlayış. Proqramın icrasının tamlığı.

  20. 9.1. Proqramların əsaslandırılması. Proqram xüsusiyyətlərinin rəsmiləşdirilməsi.

  21. Proqramın etibarlılığını artırmaq üçün proqramın idarəetmə səviyyəsini əhəmiyyətli dərəcədə artıra biləcəyiniz proqramları əlavə məlumatlarla təmin etmək çox faydalıdır. Bu cür məlumatlar proqramların müxtəlif hissələrinə bağlı olan qeyri -rəsmi və ya rəsmiləşdirilmiş ifadələr şəklində göstərilə bilər. Bu cür açıqlamaları proqramın məntiqi adlandıracağıq. Proqramlar üçün qeyri -rəsmi əsaslar, məsələn, səhvlərin axtarılmasını və düzəldilməsini, habelə onları qoruyarkən proqramların öyrənilməsini xeyli asanlaşdıran müəyyən qərarların qəbul edilməsinin səbəblərini izah edə bilər. Formalaşdırılmış əsaslandırma, proqramların bəzi xüsusiyyətlərini həm əl ilə sübut etməyə, həm də avtomatik olaraq idarə etməyə (təyin etməyə) imkan verir.

    Proqramların formal əsaslandırılması üçün hazırda istifadə olunan anlayışlardan biri də sözdə Hoor üçlüyünün istifadəsidir. S, IS, P və Q informasiya mühiti üzərində bəzi ümumiləşdirilmiş operatorlar olsun - bu mühitlə bağlı bəzi predikatlar (ifadələr) olsun. Sonra (P) S (Q) işarəsi Hoor üçlüyü adlanır, burada P predikatı ön şərt, Q predikatı isə S operatoruna görə post şərtdir. Operator (xüsusən də proqram) S S operatorunun icrasından əvvəl P predikatı doğru olarsa, bu operatorun yerinə yetirilməsindən sonra Q predikatı doğru olarsa (P) S (Q) xassəsinə malik olduğu deyilir.

    Proqram xüsusiyyətlərinin sadə nümunələri:

    (9.1) (n = 0) n: = n + 1 (n = 1),

    (9.2) (n

    (9.3) (n

    (9.4) (n> 0) p: = 1; m: = 1;

    M / = n YOXDUR

  22. BAYE

    S proqramının xüsusiyyətini sübut etmək üçün proqramlaşdırma dilinin sadə operatorlarının xüsusiyyətləri (burada özümüzü boş operator və təyin operatoru ilə məhdudlaşdırırıq) və idarəetmə strukturlarının (kompozisiyaların) xüsusiyyətlərindən istifadə olunur. Proqram sadə operatorlardan hazırlanmışdır (burada özümüzü strukturlaşdırılmış proqramlaşdırmanın üç əsas kompozisiyası ilə məhdudlaşdıracağıq, səkkizinci mühazirəyə baxın). Bu xüsusiyyətlərə ümumiyyətlə proqram yoxlama qaydaları deyilir.

  23. 9.2. Sadə operatorların xüsusiyyətləri.

  24. Boş bir operator üçün aşağıdakılar etibarlıdır

    Teorem 9.1. Məlumat mühiti üzərində P bir predikat olsun. Sonra mülk (P) (P) saxlanılır.

    Bu teoremin sübutu göz qabağındadır: boş bir operator informasiya mühitinin vəziyyətini (semantikasına uyğun olaraq) dəyişdirmir, buna görə də onun ilkin şərti icra edildikdən sonra belə doğru olaraq qalır.

    Tapşırıq operatoru razıdır

    Teorem 9.2. IS məlumat mühitinin X dəyişənindən və RIS məlumat mühitinin qalan hissəsindən ibarət olmasına icazə verin:

  25. Sonra əmlak

    (Q (F (X, RIS), RIS)) X: = F (X, RIS) (Q (X, RIS)),

    burada F (X, RIS) bəzi tək dəyərli bir funksiyadır, Q predikatdır.

    Sübut. Q (F (X0, RIS0), RIS0) predikatı təyinetmə operatorunun icrasından əvvəl doğru olsun, burada (X0, RIS0) IS informasiya mühitinin bəzi ixtiyari vəziyyətidir, sonra təyinat operatorunun yerinə yetirilməsindən sonra predikat Q (X, RIS) doğru olacaq, buna görə X -in F (X0, RIS0) dəyərini necə alacağı və RIS vəziyyəti bu təyinat ifadəsi ilə dəyişdirilmir və buna görə də bu vəziyyətdə bu tapşırıq ifadəsi icra edildikdən sonra

    Q (X, RIS) = Q (F (X0, RIS0), RIS0).

    İnformasiya mühitinin vəziyyətinin seçilməsində özbaşınalığa görə teorem sübuta yetirilir.

    Nümunə 9.1, təyinat operatorunun mülkiyyət nümunəsidir.

  26. 9.3. Strukturlaşdırılmış proqramlaşdırmanın əsas strukturlarının xüsusiyyətləri.

  27. İndi strukturlaşdırılmış proqramlaşdırmanın əsas strukturlarının xüsusiyyətlərini nəzərdən keçirək: ardıcıllıq, budaqlanma və təkrar.

    Ardıcıllığın xüsusiyyətləri aşağıdakılarla ifadə olunur

    Teorem 9.3. Məlumat mühiti üzərində P, Q və R predikatlar, S1 və S2 isə xüsusiyyətlərə malik ümumiləşdirilmiş operatorlar olsun.

    (P) S (Q) və (Q) S2 (R).

    Sonra mürəkkəb operator üçün

    S1; S2<.blockquote>

    mülkiyyət saxlayır

    (P) S1; S2 (R).

    Sübut. Məlumat mühitinin bəzi vəziyyətləri üçün P predikatı S1 operatorunun icra edilməsindən əvvəl doğru olsun.Sonra S1 operatorunun xüsusiyyətinə görə icra edildikdən sonra Q predikatı doğru olacaq.S2 ifadəsinin icrası. Buna görə də, S2 operatorunun yerinə yetirilməsindən sonra, xüsusiyyətinə görə R predikatı doğru olacaq və S2 operatoru kompozit operatorun icrasını dayandırdığından (semantikasına uyğun olaraq) R predikatı sonra doğru olacaq. sübut etmək tələb olunan bu kompozit operatorun icrası.

    Məsələn, (9.2) və (9.3) xassələri saxlanılırsa, deməli var

    yeri və mülkü

    (n

    Dallanma xüsusiyyəti aşağıdakıları ifadə edir

    Teorem 9.4. Məlumat mühiti üzərində P, Q və R predikatlar, S1 və S2 isə xüsusiyyətlərə malik ümumiləşdirilmiş operatorlar olsun.

    (P, Q) S1 (R) və (`P, Q) S2 (R).

    Sonra şərti operator üçün

    ƏGƏR P SONRA S1 BAŞQASI S2 HAMISI

    mülkiyyət saxlayır

    (Q) IF P THEN S1 ELSE S2 ALL IF (R).

    Sübut. Şərti operatorun icrasından əvvəl informasiya mühitinin müəyyən bir vəziyyəti üçün Q predikatı doğru olsun.P predikatı da doğrudursa, şərt operatorunun semantikasına uyğun olaraq icrası operatorun icrasına endirilir. S1. S1 operatorunun xüsusiyyətlərinə görə, yerinə yetirildikdən sonra (və bu halda, şərti operatorun icrasından sonra) R predikatı doğru olar, Şərti operatorun icrasından əvvəl P predikatı yalan olar. (və Q hələ də doğrudur), onda semantikasına uyğun olaraq şərti operatorun icrası S2 operatorunun icrasına endirilir. S2 operatorunun xassəsinə görə, yerinə yetirildikdən sonra (və bu halda - və şərti operatorun icrasından sonra) R predikatı doğru olacaqdır.Beləliklə, teorem tamamilə sübut olunmuşdur.

    Təkrarlanan quruluşun xüsusiyyətinə keçməzdən əvvəl, bunun daha da faydalı olacağını qeyd etmək lazımdır

    Teorem 9.5. P, Q, P1 və Q1, təsirlərin təsirli olduğu informasiya mühitinin predikatı olsun

    P1 => P və Q => Q1,

    və (P) S (Q) xassəsini S operatoru üçün saxlasın. Sonra (P1) S (Q1) xassəsini saxlasın.

    Bu teoremə mülkiyyəti zəiflətmə teoremi də deyilir.

    Sübut. S operatorunun icrasından əvvəl informasiya mühitinin bəzi vəziyyəti üçün P1 predikatı doğru olsun. O zaman P predikatı da doğru olacaq (P1 => P implication sayəsində). Buna görə də, S operatorunun xüsusiyyətinə görə, yerinə yetirildikdən sonra Q predikatı doğru olacaq və buna görə də Q1 predikatı olacaq (Q => Q1 təsirinə görə). Bu teoremi sübut edir.

    Təkrar xüsusiyyət aşağıdakıları ifadə edir

    Teorem 9.6. Qoy I, P, Q və R, nəticələrin etibarlı olduğu informasiya mühiti üzərində predikatlar olsun

    P => I və (I, `Q) => R,

    və S (I) S (I) xüsusiyyətinə malik ümumiləşdirilmiş operator olsun.

    Sonra döngə operatoru üçün

    Q QALDIĞINDA HƏR ŞEYİ

    mülkiyyət saxlayır

    (P) Q QALDIĞINDA HƏR ŞEYİ (R).

    I predikatına dövr operatorunun invariantı deyilir.

    Sübut. Bu teoremi sübut etmək üçün mülkü sübut etmək kifayətdir

    (I) Q QALDIĞINDA HƏR ŞEYİ (I, `Q)

    (bu teoremin şərtlərinə təsirləri əsasında 9.5 teoremi ilə). Dövr operatoru icra edilməzdən əvvəl informasiya mühitinin bəzi vəziyyəti üçün I həqiqətinin doğru olmasına icazə verin. ) və Teorem 9.1 -ə əsasən, dövr operatorunun yerinə yetirilməsindən sonra (I, `Q) ifadəsi. Əgər tsikl operatorunun icrasından əvvəl Q predikatı doğrudursa, semantikasına uyğun olaraq dövr operatoru mürəkkəb operator S kimi təmsil oluna bilər; Q QALDIĞINDA HƏR ŞEYİ

    S operatorunun mülkiyyətinə görə, yerinə yetirildikdən sonra I predikat doğru olacaq və dövr operatorunun xüsusiyyətini sübut etmək üçün ilkin bir vəziyyət yaranır: I predikatı dövr operatorunun icrasından əvvəl doğrudur, amma artıq başqası üçün ( məlumat mühitinin vəziyyəti (Q predikatı doğru və ya yalan ola bilər). Dövr operatorunun icrası bitərsə, sonlu sayda addımlarla riyazi induksiya metodunu tətbiq edərək, yerinə yetirilməzdən əvvəl (I, `Q) ifadəsinin doğru olacağı bir vəziyyətə gələcəyik. Və bu vəziyyətdə, yuxarıda sübut edildiyi kimi, bu ifadə loop operatorunun icrasından sonra da doğru olacaq. Teorem isbat olunur.

    Məsələn, (9.4) nümunəsindəki loop operatoru xüsusiyyətə malikdir

    m: = m + 1; p: = p * m

    HƏLƏ HƏR ŞEY (p = n.!}

    Bu 9.6 Teoremindən irəli gəlir, çünki bu dövr operatorunun invariantı p = m predikatıdır! və nəticələr doğrudur (n> 0, p = 1, m = 1) => p = m! və (p = m!, m = n) => p = n!

  28. 9.4. Proqramın icrasının tamlığı.

  29. SS -də mümkün səhvlərin qarşısını almaq üçün maraqlandıra biləcəyimiz proqramın xüsusiyyətlərindən biri də tamlığıdır, yəni. müəyyən ilkin məlumatlar daxilində döngənin olmaması. Baxdığımız strukturlaşdırılmış proqramlarda, yalnız təkrarlama quruluşu döngə mənbəyi ola bilər. Buna görə də, proqramın tamlığını sübut etmək üçün bir dövr operatorunun sona çatmasını sübut etmək kifayətdir. Bunun üçün aşağıdakılar faydalıdır.

    Teorem 9.7. F, informasiya mühitinin vəziyyətindən asılı olan və aşağıdakı şərtləri yerinə yetirən bir tamsayı funksiyası olsun:

    (1) Q predikatı informasiya mühitinin müəyyən bir vəziyyəti üçün doğrudursa, dəyəri müsbətdir;

    (2) S operatorunun icrası nəticəsində informasiya mühitinin vəziyyəti dəyişəndə ​​azalır.

    Sonra loop operatorunun icrası

    WHITE Q DO S ALL WHYLE tamamlandıqda.

    Sübut. Dövr operatorunun yerinə yetirilməsindən əvvəl informasiya mühitinin vəziyyəti olsun və F (is) = k olsun. Q (is) predikatı yalan olarsa, döngə ifadəsinin icrası başa çatır. Q (is) doğrudursa, k> 0 teoreminin hipotezi ilə. Bu vəziyyətdə, S ifadəsi bir və ya bir neçə dəfə icra ediləcək. S operatorunun hər bir icrasından sonra, teoremin hipotezinə görə, F funksiyasının dəyəri azalır və S operatorunun icrasından əvvəl Q predikatı doğru olmalıdır (dövr operatorunun semantikasına görə), bu anda F funksiyasının dəyəri müsbət olmalıdır (teoremin şərtlərinə görə). Buna görə də F funksiyasının tam dəyərinə görə bu döngədəki S operatoru k dəfədən artıq icra oluna bilər. Teorem isbat olunur.

    Məsələn, yuxarıda nəzərdən keçirilən dövr operatorunun nümunəsi üçün 9.7 Teoreminin şərtləri f (n, m) = n-m funksiyası ilə təmin edilir. M = 1 döngə operatorunu icra etməzdən əvvəl, bu döngənin gövdəsi (n-1) dəfə icra olunacaq, yəni. bu loop ifadəsi bitir.

  30. 9.5. Bir proqramın xüsusiyyətini sübut etmək üçün bir nümunə.

  31. Proqramın yoxlanılması üçün sübut edilmiş qaydalara əsaslanaraq, təyinat operatorlarından və boş operatorlardan ibarət olan və strukturlaşdırılmış proqramlaşdırmanın üç əsas kompozisiyasından istifadə edən proqramların xüsusiyyətlərini sübut etmək mümkündür. Bunun üçün proqramın quruluşunu təhlil edərək və əvvəlcədən təyin edilmiş əvvəlcədən və sonrakı şərtlərdən istifadə edərək təhlilin hər bir mərhələsində uyğun bir yoxlama qaydası tətbiq etmək lazımdır. Təkrar bir kompozisiya istifadə edildikdə, uyğun bir döngə dəyişməz seçməlisiniz.

    Nümunə olaraq mülkü sübut edək (9.4). Bu sübut aşağıdakı addımlardan ibarət olacaq.

    (Addım 1). n> 0 => (n> 0, p - hər hansı, m - hər hansı).

    (Addım 2). Baş verir

    (n> 0, p - hər hansı, m - hər hansı) p: = 1 (n> 0, p = 1, m - hər hansı).

    Teorem 9.2 tərəfindən.

    (Addım 3). Baş verir

    (n> 0, p = 1, m - hər hansı) m: = 1 (n> 0, p = 1, m = 1).

    Teorem 9.2 tərəfindən.

    (Addım 4). Baş verir

    (n> 0, p - hər hansı, m - hər hansı) p: = 1; m: = 1 (n> 0, p = 1, m = 1).

    Teorem 9.3 ilə, 2 və 3 -cü addımların nəticələrini nəzərə alaraq.

    P = m predikatının olduğunu sübut edək! dövrü dəyişməzdir, yəni. (p = m m:=m+1; p:=p*m {p=m!}.!}

    (Addım 5). Baş verir (p = m m:=m+1 {p=(m-1)!}.!}

    Teorem 9.2 ilə, ön şərti (p = ((m + 1) -1) şəklində ifadə etsək.!}

    (Addım 6). Baş verir (p = (m-1) p:=p*m {p=m!}.!}

    Teorem 9.2 ilə, ön şərti (p * m = m) formada təmsil etsək.!}

    (Addım 7). Bir dövrü dəyişməz var

    (p = m m:=m+1; p:=p*m {p=m!}.!}

    Teorem 9.3 ilə, 5 və 6 -cı addımların nəticələrini nəzərə alaraq.

    (Addım 8). Baş verir

    (n> 0, p = 1, m = 1) m / = n YOXDUR

    m: = m + 1; p: = p * m

    HƏLƏ HƏR ŞEY (p = n.!}

    Teorem 9.6 ilə, 7 -ci addımın nəticəsinə görə və (n> 0, p = 1, m = 1) => p = m! (p = m!, m = n) => p = n!.

    (Addım 9). Baş verir

    (n> 0, p - hər hansı, m - hər hansı) p: = 1; m: = 1;

    M / = n YOXDUR

    m: = m + 1; p: = p * m

    HƏLƏ HƏR ŞEY (p = n.!}

    3 və 8 -ci addımların nəticələrini nəzərə alaraq Teorem 9.3 ilə.

    (Addım 10). Mülkiyyət (9.4) 1 və 9 -cu addımların nəticələrinə əsasən Teorem 9.5 tərəfindən tutulur.

  32. Mühazirə üçün ədəbiyyat 9.

  33. 9.1. S.A. Abramov. Proqramlaşdırma elementləri. - M.: Nauka, 1982.S. 85-94.

    9.2. M. Zelkovets, A. Shaw, J. Gannon. Proqram təminatının hazırlanması prinsipləri. - M.: Mir, 1982.S. 98-105.

  34. Mühazirə 10. Test və ayıklama proqramı

  35. Əsas anlayışlar. Test dizayn strategiyası. Ayarlama əmrləri. Bir proqram modulunun oflayn ayıklanması və sınanması. Proqram vasitələrinin kompleks ayıklanması və sınanması.

  36. 10.1. Əsas anlayışlar.

  37. Bir proqram sistemini ayıklamaq, proqramlarını yerinə yetirmək proseslərindən istifadə edərək bir proqram sistemindəki səhvləri aşkar etməyə və düzəltməyə yönəlmiş bir fəaliyyətdir. Bir proqram sisteminin sınanması, tətbiqinin nəticəsi əvvəlcədən bilinən və ya bu proqramların davranış qaydaları məlum olan müəyyən bir məlumat toplusunda proqramlarını icra etmə prosesidir. Göstərilən verilənlər bazasına test və ya sadəcə test deyilir. Beləliklə, ayıklama üç prosesin birdən çox təkrarlanması şəklində təmsil oluna bilər: test, bunun nəticəsində proqram sistemində bir səhvin olması, proqram proqramlarında və proqram sənədlərində səhvin yerini tapmaq və aşkar edilmiş xətanı aradan qaldırmaq üçün proqramları və sənədləri redaktə edin. Başqa sözlə:

    Hata Ayıklama = Test + Səhv Tapma + Redaktə.

    Xarici ədəbiyyatda, ayıklama çox vaxt yalnız sınaqlar zamanı gerçəkliyi müəyyən edilən səhvlərin (sınaq olmadan) tapılması və düzəldilməsi prosesi kimi başa düşülür. Bəzən sınaq və ayıklama sinonim sayılır. Ölkəmizdə test ümumiyyətlə ayıklama anlayışına daxildir, buna görə də qurulmuş ənənəyə əməl edəcəyik. Ancaq bu mühazirədə bu proseslərin birgə nəzərdən keçirilməsi bu uyğunsuzluğun o qədər də əhəmiyyətli olmadığını göstərir. Bununla birlikdə qeyd etmək lazımdır ki, test də FP attestasiya prosesinin bir hissəsi kimi istifadə olunur (bax mühazirə 14).

  38. 10.2. Ayıklama prinsipləri və növləri.

  39. Hata ayırmağın müvəffəqiyyəti əsasən testin rasional təşkili ilə müəyyən edilir. Hata ayıklama zamanı, əsasən test zamanı aşkar edilən və aradan qaldırılan PS -də aşkar edilən səhvlərdir. Artıq qeyd edildiyi kimi, test PS -nin düzgünlüyünü sübut edə bilməz ən yaxşı hal bir səhv olduğunu göstərə bilər. Başqa sözlə, proqram sistemini praktiki olaraq mümkün olan bir test dəsti ilə sınayaraq, proqram sistemində hər bir səhvin mövcudluğunu müəyyən etmək mümkün olduğuna zəmanət verilə bilməz. Beləliklə, iki vəzifə ortaya çıxır. Birincisi, mümkün qədər çox səhv tapmaq üçün belə bir test dəsti hazırlamaq və onlara proqram tətbiq etməkdir. Bununla birlikdə, test prosesi (və ümumiyyətlə ayıklama) nə qədər uzun sürərsə, proqramın dəyəri o qədər yüksək olar. Beləliklə, ikinci vəzifə: proqram sisteminin (və ya onun ayrı bir komponentinin) ayıklanmasının başa çatma anını təyin etmək. Hata ayırmağın başa çatma ehtimalının bir əlaməti, PS proqramlarının icrası zamanı ortaya çıxan bir çox fərqli vəziyyətin PS -dən keçən testlərin (yəni PS -nin tətbiq olunduğu testlərin) əhatə dairəsinin tamlığı və nisbətən nadir təzahürüdür. test prosesinin son hissəsindəki PS səhvləri. Sonuncu keyfiyyət spesifikasiyasında göstərilən PS etibarlılığının lazımi dərəcəsinə uyğun olaraq təyin olunur.

    Test paketini optimallaşdırmaq üçün, yəni. Müəyyən sayda test üçün (və ya test üçün ayrılmış müəyyən bir zaman aralığında) daha çox sayda səhv aşkar etməyə imkan verən bir sıra testlər hazırlamaq üçün əvvəlcə bu dəsti əvvəlcədən planlaşdırmaq və ikincisi, rasional planlaşdırma strategiyası (dizayn) testlərindən istifadə etmək. Test dizaynı, proqramın xarici təsviri mərhələsi başa çatdıqdan dərhal sonra başlaya bilər. Aşağıdakı iki həddindən artıq yanaşma arasında şərti olaraq qrafik olaraq yerləşdirilə bilən (bax Şəkil 9.1) test dizayn strategiyasının hazırlanmasına fərqli yanaşmalar mövcuddur. Sol həddindən artıq yanaşma, testlərin yalnız proqram sisteminin xüsusiyyətlərini (xarici təsvir, memarlıq təsviri və modul spesifikasiyası) öyrənmək əsasında tərtib edilməsidir. Bu vəziyyətdə modulların quruluşu heç bir şəkildə nəzərə alınmır, yəni. onlar qara qutu sayılır. Əslində, bu yanaşma bütün giriş məlumatlarının tam sayılmasını tələb edir, çünki bu dəstlərin yalnız bir hissəsi test olaraq istifadə edildikdə, PS proqramlarının bəzi hissələri heç bir testdə işləməyə bilər və buna görə də onlarda olan səhvlər görünmür. Bununla birlikdə, proqram sistemlərinin tam məlumat dəsti ilə sınanması praktiki olaraq mümkün deyil. Doğru həddindən artıq yanaşma, testlərin hər bir proqram proqramının bütün icra üsullarını sınamaq üçün proqramların mətnlərini öyrənmək əsasında tərtib edilməsidir. Proqramlarda çox sayda təkrarlanan döngələrin olduğunu nəzərə alsaq, PS proqramlarını yerinə yetirmək üçün çox sayda fərqli yol ola bilər ki, onların sınanması da praktiki olaraq qeyri -mümkün olsun.

    Optimal test dizayn strategiyası bu həddindən artıq yanaşmalar arasındakı intervalda, lakin sol kənarına yaxındır. Prinsiplərə əsaslanaraq testlərin əhəmiyyətli bir hissəsinin dizaynını ehtiva edir: istifadə olunan hər bir funksiya və ya fürsət üçün - ən azı bir test, hər bir bölgə və hər hansı bir giriş dəyişəninin hər dəyişmə sərhədi üçün - ən azı bir test, hər bir xüsusi vəziyyət və ya spesifikasiyalarda göstərilən hər bir istisna üçün ən azı bir testdir. Ancaq eyni zamanda (ən azından) prinsipinə əsaslanaraq bəzi testlərin dizaynını və proqramların mətnini tələb edir: hər bir proqram proqramının hər bir əmri ən azı bir testdən keçməlidir.

    Optimal test dizayn strategiyası aşağıdakı prinsipə əsasən konkretləşdirilə bilər: proqram sisteminə daxil olan hər bir proqram sənədi (proqram mətnləri daxil olmaqla) üçün səhvləri müəyyən etmək üçün öz testləri hazırlanmalıdır. Hər halda, bu prinsip, proqram sistemlərinin tərifinə və etibarlı proqram sistemlərinin inkişaf etdirilməsi texnologiyası olaraq proqramlaşdırma texnologiyası anlayışının məzmununa uyğun olaraq yerinə yetirilməlidir (bax. Mühazirə 1). Bu baxımdan Myers hətta müəyyən edir fərqli növlər testlərin qurulduğu proqram sənədinin növündən asılı olaraq test. Ölkəmizdə iki əsas ayıklama növü var (test daxil olmaqla): müstəqil və kompleks ayıklama. Muxtar ayıklama, proqram sisteminə daxil olan proqramın yalnız bir hissəsinin sınanması, sınaq zamanı düzəldilən səhvlərin axtarılması və düzəldilməsi deməkdir. Əslində hər bir modulun ayıklanmasını və modulların cütləşməsini ayırmağı əhatə edir. Hərtərəfli ayıklama, proqram sistemi ilə əlaqəli bütün sənədlərdə (proqram sistemlərinin mətnləri də daxil olmaqla) sınaq zamanı qeydə alınan səhvlərin axtarışı və düzəldilməsi ilə birlikdə proqram sisteminin sınanması deməkdir. Bu cür sənədlərə proqram təminatı üçün tələblərin təyin edilməsi, proqram təminatının keyfiyyət spesifikasiyası, proqram təminatının funksional spesifikasiyası, proqram arxitekturasının təsviri və proqram proqramlarının mətnləri daxildir.

  40. 10.3. Ayarlama əmrləri.

  41. Bu bölmə, ayıklamayı təşkil etmək üçün ümumi qaydalar təqdim edir. Ancaq əvvəlcə, inkişafın əvvəlki mərhələlərində səhvlərin qarşısının alınmasının vacibliyini təsdiq edən müəyyən bir fenomen qeyd edilməlidir: bir proqram sistemində aşkarlanan və düzəldilən səhvlərin sayı artdıqca, orada aşkar edilməmiş səhvlərin nisbi ehtimalı da artır. Bunun səbəbi, bir proqram sistemində aşkar edilən səhvlərin sayının artması ilə, səhvlərin ümumi sayını və buna görə də müəyyən dərəcədə hələ də aşkar edilməmiş səhvlərin sayını başa düşməyimizdir. zərif. Bu fenomen, səhvlərin erkən aşkarlanmasının vacibliyini və proqram inkişafının hər mərhələsində verilən qərarlara diqqətlə nəzarət edilməsinin zəruriliyini təsdiqləyir.

    Əmr 1. Proqram təminatının əsas vəzifəsini sınamağı düşünün, bunu ən ixtisaslı və istedadlı proqramçılara həvalə edin; öz proqramınızı sınamaq məsləhət deyil.

    Əmr 2. Yaxşı bir sınaq, proqramın düzgün işlədiyini nümayiş etdirən yox, bir səhv aşkar etmə ehtimalı yüksək olan bir testdir.

    Əmr 3. Həm düzgün, həm də səhv məlumatlar üçün testlər hazırlayın.

    Əmr 4. Təkrar olmayan testlərdən çəkinin, onların kompüterdən keçməsini sənədləşdirin; hər bir testin nəticələrini ətraflı öyrənmək.

    Əmr 5. Hər modulu proqrama yalnız bir dəfə qoşun; testi asanlaşdırmaq üçün proqramı heç vaxt dəyişdirməyin.

    Əmr 6. Hər hansı bir PS proqramının işləməsini yoxlamaq və ya digər proqramlarla qarşılıqlı əlaqəsini yoxlamaqla əlaqədar bütün dəyişiklikləri (məsələn, bir səhvin düzəldilməsi nəticəsində) atlayın.

  42. 10.4. Modulu oflayn ayıklama.

  43. Bağımsız hata ayıklamada, hər bir modul əslində bəzi proqramlaşdırma mühitində sınaqdan keçirilir, əgər proqram yalnız bir moduldan ibarətdir. Bu mühit digər modullardan ibarətdir ki, onlardan bəziləri düzəldilən proqramın modullarıdır, onsuz da düzəldilir, bəziləri isə ayıklamayı idarə edən modullardır (ayıklama modulları, aşağıya baxın). Beləliklə, muxtar ayıklama zamanı bir proqram hər zaman sınaqdan keçirilir, xüsusi olaraq ayıklanan modulu sınamaq üçün hazırlanmışdır. Bu proqram, debug edilən proqramın son modulunun ayıklandığı hallar istisna olmaqla, yalnız debug edilmiş proqramla eyni vaxtda üst -üstə düşür. Proqramın düzəldilməsi irəlilədikcə, sonrakı ayıklanan modulun daha çox mühiti bu proqramın artıq düzəldilmiş modullarından ibarət olacaq və bu proqramın son modulunu ayıklayarkən, düzəldilmiş modulun mühiti tamamilə olacaq ayıklanan (heç bir olmadan) proqramın bütün digər (artıq düzəldilmiş) modullarından, yəni. bu halda, ayıklanan proqram test ediləcək. Hata düzəldilmiş və düzəldilmiş modullarla düzəldilmiş bir proqram qurma prosesinə proqram inteqrasiyası deyilir.

    Hata ayıklanan modul mühitinə daxil olan ayıklama modulları, bu proqramın modullarının düzəldilmə sırasından, hansı moduldan ayıklandığından və ehtimal ki, hansı testin atlanacağından asılıdır.

    Aşağıdan yuxarı yoxlama zamanı (mühazirə 7-ə baxın), bu mühit həmişə yalnız bir hata ayıklama vahidini ehtiva edəcək (proqramın son vahidinin düzəldildiyi hallar istisna olmaqla), test edilən proqramın rəhbəri olacaq və usta (və ya sürücü). Aparıcı ayıklama modulu, düzəliş edilən modulun sınanması üçün informasiya mühitini hazırlayır (yəni bu modulun sınanması üçün lazım olan vəziyyətini yaradır, xüsusən də bəzi test məlumatlarını daxil edə bilər), ayıklanan modula müraciət edir və tamamlandıqdan sonra lazım olan mesajları verir. Bir modulu ayıklayarkən, fərqli testlər üçün fərqli aparıcı ayıklama modulları tərtib edilə bilər.

    Yuxarıdan aşağıya testlərdə (bax mühazirə 7), ayıklama modulları olaraq düzəldilən modulun mühiti, düzəldilən modulun əldə edə biləcəyi bütün modulların simulyatorlarını, həmçinin modulların ayıklanmış modulları ilə əldə edilə bilən simulyatorları ehtiva edir. proqramı düzəldilir (bu mühitə daxildir), lakin hələ də düzəldilməmişdir. Bu simulyatorlardan bəziləri, tək bir modulu ayıklayarkən fərqli testlər üçün dəyişə bilər.

    Əslində, bir çox hallarda ayıklanan modulun mühiti aşağıdakı səbəblərə görə hər iki növ ayıklama modulunu ehtiva edə bilər. Həm aşağıdan yuxarıya, həm də yuxarıdan aşağıya testlərin üstünlükləri və mənfi cəhətləri var.

    Aşağıdan yuxarıya testlərin üstünlükləri daxildir

    test hazırlamağın asanlığı və

    vahid test planını tam yerinə yetirmək bacarığı.

    Bunun səbəbi, məlumat mühitinin test vəziyyətinin, ayıklanan modula daxil olmadan dərhal əvvəl hazırlanmasıdır (aparıcı ayıklama modulu tərəfindən). Aşağıdan yuxarıya testlərin dezavantajları aşağıdakılardır:

    test məlumatları, bir qayda olaraq, istifadəçi üçün nəzərdə tutulmuş formada deyil (proqramın son, başı, modulu ayıklandığı hallar istisna olmaqla) hazırlanır;

    çox miqdarda hata ayıklama proqramlaşdırması (bir modulu ayıklayarkən, tez -tez fərqli testlər üçün bir çox aparıcı ayıklama modulu tərtib etməlisiniz);

    interfeys modullarının xüsusi sınaqdan keçirilməsinə ehtiyac.

    Yuxarıdan aşağıya testlərin üstünlükləri aşağıdakılardır:

    testlərin çoxu istifadəçi dostu formada hazırlanır;

    bir çox hallarda nisbətən az miqdarda hata ayıklama proqramlaşdırması (modul simulyatorları adətən olduqca sadədir və hər biri çoxlu sayda, əksər hallarda hamısı testlər üçün uyğundur);

    modulların cütləşməsini yoxlamağa ehtiyac yoxdur.

    Yuxarıdan aşağıya testin dezavantajı, ayıklanan modula girmədən əvvəl informasiya mühitinin test vəziyyətinin dolayı yolla hazırlanmasıdır - bu, artıq düzəldilmiş modulların test məlumatlarına və ya simulyatorlar tərəfindən verilən məlumatlara tətbiq edilməsinin nəticəsidir. Bu, birincisi, test hazırlamağı çətinləşdirir, sınaq mühəndisindən yüksək keyfiyyət tələb edir, ikincisi, düzəldilən modulun tam sınaq planını həyata keçirməyi çətinləşdirir və ya hətta mümkünsüz edir. Bu dezavantaj bəzən inkişaf etdiriciləri yuxarıdan aşağıya inkişaf etdirmə halında belə aşağıdan yuxarıya test tətbiq etməyə məcbur edir. Bununla birlikdə, yuxarıdan aşağıya edilən bəzi dəyişikliklər və ya yuxarıdan aşağıya və yuxarıdan aşağıya testlərin bəzi birləşmələri daha çox istifadə olunur.

    Prinsipcə yuxarıdan aşağıya testlərin üstünlük verildiyinə əsaslanaraq, müəyyən dərəcədə bu çətinliklərin öhdəsindən gəlməyə imkan verən texnikalar üzərində dayanaq. Hər şeydən əvvəl, proqramın ayıklanmasını elə bir şəkildə təşkil etmək lazımdır ki, məlumatların daxil edilməsini həyata keçirən modullar mümkün qədər erkən düzəldilsin - o zaman test məlumatları istifadəçi üçün nəzərdə tutulmuş formada hazırlana bilər ki, bu da sonrakı testlərin hazırlanmasını asanlaşdırmaq. Bu giriş həmişə baş modulda həyata keçirilmir; buna görə də hər şeydən əvvəl göstərilən girişi həyata keçirən modullara aparan modulların zəncirlərini düzəltmək lazımdır (Mühazirə 7 -də məqsədyönlü konstruktiv tətbiq üsulu ilə müqayisə edin). . Giriş modulları düzəldilənə qədər test məlumatları bəzi simulyatorlar tərəfindən təmin edilir: ya simulatorun bir hissəsi olaraq daxil edilir, ya da simulyator tərəfindən enjekte edilir.

    Yuxarıdan aşağıya yoxlama zamanı, düzəliş edilən modulun sınanması lazım olan məlumat mühitinin bəzi vəziyyətləri, hər hansı bir giriş məlumatı üçün düzəldilən proqramın icrası zamanı baş verə bilməz. Bu hallarda, düzəliş edilən modulun ümumiyyətlə sınanmaması mümkün olardı, çünki bu vəziyyətdə aşkar edilən səhvlər, hər hansı bir giriş məlumatı üçün düzəldilən proqramın icrası zamanı görünməyəcəkdir. Bununla birlikdə, bunu etmək tövsiyə edilmir, çünki düzəliş edilən proqram dəyişdikdə (məsələn, proqram təminatı sistemini saxlayarkən), ayaqlaşan modulun sınanması üçün istifadə edilməyən informasiya mühiti artıq yarana bilər ki, bu da əlavə test tələb edir. bu modul (və verilmiş modulun özü dəyişməsəydi, bu rasional bir ayıklama təşkilatı ilə edilə bilməzdi). Bu vəziyyətlərdə düzəldilmiş modulu sınamaq üçün bəzən informasiya mühitinin lazımi vəziyyətini yaratmaq üçün uyğun simulyatorlardan istifadə olunur. Daha tez-tez, düzəldilmiş modulların inteqrasiya edilməzdən əvvəl ayrı-ayrılıqda əvvəlcədən sınaqdan keçirildiyi yuxarıdan aşağıya testin dəyişdirilmiş bir versiyasından istifadə edirlər (bu vəziyyətdə, modul simulyatorları ilə birlikdə, düzəldilmiş modulun mühitində aparıcı bir ayıklama modulu görünür. ayıklanan modulun əldə edə biləcəyi). Bununla birlikdə, yuxarıdan aşağıya testin başqa bir modifikasiyası daha məqsədəuyğun görünür: məlumat mühitinin əldə edilə bilən test vəziyyətləri üçün düzəldilmiş modulun yuxarıdan aşağıya testi başa çatdıqdan sonra, digər tələb olunan vəziyyətlər üçün ayrıca sınaqdan keçirilməlidir. informasiya mühiti.

    Sandviç metodu adlanan yuxarı və aşağı testlərin birləşməsi də tez -tez istifadə olunur. Bu metodun mahiyyəti, həm aşağıdan yuxarıya, həm də yuxarıdan aşağıya testlərin eyni vaxtda tətbiq edilməsindədir, bu iki test prosesi, proqramın düzəldildiyi quruluşun ortasındakı bir modulda bir araya gələnə qədər. Bu üsul ağlabatan bir yanaşma ilə həm aşağıdan yuxarıya, həm də yuxarıdan aşağıya testlərin üstünlüklərindən istifadə etməyə və çatışmazlıqlarını böyük ölçüdə təsirsiz hala gətirməyə imkan verir. Bu təsir daha ümumi bir prinsipin təzahürüdür: ən böyük texnoloji effekt FP proqramlarının inkişaf etdirilməsinin yuxarıdan aşağıya və aşağıdan yuxarıya doğru üsullarını birləşdirməklə əldə edilə bilər. Proqram təminatına memarlıq yanaşmasının nəzərdə tutulduğu bu metodu dəstəkləməkdir (mühazirə 7 -yə baxın): ustalıqla işlənmiş və hərtərəfli sınaqdan keçirilmiş modullar təbəqəsi, müvafiq mövzu sahəsindəki proqramlar ailəsinin həyata keçirilməsini və sonrakı modernləşdirilməsini xeyli asanlaşdırır.

    Modulların qoşalaşmasını yoxlamaq üçün oflayn ayıklama üçün çox vacibdir. Fakt budur ki, başlıq istisna olmaqla hər bir proqram modulunun spesifikasiyası bu proqramda iki vəziyyətdə istifadə olunur: birincisi, bu modulun mətnini (bəzən deyirlər: gövdəsini) işlədərkən və ikincisi, proqramın digər modullarında bu modula zəng edin. Hər iki halda, bir səhv nəticəsində, verilən modul spesifikasiyasına tələb olunan uyğunluq pozula bilər. Bu cür səhvlər aşkarlanmalı və aradan qaldırılmalıdır. Modullar arasındakı əlaqəni yoxlamaq məqsədi budur. Yuxarıdan aşağıya testlərdə, cütləşdirmə testi atlanan hər bir testlə birlikdə aparılır və bu yuxarıdan aşağıya testin ən güclü üstünlüyü hesab olunur. Aşağıdan yuxarı yoxlama zamanı, ayıklanan modulun ünvanı, düzəldilən proqramın modullarından deyil, master ayıklayıcısından hazırlanır. Bu baxımdan, son modulun ayıklanan modulun bəzi "xəyallarına" uyğunlaşma təhlükəsi var. Buna görə, yeni bir modul ayıklamaya başlayarkən (proqram inteqrasiyası prosesində), bu çağırışın uyğun modulun gövdəsi ilə uyğunsuzluğunu aşkar etmək üçün əvvəllər düzəldilmiş hər bir modulu sınamalısınız. Bunun üçün əvvəllər düzəldilmiş modul günahkardır). Beləliklə, yuxarıdan aşağıya testdə olduğu kimi eyni çətinliklər ortaya çıxarkən, əvvəllər düzəldilmiş modulun sınaqlarını yeni şərtlərdə qismən təkrarlamaq lazımdır.

    Bir modulun dörd ardıcıl addımda muxtar sınaqdan keçirilməsi məsləhət görülür.

    Addım 1. Ayıklanan modulun spesifikasiyasına əsaslanaraq, hər bir ehtimal və hər bir vəziyyət üçün, bütün girişlərin etibarlı dəyərlər aralığının hər bir hüdudu üçün, hər bir məlumat dəyişikliyi aralığı üçün, hər bir etibarsız aralıq üçün bir test hazırlayın. bütün girişlərin dəyərləri və hər bir etibarsız şərt.

    Addım 2. Hər hansı bir filialın hər istiqamətinin ən azı bir sınaqdan keçəcəyinə əmin olmaq üçün modulun mətnini yoxlayın. Eksik testləri əlavə edin.

    Addım 3. Modul mətnindən əmin olun ki, hər bir döngə üçün döngə gövdəsinin icra olunmadığı bir test, döngə gövdəsinin bir dəfə icra olunduğu bir test və döngə gövdəsinin maksimum sayının icra olunduğu bir test var. dəfə. Eksik testləri əlavə edin.

    Addım 4. Modulun mətnində giriş məlumatlarının fərdi xüsusi dəyərlərinə həssaslığını yoxlayın - bütün bu dəyərlər testlərə daxil edilməlidir. Eksik testləri əlavə edin.

  44. 10.5. Mürəkkəb proqram ayıklama.

  45. Yuxarıda qeyd edildiyi kimi, kompleks ayıklama zamanı proqram sistemi bütövlükdə sınaqdan keçirilir və proqram sənədlərinin hər biri üçün testlər hazırlanır. Bu sənədlərin sınağı, bir qayda olaraq, tərs tərs qaydada aparılır (yeganə istisna, proqram mətnlərinin hazırlanması ilə paralel olaraq xarici təsvirə uyğun olaraq işlənmiş tətbiq sənədlərinin sınanmasıdır; xarici təsviri sınadıqdan sonra bu testi həyata keçirin). Mürəkkəb ayıklama ilə test, prinsipcə istifadəçidən yarana bilən xüsusi məlumatlara proqram sistemlərinin tətbiqidir (xüsusən də bütün testlər istifadəçi üçün hazırlanmış formada hazırlanır), lakin, ehtimal ki, simulyasiya edilmiş (və real) mühitdə. Məsələn, kompleks ayıklama sistemində olmayan bəzi giriş və çıxış cihazları proqram simulyatorları ilə əvəz edilə bilər.

    PS memarlığının sınanması. Testin məqsədi memarlığın təsviri ilə proqram proqramları dəsti arasında uyğunsuzluq tapmaqdır. PS arxitekturasının sınaqları başlayanda hər bir alt sistemin muxtar ayıklama işləri artıq başa çatmış olmalı idi. Memarlığın həyata keçirilməsindəki səhvlər ilk növbədə bu alt sistemlərin qarşılıqlı əlaqəsi ilə, xüsusən də memarlıq funksiyalarının (əgər varsa) həyata keçirilməsi ilə əlaqələndirilə bilər. Buna görə PS alt sistemləri arasında qarşılıqlı əlaqənin bütün yollarını yoxlamaq istərdim. Ancaq çox ola biləcəyi üçün, ikinci sistemə girmədən ən azından bütün alt sistemlərin icra zəncirlərini sınamaq olardı. Verilmiş bir arxitektura kiçik bir xüsusi alt sistemlər sistemi olaraq PS -ni təmsil edərsə, bu cür zəncirlərin sayı kifayət qədər görünəcəkdir.

    Xarici funksiyaların sınanması. Testin məqsədi, funksional spesifikasiya ilə proqram proqramları dəsti arasındakı uyğunsuzluqları tapmaqdır. Bütün bu proqramların artıq avtonom şəkildə düzəldilməsinə baxmayaraq, göstərilən uyğunsuzluqlar, məsələn, proqramların daxili xüsusiyyətlərinin və onların modullarının (bunun əsasında avtonom sınaqların keçirildiyi) uyğunsuzluğundan qaynaqlana bilər. proqram sisteminin xarici funksional spesifikasiyası. Bir qayda olaraq, xarici funksiyaların sınağı ilk mərhələdə modulların sınanması ilə eyni şəkildə aparılır, yəni. qara qutu kimi.

    PS keyfiyyətinin yoxlanılması. Testin məqsədi, proqram sisteminin keyfiyyət spesifikasiyasında ifadə olunan keyfiyyət tələblərinin pozulduğunu tapmaqdır. Bu ən çətin və ən az öyrənilən test növüdür. Proqram keyfiyyətinin hər bir primitivinin sınaqdan keçirilə bilməyəcəyi aydındır (proqramın keyfiyyətinin qiymətləndirilməsi haqqında, növbəti mühazirəyə baxın). Xarici funksiyaları sınayarkən PS -nin tamlığı yoxlanılır. Bu mərhələdə, PS etibarlılıq dərəcəsinin hər hansı bir ehtimal qiymətləndirməsinin əldə edilməsi tələb olunarsa, bu keyfiyyət primitivinin sınağı davam etdirilə bilər. Ancaq bu cür testlərin metodologiyası hələ də inkişaf etdirilməlidir. Dəqiqlik, möhkəmlik, təhlükəsizlik, vaxt səmərəliliyi, müəyyən dərəcədə yaddaş səmərəliliyi, cihaz səmərəliliyi, ölçeklenebilirlik və qismən cihaz müstəqilliyi yoxlanıla bilər. Bu test növlərinin hər biri öz xüsusiyyətlərinə malikdir və ayrıca nəzərdən keçirilməlidir. Biz burada yalnız onların sadalanması ilə məhdudlaşacağıq. PS -nin tətbiqinin asanlığı (bir neçə keyfiyyət primitivini özündə birləşdirən keyfiyyət meyarı, bax mühazirə 4) PS -nin tətbiqi üçün sənədlərin sınanması ilə qiymətləndirilir.

    PS tətbiqi üçün test sənədləri. Testin məqsədi tətbiq sənədləri ilə proqram proqramları dəsti arasındakı uyğunsuzluğu, həmçinin proqramdan istifadə zamanı yaranan narahatlıqları axtarmaqdır. Bu mərhələ, istifadəçinin proqram təminatının hazırlanmasının tamamlanmasından dərhal əvvəl (proqram təminatına olan tələblərin yoxlanılması və proqramın təsdiqlənməsi) ərəfəsindədir, buna görə də proqramçıların istifadəçinin istədiyi kimi əvvəlcə proqramdan istifadə etməsi çox vacibdir. Bu mərhələdəki bütün testlər yalnız PS tətbiqi üçün yalnız sənədlər əsasında hazırlanır. Hər şeydən əvvəl, proqramın imkanları xarici funksiyaları sınayarkən olduğu kimi yoxlanılmalıdır, ancaq tətbiq sənədləri əsasında. Sənədlərdə hər hansı bir qaranlıq məqam yoxlanılmalı və sənədlərdə istifadə olunan bütün nümunələr yoxlanılmalıdır. Bundan əlavə, PS tətbiqinin asanlığının nisbilik tələblərinin pozulduğunu aşkar etmək üçün PS tətbiqinin ən çətin halları sınaqdan keçirilir.

    Proqram təminatı üçün tələblərin tərifini yoxlamaq. Testin məqsədi, bir proqram sisteminin ona verilən tələblərə nə dərəcədə uyğun gəlmədiyini öyrənməkdir. Bu tip testlərin özəlliyi ondan ibarətdir ki, bu, proqram təminatçısının alıcısı və ya istifadəçi təşkilatı tərəfindən geliştirici ilə istifadəçi arasındakı maneəni aşmağın yollarından biri olaraq həyata keçirilir (bax. Mühazirə 3). Tipik olaraq, bu test idarəetmə tapşırıqlarından istifadə etməklə həyata keçirilir - həllinin nəticəsinin məlum olduğu tipik tapşırıqlar. İnkişaf etmiş proqram sisteminin inkişaf etdirilmiş proqram sisteminin vəzifələrinin ən azı bir hissəsini həll edən proqram sisteminin başqa bir versiyasını əvəz etməsi lazım olduğu hallarda, test həm köhnə, həm də yeni proqram sistemlərindən istifadə edərək ümumi problemləri həll etməklə, sonradan müqayisə olunmaqla aparılır. əldə edilən nəticələr. Bəzən belə bir test forması olaraq PS -nin sınaq əməliyyatından istifadə edirlər - nəticələrin praktik fəaliyyətlərdə istifadəsinin təhlili ilə yeni bir PS -nin məhdud tətbiqi. Əslində, bu tip testlərin attestasiya zamanı PS testi ilə çox oxşar cəhətləri var (bax mühazirə 14), lakin attestasiyadan əvvəl, bəzən isə attestasiyanın yerinə yerinə yetirilir.

  46. Mühazirə üçün ədəbiyyat 10.

  47. 10.1. G. Myers. Proqram təminatının etibarlılığı. - M.: Mir, 1980.- S. 171-262.

    10.2. D. Van Püskül. Proqramların tərzi, inkişafı, səmərəliliyi, ayıklama və sınaqları. - M.: Mir, 1985.- S. 179-295.

    10.3. J. Hughes, J. Michtom. Proqramlaşdırmaya strukturlaşdırılmış bir yanaşma. - M.: Mir, 1980.- S. 254-268.

    10.4. J. Fox. Proqram təminatı və onun inkişafı. - M.: Mir, 1985.- S. 227-241.

    10.5. M. Zelkowitz, A. Shaw, J. Gannon. Proqram təminatının hazırlanması prinsipləri. - M.: Mir, 1982.- S. 105-116.

    10.6. Yu.M. Bezborodov. Proqramların fərdi ayıklanması. - M.: Nauka, 1982.- S. 9-79.

    10.7. V.V. Lipaev. Test proqramları. - M.: Radio və rabitə, 1986. - S. 15-47.

    10.8. E.A. Zhogolev. Proqramlaşdırma texnologiyasına giriş (mühazirə qeydləri). - M.: "DIALOG-MGU", 1994.

    10.9. E. Dijkstra. Strukturlaşdırılmış proqramlaşdırma haqqında qeydlər. // U. Dahl, E. Dijkstra, K. Hoore. Strukturlaşdırılmış proqramlaşdırma. - M.: Mir, 1975.- S. 7-13.

  48. Mühazirə 11. Proqram təminatının funksionallığının və etibarlılığının təmin edilməsi

  49. 11.1. Bir proqram vasitəsinin keyfiyyətinin məcburi meyarı olaraq funksionallıq və etibarlılıq.

  50. Əvvəlki mühazirədə, proqram təminatının sertifikatlaşdırılması istisna olmaqla, bütün mərhələlərini araşdırdıq. Eyni zamanda, PS keyfiyyətinin keyfiyyət spesifikasiyasına uyğun olaraq təmin edilməsi məsələlərinə toxunmadıq (bax mühazirə 4). Doğrudur, PS -nin funksional spesifikasiyasını həyata keçirərkən, bununla da funksionallıq meyarının təmin edilməsinin əsas məsələlərini müzakirə etdik. Proqram sisteminin etibarlılığını əsas atributu olaraq elan edərək (bax mühazirə 1), proqram sisteminin etibarlılığını təmin etmək üçün əsas yanaşma olaraq səhvlərin qarşısının alınmasını seçdik (bax mühazirə 3) və proqram inkişafının müxtəlif mərhələlərində tətbiqini müzakirə etdik. Beləliklə, keyfiyyət sisteminin meyarı olaraq proqram sisteminin məcburi işləməsi və etibarlılığı haqqında tezis özünü göstərdi.

    Buna baxmayaraq, proqram sisteminin keyfiyyət spesifikasiyası bu meyarların əlavə xüsusiyyətlərini ehtiva edə bilər ki, onların təmin edilməsi xüsusi müzakirə tələb edir. Bu dərs bu suallara həsr edilmişdir. Digər keyfiyyət meyarlarının təminatı növbəti mühazirədə müzakirə olunacaq.

    Aşağıda, proqram təminatının funksionallığı və etibarlılığı meyarlarını ifadə edən proqram keyfiyyəti primitivlərinin təmin edilməsini müzakirə edirik.

  51. 11.2. Proqram təminatının tamlığının təmin edilməsi.

  52. PS -nin tamlığı, PS -nin həm funksionallığını, həm də etibarlılığını ifadə etmək üçün PS keyfiyyətinin ümumi primitividir və funksionallıq üçün yeganə primitivdir (bax mühazirə 4).

    Bir proqram sisteminin funksionallığı onun funksional spesifikasiyası ilə müəyyən edilir. PS -nin keyfiyyətinin ibtidai olması, bu spesifikasiyanın verilən PS -də necə tətbiq olunduğunun bir ölçüsüdür. Bu ibtidai bütövlükdə təmin etmək, orada göstərilən bütün detallar və xüsusiyyətlərlə birlikdə funksional spesifikasiyada müəyyən edilmiş funksiyaların hər birinin həyata keçirilməsi deməkdir. Daha əvvəl müzakirə olunan bütün texnoloji proseslər bunun necə edilə biləcəyini göstərir.

    Bununla birlikdə, proqram sisteminin keyfiyyətinin spesifikasiyasında proqram funksionallığının bir neçə səviyyəli həyata keçirilməsini müəyyən etmək olar: ilk növbədə tətbiq olunmalı olan müəyyən sadələşdirilmiş (ilkin və ya ilkin) versiya müəyyən edilə bilər. versiyaları da müəyyən edilə bilər. Bu vəziyyətdə əlavə bir texnoloji vəzifə ortaya çıxır: PS -nin funksionallığının artırılmasının təşkili. Burada qeyd etmək vacibdir ki, proqram sisteminin sadələşdirilmiş versiyasının hazırlanması onun prototipinin inkişafı deyil. Prototip gələcək PS -nin tətbiqi şərtlərini daha yaxşı başa düşmək, xarici təsvirini aydınlaşdırmaq üçün hazırlanır. Seçilmiş istifadəçilər üçün nəzərdə tutulmuşdur və buna görə də yalnız yerinə yetirilən funksiyalarla deyil, həm də istifadəçi interfeysinin xüsusiyyətləri ilə də tələb olunan proqram sistemindən çox fərqli ola bilər. Tələb olunan proqram sisteminin sadələşdirilmiş versiyası, nəzərdə tutulduğu hər hansı bir istifadəçi tərəfindən praktik istifadə üçün nəzərdə tutulmalıdır. Buna görə də, belə bir proqram sisteminin funksionallığının təmin edilməsinin əsas prinsipi, proqram sistemini proqram təminatının bu hissələri və ya detalları ilə məşğul olana qədər, proqram sisteminə tam ehtiyac olduğu kimi, əvvəldən inkişaf etdirməkdir. keyfiyyətinin spesifikasiyasına görə, həyata keçirilməsi təxirə salına bilən sistem. Beləliklə, həm xarici təsvir, həm də PS arxitekturasının təsviri tam şəkildə inkişaf etdirilməlidir. Yalnız bu proqram sisteminin ilkin versiyasında işləməsi tələb olunmayan, inkişaf etmiş proqram sisteminin memarlığında müəyyən edilmiş proqram alt sistemlərinin tətbiqini təxirə sala bilərsiniz. Proqram alt sistemlərinin özləri, ən yaxşı şəkildə, bu versiyada işləməsi tələb olunmayan proqram modullarının uyğun simulyatorlarını proqramın ilk versiyasında buraxaraq, məqsədyönlü konstruktiv həyata keçirmə üsulu ilə ən yaxşı şəkildə həyata keçirilir. Bəzilərinin sadələşdirilmiş tətbiqi proqram modulları müvafiq funksiyaların bəzi detallarının həyata keçirilməsini istisna edir. Bununla belə, texnoloji baxımdan belə modullara ən yaxşı təqlidçilər kimi baxılır (çox inkişaf etmiş olsa da).

    İnkişaf etmiş proqram sistemindəki səhvlər səbəbindən, funksionallığını təmin edərkən əldə edilən tamlıq (keyfiyyət spesifikasiyasına uyğun olaraq) əslində gözlənildiyi kimi olmaya bilər. Yalnız deyə bilərik ki, bu tamlığın yerinə yetirilən testin həcmi və keyfiyyəti ilə müəyyən edilmiş müəyyən bir ehtimalla əldə edilmişdir. Bu ehtimalı artırmaq üçün proqramın sınanmasına və ayıklanmasına davam etmək lazımdır. Bununla belə, belə bir ehtimalın qiymətləndirilməsi çox spesifik bir işdir (PS -də səhvin təzahürünün ilkin məlumatların funksiyası olduğunu nəzərə alaraq), hələ də müvafiq nəzəri tədqiqatları gözləyir.

  53. 11.3. Proqram təminatının dəqiqliyinin təmin edilməsi.

  54. Bu ibtidai təmin etmək, real növ dəyərləri (daha doğrusu, bir az səhv xətası ilə təmsil olunan dəyərlər) ilə əlaqədardır. Müəyyən bir funksiyanın dəyərini hesablayarkən lazımi dəqiqliyi təmin etmək, bu həddi göstərilən sərhədləri keçməyən bir səhvlə əldə etmək deməkdir. Hesablama riyaziyyatı səhvlərin növləri, onların qiymətləndirilməsi üsulları və lazımi dəqiqliyə çatma üsulları (təxmini hesablamalar adlanır) ilə məşğul olur. Burada yalnız xətanın bəzi quruluşuna diqqət yetirəcəyik: hesablanmış dəyərin xətası (ümumi səhv) asılıdır

    istifadə olunan hesablama metodunun səhvinə (istifadə olunan modelin qeyri -dəqiqliyini daxil etdiyimiz),

    istifadə olunan məlumatların təqdim edilməsindəki səhvdən (sözdə ölümcül səhvdən),

    yuvarlaqlaşdırma səhvindən (metodda istifadə olunan əməliyyatların yerinə yetirilməsindəki qeyri -dəqiqliklər).

  55. 11.4. Proqramın müstəqilliyinin təmin edilməsi.

  56. Bu keyfiyyət primitivi, inkişaf etdirilən proqramda uyğun hər hansı bir əsas proqramdan istifadə edib -etməyəcəyinizə qərar verməklə keyfiyyətin dəqiqləşdirilməsi mərhələsində təmin edilir. Bu vəziyyətdə həm etibarlılığını, həm də istifadəsi üçün lazım olan qaynaqları nəzərə almaq lazımdır. İnkişaf etdirilmiş proqram sisteminin etibarlılığına olan tələblərin artması ilə, inkişaf etdiricilərin ixtiyarında olan əsas proqram təminatının etibarlılığı qənaətbəxş ola bilər, buna görə də ondan imtina edilməli və funksiyalarının lazımi həcmdə həyata keçirilməsi təmin edilməlidir. proqram sisteminə daxil edilməlidir. Oxşar qərarlar istifadə olunan mənbələrə ciddi məhdudiyyətlər qoyulmaqla qəbul edilməlidir (PS səmərəlilik meyarına görə).

  57. 11.5. Proqram təminatının sabitliyinin təmin edilməsi.

  58. Bu keyfiyyətli primitiv, sözdə müdafiə proqramı vasitəsi ilə təmin edilir. Ümumiyyətlə, müdafiə proqramlaşdırması daha geniş mənada bir modul proqramlaşdırarkən PS -nin etibarlılığını artırmaq üçün istifadə olunur. Myersin iddia etdiyi kimi, "Müdafiə proqramlaşdırması əhəmiyyətli bir əsasa əsaslanır: bir modulun edə biləcəyi ən pis şey səhv girişi qəbul etmək və sonra səhv, lakin inandırıcı bir nəticə verməkdir." Bunun qarşısını almaq üçün modulun mətninə, bu modulun spesifikasiyasına uyğun olaraq, giriş və çıxış məlumatlarının düzgünlüyünün yoxlanılması, xüsusən də giriş və çıxış məlumatlarına qoyulan məhdudiyyətlərin yerinə yetirilməsi və aralarındakı əlaqələr daxildir. modul spesifikasiyasında yoxlanılmalıdır. Yoxlama uğursuz olarsa, müvafiq bir istisna qaldırılır. Bu baxımdan, bu modulun sonuna ikinci növ fraqmentlər daxil edilir - lazımi diaqnostik məlumatları yaymaqla yanaşı, ya məlumatdakı səhvləri aradan qaldırmaq üçün tədbirlər görə bilən müvafiq istisnaların işçiləri (məsələn, yenidən daxil olmalarını tələb edin) və ya səhvin təsirini zəiflətmək (məsələn, proqramın icrasının təcili olaraq dayandırılması halında qəzaya uğramaması üçün PS tərəfindən idarə olunan cihazların yumşaq dayandırılması).

    Modulların müdafiə proqramlaşdırmasının istifadəsi həm vaxtında, həm də yaddaşda PS -nin səmərəliliyinin azalmasına səbəb olur. Buna görə də, inkişaf etdirilən proqram sisteminin keyfiyyət spesifikasiyasında formalaşdırılmış proqram sisteminin etibarlılığı və səmərəliliyinə olan tələblərdən asılı olaraq müdafiə proqramlaşdırmasının tətbiq dərəcəsini əsaslı şəkildə tənzimləmək lazımdır. Hazırlanan modulun giriş məlumatları ya birbaşa istifadəçidən, ya da digər modullardan əldə edilə bilər. Müdafiə proqramlaşdırması üçün ən çox istifadə edilən vəziyyət, proqramın sabitliyinin həyata keçirilməsini nəzərdə tutan birinci qrup məlumat üçün tətbiqidir. Bu, PS keyfiyyət spesifikasiyasında proqram təminatının sabitliyini təmin etmək tələbi olduqda edilməlidir. İkinci giriş qrupu üçün müdafiə proqramlaşdırma istifadə etmək, inkişaf etdirilən bir modulun icrası zamanı digər modullarda bir səhv aşkar etməyə çalışmaq və inkişaf etdirilmiş bir modulun çıxışı üçün bu modulun özündə bir səhvin aşkar edilməsi cəhdi deməkdir. Əslində, bu, 3 -cü mühazirədə müzakirə olunan proqram təminatının etibarlılığını təmin etmək üçün səhvlərin özünü aşkar etmə yanaşmasının qismən tətbiqi deməkdir. Bu müdafiə proqramlaşdırma hadisəsi çox nadir hallarda istifadə olunur - yalnız proqramın etibarlılığına olan tələblər olduqda. son dərəcə yüksəkdir.

  59. 11.6. Proqram təminatının təhlükəsizliyinin təmin edilməsi.

  60. Məlumat təhrifinə qarşı proqram təminatının aşağıdakı növləri var:

    avadanlıq çatışmazlıqlarından qorunma;

    "xarici" proqramın təsirindən qorunma;

    "öz" proqramının uğursuzluqlarından qorunma;

    operator (istifadəçi) səhvlərindən qorunma;

    icazəsiz girişdən qorunma;

    qorunmaqdan qorunmaq.

    Avadanlıq arızalarından qorunma hal -hazırda çox aktual bir problem deyil (kompüterlərin əldə edilmiş etibarlılıq səviyyəsi nəzərə alınmaqla). Ancaq həllini bilmək hələ də faydalıdır. Bu, "ikiqat üçlü səhv hesablamalar" ın təşkili ilə təmin edilir. Bunun üçün, PS tərəfindən təyin olunan bütün məlumat işləmə prosesi, "istinad nöqtələri" adlanan zaman aralığına bölünür. Bu interval kompüterin MTBF -nin yarısından çox olmamalıdır. Hər bir istinad nöqtəsi üçün bu prosesdə dəyişdirilən yaddaş vəziyyətinin bir nüsxəsi, məlumatların işlənməsi nəzərə alınacağı təqdirdə, müəyyən bir cheksum (bu vəziyyətin funksiyası olaraq hesablanmış bir rəqəm) ilə ikincil yaddaşa yazılır. əvvəlki istinad nöqtəsindən bu nöqtəyə (yəni bir "səhv hesablama") düzgün (kompüteri çökdürmədən) edildi. Bunu öyrənmək üçün iki belə "səhv hesablama" aparılır. İlk "səhv hesablamadan" sonra, göstərilən yoxlama məbləği hesablanır və saxlanılır, sonra əvvəlki istinad nöqtəsi üçün yaddaş vəziyyəti bərpa edilir və ikinci "səhv hesablama" aparılır. İkinci "səhv hesablamadan" sonra göstərilən yoxlama məbləği yenidən hesablanır və bu, ilk "səhv hesablamanın" cəmi ilə müqayisə olunur. Bu iki çek məbləği uyğun gəlsə, ikinci hesablama düzgün sayılır, əks halda ikinci "hesablamanın" cəmi də xatırlanır və üçüncü "hesablama" aparılır (əvvəlki istinad nöqtəsi üçün yaddaş vəziyyətinin əvvəlcədən bərpası ilə). Üçüncü "səhv hesablamanın" cəmi ilk iki "səhv hesablamadan" birinin cəmi ilə üst -üstə düşürsə, üçüncü səhv hesablama düzgün sayılır, əks halda kompüterin mühəndislik yoxlaması tələb olunur.

    "Xarici" bir proqramın təsirindən qorunma ilk növbədə öz funksiyalarını qismən yerinə yetirən əməliyyat sistemlərinə və ya proqramlara aiddir. Bu qorunmanın iki növü var:

    uğursuzluqdan qorunma,

    "xarici" proqramın zərərli təsirindən qorunma.

    Yaddaşında bir kompüterin çox proqramlı bir iş rejimi göründüyü zaman, yaranan fasilələr nəticəsində (nəzəri olaraq paralel proqramın icrası) bir neçə proqram eyni zamanda icra mərhələsində ola bilər. Bu proqramlardan biri (adətən: əməliyyat sistemi) fasilələrlə işləmə və çox proqramlaşdırma ilə məşğul olur. Bu proqramların hər birində digər proqramların funksiyalarının yerinə yetirilməsinə təsir edə biləcək uğursuzluqlar (səhvlər) baş verə bilər. Buna görə də idarəetmə proqramı (əməliyyat sistemi) özünü və digər proqramları bu cür təsirdən qorumalıdır. Bunun üçün kompüter avadanlığı aşağıdakı imkanları həyata keçirməlidir:

    yaddaş qorunması,

    kompüterin iki iş rejimi: imtiyazlı və işləyən (istifadəçi),

    iki növ əməliyyat: imtiyazlı və adi

    fasilələrin düzgün tətbiq edilməsi və kompüterin ilk işə salınması,

    müvəqqəti fasilə.

    Yaddaşın qorunması, yaddaşın əlçatmaz olan hər bir proqram sahəsi üçün proqramlaşdırma qurma qabiliyyəti deməkdir. İmtiyazlı rejimdə istənilən əməliyyatlar yerinə yetirilə bilər (həm adi, həm də imtiyazlı) və iş rejimində yalnız adi əməliyyatlar. İmtiyazlı bir əməliyyat yerinə yetirmək cəhdi, həm də iş rejimində qorunan yaddaşa daxil olmaq, müvafiq bir kəsilməyə səbəb olur. Üstəlik, imtiyazlı əməliyyatlar yaddaşın qorunması və iş rejiminin dəyişdirilməsi, habelə xarici informasiya mühitinə çıxış əməliyyatlarıdır. Kompüterin ilk işə salınması və hər hansı bir fasilə avtomatik olaraq imtiyazlı rejimi aktivləşdirməli və yaddaş qorunmasını ləğv etməlidir. Bu vəziyyətdə, idarəetmə proqramı (əməliyyat sistemi), başqa bir proqrama icazə vermədiyi təqdirdə, ilkin açılış və kəsilmələr zamanı idarəetmənin bütün ötürmə nöqtələri bu proqrama aiddirsə, özünü digər proqramların təsirindən tamamilə qoruya bilər. imtiyazlı rejimdə işləmək (nəzarəti digərinə ötürərkən proqram yalnız iş rejimini işə salacaq) və yaddaşını tamamilə qoruyarsa (xüsusən də sözdə kəsmə vektorları da daxil olmaqla bütün nəzarət məlumatlarını ehtiva edir). . O zaman heç kim onun həyata keçirildiyi digər proqramları (xarici informasiya mühitinə giriş daxil olmaqla) qorumaq üçün heç bir funksiyanı yerinə yetirməsinə mane olmayacaq. Bu problemin həllini asanlaşdırmaq üçün belə bir proqramın bir hissəsi daimi yaddaşa yerləşdirilir, yəni. kompüterin özündən ayrılmazdır. Müvəqqəti fasilənin olması nəzarət proqramının özünü digər proqramlarda döngədən qorumasına imkan verir (belə bir fasilə olmadan sadəcə idarəetmə qabiliyyətini itirə bilər).

    "Öz" proqramının uğursuzluqlarından qorunma, bu mühazirə kursunda müzakirə olunan bütün proqramlaşdırma texnologiyasının diqqət mərkəzində olan bu proqramın etibarlılığı ilə təmin edilir.

    İstifadəçi səhvlərindən qorunma (giriş məlumatları səhvlərinə əlavə olaraq, proqram sisteminin sabitliyinin təmin edilməsinə baxın), bu hərəkətləri təsdiqləmək tələbi ilə xarici informasiya mühitinin vəziyyətini dəyişdirmək cəhdləri ilə əlaqədar xəbərdarlıq mesajları verməklə təmin edilir. xarici informasiya mühitinin ayrı -ayrı komponentlərinin vəziyyətini bərpa etmək bacarığı. Sonuncu, xarici informasiya mühitinin vəziyyətindəki dəyişiklikləri arxivləşdirməyə əsaslanır.

    İcazəsiz girişdən qorunma gizli sözlərdən (şifrələrdən) istifadə etməklə təmin edilir. Bu halda, hər bir istifadəçiyə müəyyən məlumat və prosedur resurslar (xidmətlər) verilir ki, onlardan istifadə PS -nin bu istifadəçi tərəfindən əvvəllər PS -də qeydiyyatdan keçmiş müəyyən bir şifrəni təqdim etməsini tələb edir. Başqa sözlə, istifadəçi sanki ona ayrılan mənbələrə "kilidi asır", "açarı" yalnız bu istifadəçidədir. Ancaq bəzi hallarda, qorunan mənbələr kimsə üçün həddən artıq dəyərlidirsə, bu cür qorumanı pozmaq üçün davamlı cəhdlər edilə bilər. Belə bir vəziyyət üçün, hack hücumlarından qorunmaq üçün əlavə tədbirlər görməlisiniz.

    Qoruma müdaxiləsindən qorunma, proqramda icazəsiz girişdən qorunmanın öhdəsindən gəlməyi çətinləşdirən xüsusi proqramlaşdırma üsullarının istifadəsi ilə əlaqədardır. Dəyərli məlumatlara çıxış əldə etmək üçün son dərəcə israrlı bir istək (məsələn, cinayət xarakterli) olduqda, adi parolların istifadəsi qeyri -kafidir. Birincisi, icazəsiz girişdən qorunmaq üçün bir PS tərəfindən istifadə edilən parollar haqqında məlumatlar, çünki bu qorunmanın "kraker" i, əgər bu PS -nin özünə daxil olarsa, nisbətən asanlıqla əldə edə bilər. İkincisi, bir kompüterdən istifadə edərək maraqlanan məlumatlara daxil olmaq üçün uyğun bir parol tapmaq üçün mümkün olan parolların kifayət qədər böyük bir siyahısını aparmaq mümkündür. Özünüzü belə bir hackdən aşağıdakı kimi qoruya bilərsiniz. Gizli söz (şifrə) və ya yalnız gizli bir tam ədəd X yalnız qorunan məlumatın sahibi tərəfindən tanınır və giriş hüquqlarını yoxlamaq üçün kompüterdə unikal olaraq hesablanmış başqa bir Y = F (X) nömrəsi saxlanılır. gizli məlumat təqdim edildikdə bu məlumatlara daxil olmaq üçün hər cəhd üçün. Bu vəziyyətdə, F funksiyası bütün PS istifadəçilərinə yaxşı bəlli ola bilər, ancaq X sözünü Y -dən bərpa etmək praktiki olaraq mümkün olmayan bir xüsusiyyətə malikdir: X sözünün kifayət qədər böyük uzunluğu ilə (məsələn, bir neçə yüz) simvol), bunun üçün astronomik vaxt lazımdır. Belə bir Y rəqəmi, gizli X sözünün (və buna görə də qorunan məlumatların) sahibinin elektron (kompüter) imzası adlandırılacaq.

    Belə bir qorunmanın başqa bir növü, kompüter şəbəkələri üzərindən göndərilən mesajların qorunması, qəsdən (və ya zərərli) təhrif edilməsidir. Belə bir mesaj kompüter şəbəkəsinin "köçürmə" nöqtələrində ələ keçirilə və tutulan mesajın müəllifindən başqa bir mesajla əvəz edilə bilər. Bu vəziyyət ilk növbədə bir kompüter şəbəkəsi istifadə edərək bank əməliyyatları həyata keçirərkən yaranır. Bank hesabının sahibinin müəyyən bir bank əməliyyatı aparmaq əmri olan belə bir mesajı əvəz etməklə onun hesabından olan pullar mühafizə "krakerinin" hesabına köçürülə bilər (bir növ kompüter bankı soyğunçuluğu). Belə bir müdafiə pozuntusuna qarşı müdafiə aşağıdakı kimi həyata keçirilə bilər. Qorunan mesajın adresinin bildiyi gizli X sözünün sahibinin kompüter imzasını təyin edən F funksiyası ilə birlikdə (yalnız sahibi bu ünvanın müştərisidirsə), PS başqa bir Stamp funksiyasını təyin edir. mesajı göndərən şəxs X sözünü və ötürülən mesajın mətnini istifadə edərək S = Damğa (X, R) sayını hesablamalıdır. Damğa funksiyası da bütün PS istifadəçiləri tərəfindən yaxşı tanınır və belə bir xüsusiyyətə malikdir X nömrəsini S -dən bərpa etməyin və ya müvafiq kompüter imzası olan başqa bir R mesajının alınmasının praktiki olaraq mümkün olmadığını. Göndərilən mesajın özü (qorunması ilə birlikdə) aşağıdakı formaya malik olmalıdır:

    üstəlik, Y (kompüter imzası) ünvana müştərinin həqiqətini təyin etməyə imkan verir və S, olduğu kimi, qorunan mesajı R -ni kompüter imzası ilə bağlayır. Bu baxımdan S nömrəsinə elektron (kompüter) deyəcəyik. ) möhür. PS, qorunan mesajı alan, ötürülən mesajın doğruluğunu yoxlayan başqa bir Notarius funksiyasını təyin edir:

  61. Bu, R mesajının gizli X sözünün sahibinə aid olduğunu birmənalı şəkildə müəyyən etməyə imkan verir.

    İstifadəçi parolunu unutduqda (və ya itirdikdə) qorunmaqdan qorunmaq lazımdır. Belə bir vəziyyətdə, qorunma sisteminin işindən məsul olan xüsusi bir istifadəçinin (PS idarəçisinin) yeni bir parol düzəltməsini təmin etmək üçün unudulmuş parol sahibinin icazəsiz girişdən qorunmasını müvəqqəti olaraq aradan qaldırması mümkün olmalıdır. .

  62. Dərs üçün ədəbiyyat 11.

  63. 11.1. I.S. Berezin, N.P. Jidkov. Hesablama üsulları, cild. 1 və 2. - Moskva: Fizmatgiz, 1959.

    11.2. NS. Baxvalov, N.P. Jidkov, G.M. Kobelkov. Rəqəmsal üsullar. - M.: Nauka, 1987.

    11.3. G. Myers. Proqram təminatının etibarlılığı. - M.: Mir, 1980.S. 127-154.

    11.4. A.N. Lebedev. Bank məlumat təhlükəsizliyi və müasir kriptoqrafiya // İnformasiya təhlükəsizliyi məsələləri, 2 (29), 1995.

  64. Mühazirə 12. Proqram təminatının keyfiyyətinin təminatı

  65. 12.1. Proqram vasitələri üçün keyfiyyət təminatı prosesinin ümumi xüsusiyyətləri.

  66. Mühazirə 4 -də qeyd edildiyi kimi, keyfiyyət spesifikasiyası proqram təminatının hazırlanmasının bütün mərhələlərində bu və ya digər şəkildə müxtəlif qərarlar qəbul edərkən uyğun bir seçimin seçilməsinə təsir edən əsas qaydaları (məqsədləri) müəyyən edir. Bununla birlikdə, hər bir keyfiyyət primitivinin belə bir təsirə malik öz xüsusiyyətləri var, buna görə də proqram sistemində olmasını təmin etmək, proqram sisteminin və ya ayrı -ayrı hissələrinin inkişafı üçün öz yanaşma və metodlarını tələb edə bilər. Bundan əlavə, PS və onları ifadə edən keyfiyyət primitivlərinin keyfiyyət meyarlarının uyğunsuzluğu da qeyd edildi: PS keyfiyyət primitivlərindən hər hansı birinin yaxşı təmin edilməsi, bu primitivlərin bəzilərini təmin etməyi əhəmiyyətli dərəcədə çətinləşdirə və ya qeyri -mümkün edə bilər. Buna görə də, proqram məhsullarının keyfiyyətinin təmin edilməsi prosesinin əsas hissəsi məqbul razılaşmalar tapmaqdan ibarətdir. Bu keyfiyyətlər qismən PS keyfiyyət spesifikasiyasında müəyyən edilməlidir: PS keyfiyyət modeli, hər bir keyfiyyət primitivinin PS-də lazım olan iştirak dərəcəsini göstərməli və bu dərəcələrə çatmaq üçün prioritetləri təyin etməlidir.

    Keyfiyyət təminatı hər bir texnoloji prosesdə həyata keçirilir: bu və ya digər dərəcədə verilən qərarlar, bütövlükdə proqram sisteminin keyfiyyətinə təsir göstərir. Xüsusilə, keyfiyyət primitivlərinin əhəmiyyətli bir hissəsi proqram sisteminə daxil olan proqramların xüsusiyyətləri ilə deyil, sənədlərin xüsusiyyətləri ilə əlaqədardır. Keyfiyyət primitivlərinin qeyd olunan uyğunsuzluğu səbəbindən, onların təmin edilməsində seçilmiş prioritetlərə riayət etmək çox vacibdir. Ancaq hər halda, iki ümumi prinsipə riayət etmək faydalıdır:

    birincisi, PS -nin lazımi funksionallığını və etibarlılığını təmin etmək və sonra qalan keyfiyyət meyarlarını PS -də mövcudluğunun məqbul səviyyəsinə çatdırmaq lazımdır;

    PS keyfiyyət spesifikasiyasında müəyyən edilən hər hansı bir keyfiyyət primitivinin PS -də daha yüksək səviyyəyə çatmasına ehtiyac yoxdur və hətta zərərli ola bilər.

    PS -nin funksionallığının və etibarlılığının təmin edilməsi əvvəlki mühazirədə müzakirə edilmişdir. Aşağıda FP üçün digər keyfiyyət meyarlarının təmin edilməsi müzakirə olunur.

    12.2 .. Proqram vasitəsinin istifadəsinin rahatlığının təmin edilməsi

    P-sənədləşdirmə proqramı istifadəçi sənədlərinin tərkibini təyin edir

    Əvvəlki mühazirədə, PS -nin tətbiqinin asanlığını təyin edən beş keyfiyyətli primitivdən ikisinin (sabitlik və təhlükəsizlik) təmin edilməsini artıq müzakirə etmişik.

    P-sənədləşmə və informativlik istifadəçi sənədlərinin tərkibini və keyfiyyətini müəyyən edir (növbəti mühazirəyə baxın).

    Uyğun bir istifadəçi interfeysi yaratmaq və istisnaların uyğun tətbiq edilməsi ilə qarşılıqlı əlaqə təmin edilir. Burada problem nədir?

  67. 12.3. Proqram təminatının effektivliyinin təmin edilməsi.

  68. Proqram sisteminin effektivliyi, memarlığının inkişafından başlayaraq, inkişafının müxtəlif mərhələlərində müvafiq qərarlar qəbul etməklə təmin edilir. Məlumatların quruluşu və təqdimatı SE -nin səmərəliliyinə (xüsusilə yaddaş baxımından) xüsusilə güclü təsir göstərir. Ancaq müəyyən proqram modullarında istifadə olunan alqoritmlərin seçimi, habelə onların tətbiqinin xüsusiyyətləri (proqramlaşdırma dilinin seçimi də daxil olmaqla) bir proqram sisteminin səmərəliliyinə əhəmiyyətli dərəcədə təsir göstərə bilər. Eyni zamanda, müvəqqəti səmərəliliklə yaddaş səmərəliliyi arasındakı ziddiyyəti həll etmək daim lazımdır. Buna görə də, keyfiyyət spesifikasiyasının bu keyfiyyət primitivlərinin göstəriciləri arasındakı kəmiyyət əlaqəsini açıq şəkildə göstərməsi və ya ən azından bu göstəricilərdən biri üçün kəmiyyət sərhədlərini təyin etməsi çox vacibdir. Yenə də fərqli proqram modulları, bütövlükdə proqram sisteminin səmərəliliyinə fərqli təsir göstərir: həm proqram sisteminin ümumi xərclərinə zaman və yaddaş baxımından qatqı baxımından, həm də fərqli keyfiyyətə təsiri baxımından. primitivlər (bəzi modullar vaxt səmərəliliyinin əldə edilməsinə güclü təsir göstərə bilər və yaddaş səmərəliliyinə praktiki olaraq heç bir təsir göstərmir, digərləri isə PS -nin işləmə müddətinə nəzərəçarpacaq təsir etmədən ümumi yaddaş istehlakını əhəmiyyətli dərəcədə təsir edə bilər). Üstəlik, bu təsir (ilk növbədə müvəqqəti səmərəliliklə əlaqədar olaraq) əvvəlcədən (PS -nin tətbiqi başa çatmamışdan əvvəl) düzgün qiymətləndirmək həmişə mümkün deyil.

    birincisi, etibarlı bir PS inkişaf etdirməlisiniz və yalnız bundan sonra bu PS -nin keyfiyyət spesifikasiyasına uyğun olaraq lazımi səmərəliliyi əldə etməlisiniz;

    proqram sisteminin səmərəliliyini artırmaq üçün, ilk növbədə, optimallaşdırıcı bir kompilyatordan istifadə edin - bu lazımi səmərəliliyi təmin edə bilər;

    PS -nin əldə edilmiş səmərəliliyi keyfiyyət spesifikasiyasına cavab vermirsə, PS -nin tələb olunan səmərəliliyi baxımından ən kritik modulları tapın (vaxt səmərəliliyi vəziyyətində bu, modullar tərəfindən paylanmanın əldə edilməsini tələb edir. PS -nin icrası zamanı müvafiq ölçülər vasitəsi ilə PS -nin işləmə müddəti); bu modulları əvvəlcə onları əl ilə yenidən işləyib optimallaşdırmağa çalışın;

    PS -nin lazımi səmərəliliyinə nail olmaq tələb olunmursa, modulu optimallaşdırmayın.

    12.4. Davamlılığın təmin edilməsi.

    C-sənədləşmə, məlumatlılıq və başa düşülmə baxım sənədlərinin tərkibini və keyfiyyətini müəyyən edir (növbəti mühazirəyə baxın). Bundan əlavə, proqramların (modulların) mətnləri ilə bağlı aşağıdakı tövsiyələr verilə bilər.

    modulun mətnində verilən qərarların xüsusiyyətlərini aydınlaşdıran və izah edən şərhlərdən istifadə etmək; Mümkünsə, modul mətninin inkişafının ən erkən mərhələsində şərhlər (ən azı qısa formada) daxil edin;

    mənalı (mnemonic) və israrla fərqlənən adlardan istifadə edin (optimal ad uzunluğu 4-12 hərfdir, sonunda rəqəmlərdir), oxşar adlardan və açar sözlərdən istifadə etməyin;

    sabitlərdən istifadə edərkən diqqətli olun (unikal sabit modul mətnində yalnız bir dəfə olmalıdır: elan edildikdə və ya həddindən artıq hallarda dəyişən sabit kimi işə salındıqda);

    isteğe bağlı parantez istifadə etməkdən qorxmayın (mötərizələr səhvlərdən daha ucuzdur;

    hər xəttə bir operatordan çox olmamalıdır; modulun quruluşunu aydınlaşdırmaq üçün hər sətrin əvvəlində əlavə boşluqlar (girinti) istifadə edin;

    hiylələrdən çəkinin, yəni. əsas təsiri açıq və ya gizli olmayan (örtülü) bir modul parçaları yaradıldıqda bu cür proqramlaşdırma üsulları, məsələn, yan təsirləri funksiyalar.

    Uyğun bir quraşdırıcı yaratmaqla genişlənmə təmin edilir.

    Strukturluq və modulluq həm proqram mətnlərinin anlaşılmasını, həm də onların dəyişdirilməsini asanlaşdırır.

    12.5. Mobilliyin təmin edilməsi.

  69. Mühazirə üçün ədəbiyyat 12.

  70. 12.1. Ian Sommerville. Proqram mühəndisliyi. - Addison-Wesley Nəşriyyat Şirkəti, 1992. S.

    12.3. D. Van Püskül. Proqramların tərzi, inkişafı, səmərəliliyi, ayıklama və sınaqları. -M.: Mir, 1985.S. 8-44, 117-178.

    12.4. Proqram İstifadəçi Sənədləri / ANSI / IEEE 1063-1987 Standartı.

  71. Mühazirə 13. Sənədləşdirmə proqramı

  72. 13.1. Proqram təminatının hazırlanması zamanı yaradılan sənədlər.

  73. Bir proqram sistemi inkişaf etdirilərkən çoxlu sayda müxtəlif sənədlər yaradılır. Proqram təminatçıları arasında məlumat ötürmə vasitəsi olaraq, proqram təminatının inkişafını idarə etmək üçün və proqramın tətbiqi və saxlanması üçün lazım olan məlumatları istifadəçilərə ötürmək vasitəsi olaraq lazımdır. Bu sənədlərin yaradılması PS xərclərinin böyük bir hissəsini təşkil edir.

    Bu sənədləri iki qrupa bölmək olar:

    Proqram təminatı idarəetmə sənədləri.

    PS -nin bir hissəsi olan sənədlər.

    Proqram təminatı idarəetmə sənədləri (proses sənədləri), inkişaf qrupu daxilində və inkişaf qrupu ilə menecerlər - inkişaf etdirməni idarə edən şəxslər arasında əlaqələr təmin edən proqram təminatının hazırlanması və saxlanılması proseslərini qeyd edir. Bu sənədlər aşağıdakı növ ola bilər:

    Planlar, hesablamalar, cədvəllər. Bu sənədlər inkişaf və təmir proseslərini proqnozlaşdırmaq və idarə etmək üçün menecerlər tərəfindən yaradılmışdır.

    İnkişaf zamanı mənbələrdən istifadə hesabatları. Menecerlər tərəfindən yaradılmışdır.

    Standartlar. Bu sənədlər, proqram təminatının hazırlanması prosesində hansı prinsiplərə, qaydalara, razılaşmalara riayət etməli olduqlarını inkişaf etdiricilərə izah edir. Bu standartlar həm beynəlxalq, həm də milli ola bilər və bu proqramı inkişaf etdirən təşkilat üçün xüsusi olaraq yaradıla bilər.

    İş sənədləri. İnkişaf etdiricilər arasında ünsiyyəti təmin edən əsas texniki sənədlərdir. İnkişaf prosesində yaranan fikir və problemlərin təsbitini, istifadə olunan strategiyaların və yanaşmaların təsvirini, habelə PS -yə daxil edilməli olan sənədlərin işçi (müvəqqəti) versiyalarını ehtiva edir.

    Qeydlər və yazışmalar. Bu sənədlər menecerlər və inkişaf etdiricilər arasındakı qarşılıqlı əlaqənin müxtəlif detallarını sənədləşdirir.

    PS -ni təşkil edən sənədlər (məhsul sənədləri), PS proqramlarını həm özləri baxımından təsvir edir istifadəçilər tərəfindən tətbiq və onların inkişaf etdiriciləri və xidmətçiləri baxımından (PS məqsədinə uyğun olaraq). Burada qeyd edilməlidir ki, bu sənədlər təkcə PS -nin istismar mərhələsində (tətbiq və təmir mərhələlərində) deyil, həm də inkişaf prosesini idarə etmək üçün inkişaf mərhələsində (iş sənədləri ilə birlikdə) istifadə ediləcəkdir. hər halda, PS proqramlarına uyğunluğu yoxlanılmalı (sınaqdan keçirilməlidir). Bu sənədlər fərqli məqsədlər üçün iki dəst təşkil edir:

    PS istifadəçi sənədləri (P-sənədləşmə).

    Yarımstansiya dəstəyi sənədləri (C-sənədləşmə).

  74. 13.2. Proqram vasitələrinin istifadəçi sənədləri.

  75. Proqram sistemi üçün istifadəçi sənədləri (istifadəçi sənədləri) istifadəçilərə bu proqram sistemini tətbiq etməyə necə davam etmələri lazım olduğunu izah edir. PS istifadəçilərlə hər hansı bir qarşılıqlı əlaqəni ehtiva edərsə lazımdır. Bu cür sənədlərə istifadəçinin PS qurarkən (PS tətbiqi mühiti üçün uyğun bir parametr ilə PS qurarkən), problemlərini həll etmək üçün PS istifadə edərkən və PS idarə edərkən (məsələn, bu PS digər sistemlərlə qarşılıqlı əlaqə qurur). Bu sənədlər proqram təminatı məsələlərinə qismən toxunur, lakin proqramların dəyişdirilməsi ilə bağlı məsələlərə toxunmur.

    Bu baxımdan PS istifadəçilərinin iki kateqoriyası ayrılmalıdır: adi PS istifadəçiləri və PS idarəçiləri. PS-nin adi istifadəçisi (son istifadəçi) öz problemlərini həll etmək üçün PS-dən istifadə edir (mövzu sahəsində). Bu, texniki bir cihaz hazırlayan bir mühəndis və ya PS istifadə edərək qatar biletləri satan bir kassir ola bilər. Kompüterin bir çox detallarını və ya proqramlaşdırma prinsiplərini bilməyə bilər. PS idarəçisi (sistem idarəçisi) adi istifadəçilər tərəfindən PS istifadəsini idarə edir və proqramların dəyişdirilməsi ilə əlaqəli olmayan PS -ni saxlayır. Məsələn, adi istifadəçilər arasında PS -yə giriş hüquqlarını tənzimləyə bilər, PS təchizatçıları ilə əlaqə saxlaya bilər və ya başqa bir sistemin bir hissəsi olaraq daxil edildiyi təqdirdə PS -ni işlək vəziyyətdə saxlamaq üçün müəyyən hərəkətlər edə bilər.

    İstifadəçi sənədlərinin tərkibi bu proqramın yönləndirildiyi istifadəçilərin auditoriyasından və sənədlərin istifadə rejimindən asılıdır. Buradakı tamaşaçı, müəyyən PS istifadəçi sənədlərinə ehtiyacı olan PS istifadəçilərinin kontingenti kimi başa düşülür. Uğurlu bir istifadəçi sənədi, mahiyyətcə auditoriyanın dəqiq tərifindən asılıdır. İstifadəçi sənədlərində hər bir auditoriya üçün lazım olan məlumatlar olmalıdır. Sənədin istifadə üsulu, sənədin necə istifadə edildiyini təyin edən üsula aiddir. Tipik olaraq, kifayət qədər böyük proqram sistemlərinin istifadəçisi ya PS öyrənmək üçün sənədlər (təlimat şəklində istifadə etmək), ya da bəzi məlumatları aydınlaşdırmaq üçün (istinad kitabçası şəklində istifadə etmək) tələb edir.

    İşlərə uyğun olaraq, kifayət qədər böyük PS üçün istifadəçi sənədlərinin aşağıdakı tərkibi tipik hesab edilə bilər:

    PS -nin ümumi funksional təsviri. PS -nin funksionallığı haqqında qısa məlumat verir. Bu proqrama nə qədər ehtiyac duyduqlarına qərar verməli olan istifadəçilər üçün nəzərdə tutulmuşdur.

    Yarımstansiyaların quraşdırılması təlimatı. Sistem idarəçiləri üçün hazırlanmışdır. Müəyyən bir mühitdə sistemlərin necə qurulacağını ətraflı yazmalıdır. PS-nin təchiz olunduğu maşın tərəfindən oxunan mühitin təsviri, PS-ni təmsil edən fayllar və minimum hardware konfiqurasiyası üçün tələblər olmalıdır.

    PS istifadə qaydaları. Adi istifadəçilər üçün hazırlanmışdır. Öyrənilməsi üçün əlverişli bir formada təşkil edilmiş PS tətbiqi ilə bağlı lazımi məlumatları ehtiva edir.

    PS istifadə üçün dərslik. Adi istifadəçilər üçün hazırlanmışdır. Fərdi hissələrin seçmə axtarışı üçün əlverişli bir formada təşkil edilmiş PS tətbiqi ilə bağlı lazımi məlumatları ehtiva edir.

    PS İdarəetmə Təlimatı. Sistem idarəçiləri üçün hazırlanmışdır. PS digər sistemlərlə qarşılıqlı əlaqədə olduqda yaranan mesajları və bu mesajlara necə cavab verməyi təsvir etməlidir. Bundan əlavə, MS sistem aparatından istifadə edirsə, bu sənəd həmin aparatın necə saxlanılacağını izah edə bilər.

    Daha əvvəl müzakirə edildiyi kimi (bax Fəsil 4), xüsusi sənədlərin hazırlanması xarici təsvir yaradılan kimi başlayır. Bu sənədlərin keyfiyyəti COP -un uğurunu əhəmiyyətli dərəcədə müəyyən edə bilər. Bu olduqca sadə və istifadəçi dostu olmalıdır (əks halda, bu PS, ümumiyyətlə, yaradılmamalı idi). Buna görə də, istifadəçi sənədlərinin layihələri (eskizləri) proqramın əsas inkişaf etdiriciləri tərəfindən yaradılsa da, peşəkar texniki yazarlar tez -tez onların son versiyalarının yaradılmasında iştirak edirlər. Bundan əlavə, istifadəçi sənədlərinin keyfiyyətini təmin etmək üçün bu sənədlərin hazırlanma qaydasını təyin edən, hər bir istifadəçi sənədi növü üçün tələbləri formalaşdıran, onların strukturunu və məzmununu müəyyən edən bir sıra standartlar hazırlanmışdır (məsələn, bax). .

    13.3. Proqram təminatı sənədləri.

    Sistem sənədləri proqram sistemini inkişafı baxımından təsvir edir. Bu sənəd, proqram sisteminin necə qurulduğunu (dizayn edildiyini) və proqramlarının modernləşdirilməsini əhatə edərsə zəruridir. Qeyd edildiyi kimi, təmir davam edən bir inkişafdır. Buna görə də, yarımstansiyanın modernləşdirilməsi zəruridirsə, bu işdə xüsusi bir dəstək hazırlayıcı qrupu iştirak edir. Bu komanda, orijinal (əsas) proqram inkişaf etdirmə qrupunun fəaliyyətini təyin edən eyni sənədlərlə məşğul olmalı, tək bir fərq, saxlayıcı inkişaf qrupu üçün bu sənədin, bir qayda olaraq, xarici olmasıdır (başqa biri tərəfindən yaradılmışdır) komanda). Təkmilləşdirilmiş proqram sisteminin quruluşunu və inkişaf prosesini başa düşmək və orijinal proqramın yaradıldığı texnoloji prosesləri böyük ölçüdə təkrar etməklə bu sənədləri lazımi dəyişikliklər etmək üçün inkişaf etdirmə qrupu işçiləri bu sənədləri öyrənməli olacaqlar.

    PS dəstəyi üçün sənədləri iki qrupa bölmək olar:

    (1) proqram sistemlərinin proqram sistemlərinin və məlumat strukturlarının quruluşunu və onların inkişafı texnologiyasını təyin edən sənədlər;

    (2) OS -də dəyişikliklər etməyə kömək edəcək sənədlər.

    Birinci qrupun sənədlərində proqram təminatının hazırlanmasının hər bir texnoloji mərhələsinin yekun sənədləri var. Bura aşağıdakı sənədlər daxildir:

    SS -nin xarici təsviri (Tələblər sənədi).

    Proqramların hər birinin xarici spesifikasiyası da daxil olmaqla sistem arxitekturasının təsviri.

    Hər bir PS proqramı üçün - daxil olan hər bir modulun xarici spesifikasiyası daxil olmaqla modul quruluşunun təsviri.

    Hər bir modul üçün - onun spesifikasiyası və strukturunun təsviri (dizayn təsviri).

    Seçilmiş proqramlaşdırma dilində modul mətnləri (proqram mənbə kodu siyahıları).

    Hər bir CA proqramının etibarlılığının necə qurulduğunu və doğrulama məlumatlarının CA tələbləri ilə necə əlaqələndirildiyini izah edən təsdiq sənədləri.

    Proqram sistemlərinin etibarlılığını təsdiq edən sənədlərə, ilk növbədə, test sənədləri (test sxemi və testlər toplusunun təsviri) daxildir, lakin digər proqram testlərinin nəticələrini, məsələn, proqram xüsusiyyətlərinin sübutunu daxil edə bilər.

    İkinci qrup sənədləri var

    Proqram təminatı ilə bağlı bilinən problemləri izah edən sistemə qulluq təlimatı, sistemin hansı hissələrinin aparat və proqram təminatından asılı olduğunu və proqramın inkişafında onun strukturunda (dizaynında) necə nəzərə alındığını təsvir edir.

    Bir COP saxlamağın ümumi problemi, COP dəyişdikdə bütün fikirlərinin davamlı olmasını təmin etməkdir. Buna kömək etmək üçün sənədlər və onların hissələri arasındakı əlaqələr və asılılıqlar konfiqurasiya idarəetmə verilənlər bazasında tutulmalıdır.

  76. Dərs üçün ədəbiyyat 13.

  77. 13.1. Ian Sommerville. Proqram mühəndisliyi. - Addison-Wesley Nəşriyyat Şirkəti, 1992. S.

    13.2. ANSI / IEEE Std 1063-1988, Proqram İstifadəçi Sənədləri üçün IEEE Standartı.

    13.3. ANSI / IEEE Std 830-1984, Proqram Tələbləri Şərtləri üçün IEEE Bələdçisi.

    13.4. Proqram Dizaynı Təsviri üçün ANSI / IEEE Std 1016-1987, IEEE Tövsiyə Edilən Təcrübə.

    13.5. ANSI / IEEE Std 1008-1987, Proqram Bölməsi Testi üçün IEEE Standartı.

    13.6. ANSI / IEEE Std 1012-1986, Proqram Təsdiq və Doğrulama Planları üçün IEEE Standartı.

    13.7. ANSI / IEEE Std 983-1986, Proqram Keyfiyyətinin Təminatı Planlaşdırılması üçün IEEE Bələdçisi.

    13.8. ANSI / IEEE Std 829-1983, Proqram Test Sənədləri üçün IEEE Standartı.

  78. Mühazirə 14. Proqram təminatının sertifikasiyası

  79. Proqram təminatının sertifikatlaşdırılmasının məqsədi. Proqram təminatının keyfiyyətinin yoxlanılması və qiymətləndirilməsi. Test növləri və proqram təminatının keyfiyyətini qiymətləndirmə üsulları.

  80. 14.1. Proqram təminatının sertifikatlaşdırılmasının məqsədi.

  81. PS sertifikatı PS keyfiyyətinin etibarlı bir təsdiqidir. Tipik olaraq, PS sertifikatı üçün mütəxəssislərdən, müştəri nümayəndələrindən və inkişaf etdiricilərdən ibarət nümayəndəlik (attestasiya) komissiyası yaradılır. Bu komissiya, keyfiyyətini qiymətləndirmək üçün lazımi məlumatları əldə etmək üçün PS testləri keçirir. PS testi dedikdə, müştərinin tələblərinə uyğun olaraq PS -nin müvəffəqiyyətli işləməsinə (tətbiqinə və saxlanmasına) uyğunluğunu araşdıran bir sıra tədbirlərin həyata keçirilməsi prosesini nəzərdə tuturuq. Bu kompleks proqram sənədlərinin tamlığının və düzgünlüyünün yoxlanılmasını, digər xüsusiyyətlərinin öyrənilməsini və müzakirə edilməsini, həmçinin proqram sisteminə daxil olan proqramların zəruri sınaqlarını və xüsusən bu proqramların mövcud sənədlərə uyğunluğunu əhatə edir.

    PS testi zamanı əldə edilən məlumatlara əsaslanaraq, ilk növbədə PS -nin elan edilmiş funksiyaları yerinə yetirdiyi müəyyən edilməli və PS -nin elan edilmiş primitivlərə və keyfiyyət meyarlarına nə dərəcədə malik olduğu da müəyyən edilməlidir. Beləliklə, PS keyfiyyətinin qiymətləndirilməsi sertifikatlaşdırma prosesinin əsas məzmunudur. PS -nin keyfiyyətinin qiymətləndirilməsi attestasiya komissiyasının müvafiq qərarında qeyd olunur.

  82. 14.2. Proqram testlərinin növləri.

  83. PS sertifikatı üçün aşağıdakı PS test növləri məlumdur:

    PS komponentlərinin sınanması;

    sistem testləri;

    qəbul testləri;

    sahə sınaqları;

    sənaye testləri.

    PS komponentlərinin sınağı fərdi PS alt sistemlərinin iş qabiliyyətinin yoxlanılmasıdır (sınaqdan keçirilir). Yalnız müstəsna hallarda attestasiya komissiyasının xüsusi qərarı ilə həyata keçirilir.

    PS -nin sistem testləri, bütövlükdə PS -nin yoxlanılmasıdır. Proqram sistemlərinin kompleks ayıklama ilə eyni test növlərini daxil edə bilər (bax mühazirə 10). Proqram sisteminin inkişaf etdiriciləri tərəfindən ayıklama keyfiyyətinə şübhə olduqda, attestasiya komissiyasının qərarı ilə həyata keçirilir.

    Qəbul testləri PS sertifikatı üçün əsas test növüdür. Məhz bu testlərlə sertifikatlaşdırma komissiyası işə başlayır. Bu testlər, proqram sistemlərinin sınanması və ayıklanması üçün sənədlər də daxil olmaqla, təqdim olunan sənədlərin öyrənilməsi ilə başlayır. Sənədlərdə PS testinin kifayət qədər tam nəticələri yoxdursa, sertifikatlaşdırma komitəsi PS -nin sistem testlərini aparmaq və ya əlavə (daha tam) PS testi aparmaq üçün geliştiriciyə tövsiyəsi ilə sertifikatlaşdırma prosesini dayandırmaq barədə qərar qəbul edə bilər. Bundan əlavə, bu testlər zamanı, geliştirici testləri, istifadəçi nəzarət tapşırıqları (bax. Mühazirə 10) və sertifikatlaşdırılmış proqram təminatının keyfiyyətini qiymətləndirmək üçün panel tərəfindən hazırlanan əlavə testlər də seçilə bilər.

    Bir PS -nin sahə sınaqları, bu PS tərəfindən idarə olunan texniki sistemlə birlikdə, real şərtlərdə dar bir müştəri dairəsinə nümayişdir və PS -nin davranışını diqqətlə izləyir. Müştərilərə, xüsusən çıxışlardan kritik iş rejimlərinə qədər öz test hallarını təyin etmək imkanı verilməlidir. texniki sistem, həmçinin təcili vəziyyət çağırışı ilə. Bunlar yalnız müəyyən texniki sistemləri idarə edən bəzi PS -lər üçün sertifikatlaşdırma komissiyasının qərarı ilə həyata keçirilən əlavə testlərdir.

    PS -nin sənaye sınağı, daimi iş üçün PS -nin istifadəçilərə ötürülməsi prosesidir. Təyyarənin davranış xüsusiyyətləri və istismar xüsusiyyətləri haqqında məlumat toplayan istifadəçilər tərəfindən təyyarənin pilot istismarı dövrü (bax mühazirə 10). Sertifikatlaşdırılmış PS -nin keyfiyyətini qiymətləndirmək üçün əvvəlki testlər zamanı kifayət qədər tam və ya etibarlı məlumat əldə edilmədikdə, sertifikatlaşdırma komissiyasının qərarı ilə həyata keçirilən PS -nin son testləridir.

  84. 14.3. Proqram təminatının keyfiyyətinin qiymətləndirilməsi üsulları.

  85. Hər bir meyar üçün PS -nin keyfiyyətinin qiymətləndirilməsi, bu PS -nin keyfiyyət spesifikasiyasında hazırlanan spesifikasiyalarına uyğun olaraq, PS keyfiyyətinin bu meyarı ilə əlaqəli hər bir primitivin qiymətləndirilməsinə endirilir. Proqram sistemlərinin keyfiyyətinin primitivlərini qiymətləndirmək üsullarını dörd qrupa bölmək olar:

    keyfiyyət primitivinin göstəricilərinin birbaşa ölçülməsi;

    xüsusi proqram vasitələri (prosessorlar) ilə PS proqramlarının və sənədlərinin işlənməsi;

    PS proqramlarının sınanması;

    PS proqramlarının və sənədlərinin öyrənilməsinə əsaslanan ekspert qiymətləndirməsi.

    Keyfiyyətli ibtidai göstəricilərin birbaşa ölçülməsi, müəyyən bir proqram sənədində xarakterik vahidlərin, obyektlərin, qurğuların və s. Baş vermə sayını hesablamaqla, həmçinin iş vaxtını ölçməklə həyata keçirilir. müxtəlif qurğular və test halları yerinə yetirilərkən tutulan kompüter yaddaşının miqdarı. Məsələn, yaddaş səmərəliliyinin bir ölçüsü bir proqramlaşdırma dilində proqram sətirlərinin sayı ola bilər və bəzi vaxt səmərəliliyinin ölçüsü bir sorğuya cavab vaxtı ola bilər. Keyfiyyət primitivləri üçün hər hansı bir göstəricinin istifadəsi proqram sisteminin keyfiyyət spesifikasiyasında müəyyən edilə bilər. Keyfiyyətli bir primitivin göstəricilərinin birbaşa ölçülməsi metodu test proqramlarının istifadəsi ilə birləşdirilə bilər.

    Proqramda bəzi keyfiyyətli primitivlərin olmasını müəyyən etmək üçün müəyyən proqram vasitələrindən istifadə edilə bilər. Bu cür proqram vasitələri, hər hansı bir keyfiyyət primitivini idarə etmək və ya bu keyfiyyət primitivlərinin bəzi göstəricilərini əldə etmək üçün proqramların mətnlərini və ya proqram sənədlərini emal edir. PS proqramlarının quruluşunu qiymətləndirmək üçün, əgər onlar əsas proqramlaşdırma dilinin uyğun bir struktur dialektində proqramlaşdırılmış olsaydı, onları bu ləhcənin sintaktik və bəzi semantik nəzarətini həyata keçirən və tərcümə edən strukturlaşdırılmış proqramlar çeviricisindən keçmək kifayət edərdi. bu proqramların mətnlərini əsas tərcüməçinin giriş dilinə daxil edin. Ancaq bu yolla hazırda yalnız az sayda keyfiyyətli primitivləri, hətta nadir hallarda nəzarət etmək mümkündür. Bəzi hallarda proqram sistemlərinin keyfiyyətinə nəzarət edən proqram vasitələri əvəzinə proqramların və ya proqram sənədlərinin təqdimatını dəyişdirən vasitələrdən istifadə etmək daha faydalıdır. Bu, məsələn, proqram mətnlərini oxunaqlı bir formaya gətirən bir proqram formatlayıcısıdır - belə bir alətlə PS proqram mətnlərinin işlənməsi avtomatik olaraq PS -də uyğun keyfiyyətli primitivin olmasını təmin edə bilər.

    Test, PS keyfiyyətinin bəzi primitivlərini qiymətləndirmək üçün istifadə olunur. Bu primitivlərə hər şeydən əvvəl PS -nin tamlığı, dəqiqliyi, sabitliyi, təhlükəsizliyi və digər keyfiyyət primitivləri daxildir. Bir sıra hallarda, proqram sistemlərinin keyfiyyətinin fərdi primitivlərini qiymətləndirmək üçün test digər üsullarla birlikdə istifadə olunur. Beləliklə, bir proqram sisteminin (P-sənədləşmə) tətbiqi üçün sənədlərin keyfiyyətini qiymətləndirmək üçün bu sənədlərin ekspert qiymətləndirilməsi ilə birlikdə testdən istifadə olunur. Proqram sisteminin kompleks ayıklanması zamanı kifayət qədər tam bir sınaq keçirilmişsə, eyni testlər proqram sisteminin attestasiyası üçün istifadə edilə bilər. Bu vəziyyətdə, sertifikatlaşdırma komitəsi kompleks ayıklama zamanı aparılan test protokollarından istifadə edə bilər. Ancaq bu vəziyyətdə belə, bəzi yeni testlər aparmaq və ya heç olmasa köhnələrini yenidən işə salmaq lazımdır. Mürəkkəb ayıklama zamanı test kifayət qədər tamamlanmadığı hesab edilərsə, daha mükəmməl testlər aparılmalıdır. Bu vəziyyətdə, PS -nin komponentlərinin və ya sistem testlərinin sınanması, habelə PS -nin düzəldilməsi üçün inkişaf etdiricilərə qaytarılması barədə qərar verilə bilər. Proqramı istifadə rahatlığı meyarı ilə qiymətləndirmək üçün tətbiq sənədləri əsasında hazırlanan testlərdən istifadə etməklə və proqram təminatının yoxlanılması zamanı (sınaqdan keçirilərkən) tam sınaqların aparılması çox vacibdir. - texniki xidmət üçün təklif olunan sənədlərin hər biri üçün hazırlanmış testlərlə. PS.

    Hazırda proqram sistemlərinin keyfiyyətinin primitivlərinin çoxunu qiymətləndirmək üçün yalnız ekspert qiymətləndirmə metodundan istifadə etmək olar. Bu metod aşağıdakılardan ibarətdir: bir qrup ekspert təyin olunur, bu ekspertlərin hər biri təqdim olunan sənədləri öyrənmək nəticəsində lazımi keyfiyyətə malik PS -yə sahib olmaq barədə öz rəyini verir və sonra qiymətləndirmə tələb olunan PS keyfiyyət primitivi bu qrup üzvlərinin səsverməsi ilə qurulur. Bu qiymətləndirmə həm iki nöqtəli bir sistemə görə edilə bilər ("sahibdir" - "sahib deyil"), həm də bu keyfiyyət primitivinin PS -yə sahib olma dərəcəsi nəzərə alınmaqla (məsələn, edilə bilər) Beş ballıq sistemə görə). Bu vəziyyətdə mütəxəssislər qrupu, bu primitivin spesifikasiyasını və sertifikatlaşdırılmış PS -nin keyfiyyət spesifikasiyasında tərtib edilmiş qiymətləndirmə metodunun göstərişini rəhbər tutmalıdır.

    Dərs üçün ədəbiyyat 14.

    14.2. V.V. Lipaev. Test proqramları. - M.: Radio və rabitə, 1986.- S. 231-245.

    14.3. D. Van Püskül. Proqramların tərzi, inkişafı, səmərəliliyi, ayıklama və sınaqları. - M.: Mir, 1985.- S. 281-283.

    14.4. B. Şnayderman. Proqramlaşdırma psixologiyası. - M.: Radio və rabitə, 1984 .-- S. 99-127.

  86. Mühazirə 15 Proqram təminatının inkişafına obyekt yanaşması

  87. 15.1. Proqramlaşdırmada obyektlər və əlaqələr. Proqram təminatına obyekt yanaşmasının mahiyyəti.

  88. Ətrafımızdakı dünya obyektlərdən və aralarındakı əlaqələrdən ibarətdir. Bir obyekt müəyyən bir varlığı təcəssüm etdirir və hər hansı bir əlaqədə olan digər obyektlərin təsiri nəticəsində zamanla dəyişə bilən müəyyən bir vəziyyətə malikdir. Ola bilər daxili quruluş: bəzi əlaqələrdə aralarında olan digər obyektlərdən ibarətdir. Buna əsaslanaraq, obyektlərdən dünyanın hiyerarşik bir quruluşunu qura bilərsiniz. Ancaq ətrafımızdakı dünyanın hər bir spesifik nəzəriyyəsi üçün bəzi obyektlər bölünməz ("nöqtə") hesab olunur və nəzərdən keçirilmə məqsədlərindən asılı olaraq, belə (bölünməz) obyektlər iyerarxiyanın müxtəlif səviyyələrində götürülə bilər. Əlaqə bəzi obyektləri birləşdirir: bu obyektlərin birləşməsinin bəzi xüsusiyyətlərə malik olduğunu fərz edə bilərik. Bir əlaqə n obyekti birləşdirirsə, belə bir əlaqəyə n-ary (n-ary) deyilir. Hər hansı bir xüsusi əlaqə ilə bağlana bilən obyektlərin birliyinin hər yerində fərqli obyektlər ola bilər, lakin olduqca qəti (bu vəziyyətdə deyirlər: müəyyən bir sinifin obyektləri). Unary əlaqəyə bir obyektin (müvafiq sinifdən) xassəsi deyilir. Bir obyektin vəziyyəti bu obyektin xüsusiyyətlərinin dəyəri ilə və ya bu və ya digər əlaqələr ilə əlaqəli obyektlərin birliklərinin xüsusiyyətlərinin dəyəri ilə öyrənilə bilər.

    Ətrafımızdakı dünyanı tanıma və ya dəyişdirmə prosesində, hər zaman bir və ya digər dünyanın sadələşdirilmiş modelini (model dünya) nəzərə alırıq ki, buraya ətrafımızdakı dünyanın bəzi obyektlərini və əlaqələrini də daxil edirik. , bir qayda olaraq, iyerarxiyanın bir səviyyəsidir. Daxili quruluşa malik olan hər bir obyekt, bu quruluşun obyektlərini və onları birləşdirən əlaqələri özündə birləşdirən öz model dünyasını təmsil edə bilər. Beləliklə, ətrafımızdakı dünya (bəzi təxmini olaraq) model dünyaların hiyerarşik quruluşu kimi qəbul edilə bilər.

    Hal -hazırda ətrafımızdakı dünyanı tanıma və ya dəyişdirmə prosesində müxtəlif növ məlumatları emal etmək üçün kompüter texnologiyasından geniş istifadə olunur. Bu baxımdan, obyektlərin və əlaqələrin kompüter (informasiya) təsviri istifadə olunur. Hər bir obyekt məlumatlı olaraq vəziyyətini əks etdirən bəzi məlumat quruluşu ilə təmsil oluna bilər. Bu obyektin xüsusiyyətləri birbaşa bu quruluşun ayrı komponentləri olaraq və ya bu məlumat quruluşundakı xüsusi funksiyalarla təyin edilə bilər. N> 1 üçün N-ary əlaqələri ya aktiv, ya da passiv formada təmsil oluna bilər. Aktiv formada, N-yerli əlaqəsi, ya N-lokal funksiyasını (obyektlərin müvafiq birliyinin xüsusiyyətinin dəyərini təyin edən) və ya bəzilərinin vəziyyətlərini dəyişdirən bir proseduru həyata keçirən bəzi proqram parçası ilə təmsil olunur. Təqdim olunan münasibətlə əlaqəli obyektlərin nümayəndəliklərinin vəziyyətinə görə. Passiv bir formada, belə bir əlaqə, müəyyən əlaqələrdən asılı olmayan ümumi prosedurlar üçün qəbul edilmiş konvensiyalar əsasında şərh olunan bəzi məlumat quruluşu ilə (bu əlaqəyə bağlı obyektlərin nümayəndəliklərini də əhatə edə bilər) təmsil oluna bilər. əlaqəli verilənlər bazası). Hər halda, əlaqələr görünüşü bəzi məlumat emal fəaliyyətlərini təyin edir.

    Model dünyasını araşdırarkən bir istifadəçi kompüterdən fərqli yollarla məlumat ala bilər (və ya almaq istəyə bilər). Bir yanaşma ilə, maraqlandığı obyektlərin fərdi xüsusiyyətləri və ya bəzi obyektlər arasındakı hər hansı bir qarşılıqlı əlaqənin nəticələri haqqında məlumat əldə etmək maraqlı ola bilər. Bunu etmək üçün, maraqlandığı funksiyaları yerinə yetirən bu və ya digər proqram sisteminin və ya müvafiq verilənlər bazasından istifadə edərək maraq əlaqələri haqqında məlumat istehsal edə bilən bir məlumat sisteminin hazırlanmasını əmr edir. Kompüter texnologiyalarının inkişafının ilk dövründə (kompüterlərin kifayət qədər yüksək gücü olmadıqda) kompüterdən istifadəyə belə bir yanaşma olduqca təbii idi. Əvvəlki mühazirələrdə ətraflı müzakirə olunan proqram sistemlərinin inkişafına funksional (əlaqəli) yanaşmanı təhrik edən o idi. Bu yanaşmanın mahiyyəti, PS -nin quruluşunu və ona daxil olan proqramların mətnlərini qurmaq üçün funksiyaların (əlaqələrin) parçalanmasından sistematik şəkildə istifadə etməkdən ibarətdir. Eyni zamanda, sifariş verilmiş və yerinə yetirilən funksiyaların tətbiq olunduğu obyektlərin özləri parçalanmış şəkildə (bu funksiyaları yerinə yetirmək üçün lazım olan ölçüdə) və bu funksiyaların həyata keçirilməsi üçün əlverişli formada təqdim edilmişdir. Beləliklə, istifadəçi üçün maraqlı olan model aləminin ayrılmaz və adekvat bir kompüter təqdimatı təmin edilməmişdir: istifadə olunan SS -lərlə əlaqələndirilməsi istifadəçi üçün olduqca zəhmətli bir iş ola bilər, model haqqında məlumatın həcmini və xarakterini bir qədər genişləndirmək cəhdləri ola bilər. istifadəçi üçün maraqlı bir dünya. kimi yarımstansiyalardan alınsa, onların ciddi modernləşməsinə səbəb ola bilər. Proqram inkişafına bu yanaşma istifadə olunanların çoxu tərəfindən dəstəklənir proqramlaşdırma dilləri, montaj dilləri və prosedur dillərindən (FORTRAN, Pascal) funksional dillərə (LISP) və məntiqi proqramlaşdırma dillərinə (PROLOGUE) qədər.

    Kompüterdən istifadə edərək model dünyasının öyrənilməsinə başqa bir yanaşmada, istifadəçi qarşılıqlı təsirləri nəticəsində obyektlərin vəziyyətinin dəyişməsini müşahidə etməkdə maraqlı ola bilər. Bu, istifadəçini maraqlandıran obyektin kompüterdə kifayət qədər ayrılmaz şəkildə təmsil olunmasını tələb edir və bu obyektin iştirak etdiyi münasibətləri həyata keçirən proqram komponentləri onunla açıq şəkildə əlaqələndirilir. Bu yanaşmanı həyata keçirmək üçün obyektlərin qarşılıqlı təsir proseslərini (model dünya) təqlid edən bir proqram qurmaq lazım idi. Ənənəvi inkişaf vasitələri ilə bunun olduqca yorucu bir iş olduğunu sübut etdi. Düzdür, xüsusi olaraq bu cür modelləşdirməyə yönəlmiş proqramlaşdırma dilləri ortaya çıxdı, lakin bu, tələb olunan proqram sistemlərinin inkişaf etdirilməsi işini qismən sadələşdirdi. Proqram sistemlərinin inkişafına obyekt yanaşması bu problemin həllinə ən tam cavab verir. Onun mahiyyəti, PS quruluşunun və daxil olan proqramların mətnlərinin qurulmasında obyektlərin parçalanmasının sistematik şəkildə istifadəsindədir. Bu vəziyyətdə, belə bir PS -nin yerinə yetirdiyi funksiyalar (münasibətlər) müxtəlif səviyyəli cisimlərin əlaqələri ilə ifadə edilirdi, yəni onların parçalanması cisimlərin parçalanmasından xeyli asılı idi.

    Obyekt yanaşması haqqında danışarkən, hansı obyektlərdən bəhs etdiyimizi də aydın şəkildə başa düşmək lazımdır: istifadəçi model dünyasının obyektləri, onların informasiya təqdimatı, proqram sisteminin qurulduğu proqram obyektləri. Bundan əlavə, həqiqi obyektlər ("passiv" obyektlər) və subyektlər ("aktiv" obyektlər) arasında fərq qoyulmalıdır.

  89. 15.2. Proqramlaşdırmada obyektlər və mövzular.

  90. 15.3. Proqram təminatının inkişafına obyektiv və subyektiv yanaşmalar.

  91. Descartes, insanların ümumiyyətlə dünyaya obyektiv yönümlü baxdıqlarını qeyd etdi.

    Obyekt yönümlü dizaynın aşağıdakı prinsiplərə əsaslandığına inanılır:

    abstraksiyaları vurğulamaq,

    Giriş məhdudiyyəti,

    modulluq,

    iyerarxiya,

    yazaraq,

    paralellik,

    sabitlik.

    Ancaq bütün bunlar funksional bir yanaşma ilə tətbiq oluna bilər.

    Ümumi obyekt yanaşmasının üstünlükləri və mənfi cəhətləri ilə onun xüsusi halını - mövzuya yönəlmiş yanaşmanı ayırmaq lazımdır.

    Ümumi obyektiv yanaşmanın üstünlükləri:

    PS -nin quruluşu ilə real dünyanın təbii xəritələndirilməsi (PS -nin imkanlarının insan tərəfindən təbii qəbul edilməsi, PS quruluşunu "icad etməyə" ehtiyac yoxdur, ancaq təbii bənzətmələrdən istifadə etmək lazımdır).

    PS-nin kifayət qədər mənalı struktur bölmələrinin istifadəsi (lazımsız birləşmələrin bütövlüyü, məlumatlı güclü modullar kimi bir obyekt).

    Yeni bir abstraksiya səviyyəsini istifadə edərək proqram sistemlərinin inkişafının mürəkkəbliyini azaltmaq (proqram sistemlərini inkişaf etdirərkən "proqramsız" abstraksiyalar iyerarxiyasından istifadə etməklə: real aləmdəki obyektləri təsnif etmək, təbiətdəki bənzətmələr metodu) yeni bir miras səviyyəsi kimi. .

  92. 15.4. Bir proqram vasitəsinin xarici təsviri və arxitekturasının inkişafına obyekt əsaslı yanaşma.

  93. Obyekt yönümlü dizayn - Obyektin parçalanmasından istifadə edən bir üsul; obyekt yönümlü yanaşmanın öz konvensiya sistemi var və olduqca mürəkkəb sistemlərin dizaynı üçün zəngin məntiqi və fiziki modellər dəsti təklif edir. ...

    Obyekt yönümlü analiz (OOA) obyekt yanaşmasını ortaya qoydu. OOA, obyekt yönümlü bir yanaşma istifadə edərək reallığa daha yaxın olan modellər yaratmaq məqsədi daşıyır; sahənin söz ehtiyatını təşkil edən siniflər və obyektlər anlayışları əsasında tələblərin formalaşdırıldığı bir metodologiyadır. ...

    Obyekt yönümlü proqramlaşdırmanın xüsusiyyətləri.

    Obyektlər, siniflər, obyekt davranışı, xüsusiyyətlər, hadisələr.

  94. Dərs üçün ədəbiyyat 15.

  95. 15.1. K. Fuchi, N. Suzuki. Proqramlaşdırma dilləri və dövrə VLSI. - M.: Mir, 1988 S. 85-98.

    15.2. Ian Sommerville. Proqram mühəndisliyi. -Addison -Wesley Nəşriyyat Şirkəti, 1992. P.? -?

    15.3. G. Booch. Tətbiq nümunələri olan obyekt yönümlü dizayn: başına. ingilis dilindən - M.: Concord, 1992.

    15.4. V.Ş. Kaufman. Proqramlaşdırma dilləri. Anlayışlar və prinsiplər. M.: Radio və rabitə, 1993.

Peşəkar modul
"Proqram təminatının inkişafı
proqram modulları
kompüter üçün proqram
sistemlər "

MDK

Sistem Proqramlaşdırması
Tətbiqi proqramlaşdırma

Modulun məqsəd və vəzifələri

bilmək:
proqram inkişafının əsas mərhələləri
təminat;
struktur texnologiyasının əsas prinsipləri
və obyekt yönümlüdür
proqramlaşdırma;
ayıklama və testin əsas prinsipləri
proqram məhsulları;
texnikanın inkişafı üçün üsul və vasitələr
sənədlər.

Modulun məqsəd və vəzifələri

bacara:
proqram kodu hazırlamaq
müasir proqramlaşdırma dillərində modullar;
inkişaf etmiş alqoritmə uyğun olaraq bir proqram yaradın
ayrı bir modul olaraq;
proqramı düzəldin və sınayın
modul səviyyəsi;
proqram təminatı üçün sənədlər hazırlamaq
vəsait;
üçün vasitələrdən istifadə edin
sənədlərin hazırlanmasının avtomatlaşdırılması;

Modulun məqsəd və vəzifələri

praktik təcrübəyə malikdir:
tapşırıq üçün bir alqoritm hazırlanması və
vasitələrlə həyata keçirilir
komputer vasitəsilə dizayn;
proqram məhsulu kodunun hazırlanması
səviyyəsində bitmiş spesifikasiyaya əsaslanır
modul;
üzərində alətlərin istifadəsi
bir proqram məhsulunu ayıklama mərhələsi;
test proqramı
müəyyən bir ssenari üçün modul;

Peşəkar bacarıq

PC 1.1. Fərdi üçün spesifikasiyaların hazırlanmasını həyata keçirin
komponent
PC 1.2. Proqram məhsulu kodunun hazırlanmasını həyata keçirin
modul səviyyəsində hazır spesifikasiyalara əsaslanır.
PC 1.3. Proqram modulları ilə hata ayıklayın
xüsusi proqramlardan istifadə etməklə.
PC 1.4. Proqram modullarını sınaqdan keçirin.
PC 1.5. Modulun proqram kodunu optimallaşdırın.
PC 1.6. Dizayn və texniki komponentlər hazırlayın
qrafik dillərdən istifadə edən sənədlər
spesifikasiyalar.

Fənlərarası əlaqələr

İnformatika və İKT;
İnformasiya texnologiyaları;
Kompüter sistemlərinin quruluşu;
Proqramlaşdırmanın əsasları;
OS.

Təhsil mərhələləri

Eşitmə dərsləri
Praktik dərslər
Müstəqil iş
Kurs layihəsi
Təhsil praktikası
Təcrübə
İxtisas imtahanı (müdafiə
portfel)

Tətbiqi proqramlaşdırma

Bölmə 1. Tətbiq inkişafının əsas prinsipləri

Mövzu 1.1. Əsas anlayışlar
tətbiqi proqramlaşdırma

Suallar

Proqram təsnifatı
Proqramın həyat dövrü
Proqramın inkişaf mərhələləri
Sənədləşdirmə proqramları

Proqramlaşdırma nədir?

Proqramlaşdırma - geniş mənada
bütün texnikanı təmsil edir
yaratmaq üçün lazım olan əməliyyatlar
tələblərin təhlili də daxil olmaqla proqramlar
inkişaf və tətbiqin bütün mərhələləri. V
dar mənada kodlaşdırma və
proqramı daxilində sınaqdan keçirir
konkret bir layihə.

Proqram nədir?

Proqram təminatı
üçün ümumi bir termindir
"Qeyri -maddi" (fiziki fərqli olaraq)
hesablama sisteminin komponentləri.
Əksər hallarda aiddir
işləyən proqramlar
hesablama sisteminə
onların hardware ilə fərqləndiyini vurğulamaq
eyni sistem vasitələri.

Hansı proqram sinifləri
Sən bilirsən?

sistemli: əməliyyat sistemləri; sürücülər
cihazlar; müxtəlif kommunal xidmətlər;
inkişaf etdiricilər üçün: proqramlaşdırma mühiti;
tərcüməçilər və tərcüməçilər; CASE alətləri;
proqram kitabxanaları;
son istifadəçilər üçün: mətn
prosessorlar; elektron tablolar; qrafik
redaktorlar; riyazi problemləri həll edənlər;
təlim və monitorinq sistemləri;
Kompüter oyunları; tətbiq olunan proqramlar.

Nə tətbiq olunur
proqram?

Tətbiq proqramı (tətbiq
proqram) - hər hansı bir proqram,
tapşırığın yerinə yetirilməsinə töhfə vermək,
verilən daxilində kompüterə təyin edilir
təşkilatına və birbaşa töhfəsini verir
bu vəzifənin icrası.

Proqram sistemi adlandırmaq olar?

Proqram sistemi təqdim edir
dəsti üçün həllər toplusudur
fərqli, lakin əlaqəli
vəzifələr (OS, DBMS).
Daha yüksək ixtisaslaşmış
proqramlara sistem deyilmir
(mətn redaktoru, tərtibçi və s.)

Proqramın mövcud olduğu bütün dövr üçün həyat dövrü
proqram sistemləri,
başlanğıcın inkişafından başlayaraq
bu sistemin anlayışı və bununla bitən
köhnəlmə

YAZILIMIN HƏYAT ÇEVRİMİ

PROQRAMLAR YARADMA MƏRHƏLƏLƏRİ

Sistem təhlili.
Üçün tələblərin təhlili
əsasında qurulmuş proqram sistemi
bütün məlumat axınlarının ilkin tədqiqatı
ənənəvi iş zamanı və həyata keçirilir
aşağıdakı ardıcıllıqla:
a) bütün işlərin növlərinin və ardıcıllığının aydınlaşdırılması;
b) qarşıya qoyulan məqsədləri müəyyənləşdirmək
hazırlanmış proqramla əldə edilir;
c) nailiyyəti təmin edən analoqların müəyyən edilməsi
oxşar məqsədlər, onların üstünlükləri və mənfi cəhətləri.

PROQRAMLAR YARADMA MƏRHƏLƏLƏRİ

Xarici spesifikasiya
Xarici spesifikasiyaların müəyyən edilməsindən ibarətdir, yəni.
giriş və çıxış məlumatlarının təsviri,
təqdimat formaları və məlumatların işlənməsi üsulları.
Aşağıdakı ardıcıllıqla həyata keçirilir:
a) yeni bir proqram hazırlamaq üçün bir vəzifə təyin etmək;
b) inkişaf etmişlərin əldə edilmiş məqsədlərinin qiymətləndirilməsi
proqram məhsulu.
Əlavə olaraq, lazım gələrsə, 1-2 addımlar qədər təkrarlana bilər
proqramın qənaətbəxş bir görünüşünə nail olmaq
funksiyalarının təsviri və bəziləri olan sistem
fəaliyyətinin həyata keçirilməsinin aydınlığı.

PROQRAMLAR YARADMA MƏRHƏLƏLƏRİ

Proqram dizaynı
Proqramın təsvirini hazırlamaq üçün kompleks işlər aparılır.
Bu mərhələ üçün ilkin məlumatlar müəyyən edilmiş tələblərdir
əvvəlki addımda hazırlanmış spesifikasiyada. Qəbul edildi
tələblərə necə cavab verəcəyinə dair qərarlar
spesifikasiyalar. Proqram inkişafının bu mərhələsi iki mərhələyə bölünür:
a) memarlıq dizaynı... Bir inkişafdır
Proqramın ən ümumi formada təsviri. Bu təsviri ehtiva edir
mümkün struktur variantları haqqında məlumat
proqram məhsulu (ya bir neçə proqram şəklində, ya da formada
bir proqramın bir neçə hissəsi), eləcə də əsas
alqoritmlər və məlumat strukturları. Bu işin nəticəsidir
proqram sisteminin memarlığının son versiyası,
fərdi proqram komponentlərinin quruluşuna olan tələblər və
proqramlararası məlumat mübadiləsi üçün faylların təşkili;
b) ətraflı dizayn. Bu mərhələdə memarlıq təsviri
proqramlar edən bir səviyyəyə qədər detallıdır
onun həyata keçirilməsi ilə bağlı mümkün işlər (kodlaşdırma və montaj). Üçün
bu modulların xüsusiyyətlərinin tərtib edilməsi və yoxlanılmasıdır,
modulların məntiqinin təsvirlərini tərtib etmək, finalın tərtib edilməsi
proqramın həyata keçirilməsi üçün plan.

PROQRAMLAR YARADMA MƏRHƏLƏLƏRİ

Kodlaşdırma və test
Fərdi modullar və
-ə qədər hazır modullar dəsti
bitmiş proqramı qəbul edir.
Hərtərəfli test
Əməliyyatın inkişafı
sənədlər
Qəbul və digər növlər
sınaqlar

PROQRAMLAR YARADMA MƏRHƏLƏLƏRİ

Proqram korreksiyası
Nəticələrə görə aparılır
əvvəlki testlər.
Müştəriyə çatdırılma
Son təslim davam edir
müştəriyə proqram məhsulu.
Dublikat

PROQRAMLAR YARADMA MƏRHƏLƏLƏRİ

Proqram dəstəyi
Bütün texniki əməliyyatlar tələb olunur
işinizdə bu proqramı istifadə edin
rejimi. Proqram dəyişdirilir,
iş sənədlərinə düzəlişlər etmək;
proqramın təkmilləşdirilməsi və s.
Bunun böyük miqyasına görə
əməliyyatların saxlanması iterativdir
həyata keçirilməməsi məsləhət görülən bir prosesdir
proqram buraxılışından əvvəl olduğu qədər
geniş istifadə üçün məhsullar.

Suallar

1. Əsas proqramlaşdırma anlayışları.
Proqram təminatı sinifləri.
2. Proqram təminatının həyat dövrü
təmin etmək
3. Proqramların yaradılması mərhələləri

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

Dizaynın hər mərhələsi
tərtib edilməsi ilə başa çatır
müvafiq sənədlər
vacib dizayn elementi
proqram tətbiqləridir
proqram sənədlərinin qeydiyyatı.

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

Proqram spesifikasiyası (proqram
dəqiqləşdirmə) bunun dəqiq təsviridir
ilə əldə ediləcək nəticə
proqramı istifadə edərək. Bu təsviri
tam olaraq nəyin lazım olduğunu bildirməlidir
necə olduğunu göstərmədən bir proqram hazırlayın
etməlidir.

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

İşini bir növ nəticə ilə bitirən proqramlar üçün, adətən tərtib edilir
Təsvir edən G / Ç spesifikasiyaları
giriş dəstinin istədiyiniz görüntüsü
kəmiyyətləri çıxış kəmiyyətləri toplusuna çevirir.
Dövr proqramları üçün (edə bilməyəcəyiniz)
son nöqtəsi) üslubunu təyin edin
diqqət mərkəzində olduğu spesifikasiyalar
fərdi funksiyalara diqqət yetirir,
proqram tərəfindən dövri olaraq həyata keçirilir
əməliyyatlar.

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

Əsas spesifikasiya aşağıdakıları təsvir edir:
vəzifədə iştirak edən obyektlər (proqram nə edir
və bu proqramla işləyən şəxs nə edir);
proseslər və fəaliyyətlər (dizayn prosedurları və fəaliyyətləri)
bir adam, bir avtomobildə bir problemi həll etmək üçün alqoritmlər,
məlumatların işlənməsi qaydası, əməliyyatın ölçüsü
proqramın işləməsi üçün lazım olan yaddaş);
giriş və çıxış məlumatları, eləcə də onların təşkili
(məsələn, ekran formaları ilə dialoqun ssenarisi,
rekord sahə uzunluqları olan fayl təşkilatı və
fayllardakı maksimum məlumat miqdarı);
gələcək proqramdan istifadə üçün təlimatlar.

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

Xarici proqramları fərqləndirin
uyğun gələn sənədlər
müştəri və orta
daxili layihə sənədləri.
Bir proqram tərtib edərkən
sənədlər əvvəlcə hazırlanır
xarici xüsusiyyətlər və sonra -
daxili

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

Xarici xüsusiyyətlərə daxildir
giriş və çıxış spesifikasiyaları
məlumatlar, onların təşkilatı, reaksiyaları
müstəsna hallar, tərif,
insan nə edir (hansı alqoritmlərə görə)
işləyir və məlumatı haradan alır) və
nə maşın.

PROQRAMLARIN SƏNƏDLƏNDİRİLMƏSİ

Daxili spesifikasiyalar daxildir
proqramın daxili məlumatlarının təsviri
(dəyişənlər, xüsusən də quruluşlu olanlar) və
bütün proqramın alqoritmlərinin təsviri və onun
hissələr.
Daxili spesifikasiyalar vahid olaraq verilir
proqramın memarlığının təsviri ilə
mürəkkəb və daxili quruluşa malikdir
fərdi proqram qurmaq
komponent

Ev tapşırığı

Sənəd növlərinin siyahısını tərtib edin
proqramın həyat dövrünün təmin edilməsi.

təmin edən daxiletmə prinsipidir
yaradılması, işləməsi və inkişafı üçün tələblər
Proqram daha mürəkkəb bir proqram tərəfindən müəyyən edilir.
daxil olan sistem;
ibarət olan sistemli birlik prinsipidir
ki, yaradılışın bütün mərhələlərində, işləməsi və
proqram təminatının inkişafı, bütövlüyü təmin ediləcəkdir
və alt sistemlər arasındakı əlaqələr
nəzarət alt sisteminin işləməsi;
proqram təmin etdiyi inkişaf prinsipi
artırmaq və təkmilləşdirmək imkanı
komponentlər və aralarındakı əlaqələr;

PROQRAM YARADILMASININ ÜMUMİ PRİNSİPLƏRİ

mürəkkəblik prinsipi
proqram təmin edir
məlumat emalının uyğunluğu
fərdi elementlər və bütün həcm üçün
emalın bütün mərhələlərində ümumilikdə məlumatlar;
informasiya birliyi prinsipi, yəni
bütün alt sistemlərdə dəstək vasitələri və
proqram komponentləri vahiddən istifadə edir
terminlər, simvollar, əfsanə
təqdimat üsulları;

PROQRAM YARADILMASININ ÜMUMİ PRİNSİPLƏRİ

uyğunluq prinsipi budur
dil, simvollar, kodlar və proqram vasitələri
müddəa razılaşdırılır, təmin edilir
hamının birgə işləməsi
altsistemlər və açıq bir quruluş saxlayır
bütövlükdə sistem;
dəyişməzlik prinsipini müəyyən edir
proqram alt sistemlərinin və komponentlərinin dəyişməzliyi
işlənmiş məlumatlara, yəni universal və ya tipikdir.

Proqramlaşdırma texnologiyalarıdır
yaratmaq üçün sübut edilmiş strategiyalar
texnika şəklində təqdim olunan proqramlar
məlumat fondları, təsvirləri ilə
dizayn prosedurları və dizayn əməliyyatları.
Struktur üçün bir texnologiya var
proqramlaşdırma texnologiyası
rasional proqramlar hazırlamaq
məlumat quruluşu, obyekt yönümlü proqramlaşdırma texnologiyası,
texnologiya vizual proqramlaşdırma.

TECHNOLOGIES AND PROGRAMMING PARADIGMS

Proqramlaşdırma paradiqmaları (anlayışlar,
inanc sistemləri) fərqlidir
proqram yazmağa yanaşmalar.
Dörd əsas paradiqma var,
günümüzün çoxunu təsvir edən
proqramlaşdırma texnikası: vacib,
qayda əsaslı tətbiq
və obyekt yönümlüdür.

TECHNOLOGIES AND PROGRAMMING PARADIGMS

İmperativ paradiqma
Bu model aparatın xüsusiyyətlərindən qaynaqlanır
Təlimatlara əsasən standart kompüter
(əmrlər) ardıcıl olaraq.
Bunda istifadə olunan əsas abstraksiya növü
paradiqma alqoritmlərdir. Bunun əsasında inkişaf etdirildi
operator yönümlü bir çox dillər
proqramlaşdırma.
Belə bir dildə bir proqram ardıcıllıqdan ibarətdir
hər birinin yerinə yetirilməsini tələb edən operatorlar
bir və ya daha çox yaddaş hüceyrəsindəki dəyəri dəyişdirmək. V
Ümumiyyətlə, belə bir dilin sintaksisi belədir:
Operator_1:
Operator_2:
...

TECHNOLOGIES AND PROGRAMMING PARADIGMS

Tətbiqi paradiqma
Bu paradiqma mülahizəyə əsaslanır
proqramın yerinə yetirdiyi funksiya.
Sual budur: hansı funksiyaya ehtiyac var
maşının ilkin vəziyyətinə tətbiq edin (tərəfindən
ilkin dəyişənlər dəstini seçmək və
onları müəyyən bir şəkildə birləşdirmək) belə
istədiyiniz nəticəni əldə edirsiniz?
Bu xüsusi fikri vurğulayan dillər
hesablamalar tətbiq olunan və ya
funksional. Kimi bir dilin sintaksisi
qayda belə görünür:
Function_n (... function_2 (function_1 (data)) ...)

TECHNOLOGIES AND PROGRAMMING PARADIGMS

Qayda əsaslı bir paradiqma
Bu paradiqma testinə əsaslanan dillər
lazımi icazə şərtinin olması və onun olması halında
aşkarlamalar müvafiq hərəkəti həyata keçirir.
Bənzər bir dildə proqramın icrası oxşardır
vacib bir dildə yazılmış bir proqramın icrası.
Ancaq ifadələr eyni ardıcıllıqla icra edilmir
bunlar proqramda müəyyən edilir. İcra əmri
icazə şərtlərini təyin edin. Bu cür dillərin sintaksisi
göstərildiyi kimi:
icazəli şərt_1 -> hərəkət_1 icazə verici
şərt_2 -> hərəkət__2
icazə verilən şərt_n -> hərəkət _n
Bəzən qaydalar “hərəkət varsa
icazə verilən şərt "yerinə yetirilən hərəkət
solda yazılıb.

TECHNOLOGIES AND PROGRAMMING PARADIGMS

Obyekt yönümlü paradiqma
Bu modeldə kompleks məlumat obyektləri qurulmuşdur.
Onlara edilən əməliyyatlar üçün müəyyən
məhdud metodlar dəsti. Yaradıldı
obyektlər daha sadə olanların xüsusiyyətlərini miras ala bilər
obyektlər.
Bu qabiliyyət sayəsində, obyekt yönümlü proqramlar yüksəkdir
proqramlara xas olan səmərəlilik,
vacib dillərdə yazılmışdır. Mümkünlük
istifadə edən müxtəlif siniflərin inkişafı
məhdud sayda məlumat obyekti,
elastikliyini və etibarlılığını təmin edir
tətbiq olunan dil üçün xarakterikdir.

Yayım (tərtib)
Yazılmış proqramları tərcümə etmək üsuludur
yüksək səviyyəli dillər, ekvivalent
istifadə olunan maşın dili proqramı
kompüter
Bundan sonra tərcüməçi qurdu
mikroprosessor aparatı,
-ə çevrilənləri birbaşa icra edir
maşın kodu proqramı. Bunun üstünlüyü
metod - çox sürətli proqram icrası
yayım prosesi başa çatdıqdan sonra.

PROQRAMLARIN YAYILMASI VƏ TƏŞİRİ

Tərcüməçi bir dil prosessorudur
proqramları hansısa mənbədən qəbul edir
giriş olaraq və çıxışda dil
funksionallıq baxımından ekvivalent istehsal edir
proqramlar, amma artıq başqa birində sözdədir
obyekt dili (ola da bilər
ixtiyari səviyyə).
Bir montajçı, mənbəyi olan bir tərcüməçidir
dil simvolik bir ifadədir
maşın kodu (assembler) və obyekt dili
bir növ maşın dilidir
hər hansı bir real kompüter.

PROQRAMLARIN YAYILMASI VƏ TƏŞİRİ

Tərtibçi - mənbənin olduğu tərcüməçi
yüksək səviyyəli bir dildir və onun obyekt dilidir
real kompüterin maşın dilinə yaxındır. o
ya montaj dili, ya da hansısa variant
maşın dili.
Bağlayıcı (bağlayıcı) tərcüməçidir
mənbə dili olan proqramlardan ibarətdir
daşınan formada və masalarda maşın dili
nöqtələri göstərən məlumatlar
köçürülən kod dəyişdirilməlidir,
icra oluna bilmək. Bir obyekt dili ibarətdir
maşın təlimatlarını yerinə yetirməyə hazırdır. Tapşırıq
linker, tək bir yürütülebilir fayl yaratmaqdır
ardıcıl istifadə edən proqram
cədvəldə göstərildiyi kimi ünvanlar.

PROQRAMLARIN YAYILMASI VƏ TƏŞİRİ

Ön prosessor (makroprosessor)
mənbə dili olan tərcüməçi
hər hansı birinin uzadılmış formasıdır
yüksək səviyyəli bir dil (Java və ya
C ++) və obyekt dili standartdır
bu dilin versiyası. Obyekt proqramı,
hazır işçi tərəfindən hazırlanır
adi yayım və yayım
orijinal standart prosessorlar
dil

PROQRAMLARIN YAYILMASI VƏ TƏŞİRİ

Şərh (proqram simulyasiyası)
Bu bir proqram istifadə edərkən bir üsuldur
(tərcüməçi) edam edildi
aparat kompüteri yaradılmışdır
maşın dili virtual kompüter
yüksək səviyyə. Tərcüməçi deşifr edir və
proqramın hər bir bəyanatını yerinə yetirir
əlaqədar yüksək səviyyəli dil
ardıcıllıq verir və məhsul istehsal edir
bununla təyin olunan nəticələr
proqram.

PROQRAMLARIN YAYILMASI VƏ TƏŞİRİ

Qarışıq tətbiq sistemləri
Birincisi, proqram orijinaldan yayımlanır
yerinə yetirmək üçün daha əlverişli bir forma verir.
Bu ümumiyyətlə bir neçə yaratmaqla edilir
proqramın müstəqil hissələri adlanır
modullar.
Yükləmə mərhələsində bu müstəqil hissələr birləşdirilir
bir sıra iş vaxtı dəstək proqramları ilə,
simulyasiya edilmiş proqram təminatının tətbiqi
(şərh olunan) əməliyyatlar. Bu gətirib çıxarır
proqramın icra edilə bilən bir formasını yaratmaq, operatorlar
tərəfindən deşifr edilərək icra edilir
təfsir.

PROGRAMLAMA DİLLƏRİNİN Ətraf Mühit və Tətbiqi

Proqramlaşdırma mühiti toplusudur
inkişafında istifadə olunan vasitələr
proqram təminatı.
Bu dəst ümumiyyətlə bir fayldan ibarətdir
sistemlər, mətn redaktoru, Redaktor
bağlantılar və tərtibatçı. Bundan əlavə, o
çoxlu sayda daxil ola bilər
ilə instrumental komplekslər
vahid istifadəçi interfeysi

Məşq edin

Çeşidləri sadalayın və xarakterizə edin
proqramlaşdırma mühiti.

TƏHSİL VƏ ELM NAZİRLİYİ

DONETSK XALQ CUMHURİYYƏTİ

DÖVLƏT Peşəkar

TƏHSİL MÜƏSSİSƏSİ

"DONETSK Sənaye və İqtisadi Kollec"

İŞ PROQRAMI

Təhsil praktikası UP.01

peşəkar modul PM.01 Kompüter sistemləri üçün proqram modullarının hazırlanması

09.02.03 "Kompüter sistemlərində proqramlaşdırma" ixtisası üzrə

Tərtib edən:

Volkov Volodymyr Aleksandrovich, "ən yüksək kateqoriyalı mütəxəssis" ixtisası kompüter kompüter fənləri müəllimi, "Donetsk Sənaye və İqtisad Kolleci" Dövlət Təhsil Təşkilatı

Proqramı təsdiqlədi: Vovk Pavel Andreevich, "Smart IT Service" in direktoru

1. TƏCRÜBƏ PROQRAMININ PASPORTU

2. TƏCRÜBƏNİN NƏTİCƏLƏRİ

3. TƏCRÜBƏNİN YAPISI VƏ MÜNDƏRİCATI

4. TƏŞKİLAT VƏ TƏCRÜBƏ ŞƏRTLƏRİ

5. TƏCRÜBƏ NƏTİCƏLƏRİNİN NƏZARƏT VƏ Qiymətləndirilməsi

1 TƏHSİL TƏCRÜBƏSİ PROQRAMININ PASPORTU. 01

1.1 Təlimin keçirildiyi yer UP.01

09.02.03 "Kompüter sistemlərində proqramlaşdırma" ixtisası PM.01 "Kompüter sistemləri üçün proqram modullarının hazırlanması" peşəkar modulunun UP.01 təcrübə proqramı » genişlənmiş qrup 09.00.00 "İnformatika və kompüter texnologiyası", əsas peşə fəaliyyət növünün (VPA) mənimsənilməsi baxımından:

Kompüter sistemləri və əlaqədar peşə bacarıqları (PC) üçün proqram modullarının hazırlanması:

Fərdi komponentlər üçün spesifikasiyalar hazırlayın.

Modul səviyyəsində hazır spesifikasiyalara əsaslanan proqram məhsul kodu hazırlayın.

Xüsusi proqram təminatından istifadə edərək proqram modullarını düzəldin.

Proqram modullarını sınaqdan keçirin.

Modulun proqram kodunu optimallaşdırın.

Qrafik spesifikasiya dillərindən istifadə edərək dizayn və texniki sənədlərin komponentlərini inkişaf etdirin.

PM.01 "Kompüter sistemləri üçün proqram modullarının hazırlanması" peşəkar modulunun UP.01 təhsil praktikası proqramı əlavə peşə təhsili və peşə təlimləri ixtisaslar üzrə işçilər 09.02.03 Orta (tam) ümumi təhsilin olması halında kompüter sistemlərində proqramlaşdırma. İş təcrübəsinə ehtiyac yoxdur.

1.2 Məqsəd və vəzifələrtəlim praktikası UP.01

Göstərilən peşə fəaliyyət növünü və müvafiq peşə bacarıqlarını mənimsəmək üçün tələbə UP.01 təhsil praktikası zamanı:

praktik təcrübəyə malikdir:

    tapşırığın alqoritminin hazırlanması və onun kompüter dəstəyi ilə həyata keçirilməsi;

    modul səviyyəsində hazır spesifikasiyaya əsaslanan proqram məhsul kodunun hazırlanması;

    proqram məhsulu ayıklama mərhələsində vasitələrdən istifadə;

    müəyyən bir ssenari üzrə proqram modulunun sınanması;

bacara:

    proqram modulunun kodunu müasir proqramlaşdırma dillərində inkişaf etdirmək;

    ayrı bir modul olaraq hazırlanmış alqoritmə uyğun bir proqram yaratmaq;

    proqramı modul səviyyəsində yoxlayın və sınayın;

    proqram təminatı üçün sənədlər hazırlamaq;

    sənədlərin icrasını avtomatlaşdırmaq üçün vasitələrdən istifadə etmək;

bilmək:

    proqram inkişafının əsas mərhələləri;

    strukturlaşdırılmış və obyekt yönümlü proqramlaşdırma texnologiyasının əsas prinsipləri;

    proqram məhsullarının ayıklanmasının və sınaqdan keçirilməsinin əsas prinsipləri;

texniki sənədlərin hazırlanması üsulları və vasitələri.

1.3 Həftə sayı(saat) proqramı mənimsəməktəlim praktikası UP.01

Yalnız 1,5 həftə, 54 saat.

2 TƏCRÜBƏ NƏTİCƏSİ

PM.01 "Kompüter sistemləri üçün proqram modullarının hazırlanması" peşəkar modulunun UP.01 təlim təcrübəsinin nəticəsi ümumi bacarıqların (GC) inkişafıdır:

Təcrübənin nəticəsinin adı

-

OK 2. Öz fəaliyyətlərinizi təşkil edin, peşəkar vəzifələrin yerinə yetirilməsinin standart üsul və yollarını seçin, effektivliyini və keyfiyyətini qiymətləndirin.

OK 3. Standart və qeyri-standart vəziyyətlərdə qərar qəbul edin və onlar üçün məsuliyyət daşıyın.

OK 4. Peşəkar vəzifələrin səmərəli icrası, peşəkar və şəxsi inkişaf üçün lazım olan məlumatları axtarın və istifadə edin.

OK 5. Peşəkar fəaliyyətdə informasiya və kommunikasiya texnologiyalarından istifadə edin.

OK 6. Komandada və komandada çalışın, həmkarlarınız, rəhbərliyiniz, istehlakçılar ilə səmərəli ünsiyyət qurun.

OK 7. Komanda üzvlərinin (tabeliyində olanların) işi, tapşırıqların nəticəsi üçün məsuliyyət götürün.

-

ixtisaslar

OK 9. Peşəkar fəaliyyətdə texnologiyaların tez -tez dəyişməsi şəraitində hərəkət etmək.

peşəkar bacarıqlar (PC):

Peşəkar fəaliyyət

Təcrübə nəticələrinin adı

Peşəkar fəaliyyətin əsas növünü mənimsəmək

    yerli və qlobal kompüter şəbəkələrinin resurslarından istifadə;

    yerli, çıxarıla bilən saxlama cihazlarında, eləcə də yerli kompüter şəbəkəsinin disklərində və İnternetdə məlumat fayllarının idarə edilməsi;

    sənədlərin printerdə və digər ofis avadanlıqlarında çap edilməsi, çoxaldılması və kopyalanması.

    hər bir praktiki iş üçün hesabat şəklində monitorinq.

    ixtisas imtahanı modu.

    tətbiqi proqramlarda işin savadlılığı və dəqiqliyi: mətn və qrafik redaktorları, verilənlər bazası, təqdimat redaktoru;

    verilənlər bazası məzmununda məlumat axtarışının sürəti.

    e-poçt, server və müştəri proqramlarının qurulmasının dəqiqliyi və savadlılığı:

    İnternet texnologiyalarından və xidmətlərindən istifadə edərək məlumat əldə etmə sürəti;

    İnternet texnologiyalarından və xidmətlərindən istifadə edərək məlumatların daxil edilməsinin və ötürülməsinin dəqiqliyi və savadlılığı.

    informasiyanı icazəsiz girişdən qorumaq üsul və vasitələrindən istifadə savadlılığı;

    düzgünlük və dəqiqlik Rezerv nüsxəsi və məlumatların bərpası;

    mühasibat və texniki sənədlərin aparılması.

3 PROQRAMIN YAPISI VƏ MÜNDƏRİCATITƏHSİL TƏCRÜBƏSİ 01.01

3.1 Tematik plan

Bacarıq kodları

Professional modul adı

Vaxt miqdarı, təcrübə üçün ayırın

(həftələrdə, saat)

Tarixləri

PC 1.1 - PC 1.6

PM.01 "Kompüter sistemləri üçün proqram modullarının hazırlanması"

1,5 həftə,

54 saat

3.2 Məzmun tətbiq edin

Fəaliyyətlər

İş növləri

Akademik fənlərin adı, mövzuları göstərən fənlərarası kurslar, iş növlərinin yerinə yetirilməsinin təmin edilməsi

Saat sayı (həftə)

"Əsas peşə fəaliyyət növünü mənimsəmək »

Mövzu 1. Giriş. Problemlərin həlli üçün alqoritmlər. Xətti alqoritmin quruluşu. Siklik alqoritmin quruluşu. Alt proqramın (funksiyanın) alqoritmi.

Xüsusi obyektlərin yaradılmasının əsasları haqqında biliklər formalaşdırdı

Mövzu2 . Çərşənbə günü Skratch.

Proseslərin avtomatlaşdırılması vasitələrinin əsasları haqqında biliklər formalaşdı. hiperlink və düymələrin istifadəsi; demo quraşdırma; təqdimat müxtəlif formatlarda saxlanılır.

MDK.01.01 "Sistem proqramlaşdırması"

Mövzu 3 ... Bir təlim proqramı yaratmaq (mövzudan dərs).

Prosessor funksiyalarından istifadə edərək məlumat analizinin əsasları haqqında biliklər formalaşdırdı

MDK.01.02 "Tətbiqi proqramlaşdırma"

Mövzu 4. Bir oyun proqramı hazırlamaq.

Son xüsusiyyətlərin hesablanmasının əsasları haqqında biliklər formalaşdırdı

MDK.01.01 "Sistem proqramlaşdırması"

Mövzu 5. LabVIEW qrafik proqramlaşdırma dili.

Bir prosessor testi yaratmağın əsasları haqqında biliklər formalaşdırdı.

MDK.01.02 "Tətbiqi proqramlaşdırma"

Mövzu 6. LabVIEW istifadə edərək bir tətbiq yaratmaq.

Sistemlə istifadəçi dialoqunun əsasları haqqında biliklər formalaşdırdı

MDK.01.02 "Tətbiqi proqramlaşdırma"

Mövzu 7 Proqram fraqmentinin yenidən istifadəsi.

Sistemin operatorları və funksiyaları haqqında biliklər formalaşdırılmışdır.

MDK.01.02 "Tətbiqi proqramlaşdırma"

Mövzu 8 LabVIEW Seminarı. İstifadəçinin iş yerində kompüterlə işləyərkən əməyin mühafizəsi.

Elementar funksiyaların hesablanması haqqında biliklər formalaşır. Əməyin mühafizəsi haqqında biliklər formalaşdırdı.

MDK.01.02 "Tətbiqi Proqramlaşdırma".

OP 18 "Əməyin Mühafizəsi"

Mövzu 9 Nəticələr. Təcrübə hesabatının tərtib edilməsi.

Analiz bacarıqları formalaşır kompüter texnologiyası, problem həll etmə Bacarıqları formalaşır.

MDK.01.01 "Sistem proqramlaşdırması"

MDK.01.02 "Tətbiqi proqramlaşdırma"

MDK.04.01 "Ofis proqramı"

4 Təşkilat və Davranış Şərtləri

TƏHSİL TƏCRÜBƏSİ. 01

4.1 Sənədləşmə tələbləri, təcrübə üçün zəruridir:

PM.01 peşəkar modulunun UP.01 təlim praktikasının iş proqramı. "Kompüter sistemləri üçün proqram modullarının hazırlanması", dövlət orta təhsil standartına uyğun olaraq "Donetsk Sənaye və İqtisad Kolleci" Dövlət peşə təhsili müəssisəsi tərəfindən orta səviyyəli mütəxəssislər üçün hazırlanan proqramın bir hissəsidir. peşə təhsili 09.02.03 "Kompüter sistemlərində proqramlaşdırma" ixtisasında, ixtisas üçün tədris planına əsaslanaraq, MDK.01.01 "Sistem Proqramlaşdırması", MDK01.02 "Tətbiqi Proqramlaşdırma" fənləri üçün iş proqramı, tədris və metodik dəstək orta peşə təhsilinin təhsil proqramlarını mənimsəyən şagirdlərin təcrübəsi.

4.2 Təcrübənin tədris və metodiki təminatı üçün tələblər:

iş növünə görə təsdiq edilmiş tapşırıqların siyahısı, təlimatlar işin icrası ilə əlaqədar tələbələr üçün, təcrübə haqqında hesabatların həyata keçirilməsi üçün tövsiyələr.

4.3 Logistika tələbləri:

sənaye praktikasının təşkili üçün sinif otaqlarının və laboratoriyanın olması tələb olunur.

Ofis avadanlığı və iş yerləri:

    şagird sayına görə oturacaqlar (masa, kompüter, stul);

    müəllimin iş yeri (masa, kompüter, stul);

    tədris vasitələrinin və məlumat daşıyıcılarının saxlanması üçün kabinet;

    təlimə, təşkilata fərdi yanaşma üçün vəzifələr müstəqil iş və kompüterdəki şagirdlər üçün məşqlər;

    istinad və metodiki ədəbiyyat;

    optik və elektron daşıyıcılardakı kompüterlər üçün bir sıra sistem, tətbiq və təlim proqramları;

    tələbələrin əməyin mühafizəsi ilə bağlı təlimat jurnalı;

    tədris vasitələri dəsti.

Texniki təlim vasitələri:

    sinif lövhəsi;

    lisenziyalı proqram təminatı olan fərdi kompüter;

    lazer printer;

  • təhsil kompüterləri;

    interaktiv avadanlıq dəsti (proyektor, ekran, dinamiklər);

    yanğınsöndürmə vasitələri (yanğınsöndürən).

Ofis avadanlığı və inkişaf alətlərinin iş stansiyaları: fərdi kompüterlər(monitor, sistem vahidi, klaviatura, siçan), tədris və metodiki sənədlər toplusu, intizamın məzmununa uyğun proqram təminatı (proqramlaşdırma dillərinin qabıqları).

Sinifdəki bütün kompüterlər yerli bir şəbəkəyə birləşdirilmiş, məlumat saxlama şəbəkəsinə və İnternetə çıxışa malikdir.

Rabitə avadanlıqları:

    şəbəkə adapterləri;

    şəbəkə kabelləri;

    WiFi simsiz avadanlıq.

Şəbəkələrin quraşdırılması üçün komponentlər, quraşdırma üçün avadanlıqlar.

4.4 Təhsil nəşrlərinin siyahısı, İnternet resursları, əlavə ədəbiyyat

Əsas mənbələr:

    Olifer V.G. Şəbəkə əməliyyat sistemləri: universitetlər üçün dərslik / V.G.Olifer, N.A.Olifer. - 2 -ci nəşr. - Sankt -Peterburq: Peter, 2009,2008. - 668 s.:

    E. Tanenbaum. OS. İnkişaf və tətbiq. SPb.: Peter, 2006.- 568 s.

    Pupkov K.A. Mastering əməliyyat sistemi Unix / K.A. Pupkov, A.S. Chernikov, N.M. Yakuşheva. - Moskva: Radio və rabitə, 1994 .-- 112 s.

    L. Beck Sistem proqramlaşdırmasına giriş - M.: Mir, 1988.

    Grekul V.I., Denischenko G.N., Korovkina N.L. Dizayn informasiya sistemləri/ Moskva: Binom, 2008 .-- 304 s.

    Lipaev, V.V. Proqram mühəndisliyi. Metodoloji əsaslar [Mətn]: Dərslik. / V. V. Lipaev; Dövlət un -t - Ali İqtisadiyyat Məktəbi. - M.: TEIS, 2006 .-- 608 s.

    Lavrischeva E. M., Petrukhin V. A. Proqram mühəndisliyinin metod və vasitələri. - Dərs kitabı

    Ian Somerville. Proqram Mühəndisliyi, 6 -cı nəşr.: Per. ingilis dilindən M. : "Williams" nəşriyyatı, 2002. - 624 s.

    Excel 2010: VBA -da peşəkar proqramlaşdırma.: Per. ingilis dilindən - M.: MMC “I.D. Williams ”, 2012. - 944 s. : xəstə. - Paralel. başlıq Müh

    Fowler M. Refactoring: mövcud kodu təkmilləşdirmək. - Per. İngilis dilindən-SPb: Symbol-plus, 2003.-432 s.

Əlavə mənbələr:

    Volkov V.A. "Sistem proqramlaşdırması" fənni üzrə praktiki işlərin həyata keçirilməsi üçün METODOLOJİK TƏLİMATLAR, Donetsk: DONPEK, 2015.

    Volkov V.A. Kurs layihəsinin həyata keçirilməsi üçün metodik göstərişlər, Donetsk: DONPEK, 2015.

İnternet- qaynaqlar:

    Sistem proqramlaşdırması [elektron qaynaq]/Giriş rejimi: http://www.umk3.utmn.ru.

    Proqram təminatı və İnternet resursları: http://www.intuit.ru

    İntizam Ədəbiyyatı - http://www.internet-technologies.ru/books/

    "Proqram mühəndisliyinə giriş" elektron dərsliyi - http://www.intuit.ru/studies/professional_skill_improvements/1419/info

    "Proqramlaşdırma texnologiyası" elektron dərsliyi -http: //bourabai.kz/alg/pro.htm

4.5 Bir təhsil müəssisəsi və təşkilatının təcrübə rəhbərlərinə olan tələblər

Bir təhsil müəssisəsinin təcrübə rəhbərlərinə tələblər:

mühəndis və müəllim heyəti: məzunlar - fənlərarası kursların və ümumi peşə fənlərinin müəllimləri. Müvafiq peşə sahəsindəki təşkilatlarda iş təcrübəsi tələb olunur.

İstehsalat ustası: ən azı 3 ildə bir dəfə ixtisaslaşdırılmış təşkilatlarda məcburi stajla 5-6 ixtisas kateqoriyasının olması. Müvafiq peşə sahəsindəki təşkilatlarda iş təcrübəsi tələb olunur.

5 NƏTİCƏLƏRİN NƏZARƏTİ VƏ Qiymətləndirilməsi

TƏHSİL TƏCRÜBƏSİ. 01

Təhsil təcrübəsi haqqında hesabat forması UP.01 - metodik tövsiyələrin tələblərinə uyğun tərtib edilmiş təcrübə haqqında hesabat.

nəticələr

(peşəkar bacarıqları mənimsəmiş)

Əsas amillər

hazırlığın nəticəsidir

Formalar və metodlar

nəzarət

PC 1.1. Fərdi komponentlər üçün spesifikasiyaların hazırlanmasını həyata keçirin

Tapşırıq alqoritminin hazırlanması və kompüter dəstəyi ilə həyata keçirilməsi

Şagirdin mənimsəmə prosesində fəallığını müşahidə etmək və qiymətləndirmək təhsil proqramı praktiki dərslərdə, təhsil və istehsalat praktikası üzrə işlər yerinə yetirərkən.

PC 1.2. Modul səviyyəsində hazır spesifikasiyalara əsaslanan proqram məhsulu kodunun hazırlanmasını həyata keçirin.

Strukturlaşdırılmış və obyekt yönümlü proqramlaşdırma texnologiyasının əsas prinsiplərini bilmək.

Proqram modulunun kodunu müasir proqramlaşdırma dillərində inkişaf etdirmək.

PC 1.3. Xüsusi proqram təminatından istifadə edərək proqram modullarını düzəldin

Proqramı modul səviyyəsində yoxlayın və sınayın.

PC 1.4. Proqram modullarını sınaqdan keçirin.

Ayrı bir modul olaraq hazırlanmış alqoritmə uyğun olaraq bir proqram yaradın.

PC 1.5. Modulun proqram kodunu optimallaşdırın

Modul səviyyəsində hazır spesifikasiyaya əsaslanan proqram məhsul kodunun hazırlanması.

PC 1.6. Qrafik spesifikasiya dillərindən istifadə edərək dizayn və texniki sənədlərin komponentlərini inkişaf etdirin

Texniki sənədlərin hazırlanmasının üsul və vasitələrini bilmək.

Proqram təminatı üçün sənədlər tərtib edin.

Sənəd işlərini avtomatlaşdırmaq üçün vasitələrdən istifadə edin.

Təlim nəticələrinin monitorinqi və qiymətləndirilməsinin forma və üsulları şagirdlərdə yalnız peşə bacarıqlarının formalaşmasını yox, həm də ümumi bacarıqların və onları təmin edən bacarıqların inkişafını yoxlamağa imkan verməlidir.

nəticələr

(ümumi bacarıqları mənimsəmiş)

Nəticəni qiymətləndirmək üçün əsas göstəricilər

Nəzarət və qiymətləndirmə formaları və üsulları

OK 1. Gələcək peşənizin mahiyyətini və ictimai əhəmiyyətini anlayın, ona davamlı maraq göstərin.

Gələcək peşəyə davamlı marağın nümayişi;

- mənimsənilən peşə səriştələrinin tətbiqinin etibarlılığı;

İstehsalat təcrübəsi üzərində iş apararkən praktiki təhsildə mütəxəssis müşahidə və qiymətləndirmə;

OK 2. Öz fəaliyyətlərinizi təşkil edin, peşəkar vəzifələrin yerinə yetirilməsinin üsul və yollarını müəyyənləşdirin, effektivliyini və keyfiyyətini qiymətləndirin.

Məqsəd qoymağın əsaslandırılması, peşə problemlərinin həlli üçün metod və metodların seçilməsi və tətbiqi;

Öz işinin nəticələrini araşdırmaq və düzəltmək

İşin icrası zamanı praktiki təhsildə qiymətləndirmə;

Təlim zamanı müşahidə;

İntrospeksiya

OK 3. Problemləri həll edin, riskləri qiymətləndirin və qeyri-standart vəziyyətlərdə qərar verin.

Üçün standart və qeyri-standart peşə vəzifələri üzrə qərar qəbul etmənin effektivliyi müəyyən vaxt;

Görülən işlərin keyfiyyətini optimallaşdırmaq üçün planın effektivliyi

Tapşırıqları yerinə yetirərkən şagirdin fəaliyyətinin müşahidəsinin nəticələrinin təfsiri

OK 4. Peşəkar vəzifələrin formalaşdırılması və həlli, peşəkar və şəxsi inkişaf üçün lazım olan məlumatların axtarışı, təhlili və qiymətləndirilməsi.

Peşəkar vəzifələrin aydın və tez yerinə yetirilməsi, peşəkar və şəxsi inkişaf üçün lazım olan məlumatların seçilməsi və təhlili

İş zamanı ekspert qiymətləndirməsi;

Problemlərin ortaya çıxması və həlli zamanı özünü idarə etmə

OK 5. Peşəkar fəaliyyətini yaxşılaşdırmaq üçün informasiya və kommunikasiya texnologiyalarından istifadə edin.

peşəkar problemləri həll etmək üçün informasiya və kommunikasiya texnologiyalarından istifadə etmək bacarığı

tapşırıqların qiymətləndirilməsi

OK 6. Bir komanda və bir komanda ilə işləyin, birliyini təmin edin, həmkarları, rəhbərliyi, istehlakçıları ilə səmərəli ünsiyyət qurun.

Bir qrup, müəllimlər, sənaye təlim ustası ilə ünsiyyət qurma bacarığı

OK 7. Tapşırıqların nəticəsi üçün məsuliyyət götürərək hədəfləri təyin edin, tabeliyində olanların fəaliyyətini motivasiya edin, işlərini təşkil edin və nəzarət edin.

- öz işinin və komandanın işinin nəticələrini araşdırmaq və düzəltmək

Praktiki məşğələlər zamanı bir qrupda işin gedişatını müşahidə etmək

OK 8. Peşəkar və şəxsi inkişaf vəzifələrini müstəqil olaraq təyin etmək, özünütəhsil ilə məşğul olmaq, şüurlu şəkildə peşəkar inkişafı planlaşdırmaq.

Yaradıcı və peşəkar imic formalaşdırmaq üçün müstəqil işin təşkili;

Özünü təhsil və təkmilləşdirmə işlərinin təşkili

ixtisaslar

Sənaye təcrübəsi prosesində müşahidə və qiymətləndirmə;

Refleksiv analiz (şagird hərəkətlərinin alqoritmi);

Təcrübə gündəliyi;

Tələbə portfelinin təhlili

OK 9. Peşəkar fəaliyyətdə texnologiyaları dəyişməyə hazır olun.

Geyimlərin hazırlanması və istehsalı üçün texnoloji proseslər sahəsindəki yeniliklərin təhlili

Vəziyyətli vəzifələrin həll yollarının qiymətləndirilməsi;

İş və təşkilati öyrənmə oyunları;

Praktiki təhsildə, istehsalat təcrübəsi prosesində müşahidə və qiymətləndirmə

Qeyri -formaldan formala keçid mahiyyətcə qeyri -rəsmi xarakter daşıyır.

Mühazirə 8.

YAZILIM MODULUNUN GELİŞMƏSİ

Proqram modulunun hazırlanması qaydası. Strukturlaşdırılmış proqramlaşdırma və addım -addım detallar. Pseudocode anlayışı. Proqram moduluna nəzarət.

8.1. Proqram modulunun hazırlanması qaydası.

Bir proqram modulu hazırlayarkən aşağıdakı qaydalara riayət etmək məsləhət görülür:

· Modul spesifikasiyasının öyrənilməsi və yoxlanılması, proqramlaşdırma dilinin seçilməsi;

· Alqoritm və məlumat quruluşu seçimi;

· Modulun proqramlaşdırılması (kodlaşdırılması);

· Modulun mətninin cilalanması;

· Modulun yoxlanılması;

· Modulun tərtib edilməsi.

Proqram modulunun hazırlanmasında ilk addım, əsasən proqram quruluşunun aşağıdan bitişik nəzarətidir: modul spesifikasiyasını öyrənərək, geliştirici bunun ona aydın olduğunu və bu modulun inkişafı üçün kifayət qədər olduğundan əmin olmalıdır. Bu addımın sonunda bir proqramlaşdırma dili seçilir: proqramlaşdırma dili bütün proqram sistemi üçün əvvəlcədən təyin olunsa da, bəzi hallarda (proqramlaşdırma sistemi icazə verərsə) tətbiq üçün daha uyğun başqa bir dil seçilə bilər. bu modulun (məsələn, montaj dili).

Proqram modulunun inkişafının ikinci mərhələsində, qoyulan problemin həlli üçün və ya ona yaxın olan hər hansı bir alqoritmin artıq məlum olub olmadığını öyrənmək lazımdır. Və uyğun bir alqoritm tapılarsa, ondan istifadə etmək məsləhətdir. Bir modul öz funksiyalarını yerinə yetirərkən istifadə ediləcək uyğun məlumat strukturlarının seçilməsi, inkişaf etdirilən modulun məntiqini və keyfiyyət göstəricilərini əvvəlcədən müəyyən edir, buna görə də çox məsuliyyətli bir qərar kimi qiymətləndirilməlidir.


Üçüncü addımda modulun mətni seçilmiş proqramlaşdırma dilində qurulur. Modul spesifikasiyasında göstərilən funksiyaları həyata keçirərkən nəzərə alınması lazım olan hər cür detalların bolluğu asanlıqla çoxlu səhvlər və qeyri -dəqiqliklər ehtiva edən çox qarışıq bir mətnin yaranmasına səbəb ola bilər. Belə bir modulda səhv tapmaq və ona lazımi dəyişikliklər etmək çox vaxt aparan bir iş ola bilər. Buna görə də, modulun mətnini qurmaq üçün texnoloji cəhətdən sağlam və praktiki olaraq sübut edilmiş proqramlaşdırma intizamından istifadə etmək çox vacibdir. İlk dəfə Dijkstra, strukturlaşdırılmış proqramlaşdırmanın əsas prinsiplərini formalaşdıraraq əsaslandıraraq buna diqqət çəkdi. Praktikada geniş istifadə olunan bir çox proqramlaşdırma fənni bu prinsiplərə əsaslanır. Ən çox yayılmış nizam -intizam, 8.2 və 8.3 -cü bölmələrdə ətraflı şəkildə müzakirə olunan artan incəlikdir.

Modulun inkişafındakı növbəti addım, proqram sisteminin keyfiyyət spesifikasiyasına uyğun olaraq modulun mətninin tam formaya gətirilməsi ilə bağlıdır. Bir modul proqramlaşdırarkən, geliştirici, modulun funksiyalarının düzgün yerinə yetirilməsinə diqqət yetirir, natamam şərhlər buraxır və proqram tərzi üçün tələblərin bəzi pozuntularına yol verir. Modulun mətnini cilalayarkən, lazım olan keyfiyyət primitivlərini təmin etmək üçün mətndəki mövcud şərhləri düzəltməli və ehtimal ki, ona əlavə şərhlər daxil etməlidir. Eyni məqsəd üçün proqramın mətni üslub tələblərinə uyğun olaraq düzəldilir.

Modul yoxlama addımı, modulun ayıklanmadan əvvəl daxili məntiqinin əl ilə yoxlanılmasıdır (kompüterdə icrasından istifadə etməklə), müzakirə olunan proqramlaşdırma texnologiyası üçün formalaşdırılmış ümumi prinsipi, hər bir mərhələdə verilən qərarlara nəzarət edilməsinin zəruriliyini həyata keçirir. proqram təminatının inkişafı (bax. Mühazirə 3). Modulun doğrulama üsulları Bölmə 8.4 -də müzakirə olunur.

Və nəhayət, bir modulun inkişafındakı son addım, modulun yoxlanılmasını tamamlamaq (tərtibçinin köməyi ilə) və modulun ayıklama prosesinə keçmək deməkdir.

8.2. Strukturlaşdırılmış proqramlaşdırma.

Bir modulu proqramlaşdırarkən, proqramın yalnız bir kompüter üçün deyil, həm də bir insan üçün başa düşülməsi lazım olduğunu nəzərə almaq lazımdır: həm modulu hazırlayan, həm modulu yoxlayan şəxslər, həm də testlər hazırlayan testçilər. modulu düzəltmək və modula lazımi dəyişiklikləri edən PS saxlayıcıları modulun məntiqini dəfələrlə təhlil etmək məcburiyyətində qalırlar. Müasir proqramlaşdırma dillərində bu məntiqi istədiyiniz qədər qarışdırmaq üçün kifayət qədər vasitələr var ki, bu da modulu insanların başa düşməsini çətinləşdirir və nəticədə etibarsız və ya saxlanmasını çətinləşdirir. Buna görə uyğun dil vasitələrini seçmək və xüsusi bir proqramlaşdırma intizamına riayət etmək üçün addımlar atmaq lazımdır. Bu baxımdan, Dijkstra, proqramın məntiq anlayışını xeyli artıra biləcək bir neçə növ idarəetmə quruluşundan (quruluşundan) ibarət bir proqram qurmağı təklif etdi. Yalnız belə konstruksiyalardan istifadə edərək proqramlaşdırma adlanırdı struktur.


Pirinç. 8.1. Strukturlaşdırılmış proqramlaşdırmanın əsas nəzarət quruluşları.

Strukturlaşdırılmış proqramlaşdırmanın əsas quruluşları bunlardır: izləmə, bölmə və təkrarlama (bax Şəkil 8.1). Bu konstruksiyaların komponentləri ümumiləşdirilmiş operatorlardır (işlənmə qovşaqları) S, S1, S2 və şərt (predikat) P. Ümumiləşdirilmiş operator ya istifadə olunan proqramlaşdırma dilinin sadə operatoru ola bilər (təyinat, giriş, çıxış, prosedur zəng operatorları) və ya əsas strukturlaşdırılmış proqramlaşdırma idarəetmə konstruksiyalarından ibarət olan bir proqram parçası. Bu strukturların hər birinin nəzarət üçün yalnız bir girişi və bir çıxışı olması vacibdir. Beləliklə, ümumiləşdirilmiş operatorun yalnız bir girişi və bir çıxışı var.

Bu konstruksiyaların artıq riyazi obyektlər olması da çox vacibdir (mahiyyətcə strukturlaşdırılmış proqramlaşdırmanın uğurunun səbəbini izah edir). Sübut edilmişdir ki, hər bir strukturlaşdırılmamış proqram üçün funksional ekvivalent (yəni eyni problemi həll edən) strukturlaşdırılmış proqram qurmaq mümkündür. Strukturlaşdırılmış proqramlar üçün proqramdakı bəzi səhvləri aşkar etməyə imkan verən bəzi xüsusiyyətləri riyazi olaraq sübut edə bilərsiniz. Bu mövzuda ayrıca bir dərs veriləcək.

Strukturlaşdırılmış proqramlaşdırma bəzən "proqramlaşdırmaya getmə" olaraq da adlandırılır. Ancaq burada məqsəd GO GO ifadəsində deyil, nizamsız istifadəsindədir. Çox vaxt, bəzi proqramlaşdırma dillərində (məsələn, FORTRAN -da) strukturlaşdırılmış proqramlaşdırma həyata keçirilərkən, keçid operatoru (GO TO) strukturlaşdırılmış proqramlaşdırma prinsiplərini pozmayan strukturlu konstruksiyaların həyata keçirilməsi üçün istifadə olunur. Proqramı, xüsusən də yuxarıdakı modul mətnində (əvvəllər) icra olunan atlama operatorunda yerləşən operatora atlamağı qarışdıran "qeyri-struktur" atlama operatorlarıdır. Buna baxmayaraq, bəzi sadə hallarda filial operatorundan qaçmaq cəhdi, aydınlığını artırmayan və modulun mətnində əlavə səhvlərin olma ehtimalını ehtiva edən çox çətin strukturlaşdırılmış proqramlara səbəb ola bilər. Buna görə də, proqramın aydınlığı hesabına deyil, mümkün olduqda atlama operatorundan istifadə etməməyi tövsiyə edə bilərik.

Atlama operatorundan istifadənin faydalı halları arasında, "vaxtından əvvəl" müəyyən bir dövrün və ya müəyyən bir prosedurun işini, yəni bəzi struktur bölmələrinin (ümumiləşdirilmiş operatorun) işini dayandıran xüsusi şərtlə bir döngə və ya prosedurdan çıxmaq daxildir. bununla da yalnız yerli olaraq proqramın strukturunu pozur. Böyük çətinliklər (və strukturun mürəkkəbliyi) ortaya çıxan müstəsna (çox vaxt səhv) vəziyyətlərə reaksiyanın struktur tətbiqindən qaynaqlanır, çünki bunun üçün yalnız struktur bölmədən erkən çıxmaq deyil, həm də lazımi emal (istisna) tələb olunur. bu vəziyyət (məsələn, uyğun bir diaqnostik məlumatın verilməsi). İstisna işləyicisi proqram quruluşunun istənilən səviyyəsində ola bilər və ona müxtəlif aşağı səviyyələrdən daxil olmaq mümkündür. İstisna vəziyyətlərə reaksiyanın aşağıdakı "qeyri-struktur" tətbiqi texnoloji baxımdan olduqca məqbuldur. İstisna işləyicilər bu və ya digər struktur bölmənin sonuna yerləşdirilir və hər bir işçi işini bitirdikdən sonra yerləşdirildiyi struktur bölmədən çıxacaq şəkildə proqramlaşdırılır. Belə bir idarəçiyə zəng, verilən struktur bölmədən (içərisində yuvalanmış hər hansı bir struktur vahidi daxil olmaqla) keçid operatoru tərəfindən edilir.

8.3. Addım-addım detallar və psevdokod anlayışı.

Strukturlaşdırılmış proqramlaşdırma modul mətninin necə olması barədə təlimatlar verir. Sual yaranır ki, belə bir mətn qurmaq üçün proqramçı necə davranmalıdır. Çox vaxt bir modulun proqramlaşdırılması onun işləmə məntiqini ümumi şəkildə izah edən blok diaqramının qurulması ilə başlayır. Ancaq müasir proqramlaşdırma texnologiyası uyğun kompüter dəstəyi olmadan bunu etməyi məsləhət görmür. Blok diaqramları modulun işləmə məntiqini çox aydın şəkildə ifadə etməyə imkan versə də, proqramlaşdırma dilində əllə kodlaşdırıldıqda çox spesifik bir səhv mənbəyi yaranır: blok diaqramlar kimi mahiyyətcə iki ölçülü strukturların xəritələndirilməsi. modulu təmsil edən xətti mətn, modulun işləmə məntiqini təhrif etmək təhlükəsini ehtiva edir, buna görə də onu yenidən araşdırarkən yüksək səviyyədə diqqəti qorumaq olduqca çətindir. İstisna, qrafik redaktorun blok diaqramları qurmaq üçün istifadə edildiyi və proqramlaşdırma dilində mətnin avtomatik olaraq onlardan yaradılacağı şəkildə rəsmiləşdirildiyi hal ola bilər (məsələn, R texnologiyasında olduğu kimi).

Modulun mətnini qurmağın əsas üsulu olaraq, müasir proqramlaşdırma texnologiyası tövsiyə edir addım -addım ətraflı... Bu metodun mahiyyəti, modul mətninin hazırlanması prosesini bir neçə mərhələyə bölməkdir. Birincisində

Addım, modulun ümumi sxemini müşahidə edilə bilən bir xətti mətn formasında (yəni çox böyük anlayışlardan istifadə edərək) təsvir edir və bu təsvir tam şəkildə rəsmiləşdirilməmiş və insan qavrayışına yönəldilmişdir. Hər növbəti addımda anlayışlardan biri incələnir və detallandırılır (buna ad verəcəyik aydınlaşdırdı), əvvəlki addımlardan birində hazırlanmış hər hansı bir təsvirdə. Bu addımın nəticəsi olaraq, seçilmiş zərif konsepsiyanın təsviri ya əsas proqramlaşdırma dili (yəni təqdimat üçün seçilmiş modul) baxımından, ya da yeni zərif anlayışlardan istifadə etməklə birinci addımdakı formada yaradılır. Bu proses bütün zərif anlayışlar olduqda bitir aydınlaşdırılması(yəni nəticədə əsas proqramlaşdırma dilində ifadə ediləcək). Son addım, zərif anlayışların bütün təzahürlərini verilən təsvirlərlə əvəz etməklə və bu proqramlaşdırma dilindən istifadə edərək strukturlaşdırılmış proqramlaşdırma konstruksiyalarının bütün təzahürlərini ifadə etməklə əsas proqramlaşdırma dilində modulun mətnini əldə etməkdir.

Addım-addım təfərrüatlar, müəyyən edilmiş təsvirləri təmsil etmək üçün qismən rəsmiləşdirilmiş bir dilin istifadəsi ilə əlaqələndirilir. yalançı kod... Bu dil, ümumi operatorları və şərtləri təmsil etmək üçün təbii dildə qeyri -rəsmi fraqmentlərlə birlikdə rəsmiləşdirilmiş bütün strukturlaşdırılmış proqramlaşdırma quruluşlarından istifadə etməyə imkan verir. Əsas proqramlaşdırma dilindəki müvafiq fraqmentlər ümumiləşdirilmiş operatorlar və şərtlər olaraq da təyin edilə bilər.

· Əsas dildə bir modulun başlanğıcı, yəni bu modulun ilk cümləsi və ya başlığı (spesifikasiyası);

Əsas dildə təsvirlər bölməsi (dəsti) və prosedur və funksiyaların təsvirləri yerinə - yalnız onların xarici dizaynı;

· Bir ümumiləşdirilmiş operator olaraq modul gövdəsinin operatorlarının ardıcıllığının qeyri -rəsmi təyin edilməsi (aşağıya baxın), həmçinin hər bir prosedurun və ya funksiyanın təsvirinin gövdəsinin bir ümumiləşdirilmiş operator kimi qeyri -rəsmi təyin edilməsi;

· Əsas dildə modulun son cümləsi (sonu).

Prosedur və ya funksiyanın təsvirinin görünüşü oxşardır. Bununla birlikdə, Dijkstra'yı təqib edirsinizsə, detallarını ayrı bir təsvir şəklində etməklə burada təsvirlər hissəsini qeyri -rəsmi bir təyinatla təqdim etmək daha yaxşıdır.

Pseudocode -da ümumiləşdirilmiş bir operatorun qeyri -rəsmi təyinatı, məzmununu əks etdirən ixtiyari bir cümlə ilə təbii dildə tərtib edilmişdir. Belə bir təyinatın dizaynı üçün yeganə rəsmi tələb aşağıdakılardır: bu cümlə bütünlüklə bir və ya daha çox qrafik (çap) sətri tutmalı və nöqtə (və ya bunun üçün xüsusi olaraq ayrılmış başqa bir işarə) ilə bitməlidir.

Pirinç. 8.2. Pseudocode -da strukturlaşdırılmış proqramlaşdırmanın əsas quruluşları.

Hər bir qeyri -rəsmi ümumiləşdirilmiş operator üçün strukturlaşdırılmış proqramlaşdırmanın və digər ümumiləşdirilmiş operatorların əsas strukturlarının tərkibindən istifadə etməklə onun fəaliyyətinin məntiqini (məzmununu ətraflı şəkildə) ifadə edən ayrı bir təsvir yaradılmalıdır. Belə bir təsvirin adı ətraflı ümumi operatorun qeyri -rəsmi təyinatı olmalıdır. Strukturlaşdırılmış proqramlaşdırmanın əsas quruluşlarını təqdim etmək olar göstərildiyi kimi(bax. şəkil 8.2). Burada şərt ya boolean ifadə olaraq əsas proqramlaşdırma dilində açıq şəkildə təyin oluna bilər, ya da bu şərtin mənasını izah edən bəzi fraqmentlərlə qeyri -rəsmi olaraq təbii dildə təqdim edilə bilər. İkinci halda, bu şərtin (təbii dildə bir fraqment) başlıq olaraq təyin edilməsini göstərən, bu şərti ətraflı şəkildə izah edən ayrı bir təsvir yaradılmalıdır.

Təkrardan çıxın (döngə):

Prosedurdan (funksiyadan) çıxmaq: