Programmabsn.nl

Programma

Het programma is de definitie van het pad om een ​​bepaald doel te bereiken rekening houdend met de beschikbare middelen, de omgevingsomstandigheden, de te ondernemen activiteiten en de tijd die nodig is om ze uit te voeren. In de breedste zin is het de operationele definitie van een plan of project.

Beschrijving

In engere zin is het een takenlijst. Deze laatste betekenis is degene die het meest overeenkomt met de term die wordt gebruikt op technologisch gebied (computerwetenschap en andere).

De betekenis van het begrip is dan ook zeer ruim en hangt af van de context waarin het wordt gebruikt. Een paar voorbeelden:

  • het programma van een conferentie, lijst van geplande interventies, vergezeld van tijd, klaslokaal, spreker, enz.;
  • het tekstverwerkingsprogramma, in een computeromgeving;
  • het productieschema van 26-03-2006, volgens het XYZ-productieplan;
  • het programma voor synthetische stoffen, in een elektrische wasmachine;
  • het ruimteprogramma, opgevat als de reeks activiteiten, middelen en tijden die nodig zijn om een ​​sonde te lanceren.

Programmeren is dus het formuleren van een of meer programma’s om de geplande doelstellingen te bereiken.

Programmeren

Programmeren - php code
Programmeren – php code

Programmeren is in de informatica een implementatiefase van de gehele softwareontwikkelingscyclus (zie software engineering) met als uiteindelijk doel te voldoen aan de functionele specificaties die door de klant worden vereist volgens een vooraf gedefinieerde structurele analyse van het softwareproject; meer specifiek is het de reeks activiteiten en technieken die een of meer gespecialiseerde mensen (team), programmeurs of ontwikkelaars (ontwikkelaar), uitvoeren om een ​​programma of applicatie te maken, d.w.z. software die door een computer moet worden uitgevoerd, door de relatieve codebron in een specifieke programmeertaal; samen met de systeemkant en datawetenschap vormt het de tak of lijn van productiviteit in bedrijfs-IT, geavanceerde tertiaire genoemd. De meest gebruikte programmeertalen zijn C++, Python, Java , php en JavaScript. De keuze van de te gebruiken taal is gebaseerd op het uit te voeren project. Over het algemeen worden ook IDE’s (teksteditors) gebruikt en de meest gebruikte IDE’s zijn: Visual Studio Code, Eclipse en NetBeans.

De basisprincipes van programmeren geven de basiskennis aan die een programmeur moet hebben om in elke programmeertaal te programmeren. Om regels code in programmeertalen te schrijven is het voldoende dat een programmeur een normale tekstverwerker gebruikt, of een ad hoc programma genaamd editor, vaak opgenomen in een geïntegreerde ontwikkelomgeving (IDE). In het tweede geval identificeert de software automatisch de meest triviale fouten (bijv. syntaxisfouten) die een programmeur kan begaan.

De stappen waarmee een efficiënt programma wordt ontwikkeld, zijn voor bijna alle programmeercontexten (bedrijven, hobby’s, werk, etc.) vergelijkbaar. De eerste fasen zijn nauw verbonden met de logica van wat er gaat worden gemaakt en hoe het werkt, terwijl de laatste zijn gericht op de specifieke programmeertaal die moet worden gebruikt.

De eerste bewerking die moet worden uitgevoerd voor het maken van een programma is om zo precies en nauwkeurig mogelijk te definiëren welk probleem we willen oplossen. Dit geldt zowel voor een eenvoudige wiskundige functie als voor een complexe database. De invoer die het programma ontvangt, is gerelateerd aan de uitvoer die we na verwerking willen retourneren. Deze fase kan een grote complexiteit opleveren vanwege het abstracte werk dat de programmeur nodig heeft om zich het eindresultaat en de formalisering ervan voor te stellen.

Ontwerp van een programma

Zodra de definitie van het op te lossen probleem is overwonnen, is het noodzakelijk om mogelijke oplossingen te ontwerpen, ze te vergelijken en de meest efficiënte te vinden (onthoud dat een inefficiënte oplossing voor een bepaald probleem nuttig kan zijn voor de ontwikkeling van andere programma’s). Om het werkelijke verschil tussen de ene oplossing en de andere te vergelijken, kunnen twee verschillende tools worden gebruikt:

