• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/76

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

76 Cards in this Set

  • Front
  • Back

IoT

The Internet of Things (IoT) is the network of physical objects or "things" embedded with electronics, software, sensors, and network connectivity, which enables these objects to collect and exchange data.[1] The Internet of Things allows objects to be sensed and controlled remotely across existing network infrastructure,[2] creating opportunities for more direct integration between the physical world and computer-based systems, and resulting in improved efficiency, accuracy and economic benefit;[3][4][5][6][7][8] when IoT is augmented with sensors and actuators, the technology becomes an instance of the more general class of cyber-physical systems, which also encompasses technologies such as smart grids, smart homes, intelligent transportation and smart cities. Each thing is uniquely identifiable through its embedded computing system but is able to interoperate within the existingInternet infrastructure. Experts estimate that the IoT will consist of almost 50 billion objects by 2020.[9]

Semantisk webb

Den största delen av webben idag är till för oss människor att läsa, inte för maskiner att förstå. Den semantiska webben handlar om att skapa data till innehållet som gör att maskiner kan förstå och dra slutsatser kring informationen som finns. Exempelvis genom att använda en agent vid en sökning som väljer ut, sammanställer och kombinerar information från flera olika webbsidor och ger dig ett snabbt sökresultat. Detta bygger givetvis på att agenten kan förstå begrepp och sambanden mellan olika begrepp. Därför behöver man koppla information till informationen som ger maskinerna den semantik de behöver för att kunna dra dessa slutsatser.
För att kunna dra slutsatser utifrån olika webbsidor behöver agenten även förstå relationerna mellan olika begrepp. Inom datavetenskapen används begreppet ontologier för att beskriva dessa samband. En ontologi kan vara relationen mellan ort, postnummer och gatuadress. Platsen som du bor på kan betecknas på många olika sätt. För att sökagenten ska förstå att dessa betyder samma sak och kunna hitta de bilmekaniker som finns i din närhet behöver den en ontologi som förklarar sambanden agenten behöver utgå ifrån. Program som hjälper oss att ge maskinerna den semantik och de ontologier de behöver för att kunna förstå informationen som finns på webben idag har börjat poppa upp på marknaden.

Programmeringsspråk

Programmeringsspråk är ett sätt för människor att kunna skicka instruktioner till datorer. Programmeringsspråken är designad för att kunna tolkas och hanteras utav människor för att sedan översättas till binär kod som datorn bättre förstår.

C

C utvecklades av Dennis Ritchie 1972 och är ett imperativt programmeringsspråk, dvs datorn tolkar koden som en sekvens av instruktioner. C passar bra till att bygga spel och applikationer då det är snabbt och pålitligt. Till skillnad från många andra programmeringsspråk så innehåller C ett relativt litet inbyggt biliotek av funktioner vilket gör att man får skapa de funktioner man behöver på egen hand. C har använts bland annat till att koda olika Operativsystem så som Windows och Unix/Linux.

C++

C++ skapades för att kombinera kraftfullheten från C med objektorienterad programmering (vilket innebär att koden kan återanvändas). C++ innehåller en del inbyggda bibliotek och anses generellt vara ett något tyngre programmeringsspråk än C men fortfarande ett av de snabbare språken. Språket lämpar sig väl till simuleringar och används därför ofta till t ex spel och applikationer.

Java

Java utvecklades av Sun Microsystems som ett alternativ till C och C++. Språket fungerar bra till utveckling av applikationer på webben då den är plattformsoberoende. Till skillnad från många andra programmeringsspråk (T ex C och C++) så omvandlas Javakod inte direkt till maskinkod utan istället till bytekod som sedan körs i en virtuell maskin på datorn. Fördelen med detta är att koden inte behövs skrivas om för respektive system den ska köras på, däremot så har det orsakat en del prestandaproblem i form av att applikationer kan upplevas som långsamma. En av de stora fördelarna med Java är att de använder sig av automatisk ”garbage collection” vilket innebär att man som programmerare inte själv behöver skriva kod för hur applikationen ska göra sig av med data som inte längre behövs lagras.

C#

C# är ett programmeringsspråk utvecklat av Microsoft för att fylla ungefär samma funktion som Java. Det lämpar sig bäst för webapplikationer och trots att det ”egentligen” är platformsoberoende så fungerar det bäst på Windows. Precis som Java så använder det sig av en automatisk ”garbage collection”.

Obj-C

Obj-C utvecklades på 1980-talet och är en vidareutveckling av C som i dagsläget används i iOS och OS X. Obj-C är till väldigt stor del kompatibelt med C vilket gör koderna väldigt lätta att integrera med varandra. Språket lämpar sig bra till applikationer och spel i Apple-miljöer.

Swift

Swift är ett lätt och snabbt språk som togs fram av Apple som ett alternativ till Obj-C och används idag ofta för utveckling av spel och applikationer till iOS och OS X. Till skillnad från mer klassiska programmerinspråk (så som t ex C) så använder sig Swift inte av s k pekare i sin kod.

PHP

PHP eller PHP: Hypertext Preprocessor, är ett scriptspråk optimerat för att stödja dynamiskt innehåll på websidor. Koden går att bra att integrera med HTML vilket gör den väldigt populär hos webutvecklare. Själva koden körs vanligtvis direkt från servern och används idag på stor del av alla världens websidor.

Ruby

Ruby utvecklades i mitten på 90-talet och är ett objektorienterat programmeringsspråk. Koden är designad för att man ska kunna skriva den på olika vis för att göra samma sak vilket är en fördel för den som utvecklar i språket men gör koden svårare för andra att sätta sig in. Rubykod tolkas direkt av datorn istället för att kompileras. Koden kan använda på flera olika plattformar och är väldigt allsidig då den både fungerar bra till likväl större system och kortare script som webapplikationer.

Python

Python är ett multiparadigmspråk som tillhör både objektorienterad och funktionell programmering. Koden tar relativt lite lagringsutrymme och lämpar sig därför väl för websidor och mindre system som inte har möjlighet att köra koden från hårddisk. Eftersom att språket är gjort för likna Engelska så anses det ofta som lätt att lära sig.


//////////////////////


Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java.The language provides constructs intended to enable clear programs on both a small and large scale.[25]Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library.[26]Python interpreters are available for installation on many operating systems, allowing Python code execution on a wide variety of systems. Using third-party tools, such as Py2exe or Pyinstaller,[27] Python code can be packaged into stand-alone executable programs for some of the most popular operating systems, allowing the distribution of Python-based software for use on those environments without requiring the installation of a Python interpreter.

Go

