1 понятие программного обеспечения по. Классификация программного обеспечения. Что такое "облачные технологии"

1.6.1. Основные понятия программного обеспечения информационного процесса

Основные понятия

Возможности компьютера как технической основы информационных процессов и технологий обработки данных связаны с используемым программным обеспечением (программами).

Программа - упорядоченная последовательность команд (инструкций) компьютера для решения задачи.

Программное обеспечение (sowtware ) - совокупность программ обработки данных и необходимых для их эксплуатации документов.

При реализации информационных процессов с помощью компьютеров широко используются термины « задача» и « приложение».

Задача (problem, task ) - проблема, подлежащая решению.

Приложение (application ) - реализованное средствами информационной технологии решение задачи.

Таким образом, задача означает проблему, подлежащую реализации с использованием средств информационных технологий, а приложение - реализованное решение по задаче, хотя в ряде случаев эти термины можно считать и синонимами.

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

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

Функциональные задачи появляются и требуют решения при реализации функций управления в рамках информационных систем предметных областей. Например, управление деятельностью торгового предприятия, планирование выпуска продукции, управление перевозкой грузов, информационный поиск в базе данных и т.п. Функциональные задачи в совокупности образуют предметную область и полностью определяют ее специфику.

Предметная (прикладная) область (application domain ) - совокупность связанных между собой функций, задач управления, с помощью которых достигается выполнение поставленных целей.

Для решения задач могут использоваться алгоритмы, типовые модели и методы решения задач, представленные в готовых программных продуктах. В этом случае осуществляется адаптация программного продукта к условиям конкретного применения. Во всех остальных случаях разрабатываются оригинальные алгоритмы и программы реализации комплекса задач.

Программирование (programming )- теоретическая и практическая деятельность, связанная с созданием программ.

Программирование является собирательным понятием и может рассматриваться и как “наука”, и как “искусство”, на этом основан научно-практический подход к разработке программ.

Программа - результат интеллектуального труда, для которого характерно творчество. В любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем, программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.

Программирование базируется на комплексе научных дисциплин, направленных на исследования, разработку и применение специализированного инструментария создания программ. При разработке программ используются ресурсоемкие и наукоемкие технологии, высококвалифицированный интеллектуальный труд, что также определяет специфику этой сферы деятельности.

Программирование - это развитая отрасль хозяйственной деятельности, связанная со значительными затратами материальных, трудовых и финансовых ресурсов. Совокупный оборот в сфере создания программных средств достигает нескольких сот млрд. долларов в год.

В связи с ростом потребности в разнообразных программах обработки данных весьма актуален вопрос применения эффективных технологий программирования и их перевода на промышленную основу. Это означает:

  • стандартизацию, тиражируемость и воспроизведение различными разработчиками методов программирования,
  • внедрение прогрессивных инструментальных средств разработки программ,
  • использование специальных методов и приемов организации и выполнения работ по разработке программ (методология управления проектами).

Понятие программного продукта

Все программы по типу их пользователей можно разделить на два класса (рис.1) - утилитарные программы и программные продукты (изделия).

Этот признак классификации является определяющим. Он позволяет изменить статус программы, вместо “подсобного” инструментария обработки данных она превращается в “основное средство”. Таким образом, в зависимости от вида “потребителя” различают программы “внутреннего” применения и программные продукты (изделия) для “внешнего” распространения.

Утилитарные программы (“программы для себя”) предназначены для удовлетворения нужд их разработчиков. Чаще всего, утилитарные программы выполняют роль сервиса в технологии обработки данных, либо являются программой решения функциональной задачи, не предназначенной для широкого распространения.

Программные продукты (изделия) предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи, также как и прочие изделия, являющиеся предметом купли-продажи или обмена .

Программный продукт должен быть соответствующим образом подготовлен к эксплуатации, иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы программы, иметь товарный знак изготовителя, а также желательно наличие кода государственного классификатора. Только при таких условиях созданный программный комплекс может быть назван программным продуктом.

Путь “программ для себя” до программных продуктов достаточно долгий, он связан с изменениями технической и программной среды разработки и эксплуатации программ, с появлением и развитием самостоятельной отрасли народного - информационного бизнеса , для которой характерно разделение труда фирм-разработчиков программ, их дальнейшая специализация, формирование рынка программных средств и информационных услуг . Этот процесс общемирового масштаба.

Программные продукты могут создаваться как:

  • индивидуальная разработка под заказ;
  • разработка для массового распространения среди пользователей.

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

При разработке для массового распространения фирма-разработчик, с одной стороны, должна обеспечить универсальность выполняемых функций обработки данных, с другой стороны, - гибкость и настраиваемость программного продукта на условия конкретного применения. Отличительной особенностью программных продуктов должна быть их “системность” - функциональная полнота и законченность реализуемых функций обработки, которые применяются в совокупности. Разработка и сопровождение программ массового применения, как правило, сопряжены с большими трудозатратами - исправление обнаруженных ошибок, создание новых версий программ и т.п.

Разработка программного продукта осуществляется на основе промышленной технологии выполнения проектных работ с применением современных инструментальных средств программирования. Специфика заключается в уникальности процесса разработки алгоритмов и программ, зависящего от характера обработки информации и используемых инструментальных средств. На создание программных продуктов затрачиваются значительные ресурсы - трудовые, материальные, финансовые; требуется высокая квалификация разработчиков.

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

Сопровождение программного продукта - поддержка работоспособности программного продукта, переход на его новые версии, внесение изменений, исправление обнаруженных ошибок, и т.п.

Программные продукты, в отличие от традиционных изделий, не имеют строго регламентированного набора качественных характеристик, задаваемых при создании программ, либо эти характеристики невозможно заранее точно указать или оценить, так как одни и те же функции обработки, обеспечиваемые программным средством, имеют различную глубину проработки. Даже время и затраты на разработку программных продуктов не могут быть определены с большой степенью точности заранее.

Основными характеристиками программ являются:

  • алгоритмическая сложность (логика алгоритмов обработки информации),
  • состав и глубина проработки реализованных функций обработки,
  • полнота и системность функций обработки,
  • технические параметры:
  • объем файлов программ,
  • требования к операционной системе и техническим средствам обработки со стороны программного средства: объем дисковой памяти, размер оперативной памяти для запуска программ, тип процессора, версия операционной системы, наличие вычислительной сети и др.

1.6.2. Классификация программного обеспечения

Классификация по сфере использования

Программные продукты можно классифицировать по различным признакам. Рассмотрим классификацию, в которой основополагающим признаком является сфера (область) использования программных продуктов:

  • аппаратная часть компьютеров и компьютерных сетей;
  • функциональные задачи информационных систем и технологий предметных областей;
  • технология разработки программ.

Для поддержки информационной технологии в этих областях выделим соответственно три класса программных продуктов, представленных на рис.2:

  • прикладное программное обеспечение;
  • инструментарий технологии программирования.

Системное программное обеспечение

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

Рис. 2. Классификация программного обеспечения

Системное программное обеспечение направлено:

  • на создание операционной среды функционирования других программ,
  • на обеспечение надежной и эффективной работы самого компьютера и вычислительной сети,
  • на проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей,
  • на выполнение вспомогательных технологических процессов (копирование, архивировние, восстановление программ и баз данных и т.д.).

Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью. Программные продукты, в основном, ориентированы на квалифицированных пользователей - профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора. Однако, знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоятельно не только работают со своими программами, но и выполняют необходимое обслуживание компьютера, программ и данных.

В состав системного программного обеспечения входит операционная система , которая, как правило, поставляется вместе с компьютером, и сервисное программное обеспечение , которое может быть приобретено дополнительно.

Операционная система предназначена для планирования и управления вычислительными ресурсами компьютера, для управления выполнением прикладного программного обеспечения. В этом классе программных продуктов наиболее широкое распространение получили операционные системы Windows (фирма Microsoft), OS/2 (фирма IBM), Unix (свободнораспространяемая).

Сервисное программное обеспечение составляют программы и программные комплексы, обеспечивающие:

  • организацию вычислительного процесса для расширения возможности и повышения эффективности работы операционной системы;
  • надежную работу компьютера;
  • более удобную среду работы пользователя.

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

Инструментарий технологии программирования

