Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows 8
  • Teknologjitë e zhvillimit të softuerit. Ekzistojnë vetëm paradigma të programimit të strukturuar dhe objektesh Përshkruani qasjen e strukturuar ndaj programimit

Teknologjitë e zhvillimit të softuerit. Ekzistojnë vetëm paradigma të programimit të strukturuar dhe objektesh Përshkruani qasjen e strukturuar ndaj programimit

Programimiështë një degë relativisht e re dhe me zhvillim të shpejtë të shkencës dhe teknologjisë. Përvoja e kryerjes së zhvillimeve reale dhe përmirësimit të softuerit dhe harduerit ekzistues rimendohet vazhdimisht, duke rezultuar në metoda, metodologji dhe teknologji të reja, të cilat, nga ana tjetër, shërbejnë si bazë për mjetet më moderne të zhvillimit të softuerit. Këshillohet që të studiohen proceset e krijimit të teknologjive të reja dhe të përcaktohen tendencat e tyre kryesore, duke i krahasuar këto teknologji me nivelin e zhvillimit të programimit dhe veçoritë e softuerit dhe harduerit në dispozicion të programuesve.

Teknologjia e programimit thirrni një grup metodash dhe mjetesh të përdorura në procesin e zhvillimit të softuerit. Ashtu si çdo teknologji tjetër, një teknologji programimi është një grup udhëzimesh teknologjike, duke përfshirë:

  • një tregues i sekuencës së kryerjes së operacioneve teknologjike;
  • numërimi i kushteve në të cilat kryhet ky apo ai operacion;
  • përshkrime të vetë operacioneve, ku për çdo operacion përcaktohen të dhënat fillestare, rezultatet, si dhe udhëzimet, normat, standardet, kriteret dhe metodat e vlerësimit etj.

Përveç grupit të operacioneve dhe sekuencës së tyre, teknologjia përcakton edhe mënyrën e përshkrimit të sistemit të projektuar, më saktë modelin e përdorur në një fazë të caktuar zhvillimi.

Programimi i orientuar nga objekti (OOP) përkufizohet si një teknologji për krijimin e softuerit kompleks bazuar në paraqitjen e një programi si një grup objektesh, secila prej të cilave është një shembull i një lloji (klase) të caktuar dhe klasat formojnë një hierarki me trashëgimi të vetive. Ndërveprimi i objekteve softuerike në një sistem të tillë kryhet duke kaluar mesazhe.

Avantazhi kryesor i programimit të orientuar nga objekti në krahasim me programimin modular është dekompozimi "më i natyrshëm" i softuerit, i cili lehtëson shumë zhvillimin e tij. Kjo çon në një lokalizim më të plotë të të dhënave dhe integrimin e tyre me rutinat e përpunimit, gjë që lejon zhvillimin praktikisht të pavarur të pjesëve (objekteve) individuale të programit. Për më tepër, qasja e objektit ofron mënyra të reja të organizimit të programeve bazuar në mekanizmat e trashëgimisë, polimorfizmit, përbërjes, mbushjes. Këta mekanizma bëjnë të mundur ndërtimin e objekteve komplekse nga ato relativisht të thjeshta. Rezultati është një rritje e konsiderueshme në ripërdorimin e kodit dhe aftësinë për të krijuar biblioteka të klasave për përdorime të ndryshme.



Zhvillimi i shpejtë i teknologjive të programimit bazuar në qasjen e objektit ka bërë të mundur zgjidhjen e shumë problemeve. Kështu, u krijuan mjedise që mbështesin programimin vizual, për shembull, Delphi, C ++ Builder, Visual C ++, etj. Kur përdor mjedisin vizual, programuesi ka mundësinë të projektojë disa pjesë, për shembull, ndërfaqet e produkti i ardhshëm, duke përdorur mjete vizuale për shtimin dhe konfigurimin e komponentëve të veçantë të bibliotekës. Rezultati i dizajnit vizual është përgatitja e programit të ardhshëm, në të cilin tashmë janë futur kodet përkatëse.

Ju mund të jepni një përkufizim të përgjithshëm: OOP objektështë një koleksion i variablave të gjendjes dhe metodave (operacioneve) shoqëruese. Këto metoda përcaktojnë se si objekti ndërvepron me botën e jashtme.

Nën metodat e objektit kuptojnë procedurat dhe funksionet, deklarimi i të cilave përfshihet në përshkrimin e objektit dhe që kryejnë veprime. Aftësia për të menaxhuar gjendjet e një objekti duke thirrur metoda në fund përcakton sjelljen e objektit. Ky koleksion metodash shpesh quhet ndërfaqja e objektit.

Programimi strukturor (PS) u shfaq si një zgjidhje për problemin e reduktimit të VËSHTIRËSISË së zhvillimit të softuerit.

Në fillim të epokës së programimit, puna e një programuesi nuk rregullohej me asgjë. Detyrat që do të zgjidheshin nuk ndryshonin në shtrirje dhe shkallë, kryesisht u përdorën gjuhë të orientuara nga makina dhe gjuhë të ngjashme si Assembler, programet e zhvilluara rrallë arrinin madhësi të konsiderueshme dhe nuk u vendosën kufizime të rrepta në kohën e tyre. zhvillimin.

Me zhvillimin e programimit u shfaqën probleme, për zgjidhjen e të cilave u përcaktuan afate të kufizuara kohore të problemeve gjithnjë e më komplekse me përfshirjen e grupeve të programuesve. Si rezultat, zhvilluesit u përballën me faktin se metodat e përshtatshme për zhvillimin e problemeve të vogla nuk mund të përdoren në zhvillimin e projekteve të mëdha për shkak të kompleksitetit të këtyre të fundit.

Kështu, qëllimi i programimit të strukturuar është të përmirësojë besueshmërinë e programeve, të ofrojë mirëmbajtjen dhe modifikimin, lehtësimin dhe përshpejtimin e zhvillimit.

Metodologjia e Programimit Imperativ të Strukturuar - një qasje që konsiston në vendosjen e një topologjie të mirë të programeve imperative, duke përfshirë refuzimin e përdorimit të të dhënave globale dhe operatorin e kërcimit të pakushtëzuar, zhvillimin e moduleve me lidhje të fortë dhe sigurimin e pavarësisë së tyre nga modulet e tjera.

Qasja bazohet në dy parime kryesore:

· Zbërthimi sekuencial i algoritmit për zgjidhjen e problemit nga lart poshtë.

· Përdorimi i kodimit të strukturuar.

Kujtojmë se kjo metodologji është zhvillimi më i rëndësishëm i metodologjisë imperative.

Origjina, historia dhe evolucioni. Edsger Dijkstra konsiderohet të jetë krijuesi i qasjes së strukturuar. Ai gjithashtu bëri një përpjekje (për fat të keq, plotësisht të pazbatueshme për programimin masiv) për të kombinuar programimin e strukturuar me metodat për të provuar korrektësinë e programeve të krijuara. Shkencëtarë të tillë të njohur si H. Mills, D.E. Knuth, S. Hoor.

