Prep Hard Win Easy

Category: Appdevelopment

Wat is DevOps?

DevOps is een gebruik die de samenwerking tussen het Development- en OperationsTeam bevordert om code sneller en op een geautomatiseerde en herhaalbare manier in te zetten voor productie. Het woord ‘DevOps’ is een combinatie van twee woorden ‘development’ en ‘operations’. DevOps helpt om de snelheid waarmee een organisatie applicaties en diensten kan leveren te verhogen. Het stelt organisaties in staat om hun klanten beter van dienst te zijn en sterker te concurreren in de markt.

In eenvoudige bewoordingen kan DevOps worden gedefinieerd als een afstemming van ontwikkeling en IT-operaties met betere communicatie en samenwerking.

Waarom is DevOps nodig?

Voor DevOps werkte het Development en Operations Team volledig geïsoleerd, een ieder voor zich. Testen en Deployment(opleveren en uitrollen) waren geïsoleerde activiteiten die werden uitgevoerd na het ontwerpen en bouwen deze namen meer tijd in beslag dan de eigenlijke bouwen. Zonder gebruik te maken van DevOps besteden teamleden een groot deel van hun tijd aan het testen, implementeren en ontwerpen in plaats van het bouwen van het project.

Handmatige opleveren en uitrollen van code leiden nogal eens tot menselijke fouten in de productie. Development- en OperationsTeams hebben hun eigen tijdlijnen en zijn niet synchroon waardoor verdere vertragingen ontstaan. Er is vraag naar een verhoging van het tempo van de levering van software door het bedrijfsleven. Volgens Forrester Consulting Study kan slechts 17% van de teams vaak en snel genoeg gebruik maken van geleverde software. Dit bewijst de noodzaak.

In de praktijk zijn er drie belangrijke thema’s die steeds genoemd worden in het kader van DevOps:

Continuous Integration
Het snel, geautomatiseerd en efficiënt mogelijk integreren van nieuw ontwikkelde code met bestaande code(basis) en bestaat uit het opslaan en omzetten van uw code tot bruikbare uitvoerbare code. Ook het en het uitvoeren van enkele basis controles en testen is een onderdeel van CI.
Continuous Delivery
Een uitbreiding van Continuous Integration, extra automatisering en testen toe, zodat u de code niet alleen vaak samenvoegt met bestaande code en omzet tot bruikbare uitvoerbare code, maar u de code klaar krijgt om in te zetten zonder menselijke tussenkomst. Continu in een kant-en-klare staat hebben.
Continuous Deployment
Een evolutie van Continuous Delivery. Het is de wens om zonder menselijke tussenkomst helemaal in productie te gaan. Nieuw gecreëerde code wordt door middel van geautomatiseerde tests uitgevoerd voordat deze naar de productie wordt uitgerold.

Veelgestelde vragen in het kader van DevOps

Voorbeeldplanning

Ontwerp
===
08:30 – 08:50 20 bestudeer aangeleverd materiaal/documentatie
08:55 – 08:55 05 stel indien nodig vragen
08:55 – 09:05 10 maken van de planning in trello
09:05 – 09:20 15 ontwikkelomgeving opzetten
09:20 – 10:05 45 creeer databasescript adhv TO
10:05 – 10:10 05 rol de database uit
10:10 – 10:20 10 vul de database met testgegevens
10:20 – 10:35 15 quickwins en prio bepalen
10:35 – 10:40 05 planning bijwerken/splitsen in trello
10:40 – 10:50 07 wireframe maken
10:50 – 11:00 10 scaffolding directory structuur inrichten
Realisatie
===
11:00 – 11:30 30 header en footer maken
11:30 – 11:45 15 algemene styling bepalen
11:45 – 12:15 30 pauze
12:15 – 14:20 125 Eerste functionaliteit
12:15 – 12:20 05 — wireframe
12:20 – 12:25 05 00 documenteren: technische benodigdheden en conventies in TO
12:25 – 12:40 15 00 controller: class en handleRequest of router maken
12:40 – 12:45 05 — controller: handleRequest switch/case en verwijzing of route bepalen
12:45 – 12:50 05 — controller: nieuwe method maken en naar model sturen
12:50 – 12:55 05 — model: DataHandler requiren
12:55 – 13:00 05 — model: nieuwe class maken indien nodig
13:00 – 13:05 05 — model: nieuwe class voorzien van __construct() en __destruct()
13:05 – 13:15 10 20 model: nieuwe method maken
13:15 – 13:20 05 — model: db data fetchen en var_dump testen
13:20 – 13:25 05 — view: nieuwe view maken
13:25 – 13:40 15 10 view: styling toepassen
13:40 – 13:45 05 — model: db data fetchen en ‘return‘ naar controller
13:45 – 13:50 05 — controller: db data klaarzetten voor view
13:50 – 13:55 05 — controller: include view in method
13:55 – 14:00 05 — documenteren: code
14:00 – 14:10 10 — testplan: functioneel en technische test uitvoeren
14:10 – 14:15 05 — documenteren: testresultaat in testplan
14:15 – 14:20 05 — documenteren: trello planning bijwerken

Port 80 in use, Apache WILL NOT start without the configured ports free!

Apache listens for requests on TCP/IP port 80 and cannot share the same port with another TCP/IP application, you may need to stop, uninstall or reconfigure certain other services before running Apache. These conflicting services include other webservers, some firewalls, and even some client applications (such as Skype) which will use port 80 to attempt to bypass firewall issues. To switch Skype off, start Skype and choose Tools > Options > Advanced > Connection. Ensure you untick “Use port 80 and 443 as alternatives for incoming connections”.

Runtime Error! httpd.exe

When an application has made an attempt to load the C runtime library a runtime error could occur. This issue is caused by a faulty Visual C++ Runtime Library or certain applications which use the Runtime. To fix this issue, reinstall Visual C++ Runtime. Download a fresh copy of Microsoft Visual C++ Runtime from https://www.microsoft.com/en-us/download/details.aspx?id=48145 and then install it. Be sure !! that you have install the latest (14.16.27024.1) C++ Redistributable Visual Studio 2017 : vc_redist_x64 or vc_redist_x86.

Apache HTTP Server for Windows 32 and 64bit unavailable

We are going to need to use the unofficial Windows binary from Apache Lounge. This version has performance and stability improvements over the official Apache distribution, it is provided as a manually installable ZIP file from www.apachelounge.com/download/. Select the 32bit or the 64bit binary.

Apache detected with wrong path

Apache can be installed anywhere on your Windows OS, but you will need to change the configuration file paths accordingly…

Apache is configured with the text file httpd.conf contained in the Apache folder. Open it with your favourite text editor.

Note that all file path settings use a ‘/’ forward-slash rather than the Windows backslash. If you installed Apache anywhere other than C:\Apache24, now is a good time to search and replace all references to “C:/Apache2″.

There are several lines you should change for your production environment:

Line 37, listen to all requests on port 80:

Define SRVROOT "c:/Apache24"

Line 60, listen to all requests on port 80:

Listen *:80

Line 162, enable mod-rewrite by removing the # (optional, but useful):

LoadModule rewrite_module modules/mod_rewrite.so

Line 226, specify the server domain name:

ServerName localhost:80

Line 271, allow .htaccess overrides:

AllowOverride All

Best htdocs location for backups and re-installation

By default, Apache returns files found in its htdocs folder. I would recommend using a folder on an another drive or partition to make backups and re-installation easier. For the purposes of this example, we will create a folder called D:/apps and change httpd.conf accordingly:

Line 250, specify the new DocumentRoot:

DocumentRoot "D:/apps"

Line 251, and change <Directory “${SRVROOT}/htdocs”> to:

<Directory "D:/apps">

Apache does not display any PHP files

Be sure !! that you have installed the latest PHP binary for Windows : php-7.3.1-Win32-VC15-x64 or php-7.3.1-Win32-VC15-x86.

Line 284 of your httpd.conf, tell the Apache Web Server to display the either the ‘index.php’ or ‘index.html’ file:

DirectoryIndex index.php index.html

We will install the PHP files to C:\Php7, so create that folder and extract the contents of the ZIP file into it.

PHP can be installed anywhere on your system, but you will need to change the paths referenced in the following steps. To check the PHP version enter the following command:

cd c:\Php7\
php -v

// Result should resemble
PHP 7.3.1 (cli) (built: Jan  9 2019 22:43:14) ( ZTS MSVC15 (Visual C++ 2017) x86 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies

Copy C:\Php7\php.ini-production to C:\Php7\php.ini.. There are several lines you will need to change in a text editor (use search to find the current setting). Where applicable, you will need to remove the leading semicolon to uncomment these setting.

Define the extension directory:

Line 757, and change extension_dir = “ext” to:

extension_dir = "c:\Php7\ext\"

Enable extensions. This will depend on the libraries you want to use, but the following extensions should be suitable for the majority of applications:

Between Lines 910 and 943 uncomment:

extension=curl ; optional
extension=gd2 ; optional
extension=mbstring ; optional
extension=mysqli
extension=pdo_mysql
extension=xmlrpc ; optional

‘php’ is not recognized as an internal or external command

To ensure Windows can find PHP, you need to change the path environment variable. Open Settings, type ‘environment variables’ NL ‘Omgevingsvariabelen’ into the search field and open the result. Select the “Advanced” tab, and click the “Environment Variables” button.

Scroll down the “System variables” list and click on “Path” followed by the “Edit” button. Click “Edit text” and add ;C:\Php7 to the end of the Variable value line (remember the semicolon). Now click OK until you’re out. You need to reboot at this stage.

Configure PHP as an Apache module

Ensure Apache is not running. Open c:\Apache24\conf\httpd.conf configuration file in an editor. The following lines should be changed:

On line 239, add index.php as a default file name:

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

At the bottom of the file line 537, add the following lines (change the PHP file locations if necessary):

# Tell apache where to look for a php.ini file.
PHPIniDir "C:/Php7"
# Link in the named object file or library.
LoadFile "C:/Php7/php7ts.dll"
#Loading of executable code and modules into the server.
LoadModule php7_module "C:/Php7/php7apache2_4.dll"
# Maps the filename extensions to the specified handler.
AddHandler application/x-httpd-php .php
# Maps the given filename extensions onto the specified content type.
AddType application/x-httpd-php .php

Testing your Apache configuration

Your Apache configuration can be tested. Open a command box (Start > Run > cmd) and enter:

cd Apache24/bin
httpd -t

Result should say Syntax OK if not correct any httpd.conf configuration errors and retest.

For an overview of possible params such as -t check out https://httpd.apache.org/docs/2.4/programs/apachectl.html

Create a file named index.html in Apache’s web page root (either htdocs or D:/apps) and add a little HTML code:

<html>
   <head>
      <title>testing Apache</title>
   </head>
   <body>
      <p>Apache is working!</p>
   </body>
</html>

Ensure Apache has started successfully, open a web browser and enter the address http://localhost/. If all goes well, your test page should appear.

Run Apache as a console application

Sometimes it is easier to work from the command line, especially during initial configuration and testing. To run Apache from the command line as a console application, use the following command:

cd Apache24/bin
httpd

You will receive a Windows Defender Firewall notification, make sure Private networks checkbox is checked and continue to Allow access.

Testing your PHP configuration

Create a file named index.php in Apache’s web page root (either htdocs or D:/apps) and add this code:

<html>
   <head>
      <title>testing PHP</title>
   </head>
   <body>
      <p>PHP is working!</p>
      <?php phpinfo() ?>
   </body>
</html>

Ensure Apache has started successfully, open a web browser and enter the address http://localhost/. If all goes well, a “PHP version” page should appear showing all the configuration settings.

Configure MySQL

Download MySQL from https://dev.mysql.com/downloads/mysql/. Follow MySQL Community Server, Windows and download the “Without installer” version.

We will install MySQL to C:/mysql, so extract the ZIP to your C: drive and rename the folder from “mysql-8.0.14-winx64” to “mysql”.

MySQL can be installed anywhere on your system. If you want a lightweight installation, you can remove every sub-folder except for bin, data, scripts and share.

Best MySQL data location for backups and re-installation

Place the data folder on another drive or partition to make backups and re-installation easier. For the purposes of this example, we will create a folder called D:/MySQL/data and move the contents of C:/mysql/data into it.

You should now have two folders, D:/MySQL/data/mysql and D:/MySQL/data/test. The original C:/mysql/data folder can be removed.

MySQL provides several configuration methods but, in general, it is easiest to to create a my.ini file in the mysql folder. There are hundreds of options to tweak MySQL to your exact requirements, but the simplest my.ini file is:

[mysqld]
# installation directory
basedir="C:/mysql/"

# data directory
datadir="D:/MySQL/data/"

(Remember to change these folder locations if you have installed MySQL or the data folder elsewhere.)

Testing your MySQL configuration

The MySQL server is started by running C:/mysql/bin/mysqld.exe. Open a command box (Start > Run > cmd) and enter the following commands:

cd mysql/bin
mysqld --initialize --console

This will generate all files needed for a first initialisation.

cd mysql/bin
mysqld --console

This will start the MySQL server which listens for requests on localhost port 3306.

MySQL login not starting

You can start the MySQL command line tool and connect to the database. Open another command box and enter:

cd mysql/bin
mysql -u root -p

After logging in with your generated password, it will show a welcome message and the mysql> prompt. Enter “show databases;” to view a list of the pre-defined databases.

Change the MySQL root user

The MySQL root user is an all-powerful account that can create and destroy databases. If you are on a shared network, it is advisable to change the default (blank) password. From the mysql> prompt, enter:

UPDATE mysql.user SET password=PASSWORD("my-new-password") WHERE User='root';
FLUSH PRIVILEGES;

You will be prompted for the password the next time you start the MySQL command line.

If any errors occur regarding password denials, try the following:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

If a running service prevents your installation and/or configuration of your environment.

Open an elevated command prompt(Win+X)

cmd

services.msc;

Lookup the name of the service to kill, back at the command prompt execute the following commands to stop and remove the service:

cmd

SC STOP [shortservicename];
SC DELETE [shortservicename];

If by any chance ports seem to be in use by some other process.

Execute the following command to find and stop the process:

cmd

netstat -aon | findstr :[PortInUse];

In the result, the last column represents the process identifier (PID), execute the following commands to stop the process:

cmd

taskkill /pid [PID];

Set Environment Variables

To set persistent environment variables at the command line, execute the following commands:

cmd

setx PHP "d:\xampp\php\";

If by any chance ports seem to be in use by some other process.

Execute the following command to find and stop the process:

cmd

netstat -aon | findstr :[PortInUse];

In the result, the last column represents the process identifier (PID), execute the following commands to stop the process:

cmd

taskkill /pid [PID];

Installation and configuration phpMyAdmin on Windows

To the d:\apps\ folder copy the content of phpMyAdmin-4.6.5.2-all-languages.zip. Rename phpMyAdmin-4.6.5.2-all-languages to phpmyadmin (for brevity).

In the c:\apps\phpmyadmin\ folder create config.inc.php file and copy there:


Open in your browser http://localhost/phpmyadmin/

Enter root as name, do not fill password.

Backup your Apache, MySQL and PHP installation

8. Usage and backup web-server

In the c:\Server\data\htdocs\ folder put your local web sites, create HTML, PHP and another files. For instance, I created c:\Server\data\htdocs\test\ajax.php file, so this file will be available at the address http://localhost/test/ajax.php and so on.

To create full backup including all web sites and databases, just copy data folder in a save place. If you will need restore your information, with backup you can do it easily.

Before updating web-server modules, backup bin folder, if you will have issues you can fallback to previous versions.

Make backup of the following files, with them you can deploy new instance of the server faster.

  • c:\Server\bin\Apache24\conf\httpd.conf
  • c:\Server\bin\mysql-8.0\my.ini
  • c:\Server\bin\PHP\php.ini
  • c:\Server\data\htdocs\phpmyadmin\config.inc.php

These files keep all settings and when we are installing new web server instance most of the time we are engaged in their editing

Work In Progress gebaseerd op kwalificatiedossier Crebo 25187

B1-K1 Levert een bijdrage aan het ontwikkeltraject

Context

Beroepshouding

Resultaat

Complexiteit

Verantwoordelijkheid en zelfstandigheid

Vakkennis en vaardigheden

Sjablonen van StichtingPraktijkLeren

Sjabloon_testrapport
Sjabloon_technisch_ontwerpLet op! Komt niet/nauwelijks overeen met eerdere examens. Gebruik liever het onderliggende “Technisch ontwerp” gedeelte.
Sjabloon_projectplan
Sjabloon_functioneel_ontwerp
Sjabloon_configuratieoverzicht
Sjabloon_Programma_van_Eisen
Sjabloon_Aanpassingendocument
Bijlage_11_Sjabloon_evaluatieverslag
Bijlage_8_Sjabloon_document_versiebeheer
Bijlage_7_Sjabloon_testrapport
Bijlage_1_Sjabloon_Acceptatietest

B1-K1-W1 Stelt de opdracht vast

De ontwikkelaar overlegt met de opdrachtgever/projectleider om diens vraag naar de technische realisatie van
(onderdelen van) een applicatie, media-uiting of game duidelijk te krijgen. Hij analyseert de beschikbare informatie
en gegevens, eisen en wensen die hij heeft geïnventariseerd om een beeld te krijgen van zijn opdracht en vraagt om
een bevestiging van zijn opdrachtgever/projectleider. De ontwikkelaar neemt zijn kennis met betrekking tot nieuwe
ontwikkelingen op technologisch gebied mee in zijn gesprek.

B1-K1-W1 Stelt de opdracht vast
Resultaat Een door de opdrachtgever goedgekeurde opdracht waarin de beschikbare informatie en de eisen en behoeften van de opdrachtgever zijn verwerkt (programma van eisen).
Input Briefing / projectbeschrijving / klant en/of opdrachtgever gesprek
Op te leveren
  • Een gevoerd gesprek
  • Een gecommuniceerd Programma van Eisen
Samenwerking Opdrachtgever / projectleider
Voor wie Opdrachtgever
Competenties Analyseren, Op de behoeften en verwachtingen van de “klant” richten, Vakdeskundigheid toepassen

Creëren en innoveren, Onderzoeken, Bedrijfsmatig handelen

Probeer kort en bondig onderstaande vragen te beantwoorden en vat de antwoorden in een of meer volledige zinnen samen in het betreffende hoofdstuk. Gebruik niet meer dan 60 woorden.

Op te leveren product en/of dienst Toelichting
Een gevoerd gesprek
Een gecommuniceerd Programma van Eisen
Hoofdstuk|paragraaf|subparagraaf Vragen:
Inleiding:
  • Wie heeft de opdracht gekregen
  • Wat is de opdracht
  • Hoe is de opdracht ontstaan

Bedrijf:
  • Welke branche
  • Aanleiding
  • Huidig systeem

Probleemstelling:
  • Wie heeft een probleem?
  • Wat is het probleem, wat zijn mogelijke oorzaken, wat is de urgentie en wat zijn de consequenties voor het bedrijf en haar medewerkers?
  • Waar doet het probleem zich voor?
  • Wanneer is het een probleem?
  • Waarom is het een probleem?
  • Hoe is het probleem onstaan, hoe lang bestaat het probleem al en hoe groot is het probleem?
Doelgroep(en):
  • Beschrijf voor wie de applicatie bestemd is.
Vormgeving:
  • Beschrijf de vormgeving van de website (kleuren, lettertypes). Gebruik eventueel een vlekkenplan om de grove indeling van de vensters weer te geven.
Informatie:
  • Beschrijf globaal welke informatie door de applicatie gegeven wordt en welke overzichten en rapportages door de applicatie gegenereerd worden.
Overig:
  • Geef hier andere relevante informatie, indien nodig.

B1-K1-W2 Levert een bijdrage aan het projectplan

B1-K1-W2 Levert een bijdrage aan het projectplan
Resultaat Een realistische planning -inclusief voortgangsgesprekken – voor de realisatie van de applicatie, media-uiting of game.
Input Briefing / projectbeschrijving / klant en/of opdrachtgever gesprek
Op te leveren
  • Een projectplan
  • Een toelichting op het projectplan
Samenwerking Team / projectleider
Voor wie Opdrachtgever
Competenties

Samenwerken en overleggen, formuleren en rapporteren, plannen en organiseren

Probeer kort en bondig onderstaande vragen te beantwoorden en vat de antwoorden in een of meer volledige zinnen samen in het betreffende hoofdstuk. Gebruik niet meer dan 60 woorden.

Projectplan

Hoofdstuk|paragraaf|subparagraaf Vragen:
Inleiding In de inleiding van het projectplan staat voor welk bedrijf een applicatie wordt gemaakt, wat het bedrijf globaal doet en wat de opdracht is. Uiteraard kunnen hier nog andere onderwerpen aan toegevoegd worden.
Doelstellingen Onder de doelstellingen komen alle projectdoelstellingen te staan die uit de opdracht blijken.
Betrokkenen In een overzicht noem je de personen die meewerken aan het project. Neem in dit overzicht ook de contactgegevens van betrokkenen op.
Benodigdheden In een overzicht noem je op welke inzet en middelen nodig zijn om de werkzaamheden binnen dit project te kunnen verrichten. In het overzicht kunnen kantoorartikelen staan, hardware, software, gereedschappen/tools, verbindingen, beschikbare ruimtes en dergelijke.
Takenlijst De takenlijst is een overzicht met alle werkzaamheden die verricht moeten worden om het volledige project (tot en met de oplevering van de applicatie) uit te voeren. Zorg ervoor dat je ook zaken als gesprekken en mailen opneemt.
Planning

In de planning wordt de takenlijst chronologisch opgenomen. Daarbij wordt vermeld hoe lang een taak duurt en wanneer en door wie een taak wordt uitgevoerd. Maak gebruik van de onderstaande lay-out.

Planning ontwerp
Taak Begindatum Begintijd Einddatum Eindtijd Duur Betrokkenen
Plan van aan Aanpak schrijven dd-mm-jjjj uu:mm dd-mm-jjjj uu:mm uu:mm Naam of namen
Risico’s Maak een overzicht over wat jij denkt dat er fout kan gaan in het project en geef aan welke maatregelen je hiervoor treft.
Projectgrenzen Zet in een overzicht welke activiteiten er binnen het project niet worden uitgevoerd.

B1-K1-W3 Levert een bijdrage aan het ontwerp

B1-K1-W3 Stelt de opdracht vast
Resultaat Een bijdrage aan het ontwerp document
Input Programma van eisen, projectplan, bestaande data.
Op te leveren
  • Een functioneel ontwerp en technisch ontwerp
  • Een toelichting op het functioneel ontwerp en technisch ontwerp
Samenwerking Opdrachtgever / projectleider
Voor wie Klant en/of opdrachtgever
Competenties Analyseren, omgaan met verandering en aanpassen, overtuigen en beïnvloeden, presenteren, formuleren en rapporteren, vakdeskundigheid toepassen

Functioneel Ontwerp

Hoofdstuk|paragraaf|subparagraaf Uitwerking
Inleiding In dit ontwerp maak je een overzicht van de functionaliteiten waaraan de applicatie moet voldoen
Functionaliteiten Hier vermeld je alle functionaliteiten (zie PvE) die de applicatie gaat bieden. Geef hierbij duidelijk aan wat eisen en wensen zijn (prioriteiten). Zorg ervoor dat het ook voor niet vakgenoten duidelijk omschreven is. Maak gebruik van lijsten of schema’s.
Basis lay-out

Geef in één of meer schetsen aan, hoe de applicatie er uit gaat zien. In deze schets(en) moeten duidelijk de onderstaande punten naar voren komen.

  • Lay-out applicatie
    • Plaats menu
    • Plaats content
    • Plaats titel
    • Plaats logo
    • enzovoorts
  • Opmaak
    • Kleurgebruik
    • Lettertype
    • enzovoorts
  • Bediening van de applicatie (indien van toepassing)

Navigatiestructuur Geef aan hoe er binnen de applicatie genavigeerd gaat worden. Geef hierbij in hoofdlijnen aan welke schermen/vensters(view/secties/pagina’s) er zijn binnen de applicatie en hoe deze in relatie met elkaar staan. Laat notificaties achterwege.
Gebruikersscherm Geef, indien van toepassing, van elk formulier aan welke gegevens er gebruikt worden. Laat in een of meer schetsen zien hoe deze gegevens worden weergegeven.
Uitvoerontwerp Beschrijf hoe de uitvoer/output van de applicatie is. Het betreft hier online- en printbased output. Denk daarbij aan rapportages/overzichten/rekeningen/bewijzen/geluid/pdf/doc/xls/email.

Technisch Ontwerp

Hoofdstuk|paragraaf|subparagraaf Uitwerking
Technische specificaties Werk het functioneel ontwerp uit naar technische specificaties. Gebruik, indien gewenst, schematechnieken (Vooral een Class Diagram en in sommige gevallen Use – of Activity Diagram). Je dient ervoor te zorgen dat de oplossing/uitwerking haalbaar en realistisch is.
Relationeel datamodel
  • Normaliseer de overzichten en eventueel formulieren. Gebruik hiervoor de 0e tot en met 3e normaalvorm.
  • Voeg de 3e normaalvormen samen tot één 3e normaalvorm.
  • Maak op basis van de samenvoeging het EntiteitRelatieDiagram (ERD), waarin duidelijk naar voren komt:
    • Welke entiteiten gebruikt worden
    • Welke eigenschappen of attributen gebruikt worden en bij welke entiteiten zij horen
    • Welke sleutels gebruikt worden
    • Welke relaties er zijn.
  • Maak op basis van het ERD de datadictionary. Gebruik daarvoor het onderstaand schema per entiteit.
Naam entiteit
Definitie
Attribuutnaam Datatype Toelichting
Relatie Toelichting
R1
R2

B1-K1-W4 Bereidt de realisatie voor

B1-K1-W4 Bereidt de realisatie voor
Resultaat De realisatie is voorbereid en startklaar.
Input Ontwerp.
Op te leveren
  • Een ontwikkelomgeving
  • Een configuratieoverzicht

Samenwerking
Voor wie Bijvoorbeeld een toekomstige medeontwikkelaar.
Competenties Materialen en middelen inzetten, plannen en organiseren, kwaliteit leveren, formuleren en rapporteren

Beschrijving Ontwikkelomgeving

Hoofdstuk|paragraaf|subparagraaf Uitwerking
Te gebruiken hardware

Onderstaande hardware is nodig om de applicatie te kunnen maken en is gebaseerd op bijvoorbeeld de minimale vereisten om Android Studio Simulator te kunnen draaien:

Onderdeel Vereisten
Processor XX-bit Dual-core AMD of Intel processor
RAM X GB
Harde schijf XXX GB
Grafische kaart XXXX x XXXX minimum schermresolutie met X GB of meer onboard graphics
Internetverbinding XX Mb/s
Overig Buro, Stoel, Scherm, Keyboard en Muis.
Te gebruiken software

Hieronder staat de software die nodig is om de applicatie in de vorm van een webapplicatie te bouwen:

Software Opmerkingen
Besturingssysteem XX-bit Microsoft Windows XX pro, versie XX.X.XXXXX Build XXXXX of Chrome OS voor Chromebooks platform XXXXX.XX.X versie XX.X.XXXX.XXX of macOS versie XX.X
IDE Microsoft Visual Studio Code, versie X.XX.X, etc
Ondersteunende frameworks en servers .net Framework versie X.X, Java SDK SE XXXXX, Microsoft Visual C++ XXXX Redistributable, etc
Webserver Apache versie X.X.XX, etc
Applicatieserver PHP versie X.X.X en/of Tomcat versie X.X.XX, Strawberry Perl versie X.XX.X.X, etc
Databaseserver MariaDB XX.X.XX
FTP- en/of mailserver FileZilla FTP Server versie X.X.XX, Mercury Mail Transport System versie X.XX, etc
Browsers Naar eigen inzicht Google Chrome versie XX.X.XXXX.XXX, Mozilla Firefox Standard Release voor Desktop versie XX.X.X, Microsoft Edge versie XX.X.XXX.XX, Opera voor Desktop versie XX.X.XXXX.XX, etc

B1-K2 Realiseert en test (onderdelen van) een product


B1-K2-W1 Realiseert (onderdelen van) een product

B1-K2-W1 Realiseert (onderdelen van) een product
Resultaat Gerealiseerde (onderdelen van een) applicatie, media-uiting of game die voldoen aan de eisen van de opdracht. Complete en goed verzorgde documentatie.
Input Materialen en middelen
Op te leveren
  • Het kwaliteitshandboek
  • Het creatiescript
  • De broncode van de applicatie of van onderdelen ervan
  • De werkende applicatie of onderdelen ervan
Samenwerking
Voor wie
Competenties Materialen en middelen inzetten, analyseren, plannen en organiseren, kwaliteit leveren, et druk en tegenslag omgaan.

Kwaliteitshandboek

Hoofdstuk|paragraaf|subparagraaf Toelichting
De planning van de realisatie en de test

Maak gebruik van de onderstaande tabel om een planning van de realisatie en de test te maken.

Planning van de realisatie en test
Onderdeel / Scherm / Venster Programmeur Van Tot
De realisatie

Maak gebruik van de onderstaande tabel om de realisatie te documenteren.

Realisatie
Onderdeel / Scherm / Venster Programmeur Klaar op Opmerking
De wijzigingen na de test <- Hier Germain

Maak gebruik van de onderstaande tabel om te documenteren welke wijzigingen er na de test zijn doorgevoerd.

Wijzigingen
Naam bestand Programmeur Van Tot Wijziging


B1-K2-W2 Test het ontwikkelde product

B1-K2-W2 Test het ontwikkelde product
Resultaat Correct uitgevoerde testactiviteiten en (vervolg)acties die bijdragen aan een goed functionerend product. Bijgewerkte documentatie en duidelijk beschreven testresultaten en eventuele verbetervoorstellen.
Input Applicatie, ontwerp
Op te leveren
  • Het testplan
  • Het testlog
Samenwerking
Voor wie
Competenties Formuleren en rapporteren, vakdeskundigheid toepassen, materialen en middelen inzetten, analyseren, creëen innoveren.

Testplan

Hoofdstuk|paragraaf|subparagraaf Toelichting
Inleiding Het testrapport bestaat uit een testplan en testlog.
Testvoorbereiding Het testplan bestaat uit een gegevensset en een lijst met te testen onderdelen van de applicatie. Zorg ook voor een gegevensset voor het toevoegen en het wijzigen van gegevens.
Gegevensset

Maak gebruik van onderstaande tabel om een gegevensset te maken.

Activiteit
Productcode Product
kf Koffie
ts Tomatensoep
Te testen onderdelen

Maak gebruik van de onderstaande tabel om te bepalen welke onderdelen van de applicatie getest moeten worden.

Onderdeel Formulier Functie Afwijkend paginaontwerp
Reservering Ja Medewerker kan een reservering toevoegen. Nee
Bon Ja Medewerker kan een bon voor de klant genereren. Ja
Testlog

Het tweede deel van het testrapport bestaat uit een testlog. Maak gebruik van onderstaande tabel bij het testen van de onderdelen van de applicatie.

Testlog
Pagina Datum test Tester Defect Prioriteit Verbeteractie Datum actie Afgehandeld door
Reservering 2-12-2015 Koos 0
Bon 3-12-2015 Joke Totaal te betalen wordt niet zichtbaar. 3 Selectiequery moet naar database gestuurd worden. 19-12-2015 Peter

De prioriteit van problemen wordt door middel van een getal aangeduid.

  • 0 = Geen prioriteit
  • 1 = Lage prioriteit voor een probleem waar niet meteen een oplossing voor hoeft te worden gevonden.
  • 2 = Prioriteit voor een probleem dat opgelost dient te worden, maar waar voorlopig mee gewerkt kan worden.
  • 3 = Hoogste prioriteit voor een probleem dat onmiddellijk opgelost dient te worden.

B1-K3 Levert een product op


B1-K3-W1 Optimaliseert het product

B1-K3-W1 Optimaliseert het product
Resultaat Een optimaal werkend product en waar nodig bijgewerkte documentatie.
Input Gebruikersreacties, testresultaten.
Op te leveren
  • Een in- en aangevuld sjabloon acceptatietest
  • Het testrapport van de aanpassingen
  • Een (export van) de gewijzigde database gevuld met testdata
  • Een gewijzigde broncode van de applicatie of van onderdelen ervan
  • Een werkende gewijzigde applicatie of onderdelen ervan
Samenwerking Opdrachtgever en/of toekomstige applicatie gebruikers, projectleider.
Voor wie Projectleider
Competenties Samenwerken en overleggen, vakdeskundigheid toepassen, op de behoeften en verwachtingen van de “klant” richten, formuleren en rapporteren, aandacht en begrip tonen.

In het kort:

  • Jij maakt van één functionaliteit met diverse scenarios een acceptatietest.
  • De opdrachtgever test en jij noteert en verwerkt dit in de bestaande acceptatietest.
  • Bespreek gewenste aanpassingen en verwerk dit in de bestaande acceptatietest.
  • Jij programmeert, test en verwerkt dit in een testrapport en in de bestaande acceptatietest.
  • Jij levert complete applicatie op.

Acceptatietest

Functionaliteit
Actie
Scenario
Verwacht resultaat
Werkelijk resultaat
Aanpassingen
Uitvoering Uren Prioriteit Door

Testrapport

Functionaliteit
Actie
Scenario
Resultaat Aanpassingen
Akkoord ontwikkelaar Datum Initialen

B1-K3-W2 Levert het product op

B1-K3-W2 Levert het product op
Resultaat Een door de opdrachtgever /projectleider opgeleverd product.
Input
Op te leveren
  • De applicatie in de productieomgeving
  • Documentversiebeheer
  • De presentatie van de applicatie
  • De demonstratie van de applicatie
Samenwerking
Voor wie Oprachtgever / projectleider
Competenties Presenteren, op de behoeften en verwachtingen van de “klant” richten.

Documentversiebeheer

Versienummer 1.00
Releasedatum
Tickets
Ontwikkelomgeving
Broncode
Database
Database-verbinding
Ontwikkeltool
Productieomgeving
Applicatie
Database
Database-verbinding

B1-K3-W3 Evalueert het opgeleverde product

B1-K3-W3 Evalueert het opgeleverde product
Resultaat Het proces en product zijn geëvalueerd door de ontwikkelaar en de betrokkenen en schriftelijk vastgelegd.
Input Opleverproces.
Op te leveren
  • Een geaccordeerd evaluatieverslag
Samenwerking Projectteam, opdrachtgever, leidinggevende.
Voor wie
Competenties Samenwerken en overleggen, kwaliteit leveren, formuleren en rapporteren.

Evaluatieverslag

Hoofdstuk|paragraaf|subparagraaf Toelichting
Inleiding In dit evaluatieverslag wordt het product en het proces met betrekking tot de ontwikkeling van de nieuwe restaurantapplicatie voor Excellent Taste beschreven.
Betrokkenen Noteer welke betrokkenen uit het proces jij om feedback vraagt.
Evaluatie product Beschrijf de punten die goed zijn gegaan en benoem eventuele verbeterpunten.
Evaluatie proces Beschrijf de punten die goed zijn gegaan en benoem eventuele verbeterpunten.

P1-K1 Onderhoudt en beheert de applicatie


P1-K1-W1 Onderhoudt een applicatie

P1-K1-W1 Onderhoudt een applicatie
Resultaat Incidenten (vragen, verzoeken, verstoringen) zijn op correcte wijze afgehandeld. Goed functionerende applicatie, die up to date is.
Input sla,
Op te leveren
  • De ingevulde en geaccordeerde Bijlage 3 Persoonlijke ticketlijst opdracht 1
  • Het ingevulde aanpassingendocument
  • De gewijzigde applicatie met de doorgevoerde wijzigingen voor twee tickets
    • Het creatiescript voor de database (indien gewijzigd)
    • Een (export van) de database gevuld met testdata
    • De broncode van onderdelen van de applicatie die je gewijzigd hebt.
    • De applicatie die je gewijzigd hebt.
Samenwerking opdrachtgever, organisatie, [applicatie leverancier]
Voor wie
Competenties Formuleren en rapporteren, analyseren, onderzoeken, op de behoeften en verwachtingen van de “klant” richten, kwaliteit leveren, instructies en procedures opvolgen.

P1-K1-W2 Beheert gegevens

P1-K1-W2 Beheert gegevens
Resultaat De documentatie m.b.t. de in beheer zijnde producten is volledig en digitaal gearchiveerd. content getoets op juistheid, volledigheid en bruikbaarheid.
Input
Op te leveren
  • Gearchiveerde applicatiedocumentatie
Samenwerking
Voor wie
Competenties Formuleren en rapporteren, analyseren, kwaliteit leveren, instructies en procedures volgen.

Keuzedelen


Beoordeling communicatie

Tijdens het beoordelen van de communicatie wordt er op de volgende punten gelet:

  • Zijn er vooraf afspraken over onderlinge normen en waarden gemaakt?
  • Hoe is er met problemen om gegeaan?
  • Welke communicatiemiddelen zijn er gebruikt?
  • Hoe is de samenwerking verlopen?
  • Voelen de teamleden zich serieus genomen?
  • Is een ieders mening en idee welkom?
  • Is er voldoende motivatie- of vaardigheid?
  • Worden hoofd- en bijzaken herkend?
  • Is er gebruikt gemaakt van LSD:)(Luisteren, Samenvatten en Doorvragen)

