Чтение онлайн

на главную - закладки

Жанры

Программное обеспечение и его разработка
Шрифт:

В частности, я хочу признать огромный вклад Эндрью Ферентино, моего коллеги по работе в IBM, а теперь также по фирме Software Architecture and Engineering, Inc. Интуиция Энди, его глубокое понимание программного обеспечения, его определения помогли сформироваться многим идеям этой книги. Многие цифры и понятия принадлежат ему.

По мнению многих, выражение: «May you live in interesting times» [2] считается проклятием. Проклятие это или благое пожелание — это вопрос философский, и мы не будем его здесь рассматривать, но я уверен, что последнюю четверть века, а также последующий десяток лет человечество

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

2

«Желаю вам жить в интересное время» (англ.)

Я хочу также поблагодарить Лауру-Анну Чарлз и Жанет Далчер за помощь, оказанную в подготовке книги к печати.

Вашингтон, Джозеф М. Фокс

Глава 1

Что такое программное обеспечение?

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

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

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

Снег У эскимосов в словаре 20 слов; у ацтеков — ни одного
Коровья шкура У гаучо (южноамериканские ковбои) — 30 слов
То, что летает В языке хапи одно слово служит одновременно для обозначения комара и самолета

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

Определение программы

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

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

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

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

Рабочая программа это программа на машинном языке. Исходная программа может быть написана на языке ассемблера или на языке более высокого уровня (ЯВУ). С помощью программы-транслятора она переводится на машинный язык.

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

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

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

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

Что делает окрестность окрестностью? Как отличить одну окрестность от другой? Когда небольшой город становится большим городом?

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

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

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

Программное обеспечение — это группа взаимодействующих друг с другом программ.

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

Что же не входит в программное обеспечение?

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

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

Поделиться:
Популярные книги

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Офицер-разведки

Поселягин Владимир Геннадьевич
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Офицер-разведки

Новый Рал 10

Северный Лис
10. Рал!
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Новый Рал 10

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Пехотинец Системы

Poul ezh
1. Пехотинец Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Пехотинец Системы

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая

Отражения (Трилогия)

Иванова Вероника Евгеньевна
32. В одном томе
Фантастика:
фэнтези
8.90
рейтинг книги
Отражения (Трилогия)

Пипец Котенку! 2

Майерс Александр
2. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 2

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Де Виан Рейн. Хозяйка Инс-Айдена

Арниева Юлия
2. Делия де Виан Рейн
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Де Виан Рейн. Хозяйка Инс-Айдена

Жена проклятого некроманта

Рахманова Диана
Фантастика:
фэнтези
6.60
рейтинг книги
Жена проклятого некроманта

Жена по ошибке

Ардова Алиса
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Жена по ошибке

Шайтан Иван 3

Тен Эдуард
3. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
7.17
рейтинг книги
Шайтан Иван 3