tehnologia (1018792), страница 25

Файл №1018792 tehnologia (Г.С. Иванова - Учебник - Технология программирования) 25 страницаtehnologia (1018792) страница 252017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 25)

§ 5.2).Структурными компонентами программной системы или программного комплексамогут служить программы, подсистемы, базы данных, библиотеки ресурсов и т. п.Структурная схема программного комплекса демонстрирует передачу управления отпрограммы-диспетчера соответствующей программе (рис. 5. 1).Структурная схема программной системы, как правило, показывает наличиеподсистем или других структурных компонентов. В отличие от программного комплексаотдельные части (подсистемы) программной системы интенсивно обмениваются даннымимежду собой и, возможно, с основной программой. Структурная же схема программнойсистемы этого обычно не показывает (рис. 5.2).Более полное представление о проектируемом программном обеспечении с точкизрения взаимодействия его компонентов между собой и с внешней средой даетфункциональная схема.Функциональная схема. Функциональная схема или схема данных (ГОСТ 19.701 90) - схема взаимодействия компонентов программного обеспечения140с описанием информационных потоков, состава данных в потоках и указаниемиспользуемых файлов и устройств.

Для изображения функциональных схем используютспециальные обозначения, установленные стандартом. Основные обозначения схем данныхпо ГОСТ 19.701-90 приведены в табл. 5.1.Функциональные схемы более информативны, чем структурные. На рис. 5.3 длясравнения приведены функциональные схемы программных комплексов и систем.141Все компоненты структурных и функциональных схем должны быть описаны. Приструктурном подходе особенно тщательно необходимо прорабатывать спецификациимежпрограммных интерфейсов, так как от качества их описания зависит количество самыхдорогостоящих ошибок.

К самым дорогим относятся ошибки, обнаруживаемые прикомплексном тестировании,142так как для их устранения могут потребоваться серьезные изменения уже отлаженныхтекстов.5.2. Использование метода пошаговой детализации для проектирования структурыпрограммного обеспеченияСтруктурный подход к программированию в том виде, в котором он былсформулирован в 70-х годах XX в., предлагал осуществлять декомпозицию программметодом пошаговой детализации.

Результатом декомпозиции является структурная схемапрограммы, которая представляет собой многоуровневую иерархическую схемувзаимодействия подпрограмм по управлению. Минимально такая схема отображает двауровня иерархии, т. е. показывает общую структуру программы. Однако тот же методпозволяет получить структурные схемы с большим количеством уровней.Метод пошаговой детализации (см. § 1.3) реализует нисходящий подход (см. § 2.3) ибазируется на основных конструкциях структурного программирования (см.

§ 2.4). Онпредполагает пошаговую разработку алгоритма. Каждый шаг при этом включает разложениефункции на подфункции. Так на первом этапе описывают решение поставленной задачи,выделяя общие подзадачи, на следующем аналогично описывают решение подзадач,формулируя при этом подзадачи следующего уровня. Таким образом, на каждом шагепроисходит уточнение функций проектируемого программного обеспечения. Процесспродолжают, пока не доходят до подзадач, алгоритмы решения которых очевидны.Декомпозируя программу методом пошаговой детализации, следует придерживатьсяосновного правила структурной декомпозиции, следующего из принципа вертикальногоуправления: в первую очередь детализировать управляющие процессы декомпозируемогокомпонента, оставляя уточнение операций с данными напоследок. Это связано с тем, чтоприоритетная детализация управляющих процессов существенно упрощает структурукомпонентов всех уровней иерархии и позволяет не отделять процесс принятия решения отею выполнения: так, определив условие выбора некоторой альтернативы, сразу же вызываютмодуль, ее реализующий.Детализация операций со структурами в последнюю очередь позволит отложитьуточнение их спецификаций и обеспечит возможность относительно безболезненноймоди4'икации -лих структур за счет сокращения количества модулей, зависящих от этихданных.Кроме этого, целесообразно придерживаться следующих рекомендаций:• не отделять операции инициализации и завершения от соответствующей обработки,так как модули инициализации и завершения имеют плохую связность (временную) исильное сцепление (по управлению);143• не проектировать слишком специализированных или слишком универсальныхмодулей, так как проектирование излишне специальных модулей увеличивает их количество,а проектирование излишне универсальных модулей повышает их сложность;• избегать дублирования действий в различных модулях, так как при их измененииисправления придется вносить во все фрагменты программы, где они выполняются - в этомслучае целесообразно просто реализовать эти действия в отдельном модуле;• группировать сообщения об ошибках в один модуль по типу библиотеки ресурсов,тогда будет легче согласовать формулировки, избежать дублирования сообщений, а такжеперевести сообщения на другой язык.При этом, описывая решение каждой задачи, желательно использовать не более 1-2-хструктурных управляющих конструкций, таких, как цикл-пока или ветвление, что позволяетчетче представить себе структуру организуемого вычислительного процесса.Пример 5.1.

Разработать алгоритм программы построения графиков функций однойпеременной на заданном интервале изменения аргумента [x1, х2] при условии непрерывностифункции на всем интервале определения.Примечание. Для того чтобы программировать построение графиков функций с точками разрывапервого и второго рода, необходимо аналитически исследовать заданные функции, что представляет собойотдельную и достаточно сложную задачу.

Численными методами данная задача не решается.В общем виде задача построения графика функции ставится как задача отображенияреального графика (рис. 5.4, о), выполненного в некотором масштабе, в соответствующееизображение в окне на экране (рис. 5.4, б).144Для построения графика необходимо определить масштабы по осям координат:mx =wx1 − wx 2,x1 − x 2my =wy 1 − wy 2y max − y minи координаты точек графика:px i =py i =⎡(xi − x1 ) ∗ m x ⎤ + wx1 ,⎡( y max − yi ) ∗ m y ⎤ + wy1 ,Шаг координатной сетки по вертикали и горизонтали при этом можно определить поформулам:lpm x =wx 2 − wx1,nl xlpm y =wy 2 − wy 1nl yгде nlx nly - соответственно количество вертикальных и горизонтальных линий.Для разметки сетки необходимо определить шаги разметки по горизонтали ивертикали:lm x =x 2 − x1,nl xlm y =x max − x minnl yТаким образом, для того чтобы построить график, необходимо задать функцию,интервал изменения аргумента [x1, х2], на котором функция непрерывна, количество точекграфика n, размер и положение окна экрана, в котором необходимо построить график: wx1,wy1, wx2, wy2 и количество линий сетки по горизонтали и вертикали nlx, nly.

Значения wx1,wy1, wx2, wy2, nlx, nly можно задать, исходя из размера экрана, а интервал и число точекграфика надо вводить.Разработку алгоритма выполняем методом пошаговой детализации, используя длязаписи псевдокод.Примем, что программа будет взаимодействовать с пользователем черезтрадиционное иерархическое меню, которое содержит пункты: Функция, Отрезок, Шаг, Видрезультата. Выполнить и Выход (см. рис. 8.5). Для каждого пункта этого меню необходимореализовать сценарий, предусмотренный в техническом задании.Шаг 1. Определяем структуру управляющей программы, которая для нашею случаяреализует работу с меню через клавиатур:145Программа.Инициализировать глобальные значенияВывести заголовок и менюВыполнятьЕсли выбрана Командато Выполнить Командуиначе Обработать нажатие клавиш управленияВсе - еслидо Команда = Выход Конец.Очистка экрана, вывод заголовка и меню, а также выбор Команды - операциисравнительно простые, следовательно, их можно не детализировать.Шаг 2.