Beoordeling documentatie

Tijdens het beoordelen van de documentatie wordt er op de volgende punten gelet.

Onderdeel: Uitleg:

Titelblad:

een duidelijk voorblad met daarop vermeld:

  • de titel van het document
  • plaats, de maand en het jaartal van publicatie (inlever datum)
Inhoudsopgave:

de inhoudsopgave vermeldt de titels van de hoofdstukken, paragrafen met de daarmee corresponderende nummering en de pagina’s. Deze moet automatisch worden gegenereerd met Word.

De inhoudsopgave moet een duidelijk overzicht geven van het document.

Voorwoord:

hierin behandel je zaken die niet rechtstreeks in verband staan met het onderwerp zoals:

  • bedankjes aan medewerkers en instellingen
  • de aanleiding tot het document
  • als er een vorige document bestaat: het verband met het vorige

Inleiding:

een definitie en afbakening van het onderwerp:

  • de probleemstelling (tip: gebruik hierbij de project naam)
  • een uitleg over de opbouw van het document
  • toelichting op de methode van onderzoek

Opmerking: het voorwoord en de inleiding mogen op 1 pagina worden gezet.

Kern:

de antwoorden op alle vraagstukken en opdrachten:

  • Geef niet te veel maar zeker niet te weinig antwoord op vragen en opdrachten.
  • Verwerk de vraag of opdracht in uw antwoord, vermeld anders de vraag of opdracht voorafgaand aan uw antwoord.
  • Geef duidelijk aan om welke vragen opdrachten en/of hoofdstukken het gaat.

