logo

Modulli programmalash,va undan foydalanilish

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

174.1513671875 KB
“Modulli programmalash ,va undan foydalanilish ”
Kirish………………………………………………………………………………
………
I BOB Modulli programmalash
1.1. Modulli programmalash haqida uning afzalligi           
1.2. Modulli programmalashning qo’llanilishi Pythonda
II BOB Modulli programmashning foydalanish va imkoniyatlari
2.Modulli programmalashdan foydalanish
 2.1 Modulli programmalash foydalanish turlari 
2.2 Modulli  dasturlash tushunchasi
XULOSA 
………………………………………………………………………………………
………
FOYDALANILGAN ADABIYOTLAR
RO’YHATI 
……………………………………………………………................................
 
                                              KIRISH
Modulli dasturlash, quyi tizimlar (xususan, I / U uchun) va dasturiy ta'minot 
kutubxonalari uchun ishlatilgan dastlabki dasturiy ta'minot tizimlariga tegishli. 
kodni qayta ishlatish. O'z-o'zidan modulli dasturlash, 1960-1970-yillarning 
oxirlarida ishlab chiqilgan modullik maqsadi, kontseptsiyasining keng ko'lamli 
analogi sifatida tizimli dasturlash (1960-yillar). "Modulli dasturlash" atamasi hech 
bo'lmaganda Axborot va tizimlar institutida 1968 yil iyul oyida tashkil etilgan 
Modulli dasturlash bo'yicha milliy simpoziumga to'g'ri keladi. Larri Konstantin; 
boshqa asosiy tushunchalar edi ma'lumotni yashirish (1972) va tashvishlarni 
ajratish (SoC, 1974).
Modullar asl spetsifikatsiyaga kiritilmagan ALGOL 68 (1968), ammo dastlabki 
dasturlarda kengaytma sifatida kiritilgan, ALGOL 68-R (1970) va ALGOL 68C 
(1970) va keyinchalik rasmiylashtirildi.[5] Modulli dasturlash uchun boshidanoq 
yaratilgan birinchi tillardan biri qisqa muddatli edi Modula (1975), tomonidan 
Niklaus Virt. Yana bir dastlabki modulli til edi Mesa (1970-yillar), tomonidan 
Xerox PARCva Wirth Mesadan va uning o'rnini bosuvchi asl Moduladan tortib 
oldi, Modula-2 (1978), keyingi tillarga ta'sir ko'rsatdi, ayniqsa uning vorisi orqali, 
Modula-3 (1980-yillar). Modulaning nuqta ishlatishimalakali ismlar, kabi M.a 
ob'ektga murojaat qilish a moduldan M, yozuv maydoniga kirish uchun yozuvlar 
bilan mos keladi (va shunga o'xshash atributlar yoki ob'ektlarning usullari uchun) 
va endi keng tarqalgan, C #, Dart, Go, Java va Python va boshqalar. Modulli 
dasturlash 1980-yillardan keng tarqaldi: original Paskal til (1970) modullarni o'z 
ichiga olmagan, ammo keyingi versiyalari, xususan UCSD Paskal (1978) va Turbo
Paskal (1983) Paskal ta'sirida bo'lgani kabi ularni ham "birliklar" shaklida kiritgan 
Ada (1980). Kengaytirilgan Paskal ISO 10206: 1990 standarti modulli yordami 
bilan Modula2 ga yaqinlashdi. Standart ML (1984)[6] eng to'liq modul 
tizimlaridan biriga ega, shu jumladan funktsiyalar (parametrlangan modullar) 
modullar o'rtasida xaritalash. 1980-1990 yillarda modulli dasturlash soya ostida qoldi va ko'pincha ular bilan 
birlashtirildi ob'ektga yo'naltirilgan dasturlash, ayniqsa C ++ va Java-ning 
mashhurligi tufayli. Masalan, C tillar oilasi C ++ da ob'ektlar va sinflarni qo'llab-
quvvatlagan (dastlab Sinflar bilan C, 1980) va Objective-C (1983), faqat 30 yil va 
undan ko'p vaqt o'tgach qo'llab-quvvatlovchi modullar. Java (1995) modullarni 
paketlar shaklida qo'llab-quvvatlaydi, ammo kodni tashkil etishning asosiy birligi 
bu sinf. Biroq, Python (1991) boshidanoq ikkala moduldan va ob'ektlardan 
foydalangan, kodlarni tashkil etishning asosiy birligi sifatida modullardan va katta 
hajmdagi birlik sifatida "paketlardan" foydalangan; va Perl 5 (1994) modullarni 
ham, ob'ektlarni ham qo'llab-quvvatlashni o'z ichiga oladi, chunki ko'plab modullar
mavjud CPAN (1993).
Modulli dasturlash hozirgi kunda keng tarqalgan bo'lib, deyarli 90-yillardan beri 
ishlab chiqilgan barcha asosiy tillarda uchraydi. Modullarning nisbiy ahamiyati 
tillar orasida turlicha bo'lib, sinfga asoslangan ob'ektiv yo'naltirilgan tillarda tashkil
etish va kapsülleme birligi sifatida sinflar bilan hali ham bir-biri bilan to'qnashuv 
va chalkashliklar mavjud, ammo bu ikkalasi ham alohida tushunchalar sifatida 
yaxshi tasdiqlangan.Entsiklopediya  site:uz.wikihre.ru
                            I BOB  Modulli programmalash
   1.1 Modulli programmalash haqida uning afzalligi                                            
