Искам да знам всичко

Компютърен софтуер

Pin
Send
Share
Send


Компютърен софтуер е програма, която позволява на компютъра да изпълнява конкретна задача, за разлика от физическите компоненти на системата (Хардуер), Това включва приложен софтуер като текстов процесор, който позволява на потребителя да изпълнява задача, и системен софтуер като операционна система, който позволява на другия софтуер да работи правилно, чрез взаимодействие с хардуер и с друг софтуер.

Терминът "софтуер" е използван за първи път в този смисъл от Джон У. Туки през 1957 г. В компютърните науки и софтуерното инженерство, компютърен софтуер е всички компютърни програми. Концепцията за четене на различни поредици от инструкции в паметта на устройство за контрол на изчисления е измислено от Чарлз Бабидж като част от неговия двигател на разликата. Теорията, която е в основата на повечето съвременен софтуер, е предложена за първи път от Алън Тюринг в неговото есе от 1935 г., Изчислими числа с приложение към Entscheidungsproblem.1

Връзка с хардуера

Компютърният софтуер се нарича така за разлика от компютърен хардуер, който обхваща физическите взаимовръзки и устройства, необходими за съхраняване и изпълнение (или стартиране) на софтуера. В компютрите софтуерът се зарежда в памет с произволен достъп (RAM) и се изпълнява в централния процесор. На най-ниското ниво софтуерът се състои от машинен език, специфичен за отделен процесор. Езикът на машината се състои от групи от двоични стойности, обозначаващи инструкциите на процесора (обектния код), които променят състоянието на компютъра от предходното му състояние.

Софтуерът е подредена последователност от инструкции за промяна на състоянието на компютърния хардуер в определена последователност. Обикновено се пише на езици за програмиране на високо ниво, които са по-лесни и по-ефективни за използване от хората (по-близо до естествения език) от машинния език. Езиците на високо ниво се компилират или интерпретират в обектния код на машинен език. Софтуерът може също да бъде написан на асемблиращ език, по същество мнемонично представяне на машинен език, използващ азбука с естествен език. Езикът на сглобяване трябва да се сглоби в обектния код чрез асемблер.

Връзка с данните

Софтуерът исторически се е считал за посредник между електронния хардуер и данни, които са определени от инструкциите, определени от софтуер. Тъй като изчислителната математика става все по-сложна, разграничението между софтуер и данни става по-малко прецизно. Данните обикновено се считат за изход или вход на изпълнения софтуер. Данните обаче не са единственият възможен изход или вход. Например, (системната) конфигурационна информация също може да се счита за входна, въпреки че не непременно считани данни (и със сигурност не данни за приложения). Изходът на определено парче изпълнен софтуер може да бъде входът за друго изпълнено парче софтуер. Следователно софтуерът може да се счита за интерфейс между хардуер, данни и / или (друг) софтуер.

Видове

Практическите компютърни системи разделят софтуера на три основни класа: Системен софтуер, софтуер за програмиране и приложен софтуер, въпреки че разграничението е произволно и често замъглено.

  • Системен софтуер помага за стартиране на компютърния хардуер и компютърната система. Тя включва операционни системи, драйвери на устройства, диагностични инструменти, сървъри, системи за прозорци, комунални услуги и други. Целта на системния софтуер е да изолира приложенията програмист възможно най-много от детайлите на конкретния използван компютърен комплекс, особено паметта и други хардуерни функции, както и такива аксесоарни устройства като комуникации, принтери, четци, дисплеи, клавиатури и др.
  • Софтуер за програмиране обикновено предоставя инструменти за подпомагане на програмист в писането на компютърни програми и софтуер, използвайки различни езици за програмиране по по-удобен начин. Инструментите включват текстови редактори, компилатори, интерпретатори, линкери, отстраняване на грешки и т.н. Интегрирана среда за разработка (IDE) обединява тези инструменти в софтуерен пакет и програмист може да не се нуждае от въвеждане на множество команди за компилиране, интерпретатор, отстраняване на грешки, проследяване и т.н., тъй като IDE обикновено има напреднал графичен потребителски интерфейс (GUI).
  • Приложен софтуер позволява на хората да изпълняват една или повече конкретни задачи (които не са свързани с компютър). Типичните приложения включват индустриална автоматизация, бизнес софтуер, образователен софтуер, медицински софтуер, бази данни и компютърни игри. Предприятията вероятно са най-големите потребители на приложен софтуер, но почти всяка област на човешката дейност използва някаква форма на приложен софтуер. Използва се за автоматизиране на всякакви функции.

