какое количество пар взаимодействующих объектов может содержать система
2)Какое количество пар взаимодействующих объектов может содержать система?
Выберите один ответ:
a. Пять пар объектов.
b. Две пары объектов для ввода и вывода.
c. Произвольное множество пар объекта.
d. Одну пару объектов.
3)Какой граф соответствует конструкции сборки системы из объектов.
Выберите один ответ:
a. Двудольный.
b. Несвязный.
c. Древовидный.
d. Цикличный.
4)Определите соотношение между алгоритмическими языками С и С++
Выберите один ответ:
a. Алгоритмически язык С++ содержит в себе алгоритмический язык С.
b. Алгоритмически язык С++ содержит в себе фрагменты алгоритмического языка С.
c. Алгоритмические языки С++ и С не связаны с друг другом.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
вопросы ООП
Есть вопрос. Если кто знает, о чем тут, отпишитесь: «Пример, отражающий четыре способа применения.
ООП. Есть вопросы.
Собственно, обращаюсь к знающим людям, поскольку еще на первых порах с С++ не могу понять.
Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились
Кто знает ребят подскажите в чем проблема, есть метод обновляющий текст в TextView (всего 6.
Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)
ООП ради ООП
Доброго времени суток! Есть к примеру класс Cat который реализует интерфейс Movable, инкапсулирует.
Вопросы по ОС и ПО
Кто может так просто между прочим ответьте на следующие вопросы: 1. Загрузка MS-DOS. 2. Команды.
Вопросы 🙂
1) Подскажите, пожалуйста, как подсчитать позицию моего сайта в разных поисковиках по определенному.
Вопросы по C++
Всем привет! У меня появилось несколько вопросов по C++, был бы рад, если бы Вы помогли бы мне.
Вопросы по БД
Все привет! Начал как бы заниматься программированием и возникли некоторые вопросы с БД. Первый.
Алгоритм функционирования системы, решение задачи
МИНОБРНАУКИ РОССИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ» МИРЭА Институт Информационных Технологий Кафедра Вычислительной Техники (ВТ)
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ
Выполнил студент группы ____________________ Фамилия И.О.
(должность, звание, ученая степень) Фамилия И.О.
Лабораторные работы выполнены «__»_______201__ г. (подпись студента)
Содержание
1. Постановка задачи. 3
2. Методы и объекты.. 3
3. Архитектура программы-системы.. 4
3.1. Иерархия объектов. 4
3.2. Взаимодействие объектов. 5
3.3. Алгоритм функционирования системы, решение задачи. 5
4.1. Схема иерархии наследования классов. 7
4.2. Схема архитектуры программы. 8
4.3. Схема взаимодействия объектов. 8
4.4. Схема алгоритма решения задачи. 9
5.1. Код описания классов. 9
5.1.1. Класс cl_base. 9
5.1.2. Класс cl_application. 11
5.1.5. Класс cl_p3. 14
5.2. Код конструирования системы.. 15
5.3. Код взаимодействия объектов. 15
5.4. Код алгоритма решения задачи. 15
7. Инструкция для пользователя. 16
Постановка задачи
Все сложные электронные, технические средства разного назначения в момент включения выполняют опрос готовности к работе составных элементов, индицируя соответствующую информацию на табло, панели или иным образом.
Построить модель иерархической системы. Реализовать задачу опроса готовности каждого объекта из ее состава и вывести соответствующее сообщение на консоль.
Объект считается готовым к работе:
1. создан и размешен в составе системы согласно схеме архитектуры;
2. имеет свое уникальное наименование;
3. свойство определяющее его готовность к работе имеет значение «истина».
В результате решения задачи опроса готовности объектов, относительно каждого объекта системы на консоль надо вывести информацию:
Если свойство определяющее готовность объекта имеет значение «истина»
Объект «наименование объекта» готов к работе
Объект «наименование объекта» не готов к работе
Система содержит не менее 10 объектов и не менее одной иерархической ветки вложенности объектов высотой от 3 уровня.
Методы и объекты
Система конструктивно представляет собой иерархию взаимосвязанных объектов. Иерархия объектов системы представляется в виде дерева графа. Для проверки готовности каждого объекта можно использовать рекурсивный алгоритм обхода элементов иерархической структуры.
Для конструирования системы используем множество объектов с свойствами:
— свойство индикации готовности к работе.
Объекты могут содержать в своем составе другие объекты.
Основной объект (приложение) – это объект,являющийся корневым в дереве иерархии объектов. Иерархия объектов делиться на уровни. Корневой объект принадлежит первому уровню. Остальные объекты принадлежат уровню, номер которого совпадает расстоянием от корневого объекта на иерархическомграфе плюс 1.
№ | Объект | Пояснения |
1. | Основной объект (приложение) | Объект является корневым. Содержит 4 объекта второго уровня, 2 объекта третьего уровня и один объект простого третьего уровня Организует построение иерархии объектов. Выполняет проверку готовности объектов к работе. Класс: cl_application |
2. | Объект второго уровня | Определяет готовность к работе объекта. Класс: cl_2 |
3. | Простой объект третьего уровня | Определяет готовность к работе объекта. Класс: cl_p3 |
4. | Объект третьего уровня | Содержит объект четвертого уровня. Определяет готовность к работе объекта. Класс: cl_3 |
5. | Объект четвертого уровня | Определяет готовность к работе объекта. Класс: cl_4 |
Архитектура программы-системы
Иерархия объектов
Объект | Объекты в составе | Пояснения | Номер |
Объект приложение. В иерархии объектов является корневым. | |||
Второго уровня | 2 | ||
Второго уровня | 3 | ||
Второго уровня | 4 | ||
Второго уровня | 5 | ||
Ввода | Создается компилятором. Связан с другими объектами программы интерфейсом «cin» | ||
Вывода | Создается компилятором. Связан с другими объектами программы интерфейсом «cout» | ||
2 Имя: ob_1 | Третьего уровня | 6 | |
6 Имя: ob_2 | Четвертого уровня | 7 | |
7 Имя: ob_4 | |||
3 Имя: ob_3 | Простой, третьего уровня | 8 | |
8 Имя: ob_5 | |||
4 Имя: ob_6 | |||
5 Имя: ob_7 | Третьего уровня | 9 | |
9 Имя: ob_8 | Четвертого уровня | 10 | |
10 Имя: ob_4 |
Взаимодействие объектов
Все интерфейсы между объектами стандартные.
Алгоритм функционирования системы, решение задачи
Задача: формирование иерархии объектов
Имя объекта или пункт алгоритма | Предикат | Процедура | Номер перехода |
1 ob_application | Определение наименования ob_1. Определение головного объекта для ob_1. Определение наименования ob_3. Определение головного объекта для ob_3. Создание ob_6 и определение головного объекта. Определение наименования ob_6. Определение наименования ob_7. Определение головного объекта для ob_7. Определение наименования ob_2. Определение головного объекта для ob_2. Определение наименования ob_5. Определение головного объекта для ob_5. Определение наименования ob_8. Определение головного объекта для ob_8. |
Задача: опрос готовности объектов иерархии
Для решения задачи используется рекурсивный алгоритм обхода элементов иерархии.
Алгоритмреализованвметоде show_state_next ( cl_base * ob_parent )
Имя объекта или пункт алгоритма | Предикат | Процедура | Номер перехода |
1 ob_application | Проверка готовности объекта ob_parent. Объект готов к работе | Вывод сообщения на консоль: Объект «наименование объекта» готов к работе | 2 |
Объект не готов к работе | Вывод сообщения на консоль: Объект «наименование объекта» не готов к работе | 2 | |
2 | Если у объекта ob_parent нет подчиненных объектов | Æ | |
Начало цикла по подчиненным объектам объекта ob_parent | 3 | ||
3 | Цикл не завершен | Вызовметода show_state_next ( ссылка на очередной подчиненный объект ) | 3 |
Æ |
Задача: запуск функционирования системы
Имя объекта или пункт алгоритма | Предикат | Процедура | Номер перехода |
1 ob_application | Выполнение задачи опроса готовности объектов по иерархии с исходным аргументом ссылки на объект ob_application | Æ |
Схемы
Дата добавления: 2018-05-02 ; просмотров: 708 ; Мы поможем в написании вашей работы!
Понятие системы и конструкции. Их место в проектировании информационных систем
После прочтения комментариев к предыдущей статье Классификация конструкций: примеры и заблуждения, посвященной классификации конструкций, я понял, насколько разное представление мы имеем относительно термина конструкции. Когда я писал статью, мне казалось, что этот термин трактуется довольно просто. Но, почитав комментарии, понял, что стоит поговорить о нем отдельно.
Конструкция
Толковый словарь Ефремовой определяет два разных понятия, которые обозначаются одним термином конструкция:
Поскольку состав – это множество, то первое понятие переводится так: конструкция — это множество объектов, связанных между собой связями. При этом, судя по определению, объекты должны быть рукотворным и неживыми. То есть, нельзя представить Землю в виде конструкции, если не предположить, что ее сделали инопланетяне. Нельзя представить ДНК в виде конструкции, если только эта ДНК не создана кем-то. То есть, в определение конструкции надо добавить, что объекты рукотворные. Например, множество объектов: <фюзеляж, крылья, хвост>состоит из рукотворных объектов, и, потому, может называться конструкцией. Конструкцией под названием самолет. Замечу, что в данном контексте самолет – это не объект, а множество объектов <фюзеляж, крылья, хвост>. Можно назвать это множество самолет(к).
Сколько объектов может быть в конструкции? В определении нет ответа на этот вопрос. Но мы можем предположить, что их конечное число, большее одного, потому что в определении говорится о связях. Итого получилось: рукотворное множество объектов, созданное человеком, объекты объединены связями, множество конечное, количество элементов больше одного.
При этом нет обязательного условия, чтобы конструкция имела название, или явно был указал объект, чья конструкция рассматривается. Можно моделировать и безымянную конструкцию.
Второе понятие термина «конструкция» значит следующее: конструкция — это объект, который может быть представлен в виде множества объектов. Например, поскольку самолет как объект может быть представлен в виде множества объектов, состоящего из фюзеляжа, крыльев и хвоста, его также называют конструкцией. В данном тексте, чтобы отличить обозначение самолета как объекта от обозначения самолета как множества, можно написать: самолет(о) может быть представлен в виде множества объектов — самолета(к).
Любой объект может быть разделен на части. Неделимых объектов мы не знаем. То есть, любой объект можно назвать конструкцией? Нет. Потому что не всякий рукотворный объект можно поделить на рукотворные части. Например, отливка (болванка), являясь рукотворным объектом, не может быть поделена на рукотворные части. Поэтому болванку нельзя назвать конструкцией.
Разбирая термин «конструкция», мы обнаружили одну важную особенность языка: объект и его конструкция называются одним именем. То есть, самолет(о) и самолет(к) в быту называют одним именем: самолет. Понятно, что объект и множество объектов – это разные концепты. В словаре Ефремовой эти концепты различаются, но в быту название одно, и потому, люди часто путают их и не могут разделить эти два понятия, обозначенные одним термином. Та же проблема была в процессном подходе, в котором понятия функция, функциональная структура, сценарий и тд. назывались одним термином — процесс. Из-за этого многим аналитикам казалось, что функция и сценарий – одно и то же.
Путаница, которая возникает из-за того, что два понятия названы одним словом, проявляет себя в ответе на следующий вопрос: что такое тот или иной объект? Ответы можно разделить на два типа:
Другой пример: поезд – состав, сцепленных между собою железнодорожных вагонов, приводимых в движение локомотивным или моторным вагоном. В данном контексте дается определению поезду(к). Можно сказать, что поезд — это длинное транспортное средство для перевозки пассажиров или грузов по железной дороге. Это – определение поезда(о). Интересно, что в словарях можно найти определения как тем, так и другим понятиям.
В быту мы не замечаем разницы между такого рода определениями. Например, группе аналитиков показывается макет производственной линии. Каждый при этом может увидеть совершенно разные картины. Один увидит объект под названием «производственная линия», другой – конструкцию, имеющую то же название. Поскольку, объект и его конструкция – совершенно разные понятия, то увидят они совершенно разные вещи. До тех пор, пока они не договорятся о едином взгляде на этот макет, они будут говорить о разных объектах. Хорошо, если контекст заставит их сойтись на одной точке зрения. Однако, это происходит не всегда. Этап, на котором выясняется предмет обсуждения обычно пропускается. Из-за этого возникают ошибки в понимании. Та же проблема возникает, когда мы хотим строить онтологическую модель. Например, если мы хотим выяснить сложность конструкции самолета при помощи атрибута: «количество конструктивных элементов самолета», то надо найти объект в модели, которому приписать этот атрибут. Приписать его самолету(о) нельзя, потому что разделить самолет на части можно множеством способов. Поэтому, это атрибут должен быть отнесен ко множеству объектов, но не к объекту.
Система
Посмотрим, как справляется с данным терминологическим парадоксом системная инженерия. Системная инженерия дает определение системы так:
Если для конструкций отношение между объектом и его конструкцией называлось так: «конструкция объекта», то для обозначения отношения между объектом и его системой используется другой термин: «строение объекта». Например, строение человека связывает человека(о) с человеком(с). Кстати, интересно, почему нет термина «система объекта» по аналогии с термином «конструкцией объекта»?
Можно ли назвать системой объект, а не множество объектов? То есть можно ли применить термин система к объекту так же, как термин конструкция применить к объекту? Скорее всего, — можно. Например, говорят, что система обладает эмерджентностью. Формально этот тезис переводится так: свойства объекта, строение которого представлено в виде исследуемой системы, отличны от свойств элементов этой системы. Поскольку в данном контексте объект назван системой, то объект тоже можно назвать системой.
Поскольку любой объект может быть разделен на части, то любой объект может быть назван системой. Это отличает термин система от термина конструкция, потому что не любой объект может быть назван конструкцией.
Мне кажется, чтобы ликвидировать коллизии, которые могут возникнуть у инженера, читающего книги по системной инженерии, в словари стоит внести второе определение термина система по аналогии со вторым значением термина конструкция:
Можно ли распространить на системы тезис о том, что любой объект может иметь разные структуры в зависимости от наблюдателя? Да, можно. Мы прекрасно знакомы с двумя разными парадигмами строения человека, которые порождают разные структуры: внутреннее строение и внешнее строение человека.
В системной инженерии также существует требование, которое накладывает ограничения на множества возможных объектов. Речь об эмерджентности. Объект, чья структура представлена в виде системы, должен обладать свойствами, отличными от свойств элементов системы. При этом возникает два вопроса:
Обобщение понятия конструкция
Теперь попробуем обобщить понятие конструкция(к) и система(с) на более широкий класс объектов и множеств. В своей статье я именно это и хотел сделать. Видимо, без текущего вступления это было не понятно. Я ввел понятие обобщенной конструкции(к), которая отличается от общепринятого понятия конструкции следующим:
Получилась такая иерархия классов: Обобщенная конструкция – это самое широкое множество, подмножеством которого являются системы и конструкции.
Введение обобщенной конструкции понадобилось мне для приведения к единому виду всех структур, которые мы создаем для описания различных конструкций, а также для описания тех ограничений, которые возникают при упрощении этих структур.
Например, чаще всего, моделирование конструкций производится при помощи связей «часть-целое». При этом информацию о конструкции (средняя масса элементов конструкции, например) мы передаем в модель объекта, конструкцию которого мы моделируем. Ограничения такого способа моделирования в том, что мы не можем создать несколько различных конструкций одного объекта, будь то конструкций в разных парадигмах, будь то конструкций в одной парадигме, но отличающихся версиями.
Однажды мне была поставлена задача смоделировать различные версии конструкции одного космического аппарата. Версии существовали одновременно во времени и моделировали различные версии конструкторских решений. К тому же сами версии менялись во времени, потому что конструкторские решения эволюционировали с течением времени. Без введения понятия конструкция решить такую задачу было можно, но выглядело это очень странно. Похожая задача решалась мной при моделировании планов производства работ, которых одновременно было несколько версий: оптимистичный, пессимистичный и реальный. При этом план производства работ, в свою очередь, был частью другого плана производства работ. И таких этажей было 5. До ввода в модель объектов, моделирующих конструкции, моделирование выглядело так: множество связей «часть-целое», «раскрашенных» в разные цвета. «Красные» связи моделировали одну конструкцию объекта, «зеленые» — другую. «Цветов» было много и существовала проблема стыковки разных цветов. Фактически, эти «цвета» моделировали различные точки зрения на конструкцию объекта, не называя это явно. То же приходилось делать со свойствами объекта, которому были переданы свойства конструкции: у нас были «красные» значения свойств и «зеленые». Так мы выходили из положения до введения понятия «конструкция». Мне интересно, как моделируется подобный кейс в стандарте ИСО 15926?
Другой практический кейс: ЛЭП с одной стороны, может быть поделена на трассы, каждая трасса — на провода. С другой стороны, каждая трасса может быть поделена на участки трассы между опорами и тд.
Таким образом, ЛЭП можно разобрать на части разными способами. И каждый способ решает конкретную практическую задачу. Как в данном случае должен смоделировать эти конструкции аналитик, руководствуясь стандартом ИСО 15926?
Есть интересный прием деления одного и того же объекта на части разными способами. Этот прием работает, когда объекты, на которые мы делим объект, относятся к разным предметным областям. Например, один и тот же объект мы можем назвать предприятие, а можем назвать функция. Это две разные парадигмы представления одного и того же. Тогда функции мы делим отдельно, предприятие – отдельно. В принципе, если можно добавлять новые типы объектов, то та часть проблем, которая связана с моделированием объектов в разных парадигмах, закрывается этим способом.
Моделирование конструкций при помощи связей «часть-целое» довольно распространено, потому что сильно сокращает объем модели и упрощает алгоритмы работы с ней. Поэтому часто, аналитики используют такой способ моделирования. Однако, этот способ накладывает ограничения на количество одновременно существующих версий конструкций, заставляет все отрасли предприятия работать с одной моделью конструкций, даже, если для кого-то эта модель является контрпродуктивной. При этом, если речь идет о конструкции объектов, то разные отрасли предприятия еще могут как-то договориться, то при моделировании функциональных структур, подобная договоренность становится, на мой взгляд, невозможной. Поэтому, возвращаясь к стандарту ИСО 15926, боюсь предположить, что он был заточен для моделирования только двух точек зрения на происходящее и существующее. Для этого в нем есть два типа объектов: физические и функциональные. При этом каждый раз при моделировании двух точек зрения модельеру приходится делать непростой выбор между тем, что назвать физическим, а что назвать функциональным объектом. Потому что и та и другая конструкции могут одновременно оказаться функциональными, или одновременно физическими объектами. Например, участок ЛЭП между опорами – это физический, или функциональный объект? Можно сказать, что физический, но, если заказчик скажет, что функция этого участка – перенос энергии на расстояние, то участок ЛЭП между опорами станет функциональным объектом, и смоделировать две разные конструкции одной ЛЭП не удастся. Или, более очевидный пример: молекула водорода, с одной стороны, состоит из атомов (одна система), а, с другой стороны – из ядер и электронов (другая система). Понятно, что природа этих систем одинаковая – физическая. Как ИСО 15926 будет моделировать эти две разные физические конструкции?
Проблема с ООП программированием та же: конструкция в ООП моделируется при помощи агрегации объектов, фактически, связей «часть-целое» Я не могу представить себе в ООП объект, который может быть представлен в виде разных конструкций. Потому что ООП также заточен под моделирование конструкций, но только с одной точки зрения. В ООП нельзя построить даже двух разных конструкций одного объекта. Как в ООП смоделировать тот факт, что ЛЭП состоит из трасс и одновременно состоит из участков ЛЭП между опорами?
Место конструкции в процессе мышления
Еще несколько слов о месте конструкции в нашем мышлении, а, следовательно, моделировании. Есть два пути достижения понимания – синтез и анализ. Когда мы делаем анализ, мы представляем себе объекты в виде обобщенных конструкций, когда синтез, наоборот, обобщенные конструкции представляем в виде объектов. Совершая анализ, мы пытаемся понять, как устроен объект, совершая синтез, мы пытаемся упростить модель, генерализируя ее. Получается цепочка: …объект – его конструкция – объект (элемент этой конструкции) – конструкция объекта – объект (элемент этой конструкции) – конструкция объекта… Далее я не буду повторять «обобщенная», потому что буду подразумевать всегда этот класс конструкций. Начинать моделирование можно как с объекта, так и с конструкции. Двигаться можно как вниз, так и вверх по иерархии объектов, совершая анализ, или синтез. По-другому это можно представить, как приближение к объектам или удаление от них. Приближаясь, мы делаем анализ, делая описание более подробным, удаляясь – синтез, или обобщение. Довольно забавно, но в современных стандартах моделирования я много читал про декомпозицию, но очень мало про композицию. Если встречается что-то, посвященное композиции, об этом пишется непонятными словами, которые довольно сложно трактовать. Например, когда мы собираем статистику по операциям в соответствии с методологией Шухарта, мы получаем параметры объектов (функций), но сами объекты при этом не называем. Когда мы моделируем процессы и декомпозируем операции, почему-то мы не можем делать обратной операции – композиции процессов в операции. Или сам процесс описания предметной области почему-то назван «анализ». Но почему не «синтез»? На мой взгляд, аналитик занимается и тем и другим процессом: и синтезом, и анализом. Строя статистические отчеты, мы занимаемся синтезом, разбирая объекты на части, — анализом.
Но даже с анализом, который вроде, должен быть хорошо описан в стандартах, возникают сложности при реализации.
Конструкция должна помочь нам узнать об объекте что-то новое. Например, рассмотрим плоскую фигуру, частями которой тоже будут плоские фигуры. Возможность такого деления позволяет нам ввести понятие меры Жордана, которая, в свою очередь, позволяет нам ввести понятие площади. Благодаря делению объекта на себе подобные объекты, мы смогли ввести понятие меры. Таким образом, деление воды на воду позволяет нам узнать о воде что-то новое – ее объем. Поэтому деление воды на воду я бы тоже назвал конструкцией, а в определение конструкции зашил тезис о том, что она служит инструментом для достижения понимания.
Ограничения стандартов моделирования
Чего не хватает в стандартах моделирования? Прежде всего, описание класса задач, которые они решают. Стандарты хороши тем, что позволяют разным субъектам создать модель, понимаемую ими одинаково в рамках задач, которые они решают, автоматизировать решения этих задач, наладить обмен информацией между разными информационными системами в рамках решаемых задач и тд. Что плохого в них? Плохо, что в стандартах плохо, а зачастую никак не описаны границы их применения. Поэтому стандарты, заточенные под решение одного класса задач, стремятся распространить на решение другого класса. Если круг задач очерчен, то попытка решить задачу, выходящую за этот круг, должна приводить к изменению стандарта, или отказу от него.
Сейчас становится популярна задача создания единой информационной модели на основе единого онтологического базиса. При этом в качестве основы часто берут какой-то отраслевой стандарт и пытаются отмаппить решение всех задач на этот стандарт (то есть пытаются использовать его как базис, чтобы потом расширить). Но это невозможно, хотя бы потому что разные отрасли деятельности человека производят деление объектов разным способом. Поэтому добавление в единую информационную модель новых знаний связано с созданием новых конструкций и новых объектов, которые надо маппить на уже существующие объекты и конструкции.