Здесь формальные параметры x, y при конкретных вычислениях заменяются
фактическими значениями, например, SQ(2,3) или SQ(12.1,45.9). Список
формальных параметров (x, y) является примером использования абстракции
параметризации. Очевидно, она тесно связана с процедурной абстракцией -
само описание функции SQ является примером такой абстракции.
3. Абстракция через спецификацию. Она позволяет абстрагироваться от
процессов вычислений в некоторой процедурной абстракции до уровня
знаний лишь того, что данная процедура должна в итоге реализовать. Это
достигается путем задания для каждой процедуры спецификации,
описывающей эффект ее работы, после чего смысл работы с ней становится
ясным через анализ этой спецификации. Так, в вышеприведенном примере
достаточно иметь информацию «для вычисления суммы квадратов двух чисел
х и у достаточно написать SQ(x,y)». Это и есть спецификация данной
функции. Связь абстракции через спецификацию с процедурной абстракцией
очевидна.
4. Абстракция данных (тип данных). Поведение объектов данных естественно
представлять в терминах наборов операций, применимых к данным объектам.
Такой набор включает в себя операции по созданию объектов, получении
информации о них и, возможно, их модификации. Пример: тип String языка
Basic. Объект этого типа создается просто - это строка символов,
заключенная в двойные кавычки, например, ”это строка”. Существует много
операций над строками. Например, если S1 и S2 - строки, то можно их
слить (склеить, сложить, конкатенировать), записав S1+S2. Операция
len(S1) вычисляет длину строки S1.
5. Абстракция через итерацию. Она дает возможность не рассматривать
информацию, не имеющую прямого отношения к управляющему потоку или
циклу. Например, использование некоторого набора обычно состоит в том,
чтобы выполнить некоторые действия для каждого его элемента:
For Each элемент In набор
некоторые действия
Next элемент
6. Абстракции управления. Это обобщение абстракции через итерацию и
включает в себя совокупность средств управления последовательностью
работы программы.
7. Абстракция модульности. Она включает в себя способы разделения большой
программы на компоненты – модули, причем каждый из них имеет свой
контролируемый размер, четкое назначение и детально проработанный
интерфейс с внешней средой.
Конкретный язык программирования содержит свои варианты этих абстракций.
2.4. Методологии программирования
Методология - это совокупность методов, применяемых во всем периоде
разработки и эксплуатации программного обеспечения, начиная с момента
возникновения замысла и заканчивая прекращением всех видов его использования.
Методы должны быть определены общим философским подходом.
С каждой методологией можно связать некоторые характерные для нее
атрибуты:
• Философский подход (или основной принцип), являющийся простым для
формулирования и определяющий основной источник эффективности
методологии;
• Согласованное, связанное множество методов, через которые реализуется
данная методология;
• Концепции (понятия, замыслы), поддерживающие методы и позволяющие более
точно их определить.