Een daarvan is het stroomschema: met een heel intuïtieve grafiek kun je een proces in alle fasen die het kenmerkt illustreren. Elke fase is met de andere verbonden door stroomlijnen die de richting van het proces binnen het programma aangeven.
Een effectieve ontwerpmethode is pseudocode, een vorm van coderen die lijkt op de taal die door de programmeur wordt gesproken. Het opstellen ervan is vergelijkbaar met een reeks bewerkingen die worden gedefinieerd wanneer een bepaalde actie moet worden uitgevoerd. Het schrijven van de pseudocode moet minstens zo gedetailleerd zijn als de uiteindelijke code, maar er is geen precieze syntaxis vereist, zodat de programmeur zich kan concentreren op de belangrijkste problemen van het programma.

Keuze van algoritme

Om een ​​efficiënt programma te maken, moet het algoritme zorgvuldig worden ontworpen. We kunnen bijvoorbeeld een algoritme maken dat de volgende stappen uitvoert:

  • Bekijk een lijst met nummers en herken de minderjarige;
  • Wijs het kleinste getal toe aan variabele X;
  • Print variabele X;

Het is belangrijk om te specificeren dat de lijst met stappen duidelijke, nauwkeurige en ondubbelzinnige instructies moet bevatten, d.w.z. waarvan de betekenis niet afhankelijk is van de context waarin deze is geschreven, maar duidelijk herkenbaar is.

Computerprogramma’s zijn veel complexer dan een lineair proces zoals het optellen van twee getallen. Om het programma een complexere structuur te geven, worden de volgende tools gebruikt:

  • Branches/Takken bestaan ​​uit het voorzien van de code van functies die de prestaties van het algoritme kunnen veranderen, afhankelijk van het resultaat van de uitgedrukte voorwaarde.
  • Lussen zijn reeksen instructies die herhaaldelijk worden uitgevoerd totdat aan een bepaalde voorwaarde is voldaan. Elke herhaling wordt een iteratie genoemd.

Programma’s kunnen ook in secties worden verdeeld, zodat verschillende taken kunnen worden uitgevoerd via eenvoudigere opeenvolgingen van stappen. Hiervoor is het programma opgedeeld in functies. De deskundige programmeur slaat deze ontwikkelingsfase vaak over in termen van algoritme en gaat direct naar de volgende fase en denkt direct na over de algoritmische oplossing van het gegeven probleem in termen van codeertaal of programmeertaal of in pseudocode.

Er zijn verschillende programmeertechnieken, de meest voorkomende en gebruikte zijn de volgende:

  • Ongestructureerde programmering – waarbij het programma bestaat uit een enkel blok instructies (hoofd genoemd) die opeenvolgend worden uitgevoerd.
  • Procedureel programmeren – waarin er blokken met instructies zijn die fungeren als subprogramma’s en goed gedefinieerde functies uitvoeren.
  • Modulair programmeren – waarbij u procedures kunt gebruiken die door andere programma’s beschikbaar zijn gesteld en hen hun eigen programma’s laat gebruiken.
  • Object Oriented Programming (OOP) – waarbij “objecten” worden gemaakt die autonoom kunnen functioneren of met elkaar kunnen communiceren. Elk object heeft op zichzelf specifieke eigenschappen en functies (als we een auto als object aannemen, is een kenmerk de kleur of het merk en zullen de functies versnellen of vertragen). Elk paradigma kan één of meerdere programmeertalen exploiteren met een laag, gemiddeld of hoog abstractieniveau.

Programmeertalen

Er zijn veel programmeertalen en ze zijn voornamelijk onderverdeeld in twee categorieën: geïnterpreteerd en gecompileerd.

De meest voorkomende geïnterpreteerde talen zijn:

  • JavaScript
  • PHP (o.a. WordPress)
  • Robijn
  • Python
  • Perl
  • BASIC, hoewel er verschillende gecompileerde en pseudo-gecompileerde versies zijn, zoals Turbo Basic en Visual Basic.
Javascript
Code – javascript

