Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф - видеолекции.docx
Скачиваний:
29
Добавлен:
28.10.2018
Размер:
6 Мб
Скачать
☆

Лекция Программное обеспечение и технологии программирования

1. Основные термины и определения

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

3. Системное ПО

4. Инструментальное программное обеспечение

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

6. Технологии программирования

Основные термины и определения

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

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

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

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

Приложение (application) или прикладная программа (software application) – программная реализация решения некоторой прикладной задачи.

Интерфейс прикладного программирования (иногда интерфейс программирования приложений) (Application Programming Interface, API) – набор готовых подпрограмм, структур данных, классов и констант, предоставляемых некоторым приложением (библиотекой, сервисом) для

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

Системная программа (system program) – программа, реализующая решение некоторых задач по управлению компьютерной системой или аппаратурой ЭВМ.

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

Кодирование (coding) – процесс написания программного кода с целью реализации определённого алгоритма на определённом языке программирования.

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

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

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

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


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

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

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

2. Инструментальное программное обеспечение

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

Системное ПО

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

СПО можно разделить на две категории:

- Базовое СПО

- Сервисное СПО (или утилиты)

В базовое программное обеспечение входят:

- Базовая система ввода-вывода (БСВВ, BIOS)

- Операционная система, сетевая операционная

система

- Командные процессоры, операционные оболочки

(текстовые и графические)

Базовая система ввода-вывода является низшим уровнем программного обеспечения. Она отвечает за взаимодействие с базовыми аппаратными средствами. Базовое программное обеспечение содержится в составе базового аппаратного обеспечения и сохраняется

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

Примерами программ из BIOS могут служить:

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

- Программа самотестирования аппаратных компонентов компьютера после стартовой загрузки – «POST (Power-On Self Test)»

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

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

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

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

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

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

- Управления процессами (программами, приложениями), выполняемыми на ЭВМ

- Предоставления пользователю средств (интерфейса) по взаимодействию с ЭВМ с целью управления ресурсами и процессами

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

- Оперативную память

- Процессор

- Монитор

- Печатающее устройство

- Магнитные и оптические диски

- Программы различного типа

- Файлы

- События

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

- Загрузка пользовательских программ в оперативную память и их исполнение

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

- Предоставление стандартного доступа к различным устройствам ввода/вывода, таким как

терминалы, модемы, печатающие устройства

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

- Параллельное (псевдопараллельное) исполнениенескольких задач

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

- Организация взаимодействия задач друг с другом

- Взаимодействие пользовательских программ с нестандартными внешними устройствами

- Организация межмашинного взаимодействия и разделения ресурсов

Операционные системы делятся на:

- Одно- и многозадачные (в зависимости от числа

параллельно выполняемых прикладных

процессов)

- Одно- и многопользовательские (в зависимости

от числа пользователей, одновременно

работающих с операционной системой)

- Непереносимые и переносимые на другие типы

компьютеров

- Несетевые и сетевые, обеспечивающие работу

в вычислительных сетях ЭВМ

Наиболее известные ОС:

- MS-DOS

- IBM OS/2

- Unix

- Free BSD

- GNU/Linux

- MS Windows

- Apple Mac OS

- Novell NetWare

- SunOS

- Solaris

Сетевая операционная система (Network operating system) – это операционная система, которая обеспечивает обработку, хранение и передачу данных в информационной сети.

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

- Определяет разделяемые ресурсы

- Задаёт пароли

- Определяет права доступа для каждого

пользователя или группы пользователей

Сетевые ОС делят на:

- Сетевые ОС для серверов

- Сетевые ОС для пользователей

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

Серверные сетевые ОС имеют более широкие функции.

Основными задачами сетевой ОС являются:

- Разделение ресурсов сети (например,

дисковые пространства, принтеры и т.п.)

- Администрирование сети

Сетевая ОС должна уметь обеспечивать:

- Адресацию объектов в сети

- Функционирование сетевых служб

- Коммуникационные функции (сообщения, почта)

- Адресацию, буферизацию, маршрутизацию информации в сети

