Oosthoek Encyclopedie

Oosthoek (1985)

Gepubliceerd op 09-03-2021

Procarcinogeen

betekenis & definitie

o. (-genen), stof die niet zelf kankerverwekkend is, maar in het lichaam wordt omgezet in een stof die dat wel is.

programmatuur (Eng. software)

v., algemene ben. voor alle programma’s waarmee men een computer opdrachten kan geven.

(e) In de geautomatiseerde gegevensverwerking krijgt de apparatuur (computer met periferieapparatuur en eventueel netwerk) de gewenste werking door de programmatuur: een enkel programma of (doorgaans) een samenhangend stel programma’s. De vorderingen in de technologie van het programmeren hebben geen gelijke tred gehouden met de spectaculaire verbeteringen van de prijs/prestatieverhouding in de micro-elektronika waarmee de processoren, geheugens en in- en uitvoerorganen worden uitgerust. Zo kon men ca. 1960 bij een project rekenen dat de aanschaf van de apparatuur in de orde van 90 % van de kosten vormde, terwijl de andere voorzieningen 10 % beliepen. Voor toekomstige informatiesystemen rekent men veeleer met 10 % apparatuur- en 90 % programmatuurkosten, indien het om specifiek voor dat project te ontwikkelen programmatuur gaat.

De verbetering van de produktiviteit voor het ontwikkelen van programma’s is een algemeen probleem; spectaculaire doorbraken zijn op korte termijn niet te verwachten. De situatie in Nederland werd in een rapport van 1983 als volgt gekenschetst: ‘De Ned. situatie vertoont een aantal opvallende kenmerken. De werkwijzen bij het maken van programmatuur zijn ambachtelijk van aard, de daarbij toegepaste hulpmiddelen zijn kwalitatief van een laag niveau, het merendeel van de automatiseerders opereert beroepsmatig op een middelbaar niveau, kwaliteitsbeheersing van programmatuur levert problemen op evenals het ontwerpen van programmatuur die werkelijk aan gebruikersbehoeften voldoet’. In dit verband gebruikt men wel de term ‘software crisis’. Het

probleem treedt zeer in het bijzonder aan het licht bij micro-computers en personal computers. De apparatuur is relatief erg goedkoop geworden, maar werkelijk goede programma’s die op de eigen situatie zijn toegesneden, zijn doorgaans onbetaalbaar. Ook in grote organisaties komt het probleem voor den dag: elke toekomstige gebruiker van een informatiesysteem heeft zo zijn specifieke wensen; het daaraan individueel voldoen wordt voor de automatiseringsafdeling onmogelijk.

Er worden oplossingen gezocht en aangeboden langs verschillende wegen. Een eerste uitweg is het gebruik van een standaardpakket. Sommige toepassingen, b.v. hoofdboekhouding, zijn eigen aan haast alle ondernemingen. Het kopen van een goed doordacht functioneel programma moet voor heel veel bedrijven aantrekkelijk zijn. Een onderneming die zo’n pakket op de markt brengt kan de investering voor ontwikkelen en programmeren over vele kopieën van het programma verdelen. Op basis van deze gedachte is een uitgebreide en snel groeiende software-industrie ontstaan.

De verschillen tussen bedrijven en instellingen zijn echter van dien aard dat een standaardpakket zelden precies past. Men staat dan voor de keuze: of de organisatie aanpassen aan het pakket, of toch de kosten voor een eigen ontwikkeling aanvaarden. Bij kleine ondernemingen zal het eerste vaak mogelijk zijn. Verder ziet men steeds beter kans de pakketten modulair op te bouwen zodat verschillende aanpassingen kunnen worden gemaakt. Voorbeelden van pakketten die een brede toepassing hebben gevonden (verkoop in de orde van honderdduizenden exemplaren) zijn: programma’s voor tekstverwerking, financiële administratie, voorraadadministratie, facturering. Een klasse van zgn. multifunctionele programma’s waarbij (financiële) planning, prognoses en simulatie belangrijke elementen zijn staat bekend als spreadsheet-programma’s.

