Файл: Технол_разраб_прогр_обесп_Гагарина_Кокарева.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.11.2019

Просмотров: 13442

Скачиваний: 411

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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


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


В составе системного ПО можно выделить две составляющие:

  1. базовое ПО;

  2. сервисное ПО.

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

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

В базовое ПО входят:

  1. операционная система;

  2. операционные оболочки (текстовые, графические);

  3. сетевая операционная система.

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

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

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

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

ОС выполняет следующие функции:

  • управление работой каждого блока ПО и их взаимодействием;

  • управление выполнением программ;

  • организацию хранения информации во внешней памяти;

  • взаимодействие пользователя с компьютером (поддержку интерфейса пользователя).

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

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

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

  • одно- и многопользовательские (в зависимости от числа пользователей, одновременно работающих с ОС);

  • непереносимые и переносимые на другие типы компьютеров;

несетевые и сетевые, обеспечивающие работу в ВС ЭВМ. Операционные системы, как правило, сравнивают по следующим критериям:

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

  • функциональным возможностям вспомогательных программ (утилит) в составе ОС;

  • наличию компрессии магнитных дисков;

  • возможности архивирования файлов;

  • поддержке многозадачного режима работы;

  • наличию качественной документации;

  • условию и сложности процесса инсталляции.

Наиболее распространенными ОС для персональных компьютеров в настоящее время являются:

  • Windows 2000 (Microsoft);

  • Windows ХР (Microsoft);

  • UNIX;

  • OS/2 (IBM).

ОС OS/2 разработана IBM для ПК на основе системной прикладной архитектуры, ранее используемой для больших ЭВМ. Это многозадачная, многопользовательская ОС, обеспечивающая как текстовый, так и графический интерфейс пользователя. OS/2 обеспечивает:

  • поддержку графического интерфейса пользователя;

  • одновременную обработку нескольких приложений;

  • многопоточную обработку нескольких задач одного приложения;

  • 32-разрядную обработку данных;

  • сжатие данных при записи на магнитный диск;

  • защиту памяти.

Важными особенностями OS/2 является высокопроизводительная файловая система HPFS (High Performance File System), имеющая преимущества для серверов БД (в отличие от MS DOS поддерживаются длинные имена файлов), а также поддержка мультипроцессорной обработки — до 16 процессоров типа Intel и Power PC. OS/2 Warp имеет встроенный доступ в Интернет, систему распознавания речи VoiceType, интегрированную версию Lotus Notes Mail для передачи электронной почты. В OS/2 могут выполняться прикладные программы Windows 3.x, но не могут выполняться приложения, работающие в среде Windows NT.

ОС UNIX, созданная корпорацией Bell Laboratory, реализует принцип открытых систем и широкие возможности по объединению в составе одной вычислительной системы разнородных технических и программных средств. UNIX обладает следующими свойствами:

  • переносимость прикладных программ с одного компьютера на другой;

  • поддержка распределенной обработки данных в сети ЭВМ;

  • сочетаемость с процессорами RISC.

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

Сетевая ОС — это комплекс программ, обеспечивающий обработку, передачу и хранение данных в сети. Сетевая ОС предоставляет пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и т. д.), поддерживает работу в абонентских системах. Сетевые ОС используют архитектуру «клиент — сервер» или одноранговую архитектуру. Вначале эти ОС поддерживали только ЛВС, сейчас они распространяются и на объединения ЛВС. Наибольшее распространение имеют Windows 95, LAN Server, NetWare.

Windows NT является многозадачной, предназначенной для архитектуры «клиент — сервер» и использования различных протоколов транспортного уровня сетевой ОС (IPX/SPX, TCP/IP, Net Bios), имеет 32-разрядную архитектуру и обеспечивает следующие функции локальной сети:

  • возможность каждой абонентской системы в сети быть сервером или клиентом;

  • совместную работу группы пользователей;

  • адресацию оперативной и внешней памяти большого размера;

  • многозадачность и многопоточность обработки данных;

  • поддержку мультипроцессорной обработки и др.

В табл. 1.1 приведены характеристики некоторых ОС.

