Читаем Программная инженерия. Теория и практика полностью

1. Сложность программных объектов, которая существенно зависит от их размеров. Как правило, большее ПО (большее количество пользователей, больший объем обрабатываемых данных, более жесткие требования по быстродействию и пр.) с аналогичной функциональностью – это другое ПО. Классическая наука строила простые модели сложных явлений, и это удавалось, так как сложность не была характеристической чертой рассматриваемых явлений. Сравнение программирования именно с наукой, а не с театром, кинематографом, спортом и другими областями человеческой деятельности оправдано, поскольку оно возникло главным образом из математики, а первые его плоды – программы – предназначались для использования при научных расчетах. Кроме того, большинство программистов имеют естественно-научное, математическое или техническое образование, именно поэтому парадигмы научного мышления широко используются при программировании – явно или неявно.

2. Согласованность – ПО основывается не на объективных посылках (подобно тому, как различные системы в классической науке подкреплены постулатами и аксиомами), а должно быть согласовано с большим количеством интерфейсов, с которыми впоследствии оно должно взаимодействовать. Эти интерфейсы плохо поддаются стандартизации, поскольку они базируются на многочисленных и плохо формализуемых человеческих соглашениях.

3. Изменяемость – ПО легко изменить и, как следствие, требования к нему постоянно меняются в процессе разработки. Это создает много дополнительных трудностей при его разработке и эволюции.

4. Нематериальность, или, как было в оригинале, незримость – ПО невозможно увидеть, оно виртуально. Поэтому, например, трудно воспользоваться технологиями, основанными на предварительном создании чертежей, успешно используемыми в других промышленных областях (например, в строительстве, машиностроении). Там на чертежах в схематичном виде воспроизводятся геометрические формы создаваемых объектов. Когда объект создан, эти формы можно увидеть, а ПО увидеть невозможно.

1.2. Технология программирования и ее основные этапы

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

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

• указание последовательности выполнения технологических операций;

• перечисление условий, при которых выполняется та или иная операция;

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

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

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

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

Первый этап – «стихийное» программирование. Этот этап охватывает период от момента появления первых вычислительных машин до середины 60-х гг. XX в. В этот период практически отсутствовали сформулированные технологии и программирование фактически было искусством. Первые программы имели простейшую структуру. Они состояли из собственно программы на машинном языке и обрабатываемых ею данных. Сложность программ в машинных кодах ограничивалась способностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение данных при программировании.

Перейти на страницу:

Похожие книги

Синдром гения
Синдром гения

Больное общество порождает больных людей. По мнению французского ученого П. Реньяра, горделивое помешательство является характерным общественным недугом. Внезапное и часто непонятное возвышение ничтожных людей, говорит Реньяр, возможность сразу достигнуть самых высоких почестей и должностей, не проходя через все ступени служебной иерархии, разве всего этого не достаточно, чтобы если не вскружить головы, то, по крайней мере, придать бреду особую форму и направление? Горделивым помешательством страдают многие политики, банкиры, предприниматели, журналисты, писатели, музыканты, художники и артисты. Проблема осложняется тем, что настоящие гении тоже часто бывают сумасшедшими, ибо сама гениальность – явление ненормальное. Авторы произведений, представленных в данной книге, пытаются найти решение этой проблемы, определить, что такое «синдром гения». Их теоретические рассуждения подкрепляются эпизодами из жизни общепризнанных гениальных личностей, страдающих той или иной формой помешательства: Моцарта, Бетховена, Руссо, Шопенгауэра, Свифта, Эдгара По, Николая Гоголя – и многих других.

Альбер Камю , Вильям Гирш , Гастон Башляр , Поль Валери , Чезаре Ломброзо

Философия / Учебная и научная литература / Образование и наука