- Hoved- og hjælpemoduler
- Modulær programmeringsfunktioner
- modularitet
- Funktionsdefinition
- Variablernes omfang
- Det er proceduremæssigt
- Modulære programmeringseksempler
- Modularitet i det virkelige liv
- Funktioner i Java
- Fordel
- Uafhængig projektprogrammering
- Effektiv programudvikling
- Flere brug af moduler
- Brugervenlighed af fejlsøgning og ændring
- Ulemper
- Alt for objektorienteret struktur
- Moduler for små
- Nedbrydes uden grund
- Applikationer
- C-sprog
- Referencer
Den modulære programmering er en teknik, der bruges til softwareudvikling, hvor programmet er opdelt i mange små blokke eller autonome komponenter kaldet moduler, som er håndterbare, logiske og funktionelle.
Modulet er en blok udsagn, der løser et bestemt problem. Hvert modul indeholder alt, hvad der er nødvendigt for at udføre sin egen funktionalitet og kan redigeres eller ændres uden at det påvirker resten af projektet.
Eksempel på løsning af et problem ved brug af moduler. Kilde: Kayau / CC BY (https://creativecommons.org/licenses/by/3.0)
Denne måde at programmere opnås ved at opretholde en permanent modulgrænseflade, der bruges af de andre softwarekomponenter for at få adgang til funktionerne i hvert modul.
Moduler pålægger logiske grænser mellem komponenter, hvilket forbedrer vedligeholdelsesevnen. De er integreret gennem grænseflader, der er designet på en sådan måde, at afhængigheden mellem de forskellige moduler minimeres.
Hoved- og hjælpemoduler
Et hovedmodul og flere sekundære moduler er det, der udgør den modulære programmering. Fra hovedmodulet foretages opkald til hjælpemodulernes funktioner.
Disse plug-ins findes som separate eksekverbare filer, der indlæses, når hovedmodulet kører. Hvert modul har et unikt navn tildelt i PROGRAM-sætningen.
Arbejdsholdene kan udvikle forskellige moduler separat uden at skulle kende alle modulerne i systemet. Hver af de modulære applikationer er knyttet til et versionnummer for at give udviklere fleksibilitet i vedligeholdelse af modulet.
Modulær programmeringsfunktioner
modularitet
En computer har ikke brug for en eksploderet version af koden for at køre den. Det er menneskelige kognitive begrænsninger, der tvinger dig til at skrive kode i mindre bidder.
Et program kan indeholde andre funktioner og kan også henvise til funktioner, der er i andre filer. Disse funktioner eller moduler er sæt sæt, der bruges til at udføre en handling eller beregne en værdi.
For at bevare enkelhed og læsbarhed i store og komplekse programmer bruges en kort hovedfunktion sammen med andre funktioner snarere end en lang hovedfunktion.
Ved at opdele et program i grupper af moduler vil hvert modul være lettere at forstå og således overholde de grundlæggende retningslinjer for struktureret programmering.
Funktionsdefinition
En funktion består af en erklæring om dens definition efterfulgt af kommandoer og udsagn. Den generelle form for en funktion er:
Funktionsnavn (parametererklæring) {
sætninger;
kommandoer;
tilbagevenden udtryk;
}
- Erklæringen af parametrene repræsenterer de oplysninger, der overføres til funktionen.
- Yderligere variabler, der specifikt bruges af funktionen, er defineret i sætningerne.
- Alle funktioner skal indeholde en returnerklæring.
Variablernes omfang
Variabler, der er erklæret inden for hovedfunktionen eller i brugerdefinerede funktioner kaldes lokale variabler. Disse har en værdi, når funktionen udføres, men deres værdi bevares ikke, når funktionen er afsluttet.
Variabler, der er erklæret eksterne til hovedprogrammet eller til brugerdefinerede funktioner kaldes globale variabler. Disse variabler kan tages fra enhver funktion, der er inde i programmet.
Det er proceduremæssigt
Modulær programmering er ret proceduremæssig, da den er helt orienteret til at skrive kode til funktioner uden at tage hensyn til dataene.
Modulære programmeringseksempler
Modularitet i det virkelige liv
Antag et hus, der har elektricitet, med flere stikkontakter på væggene. Dette system giver dig mulighed for at tilslutte forskellige elektriske enheder, f.eks. Mikroovn, vaskemaskine, tørretumbler osv.
Disse enheder er designet til at udføre deres specifikke opgave, når de er tilsluttet og tændt, uanset hvor de befinder sig.
Modulerne i en applikation skal følge denne samme filosofi. Dette betyder, at de kun skal udføre deres specifikke opgave, uanset hvilken del af applikationen, de er i, eller endda hvilken applikation, de er forbundet til.
Ligesom en elektrisk enhed let kan tages ud af stikkontakten, skal et modul designes på en sådan måde, at det let kan fjernes fra en applikation.
Ligesom fjernelse af en elektrisk enhed ikke påvirker funktionaliteten af de andre tilsluttede enheder, bør fjernelse af moduler fra en applikation ikke påvirke funktionaliteten af de andre moduler i den applikation.
Funktioner i Java
I Java-moduler skrives som uafhængige funktioner. For eksempel har du muligvis en funktion eller kodeblok til at beregne en studerendes GPA baseret på deres karakterer i alle de kurser, de har taget.
Funktionen skal hente listen over karakterer som input og derefter returnere det beregnede karaktergennemsnit:
Denne funktion kaldes CalculAverageNote. Den modtager som input en liste over noter ved hjælp af en matrix af datatype dobbelt og returnerer det beregnede gennemsnit.
I funktionen initialiseres den lokale variable sum til nul, og derefter ved hjælp af en for-loop tilføjes alle kvalifikationer til summen. Endelig divideres det opnåede beløb med antallet af noter, der returnerer den resulterende værdi.
Hvis inputmatrixen havde noterne 3.5, 3.0 og 4.0, efter at have tilføjet dem, ville den have summen værdien på 10,5 og derefter ville den blive divideret med 3, fordi der er tre toner. Funktionen returnerer værdien 3.5.
Fordel
Uafhængig projektprogrammering
Flere programmerere kan arbejde på det samme projekt, hvis det er opdelt i moduler. Forskellige programmerere kan uafhængigt designe forskellige programmoduler, hvilket kræves til et stort og komplekst program.
Effektiv programudvikling
Programmer kan udvikles hurtigere, da små, selvstændige moduler er lettere at forstå, designe og teste end store programmer.
Programmereren kan levere den nødvendige input og kontrollere, at modulet er korrekt ved at undersøge dets output.
Flere brug af moduler
Kode, der er skrevet til et program, er ofte nyttig i andre. Modulær programmering gør det muligt at gemme disse sektioner til fremtidig brug. Da koden kan flyttes, kan de gemte moduler forbindes til ethvert andet program, der opfylder input- og outputkravene.
Ved monolitisk programmering er sådanne kodesektioner indlejret i programmet og er ikke tilgængelige til brug af andre programmer.
Brugervenlighed af fejlsøgning og ændring
Et modul er mindre end et komplet program, så det er lettere at teste. Hvert modul kan skrives og testes separat fra resten af programmet. Når et modul er testet, kan det bruges i et nyt program uden at skulle teste det igen.
Når et program skal modificeres, forenkler modulær programmering jobbet. Nye eller fejlsøgte moduler kan knyttes til et eksisterende program uden at ændre resten af programmet.
Ulemper
Alt for objektorienteret struktur
Denne programmering bruger grænseflader, hvilket er en ret effektiv idé. For at drage fordel af det kommer nogle rammer med et komplet sæt udskiftelige klasser. For at håndtere persistens kan der for eksempel være flere klasser, der implementerer en persistens-grænseflade.
Integrerede udviklingsmiljøer (IDE'er) bliver dog forvirrede over dette. For eksempel kan du forsøge at finde kilden til en metode, og IDE ved ikke, hvilken metode du vil se, hvorved der vises en lang liste over filer, hvor en metode med det navn findes.
Moduler for små
Der er mange moduler, der kun indeholder en meget lille funktion. Hvert modul kræver ekstra analyse og behandlingstid ud over dets overskrift i kode.
Derfor vil brug af mange små moduler tilføje et overhead til kompilationssystemet, hvilket øger pakkestørrelsen.
Nedbrydes uden grund
Nogle koder ændrer næsten aldrig. I disse tilfælde giver det måske ikke meget mening at forsøge at få det til at se renere ud eller med abstrakt logik, hvis det bare fungerer fint at bruge det.
Der er koder, der ikke ser for smukke ud, men alligevel har de ikke ændret sig meget i de senere år. Der er ingen grund til at nedbryde kode, der aldrig har ændret sig og allerede fungerer godt til moduler.
Applikationer
Modulær programmering er kun et koncept. Dens praksis kan anvendes på et hvilket som helst programmeringssprog, især dem af proceduremæssig art, der har et separat udarbejdet program.
Komponentbiblioteker bygget fra separat kompilerede moduler kan kombineres til et sæt ved hjælp af et programmeringsværktøj kaldet en linker.
Navnene på funktionerne i de forskellige moduler skal være unikke for at lette deres adgang i tilfælde af at de funktioner, der bruges af hovedmodulet, skal eksporteres.
Blandt de programmeringssprog, der understøtter konceptet modulær programmering, er C, Ada, PL / I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java (pakker betragtes som moduler), Perl osv.
C-sprog
Modulær programmering kan anvendes på C-sprog, fordi det gør det muligt at afhjælpe en stor vanskelighed ved at opdele den i flere moduler.
Hvert af disse moduler løser et bestemt problem, mens hovedprogrammet, som er sættet af sådanne procedurer, løser problemet som helhed.
Hver funktion defineret i C er som standard tilgængelig globalt. Dette kan gøres ved at inkludere en headerfil, hvor implementeringen af funktionen er defineret.
Som et eksempel ønsker vi at erklære en stakedatatype og også at implementeringen og datastrukturen er skjult for brugerne.
Dette kan gøres ved først at definere en offentlig fil kaldet stack.h, som vil indeholde de generiske data med stakeldatatypen og de funktioner, der understøttes af stakedatatypen.
stack.h:
udvendig stack_var1;
ekstern int stack_do_something (tom);
Nu kan du oprette en fil kaldet stack.c, der indeholder implementeringen af stakeldatatypen:
Referencer
- CIO Wiki (2019). Modulær programmering. Taget fra: cio-wiki.org.
- IT-definitioner (2020). Modulær programmering. Taget fra: defit.org.
- New Mexico Tech (2020). Modulær programmering med funktioner. Taget fra: ee.nmt.edu.
- Christian Maioli (2020). 3 kreative teknikker til skrivning af modulær kode. Tech Beacon. Taget fra: techbeacon.com.
- Geeks for Geeks (2020). Modulær tilgang til programmering. Taget fra: geeksforgeeks.org.
- Undersøgelse (2020). Modulær programmering: Definition og anvendelse i Java. Taget fra: study.com.