Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИЧЕСКИЕ РАБОТЫ ПО ОСНОВАМ ИНЖЕНЕРИИ.doc
Скачиваний:
133
Добавлен:
09.02.2016
Размер:
1.51 Mб
Скачать

2.2. Основные понятия технологии программирования

В данном разделе рассматриваются общеизвестные термины, которые используются в технологии программирования. Такое рассмотрение необходимо, потому что иначе очень легко упустить некоторые тонкости, специфические для рассматриваемого предмета, по­ложившись на «общеизвестность» терминов. По нашему мнению, едва ли не самым за­метным свидетельством прогресса в технологии программирования является то, что, на­конец, удалось договориться о терминах.7

2.2.1. Процессы и модели

Так или иначе, предметом технологии программирования является процесс разработки программного обеспечения.

Процесс - Последовательность смены состояний в развитии чего-нибудь.

Процесс - Последова­тельность действий для достижения какого-либо результата.

Заметим, что два процитированных определения не являются разными определениями -это описание одного и того же предмета с разных точек зрения. Можно обратить свое внимание на смену состояний. Но что является причиной смены состояний? Очевидно, выполнение каких-то действий. Можно обратить свое внимание на выполнение действий. Но что является результатом выполнения действий? Очевидно, смена состояний. Чтобы иметь саму возможность делать какие-то наблюдения или проводить рассуждения относительно процесса, нужно иметь описание процесса, или его модель. Термин «мо­дель» широко используется в различных областях человеческой деятельности, и имеет много значений. В данном случае подразумевается следующее значение.

Модель - любой образ или аналог (мысленный или условный: изображение, описание, схема, чертеж и т.п.) какого-либо объекта, процесса или явления («оригинала» модели), используемый в качестве его «представителя».8

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

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

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

8 Большой энциклопедический словарь дает еще шесть толкований этого термина.

Заметим, что языков программирования очень много (тысячи) и среди них встречаются как такие, которые предназначены для записи программ, исполняемых компьютером, так и такие, которые для этого не предназначены. Например, различные псевдокоды, блок-схемы и тому по­добное. Язык программирования, если он предназначен для восприятия людьми, совсем не обязан быть формальным, точным и сугубо бедным, как «настоящий» язык программи­рования, подобный С++ или Java. Сейчас процессы разработки программного обеспечения принято описывать как алгоритмы, но очень неформально, с использованием понятий вы­сокого уровня, далеких от машинной реализации. Конечно, неформальный характер таких алгоритмов приводит к тому, что у разных авторов встречаются несколько различные тол­кования основных элементов, из которых строится описание процессов разработки, но, тем не менее, за последние годы фактически устоялся общий набор таких основных поня­тий, и мы их перечисляем в следующих разделах.

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