- Безопасность данных

- Защиту от несанкционированного доступа к данным

в сети

- Ограничение доступа в определенное время, и/или для определенных станций, и/или определенное число раз

- Управление пользователями и ограничение совокупности доступных конкретному пользователю

каталогов и ресурсов

- Ограничение для конкретного пользователя списка возможных действий (например, только чтение файлов)

- Отказоустойчивость сети

- Все функции управление сетью

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

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

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

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

Менеджер – прикладная программа, выдающая сетевые команды.

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

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

К сетевому программному обеспечению относятся также драйверы сетевых плат, различные для разных типов ЛВС (Ethernet, TokenRing, AppleTalk и др.). Но и внутри одного типа ЛВС имеется много плат с разными характеристиками интеллектуальности, скорости, объема буферной памяти.

Наиболее известные сетевые ОС:

- Apple Talk

- LANtastic

- Novell NetWare

- NFS

- OS/2 LAN Server/Manager

- MS Windows 2003/2008 Server

- POWERfusion

- POWERLan

- Vines

- Unix

- GNU/Linux

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

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

Примеры командных процессоров:

- Command.com (MS-DOS и Windows 9x)

- cmd.exe (NT, 2000, 2003, XP, Vista)

- Bash, Sh, csh (Linux, Unix)

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

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

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

- Norton Commander 5.0

- XTree Gold 4.0

- Far

- Norton Navigator

Графические оболочки являются более удобными по сравнению с текстовыми, т.к. используют встроенный графический интерфейс ОС. По функциональному назначению отличия от текстовых оболочек – минимальны. Как правило, в современных ОС графические оболочки встраиваются непосредственно в ОС и запускаются в самом конце загрузки ОС. Примером такой оболочки может служить «Проводник Windows» (Windows Explorer), который представляет собой визуальную среду управления включающую в себя Рабочий стол, Меню пуск, Панель задач, а также функции управления файлами.

Примеры графических оболочек:

- Windows Explorer

- FreeBSD GNOME

- X-Windows System

- Motif

- CDE

- KDE

- Aston shell

- Geoshell

- Secure Desktop

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

Дополнительно устанавливаемые программы можно разделить

на следующие группы:

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

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

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

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

уменьшения объема памяти для ее хранения

- Дополнительные программы обслуживания сети

Инструментальное программное обеспечение

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

К инструментальному ПО можно отнести следующие виды программ:

- Компиляторы

- Трансляторы

- Ассемблеры

- Интерпретаторы

- Компоновщики

- Отладчики

- Средства автоматизированного тестирования

программ

- Генераторы документации 

- Комплект средств разработки (SDK)

- Системы управления версиями

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

интегрированные среды разработки программ

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

(CASE)

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

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

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

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

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

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

Генератор документации – программа или пакет программ, позволяющая получать документацию, предназначенную для программистов (документация на API) и/или

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

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

- HTML

- HTMLHelp

- PDF

- RTF

Комплект средств разработки (SDK, Software Development Kit) или «devkit» – набор программ и библиотек подпрограмм, позволяющий специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, видеоигровых консолей, операционных систем и прочих платформ.

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

Система управления версиями (Version Control System, VCS или Revision Control System) – программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое. Такие системы наиболее широко применяются при разработке программного обеспечения, для хранения исходных кодов разрабатываемой программы. Однако, они могут с успехом применяться и в других областях, в которых ведётся работа с большим количеством непрерывно изменяющихся электронных документов.

Интегрированная среда разработки (ИСР) (Integrated development environment, IDE) – система программных средств, используемая для разработки программного обеспечения. Обычно среда разработки включает в себя текстовый редактор, компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Иногда также содержит средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя.

Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов – для использования при объектно-ориентированной разработке ПО. Хотя и существуют среды разработки, предназначенные для нескольких языков – такие как Eclipse, NetBeans, Embarcadero RAD Studio или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования – как например, Visual Basic, Delphi, Dev-C++. Частный случай ИСР – среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.

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

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

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

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

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

- Проблемно-ориентированные программы

- Системы автоматизированного

проектирования (САПР)

- ПО для автоматизированных систем

управления

- Программы общего назначения

- Офисные системы

- Интеллектуальные системы

- Программные системы мультимедиа

- Настольные издательские системы

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

Примеры проблемно-ориентированных программ:

- Программы бухгалтерского учета

- Программы финансовой деятельности

- Программы управления персоналом

- Программы управления предприятием

- Банковские информационные и

автоматизированные системы

- Автоматизированные рабочие места

на предприятии

Системы автоматизированного проектирования (CAD System – Computer Aided Design System) предназначены для поддержки работы конструкторов, технологов, электриков и электронщиков, архитекторов и других специалистов, связанных с разработкой чертежей, схем, моделей, графическим моделированием, конструированием. Системы такого класса очень требовательны к аппаратному обеспечению ЭВМ, быстродействию, памяти. Существенно наличие библиотек встроенных функций, объектов, интерфейсов с графическими системами и базами данных.

В САПР принято выделять семь видов обеспечения:

1. Техническое (ТО), включающее различные аппаратные средства (ЭВМ, периферийные

устройства, сетевое коммутационное оборудование, линии связи, измерительные средства)

2. Математическое (МО), объединяющее математические методы, модели и алгоритмы для выполнения проектирования

3. Программное (ПО), представляемое компьютерными программами САПР

4. Информационное (ИО), состоящее из базданных (БД), систем управления базами данных (СУБД), а также других данных, используемых при проектировании. Вся совокупность используемых при проектировании данных называется информационным фондом САПР, а БД вместе с СУБД носит название банка данных (БнД)

5. Лингвистическое (ЛО), выражаемое языками общения между проектировщиками и ЭВМ, языками программирования и языками обмен данными между техническими средствами

САПР

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

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

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

- САПР для применения в отраслях общего

машиностроения. Их часто называют

машиностроительными САПР или MCAD

(Mechanical CAD) системами

- САПР для радиоэлектроники. Их названия –

ECAD (Electronic CAD) или EDA (Electronic

Design Automation) системы

- САПР в области архитектуры и строительства

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

Примерами специализированных САПР являются:

- САПР больших интегральных схем (БИС)

- САПР летательных аппаратов

- САПР электрических машин

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

В составе MCAD появляются CAE/CAD/CAM системы:

- САПР функционального проектирования, иначе

САПР-Ф или CAE (Computer Aided Engineering)

системы

- Конструкторские САПР общего машиностроения —

САПР-К, часто называемые просто CAD системами

- Технологические САПР общего машиностроения —

САПР-Т, иначе называемые автоматизированными

системами технологической подготовки

производства АСТПП или системами CAМ

(Computer Aided Manufacturing)

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

Наиболее всего известны следующие классы АСУ:

- Автоматизированная система управления

технологическим процессом (АСУ ТП) – решает

задачи оперативного управления и контроля

техническими объектами в промышленности,

энергетике, на транспорте

- Автоматизированная система технической

(технологической) подготовкой производства

(АСТПП) – система связанная с организацией

технических процессов, которые существуют или

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

на программировании станков с числовым

программным управлением,   изготовлением и

сборкой программно-управляемых роботов и т.п.

- Автоматизированная система управления

производством (АСУ П) – решает задачи

организации производства, включая основные

производственные процессы, входящую и

исходящую логистику. Осуществляет краткосрочное

планирование выпуска с учётом производственных

мощностей, анализ качества продукции,

моделирование производственного процесса.

Для решения этих задач применяются MIS и MES-

системы, а также LIMS-системы

- Автоматизированная система управления

предприятием (АСУП) – для решения этих задач

применяются MRP,MRP II и ERP-системы.

Например, если предприятием является высшее

учебное заведение, имеет место АСУ ВУЗ

В качестве примера наиболее известных АСУ можно выделить:

- Автоматизированная система управления дорожным движением или АСУД – предназначена

для управления транспортных средств и пешеходных потоков на дорожной сети города или

автомагистрали

- Автоматизированная система управления уличным освещением («АСУ УО») – предназначена для организации автоматизации централизованного управления уличным освещением

- «Автоматизированная система управления» для гостиниц

- Автоматизированная система контроля проезда(АСКП) в общественном транспорте г.Москвы

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

К группе программ общего назначения можно отнести:

- Системы управления базами данных (СУБД)

- Серверы БД

- Генераторы отчетов

- Текстовые процессоры

- Табличные процессоры

- Средства презентационной графики

- Интегрированные пакеты

- Методо-ориентированные программы

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

В современных СУБД содержатся элементы CASE-технологии процесса проектирования, в частности:

- Визуализация схем баз данных

- Автоматическая поддержка целостности БД

при различных видах обработки (включение,

удаление, модификация)

- Наличие так называемых мастеров,

обеспечивающих поддержку процесса

проектирования

- Шаблоны и прототипы структур БД, отчетов

форм

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

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

Общим для различных видов БД является использование реляционного языка SQL (Structured Query Language) для реализации запросов к данным.

Генераторы отчетов (серверы отчетов) обеспечивают реализацию запросов и формирование отчетов в печатном или экранном виде в условиях сети с архитектурой клиент-сервер. Сервер отчетов подключается

к серверу БД, используя драйверы сервиса БД (Crystal Reports, Profit for windows).

Текстовые процессоры предназначены для работы с текстовыми документами. Развитием данного направления являются издательские системы Microsoft Word).

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

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

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

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

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

В разряд офисных ППП входят:

- Органайзеры (планировщики) – ПО для

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

встреч, расписаний, ведения записей и телефонной книжки

(калькулятор, записная книжка, часы, календарь и т.п.)

- Программы-переводчики, средства проверки

орфографии, распознавание текста (Tiger – система

распознавания русского языка, Stylus Lingvo Office,

содержащий Fine Reader, Stylus for Windows – переводчик

на указанный язык, корректор орфографии Lingvo Corrector

и резидентный словарь Lingvo)

- Коммуникационные пакеты, предназначенные для

организации взаимодействия пользователей с удаленными

абонентами или информационными ресурсами сети (ICQ

и др.)

- Браузеры, средства создания WWW-страниц

- Средства электронной почты (Pegasys Mail)

Настольные издательские системы – это широкий класс ПО,

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

Данный класс ПО включает программы, обеспечивающие:

- Форматирование и редактирование текстов

- Автоматическую разбивку текста на страницы

- Компьютерную верстку печатной страницы

- Монтирование графики

- Подготовку иллюстраций

- Подготовку оригинал-макета

К настольным издательским системам относятся:

- PageMaker

- CorelDraw

- PhotoShop for Windows

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

Системы искусственного интеллекта:

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

- Готовые экспертные системы для принятия решений в рамках определенных предметных областей

- Системы анализа и распознавания речи, текста и т.п.

Под интеллектуальными системами (ИС) можно понимать автоматические и автоматизированные системы с элементами искусственного интеллекта (ИИ).

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

- Представление знаний и разработка систем,

основанных на знаниях

- Творчество и игры (шахматы, шашки, го)

- Разработка естественно-языковых интерфейсов и

машинный перевод текстов

- Распознавание образов (каждому объекту ставится

в соответствие матрица признаков, по которой

проходит его распознание)

- Новые архитектуры компонентов

(нейрокомпьютеры)

- Интеллектуальные роботы

- Специальное ПО (языки Лисп, Пролог)

- Обучение и самообучение (включают модели,

методы и алгоритмы, ориентированные на

автоматическое накопление знаний на основе

анализа и обобщения данных)

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

Знания – это данные о данных, или метаданные.

Модели представления знаний:

- Продукционные модели

- Семантические модели

- Фреймовые модели

- Формальные логические модели

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

Если (условие), то (действие).

Под условием понимается некоторое предложение – образец, по которому осуществляется поиск в базе знаний (БЗ), а под действиями – действия, совершаемые при успешном выполнении поиска.

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

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

- EXSYS

- ФИАКР

- ЭКСПЕРТ

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

Понятиями обычно выступают абстрактные или конкретные объекты, а отношения – это связи типа:

- Это (this)

- Имеет частью (Has part)

- Принадлежит

- Любит

Обязательно наличие трех типов отношений:

- Класс – элемент класса

- Свойство – значение

- Пример элемента класса

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

семантические сети:

- PROSPECTOR

- CASNET

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

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

сети фреймов:

- ANALYST

- МОДИС

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

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

Инструментальные средства построения экспертных систем:

- Традиционные языки программирования (С, С+, Паскаль и т.п.)

- Языки ИИ (LIPS, PROLOG)

- Специальный программный инструментарий (набор различных библиотек – KEE, KRL, ARTS и др.)

- «Оболочки», т.е. готовые ЭС без наполненной БЗ

Этапы разработки ЭС:

- Выбор подходящей проблемы

- Разработка прототипной системы (усеченный вариант ЭС)

- Развитие прототипа до промышленной ЭС

- Оценка системы

- Стыковка системы

- Поддержка системы

Существует несколько стратегий получения знаний:

- Приобретение знаний – автоматизированное построение БЗ посредством диалога эксперта и специальной программы ( при этом структура знаний заранее закладывается в программу)

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

- Формулирование знаний – использование различных моделей, методов и алгоритмов анализа данных для получения знаний и обучения

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

- Формализация знаний – реализация поля знаний на подходящем языке представления знаний

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

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

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

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

1. Постановка задачи, анализ и уточнение

требований, предъявляемых к системе

2. Определение спецификаций и разработка

системной архитектуры

3. Детальное проектирование модулей

4. Программирование (кодирование)

5. Тестирование и отладка

6. Эксплуатация и сопровождение

Техническое задание содержит следующие пункты:

- Требования к программе или программному

изделию

- Требования к программной документации

- Технико-экономические показатели

- Стадии и этапы разработки

- Порядок контроля и приема

Проект включает:

1. Функции системы

2. Сфера применения

3. Отчеты

4. Программные средства

5. Режимы работы

6. Связь с внешней средой

7. Входные и выходные промежуточные данные

8. Управляющие параметры

9. Качество системы

10. Надежность функционирования

11. Защита и полнота информации

12. Документация по системе

Прием ПЕРТ-дтаграммы.


ПЕРТ ( от англ. «program evaluation review technique» — методика анализа и корректировании планов). ПЕРТ-диаграмма представляет собой граф, содержащий описания работ и событий и характеризующий процесс взаимодействия работ во времени

В процесс проектирования входит:

- Определение различных потоков данных

(входные, промежуточные, выходные)

- Определение процессов

- Определение структур данных и их носителей

Методы разработки данных:

- Граф-диаграммы

- Функциональные схемы

- Диаграммы Варнье-Орра

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

- Методы нисходящего проектирования

- Стратегия пошагового уточнения

- Анализ сообщений

- Методика Джексона (метод иерархического

проектирования модулей)

- Метод восходящего проектирования

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

Типы связности модуля:

- Функциональная

- Последовательная

- Коммуникационная

- Процедурная

- Временная

- Логическая

- По совпадению

- Слабая связность

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

Меры сцепления модулей

Тип сцепления

Степень сцепления

Независимое (слабое)

0

Сцепление по данным

1

Сцепление по образцу

3

Сцепление по общей области

4

Сцепление по управлению

5

Сцепление по внешним ссылкам

7

Сцепление по кодам (сильное)

9

RAD (от англ. rapid application development – быстрая разработка приложений) — концепция создания средств разработки программных продуктов, уделяющая особое внимание быстроте

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

Основные принципы RAD:

- Инструментарий должен быть нацелен на минимизацию времени разработки

- Создание прототипа для уточнения требований заказчика

- Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком

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

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

- Управление проектом должно минимизировать длительность цикла разработки

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

Среды разработки, использующие принципы RAD:

- Borland Delphi

- Borland С++ Builder

- Microsoft Visual Studio