In de inleiding heeft je voor een probleemstelling gekozen waardoor het document zich kan beperken tot een thema. De probleemstelling is de centrale vraag die beantwoord moet worden. De belangrijkste aspecten die je bij het schrijven in de gaten moet houden zijn:

  • de overzichtelijkheid: die moet blijken uit de indeling in hoofdstukken en paragrafen (Zie ook de inhoudsopgave)
  • de objectiviteit: beperk je bij de weergave van de feiten tot die feiten. Loop niet op conclusies vooruit.

Slot:

Dit is het laatste hoofdstuk waarin:

  • een terugblik op de kern wordt gegeven (samenvatting)
  • conclusies uit de voorafgaande hoofdstukken worden getrokken
  • een mening van de schrijver wordt geformuleerd. (o.a. Wat vond je ervan en wat heb je ervan geleerd)

Bronvermelding:

  • geef precies aan waar je de informatie gevonden hebt (boeken, tijdschriften, kranten, Internet). Bij internet vermeldt je de site naam.
  • Opmerking: het slot en de bronvermelding mogen op 1 pagina worden gezet.

De verzorging:

  • Zorg dat je alle koppen en subkoppen een opmaakprofiel geeft. Dit heb je nodig om later uw inhoudsopgave te genereren.
  • De hoofdstukken en paragrafen dienen exact dezelfde benaming te hebben als in de inhoudsopgave. (Gebruik hiervoor de optie Inhoudsopgave in Word)
  • Gebruik een voettekst met daarin, (links)namen, (midden)documentnaam, (rechts)blz. nummering.
  • nummer de pagina’s behalve titelblad.
  • De (hoofd)letters die jij voor de hoofdstuktitels enz. gebruikt moeten consequent van dezelfde soort zijn.
  • Het standaard lettertype dat je gebruikt is Arial 11pt.
  • De hoofdstukken dienen boven aan een volgende pagina te beginnen.

Verwijzingen en/of voetnoten dienen steeds op dezelfde wijze te zijn aangegeven.

Algemeen

Wanneer je informatie van Internet haalt let dan op het volgende:

  • letterlijk kopiëren van Internet is niet goed. Filter alle onnodige informatie er tussenuit en geef duidelijk antwoord op de vragen, niet meer en niet minder.

Bewaar zelf altijd een digitale kopie van de instructie. Op deze manier heb je altijd een back-up van jouw document en kun je dit document later gebruiken als referentie materiaal.

Standaarden coderen

Er zijn een aantal redenen waarom de layout van de code van groot belang is. Met name zorgt een goede layout voor een verhoging van de kwaliteit van de code. In de code sluipt heel gemakkelijk een foutje. Bij een goede layout is het vaak al moeilijk een fout te vinden en te herstellen, laat staan bij code die onoverzichtelijk is opgesteld. De code moet later bij onderhoud van het programma met zo min mogelijk moeite gelezen kunnen worden. Onoverzichtelijk geschreven code maakt dit juist moeilijk zo niet onmogelijk. De code moet door anderen gelezen kunnen worden. Als je samenwerkt met anderen, is het handig als die anderen ook de code kunnen lezen die jij geschreven hebt.

Codeblokken

Codeblokken zijn regels code die tussen accoladen staan. Binnen een codeblok kunnen weer andere codeblokken voorkomen. Zo staat in het voorbeeld hieronder de codeblok van een lus binnen de codeblok van een methode staan. Een codeblok wordt voorafgegaan door een openingsaccolade { en wordt afgesloten met een sluitaccolade }. Na een openingsaccolade springt je op de volgende regel één tab in. Na de sluitaccolade springt je op de volgende regel terug.. De openingsaccolade staat als laatste teken op een regel na een spatie meteen na bijvoorbeeld het sluithaakje na van een methode. De sluitaccolade staat als enig teken op de regel en in de kolom van de eerste letter die staat op de regel van de openingsaccolade.

Voorbeeld:

tekenTekst($ tekst) {
int teller;   
           coderegel;  
           coderegel;  
           for( teller = 0; teller < 10; teller ++)  {  
                       coderegel ;  
                       coderegel ;  
           }  
           coderegel ;  
           coderegel ;  
}  

Operatoren

Vergelijkingsoperatoren (==, !=, <, <=, > en >=) worden altijd omgeven door spaties.

Voorbeelden:

for( teller = 0; teller < 10; teller ++)

Ook numerieke operatoren ( *, /, +, -, %, *=, /=, +=, -=, %=, ++, en --) worden omgeven door spaties, één ervoor en één erachter.

Voorbeeld:

som = a + b;

In dit voorbeeld komt ook de toekenningsoperator ( =) voor die ook door spaties omgeven wordt.

Commentaar

Toelichting op je code is heel belangrijk. Zo kan de ander met wie je samenwerkt, de code begrijpen en kun je zelf de code een jaar later ook nog begrijpen.

Om op één regel commentaar te leveren gebruik je // en om op meerdere regels achter elkaar commentaar te zetten, gebruik je /* … */. Zet in ieder geval boven elk blok PHP-code commentaar, boven elke klasse en elke methode in de klasse:

In commentaar dat over de gehele klasse gaat, staat de naam van de klasse, een algemene beschrijving van de klasse, de naam van de auteur en het versienummer met de datum van de laatste wijziging.

Boven elke methode staat de naam van de methode, een algemene beschrijving van de methode, de parameters en wat de teruggave is. Als er geen parameters zijn, dan staat er achter Parameters: geen. Hetzelfde geldt voor return. Ook wordt er eventueel naar andere methodes binnen (zoals in het voorbeeld) of buiten de klasse verwezen.

Door deze manier van commentaar schrijven (zie de dubbele asteriksen aan het begin en het einde van het commentaar) kan er op eenvoudige manier een PHPdoc gemaakt worden.

Voor een voorbeeld van een PHPdoc, zie:

http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblock

Zie verder voor de conventies van coderen:

http://framework.zend.com/manual/1.12/en/coding-standard.coding-style.html

ROCMN | Project documentatie 2016 v1.2

Gebaseerd op het KD Applicatie- en mediaontwikkeling

Inleiding

In dit document vind je informatie over de fases en voor het maken van documentatie bij het uitvoeren van projecten als Applicatieontwikkelaar.

Algemeen

De volgende opmerkingen gelden voor elk document dat je schrijft binnen de uitvoering van een project. Controleer dus elke document voor dat je inlevert of laat controleren op deze punten:

Begin elk document met een duidelijke inleiding. In de inleiding vertel je waar het document over gaat zodat de lezer weet wat hij gaat lezen. Probeer daarbij zo specifiek mogelijk te zijn; geef geen uitleg wat een Schriftelijk Advies, FO of TO is maar leg kort uit wat je gaat vertellen, hoe het document is op gebouwd of iets dat de lezer moet weten voordat hij het document gaat lezen.

Zorg dat de opmaak van de documenten consequent is. Gebruik niet onnodig veel verschillende soorten opmaak van de tekst zonder dat je daar een reden voor hebt, dit leidt alleen maar af van de inhoud. Vermijdt onnodig gebruik van ingewikkelde formuleringen als het document is bedoeld voor de opdrachtgever. Gebruik zoveel mogelijk de functies van je teksteditor om het document netjes op te maken, bijvoorbeeld kop- en voetteksten, automatische inhoudsopgave, opmaakprofielen etc. De verschillende documenten binnen een project moeten een gelijke opmaak hebben zodat je duidelijk kunt zien dat ze bij elkaar horen.

Zorg dat belangrijke informatie duidelijk in of op het document vermeld staat. Als je een document op de grond vindt moet je kunnen zien van wie het is, waarvoor en wanneer het is geschreven en welke pagina.

Geef alle documenten een duidelijk versienummer zodat je weet wat je laatste versie is, en wat een eerdere versie is.. Elke keer als je een document (voorlopig) oplevert geef het een nieuw nummer. Aan het nummer moet ook te zien zijn dat het een definitieve versie is. Begin je nummering bijvoorbeeld met 0.1, 0.2, 0.3 … De definitieve versie krijgt dan het nummer 1.0. Als het definitieve document in de loop van het project toch nog moet aanpassen, door bijvoorbeeld nieuwe informatie of inzichten, ga je verder met 1.1, 1.2 etc. Zo is duidelijk te zien dat de laatste documenten een aanpassing is op de definitieve versie.

Beoordeling documentatie

Naast dat de documentatie een zakelijke lay-out en taalgebruik bevat en dat het inhoudelijk correct is wordt bij de beoordeling van de documentatie wordt er op de volgende punten gelet:

Onderdeel: Uitleg:

Titelblad:

een duidelijk voorblad met daarop vermeld:

  • de naam van het project
  • de naam van het product, denk aan Plan van aanpak, Functioneel ontwerp…etc
  • plaats, de maand en het jaartal van publicatie (inlever datum) en een versienummer
  • de naam of namen van degenen die aan het product hebben meegewerkt.
Inhoudsopgave:

de inhoudsopgave vermeldt de titels van de hoofdstukken, paragrafen met de daarmee corresponderende nummering en de pagina’s. Deze moet automatisch gegenereerd worden. Zo krijgt de lezer een beeld van de grote lijn van de structuur.

De inhoudsopgave moet een duidelijk overzicht geven van het document. Tip: is de opbouw van de hoofdstukken logisch?

Voorwoord:

Een voorwoord zegt niets over de inhoud van de tekst, maar verhaalt over de totstandkoming ervan, vaak in een persoonlijke vorm. Hierin behandel je zaken die niet rechtstreeks in verband staan met het onderwerp zoals:

  • bedankjes aan medewerkers en instellingen
  • de aanleiding tot het document
  • als er een vorige document bestaat: het verband met het vorige

Inleiding:

een definitie en afbakening van het onderwerp:

  • de probleemstelling (tip: gebruik hierbij de project naam)
  • een uitleg over de opbouw van het document
  • toelichting op de methode van onderzoek

Opmerking: het voorwoord en de inleiding mogen op 1 pagina worden gezet.

Kern:

Onder de volgende links is de kernonderverdeling van onderstaande documenten nauwkeurig uitgewerkt.

Over het algemeen geldt dat de overzichtelijkheid moet blijken uit de indeling in hoofdstukken en paragrafen (Zie ook de inhoudsopgave)

Slot:

Dit is het laatste hoofdstuk waarin:

  • een terugblik op de kern wordt gegeven (samenvatting)
  • conclusies uit de voorafgaande hoofdstukken worden getrokken

Bronvermelding:

  • geef precies aan waar je de informatie gevonden hebt (boeken, tijdschriften, kranten, Internet). Bij internet vermeldt je de site naam.
  • Opmerking: het slot en de bronvermelding mogen op 1 pagina worden gezet.

De verzorging:

  • Zorg dat je alle koppen en subkoppen een opmaakprofiel geeft. Dit heb je nodig om later uw inhoudsopgave te genereren.
  • De hoofdstukken en paragrafen dienen exact dezelfde benaming te hebben als in de inhoudsopgave. (Gebruik hiervoor bijv. de optie Inhoudsopgave in Word)
  • Gebruik een voettekst met daarin, (links)namen, (midden)documentnaam, (rechts)blz. nummering in het format Pagina X van X.
  • nummer de pagina’s behalve titelblad.
  • De (hoofd)letters die jij voor de hoofdstuktitels enz. gebruikt moeten consequent van dezelfde soort zijn.
  • Het standaard lettergrootte dat je gebruikt is 11pt.

Verwijzingen en/of voetnoten dienen steeds op dezelfde wijze te zijn aangegeven.

Algemeen

Wanneer je informatie van Internet haalt let dan op het volgende:

  • letterlijk kopiëren van Internet is niet goed. Filter alle onnodige informatie er tussenuit en geef duidelijk antwoord op de vragen, niet meer en niet minder.

Bewaar zelf altijd een digitale kopie van de instructie. Op deze manier heb je altijd een back-up van jouw document en kun je dit document later gebruiken als referentie materiaal.

Beoordeling communicatie