Go utvecklades av Google då man ansåg att moderna ITmiljöer med multipla processorer och jättestora nätverkskluster inte fungerade optimalt då de körde med föråldrade programmeringsspråk så som C eller C++. Koden är utvecklad för att användas i större distribuerade system samt i skalbara miljöer. Några av fördelarna med Go är att det kompileras väldigt fort samt att den precis som Java har automatisk ”garbage collection”. Teoretiskt sätt så skulle det lämpa sig väl för att skriva operativsystem i även om det i dagsläget inte finns några OS kodade i det.

JavaScript

JavaScript började som en insticksmodul för webapplikationer men har sedan dess utvecklats och är idag ett av de populäraste scriptspråken. Koden körs i klientens webbläsare vilket är fördelaktigt då det belastar användarens processor istället för serverns. JavaScript används framförallt på websidor för att implementera funktionalitet, t ex för att göra automatiskt kontroll av klientens webbläsare och anpassa sidan därefter.

Server

Klient/server modellen bygger på att en aktör (klient) skickar en förfrågan och en annan aktör (server) besvarar den förfrågan och eventuellt även skickar över begärd data. Klienten kan vara exempelvis en användare som vill besöka: www.aftonbladet.se via webbläsaren på sin dator. I samma sekund som användaren har skrivit in adressen i navigationsfältet på webbläsaren kommer en förfrågan om att hämta hem webbsidan skickas till en server hos aftonbladet.se. Servern kommer i sin tur returnera ett svar som innehåller beslut om huruvida den vill godkänna klientens förfrågan samt eventuellt även skicka med den önskade informationen. I detta fall kanske den skickar tillbaka index.html följt utav annan media på sidan t ex bilder. Beroende på vilken data klienten frågar efter så kommer webservern antingen själv skicka tillbaka den efterfrågade informationen alternativt skicka vidare förfrågan till ett system i backend för assistans med att besvara klientens begäran.

Klient

Klient/server modellen bygger på att en aktör (klient) skickar en förfrågan och en annan aktör (server) besvarar den förfrågan och eventuellt även skickar över begärd data. Klienten kan vara exempelvis en användare som vill besöka: www.aftonbladet.se via webbläsaren på sin dator. I samma sekund som användaren har skrivit in adressen i navigationsfältet på webbläsaren kommer en förfrågan om att hämta hem webbsidan skickas till en server hos aftonbladet.se. Servern kommer i sin tur returnera ett svar som innehåller beslut om huruvida den vill godkänna klientens förfrågan samt eventuellt även skicka med den önskade informationen. I detta fall kanske den skickar tillbaka index.html följt utav annan media på sidan t ex bilder. Beroende på vilken data klienten frågar efter så kommer webservern antingen själv skicka tillbaka den efterfrågade informationen alternativt skicka vidare förfrågan till ett system i backend för assistans med att besvara klientens begäran.

HTTP

Http 1.1 är i dagsläget den mest använda versionen av http. Protokollet definierar hur meddelanden formateras och skickas över nätverk, samt hur webbservrar och klienter (tex en webbläsare) ska agera utifrån särskilda koder/ kommandon. Http 1.1 är en vidareutveckling av äldre versioner av http och en av de stora skillnaderna mellan 1.1 och 1.0 var att man med denna version var tvungen att ha en ”header” vilket bl a gjorde det möjligt för proxyservrar att dirigera ens trafik. Hur vi navigerar på webben har ändrats mycket sedan http 1.1 och i dagsläget börjar bristerna i den nuvarande versionen av protokollet att synas. Eftersom att mängden olika sorters information vi vill hämta från en webbsida hela tiden ökar (video, bilder, ljud, skript etc) så är det viktiga att man har ett protokoll som är skapat för att hantera den sortens nätverkstrafik. En av nackdelarna med http 1.1 är varje förfrågan om att hämta hem en ny resurs från en webbserver kräver att en ny anslutning görs. För att detta ska fungera någorlunda smidigt över TCP finns det ofta en begränsning i webbläsaren som limiterar antalet anslutningar till . Förutom detta så är http 1.1 ett relativt upprepande protokoll. Informationen i http headern är till stor del den samma för varje enskilt paket vilket gör att mer data än nödvändigt måste skickas fram och tillbaka mellan server och klient. Http är aktiv i applikationslagret av OSImodellen (dvs lager 7). I dagsläget finns det åtminstone 1 alternativ till http (om klient och server är kompatibla dvs) och det är googles egna protokoll: SPDY.

HTTPS

Https är byggt för att fylla samma funktions som http men med den skillnaden att det ska vara säkrare. Https är http ovanpå SSL (secure sockets layer). Man har valt att fokusera på två saker för att säkerställa att protokollet är säkrare än vanlig http. Dels så döljer man datatrafiken för obehöriga genom att kryptera innehållet och dels så garanterar man att båda parter är de, de utgör sig för att vara genom att använda sig av säkerhetscertifikat. Eftersom att det krävs fler kontroller (hand shakes) för att garantera att https används och efterföljs, än vad det gör att använda vanlig http, så är en av nackdelarna att det går något långsammare att använda https. En annan nackdel med https är att inte alla webbläsare stödjer det. Tekniken är idag väldigt vanlig och används främst då känslig information skickas mellan server och klient. T ex kan detta vara inloggningsuppgifter då du loggar in mot din bank, som man såklart inte vill ska skickas i ren text då man skulle kunna utsättas för en s k ”man in the middle”-attack. Gällande var man placerar in https i OSI-modellen så verkar det råda oklarheter. Vanliga http arbetar i applikationslagret (lager 7) och SSL (som https bygger på) initieras i sessionslagret (lager 5) (dvs handshake genomförs här) men trafiken krypteras i presentationslagret (lager 6). Https är således aktiv någonstans i eller mellan lager 5 och 7. I dagsläget finns det inga riktiga utmanare till https när det gäller säker webbtrafik. Det går dock att implementera liknande funktionalitet med hjälp av Java Script och det ska även gå bra att använda sig av SPDY eller ”Secure Remote Password protocol”.

CRUD

CRUD står för: Create, Read, Update och Delete och är en uppsättning grundläggande kommandon för att hantera och modifiera data.

REST

CRUD och REST är inte samma sak även om de i stort sett använder sig av identiska operationer för datahantering. REST står för Representational State Transfer och är precis som CRUD en uppsättning kommandon för att hantera och modifiera data i en databas. Skillnaden mellan CRUD och REST är att CRUD manipulerar data direkt medan man med REST arbetar med en representation av data i form av en URI. Rest utgår från att man jobbar mot en resurs och skickar med en http-grundmetod (t ex GET). REST bygger på URIer men metoder ska inte inkluderas i URIerna. Gör man det detta räknas det inte längre som restfull (utan kallas istället RESTish).

CMS

CMS står för ”Content Management System” och är en applikation för att lätt kunna hantera och modifiera information på t ex en webbsida. CMS används ofta för att underlätta för den som modifierar innehållet eftersom att man slipper editera själva källkoden. Många CMS använder sig av CRUD när de väljer hur deras applikation ska kommunicera med en databas.

Märkspråk

Ett märkspråk är ett sätt att genom textkoder tala om för exempelvis en webbläsare hur information på webbsida ska struktureras och presenteras. Märkspråket kan således användas för att manipulera den grafiska representationen av innehållet på ett sådant vis att man bland annat kan inkludera video och foto.

SOA

SOA står för “service oriented architecture” och är ett sätt att dela upp sin IT-miljö på. Istället för att dela upp sin ITmiljö i hårdvara, mjukvara och kopplingarna däremellan så väljer man med SOA att dela upp sin ITmiljö i tjänster istället. T ex kan man låta tjänsten: ”kolla lagersaldo” utgöra en modul i ens ITMiljö. Denna modul representerar då alla delar (mjukvara, hårdvara och kopplingar däremellan) för att denna funktion ska fungera. Detta arbetssätt underlättar när man ska modifiera sin ITmiljö eller om man vill låna moduler av någon annan utvecklare och implementera i sin egen miljö.

API

API står för: ”Application Program Interface” och är en kombination av olika protokoll, algoritmer och verktyg för att konstruera applikationer. Ett API specificerar hur olika applikationer kan kommunicera med varandra. Med ett API bestämmer man vilken information man vill offentliggöra (om man nu vill göra den offentlig) så att den kan utnyttjas utav andra applikationer.

Webb-API

An API (Application Programming Interface) is the means by which third parties can write code that interfaces with other code. A Web Service is a type of API, one that almost always operates over HTTP (though some, like SOAP, can use alternate transports, like SMTP). The official W3C definitionmentions that Web Services don't necessarily use HTTP, but this is almost always the case and is usually assumed unless mentioned otherwise.For examples of web services specifically, see SOAP, REST, and XML-RPC. For an example of another type of API, one written in C for use on a local machine, see the Linux Kernel API.As far as the protocol goes, a Web service API almost always uses HTTP (hence the Web part), and definitely involves communication over a network. APIs in general can use any means of communication they wish. The Linux kernel API, for example, uses Interrupts to invoke the system calls that comprise its API for calls from user space.

Polling

Polling (Request–response) är I dagsläget den vanligaste metoden för en klient att ansluta till en webbsida på. Då användaren har slagit in önskad websida i sin webbläsare och tryckt på ”enter”, kommer en förfrågan om att ladda sidan (ett sk ”get”-kommando) skickas till servern som i sin tur kommer att returnera ett svar och eventuellt även den önskad webbsidan. I och med att den skickar sitt svar så stängs kopplingen mellan klient och server. Varje gång användaren vill interagera med någonting på websidan kommer en ny förfrågan om att få ansluta till servern att göras. Skulle webbsidan uppdateras på serversidan måste klienten manuellt skicka en förfrågan om att sidan ska uppdateras innan uppdateringen syns hos klienten. Denna typ av anslutningsmetod lämpar sig bäst när användaren bara behöver hämta data från sidan ibland: t ex en websida innehållandes enbart text.

Websockets

Ett alternativ till polling är Websockets. Till skillnad från Polling så baseras Websockets-tekniken på att man etablerar en anslutning mellan klient och server som man bibehåller tills man väljer att avsluta den. Då klienten skickar en förfrågan till websidan om att ansluta kan den samtidigt skicka en förfrågan om att få ansluta med websocket. Om detta godkänns av servern kommer Javascript på klienten öppna en anslutning som tillåter att klient och server talar med varandra i full duplex. Websockets är att föredra framför vanlig Polling då man vill hämta flera olika saker (t ex: text, bilder och video) från samma webbsida. Med websockets slipper man att hela tiden etablera nya anslutningar över http (så som beskrivits i del 1) vilket gör att både server och klient belastas mindre än om man använder Polling. Dessutom får man uppdateringar direkt när de sker på servern istället för att klienten ska behöva fråga servern med jämna mellanrum om någonting har förändrats. Nackdelen med websockets är att varje anslutning reserverar en plats på servern tills att klienten är färdig och anslutningen stängs. Detta kan vara negativt i de fall en permanent anslutning mellan klient och server (kan även vara mellan server – server) egentligen inte behövs (t ex en app som bara behöver hämta hem information en gång i timmen).

SOAP

SOAP står för ”Simple Object Access Protocol” och är ett protokoll för att tillåta kommunikation mellan en eller flera datorer på ett nätverk (precis som REST). Till skillnad från REST så är SOAP inte bundet till http utan kan lika gärna användas över andra protokoll så som FTP eller SMTP men är dock bundet till att paketera data som XML. SOAP kan ses som det tyngre och tryggare alternativet till REST och är i stort sett allting som REST inte är. SOAP stödjer funktioner så som WS-Security, för förhöjd säkerhet, och ws-reliable messaging, för att försäkra att datapaketen når fram. Tryggheten och säkerheten i SOAP gör att den oftast är att föredra framför REST i t ex backendsystem. Man kan även göra liknelsen att SOAP är som att ha på sig rustning – vilket är jättebra när man väl behöver det men tungt och klumpigt annars, medan REST är som att vara utan (REST, SOAP, Hypermedia: When, why & how to use what, 2013). Tekniken bakom SOAP bygger på ett äldre protokoll som heter XML-RPC. XML-RPC fattas många av de funktioner som gör SOAP kraftfull t ex WS-security och WS-reliable messaging. Precis som SOAP så är det bundet till HTTP/ HTTPS och bygger på att man arbetar med metoder, men har till skillnad från SOAP inte stöd för andra paketeringsformat än XML. 1. I detta scenario står möjligheten att kunna interagera med företagets API i fokus,

XML-RPC

Tekniken bakom SOAP bygger på ett äldre protokoll som heter XML-RPC. XML-RPC fattas många av de funktioner som gör SOAP kraftfull t ex WS-security och WS-reliable messaging. Precis som SOAP så är det bundet till HTTP/ HTTPS och bygger på att man arbetar med metoder, men har till skillnad från SOAP inte stöd för andra paketeringsformat än XML.

URI