murojat kilinadi. Interpretatciya  usulning   afzalligi shundan iboratki , asosiy yoki 
modul dasturlar hajmi jixatdan katta bo`lganda xotiradan bemalol foydalanish 
mumkin. Kompilyatciya usulidan esa barcha modullar va asosiy dastur operativ 
xotiraga joylashgan vaqtda foydalaniladi.
Komplyatciya usuli bilan ishlaganda kutubxonadan barcha kerakli modullar 
operativ xotiraga chaqirib, jamlab qo`yiladi va dastur ishlaganda operativ 
xotiradagi modullardan avtomatik ravishda foydalaniladi. Kam vaqt   sarflash bu 
usulning afzalligi ,  operativ xotiraning ko`p sarflanishi esa kamchiligi hisoblanadi.
1.1  Modulli dasturlash: xususiyatlari, misollari, foydalari, ilovalari
Modulli dasturlash: xususiyatlari, misollari, foydalari, ilovalari - Fan  
Modullar.
Modullarni  yaratish   dasturni bajarish tartibini , uni sozlash, testdan o`tkazish va 
takomillashtirishni ancha osonlashtiradi. Bu esa dastur yozishni boshidanoq 
dasturlash vaqtidan va mashina vaqtidan yutishga olib keladi. Bu   esa dasturchi 
uchun juda muxim , chunki dasturni boshlangich vaqtidanoq mashina vaqtidan 
dasturning bajarilishi jarayoniga nisbatan ancha tayerlanadi. Dasturni loyihalash, 
sozlash, testdan o`tkazishni bir - biriga bog`liq bo`lmagan holda mustaqil bajarish 
mumkin. Natijada dasturchi mashina vaqtidan yutadi. Dasturdan foydalanishdagi 
kamchiliklardan biri uning hajmi katta bo`lishiga qaratiladi. Agar dasturni chiqarish
nuqtaga qo`yib, dasturni biron   - bir joyidan buyruq berilsa , u  buyruqni samarali 
bajaradi.
Dasturni ketma-ketlik bilan bajarishda aloqa buyrug`i uzib qo`yiladi va buning 
oqibatida xotira va vaqt meyorlanadi.
Modulni dasturlash - bu dasturni modul deb ataluvchi mantiqiy qismlarga ajratish 
jarayonidir. Bu qismlar aloxida ketma - ket loyihalanadi, chunki katta masala bir  necha kichik masalalarga bo`linsa uni hal etish yoki echish ancha engillashadi.
Agar masalani yuqoridan quyigacha loyihalansa, unda u albatta taxminiy modullar 
uchun bir necha kichik vazifalarga bo`linadi.
1). Modul qo`llanilgan konteksta bog`liq bo`lmagan, xolda, to`g`ri va aniq dasturiy 
modulga erishish kerak.
2). Oldindan modulning ichki ishi to`g`risida xech qanday ma`lumotga ega 
bo`lmagan xolda modul yordamida katta dasturni formalashga intilish lozim.
Tadbiqiy dasturlash va standart jarayonlar qulay modullarga misoldir.
Buni ham yuqoridan pastga qarab bajariladi. Faqat unda vazifalarni boshqarish 
tilini biladi. Odatda loyiha "tanasini" ni bir kishi bajarish mumkin. Bu esa loyihani 
butunligini ta`minlaydi va dasturni tushunish oson bo`ladi.
Modulni printcipi qo`llanilaetganligi sababli asosiy dastur qisqa bo`lish va 
ko`maklashuvchi kichik dasturlarni yaratuvchi va modullovchi kichik va modullarni 
chiqaruvchi bo`lishi kerak.
Ko`maklashuvchidastur haqiqiy dastur yaralgunga qadar o`rnini bosuvchi qisqa 
buyruqlar ketma - ketlikdan iborat.
Ko`maklashuvchi dastur 2 ga bo`linadi.
Soxta va almashinuvchan modullar.
Soxta modul   xech qanday ish bajarilmaydi , u  faqat chaqiruvchi modullarga 
boshqaruvni kaytarib beradi. Vaqtincha almashinuvchi modulni murakkab modul 
yaratulgunga qadar oddiy qayta ishlashni bajaradi.
Almashinuvchi modul natijani bermagunga qadar chiqaruvchi modul ishini davom 
ettirmasiligi kerak. Ko`maklashuvchi dasturlar dasturning boshqa bo`g`inlarini 
(segmentga) testdan o`tkazish uchun ham xizmat qiladi.
Bosh dasturni 2 ta muvaffakiyatli loyihalar ishlab chiqarilgandan so`ng tarkibiy 
dasturlarning hamma usullari birlashtirilib BDB (bosh dastur birgadasi) tuziladi.
1. Texnik boshqarishda loyihani texnik ekspertlarni nazorat qilish.
2. Qo`l ostidagilarni boshqarishda odamlarni hisobotligini va tartibligini nazorat  qilish.
3. Shartnoma shartlarini bajarishda buyuruvchi bilan muomolani saqlab turish.
Loyihani qo`llab - quvatlovchi kutubxona (BPR) tizimga birlashtirilgan va testdan 
utkazilgan brigada tarkibiy dasturlarini foydalanish uchun hamda saqlash uchun 
xizmat qiladi.
Ko`p masalalarda tez - tez qo`llanilib turadigan modullar, standart dasturlar bir xil 
qoida asosida tuziladi (rasmiylashtiriladi), ya`ni   ularga murojat qilish ,  foydalanish 
va ulardan natija olish bir xil qoida asosida tashkil etiladi. Bu esa dastur tuzishda 
ulardan osonlik bilan foydalanish imkonini beradi.
Modullardan ikki xil usulda: asosiy dasturning zarur bo`lgan qismiga modullarni 
joylashtirish yo`li bilan: har bir mashinaning o`ziga xos buyruqlari mavjud bo`lib, 
bu buyruqlar yordamida modullarga murojat qilish yo`li bilan foydalanish mumkin.
Ikkinchi usul ko`proq qo`llaniladi. Chunki bu xolda operativ xotirada modullar 
kutubxona shaklida joylashadi va bu modullardan istilgan vaqtda foydalanish 
mumkin. Shu sababli modullarni ishdan ozod qilish uch xil adres qo`llaniladi:
1. Absolyut adreslarning qiymatlari modullarning tutgan o`rniga qarab 
o`zgarmaydi;
2. Ichki adreslar modullarning joylashgan eriga bog`liq holda hisoblanadi;
3. Tashqi adreslar boshqa modullarning tutgan o`rniga qarab o`zgaradi;
Absolyut adreslar o`zgarmas ish yacheykalari   yoki mashina registrlari ,  ba`zi bir 
maxsus mashina komandalarining adres qismilaridan iborat bo`ladi. Masalan, 
surish buyrug`i hamda komanda shaklida yozilgan o`zgarmas sonlarning adres 
qismlari.
Ichki adreslar boshqa modullarga o`tish komandalari va standart dasturning o`zida
o`zgarmaslar yozilgan joyda uchrashi mumkin.
Tashqi adreslar boshqa modullarga o`tish buyruqlarida uchraydi.
Mashina xotirasida doim saqlanadigan modullar to`plami modullar kutubxonasini 
tashkil etadi. Kutubxona tarkibiga bir necha o`nlab modullardan bir necha yuzlab  modullargacha kiritish mumkin. Umuman mashinada bajariladigan ishlarning soni 
dastur shaklida yozib yig`ilgan bo`ladi. Bu ishlarning ba`zi birlari mashina 
zimmasiga yuklansa, mashina qurilmasini murakkablashtirib yuboradi. Shuning 
uchun kutubxona tuzish maqsadga muvofiqdir.
Kutubxona operativ xotiraga chaqirish va ularni xohlagan shaklda joylashtirish 
uchun ikki xil: interpretatciya va komplyatciya usullari mavjud. Kompilyatciya usuli
qo`llanilganda modullarning chaqirish va joylashtirish uchun   kompilyatciya 
qiluvchi tizim , i nterpretatciya usuli qo`llanilganda esa interpretatciya qiluvchi tizim
ishlaydi.
Ikkala usulda ham standart dasturlar kutubxonasiga, kutubxona katalogiga va 
boshqaruvchi dasturga murojat kilinadi. Interpretatciya  usulning   afzalligi shundan 
iboratki , asosiy yoki modul dasturlar hajmi jixatdan katta bo`lganda xotiradan 
bemalol foydalanish mumkin. Kompilyatciya usulidan esa barcha modullar va 
asosiy dastur operativ xotiraga joylashgan vaqtda foydalaniladi.
Komplyatciya usuli bilan ishlaganda kutubxonadan barcha kerakli modullar 
operativ xotiraga chaqirib, jamlab qo`yiladi va dastur ishlaganda operativ 
xotiradagi modullardan avtomatik ravishda foydalaniladi. Kam vaqt   sarflash bu 
usulning afzalligi ,  operativ xotiraning ko`p sarflanishi esa kamchiligi hisoblanadi.
Tark ib:
 Asosiy  v a y ordamchi modullar   
 Modulli dast urlash xususiy at lari   
 Modullik
 Funk t siy aning t a'rifi
 O'zgaruv chilar doirasi  Bu prot sessual
 Modulli dast urlash misollari   
 Haqiqiy  hay ot dagi modullik
 J av a-dagi funk t siy alar
 A fzalligi   
 Must aqil loy ihalash dast urlash
 Dast urni samarali ishlab chiqish
 Modullardan bir necht a foy dalanish
 Nosozlik larni t uzat ish v a o'zgart irish qulay ligi
 Kamchilik lari   
 Haddan t ashqari ob'ek t ga y o'nalt irilgan t uzilish
 Modullar juda k ichik
 Hech qanday  sababsiz parchalaning
 Ilov alar   
 C t ili
The   modulli dasturlash   dasturiy ta'minotni ishlab chiqish uchun 
ishlatiladigan texnikadir, bu erda dastur boshqariladigan, mantiqiy va 
funktsional bo'lgan ko'plab tarkibiy qismlarga yoki modullar deb nomlangan 
kichik avtonom bloklarga bo'linadi.
Modul - bu muayyan muammoni hal qiladigan bayonotlar bloki. Har bir 
modul o'z funksiyasini bajarish uchun zarur bo'lgan barcha narsani o'z  ichiga oladi va loyihaning qolgan qismiga ta'sir qilmasdan tahrirlash yoki 
o'zgartirish mumkin.
Dasturlashning ushbu usuli har bir modulning funktsiyalariga kirish uchun 
boshqa dasturiy ta'minot komponentlari tomonidan ishlatiladigan doimiy 
modul interfeysini saqlash orqali amalga oshiriladi.
Modullar tarkibiy qismlar o'rtasida mantiqiy chegaralarni belgilaydi, bu esa 
xizmat ko'rsatish qobiliyatini yaxshilaydi.  Ular turli xil modullar o'rtasidagi 
bog'liqlikni minimallashtiradigan tarzda ishlab chiqilgan interfeyslar orqali 
birlashtirilgan.
M odu l l i   da st u r l a sh   a   dasturiy ta'minot dizayni      a-ning 
funksionalligini ajratishga urg'u beradigan 
texnika   dastur      mustaqil, bir-birining o'rnini 
bosadigan   m odu l l a r Shunday qilib, har birida kerakli 
funktsiyalarning faqat bitta jihatini bajarish uchun zarur bo'lgan 
barcha narsalar mavjud.
Modul   interfeys      modul tomonidan taqdim etilgan va talab 
qilinadigan elementlarni ifodalaydi. Interfeysda aniqlangan 
elementlar boshqa modullar tomonidan aniqlanadi. The   amalga 
oshirish      interfeysda e'lon qilingan elementlarga mos keladigan ish 
kodini o'z ichiga oladi. Modulli dasturlash bilan chambarchas 
bog'liq   tizimli dasturlash      va   ob'ektga yo'naltirilgan dasturlash    , 
barchasi katta dasturiy ta'minot dasturlari va tizimlarini qurishni 
osonlashtirish maqsadini birlashtirgan   parchalanish      kichikroq 
bo'laklarga bo'linib, barchasi 1960 yillarda paydo bo'lgan. Ushbu  atamalarning tarixiy ishlatilishi bir-biriga mos kelmasa ham, 
"modulli dasturlash" endi butun dastur kodining yuqori darajadagi 
dekompozitsiyasini qismlarga ajratishni anglatadi: tizimli 
dasturlash, past darajadagi kodlardan tuzilgan foydalanish   oqim 
oqimi    va ob'ektga yo'naltirilgan 
dasturlash   ma'lumotlar   foydalanish   ob'ektlar    , bir xil   ma'lumotlar 
tuzilishi    .
Ob'ektga yo'naltirilgan dasturlashda modullarni qurish uchun 
me'moriy naqsh sifatida interfeyslardan foydalanish 
ma'lum   interfeysga asoslangan dasturlash    [ iqtibo s kerak    ]
.
1.2
Pythonda modullar yaratish va undan foydalanish.
Kirish.
Python dasturlash tilining ommalashishiga ya'na bir sabab, uning 
kutubxona modullari ko'pligida. Boshqa dasturlash tillari kabi python ham 
modullarni qo'llab-quvvatlaydi. Python uchun mingdan oshiq kutubxona 
modullari yaratilgan bo'lib, ular turli soxalarda foydalanish uchun 
mo'ljallangan. Bundan tashqari pythonda dastur kodini bir nechta 
modullarga bo'lib, murakkab kodlarni soddalashtirish mumkin.  Modullar yaratish.
Pythonda modullar ikki xil bo'ladi: standart modullar va foydalanuvchilar 
tomonidan yaratilgan modullar. Standart modullar 200dan ortiq bo'lib, 
ularga math, random, turtle, tkinter, http, os, sys va boshqalarni kiritish 
mumkin. Modullardan foydalanish uchun ularni dastur kodimizga bog'lab 
olishimiz kerak. Math modulini bog'lamoqchi bo'lsak   import math   deb 
yozamiz. Modullar bir nechta bo'lsa vergul bilan yozish mumkin.
import math  #math modulini bog'lash
n=int(input("son kiriting: "))
print("Ildizi=", math.sqrt(n)) #math moduli 
funksiyalaridan foydalanish
print("Sinusi=", math.sin(n))
print("Faktoriali=", math.factorial(n))
  Moduldagi barcha funksiyalardan to'g'ridan-to'g'ri foydalanish kerak 