Программные продукты данного класса обеспечивают процесс разработки программ и включают специализированные программные инструментальные средства разработчика. Они поддерживают все технологические этапы процесса проектирования, программирования (кодирования), отладки и тестирования создаваемых программ. Пользователями инструментария технологии программирования являются системные и прикладные программисты. В своей работе они ориентируются на то программное обеспечение компьютерной техники, в среде которого предполагается эксплуатация создаваемых ими программ.

Это направление программного обеспечения в настоящее время проходит этап бурного развития, что обусловлено переходом на промышленную технологию производства программ, стремлением к сокращению сроков, трудовых и материальных затрат на производство и эксплуатацию программ, обеспечению гарантированного уровня их качества.

Инструментарий технологии программирования можно разделить на два подкласса, ориентированных на:

  • создание отдельных приложений или их комплексов;
  • автоматизацию процессов разработки и реализации информационных систем.

В рамках этих направлений сформировались следующие группы программных продуктов:

  • средства для создания приложений, включающие:
  • локальные средства выполнения отдельных работ по созданию программ;
  • интегрированные инструментальные среды разработчиков программ для выполнения комплекса взаимосвязанных работ по созданию программ;
  • CASE - технология (Computer-Aided System Engineering ), представляющая методы анализа, проектирования и создания программных систем с применением компьютерной техники.

Локальные средства и интегрированные инструментальные среды разработчиков программ наиболее представительны и базируются на разнообразных языках программирования. Это обусловлено историей их создания и развития, относительной доступностью по цене для широкого круга разработчиков, приемлемыми требованиями к техническому комплексу процесса разработки.

Языки программирования , если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:

  • машинные языки (computer language) - языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
  • машинно-ориентированные языки (computer-oriented language) - языки программирования, которые отражают структуру конкретного типа компьютера (ассемблер);
  • алгоритмические языки (algorithmic language) - независящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (ПАСКАЛЬ, ФОРТРАН, БЕЙСИК и др.);
  • проблемно-ориентированные языки (universal programming language) - языки программирования, предназначенный для решения задач определенного класса (ЛИСП, РПГ, СИМУЛА и др.);
  • интегрированные системы программирования.

Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования , и объектно-ориентированные языки, такие как, Visual Basic, Visual C ++, поддерживающие понятие объектов, их свойств и методов обработки.

Дальнейшим развитием систем программирования, которые объединяют в себе набор средств для комплексного применения на всех технологических этапах создания программ, являются интегрированные программные среды разработчиков . Основное назначение инструментария данного вида - повышение производительности труда программистов, автоматизация создание кодов программ, обеспечивающих интерфейс пользователя графического типа, разработка приложений для архитектуры “клиент-сервер”.

CASE-технология представляет собой программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем. Основное достоинство CASE-технологии - поддержка коллективной работы над проектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом.

Средства CASE - технологий делятся на две группы:

  • встроенные в систему реализации - все решения по проектированию и реализации привязаны к выбранной системе управления базой данных (СУБД);
  • независимые от системы реализации - все решения по проектированию ориентированы на унификацию начальных этапов жизненного цикла и средств их документирования, обеспечивают большую гибкость в выборе средств реализации.

Некоторые CASE-технологии ориентированы только на системных проектировщиков и предоставляет специальные графические средства для изображения различного вида моделей, например, диаграммы потоков данных (DFD), диаграммы “сущность-связь” (ERD) и пр.

Другой класс CASE-технологий поддерживают этапы жизненного цикла только разработки программ, включая:

  • автоматическую генерацию кодов программ на основании их спецификаций;
  • проверку корректности описания моделей данных и схем потоков данных;
  • документирование программ согласно принятым стандартам и актуальному состоянию проекта;
  • тестирование и отладку программ.

В рамках CASE-технологий проект сопровождается целиком. Проектные материалы, подготовленные в CASE-технологии, служат заданием программистам, а само программирование скорее сводится к кодированию - переводу на определенный язык структур данных и методов их обработки, если не предусмотрена автоматическая кодогенерация.

Большинство CASE-технологий использует также метод “прототипов” для быстрого создания программ на ранних этапах разработки. Кодогенерация программ осуществляется автоматически.

Прикладное программное обеспечение

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

Установка программных продуктов на компьютер выполняется квалифицированными пользователями или специалистами, а непосредственную их эксплуатацию осуществляют, как правило, конечные пользователи - потребители информации, во многих случаях, деятельность которых весьма далека от компьютерной области. Данный класс программных продуктов может быть весьма специфичным для отдельных компьютеров.

Данный класс программных средств наиболее представителен, что обусловлено, широким применением средств компьютерной техники во всех сферах деятельности человека, созданием автоматизированных информационных систем различных предметных областей.

Примерная классификация прикладного программного обеспечения представлена на рисунке 3.

Рис. 3. Классификация прикладного программного обеспечения

Проблемно-ориентированное программное обеспечение образует самый представительный класс программных продуктов, внутри которого проводится классификация по разным признакам:

  • типам предметных областей,
  • информационным системам,
  • функциям и комплексам задач и др.

Для некоторых предметных областей возможна типизация структуры данных и алгоритмов их обработки. Это привело к созданию рынка программных продуктов, предназначенных для:

  • автоматизированного бухгалтерского учета;
  • финансовой деятельности;
  • управления персоналом (кадровый учет);
  • управления материальными запасами;
  • управления производством;
  • банковские информационные системы и т.п.

Наиболее важно для данного класса программных продуктов создание дружественного интерфейса для конечных пользователей.

Основные тенденции в области развития проблемно-ориентированных программных средств:

  • создание программных комплексов в виде автоматизированных рабочих мест (АРМ) управленческого персонала;
  • создание интегрированных систем управления предметной областью на базе вычислительных сетей, объединяющих АРМы в единый программный комплекс с архитектурой “клиент-сервер”;
  • организация данных информационных систем в виде распределенной базы данных в компьютерной сети;
  • настройка функций обработки конечными пользователями (без участия программистов);
  • защита программ и данных от несанкционированного доступа.

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

Программное обеспечение автоматизированного проектирования предназначено для поддержания работы конструкторов и технологов, связанных с разработкой чертежей, схем, диаграмм, графическим моделированием и конструированием, созданием библиотеки стандартных элементов (темплетов) чертежей и их многократным использованием, созданием демонстрационных иллюстраций и мультфильмов.

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

Инструментальная среда конечного пользователя содержит широкий перечень программных продуктов, поддерживающих преимущественно информационные технологии конечных пользователей. Кроме конечных пользователей этими программными продуктами за счет встроенного программного инструментария могут пользоваться и программисты для создания усложненных программ обработки данных.

Методо-ориентированное программное обеспечение включает программные продукты, обеспечивающие математические, статистические и другие методы решения задач для любой предметной области.

Наиболее распространено программное обеспечение методов математического программирования, решения дифференциальных уравнений, имитационного моделирования, исследования операций. Программные продукты этого класса могут быть автономными и встроенными. Например, в электронной таблице Excel встроен пакет анализа данных, обеспечивающий широкий набор статистических методов, а также пакет «поиск решения», реализующий метод линейного программирования. Примером автономного программного продукта может служить Microsoft Project, где реализован метод сетевого планирования и управления. Это обеспечило менеджеров проектов достаточно мощным инструментарием планирования и анализа профессиональной деятельности.

Офисное программное обеспечение составляют программы, обеспечивающие организационное управление деятельностью офиса, в том числе:

  • органайзеры (планировщики) - программное обеспечение для планирования рабочего времени, составления протоколов встреч, расписаний, ведения записной и телефонной книжки;
  • программы- переводчики;
  • средства распознавания текста и проверки орфографии;
  • интегрированные пакеты - набор нескольких программных продуктов, функционально дополняющих друг друга, поддерживающих однотипные информационные технологии на одной операционной платформе.

Интегрированные пакеты имеют в своем составе следующие типовые компоненты:

  • СУБД;
  • текстовый редактор;
  • графический редактор;
  • электронную таблицу;
  • органайзер;
  • средства поддержки электронной почты;
  • программу создания презентаций.

Компоненты интегрированных пакетов могут работать изолированно друг от друга, но основные достоинства интегрированных пакетов проявляются при их разумном сочетании друг с другом. Пользователи интегрированных пакетов имеют унифицированный для различных компонентов интерфейс, тем самым обеспечивается относительная легкость процесса их освоения.

Интегрированные пакеты эффективны при групповой работе в сети многих пользователей. Так, из прикладной программы, в которой находится пользователь, можно отправить документы и файлы данных другому пользователю, при этом поддерживаются стандарты передачи данных в виде объектов по сети или через электронную почту.

