- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программное обеспечение и его разработка - Фокс Джозеф М.
Шрифт:
Интервал:
Закладка:
По мнению многих, выражение: «May you live in interesting times»[2] считается проклятием. Проклятие это или благое пожелание — это вопрос философский, и мы не будем его здесь рассматривать, но я уверен, что последнюю четверть века, а также последующий десяток лет человечество запомнит как время захватывающих перемен в области автоматизации интеллекта. Мы должны быть счастливы, что нам довелось жить в это время открытий и достижений.
Я хочу также поблагодарить Лауру-Анну Чарлз и Жанет Далчер за помощь, оказанную в подготовке книги к печати.
Вашингтон, Джозеф М. Фокс
Глава 1
Что такое программное обеспечение?
Необыкновенные достижения вычислительной техники привели к тому, что термин «программное обеспечение» стал толковаться чрезвычайно широко. Столь разнообразна эта область, что утверждения, кажущиеся противоречащими другим, безусловно верным утверждениям, также могут оказаться верными.
Программное обеспечение становится все более значительным, сложным и опасным. Программное обеспечение все время упрощается, уменьшается в размерах и все легче поддается управлению. Оба утверждения верны, поскольку развитие программного обеспечения идет одновременно по двум совершенно разным направлениям. Прежде чем говорить о программном обеспечении нетривиальные вещи, следует выяснить, на какие категории оно подразделяется. Ключом к пониманию проблемы должен стать терминологический словарь.
Важные для себя вещи или абстрактные понятия люди всегда обозначали особыми словами.
Снег У эскимосов в словаре 20 слов; у ацтеков — ни одного Коровья шкура У гаучо (южноамериканские ковбои) — 30 слов То, что летает В языке хапи одно слово служит одновременно для обозначения комара и самолетаВ этом отношении область программного обеспечения находится в печальном положении. Слова, которые в нем используются, расплывчаты и неоднозначны.
Определение программыПрограмма — это последовательность команд или операторов, которая после декодирования ее вычислительной машиной либо вычислительной машиной и транслирующей программой может заставить эту машину выполнить некоторую работу.
В этом определении, которое мы не раз будем исследовать и в дальнейшем, много коварства. Слова команда и оператор подразумевают наличие точного языка в отличие от приказа пользователя. Приказы пользователя, казалось бы, нигде не запоминаются, по крайней мере до поры до времени, а операторы и команды остаются в рабочей программе, которую можно многократно использовать.
В гл. 8 мы будем исследовать это различие между пользователем и программистом, ведь это одна из тех областей, которая может в будущем повлиять на повышение производительности труда при разработке программного обеспечения.
Рабочая программа это программа на машинном языке. Исходная программа может быть написана на языке ассемблера или на языке более высокого уровня (ЯВУ). С помощью программы-транслятора она переводится на машинный язык.
Программа — это последовательность команд или операторов, которая после декодирования ее вычислительной машиной и транслирующей программой заставляет эту машину выполнить некоторую работу.
Программное обеспечение и программыДо сих пор мы еще не определили термины, связанные с некоторыми важнейшими понятиями, которыми пользуемся ежедневно.
Совершенно ясно, что слова «окрестность» и «город» обозначают различные понятия. Но, хотя мы понимаем их смысл и вполне различаем их, четких границ между понятиями нет.
Что делает окрестность окрестностью? Как отличить одну окрестность от другой? Когда небольшой город становится большим городом?
Точно так же можно сопоставить понятия программа и программное обеспечение. Не проводя между ними резкой границы, мы все же различаем их и, глядя на них, понимаем, что они отличаются друг от друга.
Программа имеет жесткие связи, программное обеспечение — это более свободно связанная группа программ, работающая как единое целое.
Программа «маленькая», а программное обеспечение «большое». Подходы к их разработке различны, это мы еще будем изучать в дальнейшем.
Программное обеспечение — это группа взаимодействующих друг с другом программ.
Это не определение, поскольку из него еще не следует различие между большой программой, состоящей из множества отдельных модулей, и группой довольно независимых программ, питающих друг друга данными и привязанных друг к другу. Несмотря на то что четкую границу между программой и программным обеспечением провести не удается, понимание различия между ними необходимо и полезно, как полезно понимать различие между небольшим городком и огромным городом. Таким образом, в этой книге я буду пользоваться термином программное обеспечение для обозначения большой группы взаимосвязанных и взаимодействующих программ, в то время как термин программа будет обозначать значительно меньший по размерам, более тесно связанный список команд, выполняющих более унифицированную функцию.
Что же не входит в программное обеспечение?Используя слова программное обеспечение, многие люди включают сюда диаграммы, технические требования, графики разработки, инструкции по пользованию и другие подобные побочные продукты фазы разработки набора программ. Мы же включать все это в наше понятие программного обеспечения не будем.
Отсюда вовсе не следует, что эти понятия не очень важны. Как мы еще увидим, они чрезвычайно важны! Схема электропитания автомобиля или принципиальные схемы ЭВМ совершенно необходимы для правильного использования и ремонта дорогостоящего оборудования. Так же обстоит дело и с сопроводительной документацией программного обеспечения.
Однако принципиальные схемы не являются продукцией. Автомобиль это система, выполняющая некоторую работу. Он может возить меня, куда я захочу. Учебники по вождению, справочники по уходу, рисунки, необходимые для ремонта или производства, сделанные с различными уровнями детализации, важны, но они не являются частью автомобиля! Существенны и важны по многим причинам, но все же они существуют отдельно. Они производятся совместно с автомобилем.
Все это верно и для программного обеспечения. Программное обеспечение — это наш автомобиль: это та «вещь», которая выполняет работу. Мы должны тратить много времени на создание сопроводительной документации на программное обеспечение и на процесс взаимодействия пользователей с системой при помощи программного обеспечения.
Одно из наиболее вредных часто встречаемых высказываний состоит в том, что некто «пишет программное обеспечение». Получается так, будто программное обеспечение это что-то вроде письма.
Можно писать программу, но не программное обеспечение. И даже с программами трудности значительно возрастают с ростом их размеров.
Фраза «пишет программное обеспечение» не полностью отражает истинные усилия, затрачиваемые на разработку программного обеспечения.
Программное обеспечение мы создаем. Я намеренно выбрал слово «создаем». Образ действий по созданию программного обеспечения подразумевает много такого, что еще не стало частью научной или инженерной деятельности. Формулировка заданий, решений, проектирование программного обеспечения требует изобретательности и творчества. Как только эти фазы преодолены, процесс становится более механическим.

