Лабораторная работа №3 Структурный подход к программированию. Стадия




Скачать 104.9 Kb.
НазваниеЛабораторная работа №3 Структурный подход к программированию. Стадия
Дата конвертации25.12.2012
Размер104.9 Kb.
ТипЛабораторная работа

Лабораторная работа № 3

Структурный подход к программированию. Стадия

«Технический проект»


Цель занятия: изучить вопросы проектирования программного обеспечения.

Лабораторная работа рассчитана на 4 академических часа.

Подготовка к лабораторной работе:

  1. Ознакомиться с лекционным материалом по теме "Этапы разработки программного обеспечения. Проектирование программного обеспечения" учебной дисциплины "Технология разработки программного обеспечения".

  2. Изучить соответствующие разделы в изданиях [1, 3, 4].

Теория:


3.1 Проектирование программного обеспечения при структурном подходе

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

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

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

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

Разработку структурной схемы программы обычно выполняют методом пошаговой детализации.

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

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

Пример структурной схемы программного комплекса, для решения математических задач изображен на рис. 3.1.



Рис. 3.1. Пример структурной схемы программного комплекса

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

3.1.2.Функциональная схема

Функциональная схема (ГОСТ 19.701-90) – это схема взаимодействия компонентов программного обеспечения с описанием информационных потоков, состава данных в потоках и указанием используемых файлов и устройств [1]. Для изображения функциональных схем используют специальные обозначения, установленные стандартом (см. табл. 3.1).

Таблица 3.1.

Название блока

Обозначение

Назначение блока

Сохраненные данные



Для обозначения таблиц и других структур данных, которые должны быть сохранены без уточнения типа устройства

Оперативное запоминающее устройство



Для обозначения таблиц и других структур данных, хранящихся в оперативной памяти

Запоминающее устройство с прямым доступом



Для обозначения таблиц и других структур данных, хранящихся на магнитных дисках

Документ



Для обозначения таблиц и других структур данных, выводимых на печать

Ручной ввод



Для обозначение ручного ввода данных с клавиатуры

Дисплей



Для обозначения данных, выводимых на дисплей компьютера

Функциональные схемы, более информативны, чем структурные. На рис. 3.2 приведена функциональная схема программного комплекса, реализующего различные методы сортировки массивов.



Рис. 3.2. Пример функциональной схемы программного комплекса

3.1.3. Метод пошаговой детализации при составлении алгоритмов

Метод пошаговой детализации реализует нисходящий подход к программированию и предполагает пошаговую разработку алгоритма. Можно выделить следующие этапы [38]:

  1. Создается описание программы в целом. Определяются основные логические шаги, требуемые для решения задачи, даже если пока неизвестно, как их выполнить. Эти логические шаги могут отражать различные физические способы решения или могут быть удобными групповыми именами для тех действий, выполнение которых представляется довольно смутно. Последовательности шагов, требуемых для решения задачи, записываются на обычном языке или на псевдокоде (см. раздел 3.5.1).

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

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

  4. Разработка завершена: в модульном виде получено описание требуемой программы. Перевод этого описания в программу на конкретном языке программирования должен быть достаточно простой задачей.

Пример 3.1: Пусть требуется определить наибольшее значение в некотором наборе данных и вывести эти данные, поделенные на наибольшее значение. Скажем, если данные представляют собой последовательность чисел:

5.0, -3.24, 10.0, -1.25, 8.33

то вывод должен выглядеть следующим образом:

0.5, -0.324, 1, -0.125, 0.833

Уровень 1:

Программа

ввести данные

найти максимум введенных данных

вывести результаты

Конец.

Детализация 1.1. Ввод данных можно детализировать на псевдокоде следующим образом:

Ввести данные:

определить количество чисел

Цикл-пока не все элементы введены

прочитать и запомнить значение элемента

Все-цикл

Детализация 1.2. Отыскание максимума можно детализировать следующим образом:

Найти максимум:

выбрать в качестве максимума первый элемент данных

сравнить все значения с максимумом, заменяя текущий максимум

на очередное значение, если оно не превысило его

Детализация 1.3. Вывод результатов можно детализировать следующим образом:

Цикл-пока не все элементы выведены

вывести значение элемента

Все-цикл

Уровень 2. Он включает в себя три детализованные выше части, из которых только детализация 1.2 требует дополнительного внимания. Ее можно детализировать на псевдокоде следующим образом:

Найти максимум:

выбрать в качестве максимума первый элемент данных

Цикл-пока не все элементы проверены

сравнить все значения с максимумом

Если текущее значение больше максимума

Максимум = текущее значение

Конец-если

Конец-цикл

Задача в приведенном примере проста и не требует разбиения на модули.

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

3.2. Структурные карты Константайна

Методика структурных карт используется на этапе проектирования ПО для того, чтобы продемонстрировать, каким образом программный продукт выполняет системные требования. При этом наиболее часто применяются две техники: структурные карты Константайна (Constantine), предназначенные для описания отношений между модулями, и структурные карты Джексона (Jackson), предназначенные для описания внутренней структуры модулей [39].

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

  • модуль имеет имя, по которому к нему можно обращаться как к единому фрагменту;

  • модуль состоит из множества операторов языка программирования, записанных последовательно;

  • модуль может принимать и/или передавать данные как параметры в вызывающей последовательности или связывать данные через фиксированные ячейки или общие области.

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



Рис. 3.3. Элементы структурных карт

а – модуль; б – вызов модуля; в – связь по данным; связь по управлению

Модуль является базовым элементом структурной карты. Различают следующие типы модулей (см. рис. 3.4):

  • модуль (рис. 3.4, а);

  • подсистема – детализированный модуль или программа. Может использоваться повторно любое число раз (рис. 3.4, б);

  • библиотека – совокупность подпрограмм размещенных в модуле отдельно от данной системы (рис. 3.4, в);

  • область данных – описывает модули, содержащие исключительно области глобальных/распределенных данных (рис. 3.4, г).



Рис. 3.4. Типы модулей

Отдельные части программной системы (программы, подпро­граммы) могут вызываться последовательно, параллельно или как сопро­граммы (см. рис. 3.5).

Для моделирования условных и циклических вызовов применяются следующие узлы (рис. 3.6):

  • условный узел применяется для моделирования конструкций IF-THEN-ELSE (на диаграмме из узла выходят два потока) и IF-THEN (из узла выходит один поток). Условный узел изображается в виде ромба, потоки – альтернативные вызовы изображаются выходящими из него;

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



Рис. 3.5. Типы вызовов модулей

Если необходимо показать, что подчиненный модуль вызывается однократно, это осуществляется указанием цифры "1" рядом со стрелкой, обозначающей вызов модуля-наследника.



Рис. 3.6. Условные и циклические вызовы модулей

а - циклический; б - условный; в - однократный

Связи по данным и управлению между модулями (передаваемые как параметры) обозначают стрелками, параллельными дуге вызова, которые показывают направления связей (рис. 3.7).



Рис. 3.7. Связи а – по данным и б – по управлению

Пример 3.2: Разработать структурную карту Константайна для задачи сортировки одномерного массива с помощью алгоритмов Пузырька, прямого выбора и Шелла.

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

Результат приведен на рис. 3.8:



Рис. 3.8. Пример структурной карты Константайна

3.3. Структурные карты Джексона

Техника структурных карт Джексона основана методе структурного программирования Джексона, который выявляет соответствие между структурой потоков данных и структурой программы [39]. Основное внимание в методе сконцентрировано на соответствии входных и выходных потоков данных. Структуры на диаграммах Джексона строятся из четырех основных компонентов, представленных на рис. 3.9:

  • операция – блок кодов, имеющий один вход и один выход (рис 3.9, а);

  • следование – последовательное выполнение операций слева направо (рис 3.9, б);

  • выбор – выполнение одной из операций в зависимости от выполнения условия (рис 3.9, в);

  • итерация – многократное выполнение блока (рис 3.9, г).



