Диплом: Автоматизация "личного кабинета" консультанта по недвижимости (на примере организации Росинформ)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
33
ГЛАВА 2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ
В области создания и эксплуатации программных систем
основополагающими методиками и концепциями, обеспечивающими
интегрированный взгляд на сложный комплекс вопросов, являются
представления об архитектуре и стратегии информационных технологий.
Действительно, развитие информационных технологий привело к
возникновению нового типа бизнеса – электронного, и поставило новые задачи:
обеспечить интеграцию отдельных компонентов информационных систем в
рамках одного предприятия, а также взаимодействие информационных систем
разных организаций. Практически ни в одной отрасли не удается решить все
задачи путем внедрения одной, даже очень мощной, системы управления. Так
что наличие нескольких систем от разных поставщиков стало правилом, а не
исключением. Появляется задача оптимального выбора таких компонент и
построения необходимой для их работы инфраструктуры.
Это происходит в условиях, когда мы наблюдаем растущую сложность
технологических решений, необходимость интеграции большого количества
технологий с целью обеспечения растущих потребностей бизнеса, государства
и общества в целом – они во все большей степени полагаются на технологии в
своей повседневной деятельности. Такая сложность часто приводит к
катастрофическому увеличению количества неудач в проектах, связанных с
внедрением информационных систем. По оценкам различных консалтинговых
компаний, примерно 50% ИТ-проектов в различных отраслях заканчиваются не
так, как запланировано, а в государственном секторе этот процент достигает
70%. Из этого количества примерно треть неудач связана с проблемами
проектирования архитектуры.
При этом экспоненциально растущая сложность задачи развития
информационных систем предприятий больше не может решаться за счет
механического увеличения персонала информационных технологий. По
данным аналитической компании Butler Group, крупная организация
34
эксплуатирует в среднем около 40 критически важных прикладных систем.
Известен и такой факт. Служба ИТ одного из крупнейших российских банков
поддерживает работу около 300 различных прикладных систем. Наличие
нескольких сотен прикладных систем – скорее правило, чем исключение для
органов власти регионального уровня. Можно ли эффективно управлять всем
этим хозяйством, не имея целостного архитектурного взгляда?
На сегодняшний день считается, что архитектура программной системы
наиболее оптимально может быть описана с помощью пяти взаимосвязанных
видов или представлений, каждый из которых является одной из возможных
проекций организации и структуры системы и заостряет внимание на
определенном аспекте ее функционирования:
1. вид с точки зрения прецедентов (use case view) охватывает
прецеденты, которые описывают поведение системы, наблюдаемое конечными
пользователями, аналитиками и тестерами. Этот вид специфицирует не
истинную организацию программной системы, а те движущие силы, от которых
зависит формирование системной архитектуры;
2. вид с точки зрения проектирования (design view) охватывает
классы, интерфейсы и кооперации, формирующие словарь задачи и ее решения.
Этот вид подчеркивает прежде всего функциональные требования,
предъявляемые к системе, то есть те услуги, которые она должна предоставлять
конечным пользователям;
3. вид с точки зрения процессов (process view) охватывает нити и
процессы, формирующие механизмы параллелизма и синхронизации в системе.
Этот вид описывает главным образом производительность, масштабируемость
и пропускную способность системы.
4. вид с точки зрения реализации (implementation view) охватывает
компоненты и файлы, используемые для сборки и выпуска конечного
программного продукта. Этот вид предназначен в первую очередь для
управления конфигурацией версий системы, составляемых из независимых (до
35
некоторой степени) компонентов и файлов, которые могут по-разному
объединяться между собой;
5. вид с точки зрения развертывания (deployment view) охватывает
узлы, формирующие топологию аппаратных средств системы, на которой она
выполняется. В первую очередь он связан с распределением, поставкой и
установкой частей, составляющий физическую систему.
Каждый из перечисленных видов может считаться вполне
самостоятельным, так что члены группы проекта, могут сосредоточиться на
изучении только тех аспектов архитектуры, которые непосредственно их
касаются. Правда, нельзя забывать о том, что эти виды взаимодействуют друг с
другом, что неудивительно, так как они представляют разные взгляды на одну
систему. Например, узлы вида с точки зрения развертывания содержат
компоненты, описанные для вида сточки зрения реализации, а те в свою
очередь представляют физическое воплощение классов, интерфейсов,
коопераций и активных классов из видов с точки зрения проектирования и
процессов
В этой главе приведено описание результатов проектирования
архитектуры системы. В ходе логического проектирования (Глава 2) выделены
основные объекты будущей системы и связи между ними. На этапе
физического проектирования разработаны детальные инструкции, которые
можно использовать при реализации системы автоматизации.
2.1. Физическая модель
Все рассмотренные ранее диаграммы отражали концептуальные и
логические аспекты построения модели системы. Особенность логического
представления заключается в том, что оно оперирует понятиями, которые не
имеют материального воплощения. Другими словами, различные элементы
логического представления, такие как классы, ассоциации, состояния,
сообщения, не существуют материально или физически. Они лишь отражают
36
понимание статической структуры той или иной системы или динамические
аспекты ее поведения.
Для создания конкретной физической системы необходимо реализовать
все элементы логического представления в конкретные материальные
сущности. Для описания таких реальных сущностей предназначен другой
аспект модельного представления, а именно – физическое представление
модели. В контексте языка UML это означает совокупность связанных
физических сущностей, включая программное и аппаратное обеспечение.
Физическая система (physical system) — реально существующий
прототип модели системы.
С тем чтобы пояснить отличие логического и физического
представлений, необходимо в общих чертах рассмотреть процесс разработки
программной системы. Ее исходным логическим представлением могут
служить структурные схемы алгоритмов и процедур, описания интерфейсов и
концептуальные схемы баз данных. Однако для реализации этой системы
необходимо разработать исходный текст программы на языке
программирования. При этом уже в тексте программы предполагается
организация программного кода, определяемая синтаксисом языка
программирования и предполагающая разбиение исходного кода на отдельные
модули.
Однако исходные тексты программы еще не являются окончательной
реализацией проекта, хотя и служат фрагментом его физического
представления. Программная система может считаться реализованной в том
случае, когда она будет способна выполнять функции своего целевого
предназначения. А это возможно, только если программный код системы будет
реализован в форме исполняемых модулей, библиотек классов и процедур,
стандартных графических интерфейсов, файлах баз данных. Именно эти
компоненты являются базовыми элементами физического представления
системы в нотации языка UML.
37
Полный проект программной системы представляет собой совокупность
моделей логического и физического представлений, которые должны быть
согласованы между собой. В языке UML для физического представления
моделей систем используются так называемые диаграммы реализации, которые
включают в себя две отдельные диаграммы: диаграмму компонентов и
диаграмму развертывания.
2.2. Диаграммы компонентов
Диаграмма компонентов, в отличие от ранее рассмотренных диаграмм,
описывает особенности физического представления системы и отражает
архитектурные решения относительно программных модулей. Диаграмма
компонентов позволяет определить архитектуру разрабатываемой системы,
установив зависимости между программными компонентами, в роли которых
может выступать исходный, бинарный и исполняемый код. Во многих средах
разработки модуль или компонент соответствует файлу. Пунктирные стрелки,
соединяющие модули, показывают отношения взаимозависимости,
аналогичные тем, которые имеют место при компиляции исходных текстов
программ. Основными графическими элементами диаграммы компонентов
являются компоненты, интерфейсы и зависимости между ними.
Диаграмма компонентов обеспечивает согласованный переход от
логического представления к конкретной реализации проекта в форме
программного кода. Одни компоненты могут существовать только на этапе
компиляции программного кода, другие – на этапе его исполнения. Диаграмма
компонентов отражает общие зависимости между компонентами, рассматривая
последние в качестве отношений между ними.
Компоненты
Для представления физических сущностей в языке UML применяется
специальный термин – компонент.
38
Компонент (component) — физически существующая часть системы,
которая обеспечивает реализацию классов и отношений, а также
функционального поведения моделируемой программной системы.
Компонент предназначен для представления физической организации
ассоциированных с ним элементов модели. Дополнительно компонент может
иметь текстовый стереотип и помеченные значения, а некоторые компоненты –
собственное графическое представление. Компонентом может быть
исполняемый код отдельного модуля, командные файлы или файлы,
содержащие интерпретируемые скрипты.
Компонент служит для общего обозначения элементов физического
представления модели и может реализовывать некоторый набор интерфейсов.
Для графического представления компонента используется специальный
символ – прямоугольник со вставленными слева двумя более мелкими
прямоугольниками (Рисунок 7.) Внутри объемлющего прямоугольника
записывается имя компонента и, возможно, дополнительная информация. Этот
символ является базовым обозначением компонента в языке UML.
Рисунок 7. Графическое изображение компонента
Графическое изображение компонента ведет свое происхождение от
обозначения модуля программы, применявшегося некоторое время для
отображения особенностей инкапсуляции данных и процедур.
Модуль (module) — часть программной системы, требующая памяти для
своего хранения и процессора для исполнения.
39
В этом случае верхний маленький прямоугольник ассоциировался с
данными, которые реализует этот компонент (иногда он изображается в форме
овала). Нижний маленький прямоугольник ассоциировался с операциями или
методами, реализуемыми компонентом. В простых случаях имена данных и
методов записывались явно в маленьких прямоугольниках, однако в языке
UML они не указываются.
Поскольку компонент как элемент модели может иметь различную
физическую реализацию, иногда его изображают в форме специального
графического символа, иллюстрирующего конкретные особенности
реализации. Строго говоря, эти дополнительные обозначения не
специфицированы в нотации языка UML. Однако, удовлетворяя общим
механизмам расширения языка UML, они упрощают понимание диаграммы
компонентов, существенно повышая наглядность графического представления.
Для более наглядного изображения компонентов были предложены и
стали общепринятыми следующие графические стереотипы (Рисунок 8):
- Во-первых, стереотипы для компонентов развертывания, которые
обеспечивают непосредственное выполнение системой своих функций. Такими
компонентами могут быть динамически подключаемые библиотеки Web-
страницы на языке разметки гипертекста и файлы справки.
- Во-вторых, стереотипы для компонентов в форме рабочих
продуктов. Как правило – это файлы с исходными текстами программ.
Рисунок 8. Варианты графического изображения компонентов
на диаграмме компонентов
40
Эти элементы иногда называют артефактами, подчеркивая при этом их
законченное информационное содержание, зависящее от конкретной
технологии реализации соответствующих компонентов. Более того,
разработчики могут для этой цели использовать самостоятельные обозначения,
поскольку в языке UML нет строгой нотации для графического представления
артефактов.
Другой способ спецификации различных видов компонентов —
указание текстового стереотипа компонента перед его именем. В языке UML
для компонентов определены следующие стереотипы:
- <<file>> (файл) – определяет наиболее общую разновидность
компонента, который представляется в виде произвольного физического файла.
- <<executable>> (исполнимый) – определяет разновидность
компонента-файла, который является исполнимым файлом и может
выполняться на компьютерной платформе.
- <<document>> (документ) – определяет разновидность
компонента-файла, который представляется в форме документа произвольного
содержания, не являющегося исполнимым файлом или файлом с исходным
текстом программы.
- <<library>> (библиотека) – определяет разновидность компонента-
файла, который представляется в форме динамической или статической
библиотеки.
- <<source>> (источник) – определяет разновидность компонента-
файла, представляющего собой файл с исходным текстом программы, который
после компиляции может быть преобразован в исполнимый файл.
- <<table>> (таблица) – определяет разновидность компонента,
который представляется в форме таблицы базы данных.
Допустимо предлагагать собственные графические стереотипы для
изображения тех или иных типов компонентов.
41
Интерфейсы
Следующим графическим элементом диаграммы компонентов являются
интерфейсы. В общем случае интерфейс графически изображается
окружностью, которая соединяется с компонентом отрезком линии без стрелок.
При этом имя интерфейса, которое рекомендуется начинать с заглавной буквы
"I", записывается рядом с окружностью. Семантически линия означает
реализацию интерфейса, а наличие интерфейсов у компонента означает, что
данный компонент реализует соответствующий набор интерфейсов .
Кроме того, интерфейс на диаграмме компонентов может быть
изображен в виде прямоугольника класса со стереотипом << interface>> и
секцией поддерживаемых операций. Как правило, этот вариант обозначения
используется для представления внутренней структуры интерфейса.
При разработке программных систем интерфейсы обеспечивают не
только совместимость различных версий, но и возможность вносить
существенные изменения в одни части программы, не изменяя другие.
Различают два способа связи интерфейса и компонента. Если компонент
реализует некоторый интерфейс, то такой интерфейс называют
экспортируемым или поддерживаемым, поскольку этот компонент
предоставляет его в качестве сервиса другим компонентам. Если же компонент
использует некоторый интерфейс, который реализуется другим компонентом,
то такой интерфейс для первого компонента называется импортируемым.
Особенность импортируемого интерфейса состоит в том, что на диаграмме
компонентов это отношение изображается с помощью зависимости.
Зависимости между компонентами
Отношение зависимости служит для представления факта наличия
специальной формы связи между двумя элементами модели, когда изменение
одного элемента модели оказывает влияние или приводит к изменению другого
элемента модели. Отношение зависимости на диаграмме компонентов
изображается пунктирной линией со стрелкой, направленной от клиента или
зависимого элемента к источнику или независимому элементу модели.
42
Зависимости могут отражать связи отдельных файлов программной
системы на этапе компиляции и генерации объектного кода. В других случаях
зависимость может указывать на наличие в независимом компоненте описаний
классов, которые используются в зависимом компоненте для создания
соответствующих объектов. Применительно к диаграмме компонентов
зависимости могут связывать компоненты и импортируемые этим компонентом
интерфейсы, а также различные виды компонентов между собой.
В этом случае рисуют стрелку от компонента-клиента к
импортируемому интерфейсу. Наличие такой стрелки означает, что компонент
не реализует соответствующий интерфейс, а использует его в процессе своего
выполнения. При этом на этой же диаграмме может присутствовать и другой
компонент, который реализует этот интерфейс. Отношение реализации
интерфейса обозначается на диаграмме компонентов обычной линией без
стрелки.
Так, например, изображенный ниже фрагмент диаграммы компонентов
представляет информацию о том, что компонент с именем Control зависит от
импортируемого интерфейса IDialog, который, в свою очередь, реализуется
компонентом с именем DataBase . При этом для второго компонентa этот
интерфейс является экспортируемым. Изобразить связь второго компонентa
DataBase с этим интерфейсом в форме зависимости нельзя, поскольку этот
компонент реализует указанный интерфейс.
На диаграмме компонентов могут быть также представлены отношения
зависимости между компонентами и реализованными в них классами. Эта
информация имеет значение для обеспечения согласования логического и
физического представлений модели системы. Разумеется, изменения в
структуре описаний классов могут привести к изменению этой зависимости.
Ниже приводится фрагмент зависимости подобного рода, когда исполнимый
компонент Control .exe зависит от соответствующих классов.
В этом случае из диаграммы компонентов не следует, что классы
реализованы данным компонентом. Если требуется подчеркнуть, что

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)