En URI (uniform resource identifier) är en teknik för att identifiera en resurs på ett nätverk. En URI är en generell beskrivning av en resurs på ett nätverk t ex: resource.google.com. Det som gör denna sökväg generell och inte specifik är att protokollet inte är definierat. T ex skulle denna URI kunna peka på både http://resource.google.com och ftp://resource.google.com. När man definierar protokollet som ska användas kallar man det istället för URL (uniform resource locator). En URL är, till skillnad från en URI, den exakta sökvägen till en unik resurs. En URL räknas som en del av URI, däremot så är en URI aldrig en del av en URL. För att en URL/ URI ska räknas som bra strukturerad så vill man först och främst att den ska vara beskrivande och lättläst då detta är en fördel både för människor och maskiner som ska läsa adressen.

URL

Definition: URL is an acronym that stands for Uniform Resource Locator and is a reference (an address) to a resource on the Internet.

TCP

TCP står för ”Transport Control Protocol” och är ett förbindelseorienterat dataöverföringsprotokoll som är aktivt i transportlagret av OSImodellen. Tillsammans med IP så utgör TCP ryggraden för dagens internet och är därför väldigt vanligt förekommande. Protokollet används för att man ska kunna upprätta en relativt pålitlig dataström. En stor fördel med TCP är just att man har implementerat funktionalitet för att säkerställa att datatrafiken kommer fram till mottagaren. Detta försöker man uppnå genom att alltid kontrollera filernas ”checksum” när de når fram – och skulle dennaDel 1kontrollsumma inte stämma överens med vad man har förväntat sig så skickas paketet om tills att summan stämmer. Tyvärr så finns det en baksida av leveranstryggheten i protokollet, när man inte har någon speciell nytta av att kunna garantera att alla datapaket kommer fram så är funktionalitet bara onödig och skapar onödigt mycket datatrafik på nätverket. Ett alternativ till TCP är UDP men då tappar man viss funktionalitet så som att paket inte skickas om.

IP

IP address is short for Internet Protocol (IP) address.IP specifies the format of packets, also called datagrams, and the addressing scheme.An IP address is an identifier for a computer or device on a TCP/IP network. Networks using the TCP/IPprotocol route messages based on the IP address of the destination.

DNS

DNS stands for “domain name system.” Domain names are the human-readable website addresses we use every day. For example, Google’s domain name is google.com. If you want to visit Google, you just need to enter google.com into your web browser’s address bar.However, your computer doesn’t understand where “google.com” is. Behind the scenes, the Internet and other networks use numerical IP addresses (“Internet protocol” addresses). Google.com is located at the IP address 173.194.39.78 on the Internet. If you typed this number into your web browser’s address bar, you’d also end up at Google’s website.We use google.com instead of 173.194.39.78 because addresses like google.com are more meaningful and easier for us to remember. DNS is often explained as being like a phone book – like a phone book, DNS matches human-readable names to numbers that machines can more easily understand.

Protokoll

In order for computers to communicate with one another, standard methods of information transfer and processing have been devised. These are referred to as "protocols" and some of the more common ones such as TCP, IP, UDP, POP, SMTP, HTTP, and FTP are discussed here.

OSI-modellen

he Open Systems Interconnection model (OSI model) is a conceptual model that characterizes and standardizes the communication functions of a telecommunication or computing system without regard to their underlying internal structure and technology. Its goal is the interoperability of diverse communication systems with standard protocols. The model partitions a communication system intoabstraction layers. The original version of the model defined seven layers.A layer serves the layer above it and is served by the layer below it. For example, a layer that provides error-free communications across a network provides the path needed by applications above it, while it calls the next lower layer to send and receive packets that comprise the contents of that path. Two instances at the same layer are visualized as connected by a horizontal connection in that layer.

LAN

A local area network (LAN) is a computer network that interconnects computers within a limited area such as a residence, school, laboratory, or office building.[1] A local area network is contrasted in principle to a wide area network(WAN), which covers a larger geographic distance and may involve leased telecommunication circuits, while the media for LANs are locally managed.Ethernet over twisted pair cabling and Wi-Fi are the two most common transmission technologies in use for local area networks. Historical technologies include ARCNET, Token Ring, and AppleTalk.

Internet

The Internet is the global system of interconnectedcomputer networks that use the Internet protocol suite (TCP/IP) to link billions of devices worldwide. It is a network of networks that consists of millions of private, public, academic, business, and government networks of local to global scope, linked by a broad array of electronic, wireless, and optical networking technologies. The Internet carries an extensive range of information resources and services, such as the inter-linked hypertext documents andapplications of the World Wide Web (WWW),electronic mail, telephony, and peer-to-peernetworks for file sharing.

Port

In computer networking, a port is an endpoint of communication in an operating system. While the term is also used for hardware devices, in software it is a logical construct that identifies a specific process or a type of service.A port is always associated with an IP address of a host and the protocol type of the communication, and thus completes the destination or origination address of a communications session. A port is identified for each address and protocol by a 16-bit number, commonly known as the port number.Specific port numbers are often used to identify specific services. Of the thousands of enumerated ports, 1024 well-known port numbers are reserved by convention to identify specific service types on a host. The protocols that primarily use ports are the transport layer protocols, such as theTransmission Control Protocol (TCP) and the User Datagram Protocol (UDP) of the Internet protocol suite.In the client–server model of application architecture, the ports that network clients connect to for service initiation provide a multiplexing service. After initial communication binds to the well-known port number, this port is freed by switching each instance of service requests to a dedicated, connection-specific port number, so that additional clients can be serviced.

Webbläsare

A web browser (commonly referred to as a browser) is asoftware application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier (URI/URL) and may be a web page, image, video or other piece of content.[1] Hyperlinkspresent in resources enable users easily to navigate theirbrowsers to related resources.Although browsers are primarily intended to use the World Wide Web, they can also be used to access information provided by web servers in private networks or files in file systems.The major web browsers are Firefox, Internet Explorer/Microsoft Edge,[2][3][4] Google Chrome,Opera, and Safari.

SPDY