bo'lsa,   from math import *   deb yozamiz:
from math import * #math modulini bog'lash
n=int(input("son kiriting: "))
print("Ildizi=", sqrt(n)) #math moduli funksiyalaridan 
foydalanish
print("Sinusi=", sin(n))
print("Faktoriali=", factorial(n)) Bundan tashqari foydalanish qulay bo'lishi uchun modul nomini   import 
math as matem   deb o'zgartirib bog'lab olsak bo'ladi. Bu yerda matem nomi
orqali math funksiyalaridan foydalanamiz:
import math as matem #math modulini bog'lash
n=int(input("son kiriting: "))
print("Ildizi=", matem.sqrt(n)) #math moduli 
funksiyalaridan foydalanish
print("Sinusi=", matem.sin(n))
print("Faktoriali=", matem.factorial(n))
Pythonda modullar yaratish.
Ko'p foydalaniladigan dastur kodlarini qayta-qayta yozmasdan ularni bitta 
faylga modul ko'rinishda saqlab, kerak bo'lganda foydalanish ancha qulay. 
Modullar oddiy python fayli ".py" bo'lib, unda funksiyalar, sinflar, ro'yxatlar 
saqlanadi. Bu fayllardan kerak bo'lganda Python dasturlarimizga bog'lab
foydalanishimiz mumkin. Maks modulini yaratishni ko'rib chiqamiz:
def katta(a,b): #katta nomli funksiya yaratamiz
            if a>b:return a
            else:return b
Ushbu kodlarni   maks.py   fayliga saqlaymiz va yangi oyna ochib dasturimiz 
kodlarini yozamiz.
import maks #maks moduliga bog'lash n=int(input("1-sonni kiriting="))
m=int(input("2-sonni kiriting="))
print("Kattasi:", maks.katta(n,m)) #maks modulining 
katta nomli funksiyasidan foydalanish
Dastur kodini yaratgan modullarimiz bilan bitta papkaga saqlab olishimiz 
kerak bo'ladi. Dasturimiz to'g'ri ishlayapdi. Bir nechta funksiyalardan iborat 
bo'lgan modul yaratib ko'ramiz. Modullarning ichida boshqa modullardan 
foydalanish mumkin:
from math import * #math modulini bog'lash
def ildiz(a):
            return sqrt(a) #ildizni hisoblash
def kvdaraja(b):
            return b**2 #kvadratini hisoblash
def faktorial(d):
            return factorial(d) #faktorialni hisoblash
def smodul(c):
            return abs(c) #modulni hisoblash
Bu kodlarni matem nomi bilan saqlab qo'yamiz.
Yaratgan matem modulimizdan foydalanib dastur tuzamiz:
from matem import * #matem moduliga bog'lash
n=int(input("Son kiriting="))
print("Sonning ildizi:", ildiz(n)) #matem modulidagi 
funksiyalardan foydalanish
print("Sonning kvadrati:", kvdaraja(n))
print("Sonning faktoriali:", faktorial(n))
print("Sonning moduli:", smodul(n))
Dasturimizni saqlab bajarib ko'ramiz. Dastur ishlayapdi.
Satrlar bilan ishlovchi modul yaratamiz:
def uzunligi(s): #modul uchun funksiyalar yaratamiz             return len(s)
def kattaharf(s):
            return s.upper()
def kichikharf(s):
            return s.lower()
def teskari(s):
            s2=""
            for i in range(len(s)-1,-1,-1):
                        s2=s2+s[i]
            return s2
Modulni   satr.py   deb saqlaymiz:
from satr import * #satr moduliga bog'lash
matn=input("Matn kiriting: ")
print("Matnni uzunligi:", uzunligi(matn))
print("Matnni katta harflarga o'tkazish:", 
kattaharf(matn))
print("Matnni kichik harflarga o'tkazish:", 
kichikharf(matn))
print("Matnni teskari chiqarish:", teskari(matn))
Natija:
Dastur natijas Pythonda tkinter moduli va undan foydalanish
 
Tkinter moduli, GUI komponentlari bilan ishlashga mo'ljallangan (grafik 
foydalanuvchi interfeysi - GUI). Hozirgi kunda ko'plab dasturlarda intuitiv va
konsolga qaraganda ko'proq foydalanuvchilar uchun qulay. Va Python 
dasturlash tili bilan siz ham qila olasiz grafik dasturlarni yaratish. Buning 
uchun Python sukut bo'yicha maxsus to'plamdan foydalanadi tkinter deb 
nomlangan komponentlar. Tkinter barcha kerakli narsalarni o'z ichiga olgan alohida o'rnatilgan modul sifatida mavjud grafik komponentlar - tugmalar, 
matn qutilari va boshqalar. Python-dagi tkinter har qanday modul singari 
ikki xil usulda ham import qilinishi mumkin:
import tkinter   
from tkinter import *
Grafik dasturlarni tuzishda asosiy nuqta - bu oyna yaratishdir. Keyin oyna 
qo'shiladi boshqa barcha GUI komponentlari kabi. Grafik oynasini yaratish 
uchun tkinter modulida aniqlangan Tk () konstruktoridan foydalaniladi. 
Ob'ekt bilan bog'liq bo'lgan o'zgaruvchini ko'pincha root deyiladi: root = Tk 
() Yaratilgan oyna ildiz o'zgaruvchisiga beriladi va shu o'zgaruvchi orqali biz 
boshqarishimiz mumkin oyna atributlari. Xususan, deraza sarlavhasini 
o'rnatish uchun title () usuli ishlatilishi mumkin: root.title ("Birinchi dastur") 
Geometriya () usuli yordamida oynaning kattaligi. Hajmni belgilash uchun 
geometriya () usuli o'tkaziladi "Width x Height" formatidagi satr. Ilova 
oynasini yaratishda geometriya () usuli ishlatilmasa deb nomlanadi, keyin 
deraza ichki qismni joylashtirish uchun zarur bo'lgan joyni egallaydi tarkib: 
root.geometry ('600x400')
Shu o'rinda o'zim tuzgan dasturni ulashmoqchiman.
                                                          1-ko'rinishi:
from tkinter import*
def addNumbers():
      res=int(e1.get())*int(e2.get())
      myText.set(res)
master=Tk()
master.configure(background='white')
myText=StringVar()
Label(master,text="a=").grid(row=0,sticky=W)
Label(master,text="b=").grid(row=1,sticky=W)
Label(master,text="Natija:").grid(row=3,sticky=W) result=Label(master,text="",textvariable=myText).grid(r
ow=3,column=1,sticky=W)
e1=Entry(master)
e2=Entry(master)
e1.grid(row=0,column=1)
e2.grid(row=1,column=1)
b=Button(master,text='Hisobla',command=addNumbers)
b.grid(row=0,column=2,columnspan=2,rowspan=2,sticky=W+E
+N+S, padx=5,pady=5)
mainloop()
Ko'rib turganingizdek, bu yerda ikki sonning ko'paytmasi dasturi 
tuzilgan.Dasturi va natijani ko'rishingiz mumkin.
                                                                      2 -ko'rinishi:Dizayn berish.
Bu usulda oynaga nom berish, o'lcham kiritish,oynaga fon berishga 
ahamiyat berilgan.
from tkinter import*
def addNumbers():
      res=int(e1.get())*int(e2.get())
      myText.set(res)
master=Tk()
master.title('Ko`paymani hisoblash')
master.geometry('200x200')
master.configure(background='cyan')
myText=StringVar() Label(master,text="a=").grid(row=0,sticky=W)
Label(master,text="b=").grid(row=1,sticky=W)
Label(master,text="Natija:").grid(row=3,sticky=W)
result=Label(master,text="",textvariable=myText).grid(r
ow=3,column=1,sticky=W)
e1=Entry(master)
e2=Entry(master)
e1.grid(row=0,column=1)
e2.grid(row=1,column=1)
b=Button(master,text='Hisobla',command=addNumbers)
b.grid(row=0,column=2,columnspan=2,rowspan=2,sticky=W+E
+N+S, padx=5,pady=5)
mainloop()
Bunda esa dastur dizayniga e'tibor qaratilgan,sababi oddiy usuldan 
ko'ra,dizaynga e'tibor qaratish dasturni chiroyliroq chiqishini ta'minlaydi.
Tkinter modulining imkoniyatlari juda ko'p. Men hozir sizga dengizdan bir 
tomchi taqdim etdim xolos.
                           II BOB  Modulli programmalashdan foydalanish   
        2.1  Modulldan foydalanish
dasturlarda bu alohida tushunchalar; yilda   Python   to'plam - bu 
modullar to'plamidir, ammo   Java 9   ning kiritilishi   yangi modul 
tushunchasi   (kirishni boshqarishni kuchaytirgan paketlar to'plami) 
rejalashtirilgan.
Bundan tashqari, "paket" atamasi dasturiy ta'minotda boshqa  ishlatilishlarga ega (masalan.)   .NET NuGet paketlari). 
A   komponent   o'xshash tushunchadir, lekin odatda yuqori darajaga 
ishora qiladi; komponent - bu butunning bir qismi   tizim , modul esa 
individual dasturning bir qismidir. "Modul" atamasining ko'lami tillar 
orasida   sezilarli darajada farq qiladi ; Python-da u juda kichik hajmga 
ega va har bir fayl moduldir   Java 9   bu keng ko'lamli bo'lishi 
rejalashtirilgan, bu erda modul bu to'plamlar to'plami bo'lib, ular o'z 
navbatida fayllar to'plamidir.
Modullarning boshqa shartlariga quyidagilar kiradi   birlik , 
ishlatilgan   Paskal   lahjalar.
Tilni qo'llab-quvvatlash
Modul kontseptsiyasini rasmiy ravishda qo'llab-quvvatlovchi tillarga 
quyidagilar kiradi   Ada,   Algol,   BlitzMax,   C ++,   C 
#,   Klojure,   COBOL,   Umumiy_Lisp,   D.,   Dart,   eC,   Erlang,   Elixir,   Qarag'ay,   F
,   F #,   Fortran,   Boring,   Xaskell,   IBM / 360   Yig'uvchi,   IBM i Control 
Language   (CL),   IBM RPG,   Java, [a]
  MATLAB,   ML,   Modula,   Modula-2,   Modula-3, 
Morfo,   NEWP,   Oberon,   Oberon-2,   Maqsad-C,   OCaml, ning bir nechta 
hosilalari   Paskal   (Komponent Paskal,   Ob'ekt Paskal,   Turbo 
Paskal,   UCSD Paskal),   Perl,   PL / I,   PureBasic,   Python,   Yoqut,
[2]
  Zang,   JavaScript, [3]
  Visual Basic .NET   va   WebDNA.
Modullarni qo'llab-quvvatlamaydigan tillarning ko'zga ko'ringan 
misollari   C   va bo'lgan   C ++   va Paskal o'zlarining asl shaklida,   C   va   C +
+   Biroq, alohida kompilyatsiya va deklarativ interfeyslardan foydalanib 
ko'rsatishga ruxsat bering   sarlavha fayllari. Objective-C in-ga modullar 
qo'shildi   iOS 7   (2013); bilan C ++ ga   C ++ 20, [4]
  va Paskal o'rnini Modula 
va Oberon egalladi, ular boshidan modullarni va modullarni o'z ichiga 
olgan turli xil hosilalarni o'z ichiga olgan.   JavaScript   shu vaqtdan beri 
mahalliy modullarga ega   ECMAScript   2015.
Modulli   dasturlash , hatto  dasturlash tilida, masalan, C da nomlangan 
modullarni qo'llab-quvvatlash uchun aniq sintaktik xususiyatlarga ega 
bo'lmagan hollarda ham amalga oshirilishi mumkin. Bu mavjud til 
xususiyatlaridan foydalangan holda, masalan,   kodlash bo'yicha 
konvensiyalar,   dasturiy so'zlar   va fizik kod tuzilishi. The   IBM System 
i   da dasturlashda modullardan foydalaniladi   Integratsiyalashgan til 
muhiti   (ILE).
Asosiy jihatlar
Modulli dasturlash bilan,   tashvishlar ajratilgan   modullar aniq 
belgilangan interfeyslar orqali o'zaro aloqada bo'lib, mantiqiy diskret 
funktsiyalarni bajarishi. Ko'pincha modullar a ni tashkil 
qiladi   yo'naltirilgan asiklik grafik   (DAG); bu holda modullar o'rtasidagi  tsiklik bog'liqlik, bu bitta modul bo'lishi kerakligini ko'rsatmoqda. 
Agar   modullar DAG hosil qilsala r , ular ierarxiya sifatida joylashtirilishi 
mumkin, bu erda eng past darajadagi modullar, boshqa modullarga 
bog'liq emas, va yuqori darajadagi modullar past darajadagi 
modullarga bog'liq. Muayyan dastur yoki kutubxona - bu o'z 
ierarxiyasining yuqori darajadagi moduli, ammo o'z navbatida yuqori 
darajadagi dastur, kutubxona yoki tizimning quyi darajadagi moduli 
sifatida qaralishi mumkin.
Modulli tizimni yaratishda monolitik dasturni yaratish o'rniga (eng 
kichik tarkibiy qism butun bo'lgan joyda) bir nechta kichik modullar 
alohida  yoziladi, shuning uchun ular birgalikda tuzilganda ular 
bajariladigan dastur dasturini tuzadilar.   Odatda bu 
ham   tuzilgan   alohida , orqali   alohida kompilyatsiyava keyin a bilan 
bog'langan   bog'lovchi . A   hozirda kompilyator   ushbu qurilishning bir 
qismini "uchib ketishda" amalga oshirishi mumkin   ishlash vaqti.
Ushbu mustaqil funktsiyalar odatda dasturni boshqarish funktsiyalari 
yoki aniq vazifalar funktsiyalari sifatida tasniflanadi. Dasturni 
boshqarish funktsiyalari bitta dastur uchun ishlashga mo'ljallangan. 
Muayyan vazifa funktsiyalari har xil dasturlar uchun mos ravishda 
tayyorlanadi.
Bu modulli loyihalashtirilgan tizimlarni, agar to'g'ri qurilgan bo'lsa, 
an'anaviy monolitik dizaynga qaraganda ancha qayta ishlatishga 
imkon beradi, chunki ushbu modullarning barchasi (yoki ko'pi) 
keyinchalik boshqa loyihalarda (o'zgarishsiz) qayta ishlatilishi mumkin. 
Bu, shuningdek, loyihalarni bir nechta kichik loyihalarga "ajratish" ni  osonlashtiradi. Nazariy jihatdan, modullashtirilgan dasturiy ta'minot 
loyihasi katta jamoalar tomonidan osonroq yig'iladi, chunki hech bir 
jamoa a'zolari butun tizimni yaratmaydilar, hatto tizim haqida 
umuman bilishlari shart emas. Ular faqat tayinlangan kichikroq 
vazifaga e'tibor qaratishlari mumkin (bu da'vo   qilinganidek , asosiy 
taxminni hisobga oladi)   Afsonaviy odam oyi, kech dasturiy ta'minot 
loyihasiga ko'proq ishlab chiquvchilarni qo'shishni iloji boricha 
kechiktirmasdan).
Tarix
Modulli dasturlash, quyi tizimlar (xususan, I / U uchun) va dasturiy 
ta'minot kutubxonalari uchun ishlatilgan dastlabki dasturiy ta'minot 
tizimlariga tegishli.   kodni qayta ishlatish. O'z-o'zidan modulli 
dasturlash, 1960-1970-yillarning oxirlarida ishlab chiqilgan modullik 
maqsadi, kontseptsiyasining keng ko'lamli analogi sifatida   tizimli 
dasturlash   (1960-yillar). "Modulli dasturlash" atamasi hech 
bo'lmaganda Axborot va tizimlar institutida 1968 yil iyul oyida tashkil 
etilgan Modulli dasturlash bo'yicha milliy simpoziumga to'g'ri 
keladi.   Larri Konstantin; boshqa asosiy tushunchalar edi   ma'lumotni 
yashirish   (1972) va   tashvishlarni ajratish   (SoC, 1974).
Modullar asl spetsifikatsiyaga kiritilmagan   ALGOL 68   (1968), ammo 
dastlabki dasturlarda   kengaytma sifatida kiritilgan ,   ALGOL 68-R   (1970) 
va   ALGOL 68C   (1970) va keyinchalik rasmiylashtirildi. [5]
  Modulli 
dasturlash uchun boshidanoq yaratilgan birinchi tillardan biri qisqa 
muddatli edi   Modula   (1975), tomonidan   Niklaus Virt. Yana bir dastlabki 
modulli til edi   Mesa   (1970-yillar), tomonidan   Xerox PARCva Wirth  Mesadan va uning o'rnini bosuvchi asl Moduladan tortib oldi,   Modula-
2   (1978), keyingi tillarga ta'sir ko'rsatdi, ayniqsa uning vorisi 
orqali,   Modula-3   (1980-yillar). Modulaning nuqta ishlatishimalakali 
ismlar, kabi   M.a   ob'ektga murojaat qilish   a   moduldan   M, yozuv 
maydoniga kirish uchun yozuvlar bilan mos keladi (va shunga o'xshash
atributlar yoki ob'ektlarning usullari uchun) va endi keng tarqalgan, C 
#, Dart, Go, Java va Python va boshqalar. Modulli dasturlash 1980-
yillardan keng tarqaldi: original   Paskal   til (1970) modullarni o'z   ichiga 
olmagan , ammo keyingi versiyalari, xususan   UCSD Paskal   (1978) 
va   Turbo Paskal   (1983) Paskal ta'sirida bo'lgani kabi ularni ham 
"birliklar" shaklida kiritgan   Ada   (1980). Kengaytirilgan Paskal ISO 
10206: 1990 standarti modulli yordami bilan Modula2 ga 
yaqinlashdi.   Standart ML   (1984) [6]
  eng to'liq modul tizimlaridan biriga 
ega, shu jumladan   funktsiyalar   (parametrlangan modullar) modullar 
o'rtasida xaritalash.
1980-1990 yillarda modulli dasturlash soya ostida qoldi va ko'pincha 
ular bilan birlashtirildi   ob'ektga yo'naltirilgan dasturlash, ayniqsa C ++ 
va Java-ning mashhurligi tufayli. Masalan, C tillar oilasi C ++ da 
ob'ektlar va sinflarni qo'llab-quvvatlagan (dastlab   Sinflar bilan C, 1980) 
va Objective-C (1983), faqat 30 yil va undan ko'p vaqt o'tgach qo'llab-
quvvatlovchi modullar. Java (1995) modullarni paketlar shaklida qo'llab-
quvvatlaydi, ammo kodni tashkil etishning asosiy birligi bu sinf. Biroq, 
Python (1991) boshidanoq ikkala moduldan va ob'ektlardan 
foydalangan, kodlarni tashkil etishning asosiy birligi sifatida 
modullardan va katta hajmdagi birlik sifatida "paketlardan"  foydalangan; va   Perl 5   (1994)   modullarni ham , ob'ektlarni ham qo'llab-
quvvatlashni o'z ichiga oladi, chunki ko'plab modullar 
mavjud   CPAN   (1993).
Modulli dasturlash hozirgi kunda keng tarqalgan bo'lib, deyarli 90-
yillardan beri ishlab chiqilgan barcha asosiy tillarda uchraydi. 
Modullarning nisbiy ahamiyati tillar orasida turlicha bo'lib, sinfga 
asoslangan ob'ektiv yo'naltirilgan tillarda tashkil etish va kapsülleme 
birligi sifatida sinflar bilan hali ham bir-biri bilan to'qnashuv va 
chalkashliklar mavjud, ammo bu ikkalasi ham alohida tushunchalar 
sifatida yaxshi tasdiqlangan.
2.2 Modulli dasturlash tushunchasi
Modulli dasturlash "bo'l va boshqar" tamoyili asosida ishlaydi. Uert tergov.
Modulli dasturlash odatda modullari deyiladi mustaqil kichik bloklari bir nechta 
dastur tashkil o'z ichiga oladi, xulq va tuzilishi juda butunlay quyi ma'lum 
tamoyillari mavjud. bor sintaktik bir ko'rinishi bo'lsa, u "birlik" tushunchasi 
foydalanishni baham arziydi bir til birligi dasturi va shuningdek, tartib shaklida 
amalga oshirilishi mumkin bir necha bloklari katta dasturning bir parchalanishiga 
birligi bo'lsa   funktsiyalari shaklida.   modulli dasturlash foydalanish mumkin 
soddalashtirish qiladi sinov dasturi va xatolar o'z vaqtida aniqlash. Bu qat'iy 
belgilangan dasturlarni harakat yaxshilar boshqa Alt, apparat-qaram vazifalarni 
ajratilgan bo'lishi mumkin. vaqt-tanqidiy modullar sezilarli jarayonini 
osonlashtiradi va samaradorligini ancha yuqori qiladi, alohida-alohida o'zgartirish 
mumkin. modullar samarali boshqa dasturlar uchun qurilish bloklari sifatida 
foydalanish mumkin, chunki Bundan tashqari, modulli dasturlash, tushunish ancha 
oson bo'ladi.
muddatli "moduli" o'zi dasturlari yozishda bir modulli printsipi joriy etilishi 
munosabati bilan dasturlash foydalanish boshladi. etmish, bir modul ma'lum  qoidalarga ko'ra yozilgan funktsiyasi yoki protsedura ayrim turdagi, deb 
nomlangan. O'sha paytda umumiy qabul talablariga hosil emas edi beri, modul 
kimning hajmi ellik liniyalari gacha bo'lgan har qanday jarayonni deyiladi. 
Parnassus birinchi moduli uchun talablar tashkil etildi rida: «. Boshqa mazmuni 
haqida minimal bilim uchun etarli bo'lishi kerak bitta modul shakllantirish 
maqsadida" Bu Parnassus dasturlash yashirinib axborot tushunchasini tashkil 
birinchi marta chiqadi. Uning ta'rifi moduli eng past deb har bir tartibda va ierarxik
eng yuqori darajada ifoda etilishi mumkin, deb aslida bizni olib keladi. Xavfsiz, 
ular global parametrlarga dramatik ta'siri lozim edi va ularning xulq kompleks 
dasturlariga bashorat qilish qiyin, chunki axborot, vaqtda mavjud tuzilmalar 
foydalanish orqali erishiladi bo'lmadi yashirish. Bu o'zgaruvchilar izolyatsiya 
qilingan bir tuzilishini yaratish zarur edi. Bu uni va unga moduli nomidagi va 
asoslangan va modulli dasturlarni tug'ilgan.
Dastlab u murakkab dasturiy ta'minot tizimini amalga oshirish qurilish birlashtiradi
va bir alohida vazifani amalga oshirish ma'lumotlarni maxfiy qilsangiz kabi 
funktsiyalari va tartib bilan bir qatorga moduli yordamida amalga oshirilishi 
mumkin, deb taxmin qilingan. Lekin Turbo Paskal tilida to'liq modulli dasturlash 
tamoyili joriy emas edi. u har qanday boshqa modullar moslamalarni import qilish 
imkonini bermaydi, chunki aniq ichki modullari qo'llab-quvvatlamaydi, bu til, 
import, yetarli moslashuvchan amalga oshirildi. shaxsiy kompyuterlar tarqatish 
katta nazariy tayyorlash o'rtacha darajasini tushgan dasturlash odamlar, 
assortimenti kengaydi bilan, dastur modullarini ishlab chiqish vazifalari va 
tartiblarini kutubxonalar muammoni yaratish vositasi sifatida ishlatilgan, deb 
aslida olib, aslida, bu aslida birlashgan ta'siri. Faqat malakali dasturchilar 
operatsiyalari tizimlash barcha ob'ektlar uchun til tuzilmalari to'liq quvvat 
ishlatiladi.
Agar Programmer ning nuqtai nazaridan Paskal dona qarash bo'lsa, ularning soni 
bir-biridan mustaqil sub-vazifalarni, bir qator muammo parchalanish bilan 
belgilanadi kerak. zarur bo'lsa, ekstremal holatda, modul u amalga oshiriladi,  mahalliy harakatlar uchun, u faqat bir davolash degan xulosaga uchun foydalanish 
mumkin, u loyihasi kodni o'zgarishlar bilan dasturning boshqa qismlari ta'siridan 
butunlay mustaqil bo'ldi.
Modulli   dasturlashning   asosiy   tamoyili   «Bo`l   va   hukmronlik   qil».
Modulli   dasturlash   dasturni  modul   deb   ataluvchi,   tarkibi   va   ishlatilishi
ma`lum   qoidalarga   bo`ysunuvchi,   o`zaro   bog`liq   bo`lmagan,   kattamas
bo`laklarga bo`lib hosil qilishni bildiradi. 
«Modul»   so`zini   dasturlash   tillarining   sintaksis   konstruktsiyasi
(Turbo   Paskalda   unit)   va   katta   dasturni   alohida   bo`laklarga   bo`lish
birligi   (protsedura   yoki   funktsiyalar   ko`rinishida   amalga   oshirish
nazarda   tutilayapti)   nazarda   tutilgandagi   ishlatilishlar   o`rtasidagi
farqlanishlarni ajrata bilish kerak.
Modulli   dasturlashdan   foydalanish   dasturni   testdan   o`tkazish   va
xatolarni topishni engillashtiradi. 
U,   yoki   bu   dasturlash   tili   asosida   u   ishlatilayotgan   dasturlar
xususiyatiga sezilarli ta`sir etuvchi qandaydir rahbar g`oya yotadi. 
Dasturlarni   protsedurali   tasniflash   g`oyasi   tarixan   birinchi
shunday   g`oya   bo`ldi,   unga   ko`ra   dasturchi   o`z   dasturiga   qanday
protseduralarni   kiritishni   hal   qilishi   va   shundan   keyin   bu
protseduralarni hal  qilish  uchun   eng  yaxshi  algoritmlarni  tanlab olishi
kerak   edi.   Bu   g`oyaning   paydo   bo`lishi   hisoblash   jarayonlarining
algoritmik   tomonlarini   etarli   darajada   o`rganmaslik   natijasi   bo`ldi.
G`oya   kamchiliklari   –   qirqinchi-elliginchi   yillarda   ishlab   chiqilgan
dastlabki dastur mahsulotlariga xos. Fortran-protsedurali-yo`naltirilgan birinchi tilga tipik misol bo`la oladi (bu til hali ham keng ishlatiladigan
tillardan   biri).   Dasturlarni   protsedurali   tasniflash   g`oyasining   keyingi
ishlatilishlari,   dastur   «binosi»   ni   qurishda   gisht   vazifasini   o`tovchi,
nisbatan   katta   bo`lmagan   protseduralar   to`plamiga   ega   bo`lgan   keng
dasturlash kutubxonasini yaratishga olib keldi. 
Hisoblash   matematikasi   sohasidagi   yutuqlar   natijasida,
dasturlashda   urgu   protseduralardan   ma`lumotlarni   tashkil   qilishga
berila   boshlandi.   Murakkab   dasturlarni   samarali   ishlab   chiqish
ma`lumotlarni   to`g`ri   ishlatishning   nazorat   usullariga   muhtoj   ekanligi
ma`lum   bo`ldi.   Nazorat   kompilyatsiya   bosqichida   ham,   dasturni
o`tkazish bosqichida ham o`tkazilishi kerak, aks holda, amaliyotda isbot
qilingani   kabi,   yirik   dastur   loyihalarini   yaratishda   qiyinchiliklar   keskin
oshadi.   Bu   muammoning   oydinlashuvi   ma`lumot   tiplarining   ozmi-
ko`pmi rivojlangan tasnifiga ega, Algol 60, keyinchalik Paskal, Modula,
Si va boshqa ko`plab tillarning yaratilishiga olib keldi. Ma`lumotlarni va
protseduralarni   modul   ichiga   «yashirish»ga   intilish   bilan   strukturali
dasturlar   ishlab   chiqishga   modulli   yondoshish,   bu   yo`nalish
rivojlanishining   mantiqiy   natijasi   bo`ldi.   m odulli   testlash   –   bu   dasturlarni
alohida   olingan   modul,   funksiya   yoki   klasslar   ko‟rinishida   testlashdir.   Modulli
testlashning   asosini   modul   xatoliklarida   algoritmni   amalga   oshirishni
lokallashtirish, shu bilan birga tizimni keyingi darajada turgan razrabotka qilish va
testlash darajasiga tayyorligini aniqlash tashkil etadi. Modulli testlash “Oq yashik”
„rins‟i asosida olib boriladi. Modulli testlash odatda modullar orasida aniqlangan,
har   bir modul atrofida yaratilgan , o‟z ichiga barcha interfeyslar uchun testlangan
modulni olgan zaglushkalarni nazarda tutadi. Bulardan bir kiruvchi ma‟lumotlarni
uzatishda,   boshqasi   tahlil   natijalari   uchun,   keyingisi   esa   talablarni   aytib   turishda ishlatilishi   mumkin.   Modulli   testlash   darajasi   boshqalardan   farqli   ravishda
kamchiliklarni   to‟ish,   algoritmlashgan   xatoliklar   va   algoritmni   kodlashdagi
xatoliklar bilan bog‟liqligini aniqlash, sikllar schotchiklari ko‟rinishida ishlashi, shu
bilan   birga   lokal   o‟zgartirishlar   va   resurslardan   foydalanish   imkonini   beradi.
Ayniqsa,   u   yoki   bu   ti‟ini   kamchiliklarini   aniqlashda   modulli   testlash
strategiyasini   aniqlash   samaradorligini ,   kiruvchi   ma‟lumotlar   yig‟indisini
aniqlashda   urg‟ularni   joylashtirishni   aniqlashda   yordam   beradi.   Tashkil   etishda
dasturiy   ta‟minotga   ishlov   berish   bilan   shug‟ullanish,   qonunga   binoan,   tarixiy
ma‟lumotlar   bazasiga   (Re‟ository)   ishlov   berish,   oldingi   loyihalarni   qayta   ishlash
haqidagi aniq axborotni saqlash: versiya va kodni yig‟ish(build), mahsulotga ishlov
berish   jarayonini  qayd   qilish,  qabul   qilingan   qarorlar,  xatolar,  muvaffaqiyatlar   va
boshqalardan foydalaniladi. Ayni vaqtda modulli testlash bosqichlari tahlil qilinadi.
Agar   tahlil   kerakli   ma‟lumotlarni   bermasa,   masalan,loyiha   hodisasiga   to‟g‟ri
keladigan   ma‟lumotlar   yig‟ilmasa,   asosiy   qoidaga   ko‟ra   kod,   resurslar   va
axborotlardan   tashkil   to‟gan   lokal   kamchiliklarni   qidirish ,   kamchiliklarni   bartaraf
etish, faqatgina berilgan modullar uchun o‟rinlidir.   Bunday „aytda modulli daraja
xatoliklari  masalan, noto‟g‟ri  tartibda  yoki  modul „arametrlari formatiga  bog‟liq
bo‟ladi.   Usulga   ko‟ra   strukturali   testlash   yoki   “Oq   yashik”li   testlashda   testlarni
bajarishiga   ko‟ra   modulli   testlash   darajalari   bo‟yicha   xarakterlanadi.   Testlar
strukturaviy   testlash   bilan   bog‟liq   bo‟lib,   quyidagi   „rins‟ga   binoan   yaratiladi:   •
Tahlillar oqimini boshqarish asosiga ko‟ra. Bunda elementlar C0,C1,C2 strukturali
testlash  mezonlariga asosan  aniqlanadi.  Unga te‟aliklar,  aylana  yoylari,   dasturlar
grafasini   boshqarish   yo‟li,   talablar,   talablar   kombinatsiyasi   va   boshqalar   tegishli
bo‟ladi.   •   Ma‟lumotlar   oqimini   boshqarish   asosiga   ko‟ra.   Bunda   elementlar
ma‟lumotlar   oqimiga   asosan   aniqlanadi.   Tuzilmaviy   testlashda   testlashning
berilgan   bosqichiga   yetish   uchun   testlash   yo‟lini   loyihalash   usullari   mavjud.
Tuzilmaviy   testlashda   qurilgan   testlar   to‟‟lami   jarayoni   3   ta   fazaga   bo‟linadi:   •
Dasturni   boshqaruvchi   graf(DBG)   ni   tashkil   qilish ;   •   Testlash   yo‟lini   tanlash;   • Testlash yo‟liga mos keluvchi testni generatsiya qilish. Birinchi faza dasturni statik
tahlil   qilishga   mos   keladi.   Dasturlar   grafini   oluvchi   masaladan   iborat   va   testni
qo‟lovchi   kerakli   bo‟lgan   ko‟‟   elementlar   testlash   kriteriyasiga   bog‟liq   bo‟ladi.
Ikkinchi faza testlash yo‟lini tanlashni ta‟minlaydi. Testlash yo‟lini qurish uchun 3
ta yondashuv mavjud: • Statik usullar; • Dinamik usullar; • Realizatsiyalangan yo‟l
usullari.   Uchinchi   fazada   berilgan   testlash   yo‟li   bu   yo‟lda   o‟tishni
realizatsiyalashga   to‟g‟ri   keluvchi   testni   qidirish   bilan   amalga   oshiriladi.
Integrallashgan   testlash   –   bu   ikki   va   undan   ortiq   modulning   tizimlar   qismlarini
testlashdir.   Integrallashgan   testlashning   asosiy   vazifasi   –   amalga   oshirishning
xatoliklari   va   modullar   orasida   interfeysni   izohlashda   kamchiliklarini   to‟ish
hisoblanadi.   Texnologik   nuqtai   nazardan,   integrallashgan   testlash   modulni
miqdoriy   rivojlantirish   hisoblanib,   modulli   testlash   kabi   modul   interfeysini
operatsiya   qiladi  va  testlar   bilan  o‟ralgan   muhitni  yaratishni  talab   etadi.   Modulli
va integrallashgan testlashning   bir biridan asosiy farqi bu , integrallashgan testlash
butun qismlardan iborat bo‟ladi, ya‟ni kiruvchi ma‟lumotlarni tanlash strategiyasi
va   tahlil   usulida   aniqlanganda   ma‟lum   kamchiliklarni   o‟z   navbatida   bartaraf
etiladi. Kamdan-kam hollarda, integrallashgan testlash ko‟‟incha interfeyslar bilan
bog‟langan   usullarni   qo‟llaydi,   masalan,   funksiya   yoki   usullarni   chaqirish,   yoki
global   resurslar,   kommunikatsiya   vositasiga   o‟xshash   interfeys   obyektida
qo‟llaniladigan   tahlil.   Integrallashgan   testlash   modul   darajasida   “Oq   quti”
modelini qo‟llaydi. Integrallashgan testlash modulli testlashni modullarini yagona
kom‟leks   qilib   yig‟ish   boshqichi   qo‟llaniladi.   Modullarni   yig‟ishni   ikki   usuli   keng
qo‟llaniladi:      Monolit   –   barcha   modullarni   testlash   to‟‟lamiga   bir   vaqtda
birlashtirishni   xarakterlaydi.      Inkremental   –   yig‟ilgan   to‟‟lamlarni   qadamli
testlash   asosida   qadamlar   bo‟yicha   dasturlar   to‟‟lamini   oshirishni   xarakterlaydi.
Inkremental   usul   modullarni   qo‟shish   strategiyasiga   ko‟ra   2   turga   bo‟linadi:   
“Te‟adan   „astga”   va   uni   yuqoriga   yo‟naltirilgan   testlash   bilan   muvofiqligi ;   
“„astdan te‟aga” va uni „astga yo‟naltirilgan testlash bilan muvofiqligi; Monolit va integral yondashishlarni solishtirish quyidagilardan iborat:    Monolit testlash juda
katta   kuch   sarflashni   talab   etadi,   drayverlarga   qo‟shimcha   ishlov   berish   va
idnetifikatsiya   xatoliklarini   qiyinligiga   bog‟liq   bo‟ladi.      Qadamli   testlash   asta-
sekinlik   bilan   testlanayotgon   kodni   hajmini   oshirishda   identifikatsiya   xatoligiga
kam mehnat sarfiga bog‟liq bo‟ladi. Monolit testlash asosan boshlang‟ich testlash
fazasida   parallel   ishlash   uchun   katta   imkoniyat   yaratib   beradi.   pasayuvchi
testlashning   afzalliklari   quyidagilardan   iborat:      tashkil   etish   orasida   uchun
bajariladigan   navbatdagi   chaqiriq   testlangan   modullarni   testlanadigan   modul;   
doimo razrabotka qilish va zaglushkalarni ishlatish;    birinchi navbatda modullarni
testlashni  tashkil  etish;      saqlangan   operatsiyalarni   modullar   bilan   almashtirish ;   
testlanadigan   algoritmga   tanqidiy   yondashish.   pasayuvchi   testlashning
kamchiliklari:      Intelektual   zaglushkalarni   yetarlicha   ishlab   chiqish   muammosi
ya‟ni   testlash   uchun   kerak   bo‟luvchi   kom‟leks   ishining   turli   xil   modellashtirish
rejimlarida   foydalanish   layoqatining   zaglushkasi.      Kerakli   ketma-ketlikda
modullarni   bajarishni   realizatsiya   qilish   uchun   ishlab   chiqish   va   tashkil   etishning
murakkabligi      Yuqori   va   quyi   bosqich   modullarini   parallel   ishlab   chiqish
modullarining yuqori bosqich modulining tastlanib bo‟lganligi, ammo quyi bosqich
modulining   testlanmaganligiga   qaramay   tayyorlanishi   tufayli   doim   ham   effektiv
realizatsiyasiyaga   olib   kelmaydi.   Tashkilotda   yuqorilovchi   testlashning
xususiyatlariga   jamlashning   tatriblanganligi   va   ishlab   chiqish   tartibiga   mos
ravishda   testlanuvchi   modulga   o‟tishi.   Yuqorilovchi   testlashning   kamchiliklari:   
Testlanayotgan   kom‟leksning   konse‟tual   asoslarini   tekshirilishining   kechikishi   
Drayverlardan   foydalanish   va   ishlab   chiqishda   yetishmovchiliklar   „rosedurali
dasturlashda   Integratsion   testlashning   asosiy   xususiyatlari   Tuzilmaviy   testlashda
testlar   to‟‟lamini   qurish   jarayoni   dasturning   graf   modeli(DGM)   konstruksiyasiga
asoslangan   „rins‟lar   asosida   aniqlanadi.   Bundan   testlash   usulliga   mos   bo‟lgan
ko‟‟   testlash   yo‟llari   va   testlar   generatsiyasi   talab   qilinadi.   Dasturiy   ta‟minotni
ishlab   chiqishga   bo‟lgan   birinchi   yondashuv   „rosedurali(modulli)   dasturlash hisoblanadi.   An‟anaviy   „rosedurali   dasturlash   kiruvchi   kodni   komandalar
bajarilishining   aniqlangan   ketma-ketligini   yozuvchi,   hamda   funksional
dekom‟ozitsiya   yordamida   dasturiy   loyihani   ro‟yhatga   olishni   bajaruvchi
im‟erativ(xokimlik)   stilda   yozishni   tahmin   qiladi.   Bunday   tillarda   „ascal   va   C
im‟erativ   hisoblanadi.   Kiruvchi   kodlar   satri   tartibi   dastur   qismlarining   qayta
bajarilishi   va   talablarni   tanlash   amalga   oshirilishining   ketmaketligidan   tashqari
boshqarishni uzatishni aniqlaydi. Har bir modul bir qancha kiruvchi nuqtalardan va
bir   qancha   chiquvchi   nuqtalardan   iborat.   Murakkab   dasturi   loyihalar   modul-
ierarxik   qurish   usulidan   iborat   va   testlash   modullari   DT   ni   testlash   jarayoning
dastlabki   qadami   hisoblanadi.   Modulning   graffli   modeli   trivial   masalalar
hisoblanadi.   Testlash   esa   doim   C1   kriteriya   boyicha   olib   boriladi   ya‟ni   graf
modulining har bir shoxi va yoyi testlash yo‟llaridan birini o‟z ichiga olishi kerak.
Integratsion testlash aniqrog‟I boshqaruv oqimlari diagrammasidan foydalanishga
olib keluvchi dastur modellarini ko‟rib chiqish hisoblanadi. Ma‟lumotlar orasidagi
aloqa   ya‟ni   testlanayotgan   guruh   bilan   bo‟gliqlikda   dasturning   boshqa
guruhlarida tayyorlanuvchi va foydalanuvchi nazorat qilinadi. Har bir o‟zgaruvchi
modulli interfeys oz‟aro aloqadagi modullar ro‟yhati bilan tenglik, hamda kiruvchi
dasturiy   s‟etsifikatsiyaning   mosligi   tekshiriladi.   Axborot   aloqa   guruh   modellari
tarlibi   va   strukturasi   shu   guruh   talablar   s‟etifikatsiyasiga   mosligi   tekshiriladi.
Barcha realizatisiyalangan aloqa o‟rnatilgan, tartiblangan vabirlashtirilgan bo‟lishi
kerak.   Modullarni   yagona  dasturiy   kom‟leksga   yig‟ish   loyihaning  graffli   modelini
qurishda   2   ta   variantida   „aydo   bo‟ladi:      Tekis   yoki   ierarxik   loyiha   modeli   
Chaqiruvlar grafi
                              
                                                               XULOSA
Xulosa. Modullar dasturlash uchun juda muhimdir, ular dastur tuzish jarayonini 
osonlashtiradi. Boshqa dasturlash tillari kabi pythonda ham modullar 
yaratib foydalanish mumkin. Pythonda saqlangan dasturlarni modul deb 
atasa ham bo'ladi. Modullarni nomlashda pythonda ishlatiladigan maxsus 
so'zlar, operator nomlari, standart modullar nomlari bilan bir xil bo'lib 
qolmasligi kerak. Bu xatoliklar keltirib chiqarishi mumkin. Python dasturlash
tilining ya'na bir qulay tomoni c, c++ dasturlash tilida yozilgan modullar 
bilan ham bog'lab dastur tuzish mumkin.
   
Adabiyotlar:
1.
Van Tassel D. Stil, razrabotka, effektivnost, otladka i isp ы tanie programm.
M. , Mir, 1991.
2.
Linger R. , Teoriya i praktika strukturnogo programmirovaniya M. , Mir, 
1985.
3.
V. V. Lipaev. “Proektirovanie programmn ы x sredstv”, M. :”VSh”, 1991.
4.
Foks Dj. “Programmnoe obespechenie i ego razrabotka”. Per. s angl. M. : 
Mir, 1985. 5.
www.ziyonet.uz
6.
www.tuit.uz            ”
MAVZUSIDA
K U R S   I S H I
                                                                Kurs ishi rahari: F.M.Nazarov
Samarqand-202 2

“Modulli programmalash ,va undan foydalanilish ” Kirish……………………………………………………………………………… ……… I BOB Modulli programmalash 1.1. Modulli programmalash haqida uning afzalligi 1.2. Modulli programmalashning qo’llanilishi Pythonda II BOB Modulli programmashning foydalanish va imkoniyatlari 2.Modulli programmalashdan foydalanish 2.1 Modulli programmalash foydalanish turlari 2.2 Modulli dasturlash tushunchasi XULOSA ……………………………………………………………………………………… ……… FOYDALANILGAN ADABIYOTLAR RO’YHATI ……………………………………………………………................................

KIRISH Modulli dasturlash, quyi tizimlar (xususan, I / U uchun) va dasturiy ta'minot kutubxonalari uchun ishlatilgan dastlabki dasturiy ta'minot tizimlariga tegishli. kodni qayta ishlatish. O'z-o'zidan modulli dasturlash, 1960-1970-yillarning oxirlarida ishlab chiqilgan modullik maqsadi, kontseptsiyasining keng ko'lamli analogi sifatida tizimli dasturlash (1960-yillar). "Modulli dasturlash" atamasi hech bo'lmaganda Axborot va tizimlar institutida 1968 yil iyul oyida tashkil etilgan Modulli dasturlash bo'yicha milliy simpoziumga to'g'ri keladi. Larri Konstantin; boshqa asosiy tushunchalar edi ma'lumotni yashirish (1972) va tashvishlarni ajratish (SoC, 1974). Modullar asl spetsifikatsiyaga kiritilmagan ALGOL 68 (1968), ammo dastlabki dasturlarda kengaytma sifatida kiritilgan, ALGOL 68-R (1970) va ALGOL 68C (1970) va keyinchalik rasmiylashtirildi.[5] Modulli dasturlash uchun boshidanoq yaratilgan birinchi tillardan biri qisqa muddatli edi Modula (1975), tomonidan Niklaus Virt. Yana bir dastlabki modulli til edi Mesa (1970-yillar), tomonidan Xerox PARCva Wirth Mesadan va uning o'rnini bosuvchi asl Moduladan tortib oldi, Modula-2 (1978), keyingi tillarga ta'sir ko'rsatdi, ayniqsa uning vorisi orqali, Modula-3 (1980-yillar). Modulaning nuqta ishlatishimalakali ismlar, kabi M.a ob'ektga murojaat qilish a moduldan M, yozuv maydoniga kirish uchun yozuvlar bilan mos keladi (va shunga o'xshash atributlar yoki ob'ektlarning usullari uchun) va endi keng tarqalgan, C #, Dart, Go, Java va Python va boshqalar. Modulli dasturlash 1980-yillardan keng tarqaldi: original Paskal til (1970) modullarni o'z ichiga olmagan, ammo keyingi versiyalari, xususan UCSD Paskal (1978) va Turbo Paskal (1983) Paskal ta'sirida bo'lgani kabi ularni ham "birliklar" shaklida kiritgan Ada (1980). Kengaytirilgan Paskal ISO 10206: 1990 standarti modulli yordami bilan Modula2 ga yaqinlashdi. Standart ML (1984)[6] eng to'liq modul tizimlaridan biriga ega, shu jumladan funktsiyalar (parametrlangan modullar) modullar o'rtasida xaritalash.

1980-1990 yillarda modulli dasturlash soya ostida qoldi va ko'pincha ular bilan birlashtirildi ob'ektga yo'naltirilgan dasturlash, ayniqsa C ++ va Java-ning mashhurligi tufayli. Masalan, C tillar oilasi C ++ da ob'ektlar va sinflarni qo'llab- quvvatlagan (dastlab Sinflar bilan C, 1980) va Objective-C (1983), faqat 30 yil va undan ko'p vaqt o'tgach qo'llab-quvvatlovchi modullar. Java (1995) modullarni paketlar shaklida qo'llab-quvvatlaydi, ammo kodni tashkil etishning asosiy birligi bu sinf. Biroq, Python (1991) boshidanoq ikkala moduldan va ob'ektlardan foydalangan, kodlarni tashkil etishning asosiy birligi sifatida modullardan va katta hajmdagi birlik sifatida "paketlardan" foydalangan; va Perl 5 (1994) modullarni ham, ob'ektlarni ham qo'llab-quvvatlashni o'z ichiga oladi, chunki ko'plab modullar mavjud CPAN (1993). Modulli dasturlash hozirgi kunda keng tarqalgan bo'lib, deyarli 90-yillardan beri ishlab chiqilgan barcha asosiy tillarda uchraydi. Modullarning nisbiy ahamiyati tillar orasida turlicha bo'lib, sinfga asoslangan ob'ektiv yo'naltirilgan tillarda tashkil etish va kapsülleme birligi sifatida sinflar bilan hali ham bir-biri bilan to'qnashuv va chalkashliklar mavjud, ammo bu ikkalasi ham alohida tushunchalar sifatida yaxshi tasdiqlangan.Entsiklopediya site:uz.wikihre.ru

I BOB Modulli programmalash 1.1 Modulli programmalash haqida uning afzalligi murojat kilinadi. Interpretatciya usulning   afzalligi shundan iboratki , asosiy yoki modul dasturlar hajmi jixatdan katta bo`lganda xotiradan bemalol foydalanish mumkin. Kompilyatciya usulidan esa barcha modullar va asosiy dastur operativ xotiraga joylashgan vaqtda foydalaniladi. Komplyatciya usuli bilan ishlaganda kutubxonadan barcha kerakli modullar operativ xotiraga chaqirib, jamlab qo`yiladi va dastur ishlaganda operativ xotiradagi modullardan avtomatik ravishda foydalaniladi. Kam vaqt   sarflash bu usulning afzalligi , operativ xotiraning ko`p sarflanishi esa kamchiligi hisoblanadi. 1.1 Modulli dasturlash: xususiyatlari, misollari, foydalari, ilovalari Modulli dasturlash: xususiyatlari, misollari, foydalari, ilovalari - Fan Modullar. Modullarni yaratish   dasturni bajarish tartibini , uni sozlash, testdan o`tkazish va takomillashtirishni ancha osonlashtiradi. Bu esa dastur yozishni boshidanoq dasturlash vaqtidan va mashina vaqtidan yutishga olib keladi. Bu   esa dasturchi uchun juda muxim , chunki dasturni boshlangich vaqtidanoq mashina vaqtidan dasturning bajarilishi jarayoniga nisbatan ancha tayerlanadi. Dasturni loyihalash, sozlash, testdan o`tkazishni bir - biriga bog`liq bo`lmagan holda mustaqil bajarish mumkin. Natijada dasturchi mashina vaqtidan yutadi. Dasturdan foydalanishdagi kamchiliklardan biri uning hajmi katta bo`lishiga qaratiladi. Agar dasturni chiqarish nuqtaga qo`yib, dasturni biron   - bir joyidan buyruq berilsa , u buyruqni samarali bajaradi. Dasturni ketma-ketlik bilan bajarishda aloqa buyrug`i uzib qo`yiladi va buning oqibatida xotira va vaqt meyorlanadi. Modulni dasturlash - bu dasturni modul deb ataluvchi mantiqiy qismlarga ajratish jarayonidir. Bu qismlar aloxida ketma - ket loyihalanadi, chunki katta masala bir

necha kichik masalalarga bo`linsa uni hal etish yoki echish ancha engillashadi. Agar masalani yuqoridan quyigacha loyihalansa, unda u albatta taxminiy modullar uchun bir necha kichik vazifalarga bo`linadi. 1). Modul qo`llanilgan konteksta bog`liq bo`lmagan, xolda, to`g`ri va aniq dasturiy modulga erishish kerak. 2). Oldindan modulning ichki ishi to`g`risida xech qanday ma`lumotga ega bo`lmagan xolda modul yordamida katta dasturni formalashga intilish lozim. Tadbiqiy dasturlash va standart jarayonlar qulay modullarga misoldir. Buni ham yuqoridan pastga qarab bajariladi. Faqat unda vazifalarni boshqarish tilini biladi. Odatda loyiha "tanasini" ni bir kishi bajarish mumkin. Bu esa loyihani butunligini ta`minlaydi va dasturni tushunish oson bo`ladi. Modulni printcipi qo`llanilaetganligi sababli asosiy dastur qisqa bo`lish va ko`maklashuvchi kichik dasturlarni yaratuvchi va modullovchi kichik va modullarni chiqaruvchi bo`lishi kerak. Ko`maklashuvchidastur haqiqiy dastur yaralgunga qadar o`rnini bosuvchi qisqa buyruqlar ketma - ketlikdan iborat. Ko`maklashuvchi dastur 2 ga bo`linadi. Soxta va almashinuvchan modullar. Soxta modul   xech qanday ish bajarilmaydi , u faqat chaqiruvchi modullarga boshqaruvni kaytarib beradi. Vaqtincha almashinuvchi modulni murakkab modul yaratulgunga qadar oddiy qayta ishlashni bajaradi. Almashinuvchi modul natijani bermagunga qadar chiqaruvchi modul ishini davom ettirmasiligi kerak. Ko`maklashuvchi dasturlar dasturning boshqa bo`g`inlarini (segmentga) testdan o`tkazish uchun ham xizmat qiladi. Bosh dasturni 2 ta muvaffakiyatli loyihalar ishlab chiqarilgandan so`ng tarkibiy dasturlarning hamma usullari birlashtirilib BDB (bosh dastur birgadasi) tuziladi. 1. Texnik boshqarishda loyihani texnik ekspertlarni nazorat qilish. 2. Qo`l ostidagilarni boshqarishda odamlarni hisobotligini va tartibligini nazorat