Главная - Восстановление
Понятие программного обеспечения по. Программное обеспечение

Введение

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

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

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

В нее включаются:

Технология проектирования программ;

Методы тестирования программ;

Методы доказательства правильности программ;

Анализ качества работы программ;

Документирование программ;

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

К сервисному программному обеспечению относятся:

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

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


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

Типичными представителями утилит являются:

Диспетчеры файлов или файловые менеджеры;

Архиваторы файлов, папок и дисков;

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

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

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

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

Часто утилиты объединяются в комплексы, наиболее популярны комплексы Norton Utilities, PC Tools Deluxe и Mace Utilities.

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

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

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

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

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

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

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

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

Обзорная лекция № 32

для студентов специальности

«Программное обеспечение информационных технологий»

доцента кафедры ИВТ, к.т.н. Ливак Е.Н.

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Основные понятия, факты

Назначение и классификация СПО. Требования к СПО. Базовое и сервисное СПО. Операционные системы. Системы управления файлами. Системные утилиты. Системы программирования.

Навыки и умения

Разработка системного программного обеспечения в соответствии с требованиями к СПО на языках Assembler , С++.

Установка и использование системных утилит.

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

Традиционно все программное обеспечение подразделяют на два класса:

1) системное программное обеспечение (СПО) и

2) прикладное (пользовательское)программное обеспечение (ППО)

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

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

Это самый многочисленный класс программных продуктов.

К специальному программному обеспечению информационных и управляющих систем относятся

· программы (системы) управления базами данных;

· программы управления языком интерфейса информационных систем;

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

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

Поэтому часто такие ПО относят к системному программному обеспечению.

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

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

Назначение системного программного обеспечения

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

· создания операционной среды функционирования других программ (другими словами, для организации выполнения программ);

· автоматизации разработки (создания) новых программ;

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

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

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

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

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

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

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

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

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

В СПО традиционно включают

· системные управляющие и

· системные обрабатывающие программы.

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

Основные системные функции управляющих программ -

· управление вычислительными процессами и вычислительными комплексами и

· работа с внутренними данными ОС.

Как правило, они находятся в основной памяти. Это резидентные программы, составляющие ядро ОС. Управляющие программы, которые загружаются в память непосредственно перед выполнением, называю транзитными ( transitive ).

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

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

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

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

Другая классификация

Часто Системное ПО компьютера подразделяют на БАЗОВОЕ и СЕРВИСНОЕ программное обеспечение.

БАЗОВОЕ программное обеспечение (base software) - минимальный набор программных средств, обеспечивающих работу компьютера.

К базовому программному обеспечению компьютера относятся

· операционные системы и драйверы в составе ОС;

· интерфейсные оболочки для взаимодействия пользователя с ОС (операционные оболочки) и программные среды;

· системы управления файлами.

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

Операционная система предназначена для управления выполнением пользовательских программ, планирования и управления вычислительными ресурсами ЭВМ.

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

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

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

Любая система управления файлами не существует сама по себе - она разработана для работы в конкретной ОС и с конкретной файловой системой. То есть можно было бы систему управления файлами отнести к ОС.

Но в связи с тем, что

1) ряд ОС позволяет работать с несколькими файловыми системами (либос одной из нескольких, либо сразу с несколькими одновременно); а дополнительную файловую систему можно установить (т.е. они самостоятельны)

2) простейшие ОС могут работать и без файловых систем;

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

Заметим, что часто в специальной литературе системы управления файлами относят все-таки к операционным системам.

СЕРВИСНОЕ программное обеспечение - программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя.

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

· драйверы специфических и специальных устройств (те, которые не поставляются в составе ОС).

· программы диагностики работоспособности компьютера;

· антивирусные программы, обеспечивающие защиту компьютера, обнаружение и восстановление зараженных файлов;

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

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

· программы обслуживания сети.

Эти программы часто называются системными утилитами . (Заметим, что к антивирусным средствам этот термин обычно не применяется)

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

Наибольшее распространение сегодня имеют комплекты утилит: Norton Utilities - фирма Symantec; Checkit PRO Deliuxe 2.0 - фирма Touch Stone; PC Tools for Windows 2.0; программа резервного копирования HP Colorado Backup for Windows 95.

Системы программирования

Отдельно рассмотрим такую группу системного ПО как системы программирования .

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

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

· редактор текста;

· транслятор с соответствующего языка;

· компоновщик (редактор связей);

· отладчик;

· библиотеки подпрограмм.

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

Например, одна из популярных систем программирования на языке С/С++ от фирмы Watcom для OS /2 позволяет получать программы и для самой OS /2, и для DOS , и для Windows .

Редактор текста - это программа для вводаи модификации текста.

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

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

(У интерпретаторов два основных недостатка. Первый - низкая скорость работы интерпретируемых программ.)

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

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

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

· пошаговое выполнение программы (режим трассировки) с отображением результатов,

· остановка в заранее определенных точках,

· возможность остановки в некотором месте программы при выполнении некоторого условия;

· изображение и изменение значений переменных.

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

Средства сетевого доступа обеспечивают обработку, передачу и хранение данных в сети.

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

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

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

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

Пример. Приложения Netscape Navigator , Internet Explorer - программы- клиенты.

Таким образом, в системном ПО мы выделили пять групп системных программ :

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

· интерфейсные оболочки для взаимодействия пользователя с ОС (операционная оболочка) и программные среды;

· системы управления файлами;

· системы программирования;

· утилиты;

· средства сетевого доступа.

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

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

Требования к системному программному обеспечению

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

· прозрачность работы;

· гарантированная надежность выполнения в соответствии со спецификациями (спецификациями называютсяфункциональные требования);

· максимальная скорость выполнения;

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

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

Эффективность системных программ зависит от времени их создания и надежности исполняемого кода.

Требование эффективности системных программ вызывает необходимость использования специальных языков

· машинно-ориентированных типа языка Assembler и

· высокого уровня типа C или C ++.

К типам данных этих языков отнесены указатели на данные различных типов или адреса данных и программных объектов.

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

Использованнаялитература

1.Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. - СПб.: Питер, 2001. - с. 17-21

2.Пустоваров В.И. Ассемблер: программирование и анализ корректности машинных программ: - К.: Издательская группа BHV , 2000. -с. 5-25

3. Internet- источник // iit.khsu.ru/isitc/informatika/6_2.htm

4. Internet- источник // www.stu.ru/inform/glaves2/glava8/gl_8_2.htm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Системное ПО можно разделить на базовое ПО, операционную систему и сервисное ПО.

Базовое системное ПО - это набор базовых программ, встроенных в элементы аппаратуры на этапе ее изготовления и хранящихся в соответствующих ПЗУ. Основная часть базового ПО - это система BIOS (Basic Input and Output System), записанная в ПЗУ на материнской плате. Можно выделить следующие основные функции BIOS.

  • 1. Поддержка аппаратных интерфейсов
  • 2. Тестирование аппаратных компонентов ПК при его включении.
  • 3. Загрузка операционной системы .

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

Настройка системы BIOS возможна через программу BIOS Setup, являющуюся частью BIOS. Для запуска этой программы необходимо нажать клавишу Delete после включения компьютера, но до начала загрузки операционной системы (в течение нескольких секунд после включения компьютера). Одна из настроек BIOS, которая используется наиболее часто, - указание загрузочного устройства операционной системы, т.е. указание, на каком носителе данных находится операционная система. Как правило, в BIOS устанавливается список из 3-х носителей, которые просматриваются по очереди, если на каком-либо из них обнаруживается установленная операционная система, то эта система загружается. Если ни на одном из устройств списка не обнаружено операционной системы, то выдается соответствующее сообщение и запрос на ввод идентификатора какого-нибудь другого устройства. Без операционной системы совершать на компьютере какие-либо программные действия, кроме настройки BIOS, невозможно. Если используемая операционная система установлена на жестком диске и нет необходимости эту систему менять, то в загрузочном списке целесообразно поставить этот жесткий диск на первое место. Если же есть необходимость загружать операционную систему с CD-привода (при установке новой операционной системы), то в загрузочном списке CD-привод должен стоять раньше жесткого диска. Многие настройки BIOS нет необходимости менять через программу BIOS Setup - их можно установить через соответствующие утилиты операционной системы. Например, системные часы можно установить через раздел Дата и время Панели управления Windows (при этом произойдет именно перенастройка соответствующего параметра BIOS). Современные ПЗУ BIOS как правило построены на основе флэш-памяти, поэтому для них возможна функция перезаписывания (прошивки) - для этого в состав BIOS входят соответствующие программы. Перезаписывание BIOS - очень критичная процедура - если на этапе перезаписывания произойдет сбой, компьютер окажется полностью неработоспособным .

Рис. 100.

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

Рассмотрим уровни программного обеспечения.

Базовый уровень

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

Системный уровень

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

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

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

Служебный уровень

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

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

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

К прикладным программным средствам относят:

  • - текстовые редакторы - предназначены для создания и редактирования текста. Дополнительные функции состоят в автоматизации процесса ввода и редактирования. В качестве примера можно привести программу Notepad (Блокнот);
  • - текстовые процессоры. Основным отличием текстовых процессоров от текстовых редакторов в том, что они позволяют не только вводить и редактировать тексты, но и внедрять в него графики, формулы, таблицы и других объекты. Классическим примером текстового процессора является Microsoft Word;
  • - графические редакторы - предназначены для создания или обработки графических изображений.

Различают: растровые редакторы, векторные редакторы и программные средства для создания и обработки трехмерной графики (ЗО-редакторы). Самый простой пример растрового графического редактора, который присутствует на каждом компьютере - Paint. Растровые изображения имеют несколько видов расширения: jpeg или jpg, png, gif, bmp и др. Второй пример графического растрового редактора - Adobe Photoshop. Photoshop имеет огромный функционал, поддержку большого числа плагинов (программные модули, динамически подключаемые к основной программе и предназначенные для расширения и/или использования ее возможностей) и инструментов. Позволяет работать в различных цветовых моделях и с различными расширениями файлов.

Векторный графический редактор CorelDRAW из пакета CorelDRAW Graphics Suite представляет собой мощный профессиональный продукт для создания различного рода графики и анимации. Тем не менее благодаря встроенной развитой системе обучения и справки программа весьма проста для освоения даже новичками в области векторной графики.

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

Редакторы трехмерной графики служат для создания фильмов, компьютерных игр, графического дизайна, изобилующих анимацией, визуальными эффектами. Широкое распространение подобные программы нашли в области машиностроения, архитектуры, производства потребительских товаров и т.п. В качестве примера можно привести такие программные продукты, как Autodesk Maya, Autodesk 3ds Max:

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

Принято делить СУБД на настольные и промышленные. Примером настольных СУБД служат: Access, FoxPro. Промышленные СУБД ориентированы на создание информационных систем, оперирующих большим объемом информации с повышенным требованием безопасности, например: Oracle, MS SQL Server:

  • - электронные таблицы - представляют собой программный инструмент, предназначенный для хранения различных типов данных, проведения над ними расчетов. Самое популярное средство работы с электронными таблицами - программа Excel;
  • - системы автоматизированного проектирования (САПР) - предназначены для автоматизации проектно-конструкторских работ. Применяются в машиностроении, приборостроении, архитектуре.

Наиболее распространенной САПР в мире является программа AutoCAD (англ. Computer-Aided Design) - двух- и трехмерная система автоматизированного проектирования и черчения. В качестве примера российской САПР можно привести систему ADEM (англ. Automated Design Engineering Manufacturing), предназначенную для автоматизации конструкторско-технологической подготовки производства;

  • - настольные издательские системы - позволяют осуществлять электронную верстку широкого спектра основных типов документов: информационного бюллетеня, цветной брошюры, каталога, справочника. Примерами таких программ являются: Corel Ventura, Page Maker, QuarkXPress, Frame Maker, MS Publisher;
  • - экспертные системы - предназначены для анализа данных, содержащихся в базе знаний, и выдачи рекомендаций по запросу пользователя.

Экспертные системы способны в сложной ситуации (при недостатке времени, информации или опыта) дать квалифицированную консультацию (совет, подсказку), помогающую специалисту или менеджеру принять обоснованное решение. База знаний экспертной системы содержит сведения о предметной области (медицина, юриспруденция и т.п.) и правила - набор инструкций, применяя которые к известным фактам можно получать новые факты. В качестве примера можно привести программную экспертную систему CLIPS (англ. С Language Integrated Production System);

  • - web-редакторы (HTML-редакторы) - позволяют создавать с минимальными временными затратами простые и сложные, красиво оформленные Web-страницы. Одним из наиболее популярных HTML-редакторов в мире является программа Adobe Dreamweaver;
  • - браузеры (обозреватели) - программные средства, предназначенные для просмотра web-сайтов. Наиболее популярными являются программы Internet Explorer, Mozilla Firefox, Google Chrome, Opera;
  • - бухгалтерские системы (системы автоматизации бухгалтерского учета) - предназначены для автоматизации подготовки бухгалтерских документов предприятия и их учета, для подготовки регулярных отчетов по итогам производственной, хозяйственной и финансовой деятельности.

Бухгалтерский учет в крупных предприятиях ведется при помощи современных ERP (англ. Enterprise Resource Planning System - система планирования ресурсов предприятия) - систем, позволяющих автоматизировать не только бухгалтерский учет, но и управление производством. В этих целях обычно используются такие системы, как SAP, Oracle E-Business Suite, 1С:Предприятие, Microsoft Dynamics NAV (Navision), ERP «Галактика» и др.;

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

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

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

К служебным программным средствам относят:

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

Типичными представителями этого класса программ являются FAR Manager, Total Commander, FreeComander;

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

Из числа наиболее популярных программ можно выделить: ARJ, РКРАК, LHA, ICE, HYPER, ZIP, РАК, ZOO, RAR;

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

Диагностика - систематизированный способ поиска неисправностей с последующим их устранением. Среди программ диагностики можно выделить SiSoftware Sandra (англ. System ANalyser, Diagnostic and Reporting Assistant) - это информационная и диагностическая программа. Она предоставляет практически всю информацию об аппаратном и программном обеспечении компьютера. Другая программа - 3DMark, ориентированная исключительно на измерение производительности видеосистемы;

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

В качестве примера можно привести программу MB Probe, с помощью которой можно снимать температуру от нескольких термодатчиков, определить напряжения ядра процессора и материнской платы, держать под контролем обороты вентиляторов. Температура винчестера, атрибуты внутренней системы диагностики S.M.A.R.T., а также напряжения датчиков оборотов вентиляторов материнской платы могут быть представлены с помощью утилиты SpeedFan;

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

К антивирусному программному обеспечению данной категории относят Kaspersky Virus Removal Tool - программу разработанную специалистами лаборатории Касперского для сканирования компьютера на наличие вредоносных программ. Kaspersky A VP Tool находит и изолирует: вирусы, трояны, черви, шпионские и рекламные модули, все типы руткитов и тому подобные вредоносные программы. Другая популярная программа Dr.Web Curelt! - бесплатный антивирус для сканирования, обнаружения и удаления (лечения) компьютеров под управлением Windows.

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

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

Контрольные вопросы и задания

  • 1. Что называется программой? Дайте определение понятию «программная конфигурация».
  • 2. Начертите схему уровней программного обеспечения.
  • 3. Дайте характеристику базовому уровню программного обеспечения.
  • 4. Что называется драйвером устройства? Опишите назначение программ системного уровня.
  • 5. Каково назначение утилит? Поясните назначение программ системного уровня. Приведите примеры подобных программ.
  • 6. Перечислите программы, которые относят к прикладному уровню программного обеспечения.
  • 7. Какие типы программ, относящиеся к графическим редакторам, вы знаете?
  • 8. Поясните основные функции систем управления базами данных. Приведите примеры программ данного класса.
  • 9. В чем особенности экспертных систем?
  • 10. Раскройте назначение финансовых аналитических систем. Приведите примеры программ данного класса.
  • 11. Перечислите программы, относящиеся к служебным программным средствам.
  • 12. Какой класс программ позволяет выполнять основные операции над файлами? Приведите примеры.
  • 13. В чем отличие программ, предназначенных для диагностики и мониторинга компьютерных систем?
  • 14. Что относится к средствам обеспечения компьютерной безопасности? Перечислите и опишите соответствующие программы.
  • 15. Разработайте таблицу, которая содержит рассмотренные виды программного обеспечения, установленные на вашем компьютере.

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

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

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) Инструментальные программные системы , облегчающие процесс создания новых программ для компьютера.

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

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


 


Читайте:



Телефон Lenovo не включается

Телефон Lenovo не включается

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

Как восстановить удаленные файлы на MAC OS X Как восстановить данные с флешки на mac

Как восстановить удаленные файлы на MAC OS X Как восстановить данные с флешки на mac

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

Используйте "Найти телефон", чтобы найти потерянное устройство Samsung Galaxy

Используйте

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

Почему вам стоит использовать автоматическое обновление Windows

Почему вам стоит использовать автоматическое обновление Windows

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

feed-image RSS