Настольные издательские системы включает программы, обеспечивающие информационную технологию компьютерной издательской деятельности:

  • форматирование и редактирование текстов;
  • автоматическую разбивку текста на страницы;
  • создание заголовков;
  • компьютерную верстку печатной страницы;
  • монтирование графики;
  • подготовку иллюстраций и т.п.

Программные средства мультимедиа предназначены для создания и использования аудио- и видеоинформации. Программные продукты мультимедиа заняли лидирующее положение на рынке в сфере библиотечного информационного обслуживания, процесса обучения, организации досуга. Базы данных компьютерных изображений произведений искусства, библиотеки звуковых записей составляет основу для прикладных обучающих систем, компьютерных игр, библиотечных каталогов и фондов и пр.

Интеллектуальные системы реализует отдельные функции интеллекта человека. Основными компонентами систем искусственного интеллекта являются база знаний, интеллектуальный интерфейс с пользователем и программа формирования логических выводов. Их разработка идет по следующим направлениям:

  • программы-облочки для создания экспертных систем путем наполнения баз знаний и правил логического вывода;
  • готовые экспертные системы для принятия решений в рамках определенных предметных областей;
  • системы управления базами знаний для поддержания семантических моделей (процедуральной, семантической сети, фреймовой, продукционной и др.);
  • системы анализа и распознавания речи и др.

Выводы

В данной теме рассматриваются основные понятия и классификация программного обеспечения информационных процессов. Приводятся определения и разъяснение таких терминов, как: программа, программное обеспечение, задача, приложение, предметная (прикладная) область, постановка задачи, алгоритм и его свойства, программирование, программный продукт, сопровождение программного продукта. Приводится описание классификации программного обеспечения по сфере использования: системное, прикладное, инструментарий технологии программирования. В каждом классе выделяются подклассы, для которых определяется назначение и их особенности.

Вопросы для самопроверки

  1. Что такое программа?
  2. Что такое программное обеспечение?
  3. Дайте определение задачи и приложения.
  4. Что такое предметная область?
  5. Какие вы знаете основные этапы процесса создания программ?
  6. В чем состоит постановка задачи?
  7. Что такое алгоритм решения задачи?
  8. Назовите основные свойства алгоритмов.
  9. Что такое программный продукт и каковы его свойства?
  10. Что такое сопровождение программного продукта?
  11. Как можно классифицировать программное обеспечение?
  12. Что входит в состав системного программного обеспечения?
  13. Что составляет подкласс сервисного программного обеспечения?
  14. Дайте определение программы утилиты. Приведите примеры.
  15. Что такое инструментарий технологии программирования?
  16. Дайте определение CASE-технологии и когда она используется.
  17. Какие виды языков программирования вы знаете?
  18. Материал с сайта http://mega.km.ru/pc/srch.asp
Корпоративные базы данных Материал с сайта http://mega.km.ru/pc/Encyclop.asp?Topic=pc_918

Что такое программное обеспечение? Примеры его практического использования мы встречаем каждый день, садясь за компьютер. Даже простое перемещение мыши по экрану - это результат работы программного обеспечения. Какие есть разновидности ПО? Как осуществляется разработка программного обеспечения?

Программное обеспечение: теория

Работа компьютера осуществляется за счет совокупного использования аппаратного и программного обеспечения. Под первым понимается набор микросхем, плат и прочих электронных компонентов и устройств, входящих в состав ПК. Под вторым - компьютерные программы, которые предназначены для обработки информации и выполнения полезных действий при помощи ПК. Первое на сленге часто называется "железо", второе - "софт".

Появляется ПО на компьютере посредством инсталляции - размещения соответствующих файлов на диске. В ряде случаев необходимо производить обновление программного обеспечения. Это, по сути, повторная инсталляция более совершенной и современной версии ПО. Чтобы нужно обладать так называемым "дистрибутивом". Он представляет собой специализированную программу-инсталлятор.

Есть два основных типа ПО - системное и прикладное. Первая разновидность обеспечивает работу ПК с точки зрения его основных функций: запуск, загрузку и осуществление низкоуровневых вычислительных операций. Основными разновидностями системного ПО принято считать а также средства управления аппаратными компонентами компьютера и их настройки.

Это программы, с помощью которых на ПК производятся практически значимые действия. Например, набор текста, построение таблиц, рисование, пользование интернетом и т. д.

Если упростить язык, то можно резюмировать так: системное программное обеспечение - для компьютера, прикладное - для пользователя. Еще один способ объяснить разницу простым языком: работа как правило не видна. Они выполняют свои функции без "согласования" с пользователем, в скрытом режиме. В свою очередь, только при прямом участии пользователя работает прикладное программное обеспечение. Примеры и того и другого мы сегодня рассмотрим.

Есть, конечно, и "некомпьютерные" виды ПО. Ими могут управляться иного рода устройства - к примеру, планшеты, смартфоны, телевизоры. Есть программное обеспечение систем климат-контроля, промышленных объектов и т. д.

Что такое операционная система?

ОС - базовый с точки зрения эксплуатации возможностей ПК вид системного ПО. Почему его относят к этой категории программного обеспечения? Дело в том, что в средах, формируемых операционными системами, работают все остальное ПО компьютера (как системное, так и прикладное). ОС являют собой базу для работы ПК. Если нет операционной системы, то ни одна другая программа работать не будет. Основные процессы работы ОС скрыты от пользователя.

Самые распространенные в мире ОС для ПК - Windows (самая популярная, есть очень много ее версий - 7-я, 8-я, XP и другие), Linux, MacOS.

Системное ПО: драйвера

Второй, пожалуй, по значимости вид системного ПО - драйвера. Они призваны обеспечивать корректную работу аппаратных компонентов. Если на компьютере не инсталлированы драйверы для диска, то он функционировать не будет. Аналогично - для видеокарты, мыши, модема и даже процессора. Типовое программное обеспечение сети - драйвер маршрутизатора или же модема. Данный вид ПО, как правило, поставляется производителями оборудования (и во многих случаях входят в состав операционных систем).

Такова сущность системного ПО. На очереди у нас - прикладное программное обеспечение, примеры самых популярных решений и основные возможности, которые предлагаются пользователям.

Прикладное ПО: антивирусы, утилиты

Распространенные виды прикладного программного обеспечения - это антивирусы и утилиты. Первые предназначены защищать ПК от вредоносных программ, которые способны вывести из строя другое ПО или даже аппаратные компоненты компьютера. Одни из самых популярных в России антивирусов - NOD32, DrWeb, Kaspersky. Утилиты призваны обеспечивать стабильную работу ПК, следить за тем, насколько корректно работают процессор, диски, память и другие аппаратные компоненты компьютера.

Популярные Microsoft Word

Какие из конкретных образцов прикладного ПО находят наибольшую востребованность сегодня? Прежде всего, это касается программ для обработки текстов. Такого рода операции на компьютере - исторически самые первые. Одна из наиболее популярных в мире программ для обработки текстов и выполнения сопутствующих операций (рисование таблиц, графиков и т. д.) - Word. Разработала ее одна из крупнейших в мире корпораций - американская Microsoft. Допустима ее русская транскрипция, которая звучит как "программа Ворд".

К настоящему моменту выпущено несколько версий данного ПО. Функции в каждом из них отличаются, но базовая (и самая востребованная на практике) задача, выполняемая MS Word в той или иной модификации, - форматирование текста, сохранение его в файл и обеспечение (при необходимости) его корректного вывода на принтер.

Microsoft Word: возможности

"Программа Ворд" умеет выполнять огромное количество операций. А именно:

Форматирование букв и абзацев (подбор шрифта нужного размера и основных атрибутов - подчеркивание, написание жирным, курсив, расстояние между строк и т. д.)

Оформление внешнего вида страниц (задание цвета и рисунка на фоне, добавление графики, картинок и т. д.)

Добавление сопутствующих тексту элементов (таблиц, графиков, значков и т. д.)

Научиться пользоваться Word очень просто. Многие из элементов управления программой понятны интуитивно. Также стоит отметить, что компания Microsoft, выпустившая Word, снабдила свое решение подробной справочной системой, обратиться к которой пользователь может, нажав на клавиатуре F1.

Популярные прикладные программы: Microsoft Excel