Компютърни вируси

Компютърните вируси са злокачествен тип компютърна програма, въпреки че може да не се считат за софтуер. Те могат да бъдат създадени като всеки от трите типа софтуер. Някои вируси причиняват малки проблеми, като например забавяне на компютъра или използване на имейл за разпространение. Други вируси могат да причинят по-сериозни проблеми, като унищожаване на данни или повреждане на хардуер.

Програма и библиотека

Една програма може да не е достатъчно пълна за изпълнение от компютър. По-специално, може да е необходим допълнителен софтуер от софтуерна библиотека, за да бъде завършен. Такава библиотека може да включва софтуерни компоненти, използвани от самостоятелни програми, но които не могат да бъдат изпълнени самостоятелно. По този начин програмите могат да включват стандартни процедури, които са общи за много програми, извлечени от тези библиотеки. Библиотеките също могат включва самостоятелни програми, които се активират от някакво компютърно събитие и / или изпълняват някаква функция (като компютърно „домакинство“), но не връщат данни в активиращата им програма. Програмите могат да бъдат извиквани от други програми и / или могат да се обаждат от други програми.

Три слоя

Потребителите често виждат нещата по различен начин от програмистите. Хората, които използват съвременни компютри с общо предназначение (за разлика от вградените системи, аналогови компютри, суперкомпютри и т.н.) обикновено виждат три слоя софтуер, изпълняващи различни задачи: платформа, приложение и потребителски софтуер.

  • Софтуер за платформа: Платформата включва основната система за вход-изход (често се описва като фърмуер отколкото софтуер), драйвери на устройства, операционна система и обикновено графичен потребителски интерфейс, който общо позволява на потребителя да взаимодейства с компютъра и неговите периферни устройства (свързано оборудване). Софтуерът на платформата често се предлага в комплекта с компютъра и потребителите може да не осъзнават, че съществува или че имат избор да използват различен софтуер на платформата.
  • Приложен софтуер: Приложен софтуер или просто „Приложения“ са това, което повечето хора мислят, когато мислят за софтуер. Типичните примери включват офис пакети и видео игри. Приложният софтуер често се купува отделно от компютърен хардуер. Понякога приложенията са в комплект с компютъра, но това не променя факта, че те работят като независими приложения. Приложенията почти винаги са независими програми от операционната система, въпреки че често са пригодени за конкретни платформи. Повечето потребители мислят за компилатори, бази данни и друг „системен софтуер“ като приложения.
  • Софтуер, написан от потребителя: Системи за персонализиране на потребителски софтуер, които отговарят на специфичните нужди на потребителите. Потребителският софтуер включва шаблони за електронни таблици, макроси за текстови процесори, научни симулации, графики и анимационни скриптове. Дори имейл филтрите са вид потребителски софтуер. Потребителите сами създават този софтуер и често пренебрегват колко е важен. В зависимост от това как компетентно написаният от потребителя софтуер е интегриран в закупените пакети за приложения, много потребители може да не са наясно с разликата между закупените пакети и това, което е добавено от колегите.

Операция

Компютърният софтуер трябва да бъде "зареден" в паметта на компютъра (известен също като памет и RAM).

