Главная Теоретический материал Лабораторные работы Задачи Тесты Контакты

Узбекское Агентство
Связи и Информатизации



Ташкентский Университет Информационных Технологий


Кафедра
«Программное обеспечение информационных технологий»

Направления:

5521900Информатика и
информационные технологии,
5523500Защита информации,
5523600Электронная коммерция,
5811200Сервис (информационный сервис),
5811300Сервис (электронные и
компьютерные технологии),
5320200Информатика и
библиотековедение,
5140900Профессиональное образование
(по направлению
информатика и
информационные технологии).


Преподаватель дисциплины



Доцент
Чернев Дмитрий Алексеевич

5. Разработка архитектуры программного обеспечения

Цель работы:

-   разработать архитектуру программного изделия.

Порядок выполнения работы и отчетность.

Во время выполнения лабораторной работы необходимо разрабо­тать архитектуру разрабатываемой программы: спроекти­ровать структуру всех его компонент, его объектно - модульно - иерархическое построение.

Работа должна быть оформлена в виде  спецификации, содержащей архитектуру разрабатываемой программы.

Теоретические сведения.

Типовая архитектура программы может иметь вид:

1

1. Уровень -центральный диспетчер

2. Уровень - местные диспетчеры   

3. Уровень -  функциональные  программы   

4. Уровень – функциональные  программы   

5. Уровень - стандартные программы,  библиотеки   программ

Общие правила структурного построения программных модулей. 

1. Каждый модуль характеризуется функциональной законченностью, автономностью и независимостью в оформлении от модулей, которые его используют и которые он вызывает. Высокую степень независи­мости модулей можно достичь с помощью двух методов оптимизации:

- усилением внутренних связей в каждом модуле, т.е. реализовать от­дельные функции отдельными модулями (высокая прочность модуля).

- ослаблением взаимосвязи между модулями, применяя формальный механизм передачи параметров (слабое сцепление модулей).

2. Применяются стандартные правила организации связей по управ­ле­нию и информации с другими модулями (смотри далее).

3. Комплексы программ разрабатываются в виде совокупности не­боль­ших по количеству (до 100) программных модулей, связанных иерархическим образом, что дает возможность полностью и относи­тельно просто уяснить функцию и правила работы отдельных частей и комплекса программ в целом.

4. Как правило, модуль содержит от 10 до 1000 выполняемых опера­то­ров языка высокого уровня. Размеры модуля влияют на степень независимости программы, легкость ее чтения и тестирования.

5. Модуль прочный. Прочность модуля измеряется его внутренними свя­зями. Модуль - это замкнутая программа, которая выполняет одну или несколько функций, обладает некоторой логикой.

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

7. Определена структура принятия решений. Желательно, чтобы те модули, на которые прямо влияет принятое решение, были подчиненными (вызываемыми) по отношению к принимающему решение модулю.

8. Объем данных, на которые модуль может ссылаться, должен быть сведен к минимуму.

9. Внутренняя процедура (или подпрограмма) - это замкнутая ­прог­рам­ма, физически расположенная в вызывающем ее модуле. Их следует избегать, т.к.  их трудно изолировать  для  автономного тестирования и они не могут быть вызваны из модулей, отличных от тех, которые их физически содержат. Когда возникает потреб­ность во внутренней процедуре, проектировщик должен рассмотреть возможность оформления ее в виде отдельного модуля.

10. В параметры процедуры следует включать только те переменные, че­рез которые идет обмен информацией с другими программными единицами. Другие переменные - это внутреннее дело процедуры. Процедуры, которые выдают в качестве результата только одно значение, оформляются как функции. Функция удобнее в использо­вании, так как ее результат непосредственно можно использовать в арифметическом и/или в логическом выражениях.

Правила связи программных модулей по управлению. 

1.   Передача управления вызываемому модулю всегда осуществляется через его начало,  т.е. через  первый  оператор.

2.   Выход из вызываемого модуля всегда происходит через  его естественное окончание, т.е. после нормального его завершения.

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

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

5.   Если все же необходимо исполнить модуль с некоторой внутренней точки, то вызов все равно осуществляется стандартным образом (через его первый оператор), а точка начала задается в виде пара­метра. При этом в начале вызываемого модуля должен стоять пе­реключатель, который обеспечивает передачу управления программой к его внут­ренним точкам по параметру, указанному при обращении к модулю.

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

Правила связи программных модулей по информации. 

1.   Информация зон глобальных переменных доступна для использования любым модулям, входящим в комплекс программ или в группу программ в соответствии с областью действия зоны глобальных переменных, т.е. глобальные переменные, могут быть дос­тупны не для всего комплекса программ, а лишь для указанной в описании группы модулей.

2.   Локальные переменные доступны лишь в пределах того модуля, в котором они определены или объявлены.

3.   Для взаимодействия вызываемых и вызывающих модулей создаются зоны обменных переменных, информация из которых доступна лишь модулям, непосредственно связанным по управлению.

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

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

 



Главная Теоретический материал Лабораторные работы Тесты Контакты