Программное обеспечение в фактах
Каждая программа имеет три стадии своего существования: разработка, использование и сопровождение. Разработка программного обеспечения проходит в шесть шагов:
- Постановка задач (требования)
- Проектная стадия
- Создание команд
- Компонование или группировка
- Тестирование результатов работ
- Написание документации
Тезисы о программном обеспечении
- При разработке ПО для большой системы используется наличная аппаратура.
- Любая правильная последовательность команд может выразить любой процесс.
- Программное обеспечение, по сути, это абстрактно созданный продукт, поэтому его разработка носит сложный характер.
- Чтобы создать новое ПО, нужно задействовать компьютер (ЭВМ) с его программным обеспечением.
- Когда создаётся программное обеспечение, сложность заключена не в том, как создать набор команд для выполнения определённых процессов, а в том, как адаптировать работу программной системы с пользователем и обеспечить ему управление.
- Определённое программное обеспечение разрабатывается по одному принципу, как и некоторая аппаратура, однако, не каждое ПО можно разрабатывать по такому принципу.
- Если программное обеспечение разработано правильно, то оно будет работать без сбоев. Поэтому, поддержка программного обеспечения, это не что иное, как исправление криво написанного программного обеспечения.
- Если разрабатывается большая группа программ для связки в обеспечение, то выполнение работ производится не только на компьютере, подобная работа является более многогранной в своём исполнении.
- Большое системное программное обеспечение даже в течение тестирования в несколько лет, не налаживает стабильную работу, как показала практика.
- Программное обеспечение и его разработка — это процесс в достаточной мере не простой и в зависимости от сложности получения необходимого результата, достаточно дорого оценивающийся.
- ПО является средством, а не целью.
Что такое программное обеспечение и что такое программа? Их принципы и различия были рассмотрены в данной статье. ПО используется повсеместно, во всем имеющем начинку, которая умет с ним работать. С современными темпами развития человеческих технологий, так и не далеко до искусственного интеллекта.
Распространение программного обеспечения
Распространение любого программного обеспечения сопровождают специальным документом, в котором чётко оговорены все права и обязанности сторон, передающих и использующих это ПО.
По способу использования и распространения все ПО условно делят на:
- . Как правило, их можно свободно копировать и распространять абсолютно бесплатно. Распространитель при этом, может взимать плату, но не за само программное обеспечение, а, например, за услуги записи на носитель, канал передачи данных и т. п.;
- Свободно распространяемое ПО. Как и в случае с «бесплатным» денег за такие программы никто не взимает, но основным отличием от первого, является возможность вносить изменения в программный код и распространять новые версии полученного ПО вместе со своими изменениями. Таким образом, «свободное» ПО распространяется вместе с исходным кодом;
- Открытое ПО. ПО условиям лицензии в обязательном порядке распространяется с открытым исходным кодом;
- Закрытое ПО. Является частной собственностью своих авторов и распространяется строго на определённых условиях. Это может быть, как денежное вознаграждение, так и иные виды вознаграждений не противоречащие законодательству, которые разработчик может потребовать за его использование. Например, это может быть условно бесплатное распространение, при котором для возможности использования программы потребуется пройти регистрацию на сайте. Как правило, распространяется без исходных кодов.
Качество программного обеспечения
Качество программного обеспечения играет важную роль, особенно в коммерческом и системном программном обеспечении, таком как Microsoft Office, Microsoft Windows и Linux. Если программа неисправна (глючит или имеет баги), она может удалить наработки пользователя, привести к неисправности компьютера и сделать другие неожиданные вещи. Недостатки и ошибки, называемые «багами», часто обнаруживаются во время альфа и бета-тестирования. Программное обеспечение также часто бывает подвержено тому, что известно под названием устаревание программного обеспечения, постепенное ухудшение производительности в результате сочетания допущенных ошибок.
Немало ошибок обнаруживается и устраняется (отлаживается) с помощью тестирования программного обеспечения. Однако тестирование программного обеспечения редко, а точнее, никогда не устраняет все ошибки. Некоторые программисты говорят, что «В каждой программе есть по крайней мере одна ошибка» (Закон Любарского). В каскадном методе разработки программного обеспечения, как правило, привлекаются отдельные команды тестировщиков, но в более современных методах, под обобщенным названием методы гибкой разработки программного обеспечения, разработчики регулярно предоставляют возможность протестировать демонстрационные версии программного обеспечения самим пользователям / клиентам, чтобы получать сведения о недоработках ПО через обратную связь. Программное обеспечение может быть протестировано с помощью модульного тестирования, регрессионного тестирования и других методов, которые выполняются вручную или чаще всего автоматически, так как объем тестируемого кода может быть довольно большим. Например, NASA применяет весьма тщательные процедуры тестирования программного обеспечения для многих операционных систем и систем связи. Многие операции NASA взаимодействуют и идентифицируют друг друга с помощью командных программ. Это позволяет многим сотрудникам NASA комплексно проверять и оценивать функциональные системы. Программы, содержащие командное программное обеспечение, позволяют облегчать совместную работу аппаратного обеспечения и системных операций.
Лицензия на программное обеспечение
Лицензия на программное обеспечение дает пользователю право использовать программное обеспечение на указанном в лицензии оборудовании, а в случае свободной лицензии на программное обеспечение предоставляет также другие права, такие как право свободно делать копии данного ПО.
Проприетарное программное обеспечение можно разделить на два типа:
Бесплатные программы, сюда относится категория «бесплатная пробная версия» программного обеспечения или «freemium» версия (в прошлом термин «условно-бесплатное ПО» часто использовался для бесплатных пробных и «freemium» версий программного обеспечения). Как следует из названия, бесплатное программное обеспечение может быть использовано бесплатно, хотя в случае бесплатных пробных или «freemium» версий программного обеспечения, это иногда справедливо только в течение ограниченного периода времени или для версий с ограниченной функциональностью.
Программное обеспечение, предоставляемое за отдельную плату, часто ошибочно называют «коммерческим программным обеспечением», которое может быть использовано на законных основаниях только при покупке лицензии.
С другой стороны, программное обеспечение с открытым исходным кодом поставляется с лицензией на бесплатное программное обеспечение, предоставляя получателю права на изменение и распространение такого ПО.
История создания программного обеспечения
Порядок действий (алгоритм), который считается первой программой, был написан Адой Лавлейс в 19 веке, для проекта аналитической машины. Однако ни аналитическая машина, ни какое-либо программное обеспечение для неё никогда не были созданы.
Первая теория о программном обеспечении до создания компьютеров такими, какими мы их знаем сегодня, была предложена Аланом Тьюрингом в 1935 году в его работе «Computable numbers with an application to the Entscheidungsproblem (Decision problem)» (О вычислимых числах в приложении к проблеме разрешения).
Это в конечном итоге привело к созданию спаренных научных направлений вычислительной науки и программной инженерии, и оба направления изучают программное обеспечение и его разработку. Вычислительные (компьютерные) науки являются более теоретическими (работа Тьюринга является примером компьютерных наук), в то время как программная инженерия фокусируется на более практических проблемах.
Однако до 1946 года программного обеспечения, каким мы его теперь понимаем, — в виде программ, хранящиеся в программной памяти цифровых компьютеров — еще не существовало. Вместо этого узлы первых электронных вычислительных устройств пересоединялись с целью «перепрограмирования» их.
Проприетарные драйверы
Одним из видов проприетарного ПО являются драйверы. В этом случае «проприетарный» означает, что они поставляются от производителя с закрытым исходным кодом. Внесение каких-либо изменений в их структуру невозможно.
Обычно такие драйверы актуальны в операционных системах, использующих открытое ПО. Особенно этим пользуются системы Linux. Ubuntu, к примеру, использует и «свободные», и «закрытые». Такие драйверы под Ubuntu отличаются большей стабильностью, чем свободные. Что и неудивительно, ведь в их исходном коде нет изменений от сторонних пользователей. Но, в отличие от свободных драйверов, пользователям «закрытого» ПО приходится довольно долго ждать свежей обновленной версии.
Патенты на программное обеспечение
Патенты на программное обеспечение, как и другие виды патентов, теоретически предполагают выдачу изобретателю эксклюзивной лицензии с ограниченным временем на подробную идею (например, алгоритм) о том, как реализовать часть программного обеспечения или компонент части программного обеспечения. Идеи полезных вещей, которые программное обеспечение могло бы сделать, и требования пользователей, не должны быть патентоспособными, а конкретные реализации (т. е. фактические пакеты программного обеспечения, реализующие патент) также не должны быть патентоспособными—последние уже охвачены авторским правом, как правило, автоматически. Таким образом, патенты на программное обеспечение должны охватывать среднюю область, между требованиями и конкретной реализацией. В некоторых странах требование о том, чтобы заявленное изобретение оказало влияние на физический мир, может также являться частью требований о том, чтобы патент на программное обеспечение был действительным, хотя, поскольку все полезное программное обеспечение оказывает воздействие на физический мир, это требование может быть открытым для обсуждения.
Патенты на программное обеспечение являются спорными в индустрии программного обеспечения, многие люди придерживаются различных взглядов на них. Один из источников разногласий заключается в том, что вышеупомянутый раздел между первоначальными идеями и патентами, как представляется, не соблюдается на практике патентными юристами—например, патентом на аспектно-ориентированное программирование (АОП), который предъявляет права на любой инструмент программирования, реализующий идею АОП, каким бы образом он не был реализован. Еще одним источником разногласий является влияние на инновации, при этом многие выдающиеся эксперты и компании утверждают, что программное обеспечение является столь быстро развивающейся областью, что патенты на программное обеспечение просто создают огромные дополнительные судебные издержки и риски и фактически тормозят инновации. В случае обсуждения патентов на программное обеспечение за пределами Соединенных Штатов был сделан аргумент о том, что крупные американские корпорации и патентные юристы, вероятно, будут основными бенефициарами разрешения или продолжения разрешать патенты на программное обеспечение.
Плюсы и минусы несвободного программного обеспечения
Слева: логотип свободного ПО; справа: обозначение несвободного ПО
К плюсам можно отнести такие моменты:
- Постоянная техническая поддержка продукта;
- Более стабильная работа по сравнению со свободным ПО;
- Гарантированное отсутствие вредоносных объектов (вирусов);
- Автоматические обновления ПО;
- Качественное использование всех возможностей оборудования.
Теперь перейдем к минусам:
- Определенная сумма оплаты за лицензию;
- Проприетарные протоколы работы устройства;
- Зависимость от разработчика;
- Невозможность изменить исходный код;
- Ограничение на распространение ПО;
- Ограничение на модификацию ПО.
Полусвободное ПО
Самые популярные коммерческие и бесплатные приложения: На черном фоне: Microsoft, Apple, Adobe Photoshop; На белом фоне: Mozilla Firefox, Apache, Linux
Сейчас Фонд свободного ПО использует термин «проприетарный» в отношении всего не свободного ПО, но несколькими годами ранее различали не свободное и полусвободное ПО.
Полусвободным ПО называли несвободное ПО, которое разрешает практически неограниченное использование, распространение и изменение (в том числе с распространением изменённых версий) ПО в некоммерческих целях.
К полусвободному ПО Фонд СПО относил Open Source Initiative и Debian.
Открытое ПО продвигает ответственность
Когда вы можете видать исходный код, вы можете быть уверены, что разработчик не делает ничего подозрительного с вашим компьютером, когда вы используете их программу. Так, KeePass — это менеджер паролей с открытым исходным кодом, что означает то, что вы можете проверить отправной код на то, крадет ли разработчик ваши пароли (на самом деле, так не происходит).
Ответственность весьма важна. Например, подумайте об электронных системах голосования. Большинство (если не все) программы для голосования имеют затворённый исходный код. Если у вас нет к нему доступа, то у вас нет уверенности в том, что программы делают то, что должны. Вы можете сделаться полностью уверенным только после проверки кода.
Программное обеспечение и его роли в мире вычислительной техники
На поверхности роль программного обеспечения выглядит как запускающего работу аппаратуры. Это связанно с тем что аппаратная часть компьютера, да и другой техники выполняет физические операции, а программное обеспечение как раз занимается управлением этой части. Однако, если мы посмотрим повнимательнее на данные процессы, то обнаружим ещё некоторые интересные функции ПО, к примеру возможность его гибкости.
Никогда никому в голову не придёт беспричинно разрушить радиолокационную систему или спутник, который стоит многие миллиарды рублей. Но когда речь идёт о программном обеспечении крупных проектов, то руководство легко его модифицирует и меняет! И эти изменения заранее запланированы с определённой периодичностью. Когда придумывали программное обеспечение, подобные изменения были предусмотрены при разработке. Всё началось с программы, которая имела функцию запоминания.
Изменение информационной составляющей в памяти вычислительной машины сделало подобное устройство универсальным. Одновременно, вычислительные машины стали легко управляемыми и имели хорошую возможность адаптации. Обозначенные возможности (гибко и универсально осуществлять протекающие процессы) напрямую обеспечивают возможность менять память и её состояние.Для улучшения использования выгодных сторон гибких возможностей ЭВМ, нужно достаточно внимательно относиться к созданию и контролю программного обеспечения и обязательно вносить в него необходимые изменения.
Понятие программного обеспечения
По сути дела, программа состоит из шагов, последовательно выполняя которые, ПК производит те, или иные действия, например, принимает от пользователя вводимые с символы и выводит их на экран, заставляет печатать текст на бумажном листе и т. п. Каждый из таких шагов кодируется на специальном машинном языке и называется «командой», а совокупность таких команд — программным кодом.
Впервые, идею того, что любое, наперёд заданное состояние системы может быть достигнуто, последовательным выполнением элементарных команд, переводящим её из одного стабильного состояния в другое, предложил английский математик по имени Алан Тьюринг. В своём эссе «Computable numbers with an application to the Entscheidungsproblem (Decision problem)» он создал теоретическую модель, представлявшую собой абстрактную машину (автомат), способную выполнять элементарные действия и, переводившую её из одного фиксированного состояния в другое фиксированное состояние. В результате автоматом могли выполняться простейшие, рудиментарные операции. Такой автомат, впоследствии, получил в литературе название – «машина Тьюринга». Главная идея заключалась в математическом доказательстве того, что любое, заданное наперёд состояние этого автомата можно достигнуть, выполняя конечный набор определённых команд, из всего фиксированного набора (программы). Благодаря этой теории, впоследствии, и родилась такая (если так можно выразиться) наука, как программирование.
Таким образом, программисты – люди, разрабатывающие программное обеспечение, по сути дела, управляют персональным компьютером при помощи написанных ими программных кодов, заставляя его считывать вводимые с клавиатуры знаки, проигрывать музыку, воспроизводить видеофильмы и т. п.
Что такое программное обеспечение с отворённым исходным кодом?
Когда обычный пользователь загружает программу (так, пусть это будет iTunes), он обычно загружает установочный файл, какой распаковывает программу и устанавливает ее в систему пользователя. Пользователь будет получать доступ к программе с поддержкой исполняемого файла в формате .exe или ярлыка, который ведет к этому исполняемому файлу. Эти файлы создаются из тысяч строчек отправного кода.
В примере вы вы можете видеть некоторые строчки кода программы, написанной на стиле программирования Python. Для неискушенного человека это может казаться сложным и запутанным. Впрочем, этот код кормит различные команды и выражения, которые затем собираются в исполняемый файл программы. Когда исполняемый файл создан, вам вяще не нужен исходный код (чтобы запускать программу).
Поэтому, когда вы запускаете программу вроде iTunes, вы не увидите отправной код, который был написан для ее создания. Вы увидите только законченный продукт. Для большинства из вас это выглядит безотносительно нормально.
Открытое ПО (или программное обеспечение с открытым исходным кодом), навыворот, предоставляет всем желающим доступ к своим исходникам. Иногда разработчик собирает исполняемый файл из отправного кода и делает и файл, и код доступным миру; иногда разработчик спускает только исходный код, а за пользователем остается компиляция итоговой программы.
Собственно так устроено открытое ПО — его исходный код открыт (публично) в отличие от закрытого ПО (его код приватен).
Монитор
Старое название этого устройства – дисплей. Одна из важных частей персонального компьютера. От технических возможностей монитора будет зависеть не только качество выводимого на экране изображения, но и комфортность работы за ним.
По своему конструктивному исполнению, все современные мониторы можно условно разделить на четыре типа:
-
ЭЛТ-мониторы. Устройства, в которых изображение выводится при помощи электронно-лучевой трубки. На сегодняшний день используются крайне редко, они почти полностью вытеснены новыми моделями, имеющими более высокие технические параметры;
- ЖК-мониторы, выполненные по технологии «жидких» кристаллов;
- Плазменные мониторы, в которых картинка выводится на плазменной панели;
- LCD-мониторы, использующие последние разработки в области светодиодной техники.
Характеризуются эти устройства следующими параметрами:
- Размер экрана. Понятно, что чем больше размер видимой области, тем больший размер картинки на нём можно получить. Размер экрана указывается в дюймах и измеряется не его длина или ширина, а диагональ. При этом, следует иметь в виду, что мониторы выпускаются двух видов: с отношением сторон 4:3 и 16:9. Этот фактор необходимо учитывать при подборе, так как мониторы, имеющие одинаковые размеры диагоналей, но разные соотношение сторон воспринимаются пользователями визуально по-разному.
- Частота кадровой развёртки. Параметр, определяющий сколько раз в секунду, отображается на экране один и тот же кадр изображения. Чем выше частота кадровой развёртки, тем меньше будут уставать глаза при работе за таким монитором. Для комфортной работы этот показатель должен быть не меньше 70–75 кадров в секунду.
- Разрешение экрана (разрешающая способность). Определяется количеством точек («пикселей»), которое способен вывести монитор по горизонтали и вертикали. Первое число – количество выводимых точек по горизонтали, второе – по вертикали. Например, если на мониторе указано, что он обладает разрешением 1024х768 пикселей, то это говорит о том, что по горизонтали он способен выводить 1024 точки, а по вертикали – 768.
При выборе монитора необходимо иметь в виду, что чем выше разрешение экрана, тем качественнее и «чётче» выводимое изображение. На сегодняшний день для комфортной работы домашнего пользователя современного ПК вполне хватит монитора, имеющего 24-25 дюймовый экран с разрешающей способностью 1920х1080.
- Что является единицей измерения количества информации?
- 5 основных видов современных компьютеров
- Что такое аппаратное обеспечение компьютера? И из чего оно состоит? ←
- Что такое порты персонального компьютера? И какие они бывают?
- 10 основных видов периферийных устройств персонального компьютера
- Что влияет на скорость работы компьютера? 6 основных факторов
- Что такое программное обеспечение компьютера? И какое оно бывает?
- Что такое операционная система? Функции, история, виды
- Что такое графический и текстовый интерфейс?
- Что такое прикладное программное обеспечение? 8 основных видов
- Полезные программы — почта, социальные сети, антивирусники
Компьютерная академия «ШАГ»
Сайт: https://msk.itstep.org/Телефон: +7 495-151-19-01Стоимость: 6 800 р. в месяц — дистанционный формат
Учебная программа “Разработка и продвижение WEB-проектов” создана для тех, кто хочет научится создавать сайт с нуля, получать на него качественный траффик и удерживать его в ТОПе поисковых систем.
Программа обучения
В основе программы лежат реальные требования IT-рынка. Методисты и преподаватели постоянно работают над её улучшением и обновлением, чтобы выпускники Академии ШАГ могли достойно показать себя перед работодателем.
- Дизайн сайта. Юзабилити. Информационная архитектура сайта;
- Использование графических редакторов при создании дизайн-макета сайта;
- Практика по визуализации макета с использованием Adobe Photoshop;
- Принципы структурирования современной вёрстки сайта. Блочная вёрстка. CSS;
- HTML5 и CSS3. Новые вехи в развитии дизайна сайтов;
- Практика вёрстки подготовленного в графическом редакторе шаблона сайта. Понятие «кроссбраузерности». Адаптация вёрстки для разных браузеров;
- Адаптивная вёрстка. Использование media и viewport;
- JavaScript. Введение. Основные конструкции языка;
- Функции. Объекты. Обработка событий. Библиотека JQuery;
- Использование Cookie. Стандарт DOM. Асинхронный JavaScript;
- Введение в PHP. Взаимодействие с массивами;
- Введение в СУБД MySQL. Запросы SELECT, INSERT, UPDATE, DELETE. Многотабличные базы данных.
- Функции агрегации;
- Взаимодействие PHP и источников данных.
- Расширяемый язык разметки для создания Web-страниц – XML;
- Создание web-приложений, исполняемых на стороне сервера при помощи языка программирования
- PHP и технологии AJAX;
- Content Manager System. Joomla, WordPress. Обзор других популярных CMS;
- Разработка интернет магазина с использованием одной из CMS;
- Облачные сервисы и аренда web-приложений. Подключение полезных сервисов на сайты;
- SEO, SMO, продвижение сайтов. Системы web-аналитики;
- Структура и организация индексов в поисковых системах. Способы поисковой оптимизации: белая, серая, черная;
- Основы внутренней поисковой оптимизации. Улучшение структуры сайта;
- Продвижение сайта, основные шаги: регистрация сайта в поисковиках, регистрация сайта в каталогах, покупка ссылок;
- Контекстная реклама. Использование социальных сетей. Аналитики посетителей сайта и их поведения
- Управление поведенческими факторами как фактором ранжирования;
- Инструменты для внутренней и внешней оптимизации сайта;
По окончании курса вы сможете:
Классификация ПО
Подходы к классификации ПО достаточно подробно формализованы в международном стандарте ISO/IEC 12182. В частности, первая версия стандарта предусматривала 16 критериев классификации программных средств:
- по режиму эксплуатации;
- по масштабу;
- по стабильности;
- по функции;
- по требованию защиты;
- по требованию надежности;
- по требуемым рабочим характеристикам;
- по исходному языку;
- по прикладной области;
- по вычислительной системе и среде;
- по классу пользователя;
- по требованию к вычислительным ресурсам;
- по критичности;
- по готовности;
- по представлению данных;
- по использованию программных данных.
Примерами классов функции ПС являются:
- обработка деловых сообщений;
- компиляция;
- научные вычисления;
- обработка текстов;
- медицинские системы;
- системы управления.
Примерами классов прикладной области являются:
- наука;
- бытовые устройства;
- оборудование;
- аппаратура управления процессом;
- предпринимательство;
- система организации сети.
Примерами классов масштаба ПС являются:
- малый;
- средний;
- большой.
Примерами классов критичности являются:
- национальная безопасность;
- человеческая жизнь;
- социальный хаос или паника;
- организационная безопасность;
- частная собственность;
- секретность.
Примерами классов пользователя являются:
- начинающий;
- средний;
- специалист (эксперт);
- обычный;
- случайный;
- другая система программного обеспечения;
- технические средства.
Примерами классов стабильности являются:
- постоянное внесение изменений;
- дискретное внесение изменений;
- маловероятное внесение изменений.
По сектору индустрии программное обеспечение делится на три категории:
- программное обеспечение, разрабатываемое на заказ;
- программное обеспечение для крупных корпораций и организаций;
- программное обеспечение для массового потребителя.
По степени переносимости программы делят на
- платформозависимые;
- кроссплатформенные.
По способу распространения и использования программы делят на
- несвободные (закрытые);
- открытые;
- свободные.
По назначению программы делят на:
- системные;
- прикладные.
По видам программы делят на:
- компонент — программа, рассматриваемая как единое целое, выполняющая законченную функцию и применяемая самостоятельно или в составе комплекса;
- комплекс — программа, состоящая из двух или более компонентов и (или) комплексов, выполняющих взаимосвязанные функции, и применяемая самостоятельно или в составе другого комплекса.
Системное программное обеспечение
Комплекс программ, которые обеспечивают управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой — приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные практические задачи, а лишь обеспечивает работу других программ, предоставляя им сервисные функции, абстрагирующие детали аппаратной и микропрограммной реализации вычислительной системы, управляет аппаратными ресурсами вычислительной системы. Отнесение того или иного программного обеспечения к системному условно, и зависит от соглашений, используемых в конкретном контексте. Как правило, к системному программному обеспечению относятся операционные системы, утилиты, системы управления базами данных, широкий класс связующего программного обеспечения.
Прикладное программное обеспечение
Прикладное программное обеспечение — программа, предназначенная для выполнения определённых пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем.