Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проф. практика програмної інженерії Лекції.docx
Скачиваний:
4
Добавлен:
05.12.2018
Размер:
142.98 Кб
Скачать

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

Проектирование ПО при структурном подходе

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

Структурная схема разрабатываемого ПО

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

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

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

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

Функциональная схема (ГОСТ 19.701-90) – это схема взаимодействия компонентов ПО с описание информационных потоков, состава данных в потоках и указанием используемых файлов устройств.

Обозначение элементов функциональных схем:

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

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

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

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

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

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

Документ

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

Ручной ввод

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

Дисплей

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

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

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

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

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

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

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

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

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

Наиболее часто применяются две техники:

  1. Структурные карты Константайна, предназначенные для описания отношений между модулями.

  2. Структурные карты Джексона, предназначенные для описания внутренней структуры модулей.

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

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

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

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

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

Рассмотрим основные элементы структурных карт Константайна:

  1. Модуль (прямоугольник с именем внутри)

  2. Вызов модуля (стрелка)

  3. Связь по данным

  4. Связь по управлению.

Модуль является базовым компонентов ст. карты.

Различают следующие типы модулей:

  1. Модуль

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

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

  4. Область данных – описывает модули, содержащие исключительно области глобальных или распределенных данных.

Отдельные части программной системы могут вызываться:

  1. Последовательно

  2. Параллельно

  3. Как сопрограммы

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

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

  2. Условный – применяется для моделирования конструкции выбора (If-else). Условный узел изображается в виде ромба , а потоки, выходящими стрелками из него.

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

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

Связи в структурных карт Константайна:

  1. По данным.

  2. По управлению.

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

Такие карты основаны на методе структурного программирования Джексона, который выявляет соответствие между структурой потоков данных и структурой программы. Основное внимание в методе сконцентрировано на соответствии входных и выходных потоков данных.

Структурные карты Джексона состоят из:

  1. Операция – блок кодов, имеющих один вход и один выход.

  2. Следование – последовательное выполнение операций слева на право

  3. Выбор – одной из операций, в зависимости от выполнения условия.

  4. Итерация - многократное выполнение блока.

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

Алгоритм программы с точки зрения структурного программирования Джексона (на слайдах).

CASE-технологии

(Computer-Aided Software/ System Engineering – разработка ПО/ систем с использованием компьютерной поддержки) – это реализованные в виде программных продуктов технологические системы, ориентированные на создание сложных программных систем и поддержку их полного жизненного цикла или его основных этапов.

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

Кейс технологии обладают достоинствами:

  • Повышают качество создаваемого ПО с помощью средств автоматического контроля.

  • Ускоряют процесс проектирования и разработки.

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

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

  • Поддерживают технологию повторного использования компонентов ПО.

  • Поддерживают развитие и сопровождение разработки.

При использовании кейс технологий изменяются фазы жизненного цикла ПО

  1. Прототипирование

  2. Проектирование спецификаций

  3. Контроль проекта

  4. Кодогенерация

  5. Системное тестирование

  6. Сопровождение.

По традиционной схеме:

  1. Анализ

  2. Проектирование

  3. Кодирование

  4. Тестирование

  5. Сопровождение

Цели и содержание этапов Жц ПО

Традиционная разработка

кейс

1.Основные усилия на кодирование и тестирование

Основные усилия на анализ и проектирование

2.«Бумажные» спецификации

Быстрое итеративное прототипирование

3.Ручное кодирование

Автоматическая кодогенерация

4.Ручное документирование

Автоматическая генерация документации

5.Тестирование кодов

Автоматический контроль проекта

6. Сопровождение кодов

Сопровождение спецификаций проектирования

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

Большинство кейс технологий основано на парадигме: методология, метод, нотация, средства.

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

Метод определяет способ достижения той или иной цели.

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

Средства – это инструментарий для поддержки метода.

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

Наиболее часто и эффективно в методологии структурного анализа используются следующие средства:

  • DFD – диаграммы потоков данных совместно со словарями данных и спецификациями процессов.

  • ERD – диаграммы «связь-сущность».

  • STD – диаграммы переходов состояний.

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

  1. По типу целевых систем – для систем реального времени и для информационных систем;

  2. По отношению к школам – SE (Software Engineering), IE ( Information Engineering);

  3. ПО порядку построения моделей – процедурно-ориентированные, ориентированные на данные и информационно-ориентированные.

Рассмотрим деление кейс средств по функциональным характеристикам.

Анализ и проектирование

Данные средства применяются для проектирования и создания спецификаций программной системы, поддерживают SE и IE:

  • Кейс-аналитик (Эйтекс)

  • POSE (Computer System Advisers)

  • Design/IDEF (Meta Software)

  • BPWin (Logic Works)

  • SELECT (Select Software Tools)

  • CASE/4/0 (micro TOOI GmbH)

  • И ряд других средств

Проектирование баз данных и файлов

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

  • ERWin (Logic Works)

  • S-Designor (SPD)

  • Designtr/2000 (Oracle)

  • Solllcerrun (Computer System Advisers)

Программирование

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

  • COBOL 2/Workbench (Micro Focus)

  • DECASE (DEC)

  • NETRON/CAP (Netrn)

  • APS (Sage Software)

Сопровождение и реинжиниринг

К этим средствам относятся документаторы, анализаторы программ, средства реструктурирования.

  • Adpac CASE Tools (Adpac)

  • Scan/COBOL SuperStructure (Computer Data Systems)

  • Inshtctor/Recoder (Language Tecnologe)