Программное обеспечение и его разработка - страница 12

стр.

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


Почему проблема программного обеспечения еще не полностью решена?

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

1. Сложность. Внутренняя сложность автоматизируемого процесса, т. е. научная сложность (лунное притяжение и т. д.), или логическая сложность (число ветвей в программе может достичь значения 10>3000), или и та и другая вместе.

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

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

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

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

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

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

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

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

Глава 2

Вычислительная машина и способы ее использования

Определение вычислительной машины

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

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

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

Подробнее обсудим некоторые моменты.

Вычислить: «Выяснить или определить с помощью какого-либо процесса». Это слово можно интерпретировать многими способами, я использую его в самом широком смысле. Сравнить — это вычислить. Измерение это также вычисление.

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