Tijdens het beoordelen van de communicatie wordt er op de volgende punten gelet:

  • Zijn er vooraf afspraken over onderlinge normen en waarden gemaakt?
  • Hoe is er met problemen om gegeaan?
  • Welke communicatiemiddelen zijn er gebruikt?
  • Hoe is de samenwerking verlopen?
  • Voelen de teamleden zich serieus genomen?
  • Is een ieders mening en idee welkom?
  • Is er voldoende motivatie- of vaardigheid?
  • Worden hoofd- en bijzaken herkend?
  • Is er gebruikt gemaakt van LSD:)(Luisteren, Samenvatten en Doorvragen)

Kerntaak 1: Ontwerpen van de applicatie, (cross)media-uiting

De volgordelijke plaats van de documenten binnen het proces:

Behoefteanalyse --------> Functioneel ontwerp --------> Technisch ontwerp ------------->
Plan van aanpak --------------------------------------------------------------------------->

Bovenstaande betekent dat werkproces 1.2 parallel loopt aan de andere werkprocessen en van invloed is op alle te schrijven documenten binnen kerntaak 1.

Werkproces 1.1 Stelt de vraag en/of informatiebehoefte vast

Doel: Verwachtingen afstemmen
Input: Projectbeschrijving/Briefing/RFP
Output: Schriftelijk advies/Offerte
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: Opdrachtgever

Vragen die gesteld moeten worden

Hieronder staan een aantal voorbeeldvragen, onderverdeeld in groepen. Zowel de vragen als de groepen zijn niet absoluut. Het gaat erom dat je na je gesprek een duidelijk beeld hebt van de vraag van de klant.

Uitleg:
Het is handig te beginnen met wat algemene vragen:
  • Wat is de aanleiding?
  • Wanneer moet het af zijn?
  • Noem vijf tot tien termen/woorden die van toepassing moeten/kunnen zijn op de toekomstige applicatie/website.
Natuurlijk wil je weten wat het doel is en wie de doelgroep is:
  • Wat wilt u met de applicatie bereiken? (Nieuwe klanten aantrekken, producten verkopen, imagoversterking, bepaalde omzet halen)
  • Welke boodschap moet de website vertellen?
  • Wanneer is de website een succes?
  • Welke taken wilt u dat een websitebezoeker uitvoert?
Vervolgens moet je weten hoe een en ander eruit gaat zien, de zogenoemde ‘look and feel’:
  • Wat voor gevoel moet de gebruiker krijgen?
  • Beschrijf de gewenste uitstraling.
  • Moet er een bepaalde huisstijl gebruikt worden?
  • Werk met voorbeelden van bestaande applicaties/websites en laat er commentaar op geven.
Ook wil je weten welke functionaliteit er moet zijn:
  • Welke informatie moet de applicatie/website bieden?
  • Welke informatie moeten gebruikers krijgen?
  • Moeten er berichten worden getoond?
  • Om wat voor soort berichten gaat het en hoe vaak komen ze voor?
  • Moet de gebruiker kunnen zoeken?
  • Wie beheert de content en wie levert deze aan?
  • Wie is verantwoordelijk voor de redactie?
  • Is er een koppeling met sociale media en wie is hier verantwoordelijk voor?
Vragen over onderhoud:
  • Wie is verantwoordelijk voor het onderhoud?
  • Moet er gebruik gemaakt worden van een Content Management Systeem, zo ja, welk?
  • Is er ervaring met een Content Management Systeem?
  • Hoe moet het onderhoud (intern of extern) geregeld worden?

Werkproces 1.2 Maakt een plan van aanpak

Doel: Vastleggen wat je gaat doen
Input: Schriftelijk advies, !! Feedback van de opdrachtgever
Output: Plan van aanpak
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: Opdrachtgever en team

Plan van aanpak:

Toelichting

In dit onderdeel geef je achtergrondinformatie over het project. Je geeft een situatieschets en je omschrijft de aanleiding van het project. Vaak komt een project voort uit een probleem dat moet worden opgelost. Als dat zo is, dan omschrijf je hier het probleem en eventueel de oorzaken ervan. In dit onderdeel kun je ook de structuur van het plan van aanpak benoemen. Dat geeft de lezer duidelijkheid over wat hij kan verwachten. Let er op dat je de aanleiding niet verwart met de doelstelling, deze bespreek je pas onder het volgende kopje.

Uitleg:
Situatieschets:
  • Korte bondige bedrijfsomschrijving
  • In welke omgeving (sector, markt, afdeling etc.) speelt het probleem zich af?
Aanleiding:
  • Waar komt de vraag vandaan, wat is de reden van de opdracht?
Probleemanalyse:
  • Wat is het probleem? Waarom is het een probleem? Wanneer is het een probleem? Waar doet het probleem zich voor? Wie heeft het probleem? Hoe lang bestaat het probleem al? Wat zijn mogelijke oorzaken? Wat is de urgentie? Hoe groot is het probleem?

Doelstelling

Onder dit kopje vertel je wat je wilt bereiken met het project. Wat is het doel? Waartoe leidt het project? Het kan zijn dat een project meerdere doelstellingen heeft, noem deze dan allemaal. Vertel ook waarom het (voor de opdrachtgever) van belang is dat de doelen worden bereikt.

Uitleg:
Doelstelling:
  • Waarom wordt dit project uitgevoerd?
  • Wat is het belang van de opdrachtgever?
  • Wie heeft welk mogelijk voordeel van uitvoering van dit project?

Omschrijving

Uitleg:
Wat: Wat wordt er opgeleverd (definieer dit in concrete en/of meetbare resultaten)?

Leden projectgroep

Uitleg:
Wie:
  • Wie gaat het project uitvoeren? Wie zit er in het ontwikkelteam?
  • Wie is jouw projectleider?
  • Wie is de opdrachtgever?

Documenteer van een ieder de naam, emailadres en functie.

Benodigdheden

Uitleg:
Waarmee: Waarmee is dit project te realiseren? Denk aan werkplek, vergaderplek, voorzieningen, hardware en software

Takenlijst

Uitleg:
Hoofdtaken: Beschrijf de hoofdtaken in dit project? Denk aan ontwerpen, realiseren, implementeren en beheren
Begin- en einddata: Noteer jouw inschatting van de begin- en einddata voor elke hoofdtaak? En geef in uren aan hoeveel tijd hiermee gepaard gaat.

Planning

Als laatste neem je in je plan van aanpak een projectplanning op. Zo verdeel je de taken onderling. In de planning staat overzichtelijk (vaak schematisch) aangegeven wie wat wanneer doet. Wees kritisch en zorg dat je geen onderdelen vergeet. Je neemt bijvoorbeeld ook in de planning op wanneer er geëvalueerd wordt of er een overleg gewenst is.

Uitleg:
Subtaken: Beschrijf de subtaken om de hoofdtaak ontwerp op te kunnen leveren, denk aan dit PvA, FO en TO
Begin- en einddata en tijden: Noteer jouw inschatting van de begin- en einddata en tijden voor elke subtaak? En geef in uren aan hoeveel tijd hiermee gepaard gaat.
Betrokkenen: Documenteer wie er voor de subtaak nodig is.
Oplevering: Documenteer op welke manier de subtaak wordt opgeleverd, denk aan op papier, digitaal of overleg/presentatie.

Werkproces 1.3 Levert een bijdrage aan een functioneel ontwerp of Game Design Document

Doel: Vastleggen hoe je het gaat doen vanuit de gebruikers
Input: Schriftelijk advies en PvA
Output: Functioneel ontwerp
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: Opdrachtgever en team

Functioneel ontwerp:

  • Doelgroep/Eindgebruikers > Wie zijn ze?, wat verwachten ze, hoe benaderen we ze
  • Eisen omzetten naar functionaliteiten/userstories
  • Per functionaliteit/userstory een wireframe of klikbare prototype
  • Sitemap/Menustructuur
  • Stroomdiagram van een belangrijke functionaliteit/userstory
  • Opzet van een acceptatietestplan uit te voeren in KT2
  • Eenvoudige beschrijving van afhankelijkheden van andere systemen/bronnen/diensten/API’s/sites

Werkproces 1.4 Maakt een technisch ontwerp

Doel: Vastleggen hoe en waarom je het gaat doen vanuit de techniek
Input: Schriftelijk advies, Functioneel ontwerp
Output: Technisch ontwerp
Beoordeling: Projectbegeleider
Voor wie: Teamleden en nieuwe medewerkers

Technisch ontwerp:

  • Per complexe functionaliteit/userstory een wireframe met gedetailleerde uitwerking
  • Toelichten van de gekozen oplossing(en)
  • Database ontwerp/model / Entity Relation Diagram / Type velden
  • Sequence diagram van een complexe functionaliteit/userstory
  • Volledige beschrijving van afhankelijkheden van andere systemen/bronnen/diensten/API’s/sites

Werkproces 1.5 Richt de ontwikkelomgeving in

Doel: Inzicht verkrijgen van OTAP omgevingen
Input: Functioneel Ontwerp en Technisch Ontwerp
Output: Resultaat opnemen in het technisch ontwerp
Beoordeling: Projectbegeleider
Voor wie: Teamleden en nieuwe medewerkers

Beschrijving inrichting van ontwikkelomgeving:

  • Welke ontwikkelomgeving er gebruikt gaat worden
  • Welke taal ga je gebruiken
  • Welke hulpmiddelen heb je nodig
  • Hoe pak je de inrichting aan en is het gelijk aan de productieomgeving

Kerntaak 2: Realiseren van de applicatie, (cross)media-uiting

Werkproces 2.1 Legt een gegevensverzameling aan

Doel: Aantonen van kennis van het bewerken en analyseren van data
Input: Functioneel Ontwerp en Technisch Ontwerp
Output: Digitaal formaat met data
Beoordeling: Projectbegeleider
Voor wie: Teamleden

Fysiek bewijs in digitaal formaat:

  • Database aanmaken
  • Back up/dump van database
  • Database moet op zijn minst gevuld zijn met voorbeeld data

Werkproces 2.3 Realiseert een (cross)media uiting en/of systeem

Doel: Aantonen dat je in staat bent om te programmeren volgens documentatie en planning
Input: FO, TO en planning
Output: Digitaal formaat met data, screenshots van het systeem en een realisatieverslag
Beoordeling: Projectbegeleider
Voor wie: Teamleden

Fysiek bewijs in digitaal formaat:

  • Gehele back up van project
  • Moet gevuld zijn met voorbeelddata
  • Opgenomen in versiebeheer
  • Screenshots van het systeem (applicatie en database)
  • Conventie en documentatie

