Софтвер

Из Википедије, слободне енциклопедије
Sciences humaines.svg
Овај чланак је део пројекта семинарских радова на Високој школи електротехнике и рачунарства струковних студија у Београду.
Датум уноса: март - мај 2015.
Википедијанци: Ова група студената ће писати чланке у ГИП-у, зато не пребацујте овај чланак у именски простор Википедије.
Слободно можете уређивати овај чланак и помоћи студентима у његовој изради.

Софтвер су програми (наредбе, инструкције) који говоре рачунару како треба да извршава одређене задатке. Софтвер је начин записа алгоритама у облику који је разумљив рачунару. Повезан је са хардвером, који представља компоненте рачунара. Уколико хардвер и софтвер нису повезани, рачунар не функционише. Софтвер се састоји од програма и библиотека, као и докумената који су повезани са њима. Појам софтвера се често користи у ужем смислу, као софтвер апликација.

Извршни код се састоји од програмског тј. машинског језика са инструкцијама специфичне за сваки процесор (енгл. central processing unit – CPU ). Машински језик чине група бинарних вредности које прослеђују инструкције до процесора о промени стања рачунара. Као пример тога имамо када инструкција мења вредност сачувана у посебној локацији рачунара, и у том случају резултат промене није видљив кориснику. Такође, инструкције могу довести до промене на екрану рачунара, који су, дакле, видљиви кориснику. Процесор ће извршавати радње са инструкцијама по редоследум по ком су му инструкције достављене , уколику му није задато да прескочи са једне на другу инструкцију. Софтвер записан у машинском језику је познат као машински код , док је у пракси најчешће записан као скуп програмских језика високог нивоа, због тога што су много ефикаснији, а такође и једноставнији за коришћење човеку него машинском језику. [1]

Овакви програми се преводе у машински језик помоћу компајлера или интерпретатора, као и комбинацијом ова два програма. Софтвер такође може бити записан у програмском  језику ниског нивоа – асемблеру, програму који представља машински језик коришћењем алфабета. 

Историјат[уреди]

Главни чланак : History of software


Први део софтвера (алгоритам) је у деветнаестом веку написала Ејда Кинг Лавлејс за аналитички мотор, међутим нити је софтвер успешно направљен нити аналитички мотор, док је прва теорија о софтверу, још пре појављивања рачунара какав постоји данас, представљена 1935 у есеју Computable numbers with an application to the Entscheidungsproblem. Захваљујући овој теорији дошло је до поља рачунарске науке и софтверског инжењеринга, у којима је изучаван софтвер и његово стварање. Софтверски инжењеринг се бавио практичним делом, док се рачунарска наука бавила тиме више теоретски него практично.

Типови софтвера[уреди]

Погледај : Категорије софтвера


Софтвер се дели на:

  1. Софтвер Апликација – које рачунар користи за извршавање специјалних финкција или за забаву (операције које не укључују основне операције рачунара). Постоји много врста софтвера апликација, због великог спектра задатака које модеран рачунар извршава. Погледајте листу софтвера.
  2. Системски софтвер је направљен за директну комуникацију са хардвером, да би омогућио основне функције корисницима, као и другим софтверима, и да оспособи платформу за активне апликације.

Системски софтвер садржи:

  • Оперативне системе -који су, заправо, колекција софтвера направљена за управљање ресурсима и која омогућава заједничке услуге осталим софтверима. Надзорни програми, покретач оперативног система и вишезначна јединица ( љуска – shell ) су кључни делови оперативног система. У пракси, оперативни систем добијамо са додатним софтвером (укључујући и софтвер апликација).
  • Управљачке програме – драјвере

Драјвери омогућавају функцију одређеној врсти уређаја прикаченој на рачунар. Сваком уређају је потребан најмање један драјвер.