Een weg waarlangs oplossingen in grote ondernemingen wordt gezocht is het maken van een scheiding tussen hoofd- en allerlei nevenprocessen. De omvangrijke en complexe programma’s voor de informatievoorziening in de eerste categorie zijn de verantwoordelijkheid van de afdeling voor informatiesystemen. Het ontwerpen en maken van de programma’s in de tweede categorie wordt zoveel mogelijk naar de individuele gebruikersgroepen) verschoven. Verschillende ontwikkelingen in de programmatuur openen deze mogelijkheid tot het programmeren door niet-computerspecialisten. Allereerst als gevolg van het toepassen van veel omvattende gegevensbanken (zie aldaar) en bijbehorende gegevensbank-besturingssystemen (DBMS). Het systeem laat een opvraagtaal (query language) toe, die eenvoudig te hanteren is.

Met weinig instructie en oefening kan de gebruiker zijn wensen voor door het informatiesysteem te verschaffen gegevens zelf direct aan het systeem aanbieden via een terminal. Er is een scala van mogelijkheden naar meer omvattende, maar toch nog steeds gebruikersvriendelijke talen. De laatste noemt men wel programmeertalen van de vierde generatie. Overigens zijn lang niet alle talen in deze laatste categorie eenvoudig; vaak moet weer de hulp van een specialist worden ingeroepen, maar het programmeren zal aanzienlijk sneller verlopen dan met de hogere programmeertalen van een voorgaande generatie, zoals COBOL en PL/1. Deze winst gaat dan ten koste van de efficiëntie van de verwerking; dit is gezien de dalende kosten van de apparatuur eigenlijk geen bezwaar. Verder wordt er programmatuur ontwikkeld voor de toepassing: ‘het maken van programma’s’.

Men spreekt wel over de ‘automatisering van de automatisering’. De gedachte is dat de functionele specificaties van een te maken toepassing aan een systeem worden aangeboden en dat daaruit automatisch het programma voor de toepassing wordt gegenereerd (toepassings- of applicatiegenerator).

Zulke generatoren blijven beperkt tot klassen van toepassingen die betrekkelijk eenvoudig van aard zijn, maar die niettemin in administratieve toepassingen erg veel voorkomen.

Ook gelukt het geleidelijk meer door de computer ondersteunde hulpmiddelen te maken voor de professionele programmeur. Met zulke ontwikkelsystemen (programmers workbench) worden niet alleen veel bij het programmeren voorkomende routinewerkzaamheden door de computer overgenomen; ook kan de ijzeren logica van de machine allerlei controles op volledigheid en consistentie doen, terwijl in het geheugen de documentatie over voortgang en genomen beslissingen wordt bijgehouden. Hier ligt ook weer een toepassingsmogelijkheid voor kunstmatige intelligentie. Een ander belangrijk aspect in deze gehele ontwikkeling is overdraagbaarheid van programma’s (portabiliteit). Het is een voor de hand liggend verlangen, dat een programma ontwikkeld voor apparatuur A met hoofdbesturingssysteem X ook gebruikt kan worden op apparatuur B met hoofdbesturingssysteem Y, als het bedrijf met het laatste computersysteem dezelfde functionele toepassingswensen heeft als het bedrijf met het eerste apparatuur/programmatuurcomplex. Bij de huidige stand van zaken is deze overdraagbaarheid nog een relatief zeldzaam verschijnsel.

Vorderingen in de programmatuurwetenschap (en de toepassing daarvan in de praktijk) zullen hier nieuwe wegen moeten openen. Het geheel van alle ontwikkelingen leidt tot nieuwe disciplines die men wel software engineering noemt.

Het maken van originele programmatuur vereist veel inspanning en vergt grote investeringen bij het programmatuurhuis (softwarehouse) dat zich ermee bezig houdt. Het maken van kopieën van en eventueel gedeeltelijk bewerken van een programmaprodukt is daarentegen eenvoudig. Hier ligt dus een terrein voor plagiaat: de nabootser of bewerker biedt het produkt aan voor een veel lagere prijs dan het programmatuurhuis dat het geïnitieerd heeft. De wetgeving biedt nog onvoldoende waarborgen tot bescherming van de ondernemers in de software-industrie; de Ned. rechtspraak behelpt zich enigermate met interpretratie van de auteurswet.