SPDY är Googles protokoll som körs över http. Det är skapat för att åtgärda många av de brister som man anser att http 1.1 har. SPDY är även det protokoll som anses vara utgångspunkt för http/2 och planen är att inom kort avveckla SPDY för att istället fokusera på http/2. Många av de fördelar man hittar i SPDY är sådant man kommer att ta till vara på och spara till http 2. Ett exempel är ”server push” vilket tillåter en webbserver att underrätta en klient om att det har skett en förändring på sidan. Denna funktion gör det också tillåtet för webbservern att skicka ut filer som den tror klienten kommer att behöva innan klienten har bett om det (alternativ bara ge förslag på detta och då kallas det ”Server hint” istället). En nackdel med SPDY är att den tvingar dig att kryptera din trafik. Om du använder SPDY så måste du göra det över SSL för att mellanliggande routrar och proxyservrar ska klara av att hantera trafiken. Att all trafik med SPDY är krypterad gör den väldigt svår att felsöka och det faktum att alla headers är kodade binärt gör det ännu svårare. I dagsläget används trafiken först och främst av Google och deras tjänster men även av t ex Twitter och Yahoo. Alternativ till SPDY är kanske främst http/2 trots att detta inte finns på marknaden ännu, men annars fungerar ju fortfarande http/1.1 eller https (om man vill ha krypterat). Precis som med https så är det debatterbart i vilket lager i OSI-Del 1modellen protokollet är aktivt eftersom att det använder sig av SSL (men någonstans mellan lager 7-5 bör det vara).

SMTP

SMTP eller ”Simple Mail Transfer Protocol” är ett mycket vanligt förekommande protokoll för att skicka mail mellan klient och server eller server och server. I dagsläget är SMTP den ledande tekniken för att skicka email då man använder sig av sk push-teknik. För att skicka email brukar man använda sig av ett sk ”pull”-protokoll så som IMAP eller POP3. En fördel med SMTP är att mailservern kommer att fortsätta försöka skicka ett email tills att det kommer fram och om det trots allt inte skulle gå att skicka mailet så kommer avsändaren få en notifikation där det står att det har misslyckats. En svaghet i protokollet är att det är textbaserat och relativt känsligt för ”spoofing”- dvs att man utger sig för vara någon annan genom att manipulera avsändaradressen. SMTP är aktivt i översta lagret (lager 7) av OSImodellen. Det finns tekniker som liknar SMTP och som till viss del går att använda som alternativ beroende på vad man vill göra. Ett exempel på detta är LMTP som går att använda då det inte finns någon mailkö på den mottagande sidan.

POP3

POP3 eller ”Post Office Protocol v3” är ett protokoll för att hämta mail från en mailserver. Fördelarna med att använda pop3 är att mailen hämtas av klienten från mailservern och sedan förstörs de på servern. Mailen kommer således inte längre belasta mailserverns hårddisk. Nackdelen med att mailen förstörs på mailservern är att det blir svårare att få tag på de gamla mailen om man skulle byta klient för då är det endast de mailen som ligger på mailservern som kommer att hämtas ner till den nya klienten. I dagsläget är pop3 fortfarande relativt vanligt men är absolut inte lika populärt som IMAP. Protokollet är aktivt i lager 7 i OSI modellen och ett alternativ till pop3 är t ex IMAP.

IMAP

IMAP står för ”Internet Message Access Protocol” och är precis som Pop3 ett protokoll för att hämta hem mail från en mailserver. Till skillnad från Pop3, där mailet försvinner från servern så fort klienten har hämtat hem det, så kommer mailet inte tas bort per automatik från servern om man använder IMAP. Fördelen med att mailet ligger kvar på servern är att varje klient man använder kan hämta hem sin egen kopia och således har man alltid exakt samma mail tillgängliga oavsett vilken klient man använder sig av. En nackdel med detta protokoll är att det kan ta tid att hämta hem samtliga mail då man använder en ny klient. IMAP håller på att vinna mark och används idag ofta istället för Pop3 då man vill hämta mail från mailservern. Precis som de andra protokollen för att hämta och skicka mail så är IMAP aktiv i lager 7 i OSImodellen.Del 1

FTP

FTP står för ”File Transfer Protocol” och är ett nätverksprotokoll för överföring av filer. Det används över TCP för att garantera att filerna kommer fram. Man kan använda FTP t ex för att ladda upp och ladda ner filer från en FTP-server. Detta gör man med hjälp av en FTP klient (kan även vara installerat i ens webbläsare). Fördelar med FTP är att man kan ladda upp flera filer åt gången, man kan köa uppladdningar, man kan skripta uppladdningar och protokollet stödjer överföring av större enskilda filer än vad t ex http gör. Nackdelar med protokollet är att det inte är ett säkert protokoll. Både inloggningsuppgifter och data skickas i klartext vilket gör det möjligt för obehöriga att dels läsa dina inloggningsuppgifter men även att spoofa din trafik. Alternativa sätt att skicka filer över ett nätverk på är att använda http, SSH eller SFTP. FTP är aktivt i lager 7 i OSImodellen.

SSH

SSH betyder ”Secure Shell” och är ett protokoll för att säkert överföra data och kommandon mellan en dator och en server. SSH används t ex för att för över filer via en krypterad tunnel och även för att kunna skicka över kommandon till en SSH-server och på så vis fjärrstyra den. Eftersom att anslutningen är krypterad så är det ett mycket säkrare alternativ att överföra filer på än t ex Telnet. Nackdelar med SSH är att tekniken tunnlar TCP över TCP vilket innebär problem när man börjar tappa paket pga av time out funktionen i TCP protokollet (de båda TCP anslutningar timear ut och blockerar varandra). Liknande tekniker är t ex SFTP (om det gäller överföring av filer) eller Telnet (om det gäller överföring av kommandon). Tekniken är idag vanligt förekommande, framförallt för kontroll av servrar via kommandon och framförallt bland Linuxanvändare där den för många har ersatt Telnet. Precis som med alla andra protokoll som använder kryptering så råder det stora oklarheter om var i OSImodellen den hör hemma. Ungefär samma resonemang som med Https verkar användas här när man diskuterar om var tekniken hör hemma i OSI modellen. Applikationen hamnar i lager 7 och krypteringsfunktionaliteten hamnar i lager 5 och 6.

UDP

UDP eller ”User Datagram Protocol” är ett förbindelselöst protokoll som vi hittar i Transportlagret av OSImodellen. UDP används väldigt ofta då man inte har nytta av all extrafunktionalitet som TCP erbjuder. Detta kan t ex vara DNSuppslag eller streaming av ljud och bild där det är viktigare att datapaketen förs över så snabbt som möjligt än att man faktiskt får fram alla paket (om jag tappar en pixel i ett videosamtal så har jag inte så mycket nytta av att den skickas i efterhand). Fördelarna med UDP är som sagt att det är ett snabbare alternativ till TCP eftersom att all funktionalitet i TCP tar extra utrymme (t ex TCP handshake och congestation control). Nackdelarna med protokollet är att man inte skickar om paket och kan således tappa information. Ett alternativ till UDP är TCP.Del 1

Agila metoder

Agila metoder är en arbetsform som är tänkt att skilja sig från sina föregångare (så som vattenfallsmodellen) genom att vara smidigare och mer lättstyrda. Detta försöker man uppnå genom att ha ett inkrementellt och iterativt arbetssätt i sina projekt där man kontinuerligt visar en bit av projektets utveckling (t ex i form av kod eller annan färdig produkt) för kunden. Detta skiljer sig från mer traditionella metoder så som vattenfallsmodellen som bygger på striktare metoder där man visar produkten för beställaren först när den är helt färdig. Denna form av metoder har sina rötter i bygg och industri-branschen, där det är kostsamt att ändra någonting sent i processen, och är sällan optimalt att utgå från i modern programvaruutveckling. Traditionella projekt skapas ofta kring att en sponsor/beställare anlitar en projektledare som i sin tur utser en projektgrupp. De utvecklar tillsammans en projektplan som där all information finns väl detaljerat redan från början. Sedan låter man varje roll inom projektet arbeta med det för att sedan skicka vidare det till nästa led av projektet. T ex kan det börja hos en resursallokerare, som sedan lämnar över till utvecklare, som lämnar över till testare som till sist lämnar över till en UAT (som kontrollerar så att produkten möter kundens krav). Inom Agila metoder är det mindre fokus på verktyg och formella dokument och istället mer fokus på kommunikation och människor. T ex så poängterar man behovet av att ha många möten mellan kund och projekt ”face to face” där det finns möjlighet att påverka projektet under dess gång.

Vattenfallsmodellen

Agila metoder är en arbetsform som är tänkt att skilja sig från sina föregångare (så som vattenfallsmodellen) genom att vara smidigare och mer lättstyrda. Detta försöker man uppnå genom att ha ett inkrementellt och iterativt arbetssätt i sina projekt där man kontinuerligt visar en bit av projektets utveckling (t ex i form av kod eller annan färdig produkt) för kunden. Detta skiljer sig från mer traditionella metoder så som vattenfallsmodellen som bygger på striktare metoder där man visar produkten för beställaren först när den är helt färdig. Denna form av metoder har sina rötter i bygg och industri-branschen, där det är kostsamt att ändra någonting sent i processen, och är sällan optimalt att utgå från i modern programvaruutveckling. Traditionella projekt skapas ofta kring att en sponsor/beställare anlitar en projektledare som i sin tur utser en projektgrupp. De utvecklar tillsammans en projektplan som där all information finns väl detaljerat redan från början. Sedan låter man varje roll inom projektet arbeta med det för att sedan skicka vidare det till nästa led av projektet. T ex kan det börja hos en resursallokerare, som sedan lämnar över till utvecklare, som lämnar över till testare som till sist lämnar över till en UAT (som kontrollerar så att produkten möter kundens krav). Inom Agila metoder är det mindre fokus på verktyg och formella dokument och istället mer fokus på kommunikation och människor. T ex så poängterar man behovet av att ha många möten mellan kund och projekt ”face to face” där det finns möjlighet att påverka projektet under dess gång.

Lean

Lean är en agil metodik som går ut på att leverera värde från kundens perspektiv och att kontinuerligt förbättra projektprocessen genom att göra sig av med sådant som är onödigt och överflödigt. Metodiken bygger på 3 stycken delar: ”Pull” – att inte producera mer än vad som efterfrågas, ”One Piece Management” – att man fokuserar på en bit i taget (istället för allt på en gång), ”Takt” – hur snabbt man måste producera för att möta kraven samt ”Zero defects” – att inte släppa igenom fel utan endast leverera felfritt.

Kanban

Kanban är en agil metodik, ursprungligen från Japan, där fokus ligger på visualisering av projektprocessen. Man utgår från att besvara följande frågeställningar: ”Vad ska man producera?”, ”När ska man producera det?” och ”Hur mycket ska man producera?”. När man gör ett projekt utifrån Kanban utgår man oftast från en tavla där man sätter upp lappar som representerar ens backlog (dvs de funktioner man vill skapa med sitt projekt). Man skapar kolumner på sin tavla där uppgifterna sorteras från ”Ny” till ”Färdig” så att projektet kan få en överblick av vad som behövs göras.

Scrum

SCRUM är en metodik där man försöker nå mål genom att arbeta verksamhetsnära med kunderna. I scrum arbetar man med ”sprints” vilket är tidsbestämda perioder där man fokuserar på att utföra ”user stories” (en funktion/ eller del av en funktion som kunden önskar). Scrum bygger mycket på att alla i teamet ska kunna hjälpa till där det behövs för att man så fort som möjligt ska bli färdiga med sina user stories. En annan viktig del av Scrum är att man har dagliga möten där man står upp och kortfattat berättar vad man har gjort sedan senaste mötet, vad man arbetar på nu och vilka problem man har stött på.

Extreme Programming

Extreme Programming är en metodik som bygger på följande fem värderingar: ”kommunikation”, ”enkelhet”, ”återkoppling”, ”mod” och ”respekt”. Kommunikationsaspekten innebär att man ska få utvecklingsgruppen att ha samma bild av slutprodukten som kunden. ”Enkelheten” uppnår man genom att bara bygga det nödvändigaste med en tanke om att extra funktioner går lätt att lägga på i efterhand. ”Återkoppling” innebär bl a att kunden tillsammans med testare löpande ska göra funktionalitetstestar av koden så att man åtgärda problemet. ”Mod” står för att man ska våga stå för att man har gjort någonting fel och att det kan förbättras. ”Respekt” handlar om att respektera sig själv och andra. Detta gör man t ex genom att aldrig göra förändringar som gör att koden inte går att kompilera. En viktig aspekt av XP är att all programmering görs i par.

Pomodoro

Pomodoro-metodiken bygger på tanken att korta raster främjar hjärnan och således även ditt resultat. Man arbetar kring bestämda tidsintervaller som vanligtvis är 25 minuter och 1 pomodoro motsvarar då 25 minuter. När man har arbetar 1 pomodoro så tar man rast några minuter och sedan fortsätter man. Detta upprepas till man har uppnått 4 pomodoros då man istället får ta en lite längre rast (25-30 minuter) och sedan upprepar man igen.

Scrummaster

”Scrum master” ser till att projektet har de verktyg och förutsättningar som krävs för att de ska kunna utföra sitt arbete på ett smidigt vis. Scrum-mastern arrangerar möten och ser i allmänhet till att projektet efterföljer de riktlinjer man har inom Scrum samt att releaserna görs i tid.

Product owner

”Product owner” är 1 representant från kunden som ansvarar för innehållet i ”product backlog” samt hur kundens önskemål (user stories) ska prioriteras. Det är viktigt att ”Product owner” har erfarenhet och kunskap inom området som projektet kretsar kring.