След като софтуерът се зареди, компютърът може да изпълни софтуера. Компютрите работят от изпълнение компютърната програма. Това включва предаване на инструкции от приложния софтуер, през системния софтуер, до хардуера, който в крайна сметка получава инструкцията като машинен код. Всяка инструкция кара компютъра да извършва данни, движещи се в операция, да извършва изчисления или да променя контролния поток от инструкции.

Движението на данни обикновено е от едно място в паметта на друго. Понякога това включва преместване на данни между паметта и регистрите, които позволяват високоскоростен достъп до данни в процесора.

Прост пример за начина на работа на софтуера е това, което се случва, когато потребителят избере запис от менюто като „Копиране“. В този случай се изпълнява условна инструкция за копиране на текст от данни в "документ" област, намираща се в паметта, може би в междинна зона за съхранение, известна като "клипборд" област с данни. Ако е избран различен запис в менюто, като например "Поставяне", софтуерът може да изпълни инструкциите за копиране на текста от областта на данните в клипборда на определено място в същия или друг документ в паметта.

Понастоящем почти единствените ограничения за използването на компютърен софтуер в приложения е изобретателността на дизайнера / програмиста. Следователно големи области от дейности (като например игра на шах на велико майсторско ниво), които по-рано се смятаха за невъзможни, ако се извършват чрез софтуерна симулация, сега се програмират рутинно. Единствената област, която досега се оказа доста сигурна от софтуерната симулация, е сферата на човешкото изкуство, особено приятната музика и литература.

Качество и надеждност

Надеждността на софтуера отчита грешките, грешките и грешките, свързани със създаването и работата на софтуера. Голяма част от качеството и надеждността на дадена програма е свързана с приложния софтуер, написан за конкретен системен софтуер. Един пример е, че приложение за по-стар системен софтуер може да не работи на по-нов.

Софтуерна архитектура

Най- софтуерна архитектура на система включва нейните софтуерни компоненти, техните външни свойства и взаимоотношенията помежду си. Терминът се отнася и за документация на софтуерната архитектура на системата.2

История

Произходът на софтуерната архитектура като концепция за първи път е идентифициран в изследователската работа на Edsger Dijkstra през 1968 г. и David Parnas в началото на 70-те години. Учените подчертаха, че структурата на софтуерната система има значение и правилното явяване на структурата е от решаващо значение.3 Проучването на полето набира популярност от началото на 90-те години, като изследователската работа се концентрира върху архитектурни стилове (модели), езици за описание на архитектурата, архитектурна документация и формални методи.4

Мери Шоу и Дейвид Гарлан от Карнеги Мелън написаха книга със заглавие: Софтуерна архитектура: перспективи на възникваща дисциплина през 1996 г., които изнесоха концепциите в софтуерната архитектура, като компоненти, конектори, стилове и т.н. Усилията на Института за софтуерни изследвания на UCI в изследванията на софтуерната архитектура са насочени основно към архитектурни стилове, езици за описание на архитектурата и динамични архитектури.

Описване на архитектури

Езици за описание на архитектурата

Описание на архитектурата Езици (ADL) се използват за описание на софтуерна архитектура. Няколко различни ADL са разработени от различни организации, включително Wright (разработен от Carnegie Mellon), Acme (разработен от Carnegie Mellon), xADL (разработен от UCI), Darwin (разработен от Imperial College London) и DAOP-ADL (разработен от Университет в Малага). Общи елементи на ADL са компонент, конектор и конфигурация.

Прегледи

Софтуерната архитектура обикновено се организира в изгледи,5 които са аналогични на различните видове чертежи, направени в сградната архитектура.

Разрешително

Софтуерният лиценз дава на потребителя правото да използва софтуера в лицензираната среда, някои софтуери се доставят с лиценза, когато са закупени извън рафта, или OEM лиценз, когато са в комплект с хардуер. Софтуерът също може да бъде под формата на безплатна или shareware.

Собствен софтуер

Собствен софтуер е софтуер, който има ограничения за използването и копирането му, обикновено се налага от собственик. Предотвратяването на използването, копирането или промяната може да бъде постигнато с правни или технически средства. Техническите средства включват освобождаване само на машинно четими двоични файлове и задържане на човешки четим изходен код. Правните средства могат да включват лицензиране на софтуер, авторско право и патентно право. Собственият софтуер може да се продава за пари като търговски софтуер или да се предлага на нулева цена като безплатен. Монополът, предоставен от собствения софтуер, позволява на разпространител на търговски копия да таксува всяка цена за тези копия. Дистрибуторите на собственически софтуер имат по-голям контрол върху това, което потребителите могат да правят със софтуера, отколкото непатентен софтуер.

Безплатен софтуер

Безплатен софтуер, както е дефинирано от Фондацията за свободен софтуер, е софтуер, който може да се използва, копира, изучава, модифицира и преразпределя без ограничения. Свободата от такива ограничения е централна за концепцията, като обратното на безплатния софтуер е патентован софтуер (разграничение не е свързано с това дали се начислява такса). Обичайният начин софтуерът да бъде разпространен като безплатен софтуер е софтуерът да бъде лицензиран до получателя с лиценз за безплатен софтуер (или да бъде в публичното пространство) и изходният код на софтуера да бъде предоставен (за компилиран език). Повечето безплатен софтуер се разпространява онлайн без такса или офлайн на пределните разходи за разпространение, но това не се изисква и хората могат да продават копия за всяка цена.

За да помогнат за разграничаването Libre (свобода) софтуер от гратис (нулева цена) софтуер, Ричард Сталман, основател на движението за свободен софтуер, разработи следното обяснение: „Свободният софтуер е въпрос на свобода, а не на цена. За да разберете концепцията, трябва да мислите за„ свободен “, както в„ свободата на словото ", а не както в" безплатна бира "." По-точно, безплатният софтуер означава, че компютърните потребители имат свободата да си сътрудничат с кого избират и да контролират софтуера, който използват.

Софтуер с отворен код

Софтуер с отворен код е компютърен софтуер, чийто изходен код се предлага под лиценз за авторско право, който позволява на потребителите да изучават, променят и подобряват софтуера и да го преразпределят в модифицирана или немодифицирана форма. Това е най-известният пример за развитие на отворен код.

През 1998 г. група хора се застъпиха, че терминът „безплатен софтуер“ се заменя с софтуер с отворен код (OSS) като израз, който е по-малко нееднозначен и по-удобен за корпоративния свят. Софтуерните разработчици може да искат да публикуват софтуера си с лиценз за софтуер с отворен код, така че всеки може да разработи същия софтуер или да разбере как работи. Софтуерът с отворен код обикновено позволява на всеки да направи нова версия на софтуера, да го пренесе на нови операционни системи и процесорни архитектури, да го сподели с други или да го пусне на пазара. Целта на отворения код е да се даде възможност на продукта да бъде по-разбираем, променяем, дублиращ се, надежден или просто достъпен, докато той все още е продаваем.

Определението с отворен код, по-специално, представя философия с отворен код и допълнително определя граница на използването, модификацията и преразпределението на софтуера с отворен код. Софтуерните лицензи предоставят права на потребителите, които в противен случай биха били забранени от авторските права. Те включват права за използване, промяна и преразпределение. Няколко лицензи за софтуер с отворен код са се класирали в границите на Определението за отворен код. Най-известният пример е популярният GNU General Public License (GPL). Докато отвореният код представя начин за широко разпространение на източниците на даден продукт обществено достъпен, лицензите с отворен код позволяват на авторите да прецизират такъв достъп.

Freeware

Freeware е защитен с авторски права компютърен софтуер, който се предоставя за използване безплатно за неограничен период от време, за разлика от Shareware, за който потребителят е длъжен да плати (например след някакъв пробен период). Единственият критерий за класифициране като „безплатен“ е, че софтуерът трябва да бъде предоставен за неограничен период от време за ползване. Софтуерният лиценз може да наложи едно или повече други ограничения за типа употреба, включително лична употреба, индивидуална употреба, употреба с нестопанска цел, нетърговска употреба, академична употреба, търговска употреба. или всяка комбинация от тях. Например лицензът може да бъде „безплатен за лична, нетърговска употреба“. Има някакъв софтуер, който може да се счита за безплатен, но който има ограничено разпространение; тоест те могат да бъдат изтеглени само от конкретен сайт и не могат да бъдат преразпределени. Следователно такъв софтуер не би бил свободно преразпределящ се софтуер. Според основната дефиниция този софтуер би бил безплатен; според по-строги определения, те няма да бъдат. Всичко, създадено с безплатните програми, може да се разпространява безплатно (например графика, документи, вълни, направени от потребителя).

Freeware контрастира с безплатен софтуер, поради различните значения на думата "безплатно". Freeware е безплатен и се отнася до нулева цена, срещу безплатен софтуер, който се описва като "свободен", което означава безплатно да изучавате, променяте, копирате, преразпределяте, споделяте и използвате софтуера по всякакви цели. Въпреки това, много програми са безплатни и безплатен софтуер. Те са достъпни за нулева цена, предоставят изходния код и се разпространяват с безплатни софтуерни разрешения. Този софтуер би бил наречен изключително безплатен софтуер, за да се избегне объркване с безплатна програма, която обикновено не идва с изходния код и следователно е патентован софтуер.

Shareware

Shareware е маркетингов метод за търговски софтуер, при който пробна версия се разпространява предварително и без заплащане, както е обичайно за собствения софтуер. Софтуерът за Shareware обикновено се получава безплатно, или чрез изтегляне от интернет или на корици на списания. Потребител изпробва програмата и по този начин shareware е бил известен също като "опитайте преди да купите", демо-софтуер, пробен софтуер и от много други имена. Програмата за споделяне на софтуер е придружена от заявка за плащане и лицензът за разпространение на софтуера често изисква такова плащане. Плащането често се изисква след изтичане на определен период от време след инсталирането.

Бележки

  1. ↑ Майк Хали, Електронни мозъци / Истории от зората на епохата на компютъра (Лондон: British Broadcasting Corporation и Granta Books, 2005, ISBN 1-86-207663-4).
  2. ↑ Лен Бас, Пол Клементс и Рик Казман, Софтуерна архитектура на практика (Boston: Addison-Wesley, 1998, ISBN 0-201-19930-0).
  3. ↑ SEI, Произход на изследването на софтуерната архитектура. Произведено на 31 май 2008 г.
  4. ↑ Гарлан и Шоу, Въведение в софтуерната архитектура. Произведено на 31 май 2008 г.
  5. ↑ Пол Клементс, Феликс Бахман, Лен Бас, Дейвид Гарлан, Джеймс Айвърс, Рийд Литъл, Робърт Норд и Джудит Стафорд, Документиране на софтуерни архитектури: изгледи и отвъд (Boston: Addison-Wesley, 2003, ISBN 0-201-70372-6).

Препратки

  • Бас, Лен, Пол Клементс и Рик Казман: Софтуерна архитектура на практика, второ издание, Бостън: Аддисън Уесли, 2003. ISBN 0321154959.
  • Крухтен, Филип. „Архитектурни чертежи: Изгледът на модела на софтуерната архитектура 4 + 1.“ Софтуер IEEE. 12 (6): 42-50.
  • Никет, Пол. Softword: Прованс на думата „Софтуер“. ISBN 1-58922-233-4.

Външни връзки

Всички връзки са изтеглени на 17 март 2017 г.

Гледай видеото: HP ZBook 17 G4 Mobile Workstation - Тест на хардуер, софтуер и батерия (Ноември 2020).

Pin
Send
Share
Send