Таблица 1.1. Характеристики операционных систем



ОС

Объем ОЗУ, Мбайт

Память на МД, Мбайт

Многопроцессорная обработка

Средства взаимодействия прикладных программ

OS/2 Warp 4.0

12-24

100-300

Нет

Java, Open DOC

MS Windows 2000

64

1024

Есть

Open JL, PM API, WIN 32

Ms Windows XP

128

1024

Есть

OLE, Open JL, Win 32


Операционные оболочки — специальные программы, предназначенные для облегчения общения пользователя с командами ОС. Операционные оболочки имеют текстовый и графический варианты интерфейса конечного пользователя. Наиболее популярны такие текстовые оболочки MS DOS, как Norton Commander, DOS Navigator, Volkov Commander и др. Эти программы существенно упрощают задание управляющей информации для выполнения команд ОС, уменьшают сложность работы конечного пользователя.

Среди графических оболочек MS DOS можно выделить Windows 3.1, Windows 3.11 for Work Group, которые расширяют набор основных (диспетчер файлов, графический редактор, текстовый редактор и т. д.) и сервисных функций, обеспечивающих создание пользователю систем обработки информации в составе одноранговых локальных сетей.

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

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

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

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

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

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

Эти программы часто называют утилитами.

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

Наибольшее распространение имеют следующие утилиты:

  • Norton Utilities;

  • программа резервного копирования HP Colorado BackUp for Windows 95.

Антивирусные программы (AVP Toolkit У Касперского; Norton Antivirus for Windows 95 (автоматическое создание резервных копий данных boot — секторов и критических файлов); Anti-Virus (Central Point Soft Ware Inc.) — обнаружение зараженных файлов без исправления как в DOS, так и в Windows и др.).

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

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


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


Средства для создания приложений

Средства для создания информационных систем (САБЕ-технология)



Языки и системы программирования

Встроенные в систему реализации

Независимые от системы реализации

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

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

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

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

  • машинные языки — это языки, воспринимаемые аппаратной частью компьютера (машинные коды);

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

  • процедурно-ориентированные языки — это языки, в которых имеется возможность описания программы как совокупности процедур, или подпрограмм (Си, Паскаль и др.);

  • проблемно-ориентированные языки, предназначенные для решения задач определенного класса (ЛИСП, ПРОЛОГ).

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

  • компилятор (транслятор);

  • интегрированную среду разработки программ (не всегда);

  • отладчик;

  • средства оптимизации кода программ;

  • набор библиотек;

  • редактор связей;

  • сервисные средства (утилиты) (для работы с библиотеками, текстовыми и двоичными файлами);

  • справочные системы;

  • систему поддержки и управления продуктами программного комплекса.

Компилятор транслирует всю программу без ее выполнения. Трансляторы (интерпретаторы) выполняют пооперационную обработку и выполнение программы.

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

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

  • библиотека функций, процедур, объектов и методов обработки;

  • макрокоманды;

  • клавишные макросы;

  • языковые макросы;

  • конструкторы экранных форм и объектов;

  • генераторы приложений;

  • языки запросов высокого уровня;

  • конструкторы меню и др.

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

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

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

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

  • на встроенные в систему реализации — все решения по проектированию и реализации привязки к выбранной СУБД;

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

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

В некоторых CASE-системах поддерживается кодогенерация программ — создание каркаса программ и создание полного продукта.

Примеры программных продуктов для создания приложений: Visual С++, Delphi, Visual Basic и т. д.



7.3.3. Пакеты прикладных программ


Классификация пакетов прикладных программ (ППП) приведена на рис. 1.8.

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

  • ППП автоматизированного бухгалтерского учета;

  • ППП финансовой деятельности;

  • ППП управления персоналом;

  • ППП управления производством;

  • банковские информационные системы и т. п.

Основные тенденции развития:

  • создание программных комплексов в виде автоматизированных рабочих мест (АРМ) управленческого персонала;

  • создание интегрированных систем управления предметной областью на базе вычислительных сетей, объединяющих АРМы;

  • организация данных больших информационных систем в виде распределенной БД на сети ЭВМ;

  • наличие простых языков средств конечного пользователя и др.

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