- Macromedia Flash

- Macromedia Authorware

- Macromedia Director

- Omnis Studio

- Visual DataFlex

- IntraWeb

Причины популярности RAD:

- Высокая скорость разработки

- Низкая стоимость

- Высокое качество

Применение технологии RAD целесообразно, когда:

- Требуется выполнение проекта в сжатые сроки (90 дней).

Быстрое выполнение проекта позволяет создать систему,

отвечающую требованиям сегодняшнего дня. Если система

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

это время существенно изменятся фундаментальные

положения, регламентирующие деятельность

организации, то есть, система морально устареет еще до

завершения ее проектирования

- Нечетко определены требования к ПО. В большинстве

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

себе работу будущего программного продукта и не может

четко сформулировать все требования к ПО. Требования

могут быть вообще не определены к началу проекта либо

могут изменяться по ходу его выполнения

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

Разработка ведется небольшими RAD группами в

короткие сроки, что обеспечивает минимум трудозатрат

и позволяет вписаться в бюджетные ограничения

- Интерфейс пользователя (GUI) есть главный фактор. Нет

смысла заставлять пользователя рисовать картинки. RAD

технология дает возможность продемонстрировать

интерфейс в прототипе, причем достаточно скоро после

начала проекта

- Проект большой, но поддается разделению на более

мелкие функциональные компоненты. Если

предполагаемая система велика, необходимо, чтобы ее

можно было разбить на мелкие части, каждая из которых

обладает четкой функциональностью. Они могут

выпускаться последовательно или параллельно (в

последнем случае привлекается несколько RAD групп)

- ПО не обладает большой вычислительной сложностью

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

- Размещение компонентов интерфейса в нужном месте

- Задание моментов времени их появления на экране

- Настройка связанных с ними атрибутов и событий

Жизненный цикл ПО по методологии RAD состоит из четырех фаз:

- Фаза анализа и планирования требований

- Фаза проектирования

- Фаза построения

- Фаза внедрения

Часть 17

План лекции:

1. Основные определения;

2. Объекты защиты информации, цели и способы угроз по нарушению информационной безопасности;

3. Основные виды защиты информации;

4. Примеры применения способов защиты информации;

5. Сетевая безопасность (защита в сети);

6. Компьютерные вирусы, как угроза безопасности компьютера.

Лекция базируется на следующих источниках:

1. ГОСТ Р 50922-2006. Защита информации. Основные термины и определения;

2. Федеральный закон от 27.07.2006 г. N 149-ФЗ. Об информации, информационных технологиях и о защите информации;

3. Российская Федерация. Федеральный закон от 29.07.2004 г. N 98-ФЗ. О коммерческой тайне;

4. Закон Российской Федерации. «О государственной тайне» / От 21 июля 1993 года, № 5485-1 (в ред. Федерального закона от 06.10.97 № 131-ФЗ);

5. Рекомендации по стандартизации Р 50.1.056 - 2005. Техническая защита информации. Основные термины и определения;

6. Федеральный Закон «Об участии в международном информационном обмене»;

7. Википедия. Свободная энциклопедия в Интернет.

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

Закон Российской Федерации.

«О государственной тайне»

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

Закон Российской Федерации.

«О государственной тайне»

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

ГОСТ Р 50922-2006

Защита информации преследует следующие основные цели:

1. Ограничение несанкционированного доступа к программам и данным;

2. Предотвращение преднамеренного или случайного разрушения и/или хищения программ и данных, восстановление программ и данных в случае утери;

3. Исключение несанкционированного копирования (тиражирования) данных и программ.

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

В соответствии со ст. 20 Федерального Закона «Об участии в международном информационном обмене» целями защиты информационной сферы являются:

- Предотвращение утечки, хищения, утраты, искажения, подделки информации;

- Предотвращение угроз безопасности личности, общества, государства;

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

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

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

- Обеспечение прав субъектов в информационных процессах и при разработке, производстве.

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

- Основные источники и объекты защиты информации;

- Цели, источники и способы угроз по нарушению информационной безопасности.