Metodat dhe konceptet prapa programimit të strukturuar. Janë tre

Metoda zbërthimi algoritmik nga lart-poshtë- konsiston në detajimin hap pas hapi të deklaratës së problemit, duke filluar nga problemi më i përgjithshëm. Kjo metodë siguron strukturim të mirë. Metoda mbështetet nga koncepti i një algoritmi.

Metoda organizimi modular i pjesëve të programit- konsiston në ndarjen e programit në komponentë të veçantë të quajtur module. Metoda mbështetet nga koncepti i modulit.

Metoda kodimi strukturor- konsiston në përdorimin e tre konstrukteve kryesore të kontrollit gjatë kodimit. Etiketat dhe operatori i kërcimit të pakushtëzuar janë marrëdhënie të vështira për t'u gjurmuar pa të cilat duam të bëjmë. Metoda mbështetet nga koncepti i kontrollit

Gjuhët e programimit strukturor. Dallimi kryesor nga metodologjia klasike e programimit imperativ është dështimi (më saktë, një ose një shkallë tjetër dështimi) nga operatori i kërcimit të pakushtëzuar .

"Një veti e rëndësishme e sintaksës për programuesin është aftësia pasqyrojnë në strukturën e programit strukturën e algoritmit themelor. Kur përdorni metodën e njohur si programimi i strukturuar, programi është ndërtuar në mënyrë hierarkike - nga lart poshtë (nga programi kryesor në nënprogramet e nivelit më të ulët), me përdorimin e vetëm një grupi të kufizuar strukturash kontrolli në çdo nivel: sekuenca të thjeshta udhëzimesh, sythe dhe disa lloje të degëzimi i kushtëzuar. Me një zbatim të qëndrueshëm të kësaj metode, struktura e algoritmeve rezultuese është e lehtë për t'u kuptuar, korrigjuar dhe modifikuar. Në mënyrë ideale, ne duhet të jemi në gjendje të përkthejmë skemën e programit të ndërtuar në këtë mënyrë drejtpërdrejt në udhëzimet përkatëse të programit që pasqyrojnë strukturën e algoritmit.

Teorema e strukturimit (Boem-Jacopini):Çdo program i saktë (d.m.th. një program me një hyrje dhe një dalje pa sythe dhe degë të paarritshme) mund të shkruhet duke përdorur strukturat logjike të mëposhtme - sekuenca, përzgjedhja dhe përsëritja e ciklit

Përfundimi 1: Çdo program mund të reduktohet në një formë pa një deklaratë goto.

Përfundimi 2: Çdo algoritëm mund të zbatohet në një gjuhë të bazuar në tre konstruksione kontrolli - sekuencë, lak, përsëritje.

Përfundimi 3: Kompleksiteti i programeve të strukturuara është i kufizuar, edhe nëse ato janë të pakufizuara në madhësi.

Programimi i strukturuar nuk është një qëllim në vetvete. Qëllimi i tij kryesor është të marrë një program të mirë ("korrekt"), megjithatë, edhe në programin më të mirë, ndonjëherë nevojiten deklarata goto: për shembull, për të dalë nga një grup sythesh të mbivendosur.

Pothuajse në të gjitha gjuhët që mbështesin metodologjinë imperative, është e mundur të zhvillohen programe sipas kësaj metodologjie. Një numër gjuhësh kanë futur zëvendësues të veçantë për deklaratën goto për ta bërë më të lehtë menaxhimin e sytheve (për shembull, Break dhe Continue në C).

Klasa e detyrave. Klasa e problemeve për një metodologji të caktuar korrespondon me klasën e problemeve për një metodologji imperative. Vini re se kjo bën të mundur zhvillimin e programeve më komplekse, pasi ato janë të lehta për t'u perceptuar dhe analizuar.

Programimi strukturorjo është metodologjia e parë e plotë e programimit. Programimi i strukturuar ka pasur një ndikim të madh në zhvillimin e programimit. Kjo metodë u përdor shumë gjerësisht në programimin praktik dhe deri më sot nuk e ka humbur rëndësinë e saj për një klasë të caktuar problemesh.

Qasja e strukturuar bazohet në dy parime themelore:

1 është përdorimi i gjuhëve të programimit procedural (Algol, Pascal, SI);

2 është një zbërthim vijues nga lart-poshtë i algoritmit për zgjidhjen e problemit.

Problemi zgjidhet duke aplikuar një sekuencë veprimesh. Fillimisht, detyra formulohet në termat e hyrje-daljes. Kjo do të thotë që disa të dhëna i jepen hyrjes së programit. Programi funksionon dhe jep një përgjigje.

Pas kësaj, fillon zbërthimi vijues i të gjithë detyrës në veprime më të thjeshta.

Për shembull, nëse duhet të shkruajmë një program për të kontrolluar korrektësinë e adresës, atëherë së pari do ta shkruajmë si më poshtë:

Kontrolloni adresën kundrejt bazës së të dhënave të adresave të disponueshme

Nëse testi është pozitiv,printo Po,

përndryshe, shtypni Nr.

Natyrisht, një shënim i tillë një-për-një shfaqet në një program në një gjuhë të nivelit të lartë, për shembull, në Pascal.

kontrolloni_adresën e programit (hyrje, dalje); varan_adresa: Adresa; fillo adresën e leximit (një _adresa);

nëse (kontrollo bazën e të dhënave (një_adresë)) atëherë

shkruaninTMIa "); tjetër

Ky program përdor procedurën lexoni_ adresë për të lexuar adresën dhe procedurën kontrolloni_ bazën e të dhënave për të kontrolluar adresën e lexuar me informacionin në bazën e të dhënave. Tani mund të vazhdojmë procesin e përpilimit të një programi për procedurat e nivelit tjetër: leximi i adresës dhe kontrollimi i bazës së të dhënave.

Është shumë e rëndësishme që në çdo fazë të mund të kontrollohet programi. Për ta bërë këtë, ju duhet të shkruani cung - procedura që simulojnë hyrjen dhe daljen e procedurave të nivelit më të ulët. (Në programin e mësipërm, mund të përdorni procedurën e leximit të adresës, e cila thjesht zëvendëson një adresë fikse në vend të hyrjes nga terminali, dhe procedurën e kontrollit të bazës së të dhënave, e cila nuk bën asgjë, por thjesht kthehet gjithmonë e vërtetë.)

Programi lidhet me cung dhe mund të funksionojë. Studimet ju lejojnë të testoni logjikën tuaj të nivelit të lartë përpara se të zbatoni nivelin tjetër.

Programimi i strukturuar ka përcaktuar qartë vlera e programimit modular kur zhvilloni projekte të mëdha, por gjuhët e programimit ende mbështesin dobët modularitetin. Mënyra e vetme për të strukturuar programet ishte kompozimi i tyre nga nënprogramet ose funksionet. Kontrolli mbi korrektësinë e thirrjeve të funksionit, duke përfshirë korrespondencën e numrit dhe llojeve të argumenteve aktuale me parametrat formalë të pritshëm, u krye vetëm në fazën e ekzekutimit (koncepti i një prototipi funksioni u shfaq më vonë).