Daarnaast worden ook shellscripts (zogenaamde batchbestanden) en andere scripts die op internet worden gebruikt (Jscript, VBScript, Batch …) geïnterpreteerd. De code van een geïnterpreteerd programma wordt opgeslagen zoals het is en wordt vervolgens gelezen door een interpreter, een programma dat op uw besturingssysteem draait. Aan de andere kant vereisen gecompileerde programmeertalen dat de code, eenmaal voltooid, wordt verwerkt door een compiler die deze omzet in machinetaal, waardoor deze door de CPU kan worden uitgevoerd.

De meest bekende gecompileerde talen zijn:

  • C.
  • C ++ (objectgeoriënteerde taal afgeleid van C)
  • Pascal (meestal gebruikt voor educatieve doeleinden)
  • Cobol

Geïnterpreteerde programma’s zijn langzamer maar gemakkelijker te maken en te draaien op veel besturingssystemen, zolang ze dezelfde tolk hebben en het dialect van de taal gebruikelijk is. Gecompileerde talen hebben in plaats daarvan vaak ISO-standaarden, of in ieder geval universele regels, die je in staat stellen een programma te compileren zonder aanpassingen op meerdere architecturen, zelfs vanaf een enkele machine, op voorwaarde dat je een geschikte compiler hebt.

Java is pseudo-gecompileerd, dat wil zeggen, het wordt vertaald in een tussentaal, bytecode genaamd, wat een soort machinetaal is, die vervolgens wordt doorgegeven aan de tolk, die beschikbaar moet zijn voor het type machine dat u wilt gebruiken.

Visual Basic is daarentegen geen standaardtaal, maar een ontwikkelomgeving die is gemaakt om programma’s te ontwikkelen in een objectgeoriënteerde Basic die door Microsoft is ontwikkeld en als zodanig alleen beschikbaar is op hun besturingssysteem. Aangezien er geen erkende standaard is, is compatibiliteit tussen latere versies niet gegarandeerd en is het niet mogelijk om deze volledig te gebruiken op andere besturingssystemen of CPU’s dan die welke door Microsoft worden ondersteund.

Programma codering

In deze fase vindt de keuze van het programmeerparadigma en de relatieve programmeertaal waarmee het project moet worden ontwikkeld (bijv. Java, C ++, BASIC, Perl, Python, enz.) plaats, waarbij wordt overgegaan van stroomdiagrammen of pseudocode naar een meer rigoureuze syntax en specificatie van de gekozen taal, opstellen van de broncode.

In dit verband stelt een stelling van de theoretische informatica (de stelling van Böhm-Jacopini) dat voor de codering van het algoritme in de broncode van een bepaalde taal het juiste gebruik, eventueel gecombineerd, van slechts drie structuren voor het beheersen van de uitvoeringsstroom: de volgorde of het blok van instructies, selectie en iteratie op basis van het gebruik van variabelen, constanten, gegevenstypen, pointers, rekenkundige en logische operatoren, gegevensstructuren, functies, parameters, standaardinvoerinstructies, standaarduitvoer en standaardfouten enz. .

De coderingsbewerking is degene die het meest onderhevig is aan fouten van logische en syntactische aard. In theorie zou het programma in dit stadium klaar kunnen zijn, maar in werkelijkheid vertoont het in bijna alle gevallen fouten (bugs), die in de volgende fase zullen worden geanalyseerd. Doorgaans vindt de ontwikkeling van een applicatie plaats op de pc van de ontwikkelaar, die een eerste testfase kan uitvoeren om de goedheid of anderszins van de uitvoer van het uitgevoerde programma te verifiëren.

Soms wordt een softwareproject uitgevoerd door een gemeenschap van gebruikers die op het internet actief zijn via nieuwsgroepen, zoals bijvoorbeeld gebeurt voor verschillende GNU / Linux-distributies. Wanneer een softwareproject een ander op hetzelfde type programma ontwikkelt, maar uitgevoerd door een andere gemeenschap, wordt dit een fork genoemd.

Foutopsporingsactiviteiten (debgugging)