Daily Scrum / Standup meeting

Under varje dag av projektet hålls en ”daily SCRUM” vilket är ett kort möte där varje person besvarar tre frågor. Dessa frågor är, ”Vad gjorde jag igår?”, ”vad kommer jag göra idag?" samt ”vilket hinder har jag stött på?

Backlog

Product backlog består av user stories som beskriver vad användarna vill ha för funktioner. Product backlogg är tillgänglig för hela teamet för att ge en överblick över vad som behövs göras men förändringar får endast genomföras av Product owner. Förutom Product Backlog så finns det en sprint backlogg som innehåller de uppgifter från product backlogg som teamet ska genomföra i en sprint. I en sprint backlogg sorteras uppgifterna upp i ”to do”, ”in progress” och ”done” så att teamet kan se vad som återstår att göra och vad som är färdigt.

Iteration / Sprint

När man väl har fastställt en sprintbacklogg så kan man börja fokusera på själva sprinten (även kallad ”iteration”). Varje Sprint inleds med en sprint planning där man bestämmer vad som göras under sprinten, utifrån de uppgifter man har i sin sprint backlogg, och där teamet bestämmer vilka uppgifter de ska ta på sig. Varje sprint är en tidsbestämd period som normalt sett håller på någonstans mellan 5 och 3o dagar. När sprinten är färdig ska samtliga uppgifter inom sprinten vara färdiga och teamet ska kunna vissa upp någon form av färdig produkt för kunden (kan t ex vara en funktion eller modul).

Burn-down chart

I slutet av varje dag uppdaterar man en ”sprint burndown chart” som väldigt överskådligt visar hur mycket som är kvar att göra inom sprinten.

Sprint review

En från dag ett inplanerad granskning av sprintens resultat. Under granskningen redovisas först status för de i sprinten inplanerade sakerna, därefter demonstreras klar funktionalitet för produktägare, kunder och andra inbjudna intressenter. Syftet är att få in granskningskommentarer från alla deltagare. Speciellt är man intresserad av att veta vad som är klart och inte. Därefter redovisar produktägaren sina planer för framtiden i form av sin produktbacklog och även denna granskas av alla deltagare.Resultatet av en sprintgranskning är en ny och uppdaterad produktbacklog som avspeglar alla deltagares bästa uppfattning om hur man ligger till och vad som ska göras härnäst.

Sprint retrospective

Alla gruppmedlemmar samt scrum master och produktägare arbetar tillsammans för att lära sig från sprinten som gått. Förbättringar i arbetssättet identifieras, och ett antal saker väljs ut och åtgärdas i kommande sprint.

Variabel

I program vill man kunna spara undan data för senare användning. T ex man vill mata in ett tal. Detta tal måste sparas undan i programmet, till vår hjälp har vi då variabler. Variabler hör man på namnet att de lagrar information som kan variera. I C Sharp finns en mängd fördefinierade variabeltyper. Man måste alltså deklarera vilken sorts typ av variabel man vill använda för att kompilatorn ska förstå vilken sorts data den lagrar.

Loop

En slinga eller programslinga (engelska loop) är en konstruktion inom imperativa programmeringsspråk för att åstadkomma en iteration, så att en serie satser upprepas flera gånger. Antalet upprepningar kan vara förbestämt, men kan även bestämmas dynamiskt. Slingor används ofta då samma uppgift skall utföras för en mängd element, som att skriva ut alla namn som finns i en lista.

Kontrollstruktur

Kontrollsatser är satser (eng. statements) som ger programmeraren möjlighet att välja mellan att exekvera olika satser, och något sätt att repetera exekvering av satser eller sekvenser av satser.Exempel på kontrollsatser är selektionssatser (if-satser) och iterationssatser. En selektionssats är ett sätt att välja mellan olika satser. En iterationssats exekverar en sats noll eller flera gånger.En kontrollstruktur är en kontrollsats och de samlingar av satser vars exekvering den kontrollerar. Nedanför är exempel på en while-loop:while (condition) {statement(s)}While-loopen är kontrollstrukturen och allt mellan { och } är de satser som exekveras när programmet befinner sig innanför måsvingarna.

Class

Klass är i objektorienterad programmering ett avsnitt programkod som samlar en mängd relaterade attribut och funktioner, även kallat metoder. Det är ett viktigt kännetecken för en klass att dess inre struktur inte är tillgänglig utanför klassen, utan den kan enbart manipuleras genom ett specificerat gränssnitt. Fenomenet att en klass privata delar ej är tillgängliga utanför kallas inkapsling (eng. encapsulation). En klass kan sägas vara en användardefinierad datatyp, som alltså kompletterar de fördefinierade datatyperna, i C++ till exempel int och char. För att de klasserna skall likna just användardefinierade datatyper använder man i vissa språk överlagringav operatorer för klasser.

Object

Ett objekt är en instans av en klass, det vill säga en slags simulering av en företeelse som används inom objektorienterad programmering för att samla data och kod som hör ihop. Ett objekt kan till exempel vara en bok i ett program som används på ett bibliotek för att hantera utlåning. Boken har ett antal egenskaper som beskrivs av dess attribut (författare, titel, antal sidor, egenskapen att vara utlånad eller tillgänglig till exempel) och ett antal metoder som kan användas för att hämta eller ändra information (man kanske vill veta författare av boken, eller ändra status som utlånad eller tillgänglig). Ett annat objekt skulle kunna vara en låntagare som då kan ha en samling böcker som den lånat som attribut och metoder för att låna och lämna tillbaka böcker.Objektorientering handlar mycket om att designa de objekttyper, så kallade klasser, som behövs. När ett program körs skapar det, ibland med hjälp av användaren, så många objekt av dessa klasser som behövs.

Metod / Method

Inom programmering är en funktion, även subrutin, procedur, metod, underprogram ellersubprogram, en del av ett datorprogram som kan anropas för att utföra en viss uppgift oberoende av resten av koden. En funktion utformas ofta för att kunna anropas flera gånger från olika ställen i programmet och man skickar då ofta med parametrar (argument) till funktionen. En funktion innehåller ett kodblock som teoretiskt sett kan vara oändligt stort och kan i sig fungera som ett eget program (därav namnet underprogram).En funktion kan också returnera ett värde, till exempel ett resultat av en beräkning. I vissaprogramspråk, till exempel Fortran och Pascal, görs en åtskillnad mellan funktioner, som returnerar ett värde, och procedurer, som inte gör det. I andra programspråk, till exempel C ochLisp, görs inte denna åtskillnad. I objektorienterad programmering kallas en funktion som är en del av ett objekt för en metod.Funktioner är ett kraftfullt verktyg som finns i de flesta programspråk och används inomstrukturerad programmering för att (bland annat):Slippa skriva samma sak flera gångerGöra stora program lätta att överblickaSlippa göra ändringar på flera ställen i ett programLåta flera programmerare arbeta med olika delar av koden samtidigt på ett enkelt sättAlternativet är ett program med rak kod, som inte innehåller några anrop till funktioner. Ett sådant program körs snabbare eftersom anropen (hoppen) tar tid, men å andra sidan återanvänder man inte koden vilket gör att programmet tar mer plats i datorminnet.

Properties

A property, in some object-oriented programming languages, is a special sort of class member, intermediate between a field (or data member) and a method. Properties are read and written like fields, but property reads and writes are (usually) translated to get and set method calls. The field-like syntax is said to be easier to read and write than lots of method calls, yet the interposition of method calls allows for data validation, active updating (as of GUI visuals), or read-only 'fields'. That is, properties are intermediate between member code (methods) and member data (instance variables) of the class, and properties provide a higher level of encapsulation than public fields.

Inheritance

Arv (eng. inheritance) är ett av grundkoncepten inom objektorienterad programmering. Arv går ut på att det går att relatera olika klasser av objekt enligt en arvsprincip. Med arv ärver subklassen(även kallad härledd klass, eng. derived class) alla egenskaper och färdigheter som definierats försuperklassen (även kallad basklass). Genom arv bygger man upp en slags logisk hierarki mellan klasserna.Ett konkret exempel är följande. Föreställ er en klass som beskriver ett Fordon (ett fordon som har x antal hjul, som det går att använda till att färdas med och så vidare). Exempel på fordon är bilar, cyklar, motorcyklar. Då kan vi göra skilda klasser Bil, Cykel, Motorcykel som alla ärver de gemensamma egenskaper från Fordon-klassen.Man pratar om superklass och subklass, där superklassen i vårt exempel är Fordon och subklasser är Bil, Cykel, Motorcykel. Genom arv får Bilen alla egenskaper som gäller för Fordon överlag, det vill säga bilen får automatiskt egenskapen x antal hjul (vilket sedan kan specificeras till 4, 6 eller hur många som helst) samt att det ska gå att färdas med en bil.En tumregel för hur man kan föreställa sig arv inom programmering är att uttala relationen som:(subklassen) är en/ett (superklass), exempelvis att Cykeln är ett Fordon.

Polymorfism

Polymorfism innebär inom objektorienterad programmering att flera olika subklasser under en superklass kan hanteras som om de vore instanser av superklassen.[1] Det innebär att klasser med olika behov vad gäller implementering av en viss metod, ändå kan anropas på samma sätt. Den verkställande programkoden finns i respektive subklass, medan det gemensamma gränssnittet definieras i superklassen.

Abstract Class

I objektorienterad programmering kan abstrakta klasser definieras. Detta är klasser som inte kan instansieras, vilket innebär att det inte går att skapa objekt av klassen. I stället får man definiera en klass som ärver den abstrakta, och på så sätt skapa objekt.Ett exempel kan vara klassen Däggdjur. I den kan definieras egenskaper och metoder som är gemensamma för alla däggdjur, men ett antal egenskaper som storlek, dräktighetstid etc kan inte definieras utan att veta vilket djur det rör sig om. Typiskt anger Däggdjur att det har en längd, men kan inte svara på hur stor den är.Genom att definiera Människa och Delfin som klasser som ärver Däggdjur, och tillföra specifika egenskaper och metoder för sådant som skiljer, kan man både få god utvecklingsekonomi och en beskrivande struktur.Abstrakta klasser är också praktiska för användare. Ett program för en zoologisk trädgård har troligen behov av att hålla kollektioner av objekt som har klassen Däggdjur eller rentav Djur, och nöjer sig med att respektive objekt själv vet vilken klass det egentligen implementerar.Interface kan ses som ett specialfall av abstrakta klasser. Dessa innehåller enbart definitioner av metoder, och ingen implementering alls.

Derived Class

A Subclass, "derived class", heir class, or child class is a modular, derivative class that inherits one or more language entities from one or more other classes (called superclasses, base classes, or parent classes). The semantics of class inheritance vary from language to language, but commonly the subclass automatically inherits the instance variables and member functions of its superclasses

Interface

An interface is defined as a syntactical contract that all the classes inheriting the interface should follow. The interface defines the 'what' part of the syntactical contract and the deriving classes define the 'how' part of the syntactical contract.Interfaces define properties, methods, and events, which are the members of the interface. Interfaces contain only the declaration of the members. It is the responsibility of the deriving class to define the members. It often helps in providing a standard structure that the deriving classes would follow.Abstract classes to some extent serve the same purpose, however, they are mostly used when only few methods are to be declared by the base class and the deriving class implements the functionalities.

Array

An array stores a fixed-size sequential collection of elements of the same type. An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type stored at contiguous memory locations.Instead of declaring individual variables, such as number0, number1, ..., and number99, you declare one array variable such as numbers and use numbers[0], numbers[1], and ..., numbers[99] to represent individual variables. A specific element in an array is accessed by an index.All arrays consist of contiguous memory locations. The lowest address corresponds to the first element and the highest address to the last element.

Git

Git är ett versionshanteringsprogram som skapades ör att hantera källkoden tillLinuxkärnan. Linus Torvalds ansåg att inget av de alternativ som fanns att tillgå räckte till vad gäller funktion eller prestanda. Han hade länge använt ett kommersiellt system (BitKeeper), men förlorat gratislicensen efter en kontrovers[källa behövs].Git är ett distribuerat versionshanteringssystem, vilket innebär att ett centralt arkiv saknas, och att vem som helst kan skapa en egen kopia. Vissa arkiv kan sägas vara viktigare än andra, till exempel det arkiv där den officiella Linuxversionen publiceras, men det är inte av tekniska skäl utan rent sociala konventioner.Git är uppbyggt för att passa arbetsmetodiken i stora öppen-källkods-projekt. Därför finns det program för att skicka och ta emot ändringar i form av patchar via e-post, samt logga vem som gjort vad utan att någon behöver administrera register över utvecklare. Versioner identifieras med hjälp av starka kryptoalgoritmer (SHA-1) och kan därför signeras digitalt om så önskas, även om versionsidentifikationen i sig i praktiken skyddar mot manipulation. Därtill är Git extremt snabbt för att kunna hantera den stora volymen källkod och ändringar som linuxkärnan kräver.