Программное обеспечение и его разработка
Шрифт:
Преимущества системного программного обеспечения
1. Системное программное обеспечение увеличивает модульность и улучшает защиту информации, значительно упрощая процесс внесения изменений в программы.
2. Системное программное обеспечение избавляет прикладных программистов от необходимости затрачивать большие усилия на сопровождение стандартных программ.
3. Уменьшая простои, системное обеспечение доводит до максимума использование аппаратуры.
4. Исключая дублирование информации во внешних файлах, системное программное обеспечение лучше использует память.
Недостатки системного программного обеспечения
1. В силу универсальности системных программ снижается скорость их выполнения по сравнению со специализированными системами.
2. Системные программы велики, сложны, их часто трудно использовать надлежащим образом.
3. Системное программное обеспечение не всегда обладает гибкостью, достаточной, чтобы
Таблица 4.5. Эволюция системного программного обеспечения
Проблема | Ее решение |
---|---|
Машина простаивала, в то время как оператор в спешке ставил магнитные ленты и т. п. | Была написана программа, которая отслеживала список поставленных лент, переключая ленты не физически, а логически. Это привело к сильному увеличению числа магнитофонов. В одно и то же время на машине стало возможно выполнять несколько программ |
Начальник вычислительного центра не успевал принимать решения по поводу того, какую задачу запускать на машине. Сколько для этой задачи потребуется памяти? Лент? И т. д. | Была написана программа, которая отслеживала списки свободных машинных ресурсов и стоящих в очереди программ. После этого машина стала сама распределять работы и устройства вычислительного комплекса |
Программисты вставляли в прикладные программы детали физического расположения данных и дисков. Новые диски, более дешевые и быстрые, нельзя было внедрять до того, как будут переписаны старые прикладные программы. Это было очень трудно, поскольку программисты могли быть заняты чем-нибудь другим или вообще уволиться | Были написаны программы управления данными, которые выполняли чтение и запись данных на диске. Программисты стали теперь писать команды для программы управления данными, которая взяла на себя все заботы. Имена, использовавшиеся для идентификации этих стандартных системных программ, скорее вводили в заблуждение, чем вносили ясность. Одним из имен было «Методы доступа». Конечно же все думали о методах и расположении данных, забывая о программах, реализующих эти методы |
Разным программистам часто были нужны одни и те же данные, но в разной последовательности или в различном порядке. Поэтому им приходилось создавать свои собственные файлы из главного файла и в дальнейшем пользоваться уже своими файлами. Это было чревато двумя опасностями во-первых, память для файлов становилась все больше заполненной, но, что еще хуже, данные в одном файле не согласовывались с данными в другом файле | Были написаны программы управления базами данных, которые обеспечили сложный логический поиск файлов в тех случаях, когда файлы записывались не с теми ключами, которые использовались программистом для их поиска. Эти системы получили название систем управления базами данных (СУБД); они сняли с программистов обязанности по разработке и проведению логического проектирования методов поиска и хранения данных; все работы отныне выполнялись с помощью СУБД |
Выводы о системном программном обеспечении. Мы теряем в скорости выполнения, памяти и гибкости, чтобы достичь порядка при работе, избежать создания дополнительных программ и снизить тем самым вероятность внесения ошибок в программную систему, а также чтобы облегчить процесс исправления программ. Системное программное обеспечение явилось огромным благом для пользователей, значительно увеличив коэффициент полезного действия вычислительных машин (см. табл. 4.5).
Для многих систем можно четко определить место их разработки, место работы и место сопровождения. Некоторые называют все обеспечение, посылаемое к месту работы, «операционным». Это может вносить только путаницу, поскольку термин «операционное программное обеспечение» является синонимом термина «обеспечение времени использования». Например, корабль, находящийся в море, является местом выполнения, но многие программы, посылаемые туда, не работают в фазе использования. На корабль посылаются диагностические программы, помогающие инженерам-ремонтникам налаживать работу машин, но эти программы работают автономно, а не совместно с системой при ее использовании.
Таблица 4.6. Когда используется программное обеспечение разных типов
Тип программного обеспечения | Выполняются во время разработки | Выполняются во время использования | Выполняются во время сопровождения |
---|---|---|---|
Инструментальное | Трансляторы | Нет | Трансляторы |
Программа-библиотекарь | Программы-библиотекари | ||
Отладочные программы | Отладочные программы | ||
Системное | Операционные системы | Диалоговый режим | Операционные системы |
Системы управления базами данных | Операционные системы СУБД Диагностика в диалоговом режиме Вычисления в диалоговом режиме | СУБД | |
Прикладное | Нет | Ведомости (периодически) Управление или контроль (постоянно) Отслеживание даты (раз в сутки) | Нет |
Они представляют собой набор инструментальных программ, и называть их «операционными» только за то, что они находятся в одном месте со всей системой, ошибочно. В табл. 4.6 перечислено по крайней мере некоторое программное обеспечение, работающее в разных фазах независимо от места работы, а в табл. 4.7 показано, какие программы могут работать автономно в различных местах.
Таблица 4.7. Какое программное обеспечение может самостоятельно работать в различных местах
Выполняются самостоятельно по месту разработки | Выполняются самостоятельно по месту использования | Выполняются самостоятельно по месту сопровождения | |
---|---|---|---|
Инструментальные | Диагностические программы | Диагностические программы Элементы калькуляции | Диагностические программы |
Системные | ОС | Операционные системы | ОС |
Прикладные | В целях тестирования программы калькуляции | Нет | В целях тестирования программы калькуляции |
Инструментальное программное обеспечение — это третий раздел большой области всех программ. Применяется инструментальное обеспечение в фазе разработки. Инструментальное программное обеспечение — это совокупность программ, используемых для помощи программистам в их работе, для помощи руководителям разработки программного обеспечения в их стремлении проконтролировать процесс разработки и получаемую продукцию.
Наиболее известными представителями этой части программного обеспечения являются программы трансляторов с языков программирования, которые помогают программистам писать машинные команды. Инструментальными программами являются трансляторы с языков Фортран, Кобол, Джовиал, Бейсик, АПЛ и Паскаль. Они облегчают процесс создания новых рабочих программ.
Однако трансляторы с языков это только наиболее известная часть инструментальных программ; существует же их великое множество. Проще всего можно получить представление о количестве и разнообразии инструментальных программ, изучив список программ, используемых во время разработки большой программной системы. Взгляните на табл. 4.8.
Таблица 4.8. Некоторые инструментальные программы
Общее назначение | Требования и спецификации |
---|---|
Текстовые редакторы | PSL/PSA |
Форматирование документации | Реляционные СУБД |
Архивные системы | Проверка непротиворечивости |
Работа с дисками и лентами | CARA/CLARA |
Модели | SADT IA |
Проектирование | Написание |
Графические пакеты | Транслятор |
Построители структурных блок-схем | Кросс-транслятор |
Предтранслятор | |
Проектный анализатор APLGOL | Программа-библиотекарь |
Конструирование | Верификация |
Система планирования и руководства разработками PERT | Статические анализаторы |
Символическое выполнение | |
Редактор связей | Интерпретация |
Библиотекарь | Генератор тестовых последовательностей |
Библиотекарь | Сбор статистики |