1.4. Bazat dhe historia e programimit të orientuar nga objekti

Programimi i orientuar nga objekti u shfaq dhe u përhap gjerësisht për shkak të realizimit të tre problemeve kryesore të programimit.

1 - zhvillimi i gjuhëve dhe metodave të programimit nuk ka mbajtur ritmin me nevojat në rritje për programe. E vetmja mënyrë reale për të përmbushur këto nevoja ishte ripërdorimi i softuerit tashmë të zhvilluar, të testuar dhe të korrigjuar.

2 - nevoja për të thjeshtuar mirëmbajtjen dhe modifikimin e sistemeve të zhvilluara. (Fakti i ndryshimeve të vazhdueshme në kërkesat për sistemin u njoh si një kusht normal për zhvillimin e sistemit, dhe jo si një paaftësi ose organizim i pamjaftueshëm i qartë i punës së zhvilluesve.) Ishte e nevojshme të ndryshohej mënyra e ndërtimit sistemet softuerike në mënyrë që modifikimet lokale të mos prishin performancën e të gjithë sistemit dhe do të jetë më e lehtë të bëhen ndryshime në sjelljen e sistemit ...

3 është për të lehtësuar dizajnimin e sistemit. Jo të gjitha problemet i nënshtrohen përshkrimit algoritmik dhe, për më tepër, zbërthimit algoritmik, siç kërkohet nga programimi i strukturuar. Kërkohej afrimi i strukturës së programit me strukturën e detyrave për t'u zgjidhur dhe reduktimi i të ashtuquajturave. thyerje semantike ndërmjet strukturës së problemit që zgjidhet dhe strukturës së programit. Një hendek semantik ndodh kur konceptet që qëndrojnë në themel të gjuhës së problemit dhe mjetet e zgjidhjes së tij janë të ndryshme. Prandaj, së bashku me nevojën për të regjistruar vetë zgjidhjen, është gjithashtu e nevojshme të përkthehen disa koncepte në të tjera. (Krahasojeni këtë me përkthimin nga një gjuhë e natyrshme në një tjetër. Pikërisht sepse më parë nuk kishte koncepte të tilla në gjuhën ruse, fjalë si p.sh. ndërmjetës, në det të hapur ose investitor. Fatkeqësisht, në programim, huazimi i fjalëve nuk është i mundur.)

Pra, thjeshtimi i dizajnit, përshpejtimi i zhvillimit përmes ripërdorimit të moduleve të gatshme dhe lehtësia e modifikimit - këto janë tre avantazhet kryesore të programimit të orientuar nga objekti, të cilat u promovuan nga mbështetësit e tij.

Programimi i orientuar nga objekti supozon një qasje të unifikuar për projektimin, ndërtimin dhe zhvillimin e një sistemi.

Shfaqja e metodës së orientuar nga objekti ndodhi në bazë të të gjithë zhvillimit të mëparshëm të metodave të zhvillimit të softuerit, si dhe shumë degëve të tjera të shkencës.

Shfaqja e një qasjeje të orientuar nga objekti në hartimin e sistemit u lehtësua nga përparimet e mëposhtme teknologjike:

1 - Zhvillimi i teknologjisë kompjuterike, në veçanti, mbështetja harduerike për konceptet bazë të sistemeve operative dhe ndërtimi i sistemeve të orientuara nga funksioni.

2 - Përparime në metodologjinë e programimit, në veçanti ndërtimi i sistemeve modulare dhe inkapsulimi i informacionit.

3 - Teoria e ndërtimit dhe modelimit të sistemeve të menaxhimit të bazës së të dhënave prezantoi idenë e ndërtimit të marrëdhënieve midis objekteve në programimin e objekteve.

4 - Kërkimet në inteligjencën artificiale kanë çuar në një kuptim më të mirë të mekanizmave të abstraksionit. Teoria e kornizës e propozuar nga Minsky për përfaqësimin e objekteve reale në sistemet e njohjes së modeleve dha një shtysë të fuqishme jo vetëm për sistemet e inteligjencës artificiale, por edhe për mekanizmat e abstraksionit në gjuhët e programimit.

5 - Zhvillimi i filozofisë dhe teorisë së dijes. Në shumë mënyra, ndërtimi i sistemeve të orientuara nga objekti është një pamje e caktuar e botës reale të simuluar. Pikërisht në këtë aspekt filozofia dhe teoria e dijes kanë pasur një ndikim të fortë në modelin e objektit. Edhe grekët e lashtë e konsideronin botën në formën e objekteve ose proceseve. Dekarti parashtroi supozimin se një konsideratë e orientuar nga objekti i botës përreth duket e natyrshme për një person. Minsky sugjeroi se arsyeja manifestohet si ndërveprim i agjentëve që nuk mund të mendojnë veçmas.

Programimi i orientuar nga objekti mbështetet nga gjuhë programimi si Smalltalk, C ++, Java, etj. Gjuhët janë mjetet kryesore për programimin e orientuar nga objekti, ishte gjatë zhvillimit të tyre që u shfaqën shumica e ideve që përbëjnë bazën e metodës së orientuar nga objekti.

Hapi i parë drejt krijimit të një modeli objekti duhet të konsiderohet shfaqja e llojeve abstrakte të të dhënave. Besohet se zbatimi i parë i plotë i llojeve abstrakte të të dhënave në gjuhët e programimit është gjuha Simula.