К ППП общего назначения относят:

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

  • визуализирована схема БД;

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

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

  • созданы шаблоны (прототипы) структур БД, отчетов, форм и т. д.


  1. Серверы БД — это ПО, предназначенное для создания и использования при работе в сети интегрированных БД в архитектуре «клиент — сервер». Многопользовательские СУБД в сетевом варианте обработки информации хранят данные на файл-сервере, специально выделенном компьютере, но сама обработка ведется на рабочих станциях. Серверы БД в отличие от этого большую часть обработки (хранение, поиск, извлечение и передачу данных клиенту) данных выполняют самостоятельно, одновременно обеспечивая данными большое число пользователей сети. Общим для различных видов серверов БД является использование реляционного языка SQL (Structured Query Language) для реализации запросов к данным. Большинство серверов БД поддерживает несколько платформ, широкий спектр протоколов передачи данных. Проблемы: обеспечение целостности данных, тиражирование данных по узлам сети и синхронное обновление.

  2. Генераторы отчетов (серверы отчетов), обеспечивающие реализацию запросов и формирование отчетов в печатном или экранном виде в условиях сети с архитектурой «клиент — сервер». Сервер отчетов подключается к серверу БД, использующему драйверы сервиса БД (Crystal Reports, Profit for Windows).

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

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

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

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

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

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

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

  • программы-переводчики, средства проверки орфографии, распознавание текста (Tiger — система распознавания русского языка, Stylus Lingvo Office, содержащий Fine Reader, Stylus for Windows — переводчик на указанный язык, корректор орфографии Lingvo Corrector и резидентный словарь Lingvo);

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

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

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

Настольные издательские системы. Данный класс ПО включает программы (PageMaker, CorelDraw, PhotoShop for Windows и т. д.), обеспечивающие информационную технологию компьютерной издательской деятельности:

  • форматирование и редактирование текстов;

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

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

  • монтирование графики;

  • подготовку иллюстраций и т. п.


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

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

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

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

системы анализа и распознавания речи, текста и т. п. Примеры систем искусственного интеллекта: FIDE, MYSIN,

Guru и др.

Контрольные вопросы

  1. Перечислите основные характеристики программ.

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

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

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

  5. Дайте определение и охарактеризуйте инструментарий технологии программирования.


Глава 2

ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНЫХ ПРОДУКТОВ. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ И ПОДХОДЫ

2.1. Особенности создания программного продукта

2.1.1. Принципы работы с требованиями

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

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

Согласно статистическим исследованиям группы Стендиша (Standish Group), в США ежегодно тратится более 250 млрд долларов на разработку приложений информационных технологий в рамках примерно 175 ООО проектов. Причем 31 % проектов будет прекращен до завершения. Затраты на 52,7 % проектов составят 189 % от первоначальной оценки. В таком случае американские компании и правительственные учреждения потратят 81 млрд долларов на программные проекты, которые так и не будут завершены. Эти же организации заплатят дополнительно 59 млрд долларов за программные проекты, которые хотя и завершатся, но значительно превысят первоначально отведенное на них время [11].

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

  • недостаток исходной информации от клиента — 13 % всех проектов;

  • неполные требования и спецификации — 12 % проектов;

3 - 7888


изменение требований и спецификаций — 12 % всех проектов.

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

Несмотря на то что большинство проектов действительно превышает отведенное время и бюджет, оказалось, что около 9 % проектов крупных компаний были завершены вовремя и в пределах бюджета; аналогичного успеха удалось достигнуть в 16 % проектов мелких компаний. Возникает очевидный вопрос: «Каковы главные "факторы успеха" в этих проектах?» Согласно проведенному исследованию тремя наиболее важными факторами были следующие:

  • подключение к разработке пользователя — 16 % всех успешных проектов;

  • поддержка со стороны исполнительного руководства — 14 % всех успешных проектов;

  • четкая постановка требований — 12 % всех успешных проектов.

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

  • спецификации требований;

  • управление требованиями клиента.

2-/-2- Оценка стоимости ошибок

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