Als het programma eenmaal is voltooid, komen vaak programmeerfouten of bugs voor die voortkomen uit verschillende redenen die kunnen optreden tijdens de ontwikkeling en uitvoering van een code. Deze fouten kunnen in wezen in drie hoofdcategorieën worden ingedeeld: syntaxisfouten, logische fouten en runtime-fouten. Al deze fouten moeten noodzakelijkerwijs worden geëlimineerd op straffe van storing of blokkering van de uitvoering van het programma zelf.

De verificatie- en ontwikkelingsfase van het programma heeft tot doel de gevonden fouten te vinden en te corrigeren en wordt debuggen genoemd. Dit is een zeer lange en belangrijke fase waarin de programmeur de goedheid van zijn werk verifieert. Het oplossen van een bug kan leiden tot nieuwe fouten, dus je moet heel voorzichtig zijn.

Om te voorkomen dat een programma debuggen dat te complex en gearticuleerd is, verdient het de voorkeur om een ​​prototype te maken, dat wil zeggen een versie van het eindresultaat die op zich niet alle functies biedt die door het oorspronkelijke project worden geboden, waardoor een grotere snelheid van correctie van de belangrijkste fouten. Aan het einde van deze fase hebben we het eindproduct. De handelingen die tijdens de ontwikkeling worden uitgevoerd, moeten naar behoren worden gedocumenteerd om een ​​toekomstige wijziging gemakkelijker te maken.

Voorbeeld: optellen van twee getallen

Het eerste educatieve programma dat een getrainde programmeur schrijft is meestal ‘Hello world’. Een ander eenvoudig en intuïtief programma is zeker het programma dat, met twee getallen als invoer, hun som als uitvoer retourneert. Afhankelijk van de gebruikte programmeertaal verandert de structuur en wordt op een andere manier gearticuleerd.

  • In een programmeertaal op hoog niveau bevat het programma een instructie waarvan de betekenis is: in de geheugenplaats C moet een getal worden ingevoerd dat gelijk is aan de som van de getallen die aanwezig zijn op de plaatsen A en B.
  • In een assembleertaal worden drie geheugenlocaties gedefinieerd die zijn gekoppeld aan drie symbolische namen A, B, C. Tijdens de uitvoering laadt het programma het nummer dat aanwezig is in A in de CPU en voegt het toe aan het nummer op positie B, waarbij het resultaat wordt onthouden in C. CPU is de afkorting van ‘central processing unit’, dit is Engels voor ‘centrale verwerkingseenheid’, ook wel de processor genoemd.
  • In een machinetaal laadt een bepaald commando x1 een getal dat zich op een geheugenlocatie y1 bevindt (meestal gedefinieerd door een hexadecimaal cijfer) in de CPU. Het x2-commando voegt het nummer op geheugenlocatie y2 toe aan het nummer dat eerder is geladen. Tenslotte draagt ​​een commando x3 het verkregen resultaat over naar een geheugenlocatie y3 en maakt het beschikbaar voor nieuwe bewerkingen.

Softwareontwikkeling in de zakelijke omgeving

Het ontwikkelen van een programmasysteem binnen een bedrijf maakt deel uit van een veel breder analyse- en ontwerpproces waarbij doorgaans een heel team van analisten/ontwikkelaars betrokken is. Het resultaat moet niet alleen efficiënt zijn, maar ook voldoen aan specifieke wensen van de bedrijfsactiviteit waarvoor het is ontworpen.

In eerste instantie gaan we verder met een gedetailleerde analyse van de vereisten die de creatie van het programma beoogt op te lossen (behoeften), ook wel functionele analyse genoemd. De analist moet deze informatie voorstellen en in de ontwerpfase passende voorstellen opstellen. Het analyse-outputdocument heeft verschillende namen: functionele specificatie, specificaties, eisenlijst, maar er worden vaak Engelse termen gebruikt. Vereisten betekenen vaak niet alleen functies, maar ook: prestaties, gebruiksvoorwaarden, technologie en hardwarespecificaties, en meer. In de logica van projectmanagement kan het document met de definitie van vereisten ook vergezeld gaan van die met betrekking tot: tijden, kosten, verantwoordelijkheden, risico’s, enz.