Пример другого популярного прикладного ПО - Microsoft Excel (по-русски - "программа Эксель"). Ее узкая специализация - вычисления при помощи электронных таблиц. Такого рода решения значительно упрощают работу с цифрами.

Несмотря на то что данная программа считается профессиональной, освоить базовые методы работы с ней могут даже начинающие пользователи (отчего она и приобрела всемирную известность).

Microsoft Excel: возможности

Самые простые операции в Excel - это отображение текста и цифр в виде таблиц. Рабочее поле программы, собственно, и выглядит как большое количество ячеек, в каждую из которых можно что-то вписать. Более сложная процедура - построение графиков, введение формул. Операции, которые требуют профессиональной подготовки - программирование так называемых "макросов" (своего рода внутренних программ), инженерные вычисления.

Перечислим самые распространенные на практике типы задач, которые умеет решать "программа Эксель":

Математические расчеты с использованием числовых значений в табличных ячейках (суммирование, вычитание, деление, умножение, выстраивание прогрессий и т. д.);

Применение формул для автоматизации счета;

Составление отчетов, бланков, опросников и иных документов, которые наиболее комфортно смотрятся в виде таблиц;

Построение графиков, визуализация статистики при помощи диаграмм.

Так же как и в случае с Word, пользование Excel очень легко освоить самостоятельно. Элементы управления программой во многом интуитивно понятно. Данный вид ПО также снабжен подробной справочной системой (которая может пригодиться не только начинающему пользователю, но и профессионалу).

Популярные прикладные программы: Adobe Photoshop

Часто у пользователей возникает потребность в задействовании одной интересной программы - "Фотошопа". Для Windows 7, 8 или же XP она существует в большом количестве версий. Официально эта программа называется Adobe Photoshop. Она предназначена для рисования (такого рода решения называются "графическими редакторами"). Пользуются ей, как и в случае с Word и Excel, как начинающие пользователи, так и профессионалы: дизайнеры, веб-разработчики, создатели мультфильмов.

Photoshop относится к программам, обрабатывающим изображения в так называемом "растровом" режиме. Что это значит? Можно сказать, что к категории "растровой" принадлежит основная часть компьютерной графики. Речь идет об изображениях, состоящих из большого количества мелких точек (вспоминаем, как строится картинка на телевизоре и мониторе - принцип тот же). При помощи "растровых" можно создавать абсолютно любые графические элементы. Можно нарисовать портрет человека, дом, пейзаж - все что угодно. Кроме "растровой" графики есть еще "векторная". Изображения на ее основе можно, в свою очередь, выстраивать только по шаблонам, заложенным в программе.

Adobe Photoshop: возможности

При помощи Photoshop можно не только создавать картинки, но также вносить изменения в уже готовые. Отсюда термин "отфотошопить". Можно, например, видоизменять объекты на фото, что-то к ним пририсовывать, ретушировать - при большом опыте работы с Photoshop все может получиться очень правдоподобно.

Adobe Photoshop работает с большинством форматов графических файлов благодаря наличию большого набора конверторов для разных форматов. Последние преобразуют графическую информацию из формата файла в собственный формат редактора Adobe Photoshop при чтении из файла. При записи в файл конверторы выполняют обратное преобразование.

Каковы самые популярные виды операций, которые производятся в Photoshop? К ним можно отнести следующие:

Создание новых рисунков при помощью виртуальных кистей, карандашей, линеек, фигур с использованием различных цветов;

Изменение размера картинок или отдельных их элементов;

Объединение содержимого двух разных изображений;

Изменение цвета картинки или ее частей;

Применение визуальных эффектов за счет встроенных в программу шаблонов и алгоритмов;

Трансформация картинок (отражение, вращение и т. д.).

Так же, как в случае с Word и Excel, элементы управления Photoshop легко осваиваются интуитивно. Так что даже неопытный пользователь сможет что-то нарисовать. Многие из версий программы оснащены справочной системой на русском языке, где в подробностях рассказывается о том, как работать с Photoshop.

Популярные виды прикладного ПО: браузеры

Браузер - это программа, с помощью которой пользователи выходят в Интернет, читают новости с сайтов, пишут сообщения в соцсетях, просматривают ролики - словом, делают все то, что характерно для "виртуального пространства". Самые популярные в мире решения такого типа - Internet Explorer, Opera, Google Chrome. Есть очень большое количество их аналогов и подтипов. Функциональность каждого из них, в целом, одинаковая. Большинство пользователей предпочитают эксплуатировать те или иные, исходя из субъективной оценки качества дизайна программ и удобства расположения элементов управления на них.

Принцип работы браузеров основан на распознавании языка разметки гипертекста (называемого HTML) и преобразования его в понятные для пользователя визуальные элементы - текст, картинки, таблицы, видео, анимацию, формы сообщений и т. д.

Браузеры: возможности

Устроены образцы такого ПО очень просто. Основные элементы браузера - строка с адресом сайта и основное поле (называемое чаще всего "веб-интерфейсом", где отображается информация из Интернета. Главная особенность такой программы - она является посредником между пользователем ПК и другими людьми, находящимися в виртуальном пространстве. То есть, при помощи браузера (точнее, "веб-интерфейса") человек, по сути, может осуществлять обмен данными, отправляя что-то от себя (текст, файлы) и получая что-то от других. Был ли Интернет до изобретения браузеров? Безусловно. Дело в том, что "веб-интерфейс" - исторически не самый первый способ коммуникации между пользователями. Он появился после долгих лет международных согласований стандартов, по которым должен осуществляться обмен "виртуальной" информацией.

ПО: платное и бесплатное

Один из критериев классификации ПО - стоимость. Есть три категории решений. Во-первых, это полностью бесплатное Во-вторых, есть коммерческое. Если пользователь хочет задействовать такое ПО, то он должен заплатить за его инсталляцию. В-третьих, существует промежуточный тип ПО - условно бесплатное. В чем его особенность? В общем случае задействования такого ПО такова: не нужно платить за инсталляцию, но, после эксплуатации программы в течение какого-то времени (например, месяца), необходимо будет перечислить денежные средства разработчику за дальнейшее пользование.

Что такое "облачные технологии"?

В последние годы набрал очень большую популярность термин "облачные технологии". Что это за явление? "Облачные технологии" - это, если говорить простым языком, прикладное ПО, которое можно запускать из браузера (соответственно, оно не установлено на ПК). Рассмотрим пример. Microsoft Word, о котором мы говорили выше, запускается двойным щелчком по значку на рабочем столе. Но есть такое же решение но "облачное": использование программного обеспечения такого типа осуществляется через веб-интерфейс браузера. Как правило, файлы, с которыми работает пользователь при помощи такого ПО, также хранятся в Интернете.

Очень много программ сейчас существует в "облачном" формате. Появились даже версии операционных систем такого типа. Так что можно говорить, что "облачный" формат - это не только прикладное, но и системное ПО. Популярность таких решений сегодня связана с быстрой скоростью Интернета (несколько лет назад такого не было), а также экономией времени пользователя - не нужно ничего инсталлировать на ПК. Кстати, обновление программного обеспечения облачного типа происходит независимо от пользователя. Это тоже удобно.

Кто разрабатывает программное обеспечение?

Существует целая отрасль экономики, в рамках которое осуществляется разработка ПО - программирование. В ней работают люди с самыми разными профилями знаний. Но их объединяет общий признак - знание языков программирования. Используя один или несколько из них, человек пишет ПО. Язык программирования - это набор команд, распознаваемых аппаратными компонентами компьютера. Написав выстроенную определенным образом "фразу", человек, создающий ПО, дает "распоряжение" процессору, или, скажем, диску ПК произвести над файлом такую-то операцию. Языков, с помощью которых осуществляется разработка программного обеспечения, сотни. В числе популярных - С ("Си"), Java, Pascal, Ruby-on-Rails.

Трудно ли научиться создавать ПО?

Совсем нет. Разработчиком программ может стать абсолютно любой желающий человек. Создание ПО - это совсем не запрещенный вид деятельности. Многие успешные предприниматели начинали с того, что разрабатывали программное обеспечение. Примеры таких людей - Билл Гейтс, Линукс Торвальдс, Евгений Касперский. Изучить языки для создания ПО можно на основе большого количества доступной литературы, видеоуроков, или посетив специализированные курсы. Разработка программного обеспечения - одна из самых динамично развивающихся отраслей, и рост ее популярности главным образом, связан с всеобщей доступностью.

Программное обеспечение

Программное обеспечение

1) Прикладные программы

2) Системные программы :

  • управление ресурсами ЭВМ.
  • операционные системы.
  • системы программирования.
  • инструментальные системы.
  • интегрированные пакеты.
  • системы машинной графики.

Жизненный цикл ПО и его стандартизация, процессы ЖЦ ПО, группы процессов ЖЦ ПО

В технологиях разработки программного обеспечения понятие жизненного цикла является одним из основных.

Жизненный цикл программного обеспечения (ЖЦ ПО) – период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного снятия с эксплуатации.

Процесс – совокупность взаимосвязанных действий (а каждое действие – набор задач), преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.

Согласно стандарту ISO/IEC 12207 все процессы ЖЦ ПО разделены на три группы:

1. основные процессы :

1.1. приобретение;

1.2. поставка;

1.3. разработка;

1.4. эксплуатация;

1.5. сопровождение;

2. вспомогательные процессы :

2.1. документирование;

2.2. управление конфигурацией;

2.3. обеспечение качества;

2.4. верификация;

2.5. аттестация;

2.6. совместная оценка;

2.7. аудит (определение соответствия требованиям, планам и условиям договора);

2.8. разрешение проблем;

3. организационные процессы :

3.1. управление;

3.2. инфраструктура;

3.3. усовершенствование

3.4. обучение.

3. Процесс разработки ПО: основные действия и их содержание

Процесс разработки предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию ПО и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, подготовку материалов, необходимых для проверки работоспособности и соответствующего качества программных продуктов, материалов, необходимых для организации обучения персонала.

Процесс разработки включает следующие действия:

1) Подготовительная работа начинается с выбора модели ЖЦ ПО, соответствующей масштабу, значимости и сложности проекта.

2) Анализ требований к системе подразумевает определение ее функциональных возможностей, пользовательских требований, требований к надежности и безопасности, к внешним интерфейсам и т.д.

3) Проектирование архитектуры системына высоком уровне заключается в определении компонентов ее оборудования, ПО и операций, выполняемых эксплуатирующим систему персоналом.

4) Анализ требований к ПО

Проектирование архитектуры ПО

6) Детальное проектирование ПО

Кодирование и тестирование ПО

8) Интеграция ПО предусматривает сборку разработанных компонентов ПО в соответствии с планом интеграции и тестирование агрегированных компонентов.

9) Квалификационное тестирование ПО проводится разработчиком в присутствии заказчика (по возможности) для демонстрации того, что ПО удовлетворяет своим спецификациям и готово к использованию в условиях эксплуатации.

10) Интеграция системы заключается в сборке всех ее компонентов, включая ПО и оборудование.

11) После интеграции система, в свою очередь, подвергается квалификационному тестированию на соответствие совокупности требований к ней.

12) Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором.

13) Приемка ПО предусматривает оценку результатов квалификационного тестирования ПО и системы и документирование результатов оценки, которые проводятся заказчиком с помощью разработчика. Разработчик выполняет окончательную передачу ПО заказчику в соответствии с договором, обеспечивая при этом необходимое обучение и поддержку.


Сертификация процессов разработки ПО, модель CMM

Гарантия качества процессов разработки программных продуктов является весьма значимой в современных условиях. Такую гарантию дают сертификаты качества процесса , подтверждающие его соответствие принятым международным стандартам. Наиболее авторитетными являются модели стандартов ISO 9001:2000, ISO/IEC 15504 и модель зрелости процесса разработки ПО (Capability Maturity Model – CMM).

Основным понятием модели CMM является зрелость процессов (Software process maturity). Зрелость процессов – это степень их управляемости, контролируемости и эффективности. Повышение технологической зрелости означает потенциальную возможность возрастания устойчивости процессов и указывает на степень эффективности и согласованности использования процессов создания и сопровождения ПО в рамках всей организации.

В модели CMM выделены пять уровней технологической зрелости, которые в принципе могут быть достигнуты компанией:

1. Начальный уровень означает, что процесс в компании не формализован. Он не может строго планироваться и отслеживаться, его успех носит случайный характер. Результат работы целиком и полностью зависит от личностных качеств отдельных сотрудников, увольнение которых приводит к остановке проекта.

2. На повторяемом уровне внедряются формальные процедуры для выполнения основных элементов процесса конструирования. Результаты выполнения процесса соответствуют заданным требованиям и стандартам. Выполнение проекта на этом уровне планируется и контролируется, а применяемые для этих целей средства дают возможность повторения ранее достигнутых успехов.

3. Определенный уровень требует, чтобы все элементы процесса были определены, стандартизированы и задокументированы. На этом уровне все процессы планируются и управляются на основе единого стандарта компании. Качество разрабатываемого ПО уже не зависит от способностей отдельных личностей.

4. На управляемом уровне в компании принимаются количественные показатели качества как программных продуктов, так и технологических процессов. Это обеспечивает более точное планирование проекта и контроль качества его результатов. Основное отличие от предыдущего уровня состоит в более объективной, количественной оценке продукта и процесса.

5. На высшем, оптимизирующем , уровне главной задачей компании становится постоянное улучшение и повышение эффективности существующих процессов, ввод новых технологий. Технология создания и сопровождения программных продуктов планомерно и последовательно совершенствуется.


Каскадная модель жизненного цикла ПО: описание, преимущества и недостатки,

Критерии применения

Каскадная модель ЖЦ ПО реализует классический жизненный цикл ПО. Согласно этой модели разработка ПО рассматривается как последовательность этапов, причем переход на следующий этап осуществляется только по завершении всех работ на текущем этапе.

Системный анализ – Анализ требований – Проектирование – Реализация – Тестирование – Внедрение – Сопровождение

Системный анализ: задается роль каждого элемента и их взаимодействие друг с другом.

Анализ требований: определение функциональных и нефункциональных требований к ПО.

Проектирование: трансляция требований к ПО во множество проектных представлений. Также на этом этапе осуществляется оценка качества будущего программного обеспечения.

Реализация: преобразование проектных спецификаций в текст на ЯП (язык прогр.) (кодирование).

Тестирование: проверка корректности, исправление ошибок в функциях и логике.

Внедрение: установка разработанного ПО у заказчика, обучение персонала.

Сопровождение: внесение изменений в эксплуатируемое ПО (исправления ошибок, адаптации к изменениям внешней для ПО среды, усовершенствования ПО по требованиям заказчика).

Преимущества:

Модель хорошо известна потребителям;

Хорошо срабатывает для тех проектов, которые достаточно понятны

Весьма доступна для понимания, проста и удобна в применении;

Ее структурой может руководствоваться даже неопытный персонал;

Отличается стабильностью требований;

Хорошо срабатывает тогда, когда требования к качеству доминируют над тре­бованиями к затратам и графику выполнения проекта;

Способствует осуществлению строгого контроля менеджмента проекта;

Стадии модели довольно хорошо определены и понятны;

Ход выполнения проекта легко проследить с помощью использования временной шкалы, поскольку момент завершения каждой фазы ис­пользуется в качестве стадии.

Недостатки:

Каждая попытка вернуться на одну или две фазы назад, чтобы исправить какую-либо проблему или недостаток, приведет к значительному увеличению затрат и сбою в графике;

Выражение "35 процентов выполнено" - не несет никакого смысла и не является показа­телем для менеджера проекта;

Интеграция всех полученных результатов происходит в завершающей стадии работы модели;

У клиента едва ли есть возможность ознакомиться с системой заранее;

Все требования должны быть известны в начале жизненного цикла;

Возникает необходимость в жестком управлении и контроле, поскольку в модели не предусмотрена возможность модификации требований;

Модель основана на документации, а значит, количество документов может быть избыточным;

Весь программный продукт разрабатывается за один раз. Нет возможности раз­бить систему на части;

Отсутствует возможность учесть переделку и итерации за рамками проекта.

Критерии применения: каскадная модель может использоваться при создании ПО, для которого в самом начале разработки можно достаточно точно и полно сформулировать все требования.

Критерии применения

Макетирование (прототипирование) – это процесс создания модели разрабатываемого программного продукта. Модель может принимать один из трех видов:

1) бумажный макет или «электронный» макет , который представляет GUI;

2) работающий макет (выполняет только часть требуемых функций);

3) существующая программа (характеристики которой должны быть улучшены).

Макетирование основывается на многократном повторении итераций , в которых участвуют заказчик и разработчик, как это показано.

Преимущества:

Пользователь может "увидеть" системные требования в процессе их сбора командой разработчиков;

Снижается возможность возникновения путаницы, искажения информации при определении системных требований;

В процесс можно внести новые требования пользо­вателя;

Да
Нет
образуются постоянные, видимые признаки прогресса;

Качество продукта определяется при активном участии пользователя в процесс разработки;

Благодаря меньшему объему доработок уменьшаются затраты на разработку;

Обеспечивается управление рисками;

Недостатки:

Разработанные "на скорую руку" прототипы страдают от неадекватной или недостающей документации;

С учетом создания рабочего прототипа, качеству всего ПО или долгосрочной эксплуатационной надежности может быть уделено недостаточно внимания.

Решение трудных проблем может отодвигаться на бу­дущее. Это приводит к тому, что последующие полученные продукты могут не оправдать надежды, которые возлагались на прототип;

Если пользователи не могут участвовать в проекте, на конечном продукте могут отра­зиться неблагоприятные воздействия;

Если выполнение проекта завершается досрочно, у ко­нечного пользователя останется лишь частичная система;

Вызывает зависимость и может продолжаться слишком долго;

Критерии применения:

Требования не известны заранее, не постоянны или могут быть неудачно сформулированы;

Существует потребность в разработке пользовательских интерфейсов;

Осуществляются временные демонстрации;

Выполняется новая, не имеющая аналогов разработка;

Разработчики не уверены в том, какую оптимальную архитектуру или алгоритмы следует применять;

Алгоритмы или системные интерфейсы усложнены;

Разрабатывается ПО, когда проявляется средняя и высокая степень риска;


Типы связей IDEF3

Соединения разбивают или соединяют внутренние потоки:

Типы соединений

Графическое обозначение Название Вид Правила инициализации
& Соединение «И» Разворачивающее Каждое конечное действие обязательно инициируется
Сворачивающее Каждое исходное действие обязательно должно завершиться
X Соединение «исключающее ИЛИ» Разворачивающее Одно и только одно конечное действие инициируется
Сворачивающее Одно и только одно исходное действие должно завершиться
O Соединение «ИЛИ» Разворачивающее Одно или несколько конечных действий инициируются
Сворачивающее Одно или несколько исходных действий должны завершиться

Указатели – это специальные символы, которые ссылаются на другие разделы описания процесса. Они выносятся на диаграмму для привлечения внимания читателя к каким-либо важным аспектам модели

Виды указателей IDEF3

22 Основные этапы проектирования программных систем и их содержание

Технологический цикл разработки программного обеспечения информационной системы включает три процесса: анализ, синтез и сопровождение . В ходе анализа ищется ответ на вопрос: «Что должна делать будущая система?». В процесс синтеза формируется ответ на вопрос: «Каким образом система будет реализовывать предъявляемые к ней требования?» Выделяют три этапа синтеза: проектирование, кодирование и тестирование .

Модель хранилища данных

Модель «клиент-сервер»

Трехуровневая модель

Преимущества трехуровневой модели:

· упрощается такая модификация уровня, которая не влияет на другие уровни;

· отделение прикладных функций от функций управления базы данных упрощает оптимизацию всей системы.

Модель абстрактной машины

Подсистема 2
Подсистема N
Обработчик событий и сообщений

Модульная декомпозиция

Третий вид деятельности, выполняющейся на этапе предварительного проектирования, заключается в разбиении подсистем на модули. Известны два типа модульной декомпозиции:

· модель потока данных;

· модель объектов.

Модуль – это фрагмент программного текста, являющийся строительным блоком для физической структуры системы. Как правило, модуль состоит из интерфейсной части и части-реализации.

Модульность – свойство системы, которая может подвергаться декомпозиции на ряд внутренне связанных и слабо зависящих друг от друга модулей. Модульность обеспечивает интеллектуальную возможность создания сколь угодно сложного программного обеспечения.

Принцип «разделяй и властвуй» . С увеличением количества модулей (и уменьшением их размера) затраты на их реализацию также растут.

Затраты на модульность

Таким образом, существует оптимальное количество модулей Opt, которое приводит к минимальной стоимости разработки.

Следующий принцип, который используется при модульной декомпозиции, – это принцип информационной закрытости : содержание модулей должно быть скрыто друг от друга. Т.е. все действия должны предоставляться внешним модулям через определенный интерфейс.

Информационная закрытость обозначает следующее:

· все модули независимы, обмениваются только информацией, необходимой для работы;

· доступ к операциям и структурам модуля ограничен.

Достоинства информационной закрытости:

· обеспечивается возможность разработки модулей различными, независимыми коллективами;

· обеспечивает легкая модификация системы (вероятность распространения ошибок очень мала, так как большинство данных и процедур скрыто от других частей системы).

Идеальный модуль играет роль «черного ящика», содержимое которого невидимо клиентам. Он прост в использовании – количество органов управления им невелико, его легко развивать и корректировать в процесс сопровождения программной системы. Для обеспечения таких возможностей система должна отвечать особым требованиям: модули системы должны высокую связность и низкое сцепление.


Типы вызовов модулей

А
В
В
А
С
А
В
а)
б)
в)

Условные и циклические вызовы модулей: а) – циклический; б) – условный; в) – однократный

Переход

Простой переход (simple transition) представляет собой отношение между двумя последовательными состояниями, которое указывает на факт смены одного состояния другим. Пребывание моделируемого объекта в первом состоянии может сопровождаться выполнением некоторых действий, а переход во второе состояние будет возможен после завершения этих действий, а также после удовлетворения некоторых дополнительных условий. В этом случае говорят, что переход срабатывает, Или происходит срабатывание перехода. До срабатывания перехода объект находится в предыдущем от него состоянии, называемым исходным состоянием, или в источнике (не путать с начальным состоянием - это разные понятия), а после его срабатывания объект находится в последующем от него состоянии (целевом состоянии).

На диаграмме состояний переход изображается сплошной линией со стрелкой, которая направлена в целевое состояние.

Сложные переходы

Выбор и соединение

Псевдосостояние выбора (choice pseudo state) предназначено для моделирования нескольких альтернативных ветвей при реализации поведения конечного автомата

Псевдосостояние соединения (junction pseudo state) является вершиной со свободной семантикой, которая используется для соединения вместе нескольких переходов

Разделение и слияние

Вершина разделения (fork vertex) – псевдосостояние, предназначенное для разделения входящего перехода на два или более перехода, которые имеют в качестве своих целей вершины в ортогональных регионах композитного состояния.

Вершина слияния (join vertex) – псевдосостояние, предназначенное для соединения нескольких переходов, которые имеют в качестве своих источников вершины из различных ортогональных регионов композитного состояния.

Точки входа и выхода

Точка входа (entry point) – псевдосостояние, предназначенное для моделирования входа в некоторый конечный автомат или композитное состояние

Точка выхода (exit point) – псевдосостояние, предназначенное для моделирования выхода из некоторого конечного автомата или композитного состояния

Псевдосостояние неглубокой истории (shallow pseudo state)

Псевдосостояние неглубокой истории (shallow pseudo state) предназначено для представления самого последнего активного подсостояния композитного состояния после выхода из него.

Псевдосостояние глубокой истории (deep pseudo state)

Псевдосостояние глубокой истории (deep pseudo state) предназначено для представления последней активной конфигурации композитного состояния после выхода из него.

Интерфейсы

Предоставляемый интерфейс (provided interface) – интерфейс, который компонент предлагает для своего окружения.

Требуемый интерфейс (required interface) – интерфейс, который необходим компоненту от своего окружения для выполнения заявленной функциональности, контракта или поведения.

Порт

Порт определяет различимую точку взаимодействия между компонентом и окружающей его средой или между компонентом и его внутренними частями

Наличие имени у порта не является обязательным

При отсутствии имени порта его тип ассоциируется с типом интерфейса, с которым связан порт.

Собирающий соединитель
(assembly connector)

– соединитель, который связывает два компонента в контексте предоставляемый и требуемых сервисов.

Делегирующий соединитель
(delegation connector)

– соединитель, который связывает внешний контракт компонента с реализацией этого поведения внутренними частями этого компонента.

Делегирующий соединитель выполняет одну из следующих задач:

Передача сообщений или сигналов, поступающих в порт компонента извне, для обработки в некоторую внутреннюю часть компонента или другой порт.

Передача сообщений или сигналов, поступающих из некоторой внутренней части компонента, для обработки во внешний порт компонента


Узел(node)

Является элементом модели, который представляет некоторый вычислительный ресурс для развертывания на нем различных артефактов

На практике для уточнения спецификации узла могут использоваться различные текстовые стереотипы, которые акцентируют внимание на назначении этого узла.

Хотя в языке UML 2.х конкретные стереотипы для узлов не определены, разработчики предложили для этой цели следующие текстовые стереотипы:

«application server» (сервер приложений), «client workstation» (клиентская рабочая станция), «mobile device» (мобильное устройство), «embedded device» (встроенное устройство), «processor» (процессор), «sensor» (датчик), «modem» (модем), «net» (сеть), «printer» (принтер) и другие.

Понятие программного обеспечения, классификация программного обеспечения

Программное обеспечение - это совокупность программ, выполненных вычислительной системой.

К ПО относится также вся область деятельности по проектированию и разработке ПО.

Программное обеспечение - неотъемлемая часть ЭВМ. Оно является логическим продолжением технических средств ЭВМ, расширяющие их возможности и сферу использования.

1) Прикладные программы , непосредственно обеспечивающие выполнение необходимых пользователям работ.

2) Системные программы :

  • управление ресурсами ЭВМ.
  • создание копий используемой информации.
  • проверку работоспособности устройств компьютера.
  • выдачу справочной информации о компьютере и др..

3) Инструментальные программные системы , облегчающие процесс создания новых программ для компьютера.

Более или менее определенно сложились следующие группы программного обеспечения :

  • операционные системы.
  • системы программирования.
  • инструментальные системы.
  • интегрированные пакеты.
  • динамические электронные таблицы.
  • системы машинной графики.
  • системы управления базами данных (СУБД).
  • прикладное программное обеспечение.

Программное обеспечение

Назначение и состав системного программного обеспечения ПК. Операционная система, ее назначение, виды ОС, их достоинства и недостатки. Понятие драйверов устройств.

Системное программное обеспечение обеспечивает функционирование и обслуживание компьютера, а также автоматизацию процесса создания новых программ. К системному программному обеспечению относятся: операционные системы и их пользовательский интерфейс; инструментальные программные средства; системы технического обслуживания.

Операционная система - обязательная часть специального программного обеспечения, обеспечивающая эффективное функционирование персонального компьютера в различных режимах, организующая выполнение программ и взаимодействие пользователя и внешних устройств с ЭВМ.

Пользовательский интерфейс (сервисные программы) - это программные надстройки операционной системы (оболочки и среды), предназначенные для упрощения общения пользователя с операционной системой.

Инструментальные программные средства (системы программирования) - обязательная часть программного обеспечения, с использованием которой создаются программы. Инструментальные программные средства включают в свой состав средства написания программ (текстовые редакторы); средства преобразования программ в вид, пригодный для выполнения на компьютере (ассемблеры, компиляторы, интерпретаторы, загрузчики и редакторы связей), средства контроля и отладки программ.



Системы технического и сервисного обслуживания представляют собой программные средства контроля, диагностики и восстановления работоспособности компьютера, дисков и т. д.

Операционные системы

Существует несколько видов операционных систем: DOS, Windows, UNIX, Macintosh OS, Linux. У других современных ОС, например Linux, UNIX, OS/2, имеют свои преимущества и недостатки. Linux предоставляет наиболее совершенную защиту, чем Windows, и имеет более продуманный интерфейс; UNIX применяется там, где требуется высокая надежность систем. Большим недостатком OS/2 и UNIX является довольно скудный выбор программных средств, и здесь Windows выигрывает у остальных операционных систем.

Основные функции ОС:

· управление устройствами компьютера (ресурсами), т.е. согласованная работа всех аппаратных средств ПК: стандартизованный доступ к периферийным устройствам, управление оперативной памятью и др.

· управление процессами, т.е. выполнение программ и их взаимодействие с устройствами компьютера.

· Дра́йвер (англ. driver, мн. ч. дра́йверы ) - компьютерное программное обеспечение, с помощью которого другое программное обеспечение (операционная система) получает доступ к аппаратному обеспечению некоторого устройства .

Назначение и состав прикладного программного обеспечения.

Прикладной уровень

Программное обеспечение этого уровня представляет собой комплекс прикладных программ, с помощью которых выполняются конкретные задачи (производственных, творческих, развлекательных и учебных). Между прикладным и системным программным обеспечением существует тесная взаимосвязь. Универсальность вычислительной системы, доступность прикладных программ и широта функциональных возможностей компьютера непосредственно зависят от типа имеющейся операционной системы, системных средств, помещенных в ее ядро и взаимодействии комплекса человек-программа-оборудование.



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

Алфавитно-цифровые клавиши - используются для ввода букв, цифр, пробела и специальных знаков;

Управляющие клавиши - служат для выполнения дополнительных действий, работают вместе с другими клавишами;

Клавиши управления курсором - применяются для перемещения курсора;

Клавиши цифровой клавиатуры - используются для ввода цифр и знаков арифметических действий, а также для управления курсором;

Функциональные клавиши - служат для выполнения определённых действий, например клавиша F1 часто вызывает справку о пользовании программой.

Дополнительная клавиатура чем-то напоминает обычный калькулятор.

Чтобы подчеркнуть удобство работы с цифрами и операциями над числами, дополнительную клавиатуру часто называют дополнительная цифровая клавиатура .

Мало того, для визуального контроля режима дополнительной клавиатуры предусмотрен индикатор, который на рисунке выше выделен зеленым цветом.

Если лампочка (индикатор) не горит, то на дополнительной клавиатуре включен режим навигации. Если лампочка светится, то на дополнительной клавиатуре включен цифровой режим.

Понятие программного обеспечения ПК. Краткая характеристика программного обеспечения.

Программное обеспечение - это совокупность программ, позволяющих осуществить на компьютере автоматизированную обработку информации. Программное обеспечение делится на системное (общее) и прикладное (специальное).

Системное программное обеспечение обеспечивает функционирование и обслуживание компьютера, а также автоматизацию процесса создания новых программ. К системному программному обеспечению относятся: операционные системы и их пользовательский интерфейс; инструментальные программные средства; системы технического обслуживания.

Прикладное программное обеспечение обеспечивает решение пользовательских задач. Ключевым понятием здесь является пакет прикладных программ.

Пакет прикладных программ - это совокупность программ для решения круга задач по определенной тематике или предмету.

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

Каждый вопрос экзамена может иметь несколько ответов от разных авторов. Ответ может содержать текст, формулы, картинки. Удалить или редактировать вопрос может автор экзамена или автор ответа на экзамен.

7.1 Понятие и классификация программного обеспечения (ПО) Программным обеспечением ЭВМ называется совокупность программ и документации, необходимые для эксплуатации ЭВМ. Программы - это упорядоченные последовательности команд. Конечная цель любой компьютерной программы - управление аппаратными средствами. Даже если на первый взгляд программа никак не взаимодействует с оборудованием, не требует никакого ввода данных с устройства ввода и не осуществляет вывод данных на устройства вывода, все равно ее работа основана на управлении аппаратными устройствами компьютера.

Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии.

Состав программного обеспечения вычислительной системы называют программной конфигурацией. Между программами, как и между физическими узлами и блоками существует взаимосвязь - многие программы работают, опираясь на другие программы более низкого уровня, т. е. работают на основе межпрограммного интерфейса. Возможность существования такого интерфейса тоже основана на существовании технических условий и протоколов взаимодействия. На практике интерфейс обеспечивается распределением программного обеспечения на несколько взаимодействующих между собой видов.

Существуют следующие виды программного обеспечения (рисунок 7.1):

Базовое программное обеспечение;

Системное программное обеспечение;

Прикладное программное обеспечение;

Инструментарий технологий программирования.

Рисунок 7.1. - Классификация программного обеспечения

Базовое программное обеспечение - самый низкий уровень программного обеспечения. Оно отвечает за взаимодействие с базовыми программными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ - Read Only Memory). Программы и данные записываются («прошиваются») в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.

В тех случаях, когда изменение базовых программных средств во время эксплуатации является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые постоянные запоминающие устройства (ППЗУ - Erasable and Programmable Read Only Memory ) . В этом случае изменение содержания ПЗУ можно выполнять как непосредственно в составе вычислительной системы (такая технология называется флэш-технологией ), так и вне ее, на специальных устройствах, называемых программаторами .