Рис. 3.9. Элементы структурных диаграмм Джексона.

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

С точки зрения структурного программирования Джексона алгоритм программы будет следующим:

Программа

Цикл-пока не конец файла

Прочитать запись

Сравнить заданные поля с критерием поиска

Если совпали

Сохранить в выходной список

Конец-если

Конец-цикл

Вывод результирующего списка

Конец-программа

Полученная структурная карта Джексона приведена на рис. 3.10.



Рис 3.10. Структурная карта Джексона


Порядок выполнения работы:

  1. На основе технического задания из лабораторной работы № 1 и эскизного проекта из лабораторной работы № 2 разработать структурную схему программного продукта.

  2. Разработать функциональную схему программного продукта.

  3. Уточнить алгоритмы программ, разработанные в лабораторной работе № 2, используя метод пошаговой детализации.

  4. Представить структурную схему в виде структурных карт Константайна.

  5. Представить структурную схему в виде структурных карт Джексона.

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

  7. Сдать и защитить работу.

Защита отчета по лабораторной работе

Отчет по лабораторной работе должен включать в себя:

  1. Структурную схему программного продукта.

  2. Функциональную схему.

  3. Алгоритмы программ.

  4. Структурные карты Константайна.

  5. Структурные карты Джексона.

Защита отчета по лабораторной работе заключается в предъявлении преподавателю полученных результатов (на экране монитора), демонстрации полученных навыков и ответах на вопросы преподавателя.

Контрольные вопросы

  1. Этапы разработки программного обеспечения.

  2. Проектирование программного обеспечения.

  3. Структурный подход к программированию.

  4. Структурная и функциональная схемы.

  5. Методика Константайна.

  6. Методика Джексона.

Добавить в свой блог или на сайт

Похожие:

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа №3 Структурный подход к программированию
Ознакомиться с лекционным материалом по теме «Этапы разработки программного обеспечения. Проектирование программного обеспечения»...

Лабораторная работа №3 Структурный подход к программированию. Стадия iconПрактикум лабораторная работа № Этапы разработки программного обеспечения при структурном подходе к программированию. Стадия «Техническое задание»
...

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа №7 Проектирование программной системы при объектном подходе к программированию
Цель работы: познакомить студентов с методом проектирования системы путем crc-карт

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа №2 "Измерение относительной влажности воздуха с помощью термометра" Лабораторная работа №3 "Сборка электрической цепи и измерение силы тока в ее различных участках"!
Лабораторная работа №7" Определение выталкивающей силы, действующее на погруженное в жидкость тело"

Лабораторная работа №3 Структурный подход к программированию. Стадия iconИнтеграция деятельности социально-культурных институтов в формировании специалистов этнокультурных объединений: системно-структурный подход

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа №10. Изучение принципа действия и функциональной схемы самолетного ответчика Лабораторная работа №11. Изучение принципа действия и проверка функционирования приемника врл «Корень-ас»
Лабораторная работа № Изучение принципов построения системы автоматической подстройки частоты (апч) радиолокационной станции

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа №1 Исследование источников вторичного питания(ивп)
Лабораторная работа выполняется в два этапа: на компьютере и универсальном лабораторном стенде

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа. Получение и свойства оксидов, гидроксидов и солей
Лабораторная работа. Ряд напряжений металлов. Гальванические элементы. Электролиз юююююю

Лабораторная работа №3 Структурный подход к программированию. Стадия iconЛабораторная работа №1
Лабораторная работа №8. Структурирование таблицы с автоматическим подведением итогов

Лабораторная работа №3 Структурный подход к программированию. Стадия iconПояснительная записка Цель курса
Кубановедение объединяет системные знания, логический и структурный подход регионального компонента со всесторонним видением изучаемого...


Разместите кнопку на своём сайте:
lib.convdocs.org


База данных защищена авторским правом ©lib.convdocs.org 2012
обратиться к администрации
lib.convdocs.org
Главная страница