Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety1.doc
Скачиваний:
446
Добавлен:
14.02.2015
Размер:
12.78 Mб
Скачать

264 Разработка требований и внешнее проектирование программного обеспечения (по). Внутреннее проектирование (проектирование структуры по). Проектирование и программирование модулей.

Разработка требований к ПИ.

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

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

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

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

При разработке внешних интерфейсов пользователя проекти­ровщик должен решить три проблемы: 1) доведение до минимума ошибок пользователя; 2) обнаружение ошибок пользователя в случае их возникно­вения; 3) доведение до минимума сложности разрабатываемого ПИ.

Обычно внешние спецификации представляют собой объе­мистый документ. Поэтому для упрощения процесса его разра­ботки применяют иерархическую организацию. Разработка внешних спецификаций разбивается на две части: предвари­тельный внешний проект и детальный внешний проект.

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

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

Внутреннее проектирование (проектирование структуры) программного изделия

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

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

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

Связность модуля определяется как мера неза­висимости его частей. Чем выше связность модуля, тем лучше результат проектирования.Типы связности модулей:по совпадению, логическая, временная, процедурная, коммуникативная, последовательная, функциональная. Модуль с функциональной связностью обладает высшей сте­пенью внутренней связности.

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

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

Виды сцепления:по кодам, по внешним ссылкам, по управлению, по общей области, по образцу, по данным, независимое.

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

Проектирование и программирование модулей

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

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

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

2. Функция.Определяется, что делает модуль, когда он вызван, а также его назначение. Этот элемент спецификации не должен содержать сведения о том, как функция реа­лизуется.

3. Список параметров.Определяются число и порядок пара­метров, передаваемых модулю.

4. Входные параметры.Подробно описываются все входные параметры (указываются атрибуты, формат, размер, единицы измерения).

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

6. Внешние эффекты.Дается описание всех внешних для программы или системы событий, происходящих при работе модуля, таких, как прием запроса, выдача сообщений об ошиб­ках и т.п.

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

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

2. Проектирование внешних спецификаций модуля.Это процесс определения внешних характеристик каждого модуля.

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

4. Выбор алгоритма и структуры данных.К настоящему времени разработано значительное количество алгоритмов и соответствующих структур данных. Следует исполь­зовать опыт предыдущих разработок, отчеты, выбрать из имеющихся алгоритмов и структур данных необходимые.

5. Оформление начала и конца будущего модуля.Предусмат­ривается оформление модуля в соответствии с требованиями принятого языка программирования.

6. Объявление всех данных, используемых в качестве па­раметров.Записываются соответствующие операторы объяв­ления.

7. Объявление оставшихся данных.Записываются операторы объявления всех оставшихся данных, которые должны быть использованы в модуле.

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

9. Окончательное оформление текста программы.Текст модуля проверяется еще раз. При этом вставляются дополнительные комментарии, поясняющие текст программы,

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

11. Компиляция модуля.Этот шаг отмечает переход проекти­рования к тестированию модуля. Работа над созданием модуля завершена. После компиляции на основе полученной информации про­веряется правильность интерпретации компилятором намере­ний программиста по объявленным данным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]