Домен извршењa[уреди]

  • Апликације радне површине , као што су интернет претраживачи и Microsoft Office, као и smartphone [2] и таблет aplikacije (такозване "apps"). (Постоји притисак у неким деловима софтверске индустрије да се споје апликације радне површине са мобилним апликацијама до одређене мере. Windows 8, касније Ubuntu Touch, покушали су да дозволе коришћење исте врсте апликацијског корисничког интерфејса на десктоп и лап-топ , мобилним уређајима и хибридним таблетима.
  • JavaScript скрипте су делови софтвера традиционално уграђене у веб странице које се покрећу директно из итнернет претраживача када се учита интернет страница без потребе за прикључком за интернет претраживач.

Софтвер написан другим програмским језицима се такође може покренути у интернет претраживачу ако је софтвер преведен у JavaScript, или ако је прикључак за интернет претраживач који подржава тај језик инсталиран; Најчешћи претходно поменути пример су ActionScript скрипте, које подржава Adobe Flash. Серверски софтвер који укључује:

  • Интернет апликације, које обично раде на интернет серверу и преносе динамично створене интернет странице на интернет претраживаче, користећи нпр. PHP, Java или ASP.NET, или чак JavaScript који ради на серверу. У модерна времена уобичајено је да неки JavaScript такође ради у интернет претраживачу, у ком случају они делимично раде на серверу а делимично на интернет претраживачу.
  • Прикљуци и екстензије су софтвер који допуњује или мења функционалност другог дела софтвера, и захтевају да се користи тај софтвер да би могли да функционишу;
  • Уграђени софтвер - постоји као firmware у уграђеним системима , уређајима намењеним једној или више функција као што су аутомобили и телевизори ( иако неки уграђени уређаји као што су бежични чипсетови, могу сами бити део обичног, не-уграђеног рачунарског система као што је PC или [3]). У погледу уграђених система некад нема јасне разлике између системског софтвера и апликацијског софтвера, али неки уграђени системи покрећу уграђене оперативне системе, и ови системи задржавају разлику између системског софтвера и апликацијског софтвера ( иако ће типично бити само једна фиксна апликација која је увек покренута).
  • Микрокод је специјални, релативно непознат тип уграђеног софтвера који говори самом процесору како да изврши машински код, тако да је у ствари нижег ранга од машинског кода[4]. Типично је својствено процесоровом произвођачу, и било која неопходна исправљачка микрокод софтвер ажурирања су достављена од њих корисницима ( што је много јефтиније од слања замене процесорског хардвера). Тако да обичан програмер не очекује да ће икад морати да се бави тиме.

Програмски алат[уреди]

Главни чланак : Programming tool


Програмски алат је софтвер у облику програма или апликација које произвођачи софтвера ( такође знани као програмери, кодери, хакери или софтверски инжењери) користе да стварају, одстране неправилности, одржавају ( побољшају или поправе), или једноставно доприносе софтверу. Као што је већ речено, софтвер је написан у једном или више програмских језика – постоји велики број програмских језика , а сваки од њих има посебну врсту имплементације и сваки садржи себи својствен сет програмских алата. Ови алати могу бити компајлери, дебагери, интерпретатори, линкери и текст едитори, који могу бити комбиновани међусобно да би извршили одређени задатак; или могу формирати интегрисано развојно окружење, које комбинује већину од свих алата. Интегрисано развојно окружење (IDE) то може извести или позивајући релевантне индивидуалне алате, или ре-имплементирањем њихових функција на нов начин. Интегрисано развојно окружење омогућава лакше извођење одређених задатака, као што су претрага података у одређеном пројекту. Мноштво имплементација програмских језика омогућавају обе опције – и коришћење индивидуалних алатки и интегрисано радно окружење.

Извршење[уреди]

Главни чланак : Execution (computing)


  • Рачунарски софтвер је складиштен у меморији рачунара(као што је хард диск). Када се софтвер учита, рачунар почиње са извршавањем наредби софтвера. Овај процес укључује прослеђивање инструкција од софтвера апликација, преко системског софтвера, до хардвера, где се добија инструкција у виду машинског кода. Свака инструкција је узрок неких операција , нпр. Пренос података, преношење неког рачунања или мењање контролног тока инструкција.


Софтверске лиценце[уреди]

Главни чланак : Software license


  • Софтверске лиценце кориснику дају право на коришћење власничког окружења, као и да у случају бесплатних софтверских лиценсци корисници имају право да производе копије истих.

Власнички софтвер се дели на две групе:

  • Freeware који укључује и категорију бесплатног тестирања (free trial ) софтвера или такозваног freemium софтвера. Као што само име каже, овај софтвер се може користити бесплатно, иако код бесплатног тестирања или некад и код freemium софтвера, то некад може бити само на одређени временски период или може бити ограничено на коришћење само одређених функција софтвера.
  • софтвер који се наплаћује, често назван комерцијални софтвер је легалан само уз купљену лиценцу.


Дизајн и извршење[уреди]

Главни чланци : Software development, Computer programming and Software Еngineering


Дизајн и извршење софтвера зависи од комплексности софтвера. Нпр. Дизајнерима и оснивачима Microsoft Word-а је требало знатно више време него при дизајнирању и оснивању Microsoft Notepad-а, због знатно великог броја функција које програм омогућава.

Софтвер је углавном дизајниран и направљен у интегрисаном развојном окружењу, као што су Eclipse, IntelliJ и Microsoft Visual Studio, који поједностављују процес компилације софтвера. Као што је већ наведено, софтвер је углавном направљен по основу на постојеће софтвере и „апликационог програмског интерфејса“ (API) који основни софтвер садржи, као што су GTK+, JavaBeans и Swing. Библиотеке (API) се класификују по њиховој сврси. На пример, Spring Framework се користи за имплементирање апликација предузећа, Windows Forms библиотека се користи за дизајнирање графичког интерфејса (GUI) апликација као што је Microsoft Word. Када је програм дизајниран, он се ослања на API. Пример за то је Microsoft Windows апликација дизајнирана за радну површину, где корисник може користити .NET Windows Forms библиотеке да сам дизајнира апликације на радној површини. Сакрива их командама Form1.Close() , а открива са Form1.Show [5], где такође може и да дода одређене операције према својим потребама. Без ових библиотека, програмер би морао сам да пише целу једну API библиотеку сам. Компаније као што су Oracle и Microsoft имају своје јединствене библиотеке, да би већина њихових апликација које у исписане помоћи њихових софтверских библиотека садржале API библиотеке у њима.

Рачунарски софтвер има посебне економске карактеристике који чине њеног дизајн и дистрибуцију другачијим од других економских добара [6].

Особа која производи, односно креира софтверске програме назива се програмер, софтверски инжењер или софтверски развијач – различити термини за приближно исто значење. Термини који се често користе за програмере су такође и кодер или хакер – термини који често доводе до забуне, јер у већини случајева се кодерима или хакерима називају они који илегално „упадају“ у рачунарске системе.

Види још[уреди]

Референце[уреди]

,