К базовому программному обеспечению относится базовая система ввода-вывода.

BIOS ( BIOS Basic Input / Output System ) - набор программ небольшого размера, в функции которых входят начальное тестирование оборудования и обеспечение взаимодействия компонентов компьютера. Имеется несколько видов BIOS: например, видео-BIOS обеспечивает работу видеоплаты, начиная от ее тестирования в момент включения и заканчивая взаимодействием видеоплаты с процессором, BIOS SCSI-контроллера выполняет роль переводчика между интерфейсом и системной шиной и т. п. Но наиболее важной в компьютере является системная BIOS, в функции которой входят:

Тестирование компьютера при включении питания с помощью специальных тестовых программ;

Поиск и подключение к системе других BIOS, расположенных на платах расширения;

Распределение ресурсов между компонентами компьютера.

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

Физически BIOS — это набор микросхем постоянной памяти (ROM, Read Memory — только для чтения), расположенных на материнской плате.

Системное программное обеспечение ( System Software ) — совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ.

Системнoe программное обеспечениенаправлено:

1. На создание операционной среды функционирования других программ;

2. На обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;

3. На проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей;

4. На выполнение вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.).

Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью.

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

Пакеты прикладных программ ( application program package ) — комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области.

Пакеты прикладных программ служат программным инструментарием функциональных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку различных предметных областей. Данный класс программных продуктов может быть весьма специфичным для отдельных предметных областей.

Инструментарий технологии программирования - совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения программных продуктов.

Инструментарий технологии программирования обеспечивает процесс разработки программ и включает специализированные программные продукты, которые являются инструментальными средствами разработчика. Программные продукты поддерживают все технологические этапы процесса проектирования, программирования, отладки и тестирования создаваемых программ.

Инструментарий технологии программирования делится на следующие группы:

1. Средства для создания приложений, включающие: локальные средства, обеспечивающие выполнение отдельных работ по созданию программ; интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ;

2. CASE-технологии (Computed Aided Software Engineering ) - система конструирования программ с помощью компьютера, представляющая методы анализа, проектирования и создания программных систем и предназначенная для автоматизации процессов разработки и реализации информационных систем. Это программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем.

Программное обеспечение - неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО.

Сам по себе компьютер не обладает знаниями ни в одной области применения. Все эти знания сосредоточены в выполняемых на компьютерах программах.

Программное обеспечение современных компьютеров включает миллионы программ � от игровых до научных.

Классификация ПО

Программы, работающие на компьютере, можно разделить на три категории:

  • прикладные программы , непосредственно обеспечивающие выполнение необходимых пользователям работ: редактирование текстов, рисование картинок, обработка информационных массивов и т. д.;
  • системные программы , выполняющие различные вспомогательные функции, например создание копии используемой информации, выдачу справочной информации о компьютера, проверку работоспособности устройств компьютера и т. д.;
  • Вспомогательное ПО (инструментальные системы и утилиты )

Понятно, что грани между указанными тремя классами программ весьма условны, например, в состав программы системного характера может входить редактор текстов, т. е. программа прикладного характера.

Прикладное ПО . Для IBM PC разработаны и используются сотни тысяч различных прикладных программ для различных применений. Наиболее широко применяются программы:

  1. подготовки текстов (документов) на компьютере � редакторы текстов;
  2. подготовки документов типографского качества � издательские системы;
  3. обработки табличных данных � табличные процессоры;
  4. обработки массивов информации � системы управления базами данных.

Прикладная программа � это любая конкретная программа, способствующая решению какой-либо задачи в пределах данной проблемной области.

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

Прикладные программы могут носить и общий характер, например, обеспечивать составление и печатание документов и т.п.

Прикладные программы могут использоваться либо автономно, то есть решать поставленную задачу без помощи других программ, либо в составе программных комплексов или пакетов.

Наиболее часто используемые типы прикладных программ.

Графические редакторы позволяют создавать и редактировать картинки на экране компьютера. Как правило, пользователю предоставляются возможности рисования линий, кривых, раскраски областей экрана, создания надписей различными шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров, а так же выводить полученные картинки в таком виде, чтобы они быть включены в документ, подготовленный с помощью текстового редактора или издательской системы.

Системы деловой и научной графики позволяют наглядно представлять на экране различные данные и зависимости. Системы деловой графики дают возможность выводить на экран различные виды графиков и диаграмм (гистограммы, круговые и секторные диаграммы и т.д.)

Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами базами данных. Наиболее простые системы этого вида позволяют обрабатывать на компьютере один массив информации, например персональную картотеку. Они обеспечивают ввод, поиск, сортировку записи, составление отчетов и т.д. С такими СУБД легко могут работать пользователи даже не высокой квалификации, так как все действия в них осуществляются с помощью меню и других диалоговых средств.

Табличные процессоры обеспечивают работу с большими таблицами чисел. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находится числа, пояснительные тексты формулы для расчета значения в клетки по имеющимся данным. Все распространенные табличные процессоры позволяют перевычислять значения элементов таблиц по заданным формулам, строить по данным в таблице различные графики и т.д. Многие из них предоставляют и дополнительные возможности. Некоторые из них расширяют возможности по обработке данных трехмерные таблицы, создание собственных входных и выходных форм, макрокоманд, связь с базами данных и т.д. Но большинство дополнений носят декоративный характер включение звуковых эффектов, создание слайд-шоу, здесь фантазия разработчиков неисчерпаема.

Системы автоматизированного проектирования (САПР) позволяют осуществлять черчение и конструирование различных механизмов с помощью компьютера.

  1. Интегрированные системы � сочетают в себе возможности системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности.
  2. Бухгалтерские программы � предназначены для ведения бухгалтерского учета, подготовки финансовой отчетности и финансового анализа деятельности предприятий. Из-за не совместимости отечественного бухгалтерского учета с зарубежным в нашей стране используются почти исключительно отечественные бухгалтерские программы. Некоторые из них предназначены для автоматизации отдельных участков бухгалтерского учета - начисление заработной платы, учета товаров, материалов на складах и т.д.

Программы-оболочки. Весьма популярный класс системных программ составляют программы-оболочки. Они обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS.Многие пользователи настолько привыкли к удобствам, предоставляемым своей любимой программой-оболочкой, что чувствуют себя без нее �не в своей тарелке�. Наиболее популярными программами-оболочками являются Norton Commander, Xtree Pro Gold, PC Shell из комплекта PC Tools. В состав операционной системы MS DOS, начиная с версии 4.0, также входит собственная программа-оболочка Shell (впрочем, не очень популярная).

Операционные оболочки, в отличие от обычных программ-оболочек, не только дают пользователю более наглядные средства для выполнения часто используемых действий, но и предоставляют новые возможности для запускаемых программ. Чаще всего это:

  • графический интерфейс, т.е. набор средств для вывода изображений на экран и манипулирования ими, построения меню, окон на экране и т.д.;
  • мультипрограммирование, т.е. возможность одновременного выполнения нескольких программ;
  • расширенные средства для обмена информацией между программами.

Операционные оболочки упрощают создание графических программ, предоставляя для этого большое количество удобных средств, и расширяют возможности компьютера. Но платой за это являются повышенные требования к ресурсам. Так, для эффективной работы c Microsoft Windows необходим компьютер АТ/386, имеющий 4 Мбайта оперативной памяти. Наиболее популярной программой-надстройкой является Microsoft Windows, иногда используется Desq View и значительно реже другие оболочки (GEM, Geo Works и др.).

К системным программам можно также отнести большое количество так называемых утилит, т.е. программ вспомогательного назначения. Ниже мы кратко опишем некоторые разновидности этих программ. Часто утилиты объединяются в комплексы, наиболее популярны комплексы Norton Utilities, PC Tools Deluxe и Mace Utilities.

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

Программы для создания резервных копий информации на дисках позволяют быстро скопировать информацию, имеющуюся на жестком диске компьютера, на дискеты или кассеты стримера.

Антивирусные программы предназначены для предотвращения заражения компьютерным вирусом и ликвидации последствий заражения вирусом.

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

Программы динамического сжатия дисков позволяют увеличить количество информации, хранимой на дисках путем ее динамического сжатия. Эти программы сжимают информацию при записи на диск, а при чтении восстанавливают в ее исходном виде.

Программы для автономной печати позволяют распечатывать файлы на принтере параллельно с выполнением другой работы на компьютере.