Программное обеспечение и его разработка [Джозеф М Фокс] (fb2) читать постранично, страница - 4

- Программное обеспечение и его разработка 4.57 Мб, 354с. скачать: (fb2) - (исправленную)  читать: (полностью) - (постранично) - Джозеф М. Фокс

 [Настройки текста]  [Cбросить фильтры]

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

Программное обеспечение — это группа