- •Содержание
- •7. Типовые решения для кис 83
- •1.Архитектура корпоративных информационных систем
- •1.1.Информационная система и ее составляющие
- •1.2.Корпорация и корпоративная сеть
- •1.3.Архитектура корпоративной сети
- •1.4.Архитектуры Клиент-Сервер и Internet-Intranet
- •2.Методы проектирования корпоративных информационных систем
- •2.1.Этап системного анализа и проектирования. Промлемы и особенности проектирования кис
- •2.2.Кис как объект проектирования
- •2.3.Методы и средства проектирования кис
- •3.Кис и совершенствование управления предприятием
- •3.1.Понятие и назначение кис
- •3.2.Корпоративная ис как модель бизнеса
- •3.3.Необходимость использования кис. Оценка эффективности кис. Анализ «Затраты-Выгоды»
- •4.Классификации кис
- •4.1.Классификация по признаку структурированности задач
- •4.2.Классификация по функциональному признаку
- •4.3.Дополнительные классификации ис
- •5.Общая харктеристика и структура erp-систем
- •5.1.Термины и определения
- •5.2.Общая характеристика erp систем
- •5.3.Управление финансами
- •5.4.Управление производством
- •5.5.Планирования материальных потребностей (mrp)
- •5.6.Планирования материальных потребностей (mrp II)
- •6.Разработка и проектирование автоматизированного рабочего места (арм)
- •6.1.Определение, назначение и необходимость разработки арм
- •6.2.Существующие арм в управлении
- •6.3.Принципы построения и этапы проектирования арм
- •6.4.Классификация арм, круг пользователей арм и их информационных потребностей
- •6.5.Состав задач и информационное обеспечение арм
- •6.6.Основные требования к разработке программного обеспечения для арм, структура и состав комплекса технических средств для функционирования арм
- •7.Типовые решения для кис
- •7.1.Общие требования для выбираемой кис
- •7.2.Подсистемы кис
- •Литература
2.2.Кис как объект проектирования
Когда говорят о КИС, то подразумевают системы для крупных, территориально распределенных организаций, обычно имеющих несколько уровней управления. Обязательным свойством КИС является ее системность, то есть понимание КИС как объекта, имеющего новое системное свойство, которым не обладают его отдельные компоненты.
Под бизнес-процессом будем понимать цепочку работ, которые заканчиваются значимым для клиента и/или организации результатом.
Компоненты КИС предназначены для автоматизации большей части бизнес-процессов, которые в любой организации можно разделить на две группы:
основные бизнес-процессы (бизнес-процессы, которые дают результат для клиента);
вспомогательные бизнес-процессы (бизнес-процессы, дающие результат для основного бизнес-процесса или организации).
В большинстве случаев основные бизнес-процессы в первом приближении идентичны для организаций, принадлежащих одной отрасли (например, нефтепереработка для НПЗ, продажи для торговых организаций), или вообще являются уникальными (например, трубопроводный транспорт нефти, транспорт газа). Для автоматизации таких процессов существуют отраслевые решения (например, SCADA системы диспетчерского управления, системы для химического производства, системы для транспортных организаций) или специально разработанные под заказ системы (например, система управления поставками газа).
Вспомогательные же бизнес-процессы практически идентичны на верхнем уровне абстракции во всех организациях (например, бухгалтерия, логистика, склад, кадры и т.п.), а существующие различия проявляются на нижних уровнях детализации. Такие бизнес-процессы очень хорошо изучены и формализованы. Существует большое количество систем для их автоматизации - от небольших узконаправленных систем (1С-бухгалтерия, БОСС-Кадровик и др.), до комплексных систем класса ERP (SAP/R3, Oracle Applications и др.).
Таким образом, КИС должна включать в себя компоненты, автоматизирующие как основные, так и вспомогательные бизнес-процессы. Автоматизируя бизнес-процессы по отдельности, не принимая во внимание интересы всей организации, не соблюдая системотехнические принципы, в конце концов, можно прийти к "лоскутной" автоматизации, которая будет в дальнейшем тормозить процесс автоматизации и вести к неоправданно значительным затратам. Только объединив компоненты в единое целое, можно получить систему, обладающую свойствами КИС, и действительно полезную организации.
2.3.Методы и средства проектирования кис
При проектировании программного обеспечения используется несколько методов. Важнейшими являются структурный и объектно-ориентированный методы, которые, однако, не стоит противопоставлять - каждый из них на различных этапах анализа и проектирования должен последовательно дополнять друг друга.
Структурный метод представляет традиционный подход к созданию программного обеспечения. Основным строительным блоком является процедура или функция, а внимание уделяется, прежде всего, вопросам передачи управления и декомпозиции больших алгоритмов на меньшие. Но, к сожалению, системы не слишком легко адаптируются. При изменении требований или увеличении размера приложения (что происходит нередко) сопровождать их становится сложнее.
Однако структурный метод является чрезвычайно удобным на этапе анализа и проектирования - поскольку аналитики имеют дело с бизнес-процессами, по сути, являющимися функциями или группами функций.
Сущность структурного подхода к разработке КИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс декомпозиции (разбиения) продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны.
Правильная декомпозиция позволяет преодолеть сложность разработки сложных систем. В данном случае под правильной декомпозицией понимают такое разбиение, при котором:
количество связей между отдельными подсистемами должно быть минимально;
связность отдельных частей внутри каждой подсистемы должна быть максимальной.
Структура системы должна быть таковой, чтобы взаимодействия между ее подсистемами укладывались в следующие установленные стандартами ограничения:
каждая подсистема должна инкапсулировать свое содержание (скрывать его от других подсистем). Это позволяет рассматривать структуру каждой подсистемы независимо от других подсистем;
каждая подсистема должна иметь четко определенный интерфейс с другими подсистемами. Интерфейсы позволяют строить систему более высокого уровня, рассматривая каждую подсистему, как единое целое и игнорируя ее внутреннее устройство.
Все наиболее распространенные методологии структурного подхода базируются на ряде общих принципов [4]. В качестве базовых принципов используются:
принцип "разделяй и властвуй" - принцип решения сложных проблем путем их разбиения на множество меньших независимых задач, легких для понимания и решения;
принцип иерархического упорядочивания - принцип организации составных частей проблемы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне;
принцип абстрагирования - заключается в выделении существенных аспектов системы и отвлечения от несущественных;
принцип формализации - заключается в необходимости строгого методического подхода к решению проблемы;
принцип непротиворечивости - заключается в обоснованности и согласованности элементов;
принцип структурирования данных - заключается в том, что данные должны быть структурированы и иерархически организованы.
В структурном анализе используются такие методики, как: DFD (Data Flow Diagrams) диаграммы потоков данных; ERD (Entity-Relationship Diagrams) диаграммы "сущность-связь;SADT (Structured Analysis and Design Technique) модели и соответствующие функциональные диаграммы.
.Объектно-ориентированный метод является наиболее современным методом разработки программного обеспечения. Здесь в качестве основного строительного блока выступает объект или класс. В самом общем смысле объект - это сущность, обычно извлекаемая из словаря предметной области или решения, а класс является описанием множества однотипных объектов. Каждый объект обладает идентичностью (его можно поименовать или как-то по-другому отличить от прочих объектов), состоянием (обычно с объектом бывают связаны некоторые данные) и поведением (с ним можно что-то делать или он сам может что-то делать с другими объектами).
Принципиальное различие между структурным и объектно-ориентированным подходом заключается в способе декомпозиции системы. Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира. Понятие "объект" впервые было использовано около 30 лет назад в технических средствах при попытках отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно-ориентированной архитектурой также тесно связаны объектно-ориентированные операционные системы. Однако наиболее значительный вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования: Simula, Smalltalk, C++, Object Pascal. На объектный подход оказали влияние также развивавшиеся достаточно независимо методы моделирования баз данных, в особенности подход "сущность-связь". Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными се элементами являются: абстрагирование, инкапсуляция, модульность, иерархия. Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными: типизация, параллелизм, устойчивость.
Абстрагирование — это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют его концептуальные границы относительно дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.
Инкапсуляция — это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение, от внутренней реализации объекта. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого класса, скрыты от внешней среды.
Абстрагирование и инкапсуляция являются взаимодополняющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция (или, иначе, ограничение доступа) не позволяет объектам-пользователям различать внутреннее устройство объекта.
Модульность — это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
Иерархия — это ранжированная или упорядоченная система абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один класс использует структурную или функциональную часть соответственно одного или нескольких других классов), а иерархии объектов - агрегация.
Типизация — это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов (или сильно сужающее ее возможность). Типизация позволяет защититься от использования объектов одного класса вместо другого или, по крайней мере, управлять таким использованием.
Параллелизм — свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
Устойчивость — свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Основными понятиями объектно-ориентированного подхода являются объект и класс.
Объект определяется как осязаемая реальность — предмет или явление, имеющее четко определяемое поведение. Объект обладает состоянием, поведением и индивидуальностью; структура и поведение схожих объектов определяют общий для них класс. Термины "экземпляр класса" и "объект” являются эквивалентными. Состояние объекта характеризуется перечнем всех возможных (статических) свойств данного объекта и текущими значениями (динамическими) каждого из этих свойств. Поведение характеризует воздействие объекта на другие объекты и наоборот относительно изменения состояния этих объектов и передачи сообщений. Иначе говоря, поведение объекта полностью определяется его действиями.
Индивидуальность — это свойства объекта, отличающие его от всех других объектов. Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называется операцией. Как правило, в объектных и объектно-ориентированных языках операции, выполняемые над данным объектом, называются методами и являются составной частью определения класса.
Класс — это множество объектов, связанных общностью структуры и поведения. Любой объект является экземпляром класса. Определение классов и объектов — одна из самых сложных задач объектно-ориентированного проектирования.
Следующую группу важных понятий объектного подхода составляют наследование и полиморфизм. Понятие полиморфизма может быть интерпретировано, как способность класса принадлежать более чем одному типу. Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов.
Объектно-ориентированная система изначально строится с учетом ее эволюции. Наследование и полиморфизм обеспечивают возможность определения новой функциональности классов с помощью создания производных классов-потомков базовых классов. Потомки наследуют характеристики родительских классов без изменения их первоначального описания и добавляют при необходимости собственные структуры данных и методы. Определение производных классов, при котором задаются только различия или уточнения, в огромной степени экономит время и усилия при производстве и использовании спецификаций и программного кода.
Важным качеством объектного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации. Требование согласованности моделей выполняется благодаря возможности применения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы.
Основным средством для решения задач объектно-ориентированного моделирования систем является унифицированный язык моделирования UML объявленный в 1997 году промышленным стандартом.
В рамках языка UML все представления о модели сложной системы фиксируются в виде специальных графических конструкций, получивших название диаграмм. В терминах языка UML используются чаще всего следующие виды диаграмм:
Диаграмма вариантов использования, отображающие взаимодействие между вариантами использования, представляющими функции системы, и действующими лицами, представляющими людей или системы, получающие или передающие информацию в данную систему;
Диаграмма последовательности, отражающая поток событий, происходящих в рамках варианта использования;
Диаграмма кооперации, отображающая ту же информацию, что и диаграмма последовательности, но с целью отражения распределения процессов между объектами.
Диаграмма классов, показывающая взаимодействие между классами системы;
Диаграмма состояний, предназначенная для моделирования различных состояний, в которых может находиться объект;
Диаграмма компонентов, показывающая, как выглядит модель на физическом уровне. На ней изображаются компоненты программного обеспечения системы и связи между ними. При этом выделяют два типа компонентов: исполняемые компоненты и библиотеки кода;
Диаграмма размещения, отражающая физическое расположение различных компонентов системы в сети.
Приведенные диаграммы описывают систему с различных точек зрения и упрощают процесс анализа и проектирования сложных информационных систем.