Realisatieverslag:

  • Persoonlijke logboek in verhaalvorm
  • Wat ging goed of fout -> noem voorbeelden

Werkproces 2.5 Test het ontwikkelde product

Input: Testplan uit het Functioneel Ontwerp en TO
Output: Acceptatietestrapport
Beoordeling: Projectbegeleider
Voor wie: De opdrachtgever

Acceptatietestrapport:

  • Beschrijving van wat je gaat testen zoals beschreven in FO
  • Overzicht van testers en hun inzet
  • Uitvoeren van de test
  • Screenshots van het testen (eventuele foutmeldingen)
  • Verzamelen testresultaten en verbeteringen beschrijven
  • Uitvoeren van de verbeteringen

Werkproces 2.6 Optimaliseert de game of (cross)media-uiting

Input: Acceptatietestrapport
Output: Optimalisatieplan
Beoordeling: Projectbegeleider vervolgens opdrachtgever
Voor wie: Opdrachtgever en teamleden

Optimalisatieplan:

  • Gebruiksvriendelijkheid rapport
  • Toegankelijkheid rapport
  • Overzicht zoekmachine instellingen

Werkproces 2.7 Bewaakt de voortgang en evalueert het project

Input: Plan van aanpak en teamvergaderingen
Output: Actuele gedetailleerde activiteitenplanning en Evaluatie
Beoordeling: Projectbegeleider
Voor wie: Opdrachtgever en teamleden

Actuele gedetailleerde activiteitenplanning:

  • Teamleden
  • Tijdindeling
  • Meetpunten

Evaluatie

  • Verzamelen teamfeedback betreft jouw eigen inzet en verbeterpunten beschrijven

Kerntaak 3: Implementeren van de applicatie of (cross)media-uiting

Werkproces 3.1 Maakt of levert een bijdrage aan het implementatieplan

Input: De gerealiseerde applicatie
Output: Implementatieplan en presentatie
Beoordeling: Projectbegeleider en opdrachtgever
Voor wie: Systeem- en/of Applicatiebeheerder van de productieomgeving

Implementatieplan:

Beschrijf het volgende:

  • Ingrijpende veranderingen in de organisatie
  • Hoe en wie de gegevens gaan converteren, importeren of invoeren
  • Procedures en verantwoordelijkheden
  • Uitrol(deploy) aanpak(big bang, gefaseerd, parallel, gecombineerd?)
  • Stappen in de vorm van een draaiboek op basis van tijd
    • Alle te installeren hard- en software
    • Infrastructuur, Servers(Web, DB, Mail etc.) en modules
    • Systeemtest
  • Beheerders training bij ingrijpende veranderingen
  • Te verwachten toekomstige applicatie-, gegevens- en technisch beheer

Presentatie hand-out

  • Presentatie van het implementatieplan aan projectbegeleider, opdrachtgever en betrokken medewerkers

Werkproces 3.3 Implementeert een applicatie of (cross)media-uiting en/of -systeem

Input: Implementatieplan
Output: Implementatierapport
Beoordeling: Projectbegeleider
Voor wie: Systeem- en/of Applicatiebeheerder van de productieomgeving

Implementatierapport:

  • Uitvoeren en documenteren van installatie volgens implementatieplan in samenwerking met beheerder

Werkproces 3.4 Evalueert een implementatie

Input: Implementatieplan en uitkomst van implementatie
Output: Rapport met conclusies en verbeterpunten en procesverslag
Beoordeling: Projectbegeleider en opdrachtgever
Voor wie: Toekomstige beheerders en ontwikkelaars

Procesverslag van het gehele implementatietraject:

  • Hoe verliep de voorbereiding
  • Hoe verliep de uitvoering, denk aan: conversie, invoering, tijdpadbewaking, training, procedures hanteren, overdracht naar beheer

Rapport met conclusies en verbeterpunten

Kerntaak 4: Onderhouden en beheren van de applicatie, (cross)media-uiting

Werkproces 4.1 Onderhoudt applicaties of (cross)media-uiting

Input: Functioneel ontwerp
Output: Onderhoud- en beheerplan, Rapport over de uitvoering van het onderhoud
Beoordeling: Projectbegeleider en opdrachtgever
Voor wie: Systeem- en/of Applicatiebeheerders en toekomstige ontwikkelaars

Onderhoud- en beheerplan:

  • Beschrijven, uitvoeren(en documenteren) van procedures voor:
    • preventief onderhoud zoals updates, monitoring en unit-tests
    • virus bescherming
    • back-up en restore
    • incidenten-registratie
    • (nieuwe) eisen en wensen registratie
  • Rapporteren van alle ondernomen stappen en vervolgacties aan opdrachtgever/projectbegeleider

Werkproces 4.2 Verzamelt, controleert, bewerkt en archiveert (cross)mediabestanden

Input: Alle projectdocumenten
Output: Resultaat opnemen in het onderhoud- en beheerplan en het archief
Beoordeling: Projectbegeleider
Voor wie: Toekomstige beheerders en ontwikkelaars

Archivering (procedures voor het archiveren van (gegevens van) applicaties):

  • Toelichting gewenste format, type, kwaliteit en compressiefactor van de mediabestanden
  • Analyse aangeleverde format, type, kwaliteit en compressiefactor van de mediabestanden
  • Conversie mediabestanden

Archief:

  • Digitaal formaat

Werkproces 4.3 Bewaakt de samenhang van media-uitingen

Input: De gerealiseerde applicatie
Output: Resultaat opnemen in het onderhoud- en beheerplan
Beoordeling: Projectbegeleider en opdrachtgever
Voor wie: Toekomstige beheerders en ontwikkelaars

Media-uitingen:

  • Audio en visuele stijl samenhang controle(sluit de stijl aan bij andere media-uitingen van de opdrachtgever)
  • Advies over andere (sociale)media mogelijkheden

Werkproces 4.4 Stelt script samen ten behoeve van het samenvoegen van content

Input: De gerealiseerde applicatie
Output: Resultaat opnemen in het onderhoud- en beheerplan
Beoordeling: Projectbegeleider en opdrachtgever
Voor wie: Toekomstige beheerders en ontwikkelaars

Opmaak:

  • Weergave en uitleg van gebruikte opmaak/gridsysteem/theme/template

Werkproces 4.5 Beheert de content

Input: Onderhoud- en beheerplan
Output: Resultaat opnemen in het onderhoud- en beheerplan en fysiek bewijs in digitaal formaat met screenshots van het systeem
Beoordeling: Projectbegeleider
Voor wie: Toekomstige gebruikers, beheerders en ontwikkelaars

Contentbeheer:

  • Korte beschrijving van de route die content aflegt vanaf creatie tot publicatie
  • Beschrijving van verdeling van rollen, rechten en verantwoordelijkheden
  • Beschrijving van procedures/regels voor aanleveren van bruikbare content
  • Gebruikershandleiding en instructies van de wijze waarop content in de applicatie(s) wordt bewerkt en ingebracht
  • Bewerking van analoge naar digitale content (scannen, converteren, etc.)

Behoefteanalyse

Het Plan Van Aanpak

Functioneel ontwerp

Technisch ontwerp

Beschrijving van de ontwikkelomgeving

Wanneer jouw ultieme app in jouw hoofd zit en je die eerste stap op weg naar het ‘maken’ wil zetten kan het zeer overweldigend zijn om van jouw verbeelding tot implementatie te raken. Onderstaande is een stap-voor-stap plan om te voorkomen dat je zaken mist tijdens het coden van jouw app.

Ontwerp

  1. bestudeer aangeleverd materiaal/docuuuumentatie
  2. stel indien nodig vragen
  3. maken van de planning in trello en het kwaliteitshandboek
  4. ontwikkelomgeving opzetten
  5. creeer databasescript adhv TO
  6. vul de database met testgegevens
  7. rol de database uit
  8. quickwins en prio bepalen
  9. planning bijwerken/splitsen in trello
  10. basis wireframe maken
  11. beslissen welke conventies gebruikt worden
  12. scaffolding directory structuur inrichten

Realisatie

  1. header en footer maken
  2. algemene styling bepalen
  3. core/router bouwen
  4. DataBase class bouwen indien nodig
  5. MVC methodes agile ontwikkelen:
    1. wireframe van functionaliteit maken
    2. documenteren: beschrijf functionaliteit testscenario in testplan
    3. controller: nieuwe method bouwen en naar model sturen
    4. model: DataBase class requiren of ingebouwde PDO class gebruiken
    5. model: nieuwe class bouwen indien nodig
    6. model: nieuwe class voorzien van __construct() en __destruct()
    7. model: nieuwe method bouwen
    8. model: db data fetchen en var_dump testen
    9. model: db data fetchen en return naar controller
    10. view: nieuwe view bouwen
    11. view: specifieke styling toepassen
    12. controller: db data geschikt maken voor view
    13. controller: include view in method
    14. testen: testscenario testen
    15. documenteren: testresultaat in testlog verwerken
    16. documenteren: kwaliteitshandboek bijwerken
    17. documenteren: code
    18. documenteren: trello planning bijwerken
    19. herhaal stappen a t/m s

Implementatie

Onderhoud – Beheer

Voorbeeldplanning

Ontwerp
===
08:30 – 08:50 20 bestudeer aangeleverd materiaal/documentatie
08:55 – 08:55 05 stel indien nodig vragen
08:55 – 09:05 10 maken van de planning in trello
09:05 – 09:20 15 ontwikkelomgeving opzetten
09:20 – 10:05 45 creeer databasescript adhv TO
10:05 – 10:10 05 rol de database uit
10:10 – 10:20 10 vul de database met testgegevens
10:20 – 10:35 15 quickwins en prio bepalen
10:35 – 10:40 05 planning bijwerken/splitsen in trello
10:40 – 10:50 07 wireframe maken
10:50 – 11:00 10 scaffolding directory structuur inrichten
Realisatie
===
11:00 – 11:30 30 header en footer maken
11:30 – 11:45 15 algemene styling bepalen
11:45 – 12:15 30 pauze
12:15 – 14:20 125 Eerste functionaliteit
12:15 – 12:20 05 — wireframe
12:20 – 12:25 05 00 documenteren: technische benodigdheden en conventies in TO
12:25 – 12:40 15 00 controller: class en handleRequest of router maken
12:40 – 12:45 05 — controller: handleRequest switch/case en verwijzing of route bepalen
12:45 – 12:50 05 — controller: nieuwe method maken en naar model sturen
12:50 – 12:55 05 — model: DataHandler requiren
12:55 – 13:00 05 — model: nieuwe class maken indien nodig
13:00 – 13:05 05 — model: nieuwe class voorzien van __construct() en __destruct()
13:05 – 13:15 10 20 model: nieuwe method maken
13:15 – 13:20 05 — model: db data fetchen en var_dump testen
13:20 – 13:25 05 — view: nieuwe view maken
13:25 – 13:40 15 10 view: styling toepassen
13:40 – 13:45 05 — model: db data fetchen en ‘return‘ naar controller
13:45 – 13:50 05 — controller: db data klaarzetten voor view
13:50 – 13:55 05 — controller: include view in method
13:55 – 14:00 05 — documenteren: code
14:00 – 14:10 10 — testplan: functioneel en technische test uitvoeren
14:10 – 14:15 05 — documenteren: testresultaat in testplan
14:15 – 14:20 05 — documenteren: trello planning bijwerken

What is computer programming?

How do you plan on programming a computer? Are you going to create a simple calculator? a document editing application? a multi-functional interactive game? something else? Whatever your plans, the road ahead is an interesting one. Computer programming is a challenging and rewarding discipline.

Computer programming is defined as telling a computer what to do through a special set of instructions which are then interpreted by the computer to perform some task(s). These instructions can be specified in one or more programming languages including Java, C, and C++.

A computer goes through a set of steps whose purpose is to achieve something. These steps are instructed to the computer by computer programs. Essentialy, computer programming is the process by which these programs are designed and implemented.

There are many advantages to learning computer programming such as gaining new skills, being able to tell the computer what to do, and becoming better acquainted with computers. Whether you are a computer hobbyist, a student, an IT professional, or are just curious about the subject, learning how to program a computer will be highly beneficial.

While computer programming can be a great tool used to achieve many things, there are a few misconceptions about it. Let’s clear them up!

  • You need to have some kind of special software to write programs

    It does help, but such software is not required, and for beginners it is better to work without it for the purpose of gaining experience.
  • To be a computer programmer, you must have vast technical knowledge

    While it is true that some computer programming languages are highly technical, most do not require you to have vast technical knowledge. So dont worry, you don’t have to be an expert to write code.

With computer programming, you tell the computer what to do. The more you master the subject, the more power to you!

Computer programming concepts

The concepts discussed on this page are essential knowledge to anyone who wants to become skilled in computer programming. While some are not universal, these concepts are present in the majority of computer programming languages and/or are a fundamental part of the programming process.

  • Algorithm
    A set of steps for carrying out a specific task. Algorithms are used extensively in computer programming to arrive at a solution for a problem. The process of creating an algorithm involves documenting all the necessary steps needed to arrive at the solution and how to perform each step. A real world example of an algorithm would be a recipe. The instructions of a typical recipe (add ingredients, mix, stir, etc.) are an algorithm.
  • Source code
    The actual text used to write the instructions for a computer program. This text is then translated into something meaningful the computer can understand.
  • Compiler
    A software tool that translates source code into data that the computer can understand. Specifically, a compiler is used to turn source code into object code. The object code is then passed through a program called a linker which turns it into an executable program.
  • Data type
    The classification of pieces of information in a program. The amount of different data types varies between languages. Typically, there are data types for integers (whole numbers), floating-point numbers (numbers with a decimal part), and single characters. To distinguish between different data types, a computer uses special internal codes.
  • Variable
    A container which represents a value in a program. Variables can store different types of data including numeric values, single characters, and text strings. The value of a variable can change all throughout a program.
  • Constant
    The same thing as a variable with one major difference – the value of a constant does not change, while the value of a variable can change all throughout a program.
  • Conditional
    A set of code that will execute only if a cetain condition is true. Conditionals are used to test expressions and perform certain operations accordingly. For example, you could test a number input by the user and if it is too high print the message “The number entered is to high” and the program exits. Thanks to conditionals, a program can work differently every time it runs.
  • Array
    A special type of variable used in many programming and web languages including PHP, Javascript, and Java that contains a list of related values. For example, a colors array would contain a list of colors.
  • Loop
    A segment of code that executes repeatedly based on a certain condition. Loops are used to perform tasks repeatedly a certain amount of times. For example, if you needed to print the numbers 1 to 10. You can use a loop for this task instead of manually printing all the numbers.
  • Function
    A set of code used to carry out specific tasks. A function can take parameters which will effect its output as well as return values. Functions prevent unneccesary redundancy because you can use them as much as needed instead of retyping some code over and over. For example, if you need to multiply two numbers, instead of doing the calculation manually every time, you can supply the data to a function through some parameters which will do it for you.
  • Class
    A template for a real world object to be used in a program. For example, a programmer can create a car class which represents a car. This class can contain the properties of a car (color, model, year, etc.) and functions that specify what the car does (drive, reverse, stop, etc.). Classes are used in object-oriented programming.

The different types of languages

Not any computer programming language can do anything. There are limitations, and actually, different languages are used for different tasks.

This lesson focuses on:

  • Web languages
  • Software languages
  • The different generations of languages
  • Procedure oriented programming
  • Object oriented programming

Web languages

Used for creating and editing pages on the web. Can do anything from putting plain text on a webpage, to accessing and retrieving data from a database. Vary greatly in terms of power and complexity.

  • HTML
    Hyper Text Markup Language. The core language of the world wide web that is used to define the structure and layout of web pages by using various tags and attributes. Although a fundamental language of the web, HTML is static – content created with it does not change. HTML is used to specify the content a webpage will contain, not how the page functions. Learn HTML at my HTML lessons section.
  • XML
    Extensible Markup Language. A language developed by the W3C which works like HTML, but unlike HTML, allows for custom tags that are defined by programmers. XML allows for the transmission of data between applications and organizations through the use of its custom tags.
  • Javascript
    A language developed by Netscape used to provide dynamic and interactive content on webpages. With Javascript it is possible to communicate with HTML, create animations, create calculators, validate forms, and more. Javascript is often confused with Java, but they are two different languages. Learn Javascript at my Javascript lessons section.
  • VBScript
    Visual Basic Scripting Edition. A language developed by Microsoft that works only in Microsoft’s Internet Explorer web browser and web browsers based on the Internet Explorer engine such as FlashPeak’s Slim Browser. VBScript Can be used to print dates, make calculations, interact with the user, and more. VBScript is based on Visual Basic, but it is much simpler. Learn VBScript at my VBScript lessons section.
  • PHP
    Hypertext Preprocessor (it’s a recursive acronym). A powerful language used for many tasks such as data encryption, database access, and form validation. PHP was originally created in 1994 By Rasmus Lerdorf. Learn PHP at my PHP lessons section.
  • Java
    A powerful and flexible language created by Sun MicroSystems that can be used to create applets (a program that is executed from within another program) that run inside webpages as well as software applications. Things you can do with Java include interacting with the user, creating graphical programs, reading from files, and more. Java is often confused with Javascript, but they are two different languages. Learn Java at my Java lessons section.

Software languages

Used for creating executable programs. Can create anything from simple console programs that print some text to the screen to entire operating systems. Vary greatly in terms of power and complexity.

  • C
    An advanced programming language used for software application development. Originally developed by Dennis Ritchie at Bell Labs in the 1970’s and designed to be a systems programming language but since then has proven itself to be able to be used for various software applications such as business programs, engineering programs, and even games. The UNIX operating system is written in C.
  • C++
    Descendant of the C language. The difference between the two languages is that C++ is object-oriented. C++ was developed by Bjarne Stroustrup at Bell Labs and is a very popular language for graphical applications.
  • Visual Basic
    A language developed by Microsoft based on the BASIC language . Visual Basic is used for creating Windows applications. The VBScript language (also developed by Microsoft) is based on Visual Basic.
  • Java
    A powerful and flexible language created by Sun MicroSystems that can be used to create applets (a program that is executed from within another program) that run inside webpages as well as software applications. Things you can do with Java include interacting with the user, creating graphical programs, reading from files, and more. Java is often confused with Javascript, but they are two different languages. Learn Java at my Java lessons section.

The different generations of languages

There are currently five generations of computer programming languages. In each generation, the languages syntax has become easier to understand and more human-readable.

  • First generation languages (abbreviated as 1GL)
    Represent the very early, primitive computer languages that consisted entirely of 1’s and 0’s – the actual language that the computer understands (machine language).
  • Second generation languages (2GL)
    Represent a step up from from the first generation languages. Allow for the use of symbolic names instead of just numbers. Second generation languages are known as assembly languages. Code written in an assembly language is converted into machine language (1GL).
  • Third generation languages (3GL)
    With the languages introduced by the third generation of computer programming, words and commands (instead of just symbols and numbers) were being used. These languages therefore, had syntax that was much easier to understand. Third generation languages are known as “high level languages” and include C, C++, Java, and Javascript, among others.
  • Fourth generation languages (4GL)
    The syntax used in 4GL is very close to human language, an improvement from the pervious generation of languages. 4GL languages are typically used to access databases and include SQL and ColdFusion, among others.
  • Fifth generation languages (5GL)
    Fifth generation languages are currently being used for neural networks. A nueral network is a form of artifical intelligence that attempts to imitate how the human mind works.

Procedure-oriented programming

A type of programming where a structured method of creating programs is used. With procedure-oriented programming, a problem is broken up into parts and each part is then broken up into further parts. All these parts are known as procedures . They are separate but work together when needed. A main program centrally controls them all.

Some procedure-oriented languages are COBOL, FORTRAN, and C.

Object oriented programming

A type of programming where data types representing data structures are defined by the programmer as well as their properties and the things that can be done with them. With object-oriented programming, programmers can also create relationships between data structures and create new data types based on existing ones by having one data type inherit characteristics from another one.

In object-oriented programming, data types defined by the programmer are called classes (templates for a real world object to be used in a program). For example, a programmer can create a data type that represents a car – a car class. This class can contain the properties of a car (color, model, year, etc.) and functions that specify what the car does (drive, reverse, stop, etc.)

Some object-oriented languages are C++, Java, and PHP.

Copyright © 2024 Prep Hard Win Easy

Theme by Jim DunkUp ↑