Лекция № 6
Предпосылки возникновения модульного подхода:
Критерии приемлемости модуля (по Майерсу)
Структура модуля
Интерфейсная часть (секция связи)
Секция реализации
Инициализирующая часть
Этапы разработки ПС
Функциональная структуры алгоритма
Основная программа
Модуль содержащий описания используемые, как в основной программе так и в других модулях
Модуль обработки
140.95K
Category: programmingprogramming

Модули. Предпосылки возникновения модульного подхода. (Лекция 6)

1. Лекция № 6

Модули
1

2. Предпосылки возникновения модульного подхода:

возрастающие
объемы ПС;
увеличивающаяся внутренняя
сложность ПС;
коллективный характер разработки
ПС
2

3.

Df: Набор связанных процедур вместе с
данными
которые
они
обрабатывают,
называют модулем.
Df: Программный модуль это любой фрагмент
описания
процесса,
оформляемый
как
самостоятельный
программный
продукт,
пригодный для использования в описаниях
процесса.
3

4. Критерии приемлемости модуля (по Майерсу)

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

5. Структура модуля

Заголовок
модуля
Заголовок
модуля
;
Интерфейсная
часть
UNIT
Секция
реализации
Секция
инициализации
Идентификатор
модуля
5
end
.

6. Интерфейсная часть (секция связи)

INTERFACE
Спецификация
использования
Элемент
интерфейса
6

7.

Спецификация
использования
USES
Идентификатор
модуля
;
,
Элемент интерфейса
Описание констант
Описание типов
Описание переменных
Заголовок процедуры
Заголовок функции
7

8. Секция реализации

IMPLEMENTATION
Элемент реализации
Спецификация
использования
Элемент
реализации
Описание меток
Описание констант
Описание типов
Описание переменных
Описание процедур
Описание функций
8

9. Инициализирующая часть

BEGIN
операторы
;
9

10.

Задача: Выполнить сортировку элементов
массива в том случаи, если его сумма
является положительной.
10

11. Этапы разработки ПС

11

12. Функциональная структуры алгоритма

задача
Модуль 1
Описания
данных
Модуль 2
ввод
массива
нахождение
суммы элементов
массива
вывод элементов
массива
сортировка
элементов массива
12

13. Основная программа

uses
op, obrabotki;
var
mas : massiv;
m
: integer;
begin
writeln(‘Введите количество элементов массива’);
readln(m);
vvod(mas, m);
rezul(mas, m);
if summ(mas, m)>0 then sortr(mas, m);
rezul(mas, m);
end.
13

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

unit op;
Interface
const k=200;
type massiv=array[1..k] of integer;
implementation
end.
14

15. Модуль обработки

unit obrabotki;
interface
uses op;
procedure vvod(var ma :massiv; n :integer);
procedure sortr(var ma :massiv; n :integer);
procedure rezul(var ma :massiv; n :integer);
function summ(var ma :massiv; n :integer) :real;
15

16.

implementation
var i
: integer;
procedure vvod(var ma :massiv; n :integer);
begin
randomize;
for i:=1 to n do
ma[i]:=random(12);
end;
procedure sortr(var ma :massiv; n :integer);
var j, temp, min
: integer;
begin
for i:=1 to n-1 do begin
min:=i;
for j:=i+1 to n do
if ma[j]<ma[min] then min:=j;
temp:=ma[i];
ma[i]:=ma[min];
ma[min]:=temp
end;
end;
16

17.

procedure rezul(var ma :massiv; n :integer);
begin
writeln;
for i:=1 to n do
write(ma[i],' ');
end;
function summ(var ma :massiv; n :integer) :real;
var s
: real;
begin
s:=0;
for i:=1 to n do s:=s+ma[i];
summ:=s
end;
end.
17
English     Русский Rules