Форум Сообщества Аналитиков

Общий раздел => Для всех => Тема начата: zzz_ от 30 Мая 2012, 19:18:34

Название: Физическая модель модулей программного средства
Отправлено: zzz_ от 30 Мая 2012, 19:18:34
Добрый вечер! Была поставлена задача спроектировать программное средство. Построил концептуальную модель, логическую модель, осталось физическую. Что является физической моделью в нотации UML? Прочитал, что  компонентная диаграмма и диаграмма развертывания, но что является компонентами системы? Не могли бы пояснить и по возможности привести пример с конкретным программным средство, пусть и простым.
Название: Re: Физическая модель модулей программного средства
Отправлено: Galogen от 30 Мая 2012, 21:52:12
zzz_
Существует некая идея - абстракция в голове, она постепенно трансформируется в концептуальную модель, та в свою очередь в логическую, т.е. реляционную, иерархическую или сетевую, а может еще куда, физическая- это привязка к конкретной системе реализации, в ее терминах и особенностях, однако реально можно спускаться дальше на уровень вычислительного процесса, электронного процесса и далее.
Все что Вы описали - это три уровня представления данных, три уровня в проектировании данных.
UML - визуальных ОО язык моделирования, соответственно его задача описать систему с разных представлений и перспектив.

Физическое представление в UML это все-таки артефакты, а также реальное (физическое воплощение элементов системы). Типично это диаграмма размещения и ее расширения. Но можно физику воплотить и в другие диаграммы
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 30 Мая 2012, 22:21:25
Тогда у меня возникает вопрос, что тогда было нужно в логической модели? Использовал Class Diagram
Просто термины логическая и физическая модель я думал более применимы к БД, с которой моя система почти ничего не имеет общего.
Название: Re: Физическая модель модулей программного средства
Отправлено: Galogen от 31 Мая 2012, 08:52:25
Тогда у меня возникает вопрос, что тогда было нужно в логической модели? Использовал Class Diagram
Просто термины логическая и физическая модель я думал более применимы к БД, с которой моя система почти ничего не имеет общего.
Да в базах принято различать эти три уровня: инфологическая модель, даталогическая модель и физическая. Логическая модель - будь то с приставкой инфо или дата - абстрагируется от конкретных средств реализации, физическая ориентирована на конкретику СУБД. Хотя можео и другие иерархию выставить: концептуальная модель - некая абсракция понятий предметной области, логическая модель - что-то связанное с конкретной моделью данные типа реляционной, а физическая может вообще базироваться на понятиях способов хранения и манипуляции.

В UML есть другая концепция, например проявленная в MDA, те же самые диаграммы могут отражать разные уровни представления.
ВМ - бизнес-модель. модель объектов предметной области либо некая зарисовка концепция
PIM - платформонезависимая модель
PSM - платформозависимая модель

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

В Вашем случае - это диаграмма размещения: указываете узлы и связи, размещение процессов, девайсов и т.п. и какие артефакты где лежат находятся размещены. Это статика, но еще возможно нужна модель рантайма, как физически воплощенные элементы взаимодействуют друг с другом. По -моему ф.м. отличается сильно именно конкретикой, нагрузкой, значениями парметров, и другой конкретной атрибутикой
Название: Re: Физическая модель модулей программного средства
Отправлено: Thyestes от 31 Мая 2012, 10:43:58
Цитировать
Название "физическая модель" в терминологии ООАП и языка UML отличается от общепринятой трактовки этого термина в общей классификации моделей систем. В последнем случае под физической моделью системы понимают некоторую материальную конструкцию, обладающую свойствами подобия с формой оригинала. Примерами таких моделей могут служить модели технических систем (самолетов, кораблей), архитектурных сооружений (зданий, микрорайонов). Что касается использования этого термина в ООАП и языке UML, то здесь физическая модель отражает компонентный состав проектируемой системы с точки зрения ее реализации на некоторой технической базе и вычислительных платформах конкретных производителей.
Название: Re: Физическая модель модулей программного средства
Отправлено: Thyestes от 31 Мая 2012, 10:49:22
На рисунке  показаны отношения между различными видами диаграмм UML. Указатели стрелок можно интерпретировать как отношение "является источником входных данных для..." (например, диаграмма прецедентов является источником данных для диаграмм видов деятельности и последовательности).

Пример диаграммы развертывания - во вложении.
Название: Re: Физическая модель модулей программного средства
Отправлено: Denis Beskov от 31 Мая 2012, 12:03:41
Компонентами системы являются исполнимые программные модули (.exe), скрипты (.bat), библиотеки (.dll), файлы конфигураций (.ini, .xml), файлы баз данных.

http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 31 Мая 2012, 14:02:39
Спасибо, т.е. в физической модели я указываю размещение всего, плюс подгружаемые файлы библиотеки.
А в логической тогда что?
Название: Re: Физическая модель модулей программного средства
Отправлено: Galogen от 31 Мая 2012, 16:14:51
Компонентами системы являются исполнимые программные модули (.exe), скрипты (.bat), библиотеки (.dll), файлы конфигураций (.ini, .xml), файлы баз данных.

http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2
Насколько мне известно - это называют артефактами. Понятно, что можно назвать хоть агрегатами, но я про UML.

http://www.uml-diagrams.org/component-diagrams.html

http://www.uml-diagrams.org/deployment-diagrams-overview.html
Название: Re: Физическая модель модулей программного средства
Отправлено: Denis Beskov от 31 Мая 2012, 17:29:38
Спасибо, т.е. в физической модели я указываю размещение всего, плюс подгружаемые файлы библиотеки.
А в логической тогда что?
Классы, процедуры, интерфейсы, подпрограммы, структуры.
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 31 Мая 2012, 20:07:08
А разве это не слишком быстро к реализации? Чем тогда она отличается от физической? Я запутался, коллеги.
Название: Re: Физическая модель модулей программного средства
Отправлено: Denis Beskov от 31 Мая 2012, 20:23:43
Чем файлы отличаются от нефайлов?

Чем чертёж дома (набор классов и интерфейсов) отличается от дома (файлы)?
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 31 Мая 2012, 20:32:10
Как я написал логическую модель, перечислил классы которые у меня есть, их атрибуты и методы, а также связи между ними. Это похоже на правду?
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 31 Мая 2012, 20:39:26
Атрибуты вплоть до, к примеру такого, (StreamWriter sw)- поток для записи в файл.
Название: Re: Физическая модель модулей программного средства
Отправлено: Denis Beskov от 01 Июня 2012, 12:41:35
Как я написал логическую модель, перечислил классы которые у меня есть, их атрибуты и методы, а также связи между ними. Это похоже на правду?
Да. Написал на доске маркером. На бумаге ручкой.
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 01 Июня 2012, 18:13:11
А как в диаграмме классов обозначит считывание данных из БД, подключение к БД?
Название: Re: Физическая модель модулей программного средства
Отправлено: Galogen от 01 Июня 2012, 19:07:41
А как в диаграмме классов обозначит считывание данных из БД, подключение к БД?
Никак, либо ввести интерфейсы или граничные классы. Вообще на ДК демонстрировать элементы системы не корректно. БД - это физический артефакт
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 01 Июня 2012, 19:21:30
Спасибо большое за ответ, очень полезный
Название: Re: Физическая модель модулей программного средства
Отправлено: Galogen от 01 Июня 2012, 19:59:01
А как в диаграмме классов обозначит считывание данных из БД, подключение к БД?
Реально я бы ввел класса Response и Request. Один отвечает за отправку запроса, другой за получение  ответа. Но сами по себе эти классы пассивные, все равно нужен какот-то контролер - менеджер соединения, какойто датасоурс там или датасет
Название: Re: Физическая модель модулей программного средства
Отправлено: Denis Beskov от 01 Июня 2012, 21:05:29
А как в диаграмме классов обозначит считывание данных из БД, подключение к БД?
Посмотрите шаблоны проектирования, относящиеся к работе с данными: http://martinfowler.com/eaaCatalog/

Например, http://martinfowler.com/eaaCatalog/dataMapper.html
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 01 Июня 2012, 21:17:29
Маленько Вас не понял с шаблоном (работаю в Rational ROse)
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 01 Июня 2012, 21:23:27
Сделал так, у меня в классе есть метод, отвечающий за считывание данных (с Бд, вероятно, я преувеличил, так как это файл Excel, коим он не является.) с файла. А в описании модели указал это. Так можно?
Название: Re: Физическая модель модулей программного средства
Отправлено: zzz_ от 01 Июня 2012, 21:39:06
Я конечно не прав, что пишу несколько вопросов в одной теме. Но тут следующий. Разработка ведется на C#, который подключает множество библиотек для каждого класса, их все нужно отобразить в физ. модели?