
2.Вертикальное слоение программ
Одним из основных препятствий, с которыми сталкиваются разработчики, является огромный объем информации, практически хаотического характера, несистематизированной, неподдержаной определенными принципами. Такие объемы информации представляют большую сложность для систематизации, которая выделяется следующим –сложность познания данного объема информации.
Для начальной систематизации используются следующие принципы:
1) это членение или разделение проекта на составные части.
2) Обеспечение функциональности и независимости этих частей.
2) Законченность каждой части. т.е. способность выполнять сквозную обработку информации, поступающей в программное изделии от входа к выходу.
Технология вертикального слоения в наиболее полной форме соответствует указанным способам описания. Разделение программного изделия на функциональные части в этой технологии производится на основе расширяющихся функций. Эти расширяющиеся функции характеризуются отношением, состоят из фрагментов программ, т.е. вы выбираете функции и определяете их. Программный текст, реализующий расширяющие функции называется вертикальным слоением. Реализующие функции, построенных по принципу «Реализуются с помощью».
Горизонтальный слой, обеспечивает определенный уровень, реализующих функций.
График…..
Главной особенностью вертикального слоя является то, что он как правило состоит из программных фрагментов, входящих в реализующие модули разных горизонтальных слоев или уровней, кроме вертикального слоя, различают еще один программный. текст, называемый основой .
Основа- это предельно упрощенный, но работоспособный вариант программной системы, способный выполнить поставленную, хотя и в усеченном виде проблему, т.е. это часть программной системы, которая остается после удаления из нее всех вертикальных слоев. В нашем упрощенном виде мы имеем ввиду следующие ст. рис. …основа
Представление программы в виде основы и последовательности расширяющих функций, реализованных вертикальными слоями и называется метод «вертикального слоения программ», т.е. вертикальное слоение представляет собой по существу набор вставок в разные места фоновой программы, т.е. добавления к основе последовательности расширяющих функций. Действие, реализующих функций называется рассредоточенным, а перечень слоев, который обеспечивается добавлением новой расширяющей. функции к множеству расширяющих функций, называется сосредоточенным описанием, т.е. добавление новых расширяющих функций.
Основа:
Задача:
1) основа-учет фамилий лиц, поступающих на работу и печать полного списка сотрудников при условии безошибочной входной информации.
Необходимо ввести расширяющие функции:
1) Учет и печать полного набора сведений о сотрудниках.
2) Частота изменение требований к сотрудникам,
3) отбор анкет по значению атрибутов.
4) Печать части требования от сотрудниках.
5) Включение в сводку интегральной информации, т.е. расширение некоторых пакетов по дополнительным расширениям.
6) Контроль ошибок входной информации.
Вертикальный слой, реализующий первую расширяющую функцию должен по необходимости состоять как min из 2-х программных фрагментов.
1) Для реализации учета полного набора сведений о сотрудниках.
2) Для печати.
Эти фрагменты невозможно представить в виде единого связного программного текста. В сосредоточенном описании вертикальный слой реализующий эту расширяющую функцию, каждому из 2-х фрагментов будет соответствовать координата его вставки в основу. т.е. координата вставки данного фрагмента характеризуется координатой в данной основе.
Координаты вставки как правило представляют собой имя процедуры, номер строки программы и номер символа в этой строке, за которым вставляется этот фрагмент.
Сравнивая между собой расширяющую функцию и реализующую функцию следует отметить, что первая функция обладает некоторым приоритетом перед реализующей. функцией. Расширяющая функция в первую очередь отвечает на вопрос что делает программное изделие?. И уж потом, как? А для реализующей функции справедливо обратное. Представление программы в виде основы и расширяющей функции можно использовать для ее создания, освоения и модернизации, что и приводит нас к идеологии технологии вертикального слоения. Технология вертикального слоения имеет ряд достоинств:
1) Относительно быстрое создание некоторого полностью работоспособного документированного варианта программной системы.
2) Легкость освоения системы, которая может производиться в той же последовательности в которой происходит разработка программной системы.
3) Легкость модернизации системы, которая вытекает из того, что модернизации подвергается только удалением и восстановление функций.
4) Отсутствие необходимости создавать на этапе автономной отладки заглушки, вставки драйверов, и т.д. имулирующие определенные действия
Лекция 11
Технология вертикального слоения имеет ряд недостатков:
1) есть вероятность того, что добавление очередного слоя к системе потребует доработки основы, а в ряде случаев и переработки основы, т.к. при создании слоя технология не может учесть оптимальности дополнения слоя.
2) возникает дублирование функций, поскольку слои разрабатываются разными разработчиками с разной идеологией, с разной оценкой.
Для того чтобы избежать эти недостатки технологий сверху – вниз, снизу – вверх вертикального слоения была предложена технология Фуксмана, она использует все положительные стороны технологии сверху- вниз и при этом лишена указанных недостатков.
Технология низвосходящего проектирования состоит в следующем:
на начальном этапе разрабатываются несколько верхних слоев реализующих функций, достаточных чтобы избежать тупиковых вариантов реализации основы и слоев(вклад технологии сверху вниз)
одновременно с созданием основы и слоев разрабатываются инструментальные примитивы системы, т.е. технические процедуры некоторых нижних слоев (платформа технологии снизу - вверх)
Как только создан каркас системы и созданы базисные элементы, применяется технология низходящего моделирования.
Технология низходящего проектирования лишена недостатков.
Для поддержки технологии вертикального слоения был предложен инструментальный комплекс, обеспечивающий следующие виды технологических воздействий не разрабатываемую систему:
начальная загрузка программной системы, т.е. ввод в архив всей технологической информации, как-то документация, программы и тесты.
Коррекция ситемы, которая производится обнаружением ошибок. Коррекции могут подвергаться любые документы.(документы, программы и тесты)
Фиксация версии, создаваемой системы, т.е. передача ее в эксплуатацию.
Добавление вертикальных слоев, при этом инструментальный комплекс слоения вносит изменения в фоновую программу, осуществляется трансляция и запуск на выполнение.
Важной особенностью инструментального комплекса является реализованная возможность проверки работоспособности новых тестов, разработанных для старых слоев.
Инструментальный комплекс позволяет разрабатывать параллельно ряд слоев независимыми разработчиками. Экспериментальная версия данного подхода была разработана в 60 –х годах для ES ЭВМ. В последнее время разработка больших машин возвращается.
SADT диаграммы.
Методы структурного анализа и технологии.
Средства описания требований к проекту программного обеспечения SADT-диаграммы являются выразительным средством описания, формирования структуры будущего проекта.
SADT-диаграммы были разработаны Россом, и являются собственностью sotteach.
Диаграммы – это наглядное представление процессов обработки данных для реализации графических диаграмм. Был предложен язык SA при этом единственным назначением этого языка является связывание, структуризация и передача фрагментов замысла, выражения на любом другом языке.
Россом отмечены следующие характерные особенности языка:
1) Язык включает в себя любой другой язык, а его область представления универсальная и неограниченна.
2) Его единственной задачей является упорядоченная организация (хорошо структурированная декомпозиция описываемого предмета.
3) Размеры единиц декомпозиции выбираются в соответствии с пониманием и характером мышления пользователя в этой предметной области, т.е. использование языка пользователя.
4) Единицей понимания представляются таким образом, что взаимодействие между ними получает точное и строгое описание (точное и формальное).
5) Такую структурную декомпозицию можно проверить до любой степени глубины.
6) Язык SA улучшает эффективную и точную передачу понимания предметной области в качественном и количественном отношении и позволяет преодолеть ограничения, накладываемые в нем некоторым формальным аппаратом.
Язык SA включает простой набор графических элементов, используя который разработчик ПО может отобразить любую структуру.
Эти элементы: блок, в котором есть название, описываемой процедуры, и стрелки. Блок представляет собой часть целого.
Стрелки отображают интерфейс между частями целого. Само целое представляется диаграммой, которая конструируется из блоков, стрелок и названий на естественном языке. Описание сложного объекта на языке SA называется SA - моделью объекта. SA – модель - иерархически организованная совокупность диаграмм, каждая из которых отражает лишь ограниченную часть объекта (целого).
Диаграммы верхнего уровня иерархии описывают структуру всего объекта, а диаграммы нижнего уровня представляют информацию о соответствующей части объекта.
Метод SADT-диаграмм допускает единовременное использование нескольких SA –моделей, что позволяет описывать объект с разных точек зрения.
Г
управление
…..График …
вход выход
механизм
Стрелки и блок поддерживаются названиями, поясняющими смысл действия.
Входная стрелка обозначает, что в блок поступает входная информация. Управление характеризует то, что входная информация корректируется с целью управления, и становится выходной.
Механизм поддержки - устройство, которое поддерживает механизм поддержки
Языки описания требований PSL и RSL.
Эти языки оказались производными и стали независимыми – на основе ряда технологического комплекса.
PSL это один из первых языков предназначенных для описания требований к системе программного обеспечения и был разработан в составе систем технологических комплексов RSL и REV’S, в которых была реализована данная технология. Применение данных языков. вышло далеко за рамки использования техническими комплексами и приобрело самостоятельное направление, как отдельный программный продукт он использовался в технологическом комплексе таком, как ARGUS, SD, UDS и стали олицетворением языков идеологии. формирования требований реализации.
Указанных 2 языка используют концепцию ERA (объект, связь, атрибут), которая структурирует информацию будущего проекта. В соответствии с данным подходом предполагается, что описание объекта будущего программного обеспечения состоит из объектов различных типов. Объекты разных типов обладают определенным для данного типа набором атрибутов или свойств, каждый из которых может принимать определенные значение. Объекты могут быть связаны разными отношениями. Такие зависимости между объектами называются связями. В языке PSL набор типов объектов и типов отношений фиксирован, он позволяет выразить следующие аспекты формирования требований к системе ПО.
1) Описать потоки входных и выходных данных системы.
2) Описать структуру системы, т.е. описать иерархию объектов системы.
3) Описать структуру данных и связи между ними.
4) Преобразование данных, т.е. определить какие данные участвуют в процессе обработки данных.
5) Описать размеры и объем системы (конкретные значения).
6) Выявить динамику системы, т.е. оценить как поведет себя система во времени.
7) Свойства системы (оценить каждый атрибут системы.)
8) Описать систему с позиции управления проектом. (Управление проектом. Он позволяет определить конкретные сроки и контрольные точки разработки системы.)
Язык RSL, также как и язык PSL содержит некоторый набор определенных типов объектов. В RSL их обычно называют элементами: типов объектов и атрибутов, однако в отличие от языка PSL, язык RSL является расширяющим и допускает определение новых типов объектов отношений и атрибутов, и последующее использование их как новых объектов или базисных объектов. Описание новых типов объектов отношений и атрибутов выполняется точно также как например в Паскале, СИ, Бейсике. Разница состоит лишь в том, что в системе RSL информация о вновь созданных типах объектов отношений и атрибутов сохраняется в базе данных системы.