Zodra de analyse is voltooid, gaan we over naar de daadwerkelijke ontwerpfase van het nieuwe systeem. Bij deze operatie zijn een groot aantal mensen en ideeën betrokken. De beste projecten worden geselecteerd en ontwikkeld met het oog op economisch gewin en efficiëntie. Nadat het beste project is goedgekeurd, gaan we over tot de daadwerkelijke ontwikkeling. Deze bestaat uit de aankoop van het softwaremateriaal (en eventueel het hardwaremateriaal) dat nodig is om de werking van het nieuwe systeem te verifiëren. Daarna volgt de testfase van de applicatie door een onafhankelijk team dat eventuele fouten of bugs doorstuurt naar de ontwikkelaars voor hun oplossing.

Voor veel bedrijven is de software op de markt vaak niet geschikt voor hun behoeften en is het noodzakelijk om aangepaste programma’s te ontwikkelen of bestaande aan te passen. Voor dit doel zijn er andere bedrijven gespecialiseerd in dit soort diensten die daarom zijn toevertrouwd aan outsourcing (IT-adviesbureaus).

Installatie

Zodra het nieuwe systeem is gemaakt en geverifieerd, wordt het binnen het bedrijf geïnstalleerd en is het volledig operationeel. Deze impact kan traumatisch zijn voor een bedrijf dat gewend is aan oude systemen, daarom gaan we op verschillende manieren te werk, afhankelijk van het geval:

  • Directe installatie, waarbij u het oude systeem deactiveert en vervangt door het nieuwe dat u zojuist hebt gemaakt. Als een dergelijke vervanging problemen heeft die tijdens de ontwikkeling niet zijn voorzien, is er geen back-up van oude programma’s, wat enorme problemen veroorzaakt. Deze oplossing wordt alleen aangenomen als er geen geldige alternatieven zijn.
  • De parallelle installatie, waarin het voorziene werk voor het nieuwe systeem in gelijke delen wordt verdeeld op het en op het verouderde, om een ​​mogelijk probleem van het nieuwe op te lossen door tijdelijk het oude te gebruiken. Wanneer het nieuwe systeem een ​​behoorlijk niveau van betrouwbaarheid bereikt, vervangt het het oude volledig.
  • De getrapte installatie, waarin het nieuwe systeem geleidelijk wordt ingevoerd, naarmate de gevonden fouten zijn opgelost, vervangt het oude in verschillende fasen. Door deze oplossing aan te nemen, zullen eventuele problemen minder rampzalige gevolgen hebben voor slechts één fase. Nadeel van dit type installatie is de zeer lange tijd.
  • De proefinstallatie, waarbij het nieuwe systeem slechts voor een klein deel van de bedrijfsactiviteiten wordt gebruikt en, bij regelmatig functioneren, wordt uitgebreid naar het hele bedrijf. In geval van problemen zullen ze beperkt blijven tot dat deel van de activiteit dat het nieuwe systeem overneemt, onverminderd de volledige bedrijfsactiviteit.

Implementatie

Na installatie zal het programma het bedrijf een in ieder geval onderhoud vergen service bieden, waarbij de ondervonden problemen worden opgelost en functionele wijzigingen worden aangebracht om de prestaties van de programma’s te verbeteren.

Programmeren voor internetservers

Gebieden van programmeren

Afhankelijk van het beoogde gebruik van de code zijn er verschillende soorten programmering, zoals:

  • Programmering van applicaties voor vaste apparaten (personal computers, werkstations, mainframes enz …);
  • Programmering voor mobiele apparaten (mobiele telefoons, smartphones, PDA’s, laptops, tabletcomputers, enz.);
  • Programmering voor servers;
  • Programmeren voor embedded systemen;
  • Programmeren van besturingssystemen (bijvoorbeeld: Linux, Windows);
  • Programmeren van cloud backup (bijvoorbeeld: OneDrive, Dropbox)
  • Socket programmering;
  • Webprogrammeren;
  • Gelijktijdige programmering;
  • E-mail en webmail (bijvoorbeeld: Hotmail, Gmail, Proximus aanmelden, Yahoo, KPNmail, telenet aanmelden);
  • Programmeren van videogames (bijvoorbeeld: MineCraft, Fortnite, Bangalore, Revenant, Lifeline).