- •6.3.4 Панель инструментов bPwin
- •6.3.5 Помощь
- •6.3.6 Построение контекстных диаграмм
- •6.3.7 Декомпозиция
- •6.3.8 Оформление моделей
- •6.3.9 Ветвление и объединение стрелок
- •6.3.10 Опции отображения
- •6.3.11 Другие виды диаграмм idef0
- •6.3.13 Разбиение и объединение моделей
- •6.3.12 Открытие древовидных и feo-диаграмм
- •6.3.16 Отчеты по модели
- •7.1.1 Постановка задачи
- •7.1.2 Основные элементы модели
- •7.1.3 Словарь
- •7.1.4 Idefo-диаграммы модели
- •7.1.5 Описание функциональных блоков
- •7.2.1 Постановка задачи
- •7 2 2 Основные элементы модели управленческого учета
- •7.2.3 Перечень функций
- •7.2.4 Словарь
- •7.2.6 Описание функциональных блоков
- •Что сделали Ford и mbl
- •Сущность реинжиниринга
- •Принципы реинжиниринга
- •Думайте масштабно
- •Основная литература
- •Глава 1. Модель бизнеса и структурный анализ idef .. 11
- •Глава 2. Методология описания бизнес-процессов
- •Глава 3. Методология функционального моделирова ния idef0 44
- •Глава 4. Структурный анализ потоков данных (Data Flow
- •Глава 5. Другие возможности idef-моделей 74
- •Глава 6. Программное обеспечение idef-моделирова-
- •Панель инструментов bPwin 102
- •Помощь 102
- •Построение контекстных диаграмм 103
- •Глава 7. Практические примеры использования
7.2.6 Описание функциональных блоков
А1. Определить цели управленческого учета.
На этом этапе разрабатывается методология управленческого учета, которая контролирует следующие этапы. От его организации во многом зависит успешность процесса управленческого учета в целом.
АН. На первом этапе декомпозиции руководством определяется стратегия управленческого учета на основе потребностей в управленческой информации. Его задача — формализовать потребности и увязать их со стратегией предприятия.
Рис. 7.6. Декомпозиция первого уровня
Рис. 7.7. Одна из декомпозиций второго уровня
А12.
На следующем этапе определяются ресурсы
для реализации стратегии
управленческого учета, оценивается
эффективность стратегии с точки
зрения затрат имеющихся ресурсов и
необходимость привлечения
дополнительных ресурсов.
А13. На третьем этапе стратегия трансформируется в конкретные приемы и методы ведения управленческого учета с учетом ресурсов, имеющихся в распоряжении предприятия.
А2. Собрать и обработать данные.
На этом этапе готовятся данные, составляющие основу управленческой информации.
А21. Данные собираются и вводятся в информационную систему непосредственно центрами ответственности, что обеспечивает оперативность поступления информации. Состав данных, аналитические признаки и сроки их учета определяются методологией.
А22. По мере поступления первичных документов бухгалтерия подтверждает данные в информационной системе. В случае расхождений данные корректируются на основе первичных документов. Подтвержденные данные используются для составления финансовой отчетности.
А23. Данные в информационной системе распределяются по объектам учета и центрам ответственности. При наличии достаточной аналитики это осуществляется автоматически.
A3. Подготовить управленческую отчетность
На этом этапе формируется управленческая отчетность. При хорошо разработанной методологии отчетность может формироваться автоматически. Роль финансовой функции как механизма зависит от возможностей информационной системы.
A31. Распределение данных по объектам учета и центрам ответственности позволяет сформировать отчетность в разрезе центров ответственности. Форма отчетов и сроки их представления определяются методологией.
А32. Сводная отчетность формируется на основе консолидации отчетности центров ответственности и других обработанных данных. В части подтвержденных данных контрольные функции выполняет финансовая отчетность.
АЗЗ. Отчетность по требованию также основана на обработанных данных. Поскольку ее формы не предусмотрены методологией, они предварительно разрабатываются соответствующими подразделе-ниями.
Применение функционального 7.3 моделирования в аудиторской деятельности
Специфика аудиторской деятельности подразумевает понимание технологии проведения аудита как целостной системы, построенной по принципу достижения максимальных результатов за минимальное время. Увеличение временных затрат является тупиковым путем, так как аудит теряет свой смысл оперативной независимой экспертизы и превращается в параллельное ведение бухгалтерского учета. Следовательно, приемлемо лишь одно направление развития — повышение эффективности работы.
Одним из путей совершенствования любого процесса является систематизация. С этой целью процесс делится на определенное число взаимосвязанных этапов. Их методичное и последовательное выполнение в соответствии с принятой технологией способствует значительному повышению эффективности по сравнению со стихийным продвижением к поставленной цели. Аудит невозможен без творческой составляющей и не подразумевает полной автоматизации, однако создание четкого алгоритма, общей структуры процесса необходимо для облегчения рутинной работы.
SADT (Structured Analysis and Design Technique) — технология структурного анализа и проектирования — широко используется вомногих областях, начиная с 1973 г. SADT обычно применяется на ранних стадиях создания системы для минимизации возможных ошибок, исправление которых на стадии проектировании обходится гораздо дешевле, чем во время функционирования системы. SADT-методология нашла свое применение в создании программного обеспечения, долгосрочном стратегическом планировании, обучении персонала, автоматизированном производстве, управлении финансами и т.д.
С помощью методологии SADT на основе технологий аудиторской компании "BDO Руфаудит" была создана обобщенная схема процесса проведения аудиторской проверки, начиная с преддоговорной организационной работы и заканчивая представлением аудиторского заключения. Целью данной работы является последовательное
Работа над описанием технологии аудиторского процесса ведется достаточно давно. Какие же методы могут быть применены? Словесный метод — часто используемый. Однако он всегда несет в себе элемент субъективности, эмоциональности. Составление блок-схем позволяет доступнее представить процесс. Однако по сравнению с блок-схемами диаграммы функционального моделирования обладают явными преимуществами. Они позволяют показать мотивацию и ограничивающие факторы, особенности механизма реализации, в них четко прослеживается итеративность (рис. 7.8).
Уже на начальном этапе SADT-моделирования мы задаем цели, которые необходимо достичь, определяем исполнителей, указываем имеющиеся исходные данные и ресурсы, а также различного рода ограничения.
Любой процесс может быть описан с различной степенью детализации. Таким образом, схемы разных уровней являются расшифровкой элементов более общих схем и подробно описывают тот или иной этап. Так, ознакомление с деятельностью клиента является частью разработки стратегии проведения аудиторской проверки (диаграммы АО и А2). Кроме того, схема более низкого уровня сохраняет все внешние связи элемента родительской схемы, который она детализирует (рис. 7.9).
Результаты некоторых стадий могут стать руководством к действию для последующих этапов. Так, бюджет времени проверки, установленный партнером в процессе предварительной экспертизы клиента, определяет разработку стратегии проверки клиента. Другие промежуточные результаты являются основным материалом для следующих стадий аудиторского процесса. Например, на основе выводов, сделанных аудиторами в ходе проверки, составляется аудиторская отчетность (диаграмма АО).
Возможны также обратные связи: при промежуточной оценке результатов принимается решение о корректировке направлений проверки, что приводит к изменению стратегии аудита и новому планированию (диаграммы АО и A3) — рис. 7.10.
Стрелки
(дуги) могут разветвляться и соединяться.
Например, если
весь аудиторский процесс определяют
специалисты аудиторской компании,
то конкретный этап преддоговорной
работы осуществляет партнер.
Соединение дуг подчеркивает общий
результат.
Выводы. Анализируя построенные схемы и детализируя их в соответствии с текущими задачами, есть возможность структурировать весь процесс аудиторской проверки, составить план работы для каждого специалиста, привязать каждый этап к временным ограничениям. Но самое главное, — структура и цели аудиторского процесса • представляются как единый механизм, что необходимо для понимания конкретных задач каждого аудитора.
ПРИЛОЖЕНИЯ П1 Семейство стандартов IDEF
Применяемые в CASE-средствах разные методики и модели описывают различные свойства систем, важные, например, с точки зрения их автоматизации, а также позволяющие количественно оценить параметры проектов. Следует отметить, что спектр свойств систем различного назначения очень широк, и не все они к настоящему времени отражены в адекватных моделях. В то же время для класса информационных систем организационного типа (Management Information Systems — MIS) адекватные модели разработаны и поддерживаются соответствующими средствами автоматизации.
Взаимная совокупность методик и моделей концептуального проектирования IDEF (Integrated DEFinition) разработана в США по программе Integrated Computer-Aided Manufacturing. В настоящее время имеются методики функционального, информационного и поведенческого моделирования и проектирования, в которые входят IDEF-моде-ли, приведенные ниже.
Название |
Назначение |
IDEF0 |
Функциональное моделирование |
|
Function Modeling Method |
IDEFIhIDEFIX |
Информационное моделирование |
|
Information and Data Modeling Method |
IDEF2 |
Поведенческое моделирование |
|
Simulation Modeling Method |
IDEF3 |
Моделирование деятельности |
|
Process Flow and Object Stale Description Capture Method |
IDEF4 |
Объектно-ориентированное проектирование |
|
Object-oriented Design Method |
IDEF5 |
Систематизация объектов приложения |
|
Ontology Description Capture Method |
IDEF6 |
Использование рационального опыта проектирования |
|
Design Rational Capture Method |
IDEF8 |
Взаимодействие человека и системы |
|
Human-System Interaction Design |
IDEF9 |
Учет условий и ограничений |
|
Business Constraint Discovery |
IDEF14 |
Моделирование вычислительных сетей |
|
Network Design |
IDEFO реализует методику функционального моделирования сложных систем. Наиболее известной реализацией IDEF0 является методология SADT (Structured Analysis and Design Technique), предложенная в 1973 г. Д. Россом и впоследствии ставшая основой стандарта IDEF0. Эта методика рекомендуется для начальных стадий проектирования сложных искусственных систем управления, производства, бизнеса, включающих людей, оборудование, программное обеспечение.
IDEF1X hIDEFI реализуют методики инфологического проектирования баз данных. В IDEF1X имеется ясный графический язык для описания объектов и отношений в приложениях, так называемый язык диаграмм "сущность-связь" (ERD — Entity-Relations Diagrams) Разработка информационной модели по IDEF1X выполняется в несколько этапов:
выясняются цели проекта, составляется план сбора информации, при этом обычно исходные положения для информационной мо дели следуют из IDEFO-модели;
выявляются и определяются основные сущности — элементы ба зы данных, в которых будут храниться данные системы;
выявляются и определяются основные отношения, результаты представляются графически в виде так называемых ER-диаграмм;
детализируются нестандартные отношения, определяются ключе вые атрибуты сущностей. Детализация отношений заключается в замене связей "многие ко многим" на связи "многие к одному" и "один ко многим";
определяются атрибуты сущностей.
IDEF2 и IDEF3 реализуют поведенческое моделирование. Если методика IDEF0 связана с функциональными аспектами и позволяет отвечать на вопрос: "Что делает система?", то в этих методиках детализируется ответ: "Как система это делает". В основе поведенческого моделирования лежат модели и методы имитационного моделирования систем массового обслуживания, сети Петри, возможно применение модели конечного автомата, описывающей поведение системы как последовательности смен состояний.
Перечисленные методики относятся к так называемым структурным методам.
IDEF4 реализует объектно-ориентированный анализ больших систем. Он предоставляет пользователю графический язык для изображения классов, диаграмм наследования, таксономии методов.
IDEF5 направлен на представление онтологической информации приложения в удобном для пользователя виде. Для этого используются символические обозначения (дескрипторы) объектов, их ассоциаций, ситуаций и схемный язык описания отношений классификации, "часть-целое", перехода и т. п. В методике имеются правила связывания объектов (термов) в предложения и аксиомы интерпретации термов.
IDEF6 направлен на сохранение рационального опыта проектирования информационных систем, что способствует предотвращению структурных ошибок.
IDEF8 предназначен для проектирования диалогов человека и технической системы.
IDEF9 предназначен для анализа имеющихся условий и ограничений (в том числе физических, юридических, политических) и их влияния на принимаемые решения в процессе реинжиниринга.
IDEF14 предназначен для представления и анализа данных при проектировании вычислительных сетей на графическом языке с описанием конфигураций, очередей, сетевых компонентов, требований к надежности и т.п.
П2
Нотации моделирования
Рассмотрим основные виды моделей, необходимые для адекватного представления сложной системы, характеризуемой структурой, выполняемыми процессами (функциями), поведением системы во времени.
Для моделирования всех этих аспектов применяют функциональные, информационные и поведенческие модели, пересекающиеся друг с другом.
Функциональная модель системы описывает совокупность выполняемых системой функций, характеризует морфологию системы (ее построение) — состав подсистем, их взаимосвязи.
Информационная модель отображает отношения между элементами системы в виде структур данных (состав и взаимосвязи).
Поведенческая {событийная) модель описывает информационные процессы (динамику функционирования), в ней фигурируют такие категории, как состояние системы, событие, переход из одного состояния в другое, условия перехода, последовательность событии. Используется в основном для систем реального времени.
Сочетания типов моделей образуют стандартные CASE-модели. На рынке программных продуктов имеется много CASE-систем для концептуального проектирования систем, поддерживающих перечисленные модели. Чаще всего речь идет о поддержке методологии IDEF. В России достаточно широко известны продукты BPwin, ERwin, OOwin фирмы Platinum, Design/IDEF фирмы Meta Software, CASE-аналитик фирмы "Эйтэкс", Silverun фирм CSA, Paradigm Plus и др. Приведем основные характеристики программных продуктов фирмы Platinum.
Система BPwin предназначена для разработки функциональных моделей по методике IDEF0.
Система ERwin служит для разработки информационных моделей по методике IDEF1X. Имеются средства, обеспечивающие интерфейс с серверами баз данных (от пользователя скрыто общение с ними на языке SQL), перевод графических изображений ER-диаграмм в SQL-формы или в форматы других популярных СУБД. В систему включены также типичные для CASE средства разработки экранных форм.
Система OOwin служит для поддержки объектно-ориентированных технологий анализа и проектирования систем.
пз Программное средство
моделирования Design/IDEF
Одной из альтернатив описанному выше пакету Platinum BPwin является программа Design/IDEF, выпущенная в 1995 г. компанией Meta Software (США). Design/IDEF поддерживает создание моделей в следующих методологиях (рис. Ш): . IDEF0; . IDEF1X.
Основными преимуществами Design/IDEF перед BPwin являются:
Рис, Ш. Выбор методологии моделирования в Design/IDEF
сравнительная простота программы и соответственно меньший объем необходимых аппаратных ресурсов;
доступность — Design/IDEF распространяется бесплатно и ее можно без проблем получить из Internet;
поддержка проектирования схем данных по методологии IDEF1X (однако необходимо отметить, что компания Platinum предлагает
Структурный
П4 и объектно-ориентированный подход. Что лучше
Наиболее известная модель бизнеса — иерархическая структура компании. Эта модель совершенно недостаточна, для того чтобы спроектировать и (или) изменить компанию. Вместо этого нужны модели, показывающие компанию в связке с ее клиентами, поставщиками, партнерами, т.е. модели, которые представляют бизнес-процессы компании и то, как она производит товары и услуги для внешнего мира.
Понять, как работает компания — значит провести работу по обратному инжинирингу. Обычно это делается для того, чтобы получить прочную основу для кардинального улучшения различных аспектов компании в будущем. Модель существующей компании важна и тогда, когда необходимо понять и объяснить, как функционирует компания или некоторый процесс. Например, если требуется при помощи реинжиниринга существенно улучшить временные характеристики, модель может выявлять узкие места, необходимые ресурсы и затраты на различных этапах процесса. Однако построение модели существующей компании дорого и требует много времени. В такой модели трудно добиться согласия. Следовательно, очень важно с самого начала определить, что следует моделировать и насколько подробно. Другими словами, ключ к решению проблемы — это правильное сужение поля деятельности. Следует сосредоточить внимание на тех частях бизнеса, которые должны быть радикально улучшены в результате реинжиниринга, т.е. важно проявить прагматизм и моделировать только то, что имеет значение для решения задачи реинжиниринга.
Описание новой компании — это работа по прямому инжиринин-гу, которая начинается с формулирования целей и видения будущей компании. После этого набрасываются различные сценарии. Для каждого сценария создается описание процесса, включающее взаимодействие с заказчиками, поставщиками и т.д. Далее проводится имитационное моделирование различных процессов — при помощи деловой игры или компьютерной модели. Наконец, выбранная альтернатива реализуется.
Традиционный подход к разработке моделей
Литература по реинжинирингу бизнес-процессов предлагает очень мало методик моделирования бизнеса. Причина этого состоит в. недооценке значения моделирования или (что более вероятно) в отсутствии хорошей методики моделирования бизнеса. Действительно, все известные подходы к моделированию бизнеса принадлежат к одному семейству методов моделирования сложных информационных систем. Приведем список наиболее известных подходов.
1. Структурный анализ и структурное проектирование (Structured Analysis and Structured Design — SA/SD) является одной из самых из вестных методик разработки информационных систем. В методике SA/SD подчеркивается, что система предоставляет своим пользова телям одну или несколько функций — так называемый подход функ циональной декомпозиции. SA/SD предлагает набор средств, таких как диаграммы потоков данных, диаграммы состояний-переходов. ER-диаграммы (на фазе анализа) и структурные схемы (на фазе проек тирования).
2. Методика IDEF (Integrated computer aided manufacturing DEFinition) была разработана ВВС США в середине 70-х гг. На основе этой методики министерство обороны США создало федеральный стандарт обработки информации IDEF1X, который обеспечивает поддержку на нескольких уровнях посредством "модели бизнеса", "модели информационной системы" и "модели технологии". Модели рование бизнеса поддерживается ER-диаграммами для данных и диа граммами потоков данных специального вида, что позволяет иерархи чески описывать функции системы.
3. Методика SADT (Structured Analisis and Design Technige) ис пользует систему обозначений, похожую на диаграммы потоков дан ных IDEF, для описания функций и структур данных информацион ной системы на основе декомпозиции.
Все эти методики, основанные на моделировании информационных систем, исходят из следующей парадигмы. При описании информационной системы предполагается, что она содержит два типа сущностей: некоторый аналог программы (операционные сущности, которые выполняют какую-либо обработку) и данные (пассивные сущности, которые хранят информацию, доступную для поиска, чте-
Г
/Щ:и замены). Другими словами, информационная система описыва-ся как некая абстракция компьютера.
При моделировании (разработке) сложные информационные системы разбиваются на составные части, каждая из которых рассматривается отдельно от других. Такой прием, как известно, называется декомпозицией. Классический подход к разработке сложных систем представляет собой структурное проектирование, при котором осуществляется алгоритмическая декомпозиция системы по методу "сверху-вниз".
Жизненный цикл разработки сложной системы в этом случае складывается из этапов анализа, проектирования, программирования, тестирования и сопровождения, которые выполняются последовательно. Такой метод, называемый каскадным, имеет следующие отличительные особенности:
линейность выполнения этапов жизненного цикла разработки;
четкое разделение данных и процессов их обработки;
использование процедурных языков программирования. Недостатки каскадного метода сразу бросаются в глаза. Главный
из них — последовательное выполнение этапов. Например, программирование можно начать только по завершении анализа и проектирования. Это приводит к большим потерям времени, не позволяет быстро разрабатывать прототипы программной системы. Каскадный принцип не согласуется с итеративным характером разработки программной системы, поскольку на последних этапах может выясниться необходимость внесения изменений в решения, принятые на предыдущих этапах.
Для устранения этого недостатка Б. Боэм предложил спиральный подход. Он заключается в том, что разработка проекта ведется как бы по спирали, причем на каждом ее витке последовательно выполняются перечисленные этапы, на которых уточняется проект. Этот подход дополняет каскадный метод элементами интерактивности. Но и для него характерен ряд существенных недостатков, к числу которых можно отнести:
трудоемкость внесения изменений;
большой объем документации по проекту, затрудняющий про граммирование;
серьезные ограничения возможностей сборки системы из готовых компонентов;
сложность переноса на другие платформы.
Объектно-ориентированный подход к разработке модели
Интерес к объектно-ориентированным технологиям значительно возрос за последнее время, когда в центре внимания разработчиков программного обеспечения оказались сложные информационные системы, не поддающиеся программированию "в лоб". Создание подобных систем требует выполнения ряда этапов, предшествующих программированию.
Для того чтобы раскрыть сущность объектно-ориентированного подхода к разработке приложений, рассмотрим основные особенности сложных информационных систем.
Особенности сложных информационных систем
Иерархичность. Описывая характерные черты сложных систем, Г. Буч особое внимание уделяет их иерархическому характеру. Иерархическое построение таких систем облегчает понимание их человеком, возможности которого, связанные с восприятием информации, весьма ограничены. Иерархические структуры позволяют рассматривать только определенный уровень, не вдаваясь в детали реализации. Для сложной системы целесообразно моделировать два типа иерархии — типовую и структурную. Типовая иерархия отражает взаимосвязи "общее-частное", в объектно-ориентированном подходе ей соответствует иерархия классов. Структурная иерархия показывает связи типа "это — часть того". При объектно-ориентированном подходе ей соответствует иерархия объектов.
Групповая разработка. Разработка сложной информационной системы не может быть прерогативой одного человека. Для этой цели формируется группа, в которой каждый выполняет определенные функции. Иерархический характер сложных систем хорошо согласуется с принципом групповой разработки. В этом случае деятельность каждого участника проекта ограничивается соответствующим иерархическим уровнем.
Применяемые инструментальные средства (ИС) должны поддерживать групповую разработку. Для этого современные ИС реализуются в комплексах с архитектурой "клиент-сервер". В них должна быть предусмотрена возможность интеграции результатов работы отдель-
ных
участников проекта и защиты их от
несанкционированного доступа.
Модифицируемость проекта. Сложные системы, имеющие достаточно длительный жизненный цикл, обычно подвергаются многократной модификации. Это связано как с устранением ошибок, выявленных в процессе разработки, отладки или эксплуатации, так и с необходимостью внесения корректировок и дополнений, вызванных изменениями внешних условий и требований к системе. Очевидно, что при модификации сложных приложений могут возникнуть существенные трудности ввиду значительного объема таких систем и большого числа взаимосвязей между их компонентами.
Сборочное проектирование. При разработке больших информационных систем широко используется концепция сборочного проектирования, основанная на принципе повторно используемых компонентов. Сборка прикладной системы из таких компонентов позволяет значительно сократить время разработки. В связи с этим определяющее значение имеет то, насколько применяемые методики и поддерживающие их ИС обладают возможностями создания повторно используемых компонентов, а также насколько легко их можно применять в других проектах.
Использование стандартных СУБД. Современные большие информационные системы используют в работе стандартные СУБД в основном реляционного типа, причем реализация таких систем обычно осуществляется в среде "клиент-сервер". Интеграция прикладной системы с базой данных (БД) ставит перед разработчиками ряд дополнительных задач. Главной из них является обеспечение преемственности, т.е. возможности использования в разрабатываемом приложении данных, накопленных в БД. Кроме того, при разработке приложения в большинстве случаев возникает необходимость проектирования логической структуры новой БД. Для интегрированных систем с клиент-серверной архитектурой используются специальные инструментальные средства.
Особенности объектно-ориентированного подхода
Стремление избавиться от недостатков структурного подхода привело к развитию новых идей, основанных на объектной декомпозиции. Такой подход к разработке программных систем получил название объектно-ориентированного. В основе его лежат понятия
"объект", "класс", "инкапсуляция" и "полиморфизм". В реальном мире, а точнее, в интересующей разработчика предметной области, в качестве объектов могут рассматриваться конкретные предметы, а также абстрактные или реальные сущности. Например, объектами могут быть покупатель; фирма, производящая определенные товары; банк; заказ на поставку. Объект обладает индивидуальностью и поведением, имеет атрибуты, значения которых определяют его состояние. Так, конкретный покупатель, делая заказ, может оказаться в состоянии, когда денег на его счете не хватает для оплаты, а его "поведение" в этом случае заключается в "обращении в банк за кредитом".
Каждый объект является представителем некоторого класса однотипных объектов. Класс определяет общие свойства для всех его объектов. К таким свойствам относятся:
состав и структура данных, описывающих атрибуты класса и соот ветствующих объектов;
совокупность методов — процедур, определяющих взаимодейст вие объектов этого класса с внешней средой.
Например, описание класса "магазины" может включать некоторые атрибуты (индивидуальные для каждого объекта этого класса — конкретного магазина): "название", "адрес", "штат сотрудников", "текущий счет", а также методы: "формирование заказов на поставку товаров", "передача товара со склада в торговую секцию" и т.д. Объекты и классы обладают характерными свойствами, которые активно используются при объектно-ориентированном подходе и во многом определяют его преимущества.
Инкапсуляция — это скрытие информации. При объектно-ориентированном программировании предусмотрена возможность запрета доступа к атрибутам объектов, кроме как через его методы. Внутренняя структура объекта в этом случае скрыта от пользователя, т.е. объекты можно считать самостоятельными сущностями, отделенными от внешнего мира. Для того чтобы объект произвел некоторое действие, ему извне необходимо послать сообщение, которое инициирует выполнение нужного метода. Инкапсуляция позволяет изменять реализацию любого класса объектов без опасения, что это вызовет нежелательные побочные эффекты в программной системе. Тем самым упрощается процесс исправления ошибок и модификации программ.
Наследование — возможность создавать из классов новые классы по принципу "от общего к частному". Наследование позволяет новым классам при сохранении всех свойств классов-родителей (называв-
мых
в дальнейшем суперклассами) добавлять
свои черты, отражающие
их индивидуальность. С точки зрения
программиста новый класс должен
содержать только коды и данные для новых
или изменяющихся
методов. Сообщения, обработка которых
не обеспечивается собственными
методами класса, передаются суперклассу.
Наследование позволяет
создавать иерархию классов и является
эффективным средством
внесения изменений и дополнений в
программные системы.
Полиморфизм — способность объектов выбирать метод на основе типов данных, применяемых в сообщении. Каждый объект может реагировать по-своему на одно и то же сообщение. Полиморфизм позволяет упростить исходные тексты программ, обеспечивает их развитие за счет введения новых методов обработки.
Объектно-ориентированная декомпозиция заключается в представлении системы в виде совокупности классов и объектов предметной области. При этом иерархический характер сложной системы отражается в виде иерархии классов, а ее функционирование рассматривается как взаимодействие объектов.
При таком подходе сложная система описывается наиболее естественным образом.
Жизненный цикл объектно-ориентированной разработки программных систем содержит несколько этапов, но в отличие от структурного подхода в нем нет строгой последовательности их выполнения. Процесс носит принципиально итеративный характер, что полностью отвечает потребностям разработчиков.
Разработка начинается с этапа исследования — объектно-ориентированного анализа. Здесь предъявляются требования к системе. Затем осуществляется анализ предметной области, в ходе которого определяются классы и объекты, которые составляют словарь предметной области. Результатом исследования должно быть получение достаточно полных сведений для создания модели системы.
После исследования начинается объектно-ориентированное проектирование, в ходе которого детализируется представление классов и объектов, полученных на этапе анализа. Определяются структуры данных, методы, отношения между классами, разрабатываются сценарии взаимодействия объектов. При проектировании системы могут вводиться новые классы и объекты, если это потребуется для решения поставленных проблем. В результате проектирования должна быть создана детальная модель системы, составлены спецификации объектов, классов и отношений, достаточные для их программирования.
Программирование, тестирование и сборку системы Г. Буч рассматривает как единый этап, называемый эволюцией системы. Объектно-ориентированный подход обеспечивает быстрое создание прототипов проектируемой системы, постепенное развитие которых приводит к конечному результату. На этом этапе также возможно введение новых классов, изменение структур данных, добавление новых методов. Следует заметить, что программирование и тестирование отдельных компонентов системы возможно до завершения проектирования, что экономит время разработки. Современные объектно-ориентированные ИС, применяемые при разработке программных систем, обычно обладают возможностями автоматизации процессов, выполняемых на этом этапе. Модификация системы может рассматриваться как отдельный этап. Возможность внесения изменений — естественное свойство сложных систем, обеспечивающее их развитие. При объектно-ориентированном подходе модификация не требует полного пересмотра проекта, затрагивая лишь необходимые для этого классы и объекты.
Главная особенность жизненного цикла при объектно-ориентированном подходе заключается в том, что нет строгой последовательности выполнения отдельных этапов. При разработке может выясниться необходимость дополнительного исследования; программирование и последующее тестирование могут потребовать возврата к проектированию. Такой метод, названный Г. Бучем возвратным, отражает итеративный характер разработки приложения.
Преимущества и недостатки объектно-ориентированного подхода
Особенность процесса разработки современных сложных информационных систем состоит в том, что центр тяжести смещается от программирования к более ранним этапам — анализу и проектированию. Использование ИС, осуществляющих автоматическую генерацию кодов, возможность повторного применения проектных решений и сборки системы из готовых компонентов значительно упрощает процесс программирования, поэтому эффективность принятых методик анализа и проектирования имеет решающее значение для реализации проектов.
Преимущества
объектно-ориентированного подхода
Распараллеливание работ. Как было отмечено выше, программирование и тестирование отдельных компонентов системы возможно до завершения проектирования, что экономит время разработки. При проектировании может возникнуть необходимость внесения изменений в существующие классы или потребоваться введение новых объектов или классов. В этом случае, вернувшись к этапу проектирования или даже к анализу, можно внести изменения и дополнения, не подвергая проект полной переработке.
Упрощение внесения изменений. В отличие от структурного подхода, в объектно-ориентированном подходе внесение изменений в проект имеет более локальный характер. В тех случаях, когда изменение носит характер уточнения, локализации, вводятся новые классы, наследующие поведение ранее созданных. Наследование — одно из основных свойств классов — позволяет в этих случаях не только не пересматривать ранее созданные объекты и классы, но даже обойтись без их повторной трансляции. В более сложных случаях, когда меняются методы, определяющие интерфейс классов, изменения в проекте будут более значительными, но и тогда они будут локализованы, затрагивая лишь классы, использующие эти методы.
Гибкая архитектура и переносимость. Объектно-ориентированная декомпозиция, в результате которой приложение представляется в виде совокупности классов и объектов, обеспечивает гибкость архитектуры системы. В клиент-серверной системе объекты могут размещаться как на местах клиента, так и на сервере. В гетерогенных (разнородных) сетях возможна реализация классов на компьютерах разных типов, а фиксированный интерфейс каждого класса, определяемый набором его методов, обеспечит правильность функционирования системы. Изменения конфигурации оборудования не требуют внесения изменений в проект.
Повторное использование программных компонентов. Разрабатываемые в рамках некоторого приложения классы обычно отражают типовые решения, поэтому их использование возможно и в других приложениях. Возможность повторного использования программных компонентов — одна из самых привлекательных черт объектно-ориентированного подхода. Библиотеки классов, отражающие опыт в определенной области, позволяют значительно снизить объем програм-
мирования при разработке новых приложений. При наличии развитых библиотек классов проектирование и программирование новых приложений будет в основном сводиться к сборке системы из готовых компонентов.
Для того чтобы повторное использование компонентов приносило свои плоды, разработчики программных систем должны:
осознавать выгоды такого подхода;
знать, какие части задачи могут быть решены с применением су ществующих программных средств;
заниматься поиском подходящих для повторного использования программ;
стремиться найти такие программы;
использовать их даже в том случае, если они лишь частично совпа дают с тем, что программист написал бы сам.
Следует заметить, что основные свойства классов и объектов — инкапсуляция, наследование и полиморфизм — полностью отвечают задаче повторного использования. В связи с этим а последние годы значительно возрос интерес к объектно-ориентированным информационным системам, которые представляют удобные услуги, связанные с повторным использованием программных компонентов.
Естественность описания. Объектно-ориентированный подход позволяет описывать как статические, так и динамические отношения между объектами модели. По описанию предметной области, выполненному на естественном языке, легко выделить объекты и статические связи между ними. Объекты соответствуют существительным, а связи — глаголам и отглагольным формам. Например, фраза "фирмы выполняют заказ" позволяет выделить классы объектов "фирма" и "заказ" и отношение между ними типа M:N, так как фирма может выполнять много заказов, а заказ может быть реализован разными фирмами.
Кроме того, свойства наследования и инкапсуляции предоставляют возможность каждому участнику проекта рассматривать модель с удобным для него уровнем детализации. Руководители проекта могут работать с верхним уровнем модели, где отражаются только основные классы, объекты и связи. Другие разработчики или эксперты имеют возможность работать с более мелкими терминальными объектами, их свойствами, связями, методами.
Недостатки
объектно-ориентированного подхода
Объектно-ориентированная декомпозиция заметно отличается от алгоритмической, поэтому применение этой технологии связано как с преодолением психологических трудностей, так и с дополнительными финансовыми затратами. Здесь следует учесть расходы на обучение методике, ИС и языку программирования. Для некоторых организаций эти обстоятельства могут стать серьезными препятствиями. Следует заметить, что это не является недостатком собственно объектно-ориентированного подхода, и в дальнейшем эти издержки будут компенсированы теми выгодами, которые сулят объектно-ориентированные технологии.
Недостатки самого объектно-ориентированного подхода лежат в области программирования. Рассмотрим основные из них.
Динамическое связывание, предполагающее поиск метода в классе, которому принадлежит получающий сообщение объект, приводит к тому, что обращение к методу занимает в 1,75-2,5 раза больше времени, чем к обычной подпрограмме. Это, конечно, замедляет работу приложения. Однако, как указывает Г. Буч, динамическое связывание при использовании строго типизированных языков применяется примерно в 20% случаев вызовов методов. В результате снижаются непроизводительные потери времени. В приложениях, где такие потери критичны, приходится прибегать к специальным программистским приемам.
Другой недостаток связан с многочисленностью методов и их излишними вызовами. Это объясняется тем, что для доступа ко многим атрибутам объектов (а к защищенным — всегда) используются специальные методы. Вызов метода высокого уровня абстракции приводит к тому, что в системе происходит каскад вызовов — от методов более высоких уровней иерархии к методам более низких уровней. Если время является ограничивающим фактором, такая ситуация может оказаться неприемлемой. Выход здесь видится в том, что после создания начального варианта системы производится его оптимизация для сокращения количества вызовов. Например, защищенные переменные можно сделать общедоступными и обращаться к ним напрямую, уменьшая тем самым число вызовов.
На компьютерах с сегментированной организацией памяти объектно-ориентированные системы при работе могут осуществлять интенсивный межсегментный обмен, что отрицательно сказывается на
их производительности. Это вызвано тем, что классы обычно объявляются в разных файлах и соответственно реализуются в разных сегментах. Проблема решается путем перераспределения классов по модулям, логическое описание модели не изменяется.
Для задач реального времени, выполняющихся в высоком темпе, нежелательным является динамическое создание и удаление объектов, что также активно используется в объектно-ориентированных языках. Можно размещать такие объекты при создании программы, а не во время работы критичных по времени алгоритмов. Преодоление перечисленных затруднений связано с дополнительной работой программистов, но в то же время не требует очень больших усилий, так как действия, которые надо предпринять, достаточно очевидны. Кроме того, подобные проблемы возникают весьма редко. Следует также заметить, что объектно-ориентированные языки обладают средствами, позволяющими достичь более высокого быстродействия программ по сравнению с традиционными языками.
Существует расхожее мнение, что объектно-ориентированный подход труден для понимания, поэтому переход на объектно-ориентированные технологии связан с большими затратами, которые не окупаются. В действительности дело обстоит по-другому. Традиционная и объектно-ориентированная технологии с точки зрения получаемых результатов по-разному ведут себя по отношению к затратам на их освоение. При использовании традиционных технологий некоторые результаты можно получить и при сравнительно небольших затратах, однако на определенной стадии наступает насыщение, когда даже значительные дополнительные затраты не приводят к существенному повышению эффективности.
Реинжиниринг:
П5
не автоматизируйте — уничтожайте
В данном приложении приводится перевод статьи одного из основоположников реинжиниринга бизнеса М. Хаммера (Reengineering Work: Don't Automate, Obliterate by Michael Hammer / Harvard Business Review, 1990), одним из первых затронувших эту проблему. (Майкл Хаммер — президент Hammer and Company (www.hammerandco.com), консалтинговой фирмы, работающей в области информационных технологий, расположенной в г. Кембридж:, штат Массачусетс).
Несмотря на десять, если не больше, лет реструктурирования и сокращения, многие американские компании все еще не готовы работать в настоящее время. Технологии быстро меняются, жизненный цикл продуктов сокращается, а их разработка как будто замерзла во льдах. На дворе — эра потребителя, а заказы часто выполняются с ошибками, на запросы клиентов не отвечают неделями. Все более важным становится рациональное использование активов, а уровни товарных запасов превышают спрос многих месяцев.
Обычные методы повышения производительности — рационализация и автоматизация процессов — не привели к серьезным улучшениям, которые требуются компаниям. В частности, серьезные инвестиции в информационные технологии принесли разочаровывающие результаты во многом из-за того, что компании используют технологию только для того, чтобы механизировать старые способы вести дела. Они оставляют в неприкосновенности существующие процессы и используют компьютеры, чтобы просто их ускорить.
Однако ускорение процессов не может радикально повысить производительность. Технологические процессы, механизмы управления и организационные структуры были разработаны в эпоху, когда не существовало ни сегодняшних конкурентов, ни сегодняшних компьютеров. Они созданы в расчете на эффективность и контроль. Однако ключевые концепции нового десятилетия — это инновация и скорость, обслуживание и качество.
Пора перестать ходить коровьими тропами. Вместо оснащения существующих процессов вычислительной техникой и программным обеспечением необходимо уничтожить их и начать заново. Следует подвергнуть наши компании "реинжинирингу": воспользоваться
мощью современных информационных технологий, чтобы радикально перестроить бизнес-процессы и достичь значительного повышения их производительности.
В каждой компании есть великое множество неписаных правил: "решения о выдаче кредита принимает кредитный отдел", "для качественного обслуживания клиентов необходим локальный склад", "формы следует заполнять полностью и по порядку". Цель реинжиниринга— порвать со старыми правилами организации и ведения бизнеса. Реинжиниринг включает в себя выявление этих правил и отказ от некоторых из них в пользу новых способов выполнения работы. Вновь разработанные процессы обусловят появление соответствующих новых правил. Только так можно достичь значительного повышения производительности.
Реинжиниринг нельзя спланировать детально и выполнять мелкими и осторожными шажками. Это предложение вида "все или ничего" с неопределенным результатом. Тем не менее у большинства компаний просто нет выбора — надо набраться смелости и начать работу. Для многих реинжиниринг — это единственная надежда порвать с устаревшими процессами, которые тянут их на дно. К счастью, руководители не беспомощны. Достаточное количество предприятий успешно перестроили свои процессы, что позволяет выработать несколько эмпирических правил для других.