Детализируем операцию Выполнить команду:Выполнить Команду:Выбор КомандаФункция:Ввести или выбрать формулу FunВыполнить разбор формулыОтрезок:Ввести значения х1,х2Шаг:Ввести значения hВид результата:Ввести вид _результатаВыполнить:Рассчитать значения функцииЕсли Вид_результата = Графикто Построить графикиначе Вывести таблицуВсе – еслиВсе – выборОпределим, какие фрагменты имеет смысл реализовать в виде подпрограмм. Вопервых, фрагмент Вывода заголовка и меню, так как это достаточно длинная линейнаяпоследовательность операторов и её выделение в отдельную процедуру позволит сократитьуправляющую программу. Во-вторых, фрагменты Разбор формулы, Расчет значенийфункции, Построение графика и Вывод таблицы, так как это достаточно сложные операции.Это – программы первого уровня, которые определяют структуру программы (рис.

5.5).Определим для этих программ интерфейсы по данным с основной программой, т.е. спискипараметров.146Подпрограмма Вывод заголовка и меню параметров не предполагает.Подпрограмма Разбор формулы должна иметь два параметра: Fun - аналитическоезадание функции, Tree - возвращаемый параметр - адрес дерева разбора.Подпрограмма Расчет значений функции должна получать адрес дерева разбора Tree,отрезок: значения х1 и х2, а также шаг h. Обратно в программу она должна возвращатьтаблицу значений функции Х(n) и Y(n), где n - количество точек функции.Подпрограммы Вывода таблицы и Построения графика должны получать таблицузначений функции и количество точек.После уточнения имен переменных алгоритм основной программы будет выглядетьследующим образом:Программа.Вывод заголовка и менюВыполнятьЕсли выбрана Команда тоВыбор Команда Функция:Ввести или выбрать формулу FunРазбор формулы (Fun; Var Tree) Отрезок:Ввести значения xl,x2 Шаг:Ввести значения hВид результата:Ввести вид_результата Выполнить:Расчет значений функции (xl, x2, k, Tree; VarX,Y,n)147Если Вид_резулыпата=График тоПостроение графика(Х, Y, п)иначе Вывод таблицы(Х, Y, п)Все-еслиВсе-выбориначе Обработать нажатие клавиш управленияВсе-еслидо Команда=ВыходКонец.На следующих шагах необходимо выполнить детализацию алгоритмов подпрограмм.Детализацию выполняют, пока алгоритм программы не станет полностью понятен.

Один извозможных вариантов полной структурной схемы данной программы показан на рис. 5.6.Как уже упоминалось в § 2.4, использование метода пошаговой детализации обеспечиваетвысокий уровень технологичности разрабатываемого программного обеспечения, так как онпозволяет использовать только структурные способы передачи управления.148Разбиение на модули при данном виде проектирования выполняется эвристически, исходяиз рекомендуемых размеров модулей (20-60 строк) и сложности структуры (две-тривложенных управляющих конструкции).

В принципе в качестве модуля (подпрограммы)можно реализовать решение подзадач, сформулированных на любом шаге процессадетализации, однако определяющую роль при разбиении программы на модули играютпринципы обеспечения технологичности модулей, рассмотренные в § 2.2.Для анализа технологичности полученной иерархии модулей целесообразно использоватьструктурные карты Константайна или Джексона.5.3. Структурные карты КонстантайнаНа структурной карте отношения между модулями представляют в виде графа, вершинамкоторого соответствуют модули и общие области данных, а дугам - межмодульные вызовы иобращения к общим областям данных.Различают четыре типа вершин (рис.

5.7):• модуль - подпрограмма,• подсистема - программа,• библиотека - совокупность подпрограмм, размещенных в отдельноммодуле,• область данных - специальным образом оформленная совокупностьданных, к которой возможно обращение извне.При этом отдельные части программной системы (программы, подпрограммы) могутвызываться последовательно, параллельно или как сопрограммы (рис. 5.8).Чаще всего используют последовательный вызов, при котором модули, передавуправление, ожидают завершения выполнения вызванной программы или подпрограммы,чтобы продолжить прерванную обработку.Под параллельным вызовом понимают распараллеливание вычислений на несколькихвычислителях, когда при активизации другого процесса данный процесс продолжает работу(рис.

Характеристики

Тип файла
PDF-файл
Размер
7,85 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Учебник - Технология программирования
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее