Wat valt er onder de term software?
Onder software verstaan we alle programma’s en applicaties die ervoor zorgen dat een informatiesysteem naar behoren werkt. Dit zijn niet-materiële componenten, in tegenstelling tot hardware . Software kan je dus niet aanraken, maar is wel nodig om een informatiesysteem taken te laten uitvoeren. Deze programma’s zorgen er onder andere voor dat een computer gebruikt kan worden voor tekstverwerking, om te surfen op het internet of om video’s te bewerken.
Hoe verschillen software op technisch vlak van elkaar?
Software kan op verschillende manieren worden ingedeeld in categorieën. Meestal wordt er een onderscheid gemaakt tussen deze vier soorten:
- Systeemsoftware: hieronder vallen de operating systems, of besturingssystemen. Denk hierbij aan Windows, Linux of MacOS. Deze software wordt door eindgebruikers (en zelfs programmeurs) niet bewust gebruikt, maar is wel essentieel voor de werking van het apparaat. Systeemsoftware vormt het fundament waarop de andere software gebouwd wordt. Vandaar dat je bij het installeren van andere software goed moet kijken naar de compatibiliteit met de system software. Een applicatie voor MacOS past niet (altijd) op Windows of Linux, en vice versa. Dit wordt incompatibiliteit genoemd.
- Applicatiesoftware: dit zijn de softwareprogramma’s voor eindgebruikers. Iedereen die gebruik maakt van een computer, tablet of smartphone doet dat via dit soort front-end-applicaties. Gebruikers hoeven zich hierdoor niet in de technische details te verdiepen om een taak uit te voeren op het apparaat. Application software zorgt er bijvoorbeeld voor dat er geen codering nodig is om een 3D-model uit te tekenen op de computer. Voorbeelden van application software in het bedrijfsleven zijn:
- HRM-software
- DMS-software
- ERP-software
- CRM-systemen
- CAD-systemen
- BPM-software
- Software voor Content Management bij narrowcasting
- Software voor Quality management
- Programmeersoftware (of coding software): met dit soort software kunnen andere, front-end software-programma’s ontworpen worden. Deze software wordt dus alleen gebruikt door ontwikkelaars. Met behulp van programmeertalen zoals Java, Python, PHP en C++ kunnen ontwikkelaars programma’s schrijven, testen en bugs oplossen.
- Driver software (Drivers): dit soort software wordt ook wel onder ‘system software’ geschaard, omdat drivers zo nauw verwant zijn met besturingssystemen. Drivers ‘vertalen’ de opdrachten van een besturingssysteem voor de hardware. Zo begrijpt een printer bijvoorbeeld welke documenten moeten worden geprint, en op welk moment. De meeste besturingssystemen hebben ingebouwde drivers voor de bediening van de muis, het toetsenbord en de printer. Soms moeten deze drivers (bij het eerste gebruik) echter nog geïnstalleerd worden.
Software met verschillende programmeertalen
De ontwikkeling van software gebeurt via programmeertalen. Als eindgebruiker merk je hier niet veel van, maar technisch gezien verschillen de programmeertalen van elkaar. De meest voorkomende programmeertalen zijn:
- Java: dit is een vrij eenvoudige programmeertaal, en daardoor een van de meest gebruikte. De taal is vooral geschikt voor webapplicaties en applicaties op mobiele telefoons, maar wint ook steeds meer aan populariteit voor de ontwikkeling van programma’s op servers en voor computerspellen.
- C en C++: deze programmeertalen zijn erg breed inzetbaar. C werd oorspronkelijk ontwikkeld om besturingssoftware te ontwikkelen. Vandaar dat het een taal is die nauw aansluit bij de meeste hardware. Bijna alle bestaande hardwarecomponenten ‘begrijpen’ C. Later is de programmeertaal uitgebreid en vooral de opvolger, C++, biedt uitgebreide mogelijkheden. De talen zijn wel erg foutgevoelig, en die fouten worden niet erg snel opgemerkt. Vandaar dat vooral erg technische mensen er gebruik van maken.
- Python: deze programmeertaal is ontwikkeld met het oog op leesbaarheid. De meeste regels zijn vergelijkbaar met zinnen uit de gewone taal (in het Engels). Vandaar dat Python veel gebruikt wordt door wie net begint met programmeren. Python is breed inzetbaar, maar specifiek geschikt voor de uitvoering van taken op een besturingssysteem, voor wiskundige en wetenschappelijke programma’s, en voor webapplicaties.
Wist je dat? Python is ontwikkeld door de Nederlander Guido van Rossum. Hij vernoemde de programmeertaal naar zijn favoriete film: Monty Python’s Flying Circus.
- Javascript: een programmeertaal die vooral gebruikt wordt om webpagina’s interactief te maken en om webapplicaties te ontwikkelen. Niet te verwarren met Java.
- PHP: deze programmeertaal, voluit Hypertext Preprocessor genaamd, is eenvoudig te gebruiken voor beginners, maar biedt uitgebreide mogelijkheden. De taal wordt veel gebruikt voor de creatie van dynamische webpagina’s op webservers.
Opmerking: programmeertalen zijn geschikt voor programmeurs die hun eigen software schrijven, maar dit betekent niet dat alle bestaande systemen zomaar aangepast kunnen worden. Hiervoor is kennis van de broncode nodig. Deze broncode wordt alleen vrijgegeven bij open-source-software . Closed-source-pakketten laten externen normaal gesproken niet toe de broncode aan te passen, tenzij met een broncode-editor, zoals VS-code . Deze toegang is beperkt tot een aantal essentiële taken, zoals debugging.
Waar moet een bedrijf op letten bij de aanschaf van software?
De aanschaf van software kan een lastige zaak zijn voor een bedrijf. Vooral op het vlak van applicatiesoftware is er vaak zoveel keuze dat het moeilijk is door de bomen het bos nog te zien. We bespreken een aantal belangrijke overwegingen. Voor extra advies en hulp bij het selectietraject kan je ook telefonisch terecht bij ICT Portal: +31 (0)203690457.
Best of breed of toch maar beter een monolithisch systeem?
Een belangrijke afweging bij de inrichting van het softwarelandschap is de vraag of het bedrijf meerdere gespecialiseerde systemen (best of breed ) of één overkoepelend systeem (monolithisch) gaat implementeren. Best of breed biedt het voordeel dat het om een pakket gaat dat volledig ingericht is op een niche, bijvoorbeeld tijdregistratie. Dit garandeert dus de meest optimale uitvoering van deze taak. Aan de andere kant kan het duur zijn om voor elke gespecialiseerde taak het meest geavanceerde systeem aan te schaffen, en loopt de integratie tussen al deze systemen niet altijd van een leien dakje.
Maatwerk versus standaardsoftware
Een bedrijf wil dat de software als gegoten past bij de bedrijfsprocessen. Een logische eis, maar de vraag is in hoeverre dit binnen de financiële en praktische mogelijkheden valt. Om een volledig passend softwarepakket te implementeren, moet er in principe voor maatwerk worden gekozen. Het nadeel hiervan is dat maatwerk duur is, de ontwikkeling vaak lang duurt, en het niet altijd eenvoudig is om de leverancier tot in detail duidelijk te maken wat je wensen en eisen zijn. Daarom kiezen veel bedrijven voor een standaardoplossing, die de leverancier heeft aangepast aan de sector. Zo sluit de software voor het grootste deel aan bij de bedrijfsactiviteit, en wordt maatwerk tot een minimum beperkt.
Hoe goed is de software beveiligd?
Een heikel punt bij alle IT-onderdelen is de beveiliging van het systeem . De bedrijfsdata moeten natuurlijk niet zomaar voor het grijpen liggen. Een ideaal beveiligingsscenario voor alle bedrijven bestaat niet, maar er kan wel nagedacht worden over de volgende zaken:
- Een oplossing in de cloud, on-premise of hybride: deze keuze hangt vooral af van de beschikbaarheid van technisch hoogopgeleid personeel, dat de software en data on-premise veilig kan stellen. Als het bedrijf zulke mensen niet in dienst heeft, is het vaak slim het systeem onder te brengen in de cloud bij een partij die hiermee ervaring heeft. Bij een hybride-model worden data bijvoorbeeld on-premise bewaard, en de software in de cloud.
- Toegangsrechten: Wie heeft er toegang tot de software? Dit is belangrijk. Een administratief medewerker moet niet zomaar toegang krijgen tot bijvoorbeeld productie- of verkoopstrategieën , terwijl de productiemedewerker niets te maken heeft met persoonlijke gegevens van klanten. De toegang tot softwarepakketten wordt meestal beheerd door middel van autorisaties en gebruikersprofielen.