Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к ГОСАМ (все билеты).doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1.56 Mб
Скачать

Вопрос 2. Нелинейные структуры данных: иерархические списки, деревья и леса, бинарные деревья

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

Иногда многосвязные списки называют прошитыми списками. Используется еще одно название многосвязных списков - плексы.

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

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

3.Каждая связка в структуре имеет не только направление но и веc

Такую многосвязную структуру называют сетевой структурой или сетью. Логически сеть эквивалентна взвешенному ориентированному графу общего вида и поэтому вместо термина “сеть “ часто употребляется термин “ графовая структура “или просто “граф”; а вместо термина “ элемент “ термин “узел “

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

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

1. Существует единственный элемент или узел на который не ссылается никакой другой элемент и который называется корнем

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

3.На каждый элемент, кроме корня, имеется единственная ссылка, т. е.каждый элемент адрисуется единственным указателем.

Определенная таким образом структура называется также корневым деревом. Название “дерево “ проистекает из логической эквивалентности древовидной структуры абстрактному дереву в теории графов. Линия связи между парой узлов дерева называется обычно ветвью. Те узлы, которые не ссылаются на другие узлы дерева, называются листьями. Узел, не являющийся листом или корнем, считается промежуточным или узлом ветвления.

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

- поле данных;

- поле степени исхода (т. е. число сыновей );

- поля указателей, число которых равно степени исхода.

Вопрос 3. Проектирование программного обеспечения на основе объектно-ориентированного подхода. Базовые понятия. Методология OMT. Универсальный язык моделирования UML (диаграммы для логического и физического представления).

Объектно-ориентированная разработка программного обеспечения связана с применением объектно-ориентированных моделей при разработке программных систем и их компонентов. Говоря об объектно-ориентированной разработке, я имею в виду:

  • объектно-ориентированные методологии (технологии) разработки программных систем;

  • инструментальные средства, поддерживающие эти технологии.

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

OMT (Object Modeling Techniques). Эта технология оказала большое влияние на других разработчиков объектно-ориентированных технологий, а книга, в которой она описана, является одной из наиболее часто цитируемых книг по данному направлению. Более того, система обозначений (графический язык) для описания моделей. В технологии OMT проектируемая программная система представляется в виде трех взаимосвязанных моделей:

  • объектной модели, которая представляет статические, структурные аспекты системы, в основном связанные с данными;

  • динамической модели, которая описывает работу отдельных частей системы;

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

Эти три вида моделей позволяют получить три взаимно-ортогональных представления системы в одной системе обозначений. Совокупность моделей системы может быть проинтерпретирована на компьютере (с помощью инструментального программного обеспечения), что позволяет продемонстрировать заказчику характер работы с будущей системой и существенно упрощает согласование предварительного проекта системы. Модели, разработанные и отлаженные на первой фазе жизненного цикла системы, продолжают использоваться на всех последующих его фазах, облегчая программирование системы, ее отладку и тестирование, сопровождение и дальнейшую модификацию. Rational Rose - CASE-средство фирмы Rational Software Corporation (США) - предназначено для автоматизации этапов анализа и проектирования ПО, а также для генерации кодов на различных языках и выпуска проектной документации. Rational Rose использует синтез-методологию объектно-ориентированного анализа и проектирования, основанную на подходах трех ведущих специалистов в данной области: Буча, Рамбо и Джекобсона. Разработанная ими универсальная нотация для моделирования объектов (UML - Unified Modeling Language) претендует на роль стандарта в области объектно-ориентированного анализа и проектирования. Конкретный вариант Rational Rose определяется языком, на котором генерируются коды программ (C++, Smalltalk, PowerBuilder, Ada, SQLWindows и ObjectPro). Основной вариант - Rational Rose/C++ - позволяет разрабатывать проектную документацию в виде диаграмм и спецификаций, а также генерировать программные коды на С++. Кроме того, Rational Rose содержит средства реинжиниринга программ, обеспечивающие повторное использование программных компонент в новых проектах.

Билет 10.

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