Më pas erdhën (dhe vazhdojnë të shfaqen) gjuhë të tjera të orientuara nga objekti që përcaktojnë gjendjen e artit të programimit. Më të zakonshmet prej tyre janë C ++, CLOS, Eiffel, Java.

  • Strukturore
    • Ndarja e përgjegjësisë:
  • Shablloni: softuer i bazuar në prezantimin e programit në formën e një strukture blloku hierarkik. Propozuar në vitet 70 të shekullit XX nga E. Dijkstroy, zhvilluar dhe plotësuar nga N. Virt.

    Sipas kësaj metodologjie

    1. Çdo program është një strukturë e ndërtuar nga tre lloje strukturash bazë:
      • ekzekutimi sekuencial- një ekzekutim i vetëm i operacioneve në rendin në të cilin janë shkruar në tekstin e programit;
      • degëzimi- ekzekutimi një herë i një prej dy ose më shumë operacioneve, në varësi të përmbushjes së ndonjë kushti të caktuar;
      • ciklit- ekzekutimi i shumëfishtë i të njëjtit operacion për sa kohë që plotësohet një kusht i caktuar (kushti për vazhdimin e ciklit).
      Në një program, konstruktet bazë mund të futen brenda njëri-tjetrit në një mënyrë arbitrare, por nuk ofrohen mjete të tjera për të kontrolluar sekuencën e operacioneve.
    2. Përsëritja e fragmenteve të programit (ose jo përsëritëse, por që përfaqësojnë blloqe llogaritëse logjikisht integrale) mund të formohen në formën e të ashtuquajturave. nënprogramet (procedurat ose funksionet). Në këtë rast, në tekstin e programit kryesor, në vend të fragmentit të vendosur në nënprogram, futet instruksioni. thirrje nënrutinë... Kur një instruksion i tillë ekzekutohet, ekzekutohet nënprogrami i thirrur, pas së cilës ekzekutimi i programit vazhdon me instruksionin që ndjek komandën e thirrjes së nënprogramit.
    3. Zhvillimi i programit kryhet hap pas hapi, me metodën "nga lart poshtë".

    Së pari, shkruhet teksti i programit kryesor, në të cilin, në vend të çdo fragmenti logjik koherent të tekstit, futet një thirrje në një nënprogram që do të ekzekutojë këtë fragment. Në vend të nënprogrameve reale, të punës, futen në program "cungët", të cilët nuk bëjnë asgjë. Programi që rezulton kontrollohet dhe korrigjohet. Pasi programuesi sigurohet që nënprogramet janë thirrur në sekuencën e duhur (d.m.th., struktura e përgjithshme e programit është e saktë), nënprogramet cung zëvendësohen në mënyrë sekuenciale me ato që punojnë në të vërtetë dhe zhvillimi i secilës nënprogram kryhet në në të njëjtën mënyrë si programi kryesor. Zhvillimi përfundon kur nuk ka mbetur asnjë "prizë" e vetme që nuk do të ishte hequr. Kjo sekuencë siguron që në çdo fazë të zhvillimit, programuesi të merret njëkohësisht me një mori fragmentesh që janë të dukshme dhe të kuptueshme për të, dhe mund të jetë i sigurt se struktura e përgjithshme e të gjitha niveleve më të larta të programit është e saktë. Kur mirëmbahen dhe bëhen ndryshime në program, bëhet e qartë se cilat procedura duhen ndryshuar, dhe ato bëhen pa prekur pjesë të programit që nuk lidhen drejtpërdrejt me to. Kjo ju lejon të siguroheni që kur bëni ndryshime dhe rregulloni gabimet, një pjesë e programit që aktualisht është jashtë vëmendjes së programuesit nuk do të prishet.

    Teorema e programimit të strukturuar:

    Artikulli kryesor: Teorema Bohm-Jacopini

    Çdo skemë e algoritmit mund të përfaqësohet si një përbërje e blloqeve të mbivendosura të fillimit dhe të fundit, deklarata të kushtëzuara nëse, atëherë, ndryshe, qarkon me një parakusht (while), dhe mund të ketë variabla logjikë shtesë (flamuj).
    Kjo teoremë u formulua nga matematikanët italianë C. Bohm dhe J. Jacopini në vitin 1966 dhe na tregon se si të shmangim përdorimin e operatorit goto.

    Histori

    Metodologjia e programimit të strukturuar u shfaq si pasojë e kompleksitetit në rritje të detyrave të zgjidhura në kompjuter dhe ndërlikimit përkatës të softuerit. Në vitet 1970, vëllimi dhe kompleksiteti i programeve arriti në një nivel të tillë që zhvillimi "intuitiv" (i pastrukturuar, ose "refleks") i programeve, që ishte normë në kohët e mëparshme, nuk i plotëson më nevojat e praktikës. Programet u bënë shumë komplekse për t'u mirëmbajtur siç duhet, kështu që kërkohej një lloj sistematizimi i procesit të zhvillimit dhe strukturës së programeve.

    Kritika më e fortë nga zhvilluesit e qasjes së strukturuar ndaj programimit ishte operatori GOTO (operatori i kërcimit të pakushtëzuar), i cili atëherë ishte i disponueshëm në pothuajse të gjitha gjuhët e programimit. Përdorimi i gabuar dhe i pamenduar i tranzicioneve arbitrare në tekstin e programit çon në programe konfuze, të strukturuara dobët (i ashtuquajturi kod spageti), nga teksti i të cilit është pothuajse e pamundur të kuptohet rendi i ekzekutimit dhe ndërvarësia e fragmenteve.

    Ndjekja e parimeve të programimit të strukturuar i bëri tekstet e programeve, madje edhe ato mjaft të mëdha, normalisht të lexueshme. Kuptimi i programeve është bërë shumë më i lehtë, u bë e mundur zhvillimi i programeve në një mënyrë normale industriale, kur programi mund të kuptohet lehtësisht jo vetëm nga autori i tij, por edhe nga programuesit e tjerë. Kjo bëri të mundur zhvillimin e sistemeve softuerike që ishin mjaft të mëdha për atë kohë me përpjekjet e ekipeve të zhvillimit dhe t'i shoqëronin këto komplekse për shumë vite, edhe në kushtet e ndryshimeve të pashmangshme të stafit.

    Metodologjia e strukturuar e zhvillimit të softuerit është njohur si "formalizimi më i fortë i viteve '70". Që atëherë, fjala "strukturore" është bërë modë në industri dhe ka filluar të përdoret kudo që është e nevojshme dhe ku nuk është e nevojshme. Ka pasur punime për “projektim strukturor”, “testim strukturor”, “projektim strukturor” etj. Në përgjithësi, ka ndodhur pothuajse e njëjta gjë që ka ndodhur në vitet '90 dhe po ndodh tani me termat "objekt", "objekt-orientuar" dhe "elektronik".

    Këtu janë disa nga përfitimet e programimit të strukturuar:

    1. Programimi i strukturuar ju lejon të zvogëloni ndjeshëm numrin e opsioneve për ndërtimin e një programi sipas të njëjtit specifikim, gjë që redukton ndjeshëm kompleksitetin e programit dhe, më e rëndësishmja, e bën më të lehtë për zhvilluesit e tjerë ta kuptojnë atë.
    2. Në programet e strukturuara, operatorët e lidhur logjikisht janë vizualisht më afër, dhe ata të lidhur dobët janë më larg, gjë që bën të mundur që të bëhet pa diagrame blloku dhe forma të tjera grafike të shfaqjes së algoritmeve (në fakt, vetë programi është diagrami i tij i bllokut).
    3. Procesi i testimit dhe korrigjimit të programeve të strukturuara është thjeshtuar shumë.

    Shiko gjithashtu

    Lidhjet


    Fondacioni Wikimedia. 2010.

    • Mahajanapada
    • Deve

    Shihni se çfarë është "Programimi i strukturuar" në fjalorë të tjerë:

      Programim i strukturuar- metodologjia dhe teknologjia për zhvillimin e sistemeve softuerike të bazuara në parimet e: programimit nga lart-poshtë; programim modular. Në këtë rast, logjika e algoritmit dhe programeve duhet të përdorë tre struktura kryesore: sekuenciale ... ... Fjalori financiar

      programimi i strukturuar- struktūrinis programavimas statusas T sritis automatika atitikmenys: angl. kodim i strukturuar; programimi i strukturuar vok. strukturelle Programmierung, f rus. programim i strukturuar, n; programim i strukturuar, n pranc…… Automatikos Terminų žodynas

      Programim i strukturuar- 46. Programim i strukturuar Programimi i strukturuar Burimi: GOST 19781 90: Softuer për sistemet e përpunimit të informacionit. Termat dhe përkufizimet… Fjalor-libër referues i termave të dokumentacionit normativ dhe teknik

      Programimi- Ky artikull duhet të rishkruhet plotësisht. Mund të ketë shpjegime në faqen e diskutimit. Ky term ka kuptime të tjera, shikoni Programet ... Wikipedia

      PROGRAMIMI- 1) procesi i hartimit të një programi, një plani veprimi. 2) Seksioni i informatikës, studimi i metodave dhe teknikave të programimit. Me pak konventë P. si disiplinë ndahet në: teorike, mat studimore. abstraksionet e programeve (si objekte me ... ... Enciklopedi fizike

      Programimi i bazuar në prototipe- Programimi prototip është një stil i programimit të orientuar nga objekti në të cilin nuk ekziston koncepti i një klase dhe ripërdorimi (trashëgimia) bëhet duke klonuar një shembull ekzistues të një objekti prototip. ... ... Wikipedia

      Paradigma (programim)- Paradigma e programimit është një koleksion idesh dhe konceptesh që përcakton stilin e të shkruarit të programeve. Paradigma përcaktohet kryesisht nga njësia bazë e programit dhe vetë parimi i arritjes së modularitetit të programit. Si kjo njësi ... Wikipedia

      Programimi kompjuterik- Zhvillimi i softuerit Analiza e hapave të procesit të zhvillimit të softuerit | Projektimi | Zbatimi | Testimi | Zbatimi | Mbajtja e modeleve / metodave të shkathëta | Dhoma e pastërtisë | Përsëritëse | Scrum | RUP | MSF | Spirale | ... Wikipedia

      Programim i pastrukturuar- Metodologjia e zhvillimit të softuerit të programimit të strukturuar, e cila bazohet në paraqitjen e programit në formën e një strukture blloku hierarkik. Propozuar në vitet 70 të shekullit XX nga E. Dijkstroy, zhvilluar dhe plotësuar nga N. Virt. Në ... Wikipedia

      Programim i orientuar nga komponentët- Paradigmat e programimit të orientuara nga agjentët e orientuar drejt komponentëve Deklarativ (në kontrast me imperativin) Kufizimet Rrjedha funksionale e të dhënave E orientuar nga tabela (fletë llogaritëse) Reaktive ... Wikipedia

    libra

    • Disiplina e programimit, Dijkstra E. Libri është shkruar nga një nga ekspertët më të mëdhenj të huaj në fushën e programimit, i njohur për lexuesin sovjetik për përkthimin e librave të tij në Rusisht (për shembull, "Strukturore ...

    Programimi i strukturuar përfaqëson përparimin më të madh në këtë fushë deri më sot. Përkundër faktit se pothuajse të gjithë kanë një koncept të përgjithshëm për të, pothuajse askush nuk mund të japë një përkufizim specifik dhe të qartë të këtij termi. Programimi i strukturuar vendos qëllimin kryesor për të shkruar programe me kompleksitetin më të vogël, duke e detyruar programuesin të mendojë qartë, duke e bërë programin më të lehtë për t'u kuptuar. Teksti i tij duhet të bëhet në mënyrë që të jetë i lexueshëm nga lart poshtë. Ky kusht shkelet nëse në kodin e programit hasen deklarata go to, pasi ato cenojnë strukturën e të gjithë segmentit të programit. Përkundër faktit se ky tregues nuk mund të konsiderohet më i përshtatshmi, prapëseprapë mund të thuhet se prania e këtij operatori në kodin e programit është lloji më i dukshëm i shkeljes së strukturës. Trupat e moduleve dhe strukturat themelore të përdorura duhet të jenë rezistente ndaj dështimeve të harduerit, gabimeve në programe dhe shtrembërimeve të të dhënave origjinale.

    Parimet bazë të programimit të strukturuar janë si më poshtë. Çdo program mund të sintetizohet lehtësisht bazuar në ndërtimet elementare të tre llojeve kryesore:

    Konsistencë e thjeshtë;

    Kushtet ose alternativat;

    Përsëritjet, domethënë sythe dhe përsëritje.

    Një ose dy të çdo lloji mund të përdoren në të njëjtën kohë. Çdo strukturë ka një veçori të vetme - një pikë të vetme të transferimit të kontrollit në strukturë dhe pika e vetme e hyrjes në strukturë. Ky lloj ndërtimi ka një kuptim disiplinues dhe sistematizues.

    Thjeshtësia e konstrukteve fillestare në programimin e strukturuar parandalon lidhjet informative si dhe transferimet konfuze të kontrollit. Kompleksiteti i programeve zvogëlohet ndjeshëm me një rritje të strukturës së moduleve, rritet qartësia e tyre dhe kjo ndihmon në uljen e numrit të gabimeve. Sidoqoftë, strukturimi ka gjithashtu një pengesë - për bukurinë dhe qartësinë e kodit të programit duhet të paguani me memorie shtesë, si dhe kohën e nevojshme për zbatimin e tyre në një kompjuter.

    Programimi strukturor, domethënë struktura e vetë teksteve të programit, varet tërësisht nga ajo gjuhë që përdoret për këtë. Natyrisht, lind pyetja se cila është më e përshtatshme. Mjetet moderne të zhvillimit të softuerit konsiderohen si gjuhët më të mira për zbatimin e një qasjeje të strukturuar ndaj programimit. Ndër më të zakonshmet janë Basic, Pascal dhe FoxBASE. Për shembull, është praktikisht e pamundur të zbatohen parimet e përcaktuara në konceptin e programimit të strukturuar. Kjo gjuhë është e fokusuar në shkrimin e kodit të programimit të nivelit të ulët.

    Programimi i strukturuar është i fokusuar në thelb në komunikimin me njerëzit, jo me makinat, prandaj, lehtëson shkrimin e programeve që përfaqësojnë një zgjidhje të qartë dhe të thjeshtë për një problem të caktuar. Programuesi duhet të mendojë në terma të konstrukteve bazë strukturore.

    Nëse flasim për pozicionin në lidhje me të shkuarën tek operatori i përmendur më parë, atëherë duhet të shmanget kudo që të jetë e mundur, por kjo nuk duhet të ndikojë në qartësinë e programit në asnjë mënyrë. Ndonjëherë përdorimi i këtij operatori rezulton të jetë thjesht i nevojshëm për të dalë nga një segment i caktuar i një programi ose cikli, si dhe për të shmangur shfaqjen e pirunëve shumë të thellë, veçanërisht pasi kalimi shoqërohet me nivele më të ulëta të programeve. Në të njëjtën kohë, struktura e programit mbetet lehtësisht e lexueshme nga lart poshtë. Më e keqja e operatorit të dhënë ka të bëjë me kalimin nga poshtë lart.

    Për ta bërë më të lehtë leximin, programet shpesh shtojnë vija bosh midis seksioneve. Vlen të shkruani tekstin e programit me ndërrime në mënyrë që të mund të lexoni sekuencën e veprimeve dhe numrin e bashkëngjitjeve.

    software

    Qasja strukturore ndaj programimit është njëkohësisht një metodologji dhe një teknologji për krijimin e programeve. Në një kohë, zbatimi i tij siguroi një rritje të produktivitetit të programuesve gjatë shkrimit dhe korrigjimit të programeve; marrjen e programeve që përbëhen nga module dhe janë të përshtatshme për mirëmbajtje; krijimi i programeve nga një ekip zhvilluesish; përfundimi i krijimit të programit në një kohë të caktuar.

    Programimi i strukturuar është një qasje që përdor konstruksione për të transferuar kontrollin në një program që lejojnë transferime të njëpasnjëshme, të kushtëzuar dhe përsëritëse të kontrollit. Transferimi i pakushtëzuar i kontrollit nga deklarata goto është i ndaluar. Si rezultat, çdo komandë komplekse në program, e cila është një kombinim i deklaratave sekuenciale, të kushtëzuara dhe ciklike, ka vetëm një pikë hyrje dhe dalje, e cila siguron që programi të ndahet në fragmente relativisht të pavarura.

    Programimi i strukturuar është rezultat i aplikimit të teknikave aplikative në programet imperative. Për këtë, përdoren gjuhë të orientuara nga procedura, në të cilat është e mundur të përshkruhet një program si një grup procedurash. Procedurat mund të thërrasin njëra-tjetrën, dhe secila prej tyre mund të thirret nga programi kryesor, i cili mund të konsiderohet edhe si procedurë.

    Struktura e programit është pjesë ndërvepruese e programit të alokuara artificialisht nga programuesi. Përdorimi i një strukture racionale eliminon problemin e kompleksitetit të zhvillimit, e bën programin të kuptueshëm për përdoruesit, rrit besueshmërinë e programit duke reduktuar periudhën e testimit dhe zhvillimit të tij.

    Shumë shpesh, një sekuencë e caktuar udhëzimesh duhet të përsëritet në vende të ndryshme në program. Në mënyrë që programuesi të mos ketë nevojë të shpenzojë kohë dhe përpjekje për të kopjuar këto udhëzime, shumë gjuhë programimi ofrojnë mjete për organizimin e nënprogrameve. Programuesi merr mundësinë të caktojë një emër arbitrar për sekuencën e udhëzimeve dhe ta përdorë këtë emër si shkurtim në ato vende ku ndodh sekuenca përkatëse e udhëzimeve. Pra, një nënprogram është një sekuencë udhëzimesh që mund të thirren në disa vende në një program. Nënprogramet zakonisht quhen procedura dhe funksione.

    Përshkrimi i një nënprogrami përbëhet nga dy pjesë: kokat dhe trupat. Kreu përmban identifikuesin e nënprogramit dhe variablat e përdorura në të. Trupi përbëhet nga një ose më shumë udhëzime. Identifikuesi i nënrutinës përdoret si një shënim stenografik në ato vende në program ku ndodh sekuenca përkatëse e udhëzimeve.

    Procedurat dhe funksionet, të quajtura nënprograme, janë një nga mjetet e pakta themelore në artin e programimit që kanë një ndikim vendimtar në stilin dhe cilësinë e punës së një programuesi.

    Një procedurë nuk është vetëm një mënyrë për të shkurtuar një tekst programi, por gjithashtu një mjet për të zbërthyer një program në elementë të lidhur logjikisht, të mbyllur që përcaktojnë strukturën e tij. Zbërthimi i një programi në pjesë është thelbësor për të kuptuar programin, veçanërisht nëse programi është kompleks dhe i vështirë për t'u parë për shkak të gjatësisë së madhe të tekstit. Zbërthimi në nënprograme është i nevojshëm si për dokumentimin ashtu edhe për verifikimin e programit. Prandaj, është e dëshirueshme të formulohet një sekuencë udhëzimesh në formën e një nënprogrami, edhe nëse programi përdoret vetëm një herë dhe, për rrjedhojë, nuk ka asnjë motiv që lidhet me reduktimin e tekstit të programit.

    Informacioni rreth variablave ose kushteve që duhet të plotësojnë argumentet specifikohet në kokën e procedurës. Dobia e procedurës, në veçanti, roli i saj në strukturimin e një programi, dëshmohet padiskutim nga dy koncepte të tjera në programim. Komoditeti ose variablat lokalë të përdorur brenda një procedure nuk kanë asnjë kuptim jashtë saj. Është më e lehtë të kuptosh një krijesë në një program nëse qëllimet e këtyre variablave janë të specifikuara në mënyrë eksplicite. Procedura vepron si një njësi tekstuale e natyrshme, me ndihmën e së cilës kufizohet shtrirja e ekzistencës së variablave lokale.

    Taktika më e zakonshme e programimit është zbërthimi i një procesi në veprime individuale:

    • - përshkrimi funksional për nënfunksionet;
    • - programe të përshtatshme për udhëzime të veçanta.

    Në çdo hap të tillë të dekompozimit, është e nevojshme të siguroheni që zgjidhjet e problemeve të veçanta të çojnë në zgjidhjen e problemit të përgjithshëm, sekuenca e zgjedhur e veprimeve individuale është e arsyeshme dhe ju lejon të merrni udhëzime që janë në një farë kuptimi më afër gjuhën në të cilën do të zbatohet programi. Kjo kërkesë përjashton mundësinë e përparimit të drejtpërdrejtë nga vendosja fillestare e problemit deri në programin përfundimtar, i cili duhet të arrihet përfundimisht. Çdo fazë e dekompozimit shoqërohet me formulimin e nënprogrameve private. Gjatë kësaj pune, mund të zbuloni se zbërthimi i zgjedhur është i pasuksesshëm në kuptimin që është e papërshtatshme të shprehni nënprograme duke përdorur mjetet e disponueshme. Në këtë rast, një ose më shumë nga hapat e mëparshëm të dekompozimit duhet të rishikohen përsëri.

    Nëse shohim përparim gradual në thellësi në zbërthimin hap pas hapi dhe zhvillimin dhe detajimin e njëkohshëm të programit, atëherë një metodë e tillë në zgjidhjen e problemeve mund të karakterizohet si nga lart-poshtë (nga lart poshtë). Dhe anasjelltas, një qasje e tillë për zgjidhjen e problemit është e mundur kur programuesi së pari studion kompjuterin ose gjuhën e programimit që ka në dispozicion, pastaj mbledh disa sekuenca udhëzimesh në procedura elementare tipike për problemin që zgjidhet. Procedurat elementare përdoren më pas në nivelin tjetër të hierarkisë së procedurës. Kjo metodë e kalimit nga udhëzimet primitive të makinës në zbatimin e programit të kërkuar quhet nga poshtë-lart (nga poshtë-lart).

    Në praktikë, zhvillimi i një programi nuk mund të kryhet kurrë rreptësisht në një drejtim - nga lart poshtë ose nga poshtë lart. Megjithatë, kur hartohen algoritme të reja, zakonisht dominon qasja nga lart-poshtë. Nga ana tjetër, kur përshtatet një program me kërkesat paksa të ndryshuara, shpesh preferohet qasja nga poshtë-lart.

    Të dyja metodat ju lejojnë të zhvilloni programe që kanë strukturë, një veti që i dallon ato nga sekuenca lineare amorfe të instruksioneve ose udhëzimeve të makinës. Është e rëndësishme që gjuha e përdorur ta pasqyrojë plotësisht këtë strukturë. Vetëm atëherë forma përfundimtare e programit që rezulton do të lejojë aplikimin e metodave sistematike të verifikimit.

    Nëse një program ndahet në nënprograme, shpesh është e nevojshme të futen variabla të reja për të përfaqësuar rezultatet dhe argumentet, dhe kështu të vendosen lidhje midis nënprogrameve. Variabla të tillë duhet të futen dhe të përshkruhen në fazën e zhvillimit në të cilën ato kërkohen. Për më tepër, përshkrimi i detajuar i procesit mund të shoqërohet me përshkrimin e detajuar të strukturës së variablave të përdorur. Prandaj, gjuha duhet të ketë një mjet për të pasqyruar strukturën hierarkike të të dhënave. Kjo tregon se çfarë roli të rëndësishëm luajnë koncepti i procedurës, lokaliteti i procedurave dhe të dhënave, si dhe strukturimi i të dhënave në zhvillimin hap pas hapi të një programi.

    Dizajni fillon me rregullimin e specifikimeve të jashtme. Bazuar në specifikimet e jashtme, hartohet një përshkrim i algoritmit të programit të brendshëm, domosdoshmërisht me strukturën e të dhënave të brendshme. Më tej, funksionet e mëdha ndahen në nënfunksione derisa të arrihet nënfunksioni i madhësisë së modulit - nënprogramet e gjuhës së programimit, të cilave u imponohen kërkesa të veçanta shtesë.

    Koncepti themelor dhe elementi funksional i teknologjisë së programimit të strukturuar është një modul.

    Një modul është një nënprogram, por i formatuar në përputhje me rregullat e mëposhtme:

    • 1. moduli duhet të ketë një hyrje dhe një dalje dhe të kryejë një funksion rreptësisht të paqartë, i cili përshkruhet nga një fjali e thjeshtë e zakonshme e gjuhës natyrore (rusisht) ose edhe një fjali pa kallëzues;
    • 2. moduli duhet të sigurojë kompilim, të pavarur nga modulet e tjera, me "harrimin" e të gjitha vlerave të brendshme të moduleve;
    • 3. një modul mund t'i thërrasë modulet e tjera me emrat e tyre;
    • 4. një modul i mirë nuk përdor variabla globale për të komunikuar me një modul tjetër, pasi atëherë është e vështirë të gjesh një modul që korrupton të dhënat. Kur përdorni variabla globale, duhet të komentoni qartë ato module që vetëm lexojnë dhe ato module që mund të ndryshojnë të dhënat;
    • 5. Moduli është i koduar vetëm me struktura standarde dhe komentohet tërësisht.

    Koncepti i strukturës së programit përfshin përbërjen dhe përshkrimin e lidhjeve të të gjitha moduleve që zbatojnë funksionet e pavarura të programit dhe përshkrimin e bartësve të të dhënave të përfshirë në shkëmbim, si midis nënprogrameve individuale, ashtu edhe hyrjes dhe daljes nga pajisjet e jashtme.

    Në rastin e një programi kompleks dhe të madh, është e nevojshme të zotëroni teknika të veçanta për marrjen e një strukture racionale të programit. Struktura racionale e programit siguron një reduktim pothuajse të dyfishtë në sasinë e programimit dhe një reduktim të shumëfishtë në shtrirjen dhe kohën e testimit, prandaj, redukton rrënjësisht kostot e zhvillimit.

    Është i përshtatshëm për të përshkruar vartësinë e moduleve nga një diagram hierarkie. Diagrami i hierarkisë pasqyron vetëm nënrenditjen e nënprogrameve, por jo rendin e thirrjes së tyre ose funksionimin e programit.

    Para se të hartoni një diagram të hierarkisë, këshillohet të hartoni specifikimet e jashtme të programit dhe të hartoni përshkrime funksionale të programit së bashku me përshkrimin e variablave - bartësit e të dhënave. Vëmendje e veçantë duhet t'i kushtohet hierarkisë së strukturuar të tipit të të dhënave dhe komentimit të tyre. Zbërthimi i një programi në nënprograme kryhet sipas parimit nga e përgjithshme në të veçantë, më e detajuar. Procesi i ndërtimit të një përshkrimi funksional dhe i hartës së një hierarkie është përsëritës. Zgjedhja e opsionit më të mirë është me shumë kritere.

    • - modulariteti i programeve;
    • - kodimi strukturor i moduleve të programit;
    • - Dizajnimi nga lart-poshtë i një hierarkie racionale të moduleve të programit;
    • - zbatimi nga lart-poshtë i programit duke përdorur cungët;
    • - zbatimi i planifikimit në të gjitha fazat e projektit;
    • - Kontrolli strukturor nga fundi në fund i sistemeve softuerike në tërësi dhe moduleve përbërëse të tyre.

    Modulariteti i programeve karakterizohet nga fakti se i gjithë programi përbëhet nga module. Disa grupe semantike të moduleve janë të përqendruara në skedarë të veçantë. Për shembull, modulet e redaktuesit të tekstit dhe modulet hierarkike të menusë mund të përqendrohen në skedarë të veçantë (Unit).

    Kodimi strukturor i moduleve të programit konsiston në hartimin e veçantë të teksteve të tyre. Moduli duhet të ketë një titull lehtësisht të dallueshëm me një koment që shpjegon funksionalitetin e modulit. Emrat e variablave duhet të jenë kujtues. Thelbi i variablave dhe rendi i vendosjes së informacionit në to duhet të shpjegohet me komente, kodi i modulit kodohet duke përdorur struktura standarde algoritmike duke përdorur dhëmbëzimet.

    Dizajni nga lart-poshtë i një hierarkie racionale të moduleve të programit është të izolojë modulet origjinale të nivelit më të lartë të hierarkisë, dhe më pas modulet vartëse.

    Zbatimi nga lart-poshtë i programit konsiston në zbatimin fillestar të një grupi modulesh të niveleve të larta, të cilat quhen thelbi i programit, dhe më pas gradualisht, në përputhje me planin, zbatohen modulet e niveleve më të ulëta. . Programet e nevojshme për lidhjen, modulet që mungojnë imitohen nga cungët.

    Zbatimi i planifikimit në të gjitha fazat e projektit ju lejon të planifikoni fillimisht si përbërjen e fazave ashtu edhe kohëzgjatjen e të gjitha fazave të punës. Ky planifikim lejon që zhvillimi të përfundojë në kohë me një kosto të caktuar zhvillimi.

    Kontrolli strukturor nga fundi në fund konsiston në respektimin e një plani testimi të paracaktuar, i cili mbulon periudhën nga zhvillimi i specifikimeve të jashtme, më pas tek specifikimet e brendshme dhe korrigjimi i tyre gjatë periudhës së zbatimit deri në testet e pranimit. Modulet që përbëjnë programin testohen si në momentin e shkrimit të kodit të tyre, ashtu edhe gjatë testimit offline, inspektimit të kodit të tyre burimor, gjatë testimit menjëherë pas lidhjes me kernel.

    Në programimin e strukturuar, programi përgjithësisht zbatohet (ndërtohet dhe testohet) nga lart poshtë. Së pari, një kernel shkruhet nga 20-30 module. Për të filluar testimin, modulet e nivelit më të ulët që mungojnë zëvendësohen me cung. Në fund të testimit të kernelit, cungët zëvendësohen me module të reja të gatshme, por nëse programi nuk ka përfunduar ende, të gjithë cungët e rinj të moduleve që mungojnë do të nevojiten për lidhjen e tij të suksesshme. Më pas testohet pjesa e montuar etj.

    Një cung është një modul tallës. Cung më i thjeshtë është një program ose funksion pa asnjë veprim. Një cung më kompleks mund të shfaqë një mesazh që thotë se ai apo ai modul ka funksionuar. Edhe cungët më komplekse mund të nxjerrin hyrjen në një skedar korrigjimi. Së fundi, cungët edhe më komplekse nxjerrin informacionin e testit të nevojshëm për të testuar modulet tashmë të implementuara. Shkrimi i cungjeve është punë e tepërt, por kërkon aftësinë e projektuesit për të mbajtur sa më shumë cungë sa më të thjeshtë të jetë e mundur dhe për të përfunduar testimin e pjesës së montuar paraprakisht të programit.

    Dizajni i strukturës së programit paraprihet nga zhvillimi i përshkrimeve funksionale të jashtme. Përshkrimet funksionale (algoritmet e ekzekutimit të programit) për të arritur perceptimin e tyre duhet të zbërthehen nga e përgjithshme në të veçantë. Ato gjithashtu duhet të përfshijnë përshkrime të formës së prezantimit dhe vëllimit të të dhënave të brendshme.

    Për të filluar, ekziston versioni i parë i diagramit të hierarkisë, i marrë duke ndarë thjesht funksionet e programit në nënfunksione, duke treguar variablat e nevojshme për të vendosur të dhënat në hapa të ndryshëm të përpunimit. Përkundrazi, ky opsion nuk është optimal dhe kërkohen përsëritje të projektimit për të përmirësuar topologjinë e qarkut.

    Çdo version i ri krahasohet me versionin e mëparshëm sipas kritereve të përshkruara këtu. Gjenerimi i variantit ndalon kur nuk ka përmirësime të mëtejshme.

    Fondi i kritereve të optimalitetit për skemat e hierarkisë është një ndihmë e nevojshme në optimizimin e skemave të hierarkisë dhe përbëhet nga kriteret e mëposhtme:

    • - plotësia e kryerjes së funksioneve të specifikuara;
    • - aftësia për të rimbushur shpejt dhe lirë funksionet e reja, të paspecifikuara më parë;
    • - dukshmëri për projektuesin e komponentëve të programit;
    • - pavarësi maksimale sipas të dhënave të pjesëve individuale të programit;
    • - aftësia për të lidhur programin me një skemë të gjerë hierarkie me shumë nivele me një lidhës (lidhës) specifik. Nëse fillon puna në një program të ri, është shumë e dobishme të ekzekutoni modelin e tij në një kompjuter në formën e cungëve bosh të modulit që nuk përmbajnë asnjë veprim;
    • - mjaftueshmëria e RAM-it. Këtu opsionet konsiderohen me përshkrimin e variablave statike dhe dinamike veçanërisht të strukturuara në nivele të ndryshme të skemës së hierarkisë. Verifikimi i përmbushjes së këtij kriteri kryhet me llogaritje me disa eksperimente makinerike;
    • - vlerësimi i ndikimit të topologjisë së skemës së hierarkisë në shpejtësinë e ekzekutimit të programit kur përdorni mbivendosje (ngarkimi dinamik i programit) dhe mekanizmi i paging kur zhvilloni një program që nuk mund të vendoset plotësisht në RAM;
    • - mungesa e moduleve të ndryshme që kryejnë veprime të ngjashme. Idealisht, i njëjti modul thirret në nivele të ndryshme të skemës së hierarkisë;
    • - Arritja gjatë zbatimit të programit të një plani të tillë rrjeti për punën e ekipit të programuesve, i cili siguron ngarkesë uniforme të punës së ekipit sipas datave kyçe të projektit;
    • - reduktimi gjithëpërfshirës i kostos së testimit të bërthamës tashmë të montuar të programit sipas datave kryesore të orarit të zbatimit të rrjetit. Karakterizohet nga thjeshtësia e cungëve të përdorur dhe cilësia e testimit përgjatë të gjitha rrugëve llogaritëse të moduleve. Ajo arrihet me zbatimin primar nga lart-poshtë të moduleve hyrëse dhe dalëse të programit me vonesë në zbatimin e degëve të mbetura të skemës së hierarkisë. Në mënyrë tipike, kostot e testimit përbëjnë rreth 60% të kostos totale të projektit. Një skemë e mirë e hierarkisë redukton kostot e testimit me 2-5 herë ose më shumë në krahasim me versionin origjinal;
    • - duke përdorur në këtë projekt sa më shumë module dhe biblioteka të zhvilluara në projektet e mëparshme me një sasi minimale të pjesëve të reja të prodhuara;
    • - shpërndarja e suksesshme e moduleve ndërmjet skedarëve dhe bibliotekave të programit të përpiluar;
    • - grumbullimi i moduleve të gatshme dhe bibliotekave të moduleve për përdorimin e tyre në të gjitha zhvillimet e reja.

    Si përfundim, mund të theksohet se qasja e strukturuar e programimit ka adoptuar dhe përdor shumë metoda nga fusha e projektimit të sistemeve teknike komplekse. Midis tyre janë qasja bllok-hierarkike për hartimin e sistemeve komplekse, fazat e krijimit të programeve, dizajni nga lart-poshtë, metodat e vlerësimit dhe planifikimit.

    Artikujt kryesorë të lidhur