Почему именно больница?
А почему бы и нет? Это хороший пример. Проект везде проект: плюс-минус те же стадии, та же схема управления, документооборот, работа с рисками, контроль качества и так далее. Везде есть требования и к оборудованию, и к помещениям, и к ПО. Вы спросите, какие могут быть требования к помещениям в Информационной Системе? Очень просто: расположение рабочих мест операторов, сервера — и тем и другим потребуется кондиционер. Вот уже и требования к помещениям. И вряд ли нынче кто-то сомневается, нужно ли больнице ПО. Если вы хотите идти в ногу со временем, перед вами встанет задача создать автоматизированное лечебное учреждение с электронными медицинскими картами, где врачи делают осмотр с планшетами, а, например, санитарки отмечают вымытый туалет не на листике, а в телефоне. Требований к ПО в данном случае будет предостаточно. А как только потребуется ПО, появится необходимость установить сервера, куда-то посадить админа и операторов. Все взаимосвязано.
Мы выбрали строительный проект, потому что на нем проще всего продемонстрировать, как спроектировать ИС. Информационная система скрыта где-то внутри, мы ее не видим, а стены — вот они перед нами: кривые и косые, с тупиковыми коридорами, потому что проект был сделан на коленке, да еще и заказчик свои требования менял сто раз по ходу пьесы.
Программный код внутри (но этого никто не видит)
При чем тут больница, если мы разрабатываем ПО?
А вот и нет, дорогие разработчики, руководители, аналитики, тестировщики.
Не программное обеспечение вы разрабатываете… Возьмем Android, — это ПО. А если, например, перед вами бухгалтерская система, то вы уже имеете дело не просто с ПО, а с ИНФОРМАЦИОННОЙ СИСТЕМОЙ.
Отличие очевидно. Если вы купили телефон — все просто: включаете его, запускается зеленый человечек (Android), пользуетесь. А если вы приобрели коробку с бухгалтерским ПО, то ясно, что теперь необходимы сервера, надо настроить сеть, сконфигурировать рабочие станции, обучить сотрудников, интегрировать систему с остальными ИС предприятия, погонять систему в тестовом режиме. Да и бухгалтеров надо еще как-то уговорить перейти на новый софт, далеко не все из них готовы к новациям. В общем, в любом IT-проекте 10-20% это IT, а все остальное — организационные и административные меры, ну и очень плотная, ювелирная, работа с персоналом.
Информационная система (разве это только ПО?)
И, наконец, вспомним определение системы еще из далеких 90-х годов, которое никто не отменял:
Автоматизированная система: система, состоящая из персонала и комплекса средств автоматизации его деятельности, реализующая информационную технологию выполнения установленных функций.
ГОСТ 34.003-90. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения.
То есть, ИС в первую очередь — это люди, плюс технология, помогающая автоматизировать их деятельность, и никак не наоборот.
Как спроектировать больницу
Представим, что вы строительная организация, к вам приходит заказчик и просит в таком-то месте построить больницу. Вы сразу побежите кирпичи класть или…? Если смотреть на то, как зачастую создаются Информационные Системы, то так и есть: исполнители тут же начинают «мешать бетон и закупать стеклопакеты». Мол, выйдет не так — перестроим! Будем перестраивать, пока не добьемся нужного результата.
Однако, если вы серьезная организация, то сперва предложите заказчику ПРОЕКТ строительства. Согласны? А почему с Информационной Системой не так? Может, дело не в различиях между строительством и разработкой ПО, а в том, что в случае той же больницы сначала много думают, планируют, а потом строят, а ПО сначала разрабатывают и затем думают? Не потому ли много слышно о криворуких программистах, но ничего о таких же гастарбайтерах на стройке? Строители работают по проекту, в отличие от разработчиков.
Без проекта всегда так, даже если этого не видно
Рассмотрим теперь процесс проектирования подробнее. В нем несколько стадий. Зачем же нужно проходить несколько этапов, почему за один раз не сделать? Для ясности приведу школьный пример… Сколько лет в школе изучают операцию умножения? Вы скажете — один-два месяца, и будете в корне неправы. Да, как умножать 5 на 6, проходят за неделю. Еще определенное время учат таблицу умножения. А умножение дробей, чисел со степенью, логарифмов, выражений в скобках, комплексных чисел, возведение в степень сколько изучают? Почти все школьные годы! Получается, мы одно и то же умножение изучаем каждый год под разными углами.
И почему такое не изучают в первом классе?
Так вот, любой процесс и обучения, и проектирования, цикличен. Сначала мы получили общие понятия о числах, потом научились выполнять с ними простейшие действия, затем узнали про дроби и научились с ними работать, и так далее.
Сначала мы осознали, какую проблему должны решить с помощью Информационной Системы. Затем определили круг решаемых задач, поняли, ЧТО должна делать система, какие действия должен выполнять персонал. Потом продумали, КАК система должна выполнять определенные ранее задачи. Эти этапы можно перескочить, только придется возвращаться обратно и все переделывать: семь раз отмерить и один раз отрезать получается гораздо быстрее, чем наоборот, да и материала уйдет меньше.
Приведем еще пример. Вы на вершине горы смотрите вниз в сильный бинокль и пытаетесь составить детальный маршрут спуска. В окуляры можно рассмотреть каждый камешек на тропинке, каждую лужу. Но вот та ли эта тропинка и ведет ли она на вершину, в бинокль не видно: отсутствует общий план. Разумный альпинист сначала невооруженным глазом наметит пути спуска, а затем их будет рассматривать под сильным увеличением. Как только вы окунаетесь в детализацию, теряете общий взгляд на проект. Взяв сразу подзорную трубу, вы идеально опишите 10 функций, при этом забудете про 40 остальных, вообще про них не упомянете.
Видно хорошо, но только малую часть
Сложность поэтапного проектирования в том, что в начале процесса приходится оперировать абстрактными понятиями. Так хочется «пощупать» что-то готовое, а не говорить о неких требованиях, функциях, задачах, процессах. Нарисовать сразу интерфейс пользователя проще, но и легче упустить как минимум половину требований. Если же вначале составить детализированный список операций, которые должен выполнить пользователь при работе с той или иной экранной формой, то дизайнеру останется только нарисовать, а не фантазировать, как это часто бывает.
Теперь наконец-то перейдем к рассмотрению стадий проектирования.
1. Составление общих требований
Итак, допустим вы — проектант. К вам приходит заказчик, «посланный» ответственными строителями. Заказчик, естественно, просит вас разработать проект больницы. Вы бежите к кульману и… Ну ладно, это уже древность — запускаете ArchiCAD и чертите.
Но конечно речь не о вас. Вы — профессионал и начинаете задавать кучу «глупых» вопросов. И самый главный из них — зачем нужно строить больницу? Какова цель строительства? Если цель не понятна, то вы не сможете ответить на вопрос, большая это должна быть больница или маленькая, какого профиля, чем оснащенная. К сожалению, заказчики зачастую говорят очень много всего интересного, кроме главного, — какова их цель. Вот это надо «вытащить» из них в первую очередь. И задать вопрос должны вы. Сам заказчик — не специалист, у него есть идея, и на этом он видит свою роль выполненной. Он не понимает, какой путь необходимо пройти для реализации его идеи. Как правило, заказчик ждет старого доброго чуда — прийти на берег моря, закинуть невод (заплатить деньги), выловить рыбку, и она исполнит его желание… А случается как в анекдоте про богатого мужика, который поймав золотую рыбку, попросил выполнить одно желание: «Хочу, чтобы у меня все было!» — «Нет проблем, — ответила рыбка, — у тебя все было…»
Чтобы вникнуть в цель проекта, недостаточно составить пару предложений со стандартным набором фраз. Цель проекта обычно определяется на основе противопоставления: описывают существующую информационную модель (например, сидят люди в архиве и бумажки перебирают), затем — ее недостатки (из-за отсутствия автоматизации в архиве задействовано 10 человек, что явно избыточно, другие отделы не могут неделями получить из архива нужную им информацию и т.д.) и предлагают решение (внедрить ПО, которое позволит осуществлять в автоматизированном режиме ряд операций, операции надо перечислить). В случае, если на рынок выводится совершенно новый вид сервиса, то требуется изучить существующий рынок и «покритиковать» имеющиеся там инструменты, затем предложить решение.
Кроме того, на данной стадии необходимо определить, какие требования законодательства необходимо учесть, как юридически оформить те или иные операции, как будет монетизироваться новый сервис, как планируется выходить на рынок, как заинтересовать внешних участников новой системы.
Иными словами, следует составить бизнес-модель. С одной стороны, это как бы и не задача разработчиков, а, с другой, без четкого определения цели и способов ее реализации непонятно, какие задачи должна решать система. А если заказчик сам толком еще не сформулировал, что ему нужно, вряд ли он будет доволен хоть каким-нибудь результатом.
2. Выбор концепции системы
На данном этапе необходимо выбрать общие технические решения, с помощью которых могут быть выполнены требования, составленные на предыдущем этапе. Будет ли это веб-приложение или нативное, толстый клиент или тонкий, централизованная база или распределенная, реляционная СУБД или noSQL, монолит или микросервисы, Java или Python. Часто данные вопросы забывают обсудить вовремя, а потом оказывается, что кто-то из программистов самостоятельно выбрал определенный инструмент, а в конце концов данное решение не позволяет достичь поставленной цели.
3. Разработка Технического Задания
Составили общие требования к больнице, выбрали концепцию. «Ну, — скажет заказчик, — теперь все понятно, можно чертить». А можно ли? Требования-то общие, их надо детализировать. Например, на первом этапе вы определили, что должна иметься лаборатория по анализу крови. Но какое там будет оборудование, сколько оно потребляет электроэнергии, сжатого воздуха (а вдруг?), нужны ли кварцевые лампы для дезинфекции, лабораторные столы, вентиляция? Без этого проектировать тяжеловато будет. Это, во-первых. А во-вторых, необходимо прописать план строительства больницы, подготовки и ввода ее в эксплуатацию.
Для Информационной Системы разработка ТЗ (Технического задания) — центральная часть проекта. Техническое задание описывает:
- ЧТО должна делать система.
- Какова должна быть общая структура системы.
- Как создать систему.
То есть, ТЗ содержит функциональные и нефункциональные требования, а также требования к этапам разработки, сдаче-приемке, документации. Также в ТЗ должны быть кратко описаны процессы, которые мы собственно автоматизируем.
При описании функций системы (а это центральная часть ТЗ) следует понимать — мы приводим требования к тому, ЧТО должна делать система, а не КАК. Для вас должна быть важнее широта охвата, а не глубина. Например, на первой стадии (составление общих требований) мы выявили необходимость наличия функции блокировки входа пользователя. В ТЗ указали, что учетная запись блокируется при неиспользовании в течение 90 дней или после 6-и неудачных попыток входа, доступ может быть ограничен администратором на определенный срок, при попытке входа заблокированного пользователя необходимо выводить сообщение и т.д. А в техническом проекте (забежим вперед), мы с вами нарисуем макет карточки пользователя с флажком блокировки и датой разблокировки, составим сценарий входа в систему, в котором производится проверка на блокировку, автоматическая разблокировка по истечении установленного срока, блокировка в случае неудачных попыток входа; определим, что выполняется на стороне клиента, а что — сервера.
Хочется развенчать несколько мифов, связанных с разработкой технического задания.
Миф первый: В ТЗ содержатся требования только к исполнителю.
Нет, ТЗ — это то, как создать систему, и в техзадании есть разделы, в которых можно описать распределение ответственности.
Миф второй: В Техническом задании часто очень много «воды».
Действительно, нередко ТЗ содержит общие сведения о системе, но они нужны. Например, мы обсуждали-обсуждали требования к системе, в результате одна команда поняла, что нужно разработать приложение под Windows, а другая — для браузера. Одна думала, что система называется так, а другая — по-другому. Вроде бы очевидные вещи, но они должны пониматься одинаково всеми членами команды и всеми привлеченными специалистами.
Миф третий: Требования к персоналу, серверам, каналам связи, режимам работы администраторов являются лишними, так как находятся в сфере ответственности заказчика.
Во-первых, как мы уже рассматривали, ТЗ пишется для всех сразу, а во-вторых, ТЗ описывает, как сделать так, чтобы система заработала, а не только было написано ПО. Иначе будет еще одна лежащая на полке коробка с диском и толстой инструкцией. Таким образом, организационная часть ТЗ, нефункциональные требования, не менее важны, чем требования функциональные.
Подробнее составление ТЗ мы рассматриваем в отдельной статье Разработка Технического задания по ГОСТ 34 легко и просто.
4. Разработка технического проекта
Итак, двигаемся дальше. Вот перед вами (мы же допустили, что вы — проектант) Техническое Задание на строительство больницы с огромным перечнем требований. Сидите вы, смотрите грустно на 100 страниц ТЗ, и не знаете, с чего начать. Потом картина постепенно начинает проясняться. Думаете: ага, нам нужно столько-то метров под палаты, столько-то под кухню, столько-то на зону отдыха, лабораторию, сестринские и так далее и тому подобное. Затем на свет появляется множество набросков, эскизов, вариантов, вы переделываете, меняете помещения местами, короче, ищете оптимальные соотношения. Потом переходите к деталям — чертежи, чертежи, чертежи: стены, двери, окна, кабель-каналы, проводка, трубы, вентиляция, межэтажные перекрытия, материалы стен, отделка… и прочее, и прочее, и прочее. В общем, подробно-подробно, насколько это возможно, очерчиваете то, как должна выглядеть и функционировать больница после завершения строительства.
При разработке технического проекта Информационной Системы необходимы документы, содержащие следующее: подробные сценарии, описывающие работу и взаимодействие разрабатываемой системы, пользователей и смежных систем; детальные макеты пользовательского интерфейса, содержащие описание типа данных и поведения каждого элемента интерфейса (значение по умолчанию, условия, при которых можно изменить значение поля, видимость, действия, выполняемые системой при изменении элемента и т.п.); описание протоколов для интеграции со смежными системами и оборудованием, формы отчетов и описание алгоритма их формирования, структуру серверов и баз данных, если их несколько.
Обычно этого более чем достаточно, чтобы была возможность отдать документы разработчикам и получить вменяемый результат. Детальные макеты и сценарии дают достаточно информации о поведении системы и интерфейса, а также о структуре данных. Разработчики будут поставлены в жесткие рамки, в которых фантазировать можно, но потом будет не отвертеться.
Надеюсь, в следующих статьях мы более подробно рассмотрим то, как качественно выполнить техническое проектирование, как разработать макеты, сценарии, какие документы необходимо составить.
5. Разработка рабочей документации
Логичный вопрос — какая такая рабочая документация для больницы? Неужто инструкция по уборке коридора?! Шутки шутками, а противопожарную систему надо обслуживать? Надо. А лифты? А компьютерные сети? А водопровод? «Ну, это к проекту больницы не относится!» — скажете вы. Да, отчасти это так. Однако больница сдается заказчику как единое целое, и все системы должны иметь соответствующую эксплуатационную документацию. И чтобы сдача была быстрой, успешной, вы составите перечень требований, напротив которых можно ставить галочку, если все в порядке.
Наличие руководств пользователя и администратора для ИС — это стандарт, с этим все понятно. А вот о процессе сдачи-приемки системы заказчику часто задумываются в последний момент. И напрасно. Для этого существует прекрасный документ «Программа и методика испытаний», тоже обычно относящийся к рабочим документам. Он представляет собой своего рода чек-лист, содержащий описание проверочных процедур. Если данный документ составлен заранее (а сценарий, как основу, можно из техпроекта позаимствовать), то у разработчиков будет четкий критерий приемки их работ. Вам не понадобится собственным или аутсорсинговым программистам доказывать свою правоту — есть сценарий, он должен отрабатываться. И с заказчиком проблем не будет — фантазия уже ограничена документом.
А где же здесь место для Agile?
Одни люди двумя руками за Agile (или иные «гибкие» методы разработки), другие резко против. У автора же статьи свое мнение: Agile очень хорош, но к месту. А используют его обычно не по назначению.
Вот скажите мне, любители Agile, можно ли пользуясь данной технологией, определить результат, который вы получите в конце разработки, стоимость и сроки? Нет? Ну и много ли
дураков
заказчиков таких найдете, которые ввяжутся в работу с неясным результатом, бюджетом и длительностью? Вы бы заказали ремонт квартиры бригаде, пользующейся Agile? Таким образом, Agile имеет место быть, но для проектов внутренних. Сами себе ремонт можете делать сколько угодно и несколько раз все пересматривать. Для внешних же заказчиков — это названный умным термином развод (вы, конечно, не согласитесь с такой формулировкой, но попробуйте убедить в том же клиента).
Заказчик думает: и сколько меня еще будут по кругу за нос водить?
Во-вторых, Agile хорош в инновациях, там, где не понятно, какой результат требуется получить, или не ясен путь его достижения. Называется это ОКР, опытно-конструкторскими разработками. Или даже НИОКР — научно-исследовательские и опытно-конструкторские работы. На любом заводе имеется опытный цех, где с напильником, несколько раз переделывая, получают опытные образцы. Представим, что нужно разработать заново тачскрин, все жесты и поведение. Здесь действительно следует пробовать и пробовать, заранее поведение не опишешь. Но часто ли перед вами задачи подобного толка? Следует различать инженерные разработки и научно-исследовательские. В основном мы — инженеры по конструированию информационных систем.
В-третьих, в большом проекте могут присутствовать этапы, где требуется именно ОКР, и тогда Agile в помощь. Никто не мешает на уровне оперативного планирования пользоваться спринтами. Наоборот, очень удобная технология: планировать на неделю или две и постоянно контролировать результат. На стратегическом уровне — каскадное планирование, на тактическом — итеративное. И никаких противоречий!
К сожалению, очень часто, «проповедуя» Agile, разработчики пытаются замаскировать свое неумение разработать проект системы (либо даже не знают, что это возможно). Они действуют самым удобным для них образом: будем допиливать и допиливать за деньги заказчика. Пока расходы никто не контролирует, это вполне сходит с рук. Но потом у стороннего наблюдателя (начальства) может возникнуть ощущение, что процесс-то есть, а конца и края, да и результата не видно. Пытайтесь смотреть не только со своей колокольни.
Где узнать подробнее о проектировании информационных систем?
Книжек на эту тему много. Толстых и не очень. Но книжка — это всегда ЧУЖОЙ опыт. А у вас другой характер, отличная ситуация и проект. Есть такая система ТРИЗ — теория решения изобретательских задач. Ее автор, Альтшуллер, пытается объяснить шаги, которые нужно предпринять, чтобы изобрести что-либо. Получается? Как правило, нет. Принципы излагаются интересные, полезные, но единого шаблона по изобретению не выходит. Каждый человек думает и творит по-своему, да и невозможно этому научить, можно только научиться. Чужой опыт использовать надо, глупо не использовать, но он должен быть пережит (переработан) вами, переложен на ВАШЕ мышление. Скопировать чудо не удастся.
Если вы хотите научиться проектированию, предлагаю взять за основу ГОСТы 34-й серии. Это настоящий шедевр, результат работы целых НИИ. В ходе разработки данных стандартов были изучены десятки (если не сотни) сложнейших проектов по автоматизации самых различных систем. Аккумулирован колоссальный опыт.
Эти стандарты сложно освоить, и с наскока ими пользоваться не научишься. Поэтому мы попытаемся раскрыть их суть в последующих статьях.
Читайте продолжение: Некоторые заметки по проектированию информационных систем.
Читайте другие статьи автора:
- Разработка Технического задания по ГОСТ 34 легко и просто.
- Предпроектное обследования при разработке информационной системы.
- Некоторые заметки по проектированию информационных систем.
Аннотация: Принципы создания информационной системы. Реинжиниринг бизнес-процессов. Отображение и моделирование процессов. Обеспечение процесса анализа и проектирования ИС возможностями CASE-технологий. Внедрение информационных систем.
6. Разработка и внедрение информационной системы
6.1. Принципы создания информационной системы
Многие пользователи компьютерной техники и программного обеспечения неоднократно сталкивались с ситуацией, когда программное обеспечение, хорошо работающее на одном компьютере, не работает на другом таком же устройстве. Или системные блоки одного вычислительного устройства не стыкуются с аппаратной частью другого. Или информационная система другой компании упорно не желает обрабатывать данные, которые вы подготовили в информационной системе у себя на рабочем месте. Эта проблема называется проблемой совместимости вычислительных, телекоммуникационных и информационных устройств.
Развитие систем и средств вычислительной техники, расширенное их внедрение во все сферы науки, техники, сферы обслуживания и быта привели к необходимости объединения конкретных вычислительных устройств и реализованных на их основе информационных систем в единые информационно-вычислительные системы (ИВС) и среды. При этом разработчики ИВС столкнулись с рядом проблем.
Например, разнородность технических средств вычислительной техники с точки зрения организации вычислительного процесса, архитектуры, системы команд, разрядности процессора и шины данных и т. д. потребовала создания физических интерфейсов, реализующих, как правило, взаимную совместимость устройств. При увеличении числа типов интегрируемых устройств сложность организации физического интерфейса между ними существенно возрастала. Разнородность программируемых сред, реализуемых в конкретных вычислительных устройствах и системах, с точки зрения многообразия операционных систем, различия в разрядности и прочих особенностей привела к созданию программных интерфейсов между устройствами и системами. При этом необходимо отметить, что достигнуть полной совместимости программных продуктов, разработанных для конкретной программной среды, в другой среде удавалось не всегда. Разнородность интерфейсов общения в системе «человек-компьютер» требовала постоянного согласования программно-аппаратного обеспечения и пер
еобучения кадров.
Принцип «открытости» информационной системы
Решение проблем совместимости привело к разработке большого числа международных стандартов и соглашений в сфере применения информационных технологий и разработки информационных систем. Основополагающим понятием стало понятие открытые системы.
Термин «открытая система» сегодня можно определить как «исчерпывающий и согласованный набор международных стандартов на информационные технологии и профили функциональных стандартов, которые специфицируют интерфейсы, службы и поддерживающие их форматы, чтобы обеспечить взаимодействие и мобильность программных приложений, данных и персонала».
Это определение, сформулированное специалистами института IEEE (Institute of Electrical and Electronic Engineers), унифицирует содержание среды, которую предоставляет открытая система для широкого использования. В настоящее время общепризнанным координационным центром по разработке и согласованию стандартов открытых систем является OASIS (Organization for the Advancement of Structured Information Standards).
Общие свойства открытых информационных систем можно сформулировать следующим образом:
расширяемость/масштабируемость: обеспечение возможности добавления новых функций ИС или изменения некоторых уже имеющихся при неизменных остальных функциональных частях ИС;
мобильность/переносимость: обеспечение возможности переноса программ, данных при модернизации или замене аппаратных платформ ИС и возможности работы с ними специалистов, пользующихся ИТ, без их переподготовки при изменениях ИС;
взаимодействие: способность к взаимодействию с другими ИС (технические средства, на которых реализована информационная система, объединяются сетью или сетями различного уровня: от локальной до глобальной);
стандартизуемость: ИС проектируются и разрабатываются на основе согласованных международных стандартов и предложений, реализация открытости осуществляется на базе функциональных стандартов (профилей) в области информационных технологий;
дружественность к пользователю: развитые унифицированные интерфейсы в процессах взаимодействия в системе «человек-машина», позволяющие работать пользователю, не имеющему специальной «компьютерной» подготовки.
Новый взгляд на открытые системы определяется тем, что эти черты рассматриваются в совокупности, как взаимосвязанные, и реализуются в комплексе, что вполне естественно, поскольку все указанные выше свойства дополняют друг друга. Только в совокупности возможности открытых систем позволяют решать проблемы проектирования, разработки и внедрения современных информационных систем.
Структура среды информационной системы
Обобщенная структура любой ИС может быть представлена двумя взаимодействующими частями:
функциональной части, включающей прикладные программы, которые реализуют функции прикладной области;
среды или системной части, обеспечивающей исполнение прикладных программ.
С этим разделением тесно связаны две группы вопросов стандартизации:
стандарты интерфейсов взаимодействия прикладных программ со средой ИС, прикладной программный интерфейс (Application Program Interface — API);
стандарты интерфейсов взаимодействия самой ИС с внешней для нее средой (External Environment Interface — EEI).
Эти две группы интерфейсов определяют спецификации внешнего описания среды ИС — архитектуру, с точки зрения конечного пользователя, проектировщика ИС, прикладного программиста, разрабатывающего функциональные части ИС.
Спецификации внешних интерфейсов среды ИС и, как будет видно далее, спецификации интерфейсов взаимодействия между компонентами самой среды, — это точные описания всех необходимых функций, служб и форматов определенного интерфейса. Совокупность таких описаний составляет эталонную модель открытых систем (Reference Open System Model).
Эта модель используется более 20 лет и определяется системной сетевой архитектурой (SNA), предложенной IBM в 1974 году. Она основана на разбиении вычислительной среды на семь уровней, взаимодействие между которыми описывается соответствующими стандартами, и обеспечивает связь уровней вне зависимости от построения уровня в каждой конкретной реализации (рис. 6.1). Основным достоинством этой модели является детальное описание связей в среде с точки зрения технических устройств и коммуникационных взаимодействий. Вместе с тем она не принимает в расчет взаимосвязь с учетом мобильности прикладного программного обеспечения.
Рис.
6.1.
Семиуровневая модель взаимодействия информационных систем
Эталонная модель среды открытых систем (OSE/RM) определяет разделение любой информационной системы на приложения (прикладные программы и программные комплексы) и среду, в которой эти приложения функционируют. Между приложениями и средой определяются стандартизованные интерфейсы (API), которые являются необходимой частью профилей любой открытой системы. Кроме того, в профилях ИС могут быть определены унифицированные интерфейсы взаимодействия функциональных частей друг с другом и интерфейсы взаимодействия между компонентами среды ИС.
Модель создания информационной системы
Методологически важно наряду с рассмотренными моделями среды ИС предложить модель создания ИС, которая имела бы те же аспекты функциональных групп компонентов (пользователи, функции, данные, коммуникации). Такой подход обеспечит сквозной процесс проектирования и сопровождения на всех стадиях эксплуатации ИС и возможность обоснованного выбора стандартов на разработку систем и документирование проектов.
Компания является сложной онтологической (понятийной) структурой, состоящий из определенной совокупности сущностей и взаимосвязей (рис. 6.2).
Рис.
6.2.
Онтологическое поле современной компании
Взаимодействия между её элементами, определяемые бизнес-логикой и закрепленные в наборе бизнес-правил, и является деятельностью компании. Информационная система «отражает» логику и правила, организуя и преобразуя информационные потоки, автоматизирует процессы работы с данными и информацией и визуализирует результаты в виде наборов отчетных форм. Поэтому для начала следует создать бизнес-модель предприятия, которая является отображением предприятия и его информационно-управляющей системы.
При создании модели формируется «язык общения» руководителей предприятия, консультантов, разработчиков и будущих пользователей, позволяющий выработать единое представление о том, ЧТО и КАК должна делать система управления предприятием (корпоративная система управления). Такая бизнес-модель — осязаемый результат, с помощью которого можно максимально конкретизировать цели внедрения ИС и определиться со следующими параметрами проекта:
- основные цели бизнеса, которые можно достичь посредством автоматизации процессов;
- перечень участков и последовательность внедрения модулей ИС;
- фактическая потребность в объемах закупаемого программного и аппаратного обеспечения;
- реальные оценки сроков развертывания и запуска ИСУ;
- ключевых пользователей ИС и уточненный список членов команды внедрения;
- степень соответствия выбранного вами прикладного программного обеспечения специфике бизнеса вашей компании.
В основе модели всегда лежат бизнес-цели предприятия, полностью определяющие состав всех базовых компонентов модели:
- бизнес-функции, описывающие ЧТО делает бизнес;
- основные, вспомогательные и управленческие процессы, описывающие КАК предприятие выполняет свои бизнес-функции;
- организационно-функциональную структуру, определяющую ГДЕ исполняются бизнес-функции и бизнес-процессы;
- фазы, определяющие КОГДА (в какой последовательности) должны быть внедрены те или иные бизнес-функции;
- роли, определяющие КТО исполняет бизнес-функции и КТО является «хозяином» бизнес-процессов;
- правила, определяющие связь и взаимодействие между всеми ЧТО, КАК, ГДЕ, КОГДА и КТО.
После построения бизнес-модели (или параллельно с этим) можно приступать к формированию модели проектирования, реализации и внедрения самой ИС (рис. 6.3).
Рис.
6.3.
Опыт создания и использования «заказных» ИС позволяет условно выделить следующие основные этапы их жизненного цикла:
- определение требований к системе и их анализ — определение того, что должна делать система;
- проектирование — определение того, как система будет делать то, что она должна делать; проектирование это, прежде всего, спецификация подсистем, функциональных компонентов и способов их взаимодействия в системе;
- разработка — создание функциональных компонентов и отдельных подсистем, соединение подсистем в единое целое;
- тестирование — проверка функционального соответствия системы показателям, определенным на этапе анализа;
- внедрение — установка и ввод системы в действие;
- функционирование — штатный процесс эксплуатации в соответствии с основными целями и задачами ИС;
- сопровождение — обеспечение штатного процесса эксплуатации системы на предприятии заказчика.
Определение требований к системе и анализ является первым этапом создания ИС, на котором требования заказчика уточняются, согласуются, формализуются и документируются. Фактически на этом этапе дается ответ на вопрос: «Для чего предназначена и что должна делать информационная система?». Именно здесь лежит ключ к успеху всего проекта.
Целью системного анализа является преобразование общих, расплывчатых знаний об исходной предметной области (требований заказчика) в точные определения и спецификации для разработчиков, а также генерация функционального описания системы. На этом этапе определяются и специфицируются:
- внешние и внутренние условия работы системы;
- функциональная структура системы;
- распределение функций между человеком и системой, интерфейсы;
- требования к техническим, информационным и программным компонентам системы,
- требования к качеству и безопасности ;
- состав технической и пользовательской документации;
- условия внедрения и эксплуатации.
Разработка перечисленных выше спецификаций при создании ИС, предназначенной для автоматизации управленческих процессов, в общем случае проходит четыре стадии.
Первая стадия анализа — структурный анализ предприятия — начинается с исследования того, как организована система управления предприятием, с обследования функциональной и информационной структуры системы управления, определения существующих и возможных потребителей информации.
По результатам обследования аналитик на первой стадии строит обобщенную логическую модель исходной предметной области, отображающую ее функциональную структуру, особенности основной деятельности и информационное пространство, в котором эта деятельность осуществляется (рис. 6.4). На этом материале аналитик строит функциональную модель «Как есть» (As Is).
Вторая стадия работы, к которой обязательно привлекаются заинтересованные представители заказчика, а при необходимости и независимые эксперты, состоит в анализе модели «Как есть», выявлении ее недостатков и узких мест, определение путей совершенствования системы управления на основе выделенных критериев качества.
Третья стадия анализа, содержащая элементы проектирования, — создание усовершенствованной обобщенной логической модели, отображающей реорганизованную предметную область или ее часть, которая подлежит автоматизации — модель «Как должно быть» (As To Be).
Заканчивается процесс (четвертая стадия) разработкой «Карты автоматизации», представляющей собой модель реорганизованной предметной области, на которой обязательно обозначены «границы автоматизации».
В большинстве случаев модель «Как есть» улучшается системным аналитиком за счет устранения очевидных несоответствий и узких мест, а полученный таким образом вариант модели рассматривается в дальнейшем в качестве предварительной модели «Как должно быть», которая впоследствии дополняется в соответствии со стратегией развития предприятия (рис.6.5).
Рис.
6.5.
Стадии построения модели информационной системы
На стадии анализа требований к проектируемой системе и вводятся:
- классы пользователей и соответствующие диаграммы бизнес-транзакций;
- модели (диаграммы) процессов прикладной деятельности и соответствующие перечни функциональных задач ИС;
- классы объектов предметной области и соответствующие диаграммы «сущность-связь», отражающие информационную модель этой предметной области;
- топология расположения подразделений и пользователей, обслуживаемых данной ИС;
- параметры защиты данных, информации и самой системы.
Основным документом, отражающим результаты работ первого этапа создания ИС, является техническое задание на проект (разработку), содержащее, кроме вышеперечисленных определений и спецификаций, также сведения об очередности создания системы, сведения о выделяемых ресурсах, директивных сроках проведения отдельных этапов работы, организационных процедурах и мероприятиях по приемке этапов, защите проектной информации и т. д.
Следующий этап — проектирование. В реальных условиях проектирование — это поиск, моделирование способа разработки, который удовлетворяет требованиям функциональности системы средствами имеющихся технологий с учетом заданных начальных условий и ограничений. Проектирование информационных систем всегда начинается с определения цели проекта. Основная задача любого успешного проекта заключается в том, чтобы на момент запуска системы и в течение всего времени ее эксплуатации можно было обеспечить:
- требуемую функциональность системы и степень адаптации к изменяющимся условиям ее функционирования;
- требуемую пропускную способность системы и минимальное время реакции системы на запрос;
- безотказную работу системы в требуемом режиме, готовность и доступность системы для обработки запросов пользователей;
- простоту эксплуатации и сопровождения системы;
- необходимую безопасность данных и права доступа пользователей.
Производительность и надёжность являются главными факторами, определяющими эффективность системы. Хорошее проектное решение служит основой высокопроизводительной системы.
Проектирование информационных систем охватывает три основные области:
- проектирование структур данных, которые будут реализованы в базе данных;
- проектирование программ, экранных форм, отчетов, которые будут обеспечивать выполнение запросов к данным;
- проектирование конкретной среды или технологии, а именно: топологии сети, конфигурации аппаратных средств, используемой архитектуры, параллельной обработки, распределенной обработки данных и т. п.
На основе результатов системного анализа на стадии предварительного проекта разрабатываются:
- проект программно-аппаратной реализации, проект пользовательских интерфейсов и технологии работы пользователей в системе;
- архитектура распределенной системы и спецификации телекоммуникационной сети;
- модели (диаграммы) потоков данных;
- функциональные блок-схемы прикладного и системного программного обеспечения (последние — в соответствии с принятыми моделями среды ИС и профилями стандартов).
Стадия предварительного проекта может предусматривать прототипирование фрагментов, важных с точки зрения пользователя для проверки их соответствия требованиям на ранней фазе разработки.
На стадии детального проектирования разрабатываются:
- комплексы функциональных программ ИС и проект реализации среды ИС;
- структуры данных, средства ведения баз данных;
- сетевые адреса, протоколы телекоммуникаций и другие компоненты среды обмена информацией, включаемые в состав проектируемой ИС;
- правила разграничения доступа пользователей и средства их реализации.
Стадия реализации ИС предусматривает разработку и тестирование компонентов и комплексное тестирование системы.
Стадия эксплуатации и сопровождения предусматривает контроль функционирования ИС, внесение требуемых изменений в информационную базу в процессе текущей работы и модернизацию функций ИС силами прикладных специалистов с помощью инструментальных средств, встроенных в систему.
Этапы разработки, тестирования, внедрения, эксплуатации и сопровождения ИС объединяются термином — реализация. Реализация ИС является чрезвычайно сложным многоаспектным процессом, осуществляемым на базе совокупностей (профилей) гармонизированных международных стандартов, спецификаций и соглашений. Такая практика является залогом того, что создаваемая информационная система будет реализована как «открытая система». Иными словами такая ИС будет масштабируема, мобильна, переносима, обладать дружественными интерфейсами и т. д.
Жизненный цикл ИС формируется в соответствии с принципом нисходящего проектирования и, как правило, носит спирально-итерационный характер. Реализованные этапы, начиная с самых ранних, циклически повторяются в соответствии с изменениями требований и внешних условий, введением дополнительных ограничений и т. п. На каждом этапе жизненного цикла порождается определенный набор технических решений и документов, при этом для каждого этапа исходными являются документы и решения, принятые на предыдущем этапе. Жизненный цикл ИС заканчивается, когда прекращается её программное и техническое сопровождение.
6.2. Реинжиниринг бизнес-процессов
Внедрение информационных технологий и реализованных на их основе информационных систем в повседневную деятельность предприятия дает ему тактические и долгосрочные преимущества в бизнесе. Стремление руководства к использованию ИТ может остаться лишь благими намерениями, если оно не будет следовать сложившимся требованиям и правилам разработки, проектирования и внедрения ИТ. Выше говорилось о базовых требованиях к стандартизации объектов и функциональных задач, без которых реализуемая система не будет являться открытой системой, что приведет впоследствии к многочисленным проблемам при ее внедрении и эксплуатации.
Следование требованиям стандартов при разработке ИС автоматически приводит к тому, чтобы само предприятие — внешняя среда для ИС — также отвечало необходимым требованиям: определение и стандартизация классов пользователей и объектов, топология потоков данных и работ, архитектура наследуемых и разрабатываемых подсистем, состояние бизнес-процессов и т. д.
Бизнес-процесс представляет собой систему последовательных, целенаправленных и регламентированных видов деятельности, в которой посредством управляющего воздействия и с помощью определенных ресурсов за определенное время входы процесса преобразуются в выходы — в результаты, представляющие ценность для потребителя и приносящие прибыль изготовителю.
Стандартный бизнес-процесс в масштабах предприятия реализуется в виде сети основных, вспомогательных, поддерживающих и управленческих процессов (рис. 6.6).
Рис.
6.6.
Содержание стандартного бизнес-процесса предприятия
При этом разделение на основные и вспомогательные процессы в определяющей степени зависит от предметной области и направления деятельности предприятия: для производственной компании, например, деятельность юридического отдела является вспомогательной, а для юридической или консалтинговой фирмы — основной. Идентификация процессов является обязательным условием, без реализации которого невозможна информатизация деятельности.
Руководители предприятия, решившиеся на внедрение ИТ, должны твердо усвоить — начало работ по проектированию информационной системы чаще всего влечет за собой обязательный реинжиниринг бизнес-процессов! Реинжиниринг представляет собой множество методик и рекомендаций, среди них нужно выбрать те, которые наилучшим образом удовлетворяют поставленным целям.
Реинжиниринг бизнес-процессов — это совокупность методов и действий, служащих для перепроектирования процессов в соответствии с изменившимися условиями внешней и внутренней среды и/или целями бизнеса.
Существует несколько базовых правил, которых следует придерживаться в процессе проведения реинжиниринга:
- разработка последовательных пошаговых процедур для перепроектирования процессов;
- использование в проектировании стандартных языков и нотаций;
- наличие эвристических и прагматических показателей, позволяющих оценить или измерить степень соответствия перепроектированного процесса или функциональности заданным целям;
- подход к решению частных задач и к их совокупности должен быть системным;
- даже небольшое улучшение должно давать быстрый положительный эффект.
Реинжиниринг деловых процессов и функций начинается с пересмотра целей предприятия, его структуры, анализа потребностей внутренних пользователей и рынка, производимых продуктов и услуг (рис. 6.7).
Перепланирование целей и задач предполагает пересмотр политики предприятия и ответа на следующие вопросы:
- Какие новые вызовы предъявляют нам изменившиеся условия бизнеса?
- Что представляет предприятие сейчас, и что мы хотим от него в будущем?
- Каких именно потребителей мы обслуживаем, насколько мы удовлетворяем их требования и ожидания, и что нужно сделать для привлечения новых?
- Какие именно показатели определяют эффективность деятельности предприятия, производительность труда и качество продукта, является ли это определение полным и адекватным?
- Какие именно информационные технологии и средства помогут нам в этом?
Рис.
6.7.
Системный подход к реинжинирингу процессов
Для ответа на эти ключевые вопросы необходимо в первую очередь провести детальное описание бизнес-архитектуры предприятия, его бизнес-логики, построить функциональную модель взаимодействия бизнес-процессов, ресурсов и персонала и отразить её в архитектуре ИС, содержании модулей информационных подсистем и визуализации форм представления информации. Необходимо также иметь методики и инструменты реорганизации процессов, решения прикладных задач и управления проектом реинжиниринга (рис. 6.8). Описание бизнес-архитектуры предприятия позволяет:
- построить схему основных потоков данных, работ, движения финансов и документов;
- понять, как информация распределяется между подразделениями, и кто является конечным пользователем в том или ином бизнес-процессе;
- описать взаимодействие процессов и модулей информационной системы;
- определить критическую важность видов информации для конкретных уровней управления предприятием;
- выявить дублированные структуры и связи.
Рис.
6.8.
Базовая основа улучшения процесса
Результатом такого описания является:
- уточненная карта сети процессов;
- матрица взаимосвязей процессов и подразделений, вовлеченных в эти процессы;
- информация о том, какие системы автоматизации существуют, при выполнении каких операций используются, где и какие данные используются, какие системы автоматизации и информатизации необходимо разработать;
- функциональные схемы потоков данных (Data Flow), работ (Work Flow), финансовых потоков (Cash Flow), потоков управленческих воздействий (Control Flow) и документооборота (Doc Flow).
Функциональная модель поможет составить точные спецификации всех операций, процедур и взаимосвязей между ними. Такая модель, если она построена правильно, обеспечивает исчерпывающее описание о функционирующем процессе и обо всех имеющихся в нем потоках информации. Эта модель описывает состояние «Как есть» (As Is). По результатам анализа возможных путей улучшения от реальной модели нужно перейти к модели, характеризующей улучшения — модель «Как будет» (As To Be), вариант — «Как должно быть» (рис. 6.9).
Рис.
6.9.
Схема реинжиниринга бизнес-процесса
Функциональное моделирование является достаточно серьезной проблемой, полнота и соответствие построенной модели зависят как от средств моделирования, так и от квалификации специалистов, выполняющих это моделирование.
Реинжиниринг бизнес-процессов является сложным и многоаспектным проектом, требующим тщательного планирования и проработки деталей. В таблице 6.1 показаны основные этапы реинжиниринга.
Этап | Мероприятия |
---|---|
Планирование и начало работ | Выявление главных причин проведения реформы на предприятии и оценка последствий отказа от такой реформы |
Выявление важнейших процессов, требующих реинжиниринга | |
Выявление единомышленников среди руководства и создание рабочей группы из представителей администрации | |
Обеспечение поддержки проекта руководством | |
Подготовка плана проекта: определение объема, обозначение измеримых целей, выбор методологии, составление подробного графика | |
Согласование целей и объемов проекта с руководством | |
Формирование группы реинжиниринга | |
Выбор консультантов или внешних экспертов | |
Проведение вводного совещания | |
Доведение целей проекта до руководителей низшего звена; начальное информирование всей организации | |
Обучение группы реинжиниринга | |
Подготовка плана и начало работ | |
Исследования | Аналитическое исследование опыта компаний с подобными процессами |
Опрос клиентов и контрольных групп для выявления существующих и будущих требований | |
Опрос служащих и руководителей для выявления вопросов; мозговой штурм | |
Поиск в литературе и прессе данных о тенденциях в отрасли и о чужом опыте | |
Оформление подробных документов на исходные процессы и сбор рабочих данных; выявление недоработок | |
Обзор изменений и вариантов технологий | |
Опрос владельцев и представителей руководства | |
Посещение кружков и семинаров | |
Сбор данных от внешних экспертов и консультантов | |
Проектирование | Мозговой штурм и выработка новаторских идей; упражнения по творческому мышлению, чтобы «снять шоры» |
Проработка сценариев «а что, если?» и применение «шаблонов успеха» других компаний | |
Создание при помощи специалистов 3-5 моделей; разработка комплексных моделей, в которых собрано лучшее от каждой из предыдущих | |
Создание картины идеального процесса | |
Определение моделей нового процесса и их графическое представление | |
Разработка организационной модели в сочетании с новым процессом | |
Определение технологических требований; выбор платформы для новых процессов | |
Выделение краткосрочных и долгосрочных мер | |
Утверждение | Анализ затрат и преимуществ; расчет прибыли на капитал |
Оценка влияния на клиентов и служащих; оценка влияния на конкурентоспособность | |
Подготовка официального документа для высшего руководства | |
Проведение обзорных совещаний для ознакомления и утверждения деталей проекта оргкомитетом и высшим руководством | |
Внедрение | Завершение подробной разработки процессов и организационных моделей; определение новых рабочих обязанностей |
Разработка систем поддержки | |
Реализация предварительных вариантов и первичные испытания | |
Ознакомление работников с новым вариантом; разработка и осуществление плана реформы | |
Разработка поэтапного плана; внедрение как таковое | |
Разработка плана обучения; обучение работников новым процессам и системам | |
Последующие мероприятия | Разработка мероприятий по периодической оценке; определение итогов нового процесса; внедрение программы непрерывного совершенствования нового процесса |
Предоставление окончательного отчета оргкомитету и администрации |
6.3. Отображение и моделирование процессов
На сегодняшний день получили распространение три основные методологии функционального моделирования (и сопутствующий им инструментарий): IDEF (Integrated DEFinition), UML (Unified Modeling Language) и ARIS (Architecture of Integrated Information Systems). Для каждой из них существуют определенные программные продукты, которые помимо разработки позволяют проводить преобразования и операции для последующей работы с полученными моделями. Наибольшее распространение сегодня получили методологии IDEF и программный продукт BPWin, содержащий методологии IDEF0, IDEF3, DFD (Data Flow Diagrams) и ERWin (IDEF1x) от компании Computer Associates.
История методологии IDEF начинается с 70-х годов ХХ века с методологии SADT (Structured Analysis and Design Technique), разработанной Дугласом Россом (Softtech INC). Изначально SADT применялось Министерством Обороны США для практического моделирования процессов в рамках программы ICAM (Integrated Computer Aided Manufacturing). Принципиальным требованием при разработке рассматриваемого семейства методологий была возможность эффективного обмена информацией между всеми специалистами — участниками программы ICAM (Icam DEFinition). В последующем эта методология была трансформирована в стандарт IDEF0 (Function Modeling, FIPS № 183). Семейство IDEF включает уже упомянутые IDEF3 (Process Description Capture) и IDEF1x (Data Modeling, FIPS № 184).
После опубликования стандартов они были успешно применены в самых различных областях бизнеса, показав себя эффективным средством анализа, конструирования и отображения бизнес-процессов (к слову сказать, он активно применяется и в отечественных госструктурах, например в Государственной налоговой инспекции). Более того, собственно с широким применением IDEF (и предшествующей методологии SADT) и связано возникновение основных идей популярного ныне понятия «реинжиниринг бизнес-процессов» (Business Process Reengineering — BPR).
Информационный процесс — это устойчивый процесс (последовательность работ и действий с данными и информацией), относящийся к сопровождению производственно-хозяйственной деятельности компании и обычно ориентированный на информационное обслуживание создания новой стоимости. Бизнес-процесс включает в себя иерархию взаимосвязанных функциональных действий, реализующих одну (или несколько) бизнес-целей компании и отражающий результаты в информационной системе, например, информационное обеспечение управления и анализа выпуска продукции или ресурсное обеспечение выпуска продукции (под продукцией здесь понимают товары, услуги, решения, документы).
Работа с использованием метода IDEF начинается с постановки цели моделирования. Мировой опыт свидетельствует, что ошибки при постановке цели приводят в среднем к 50 % неудач в процессе моделирования. Формулирование цели изначально направляет работу в заданном направлении, а значит, ограничивает круг вопросов для анализа. Практическая работа начинается с определения контекста (Context, Context Diagram), то есть верхнего уровня системы, в нашем случае — предприятия. После формулировки цели необходимо очертить область моделирования (Scope), которая в последующем будет определять общие направления движения и глубину детализации (Decomposition). Собственно, сама методология IDEF определяет стандартизированные объекты для работы и отображения. Например, к таковым относятся функция (Activity), интерфейсная дуга (Arrow), заметка (Note) а также способ их расположения и трактования (Semantics).
В последнее время на российском рынке появился программный продукт Business Studio, который специально создан для работы с методами IDEF и обладает интуитивным и дружественным интерфейсом (User-friendly Interface).
Рис.
6.10.
Базовый блок методологии IDEF0
В основе нотации и методологии IDEF0 лежит понятие «блока», то есть прямоугольника, который выражает некоторую функцию бизнеса (рис. 6.10). В соответствии со стандартом функция должна быть выражена глагольным оборотом В IDEF0 роли сторон прямоугольника (функциональные значения) различны: верхняя сторона имеет значение «управление», левая — «вход», правая — «выход», нижняя — «механизм исполнения».
Вторым элементом методологии и нотации является «поток», называемый в стандарте «интерфейсная дуга». Это элемент, описывающий данные, неформальное управление, или что-либо другое, оказывающее влияние на функцию, изображенную блоком. Потоки обозначаются оборотом существительного.
В зависимости от того, к какой стороне блока направлен поток, он, соответственно, носит название «входной», «выходной», «управляющий». Изобразительным элементом, представляющим поток, является стрелка. Поток можно интерпретировать как представление объекта, под которым понимается как информационный объект, так и реальный физический объект.
Важным фактором является то, что «источником» и «приемником» потоков (то есть, началом и концом стрелки) могут быть, как правило, только блоки. При этом источником может являться только выходная сторона блока, приемником — любая из трех оставшихся. Если же необходимо подчеркнуть внешний характер потока, то может быть применен метод «туннелирования» — скрытие или появление интерфейсной дуги из «туннеля».
И, наконец, «третьим китом» методологии IDEF0 является принцип функциональной декомпозиции блоков, который представляет собой модельную интерпретацию той практической ситуации, что любое действие (тем более такое сложное, как бизнес-процесс) может быть разбито (декомпозировано) на более простые операции (действия, бизнес-функции). Или, другими словами, действие может быть представлено как совокупность элементарных функций.
Пример функциональной модели процесса отгрузки и доставки продукции показан на рис. 6.11.
Степень формализации описания бизнес-процессов может быть различной в зависимости от решаемых при этом задач. Для описания информационных процессов разработан специализированный язык BPEL (Business Process Execution Language). BPEL создан на основе XML для формального описания бизнес-процессов и протоколов их взаимодействия между собой. BPEL расширяет модель взаимодействия Web-служб и включает в эту модель поддержку транзакций.
В настоящее время активно развивается методология BPMS (Business Process Management System) — класс программного обеспечения для управления бизнес-процессами и административными регламентами. (Употребляются также термины BPM-система и просто BPM). Использование BPMS позволяет организовать эффективное взаимодействие между управленцами и ИТ-специалистами, лучше использовать существующие подсистемы и ускорить разработку новых.
Основные функции BPMS — моделирование, исполнение и мониторинг бизнес-процессов. Основываясь на данных мониторинга, предприятия выявляют узкие места и усовершенствуют свои бизнес-процессы. Цикл управления замыкается, когда при помощи BPMS измененные бизнес-процессы оперативно внедряются в эксплуатацию.
Современные методы разработки и развития программного обеспечения ИС в полной мере стараются ориентироваться на возможности автоматизированного оперативного внесения изменений. Наиболее сложным оказался процесс стандартизации языка BPEL для унификации использования одних и тех же конструкций программным обеспечением разных производителей. Фирмы IBM и Microsoft определили два довольно-таки схожих языка: WSFL (Web Services Flow Language) и Xlang, соответственно.
Рост популярности BPML и открытое движение BPMS к пользователям привело корпорации Intalio Inc., IBM и Microsoft к решению объединить эти языки в новый язык BPEL4WS. В апреле 2003 года корпорации BEA Systems, IBM, Microsoft, SAP и Siebel Systems передали BPEL4WS версии 1.1 в OASIS для стандартизирования в Web Services BPEL Technical Committee. Хотя BPEL4WS появился в версиях 1.0 и 1.1, технический комитет WS-BPEL OASIS проголосовал 14 сентября 2004 за то, чтобы назвать спецификацию WS-BPEL 2.0. Это изменение было сделано, чтобы согласовать BPEL с другими стандартами Web-сервисов, которые на основании «Соглашения об именовании» начинаются сочетаниями букв «WS-«.
Корпорации Active Endpoints, Adobe, BEA, IBM, Oracle и SAP опубликовали согласованные спецификации BPEL4 People и WS-HumanTask, в которых описывалось, как может быть реализовано в системе и нотациях BPEL взаимодействие процессов с людьми. Предполагается добавление в BPEL семантики в форме WS-HumanTask и других разнообразных дополнений.
6.4. Обеспечение процесса анализа и проектирования
ИС возможностями CASE-технологий
Термин CASE (Computer Aided Software/System Engineering) используется в настоящее время в весьма широком смысле. Первоначальное значение термина CASE, ограниченное вопросами автоматизации разработки только лишь программного обеспечения (ПО), в настоящее время приобрело новый смысл, охватывающий процесс разработки сложных ИС в целом.
Теперь под термином CASE-средства понимаются программные средства, поддерживающие процессы создания и сопровождения ИС, включая анализ и формулировку требований, проектирование прикладного программного обеспечения (приложений) и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, конфигурационное управление и управление проектом, а также другие процессы. Таким образом, современные CASE-средства вместе с системным программным обеспечением и техническими средствами поддержки образуют полную среду разработки ИС.
Появлению CASE-технологии и CASE-средств предшествовали исследования в области методологии программирования. Программирование обрело черты системного подхода с разработкой и внедрением языков высокого уровня, методов структурного и модульного программирования, средств визуального моделирования и проектирования на базе языка UML (Unified Modeling Language), средств их поддержки, формальных и неформальных языков описаний системных требований и спецификаций и т. д. Кроме того, появлению CASE-технологии способствовали и такие факторы, как:
- подготовка аналитиков и программистов, восприимчивых к концепциям модульного и структурного программирования;
- широкое внедрение и постоянный рост производительности компьютеров, позволившие использовать эффективные графические средства и автоматизировать большинство этапов проектирования;
- внедрение сетевой технологии, предоставившей возможность объединения усилий отдельных исполнителей в единый процесс проектирования путем использования разделяемой базы данных, содержащей необходимую информацию о проекте.
CASE-технология представляет собой методологию проектирования ИС, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех этапах разработки и сопровождения ИС и разрабатывать приложения в соответствии с информационными потребностями пользователей. Большинство существующих CASE-средств основано на методологиях структурного (в основном) или объектно-ориентированного анализа и проектирования, использующих спецификации в виде диаграмм или текстов для описания внешних требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств [Вендров А. М. , http://www.citforum.ru/database/case/index.shtml].
CASE-средства позволяют создавать не только продукт, практически готовый к использованию, но и обеспечить «правильный» процесс его разработки. Основная цель технологии — отделить проектирование программного обеспечения от его кодирования, сборки, тестирования и максимально «скрыть» от будущих пользователей все детали разработки и функционирования ПО. При этом значительно повышается эффективность работы проектировщика: сокращается время разработки, уменьшается число программных ошибок, программные модули можно использовать при следующих разработках.
Большинство CASE-средств основано на парадигме «методология/метод/нотация/структура/средство».
Методология задает руководящие указания для оценки и выбора проекта разработки ПО, этапы и последовательность работ, правила применения тех или иных методов.
Метод — систематическая процедура или технология генерации описаний компонент ПО (например, описание потоков и структур данных).
Нотации предназначены для описания системы в целом, ее элементов: графы, диаграммы, таблица, блок схемы, алгоритмы, формальные языки и языки программирования.
Структуры являются средством для реализации структурного анализа и построения структуры конкретной системы.
Средства — технологические и программные инструменты для поддержки и усиления методов.
CASE-технологии обладают следующими основными достоинствами, которые позволяют широко использовать их при разработке информационных систем:
- ускоряют процесс коллективного проектирования и разработки;
- позволяют за короткий срок создать прототип заказанной системы с заданными свойствами;
- освобождают разработчика от рутинной работы, оставляя время для творчества;
- обеспечивают эффективность и качество разрабатываемого ПО за счет автоматизации контроля всего процесса разработки;
- поддерживают сопровождение и развитие системы на высоком уровне.
Следует отметить, что, несмотря на все потенциальные возможности CASE-средств, существует достаточно много примеров их неудачного внедрения, в результате которых CASE-средства становятся «полочным» ПО (Shelfware).
В связи с этим необходимо учитывать следующее:
- CASE-средства не обязательно дают немедленный эффект, он может быть получен только спустя какое-то время;
- реальные затраты на внедрение CASE-средств обычно намного превышают затраты на их приобретение;
- CASE-средства обеспечивают возможности для получения существенной выгоды только после успешного завершения процесса их внедрения, эффективного обучения пользователей и регулярного применения.
Можно также перечислить следующие факторы, усложняющие определение возможного эффекта от использования CASE-средств:
- широкое разнообразие качества и возможностей CASE-средств;
- относительно небольшое время использования CASE-средств в различных организациях и недостаток опыта их применения;
- широкое разнообразие в практике внедрения различных организаций;
- отсутствие детальных метрик и данных для уже выполненных и текущих проектов;
- широкий диапазон предметных областей проектов;
- различная степень интеграции CASE-средств в различных проектах.
Некоторые аналитики считают, что реальная выгода от использования некоторых типов CASE-средств может быть получена только после одно- или двухлетнего опыта. Другие полагают, что воздействие может реально проявиться в фазе эксплуатации жизненного цикла ИС, когда технологические улучшения могут привести к снижению эксплуатационных затрат.
Ниже перечислены основные виды и последовательность работ, рекомендуемые при построении логических моделей предметной области в рамках CASE-технологии анализа системы управления предприятием.
- Проведение функционального и информационного обследования системы управления (административно-управленческой деятельности) предприятия (рис. 6.1.2):
- определение организационно-штатной структуры предприятия;
- определение функциональной структуры предприятия;
- определение перечня целевых функций структурных элементов (подразделений и должностных лиц);
- определение круга и очередности обследования структурных элементов системы управления согласно сформулированным целевым функциям;
- обследование деятельности выделенных структурных элементов;
- построение FD-диаграммы системы управления с указанием структурных элементов и функций, реализация которых будет моделироваться на DFD-уровне.
- Разработка моделей деятельности структурных элементов и системы управления в целом:
- выделение множества внешних объектов, оказывающих существенное влияние на деятельность структурного элемента;
- спецификация входных и выходных информационных потоков;
- выявление основных процессов, определяющих деятельность структурного элемента и обеспечивающих реализацию его целевых функций;
- спецификация информационных потоков между основными процессами деятельности, уточнение связей между процессами и внешними объектами;
- оценка объемов, интенсивности и других необходимых характеристик информационных потоков;
- разработка иерархии диаграмм потоков данных, образующих функциональную модель деятельности структурного элемента;
- объединение DFD-моделей структурных элементов в единую модель системы управления предприятием.
- Разработка информационных моделей структурных элементов и модели информационного пространства системы управления:
- определение сущностей модели и их атрибутов;
- проведение атрибутного анализа и оптимизация сущностей;
- идентификация отношений между сущностями и определение типов отношений;
- анализ и оптимизация информационной модели;
- объединение информационных моделей в единую модель информационного пространства.
- Разработка предложений по автоматизации системы управления предприятия:
- определение границ автоматизации — составление перечня автоматизируемых структурных элементов, разбиение процессов основной деятельности на автоматические, автоматизированные и ручные;
- составление перечня подсистем и логических АРМов (автоматизированных рабочих мест), определение способов их взаимодействия;
- разработка предложений по очередности проектирования и реализации подсистем и отдельных логических АРМов, входящих в состав ИС;
- разработка требований к средствам базового технического обеспечения ИС;
- разработка требований к средствам базового программного обеспечения ИС.
Логическая модель, отображающая деятельность системы управления предприятия и информационное пространство, в котором эта деятельность протекает, представляют собой «снимок» положения дел (функциональная структура, роли должностных лиц, взаимодействие подразделений, принятые технологии обработки управленческой информации, автоматизированные и неавтоматизированные процессы и т. д.) на момент обследования. Эта модель позволяет понять, что делает и как функционирует предприятие с позиций системного анализа, сформулировать предложения по улучшению ситуации.
Развитие логической модели предметной области, ее последовательное превращение в модель целевой ИС, позволит интегрировать перспективные предложения руководства и ведущих сотрудников предприятия, экспертов и системных аналитиков, сформировать видение новой, реорганизованной и автоматизированной деятельности предприятия (рис. 6.12).
Рис.
6.12.
Модель системы в технологическом CASE-решении
Построенная модель является законченным результатом по следующим причинам.
- Она включает в себя модель существующей неавтоматизированной технологии, принятой на предприятии. Формальный анализ этой модели позволяет выявить узкие места в управлении предприятием и сформулировать рекомендации по его улучшению (независимо от того, предполагается ли дальнейшая разработка автоматизированной системы или нет).
- Она независима и отделяема от конкретных разработчиков, не требует сопровождения и может быть безболезненно передана другим лицам. Более того, если по каким-либо причинам предприятие не готово к реализации проекта в данный момент времени, модель может быть «положена на полку» до тех пор, пока в ней не возникнет необходимость.
- Она позволяет осуществлять эффективное обучение новых работников конкретным направлениям деятельности предприятия, так как соответствующие технологии содержатся в модели.
- С ее помощью можно осуществлять предварительное моделирование перспективных направлений деятельности предприятия с целью выявления новых потоков данных, взаимодействующих процессов и структурных элементов.
- Она обеспечивает распространение накопленного опыта на других предприятиях, дает возможность унифицировать административно-управленческую и финансовую деятельность этих предприятий.
Модель является не просто реализацией начальных этапов работы и основанием для формирования технического задания на ее последующие этапы. Она представляет собой самостоятельный результат, имеющий большое практическое значение, так как позволяет дальнейшее применение CASE-технологий для реального проектирования и разработки ИС.
Современные CASE-пакеты имеют широкие возможности инструментального расширения за счёт использования стандартных программных средств, что делает их чрезвычайно удобными при разработке программных и информационных систем (рис. 6.13 и 6.14).
Рис.
6.13.
Для успешного внедрения CASE-средств организация должна обладать следующими качествами:
- Культура. Готовность к внедрению новых процессов и взаимоотношений между разработчиками и пользователями, ИТ/ИС-управленцами и пользователями.
- Управление. Четкое руководство и организованность по отношению к наиболее важным этапам и процессам внедрения.
- Технология. Понимание ограниченности существующих возможностей и способность принять новую технологию.
Рис.
6.14.
Если организация не обладает хотя бы одним из перечисленных качеств, то внедрение CASE-средств может закончиться неудачей независимо от степени тщательности следования различным рекомендациям по внедрению.
В качестве примеров популярных CASE-средств укажем программные средства компании Computer Associates, IBM-Rational Software и Oracle:
- BPwin — моделирование бизнес-процессов;
- ERwin — моделирование баз данных и хранилищ данных;
- ERwin Examiner — проверка структуры СУБД и моделей, созданных в Erwin;
- ModelMart — среда для командной работы проектировщиков;
- Paradigm Plus — моделирование приложений и генерация объектного кода;
- Rational Rose — моделирование бизнес-процессов и компонентов приложений
- Rational Suite AnalystStudio — пакет для аналитиков данных;
- Oracle Designer (входит в Oracle9i Developer Suite) — высоко функциональное средство проектирования программных систем и баз данных, реализующее технологию CASE и собственную методологию Oracle — CDM. Позволяет команде разработчиков полностью провести проект, начиная от анализа бизнес-процессов через моделирование к генерации кода и получению прототипа, а в дальнейшем и окончательного продукта. Сложное CASE-средство, имеет смысл использовать при ориентации на линейку продуктов Oracle.
Рис.
6.15.
Состав CASE-средства IBM-Rational
Рис.
6.16.
Сопровождение ЖЦ программного продукта с RR
Самым мощным из указанных программных пакетов является пакет Rational Rose (RR) компании IBM-Rational, с помощью которого можно спроектировать и сопровождать весь жизненный цикл разработки программного продукта (рис. 6.15).
Пакет включает набор средств моделирования объектно-ориентированных информационных систем, базирующихся на языке моделирования UML. RR способен решать практически любые задачи в проектировании информационных систем: от анализа бизнес процессов до кодогенерации на определенном языке программирования, позволяет разрабатывать как высокоуровневые, так и низкоуровневые модели, осуществляя тем самым абстрактное либо логическое проектирование (рис. 6.16).
6.5. Внедрение информационных систем
Внедрение корпоративной ИС, разработанной самостоятельно или приобретенной у поставщика, зачастую сопровождается ломкой (перепроектированием) существующих на предприятии бизнес-процессов. Приходиться перестраивать их под требования стандартов и логику внедряемой системы. Отметим сразу, что внедрение ИС решает ряд управленческих и технических проблем, однако порождает проблемы, связанные с человеческим фактором.
Внедрение информационной системы, как правило, значительно облегчает управление деятельностью предприятия, оптимизирует внутренние и внешние потоки информации, ликвидирует узкие места в управлении. Однако после того как система успешно установлена, «обкатана» в работе и показала свою эффективность, у части сотрудников выявляется нежелание использовать ИС в работе. В результате проведённого реинжиниринга становится ясно, что некоторые сотрудники в большой степени дублирует работу других или вовсе не нужна. Кроме того, внедрение КИС сопровождается обязательным обучением, но, как показывает российский опыт, желающих переучиваться не так много. Ломка старых навыков и прививание новых — долгий и трудный процесс!
Надо четко понимать, что корпоративная ИС призвана упростить управление организацией, улучшить процессы, усилить контроль и обеспечить этим конкурентные выгоды. Только с такой точки зрения можно оценивать пользу от её внедрения.
Следуя этой логике, становится понятно, что хотя корпоративная ИС предназначена в целом для обеспечения всех пользователей необходимой информацией, управление разработкой и внедрением КИС является прерогативой высшего руководства компании! Понимают ли это руководители?
Здесь тоже приходиться бороться с живучими стереотипами. «Зачем мне корпоративная система, если дела на предприятии и так идут хорошо?». «Зачем, что-то ломать, если все работает?». Но ведь ломать-то чаще всего и не надо. На первом этапе нужно лишь грамотно и корректно формализовать и перенести идентифицированные процессы, в рамках которых живет предприятие, в корпоративную ИС. Подобная формализация лишь отточит, отшлифует удачные маркетинговые и производственные находки, оптимизирует процесс управления и контроля и позволит в дальнейшем проводить целенаправленные изменения.
Внедрение новой ИС — сложный процесс, длящийся от нескольких месяцев для небольших ИС до нескольких лет для ИС больших распределенных компаний с широкой номенклатурой продуктов и большим количеством поставщиков. Успех проекта по разработке (приобретению) и внедрению ИС во многом зависит от готовности предприятия к ведению проекта, личной заинтересованности и воли руководства, реальной программы действий, наличия ресурсов, обученного персонала, способности к преодолению сопротивления на всех уровнях сложившейся организации.
К настоящему времени сложился стандартный набор приемов внедрения ИС. Основное правило: выполнять обязательные фазы последовательно и не пропускать ни одной из них.
Критически важными для внедрения являются следующие
факторы:
- наличие четко сформулированных целей проекта и требований к ИС;
- наличие стратегии внедрения и использования ИС;
- проведение предпроектного обследования предприятия и построения моделей «Как есть» и «Как будет»;
- планирование работ, ресурсов и контроль выполнения плана внедрения;
- участие высшего руководства во внедрении системы;
- проведение работ по внедрению ИС специалистами по интегрированию систем совместно со специалистами предприятия;
- регулярный мониторинг качества выполняемых работ;
- быстрое получение положительных результатов хотя бы в части внедренных модулей ИС или в процессе её опытной эксплуатации.
Перед началом разработки проекта внедрения необходимо:
- максимально формализовать цели проекта внедрения ИС;
- оценить минимально необходимые затраты и статьи расхода;
- установить высокий приоритет проекта внедрения перед остальными текущими проектами;
- наделить руководителя проекта максимально возможными полномочиями;
- провести массовую просветительскую работу с персоналом предприятия с целью довести до каждого важность и необходимость предстоящих преобразований;
- разработать организационные меры для применения новых информационных технологий;
- распределить персональную ответственность по всем этапам внедрения и опытной эксплуатации.
Необходимо также определить функциональные сферы внедрения модулей информационной системы:
- организационное управление;
- организационно-административное обеспечение;
- управление бизнес-процессами;
- управленческий, планово-финансовый и бухгалтерский учет;
- управление персоналом;
- управление документацией;
- управление материально-техническим обеспечением;
- управление связями с клиентами и внешней средой.
Кроме того, что перечислено выше, надо задать технологические требования к внедрению ИС:
- системная платформа: внедрение и адаптация готового решения от производителя или разработка на заказ в соответствии с техническим заданием заказчика.
- интегрируемость: данные хранятся и обрабатываются в едином информационном пространстве — это обеспечивает их полноту, непротиворечивость, достоверность и возможность многократного использования; система может включать в себя вновь разработанные и уже используемые технологии и приложения.
- адаптируемость: система настраивается в соответствии с требованиями заказчика и на особенности информационного поля заказчика.
- распределенность: система может эффективно функционировать в территориально удаленных подразделениях и филиалах предприятия.
- масштабируемость: система может выполняться в виде каркаса, содержащего базовые модули, и дополняться в соответствии с требованиями изменяющейся внешней и внутренне среды.
Основные фазы внедрения информационной системы
Фаза «Предварительные работы по подготовке проекта внедрения ИС». В ходе предпроектного обследования предприятия (рис. 6.1.4) собирается подробная информация о структурном построении организации, функциональных связях, системе управления, об основных бизнес-процессах, о потоках внутри предприятия (Control Flow, Doc Flow, Data Flow, Work Flow, Cash Flow), необходимая для построения соответствующих моделей и выбора объектов для автоматизации. Оцениваются сроки, ресурсы, виды и объемы работ, номенклатура и стоимость программно-аппаратных и телекоммуникационных средств, стоимость обучения персонала и т. д.
Фаза «Подготовка проекта». После завершения первой фазы осуществляется предварительное планирование и формирование процедур запуска проекта:
- формирование проектной и экспертной групп;
- распределение полномочий и ответственности;
- определение организационно-технических требований к процессу внедрения;
- уточнение спецификаций и ожиданий заказчика;
- обучение группы внедрения, состоящей из специалистов предприятия-заказчика.
Последний очень важный момент почему-то часто пропускается при составлении плана внедрения. А ведь от него в огромной степени зависит успех всего проекта! После начала финансирования проект считается запущенным к исполнению.
Фаза «Концептуальная проработка проекта». В течение этой фазы:
- формируется и утверждается концептуальный проект;
- достигается обязательное однозначное понимание намерений всех участников проекта относительно внедряемой ИС;
- уточняются и конкретизируются цели и задачи проекта;
- определяются размеры прототипа системы;
- согласуются укрупненный план работы, последовательность этапов и условия опытной эксплуатации, планово-финансовые и отчетные показатели.
При этом все указанные действия в обязательном порядке документируются, согласуются и утверждаются всеми заинтересованными и ответственными сторонами.
Рис.
6.17.
Примерное содержание репозитория проекта внедрения
Фаза «Реализация проекта». Во время проведения основных работ по внедрению создается, устанавливается и конфигурируется системная среда, определяются процедуры системного администрирования, устанавливаются основные программно-аппаратные комплексы и приложения. В системе настраиваются организационно-штатные и организационно-функциональные структуры предприятия с использованием таких организационных единиц, как филиал, департамент, отдел, рабочая группа и т. д.
Осуществляется установка, конфигурирование и настройка сетевых и телекоммуникационных средств, производится перенос данных из прежних локальных систем и формирование интерфейсов с унаследованными и внешними системами. При этом все создаваемые модели, планы, рабочие программные продукты, документация помещаются в сквозной репозиторий проекта внедрения (рис. 6.17). Важной частью этого репозитория является система документации, формируемая в рамках проекта (рис. 6.18).
Рис.
6.18.
Примерный состав документации по процессу внедрения ИС
Отрабатываются системные вопросы безопасности работы системы в многопользовательском режиме. Создаются приложения, шаблоны, отчеты, клиентские формы доступа, распределятся полномочия пользователей. Проводится «прогонка» всех систем в «боевом режиме» с участием всех заинтересованных сторон. После окончания фазы реализации проект внедрения считается законченным. Информационная система передается в эксплуатацию.
Александр Игоревич Фисенко
Эксперт по предмету «Информационные технологии»
Задать вопрос автору статьи
Разработка информационной системы (ИС) начинается с переговоров между заказчиком и исполнителем.
Основными этапами разработки информационной системы являются:
- Предварительный этап
- Сбор требований
- Проектирование
- Реализация
- Подготовка ИС к эксплуатации
- Опытно-промышленная эксплуатация
- Сопровождение и развитие системы
Предварительный этап
Замечание 1
На данном этапе определяются основные цели и задачи разрабатываемой информационной системы. С этой целью обсуждается концепция ИС, ключевые технические моменты, объемы и сроки выполняемой работы, ее стоимость. Результатом предварительного этапа является разработка первого фундаментального проектного документа – устава проекта.
В уставе проекта определяются принципиальные моменты, которые связаны с процессом разработки и внедрения ИС:
- описывается проект, определяются цели и задачи создания ИС;
- описывается состав работ;
- определяются сроки, бюджет, список объектов, которые должны быть автоматизированы;
- предоставляется список необходимого аппаратного и программного обеспечения для разработки ИС;
- выделяются основные этапы разработки и внедрения ИС и др.
Сбор требований
На данном этапе проводится систематизация требований и пожеланий к разрабатываемой ИС, проводится анализ входной и выходной документации.
В результате составляется техническое задание на разработку и внедрение ИС. В техническом задании отображается назначение и цель создания ИС, описывается объект автоматизации и основные автоматизируемые бизнес-процессы, предъявляются требования к системе: структура, функции (задачи), которые должна решать система, требования к техническому и организационному обеспечению, надежность и безопасность ИС и т.п.
Проектирование
На данном этапе подготавливается детальный проект всех сценариев, связанных с разработкой и внедрением ИС.
«Разработка информационной системы» 👇
В результате проектирования оформляется технический (концептуальный) проект с описанием:
- архитектуры ИС;
- структуры базы данных;
- проектных решений, которые представляются с помощью детального описания сценариев всех бизнес-процессов, которые подвергаются автоматизации;
- сценариев внедрения ИС во внешние программные продукты;
- источников исходной информации;
- вариантов первоначального наполнения ИС информацией;
- разграничение прав доступа к данным и полномочия пользователей;
- концепции обучения будущих пользователей ИС.
Реализация
Этап выполнения требований к ИС, которые были изложены в Техническом задании и Техническом проекте. Выполняется разработка всех необходимых программных компонентов, создается структура базы данных, производится установка, настройка и тестирование всех компонентов ИС и т.п.
Замечание 2
Завершением этапа реализации является разработка руководства по установке и настройке ИС, предоставляется шаблон базы данных и регистрируются все выполненные программные разработки.
Подготовка ИС к эксплуатации
Выполняется установка и настройка всех компонентов системы на территории заказчика ИС, проводится предварительное тестирование, разрабатывается пользовательская документация, проводится обучение пользователей, выполняется загрузка исходных данных, проводятся испытания системы, определяются роли пользователей в системе соответственно их должностным обязанностям.
Опытно-промышленная эксплуатация
Эксплуатация проводится на протяжении определенного времени с целью выявить и исправить недоработки в разработанной ИС, если такие имеются.
Сопровождение и развитие системы
При окончании разработки и внедрения информационной системы в работу предприятия выполнение обязательств разработчиком данной системы не прекращается. Поэтому предполагается продление сотрудничества с целью дальнейшей технической поддержки работы системы, внесения при необходимости изменений в работу системы, которые могут потребоваться при эксплуатации ИС.
Находи статьи и создавай свой список литературы по ГОСТу
Поиск по теме
Тематический план
-
-
Select activity Объявления
-
-
Информация в современном мире превратилась в один из наиболее важных ресурсов, а информационные системы (ИС) стали необходимым инструментом практически во всех сферах деятельности.
Разнообразие задач, решаемых с помощью ИС, привело к появлению множества разнотипных систем, отличающихся принципами построения и заложенными в них правилами обработки информации.
Информационные системы можно классифицировать по целому ряду различных признаков. В основу рассматриваемой классификации положены наиболее существенные признаки, определяющие функциональные возможности и особенности построения современных систем. В зависимости от объема решаемых задач, используемых технических средств, организации функционирования, информационные системы делятся на ряд групп (классов) ( рис. 1.1).
По типу хранимых данных ИС делятся на фактографические и документальные. Фактографические системы предназначены для хранения и обработки структурированных данных в виде чисел и текстов. Над такими данными можно выполнять различные операции. В документальных системах информация представлена в виде документов, состоящих из наименований, описаний, рефератов и текстов. Поиск по неструктурированным данным осуществляется с использованием семантических признаков. Отобранные документы предоставляются пользователю, а обработка данных в таких системах практически не производится.
Основываясь на степени автоматизации информационных процессов в системе управления фирмой, информационные системы делятся на ручные, автоматические и автоматизированные.
Ручные ИС характеризуются отсутствием современных технических средств переработки информации и выполнением всех операций человеком.
В автоматических ИС все операции по переработке информации выполняются без участия человека.
Автоматизированные ИС предполагают участие в процессе обработки информации и человека, и технических средств, причем главная роль в выполнении рутинных операций обработки данных отводится компьютеру. Именно этот класс систем соответствует современному представлению понятия «информационная система».
В зависимости от характера обработки данных ИС делятся на информационно-поисковые и информационно-решающие.
Информационно-поисковые системы производят ввод, систематизацию, хранение, выдачу информации по запросу пользователя без сложных преобразований данных. (Например, ИС библиотечного обслуживания, резервирования и продажи билетов на транспорте, бронирования мест в гостиницах и пр.)
Информационно-решающие системы осуществляют, кроме того, операции переработки информации по определенному алгоритму. По характеру использования выходной информации такие системы принято делить на управляющие и советующие.
Результирующая информация управляющих ИС непосредственно трансформируется в принимаемые человеком решения. Для этих систем характерны задачи расчетного характера и обработка больших объемов данных. (Например, ИС планирования производства или заказов, бухгалтерского учета.)
Советующие ИС вырабатывают информацию, которая принимается человеком к сведению и учитывается при формировании управленческих решений, а не инициирует конкретные действия. Эти системы имитируют интеллектуальные процессы обработкизнаний, а не данных. (Например, экспертные системы.)
В зависимости от сферы применения различают следующие классы ИС.
Информационные системы организационного управления — предназначены для автоматизации функций управленческого персонала как промышленных предприятий, так и непромышленных объектов (гостиниц, банков, магазинов и пр.).
Основными функциями подобных систем являются: оперативный контроль и регулирование, оперативный учет и анализ, перспективное и оперативное планирование, бухгалтерский учет, управление сбытом, снабжением и другие экономические и организационные задачи.
ИС управления технологическими процессами (ТП) — служат для автоматизации функций производственного персонала по контролю и управлению производственными операциями. В таких системах обычно предусматривается наличие развитых средств измерения параметров технологических процессов (температуры, давления, химического состава и т.п.), процедур контроля допустимости значений параметров и регулирования технологических процессов.
ИС автоматизированного проектирования (САПР) — предназначены для автоматизации функций инженеров-проектировщиков, конструкторов, архитекторов, дизайнеров при создании новой техники или технологии. Основными функциями подобных систем являются: инженерные расчеты, создание графической документации (чертежей, схем, планов), создание проектной документации, моделирование проектируемых объектов.
Интегрированные (корпоративные) ИС – используются для автоматизации всех функций фирмы и охватывают весь цикл работ от планирования деятельности до сбыта продукции. Они включают в себя ряд модулей (подсистем), работающих в едином информационном пространстве и выполняющих функции поддержки соответствующих направлений деятельности. Типовые задачи, решаемые модулями корпоративной системы, приведены в таблице 1.1.
Таблица 1.1. Функциональное назначение модулей корпоративной ИС.
Подсистема маркетинга
Производственные подсистемы
Финансовые и учетные подсистемы
Подсистема кадров (человеческих ресурсов)
Прочие подсистемы (например, ИС руководства)
Исследование рынка и прогнозирование продаж
Планирование объемов работ и разработка календарных планов
Управление портфелем заказов
Анализ и прогнозирование потребности в трудовых ресурсах
Контроль за деятельностью фирмы
Управление продажами
Оперативный контроль и управление производством
Управление кредитной политикой
Ведение архивов записей о персонале
Выявление оперативных проблем
Рекомендации по производству новой продукции
Анализ работыоборудования
Разработка финансового плана
Анализ и планирование подготовки кадров
Анализ управленческих и стратегических ситуаций
Анализ и установление цены
Участие в формировании заказов поставщикам
Финансовый анализ и прогнозирование
Обеспечение процесса выработки стратегических решений
Учет заказов
Управление запасами
Контроль бюджета, бухгалтерский учет и расчет зарплаты
Анализ современного состояния рынка ИС показывает устойчивую тенденцию роста спроса на информационные системы организационного управления. Причем спрос продолжает расти именно на интегрированные системы управления. Автоматизация отдельной функции, например, бухгалтерского учета или сбыта готовой продукции, считается уже пройденным этапом для многих предприятий.
Существует классификация ИС в зависимости от уровня управления, на котором система используется.
Информационная система операционного уровня — поддерживает исполнителей, обрабатывая данные о сделках и событиях (счета, накладные, зарплата, кредиты, поток сырья и материалов). Информационная система операционного уровня является связующим звеном между фирмой и внешней средой.
Задачи, цели, источники информации и алгоритмы обработки на оперативном уровне заранее определены и в высокой степени структурированы.
Информационные системы специалистов — поддерживают работу с данными и знаниями, повышают продуктивность и производительность работы инженеров и проектировщиков. Задача подобных информационных систем – интеграция новых сведений в организацию и помощь в обработке бумажных документов.
Информационные системы уровня менеджмента — используются работниками среднего управленческого звена для мониторинга, контроля, принятия решений и администрирования. Основные функции этих информационных систем:
- сравнение текущих показателей с прошлыми;
- составление периодических отчетов за определенное время, а не выдача отчетов по текущим событиям, как на оперативном уровне;
- обеспечение доступа к архивной информации и т.д.
Стратегическая информационная система — компьютерная информационная система, обеспечивающая поддержку принятия решений по реализации стратегических перспективных целей развития организации.
Информационные системы стратегического уровня помогают высшему звену управленцев решать неструктурированные задачи, осуществлять долгосрочное планирование. Основная задача — сравнение происходящих во внешнем окружении изменений с существующим потенциалом фирмы. Они призваны создать общую среду компьютерной телекоммуникационной поддержки решений в неожиданно возникающих ситуациях. Используя самые совершенные программы, эти системы способны в любой момент предоставить информацию из многих источников. Некоторые стратегические системы обладают ограниченными аналитическими возможностями.
С точки зрения программно-аппаратной реализации можно выделить ряд типовых архитектур ИС.
Традиционные архитектурные решения основаны на использовании выделенных файл-серверов или серверов баз данных. Существуют также варианты архитектур корпоративных информационных систем, базирующихся на технологии Internet (Intranet-приложения). Следующая разновидность архитектуры информационной системы основывается на концепции «хранилища данных» (DataWarehouse) — интегрированной информационной среды, включающей разнородные информационные ресурсы. И, наконец, для построения глобальных распределенных информационных приложений используется архитектура интеграции информационно-вычислительных компонентов на основе объектно-ориентированного подхода.
Индустрия разработки автоматизированных информационных систем управления зародилась в 1950-х — 1960-х годах и к концу века приобрела вполне законченные формы.
На первом этапе основным подходом в проектировании ИС был метод «снизу-вверх», когда система создавалась как набор приложений, наиболее важных в данный момент для поддержки деятельности предприятия. Основной целью этих проектов было не создание тиражируемых продуктов, а обслуживание текущих потребностей конкретного учреждения. Такой подход отчасти сохраняется и сегодня. В рамках «лоскутной автоматизации» достаточно хорошо обеспечивается поддержка отдельных функций, но практически полностью отсутствует стратегия развития комплексной системы автоматизации, а объединение функциональных подсистем превращается в самостоятельную и достаточно сложную проблему.
Создавая свои отделы и управления автоматизации, предприятия пытались «обустроиться» своими силами. Однако периодические изменения технологий работы и должностных инструкций, сложности, связанные с разными представлениями пользователей об одних и тех же данных, приводили к непрерывным доработкам программных продуктов для удовлетворения все новых и новых пожеланий отдельных работников. Как следствие — и работа программистов, и создаваемые ИС вызывали недовольство руководителей и пользователей системы.
Следующий этап связан с осознанием того факта, что существует потребность в достаточно стандартных программных средствах автоматизации деятельности различных учреждений и предприятий. Из всего спектра проблем разработчики выделили наиболее заметные: автоматизацию ведения бухгалтерского аналитического учета и технологических процессов. Системы начали проектироваться «сверху-вниз», т.е. в предположении, что одна программа должна удовлетворять потребности многих пользователей.
Сама идея использования универсальной программы накладывает существенные ограничения на возможности разработчиков по формированию структуры базы данных, экранных форм, по выбору алгоритмов расчета. Заложенные «сверху» жесткие рамки не дают возможности гибко адаптировать систему к специфике деятельности конкретного предприятия: учесть необходимую глубину аналитического и производственно-технологического учета, включить необходимые процедуры обработки данных, обеспечить интерфейс каждого рабочего места с учетом функций и технологии работы конкретного пользователя. Решение этих задач требует серьезных доработок системы. Таким образом, материальные и временные затраты на внедрение системы и ее доводку под требования заказчика обычно значительно превышают запланированные показатели.
Согласно статистическим данным, собранным Standish Group (США), из 8380 проектов, обследованных в США в 1994 году, неудачными оказались более 30% проектов, общая стоимость которых превышала 80 миллиардов долларов. При этом оказались выполненными в срок лишь 16% от общего числа проектов, а перерасход средств составил 189% от запланированного бюджета.
В то же время, заказчики ИС стали выдвигать все больше требований, направленных на обеспечение возможности комплексного использования корпоративных данных в управлении и планировании своей деятельности.
Таким образом, возникла насущная необходимость формирования новой методологии построения информационных систем.
Цель такой методологии заключается в регламентации процесса проектирования ИС и обеспечении управления этим процессом с тем, чтобы гарантировать выполнение требований как к самой ИС, так и к характеристикам процесса разработки. Основными задачами, решению которых должна способствовать методология проектирования корпоративных ИС, являются следующие:
- обеспечивать создание корпоративных ИС, отвечающих целям и задачам организации, а также предъявляемым требованиям по автоматизации деловых процессов заказчика;
- гарантировать создание системы с заданным качеством в заданные сроки и в рамках установленного бюджета проекта;
- поддерживать удобную дисциплину сопровождения, модификации и наращивания системы;
- обеспечивать преемственность разработки, т.е. использование в разрабатываемой ИС существующей информационной инфраструктуры организации (задела в области информационных технологий).
Внедрение методологии должно приводить к снижению сложности процесса создания ИС за счет полного и точного описания этого процесса, а также применения современных методов и технологий создания ИС на всем жизненном цикле ИС — от замысла до реализации.
Проектирование ИС охватывает три основные области:
- проектирование объектов данных, которые будут реализованы в базе данных;
- проектирование программ, экранных форм, отчетов, которые будут обеспечивать выполнение запросов к данным;
- учет конкретной среды или технологии, а именно: топологии сети, конфигурации аппаратных средств, используемойархитектуры (файл-сервер или клиент-сервер), параллельной обработки, распределенной обработки данных и т.п.
Проектирование информационных систем всегда начинается с определения цели проекта. В общем виде цель проекта можно определить как решение ряда взаимосвязанных задач, включающих в себя обеспечение на момент запуска системы и в течение всего времени ее эксплуатации:
- требуемой функциональности системы и уровня ее адаптивности к изменяющимся условиям функционирования;
- требуемой пропускной способности системы;
- требуемого времени реакции системы на запрос;
- безотказной работы системы;
- необходимого уровня безопасности;
- простоты эксплуатации и поддержки системы.
Согласно современной методологии, процесс создания ИС представляет собой процесс построения и последовательного преобразования ряда согласованных моделей на всех этапах жизненного цикла (ЖЦ) ИС. На каждом этапе ЖЦ создаются специфичные для него модели — организации, требований к ИС, проекта ИС, требований к приложениям и т.д. Модели формируются рабочими группами команды проекта, сохраняются и накапливаются в репозитории проекта. Создание моделей, ихконтроль, преобразование и предоставление в коллективное пользование осуществляется с использованием специальных программных инструментов — CASE-средств.
Процесс создания ИС делится на ряд этапов (стадий [ 1.1 ] ), ограниченных некоторыми временными рамками и заканчивающихся выпуском конкретного продукта (моделей, программных продуктов, документации и пр.).
Обычно выделяют следующие этапы создания ИС: формирование требований к системе, проектирование, реализация, тестирование, ввод в действие, эксплуатация и сопровождение [ 1.1 ] [ 1.2 ] . (Последние два этапа далее не рассматриваются, поскольку выходят за рамки тематики курса.)
Начальным этапом процесса создания ИС является моделирование бизнес-процессов, протекающих в организации и реализующих ее цели и задачи. Модель организации, описанная в терминах бизнес-процессов и бизнес-функций, позволяет сформулировать основные требования к ИС. Это фундаментальное положение методологии обеспечивает объективность в выработке требований к проектированию системы. Множество моделей описания требований к ИС затем преобразуется в систему моделей, описывающих концептуальный проект ИС. Формируются модели архитектуры ИС, требований к программному обеспечению (ПО) и информационному обеспечению (ИО). Затем формируется архитектура ПО и ИО, выделяются корпоративные БД и отдельные приложения, формируются модели требований к приложениям и проводится их разработка, тестирование и интеграция.
Целью начальных этапов создания ИС, выполняемых на стадии анализа деятельности организации, является формирование требований к ИС, корректно и точно отражающих цели и задачи организации-заказчика. Чтобы специфицировать процесс создания ИС, отвечающей потребностям организации, нужно выяснить и четко сформулировать, в чем заключаются эти потребности. Для этого необходимо определить требования заказчиков к ИС и отобразить их на языке моделей в требования к разработке проекта ИС так, чтобы обеспечить соответствие целям и задачам организации.
Задача формирования требований к ИС является одной из наиболее ответственных, трудно формализуемых и наиболее дорогих и тяжелых для исправления в случае ошибки. Современные инструментальные средства и программные продукты позволяют достаточно быстро создавать ИС по готовым требованиям. Но зачастую эти системы не удовлетворяют заказчиков, требуют многочисленных доработок, что приводит к резкому удорожанию фактической стоимости ИС. Основной причиной такого положения является неправильное, неточное или неполное определение требований к ИС на этапе анализа.
На этапе проектирования прежде всего формируются модели данных. Проектировщики в качестве исходной информации получают результаты анализа. Построение логической и физической моделей данных является основной частью проектирования базы данных. Полученная в процессе анализа информационная модель сначала преобразуется в логическую, а затем в физическую модель данных.
Параллельно с проектированием схемы базы данных выполняется проектирование процессов, чтобы получить спецификации (описания) всех модулей ИС. Оба эти процесса проектирования тесно связаны, поскольку часть бизнес-логики обычно реализуется в базе данных (ограничения, триггеры, хранимые процедуры). Главная цель проектирования процессов заключается в отображении функций, полученных на этапе анализа, в модули информационной системы. При проектировании модулей определяют интерфейсы программ: разметку меню, вид окон, горячие клавиши и связанные с ними вызовы.
Конечными продуктами этапа проектирования являются:
- схема базы данных (на основании ER-модели, разработанной на этапе анализа);
- набор спецификаций модулей системы (они строятся на базе моделей функций).
Кроме того, на этапе проектирования осуществляется также разработка архитектуры ИС, включающая в себя выбор платформы (платформ) и операционной системы (операционных систем). В неоднородной ИС могут работать несколько компьютеров на разных аппаратных платформах и под управлением различных операционных систем. Кроме выбора платформы, на этапе проектирования определяются следующие характеристики архитектуры:
- будет ли это архитектура «файл-сервер» или «клиент-сервер»;
- будет ли это 3-уровневая архитектура со следующими слоями: сервер, ПО промежуточного слоя (сервер приложений), клиентское ПО;
- будет ли база данных централизованной или распределенной. Если база данных будет распределенной, то какие механизмы поддержки согласованности и актуальности данных будут использоваться;
- будет ли база данных однородной, то есть, будут ли все серверы баз данных продуктами одного и того же производителя (например, все серверы только Oracle или все серверы только DB2 UDB). Если база данных не будет однородной, то какое ПО будет использовано для обмена данными между СУБД разных производителей (уже существующее или разработанное специально как часть проекта);
- будут ли для достижения должной производительности использоваться параллельные серверы баз данных (например, Oracle Parallel Server, DB2 UDB и т.п.).
Этап проектирования завершается разработкой технического проекта ИС.
На этапе реализации осуществляется создание программного обеспечения системы, установка технических средств, разработка эксплуатационной документации.
Этап тестирования обычно оказывается распределенным во времени.
После завершения разработки отдельного модуля системы выполняют автономный тест, который преследует две основные цели:
- обнаружение отказов модуля (жестких сбоев);
- соответствие модуля спецификации (наличие всех необходимых функций, отсутствие лишних функций).
После того как автономный тест успешно пройден, модуль включается в состав разработанной части системы и группасгенерированных модулей проходит тесты связей, которые должны отследить их взаимное влияние.
Далее группа модулей тестируется на надежность работы, то есть проходят, во-первых, тесты имитации отказов системы, а во-вторых, тесты наработки на отказ. Первая группа тестов показывает, насколько хорошо система восстанавливается после сбоев программного обеспечения, отказов аппаратного обеспечения. Вторая группа тестов определяет степень устойчивости системыпри штатной работе и позволяет оценить время безотказной работы системы. В комплект тестов устойчивости должны входить тесты, имитирующие пиковую нагрузку на систему.
Затем весь комплект модулей проходит системный тест — тест внутренней приемки продукта, показывающий уровень его качества. Сюда входят тесты функциональности и тесты надежности системы.
Последний тест информационной системы — приемо-сдаточные испытания. Такой тест предусматривает показ информационной системы заказчику и должен содержать группу тестов, моделирующих реальные бизнес-процессы, чтобы показать соответствие реализации требованиям заказчика.
Необходимость контролировать процесс создания ИС, гарантировать достижение целей разработки и соблюдение различных ограничений (бюджетных, временных и пр.) привело к широкому использованию в этой сфере методов и средств программной инженерии: структурного анализа, объектно-ориентированного моделирования, CASE-систем.
-
Методология проектирования информационных систем описывает процесс создания и сопровождения систем в виде жизненного цикла (ЖЦ) ИС, представляя его как некоторую последовательность стадий и выполняемых на них процессов. Для каждого этапа определяются состав и последовательность выполняемых работ, получаемые результаты, методы и средства, необходимые для выполнения работ, роли и ответственность участников и т.д. Такое формальное описание ЖЦ ИС позволяет спланировать и организовать процесс коллективной разработки и обеспечить управление этим процессом.
Жизненный цикл ИС можно представить как ряд событий, происходящих с системой в процессе ее создания и использования.
Модель жизненного цикла отражает различные состояния системы, начиная с момента возникновения необходимости в данной ИС и заканчивая моментом ее полного выхода из употребления. Модель жизненного цикла — структура, содержащая процессы, действия и задачи, которые осуществляются в ходе разработки, функционирования и сопровождения программного продукта в течение всей жизни системы, от определения требований до завершения ее использования.
В настоящее время известны и используются следующие модели жизненного цикла:
- Каскадная модель ( рис. 2.1) предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе.
- Поэтапная модель с промежуточным контролем ( рис. 2.2). Разработка ИС ведется итерациями с циклами обратной связи между этапами. Межэтапные корректировки позволяют учитывать реально существующее взаимовлияние результатов разработки на различных этапах; время жизни каждого из этапов растягивается на весь период разработки.
- Спиральная модель ( рис. 2.3). На каждом витке спирали выполняется создание очередной версии продукта, уточняются требования проекта, определяется его качество и планируются работы следующего витка.Особое внимание уделяется начальным этапам разработки — анализу и проектированию, где реализуемость тех или иных технических решений проверяется и обосновывается посредством создания прототипов (макетирования).
На практике наибольшее распространение получили две основные модели жизненного цикла:
- каскадная модель (характерна для периода 1970-1985 гг.);
- спиральная модель (характерна для периода после 1986.г.).
В ранних проектах достаточно простых ИС каждое приложение представляло собой единый, функционально и информационно независимый блок. Для разработки такого типа приложений эффективным оказался каскадный способ. Каждый этап завершался после полного выполнения и документального оформления всех предусмотренных работ.
Можно выделить следующие положительные стороны применения каскадного подхода:
- на каждом этапе формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
- выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие затраты.
Каскадный подход хорошо зарекомендовал себя при построении относительно простых ИС, когда в самом начале разработки можно достаточно точно и полно сформулировать все требования к системе. Основным недостатком этого подхода является то, что реальный процесс создания системы никогда полностью не укладывается в такую жесткую схему, постоянно возникает потребность в возврате к предыдущим этапам и уточнении или пересмотре ранее принятых решений. В результате реальный процесс создания ИС оказывается соответствующим поэтапной модели с промежуточным контролем.
Однако и эта схема не позволяет оперативно учитывать возникающие изменения и уточнения требований к системе. Согласование результатов разработки с пользователями производится только в точках, планируемых после завершения каждого этапа работ, а общие требования к ИС зафиксированы в виде технического задания на все время ее создания. Таким образом, пользователи зачастую получают систему, не удовлетворяющую их реальным потребностям.
Спиральная модель ЖЦ была предложена для преодоления перечисленных проблем. На этапах анализа и проектирования реализуемость технических решений и степень удовлетворения потребностей заказчика проверяется путем создания прототипов. Каждый виток спирали соответствует созданию работоспособного фрагмента или версии системы. Это позволяет уточнить требования, цели и характеристики проекта, определить качество разработки, спланировать работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который удовлетворяет действительным требованиям заказчика и доводится до реализации.
Итеративная разработка отражает объективно существующий спиральный цикл создания сложных систем. Она позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем и решить главную задачу — как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Основная проблема спирального цикла — определение момента перехода на следующий этап. Для ее решения вводятся временные ограничения на каждый из этапов жизненного цикла, и переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. Планирование производится на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
Несмотря на настойчивые рекомендации компаний — вендоров и экспертов в области проектирования и разработки ИС, многие компании продолжают использовать каскадную модель вместо какого-либо варианта итерационной модели. Основные причины, покоторым каскадная модель сохраняет свою популярность, следующие [ 2.1 ] :
- Привычка — многие ИТ-специалисты получали образование в то время, когда изучалась только каскадная модель, поэтому она используется ими и в наши дни.
- Иллюзия снижения рисков участников проекта (заказчика и исполнителя). Каскадная модель предполагает разработку законченных продуктов на каждом этапе: технического задания, технического проекта, программного продукта и пользовательской документации. Разработанная документация позволяет не только определить требования к продукту следующего этапа, но и определить обязанности сторон, объем работ и сроки, при этом окончательная оценка сроков и стоимости проекта производится на начальных этапах, после завершения обследования. Очевидно, что если требования к информационной системе меняются в ходе реализации проекта, а качество документов оказывается невысоким (требования неполны и/или противоречивы), то в действительности использование каскадной модели создает лишь иллюзию определенности и на деле увеличивает риски, уменьшая лишь ответственность участников проекта. При формальном подходеменеджер проекта реализует только те требования, которые содержатся в спецификации, опирается на документ, а не на реальные потребности бизнеса. Есть два основных типа контрактов на разработку ПО. Первый тип предполагает выполнение определенного объема работ за определенную сумму в определенные сроки (fixed price). Второй тип предполагает повременную оплату работы (time work). Выбор того или иного типа контракта зависит от степени определенности задачи.Каскадная модель с определенными этапами и их результатами лучше приспособлена для заключения контракта с оплатой по результатам работы, а именно этот тип контрактов позволяет получить полную оценку стоимости проекта до его завершения. Более вероятно заключение контракта с повременной оплатой на небольшую систему, с относительно небольшим весом в структуре затрат предприятия. Разработка и внедрение интегрированной информационной системы требует существенных финансовых затрат, поэтому используются контракты с фиксированной ценой, и, следовательно, каскадная модель разработки и внедрения. Спиральная модель чаще применяется при разработке информационной системы силами собственного отдела ИТ предприятия.
- Проблемы внедрения при использовании итерационной модели. В некоторых областях спиральная модель не может применяться, поскольку невозможно использование/тестирование продукта, обладающего неполной функциональностью (например, военные разработки, атомная энергетика и т.д.). Поэтапное итерационное внедрение информационной системы для бизнеса возможно, но сопряжено с организационными сложностями (перенос данных, интеграция систем, изменение бизнес-процессов, учетной политики, обучение пользователей). Трудозатраты при поэтапном итерационном внедрении оказываются значительно выше, а управление проектом требует настоящего искусства. Предвидя указанные сложности, заказчики выбирают каскадную модель, чтобы «внедрять систему один раз».
Каждая из стадий создания системы предусматривает выполнение определенного объема работ, которые представляются в видепроцессов ЖЦ. Процесс определяется как совокупность взаимосвязанных действий, преобразующих входные данные в выходные. Описание каждого процесса включает в себя перечень решаемых задач, исходных данных и результатов.
Существует целый ряд стандартов, регламентирующих ЖЦ ПО, а в некоторых случаях и процессы разработки.
Значительный вклад в теорию проектирования и разработки информационных систем внесла компания IBM, предложив еще в середине 1970-х годов методологию BSP (Business System Planning — методология организационного планирования). Метод структурирования информации с использованием матриц пересечения бизнес-процессов, функциональных подразделений, функций систем обработки данных (информационных систем), информационных объектов, документов и баз данных, предложенный в BSP, используется сегодня не только в ИТ-проектах, но и проектах по реинжинирингу бизнес-процессов, изменению организационной структуры. Важнейшие шаги процесса BSP, их последовательность (получить поддержку высшего руководства, определить процессы предприятия, определить классы данных, провести интервью, обработать и организовать данные интервью) можно встретить практически во всех формальных методиках, а также в проектах, реализуемых на практике.
Среди наиболее известных стандартов можно выделить следующие:
- ГОСТ 34.601-90 — распространяется на автоматизированные системы и устанавливает стадии и этапы их создания. Кроме того, в стандарте содержится описание содержания работ на каждом этапе. Стадии и этапы работы, закрепленные в стандарте, в большей степени соответствуют каскадной модели жизненного цикла [ 2.2 ] .
- ISO/IEC 12207:1995 — стандарт на процессы и организацию жизненного цикла. Распространяется на все виды заказного ПО. Стандарт не содержит описания фаз, стадий и этапов [ 2.3 ] .
- Custom Development Method (методика Oracle) по разработке прикладных информационных систем — технологический материал, детализированный до уровня заготовок проектных документов, рассчитанных на использование в проектах с применением Oracle. Применяется CDM для классической модели ЖЦ (предусмотрены все работы/задачи и этапы), а также для технологий «быстрой разработки» (Fast Track) или «облегченного подхода», рекомендуемых в случае малых проектов.
- Rational Unified Process (RUP) предлагает итеративную модель разработки, включающую четыре фазы: начало, исследование, построение и внедрение. Каждая фаза может быть разбита на этапы (итерации), в результате которых выпускается версия для внутреннего или внешнего использования. Прохождение через четыре основные фазы называется циклом разработки, каждый цикл завершается генерацией версии системы. Если после этого работа над проектом не прекращается, то полученный продукт продолжает развиваться и снова минует те же фазы. Суть работы в рамках RUP — это создание и сопровождение моделей на базе UML [ 2.4 ] .
- Microsoft Solution Framework (MSF) сходна с RUP, так же включает четыре фазы: анализ, проектирование, разработка, стабилизация, является итерационной, предполагает использование объектно-ориентированного моделирования. MSF в сравнении с RUP в большей степени ориентирована на разработку бизнес-приложений.
- Extreme Programming (XP). Экстремальное программирование (самая новая среди рассматриваемых методологий) сформировалось в 1996 году. В основе методологии командная работа, эффективная коммуникация между заказчиком и исполнителем в течение всего проекта по разработке ИС, а разработка ведется с использованием последовательно дорабатываемых прототипов.
В соответствии с базовым международным стандартом ISO/IEC 12207 все процессы ЖЦ ПО делятся на три группы:
- Основные процессы:
- приобретение;
- поставка;
- разработка;
- эксплуатация;
- сопровождение.
- Вспомогательные процессы:
- документирование;
- управление конфигурацией;
- обеспечение качества;
- разрешение проблем;
- аудит;
- аттестация;
- совместная оценка;
- верификация.
- Организационные процессы:
- создание инфраструктуры;
- управление;
- обучение;
- усовершенствование.
В таблице 2.1 приведены ориентировочные описания основных процессов ЖЦ. Вспомогательные процессы предназначены для поддержки выполнения основных процессов, обеспечения качества проекта, организации верификации, проверки и тестированияПО. Организационные процессы определяют действия и задачи, выполняемые как заказчиком, так и разработчиком проекта для управления своими процессами.
Для поддержки практического применения стандарта ISO/IEC 12207 разработан ряд технологических документов: Руководство для ISO/IEC 12207 (ISO/IEC TR 15271:1998 Information technology — Guide for ISO/IEC 12207) и Руководство по применению ISO/IEC12207 к управлению проектами (ISO/IEC TR 16326:1999 Software engineering — Guide for the application of ISO/IEC 12207 to project management).
Таблица 2.1. Содержание основных процессов ЖЦ ПО ИС (ISO/IEC 12207)
Процесс (исполнитель процесса)
Действия
Вход
Результат
Приобретение (заказчик)
- Инициирование
- Подготовка заявочных предложений
- Подготовка договора
- Контроль деятельности поставщика
- Приемка ИС
- Решение о начале работ по внедрению ИС
- Результаты обследования деятельности заказчика
- Результаты анализа рынка ИС/ тендера
- План поставки/ разработки
- Комплексный тест ИС
- Технико-экономическое обоснование внедрения ИС
- Техническое задание на ИС
- Договор на поставку/ разработку
- Акты приемки этапов работы
- Акт приемно-сдаточных испытаний
Поставка (разработчик ИС)
- Инициирование
- Ответ на заявочные предложения
- Подготовка договора
- Планирование исполнения
- Поставка ИС
- Техническое задание на ИС
- Решение руководства об участии в разработке
- Результаты тендера
- Техническое задание на ИС
- План управления проектом
- Разработанная ИС и документация
- Решение об участии в разработке
- Коммерческие предложения/ конкурсная заявка
- Договор на поставку/ разработку
- План управления проектом
- Реализация/ корректировка
- Акт приемно-сдаточных испытаний
Разработка (разработчик ИС)
- Подготовка
- Анализ требований к ИС
- Проектирование архитектуры ИС
- Разработка требований к ПО
- Проектирование архитектуры ПО
- Детальное проектирование ПО
- Кодирование и тестирование ПО
- Интеграция ПО и квалификационное тестирование ПО
- Интеграция ИС и квалификационное тестирование ИС
- Техническое задание на ИС
- Техническое задание на ИС, модель ЖЦ
- Подсистемы ИС
- Спецификации требования к компонентам ПО
- Архитектура ПО
- Материалы детального проектирования ПО
- План интеграции ПО, тесты
- Архитектура ИС, ПО, документация на ИС, тесты
- Используемая модель ЖЦ, стандарты разработки
- План работ
- Состав подсистем, компоненты оборудования
- Спецификации требования к компонентам ПО
- Состав компонентов ПО, интерфейсы с БД, план интеграции ПО
- Проект БД, спецификации интерфейсов между компонентами ПО, требования к тестам
- Тексты модулей ПО, акты автономного тестирования
- Оценка соответствия комплекса ПО требованиям ТЗ
- Оценка соответствия ПО, БД, технического комплекса и комплекта документации требованиям ТЗ
Позднее был разработан и в 2002 г. опубликован стандарт на процессы жизненного цикла систем (ISO/IEC 15288 System life cycleprocesses). К разработке стандарта были привлечены специалисты различных областей: системной инженерии, программирования, управления качеством, человеческими ресурсами, безопасностью и пр. Был учтен практический опыт создания систем в правительственных, коммерческих, военных и академических организациях. Стандарт применим для широкого класса систем, но его основное предназначение — поддержка создания компьютеризированных систем.
Согласно стандарту ISO/IEC серии 15288 [ 2.5 ] в структуру ЖЦ следует включать следующие группы процессов:
- Договорные процессы:
- приобретение (внутренние решения или решения внешнего поставщика);
- поставка (внутренние решения или решения внешнего поставщика).
- Процессы предприятия:
- управление окружающей средой предприятия;
- инвестиционное управление;
- управление ЖЦ ИС;
- управление ресурсами;
- управление качеством.
- Проектные процессы:
- планирование проекта;
- оценка проекта;
- контроль проекта;
- управление рисками;
- управление конфигурацией;
- управление информационными потоками;
- принятие решений.
- Технические процессы:
- определение требований;
- анализ требований;
- разработка архитектуры;
- внедрение;
- интеграция;
- верификация;
- переход;
- аттестация;
- эксплуатация;
- сопровождение;
- утилизация.
- Специальные процессы:
- определение и установка взаимосвязей исходя из задач и целей.
Стадии создания системы, предусмотренные в стандарте ISO/IEC 15288, несколько отличаются от рассмотренных выше. Перечень стадий и основные результаты, которые должны быть достигнуты к моменту их завершения, приведены в таблице 2.2.
Таблица 2.2. Стадии создания систем (ISO/IEC 15288)
№ п/п
Стадия
Описание
1
Формирование концепции
Анализ потребностей, выбор концепции и проектных решений
2
Разработка
Проектирование системы
3
Реализация
Изготовление системы
4
Эксплуатация
Ввод в эксплуатацию и использование системы
5
Поддержка
Обеспечение функционирования системы
6
Снятие с эксплуатации
Прекращение использования, демонтаж, архивирование системы
-
Каноническое проектирование ИС
Организация канонического проектирования ИС ориентирована на использование главным образом каскадной модели жизненного цикла ИС. Стадии и этапы работы описаны в стандарте ГОСТ 34.601-90.
В зависимости от сложности объекта автоматизации и набора задач, требующих решения при создании конкретной ИС, стадии и этапы работ могут иметь различную трудоемкость. Допускается объединять последовательные этапы и даже исключать некоторые из них на любой стадии проекта. Допускается также начинать выполнение работ следующей стадии до окончания предыдущей.
Стадии и этапы создания ИС, выполняемые организациями-участниками, прописываются в договорах и технических заданиях на выполнение работ:
Стадия 1. Формирование требований к ИС.
На начальной стадии проектирования выделяют следующие этапы работ:
- обследование объекта и обоснование необходимости создания ИС;
- формирование требований пользователей к ИС;
- оформление отчета о выполненной работе и тактико- технического задания на разработку.
Стадия 2. Разработка концепции ИС.
- изучение объекта автоматизации;
- проведение необходимых научно-исследовательских работ;
- разработка вариантов концепции ИС, удовлетворяющих требованиям пользователей;
- оформление отчета и утверждение концепции.
Стадия 3. Техническое задание.
- разработка и утверждение технического задания на создание ИС.
Стадия 4. Эскизный проект.
- разработка предварительных проектных решений по системе и ее частям;
- разработка эскизной документации на ИС и ее части.
Стадия 5. Технический проект.
- разработка проектных решений по системе и ее частям;
- разработка документации на ИС и ее части;
- разработка и оформление документации на поставку комплектующих изделий;
- разработка заданий на проектирование в смежных частях проекта.
Стадия 6. Рабочая документация.
- разработка рабочей документации на ИС и ее части;
- разработка и адаптация программ.
Стадия 7. Ввод в действие.
- подготовка объекта автоматизации;
- подготовка персонала;
- комплектация ИС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами, информационными изделиями);
- строительно-монтажные работы;
- пусконаладочные работы;
- проведение предварительных испытаний ;
- проведение опытной эксплуатации ;
- проведение приемочных испытаний.
Стадия 8. Сопровождение ИС.
- выполнение работ в соответствии с гарантийными обязательствами;
- послегарантийное обслуживание.
Oбследование — это изучение и диагностический анализ организационной структуры предприятия, его деятельности и существующей системы обработки информации. Материалы, полученные в результате обследования, используются для:
- обоснования разработки и поэтапного внедрения систем;
- составления технического задания на разработку систем;
- разработки технического и рабочего проектов систем.
На этапе обследования целесообразно выделить две составляющие: определение стратегии внедрения ИС и детальный анализдеятельности организации.
Основная задача первого этапа обследования — оценка реального объема проекта, его целей и задач на основе выявленных функций и информационных элементов автоматизируемого объекта высокого уровня [ 3.1 ] . Эти задачи могут быть реализованы или заказчиком ИС самостоятельно, или с привлечением консалтинговых организаций. Этап предполагает тесное взаимодействие с основными потенциальными пользователями системы и бизнес-экспертами. Основная задача взаимодействия — получить полное и однозначное понимание требований заказчика. Как правило, нужная информация может быть получена в результате интервью, бесед или семинаров с руководством, экспертами и пользователями.
По завершении этой стадии обследования появляется возможность определить вероятные технические подходы к созданию системы и оценить затраты на ее реализацию (затраты на аппаратное обеспечение, закупаемое программное обеспечение и разработку нового программного обеспечения ).
Результатом этапа определения стратегии является документ ( технико-экономическое обоснование проекта ), где четко сформулировано, что получит заказчик, если согласится финансировать проект, когда он получит готовый продукт (графиквыполнения работ) и сколько это будет стоить (для крупных проектов должен быть составлен график финансирования на разных этапах работ). В документе желательно отразить не только затраты, но и выгоду проекта, например время окупаемости проекта, ожидаемый экономический эффект (если его удается оценить).
Ориентировочное содержание этого документа:
- ограничения, риски, критические факторы, которые могут повлиять на успешность проекта;
- совокупность условий, при которых предполагается эксплуатировать будущую систему: архитектура системы, аппаратные и программные ресурсы, условия функционирования, обслуживающий персонал и пользователи системы;
- сроки завершения отдельных этапов, форма приемки/сдачи работ, привлекаемые ресурсы, меры по защите информации;
- описание выполняемых системой функций;
- возможности развития системы;
- информационные объекты системы;
- интерфейсы и распределение функций между человеком и системой;
- требования к программным и информационным компонентам ПО, требования к СУБД;
- что не будет реализовано в рамках проекта.
На этапе детального анализа деятельности организации изучаются задачи, обеспечивающие реализацию функций управления, организационная структура, штаты и содержание работ по управлению предприятием, а также характер подчиненности вышестоящим органам управления. На этом этапе должны быть выявлены:
- инструктивно-методические и директивные материалы, на основании которых определяются состав подсистем и перечень задач;
- возможности применения новых методов решения задач.
Аналитики собирают и фиксируют информацию в двух взаимосвязанных формах:
- функции — информация о событиях и процессах, которые происходят в бизнесе;
- сущности — информация о вещах, имеющих значение для организации и о которых что-то известно.
При изучении каждой функциональной задачи управления определяются:
- наименование задачи; сроки и периодичность ее решения;
- степень формализуемости задачи;
- источники информации, необходимые для решения задачи;
- показатели и их количественные характеристики;
- порядок корректировки информации;
- действующие алгоритмы расчета показателей и возможные методы контроля;
- действующие средства сбора, передачи и обработки информации;
- действующие средства связи;
- принятая точность решения задачи;
- трудоемкость решения задачи;
- действующие формы представления исходных данных и результатов их обработки в виде документов;
- потребители результатной информации по задаче.
Одной из наиболее трудоемких, хотя и хорошо формализуемых задач этого этапа является описание документооборота организации. При обследовании документооборота составляется схема маршрута движения документов, которая должна отразить:
- количество документов;
- место формирования показателей документа;
- взаимосвязь документов при их формировании;
- маршрут и длительность движения документа;
- место использования и хранения данного документа;
- внутренние и внешние информационные связи;
- объем документа в знаках.
По результатам обследования устанавливается перечень задач управления, решение которых целесообразно автоматизировать, и очередность их разработки.
На этапе обследования следует классифицировать планируемые функции системы по степени важности. Один из возможных форматов представления такой классификации — MuSCoW [ 3.2 ] .
Эта аббревиатура расшифровывается так: Must have — необходимые функции; Should have — желательные функции; Could have — возможные функции; Won’t have — отсутствующие функции.
Функции первой категории обеспечивают критичные для успешной работы системы возможности.
Реализация функций второй и третьей категорий ограничивается временными и финансовыми рамками: разрабатывается то, что необходимо, а также максимально возможное в порядке приоритета число функций второй и третьей категорий.
Последняя категория функций особенно важна, поскольку необходимо четко представлять границы проекта и набор функций, которые будут отсутствовать в системе.
Модели деятельности организации создаются в двух видах:
- модель «как есть» («as-is»)- отражает существующие в организации бизнес-процессы;
- модель «как должно быть» («to-be») — отражает необходимые изменения бизнес-процессов с учетом внедрения ИС.
На этапе анализа необходимо привлекать к работе группы тестирования для решения следующих задач:
- получения сравнительных характеристик предполагаемых к использованию аппаратных платформ, операционных систем, СУБД, иного окружения;
- разработки плана работ по обеспечению надежности информационной системы и ее тестирования.
Привлечение тестировщиков на ранних этапах разработки является целесообразным для любых проектов. Если проектное решение оказалось неудачным и это обнаружено слишком поздно (на этапе разработки или, что еще хуже, на этапе внедрения в эксплуатацию), то исправление ошибки проектирования обходится очень дорого. Чем раньше группы тестирования выявляют ошибки в информационной системе, тем ниже стоимость сопровождения системы. Время на тестирование системы и на исправление обнаруженных ошибок следует предусматривать не только на этапе разработки, но и на этапе проектирования.
Для автоматизации тестирования следует использовать системы отслеживания ошибок (bug tracking). Это позволяет иметь единое хранилище ошибок, отслеживать их повторное появление, контролировать скорость и эффективность исправления ошибок, видеть наиболее нестабильные компоненты системы, а также поддерживать связь между группой разработчиков и группой тестирования (уведомления об изменениях по e-mail и т.п.). Чем больше проект, тем сильнее потребность в bug tracking.
Результаты обследования представляют объективную основу для формирования технического задания на информационную систему.
Техническое задание — это документ, определяющий цели, требования и основные исходные данные, необходимые для разработки автоматизированной системы управления.
При разработке технического задания необходимо решить следующие задачи:
- установить общую цель создания ИС, определить состав подсистем и функциональных задач;
- разработать и обосновать требования, предъявляемые к подсистемам;
- разработать и обосновать требования, предъявляемые к информационной базе, математическому и программному обеспечению, комплексу технических средств (включая средства связи и передачи данных);
- установить общие требования к проектируемой системе;
- определить перечень задач создания системы и исполнителей;
- определить этапы создания системы и сроки их выполнения;
- провести предварительный расчет затрат на создание системы и определить уровень экономической эффективности ее внедрения.
Типовые требования к составу и содержанию технического задания приведены в таблице 3.1.
Таблица 3.1. Состав и содержание технического задания (ГОСТ 34.602- 89)
№ пп
Раздел
Содержание
1
Общие сведения
- полное наименование системы и ее условное обозначение
- шифр темы или шифр (номер) договора;
- наименование предприятий разработчика и заказчика системы, их реквизиты
- перечень документов, на основании которых создается ИС
- плановые сроки начала и окончания работ
- сведения об источниках и порядке финансирования работ
- порядок оформления и предъявления заказчику результатов работ по созданию системы, ее частей и отдельных средств
2
Назначение и цели создания (развития) системы
- вид автоматизируемой деятельности
- перечень объектов, на которых предполагается использование системы
- наименования и требуемые значения технических, технологических, производственно-экономических и др. показателей объекта, которые должны быть достигнуты при внедрении ИС
3
Характеристика объектов автоматизации
- краткие сведения об объекте автоматизации
- сведения об условиях эксплуатации и характеристиках окружающей среды
4
Требования к системе
Требования к системе в целом:
- требования к структуре и функционированию системы (перечень подсистем, уровни иерархии, степень централизации, способы информационного обмена, режимы функционирования, взаимодействие со смежными системами, перспективы развития системы)
- требования к персоналу (численность пользователей, квалификация, режим работы, порядок подготовки)
- показатели назначения (степень приспособляемости системы к изменениям процессов управления и значений параметров)
- требования к надежности, безопасности, эргономике, транспортабельности, эксплуатации, техническому обслуживанию и ремонту, защите и сохранности информации, защите от внешних воздействий, к патентной чистоте, по стандартизации и унификации
Требования к функциям (по подсистемам) :
- перечень подлежащих автоматизации задач
- временной регламент реализации каждой функции
- требования к качеству реализации каждой функции, к форме представления выходной информации, характеристики точности, достоверности выдачи результатов
- перечень и критерии отказов
Требования к видам обеспечения:
- математическому (состав и область применения мат. моделей и методов, типовых и разрабатываемых алгоритмов)
- информационному (состав, структура и организация данных, обмен данными между компонентами системы, информационная совместимость со смежными системами, используемые классификаторы, СУБД, контроль данных и ведение информационных массивов, процедуры придания юридической силы выходным документам)
- лингвистическому (языки программирования, языки взаимодействия пользователей с системой, системы кодирования, языки ввода- вывода)
- программному (независимость программных средств от платформы, качество программных средств и способы его контроля, использование фондов алгоритмов и программ)
- техническому
- метрологическому
- организационному (структура и функции эксплуатирующих подразделений, защита от ошибочных действий персонала)
- методическому (состав нормативно-технической документации)
5
Состав и содержание работ по созданию системы
- перечень стадий и этапов работ
- сроки исполнения
- состав организаций — исполнителей работ
- вид и порядок экспертизы технической документации
- программа обеспечения надежности
- программа метрологического обеспечения
6
Порядок контроля и приемки системы
- виды, состав, объем и методы испытаний системы
- общие требования к приемке работ по стадиям
- статус приемной комиссии
7
Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
- преобразование входной информации к машиночитаемому виду
- изменения в объекте автоматизации
- сроки и порядок комплектования и обучения персонала
8
Требования к документированию
- перечень подлежащих разработке документов
- перечень документов на машинных носителях
9
Источники разработки
документы и информационные материалы, на основании которых разрабатывается ТЗ и система
Эскизный проект предусматривает разработку предварительных проектных решений по системе и ее частям.
Выполнение стадии эскизного проектирования не является строго обязательной. Если основные проектные решения определены ранее или достаточно очевидны для конкретной ИС и объекта автоматизации, то эта стадия может быть исключена из общей последовательности работ.
Содержание эскизного проекта задается в ТЗ на систему. Как правило, на этапе эскизного проектирования определяются:
- функции ИС;
- функции подсистем, их цели и ожидаемый эффект от внедрения;
- состав комплексов задач и отдельных задач;
- концепция информационной базы и ее укрупненная структура;
- функции системы управления базой данных;
- состав вычислительной системы и других технических средств;
- функции и параметры основных программных средств.
По результатам проделанной работы оформляется, согласовывается и утверждается документация в объеме, необходимом для описания полной совокупности принятых проектных решений и достаточном для дальнейшего выполнения работ по созданию системы.
На основе технического задания (и эскизного проекта ) разрабатывается технический проект ИС. Технический проект системы — это техническая документация, содержащая общесистемные проектные решения, алгоритмы решения задач, а также оценку экономической эффективности автоматизированной системы управления и перечень мероприятий по подготовке объекта к внедрению.
На этом этапе осуществляется комплекс научно-исследовательских и экспериментальных работ для выбора основных проектных решений и расчет экономической эффективности системы.
Состав и содержание технического проекта приведены в таблице 3.2.
Таблица 3.2. Содержание технического проекта
№ пп
Раздел
Содержание
1
Пояснительная записка
- основания для разработки системы
- перечень организаций разработчиков
- краткая характеристика объекта с указанием основных технико-экономических показателей его функционирования и связей с другими объектами
- краткие сведения об основных проектных решениях по функциональной и обеспечивающим частям системы
2
Функциональная и организационная структура системы
- обоснование выделяемых подсистем, их перечень и назначение
- перечень задач, решаемых в каждой подсистеме, с краткой характеристикой их содержания
- схема информационных связей между подсистемами и между задачами в рамках каждой подсистемы
3
Постановка задач и алгоритмы решения
- организационно-экономическая сущность задачи (наименование, цель решения, краткое содержание, метод, периодичность и время решения задачи, способы сбора и передачи данных, связь задачи с другими задачами, характер использования результатов решения, в которых они используются)
- экономико-математическая модель задачи (структурная и развернутая форма представления)
- входная оперативная информация ( характеристика показателей, диапазон изменения, формы представления)
- нормативно-справочная информация ( НСИ) (содержание и формы представления)
- информация, хранимая для связи с другими задачами
- информация, накапливаемая для последующих решений данной задачи
- информация по внесению изменений ( система внесения изменений и перечень информации, подвергающейся изменениям)
- алгоритм решения задачи ( последовательность этапов расчета, схема, расчетные формулы)
- контрольный пример (набор заполненных данными форм входных документов, условные документы с накапливаемой и хранимой информацией, формы выходных документов, заполненные по результатам решения экономико-технической задачи и в соответствии с разработанным алгоритмом расчета)
4
Организация информационной базы
- источники поступления информации и способы ее передачи
- совокупность показателей, используемых в системе
- состав документов, сроки и периодичность их поступления
- основные проектные решения по организации фонда НСИ
- состав НСИ, включая перечень реквизитов, их определение, диапазон изменения и перечень документов НСИ
- перечень массивов НСИ, их объем, порядок и частота корректировки информации
- структура фонда НСИ с описанием связи между его элементами; требования к технологии создания и ведения фонда
- методы хранения, поиска, внесения изменений и контроля
- определение объемов и потоков информации НСИ
- контрольный пример по внесению изменений в НСИ
- предложения по унификации документации
5
Альбом форм документов
6
Система математического обеспечения
- обоснование структуры математического обеспечения
- обоснование выбора системы программирования
- перечень стандартных программ
7
Принцип построения комплекса технических средств
- описание и обоснование схемы технологического процесса обработки данных
- обоснование и выбор структуры комплекса технических средств и его функциональных групп
- обоснование требований к разработке нестандартного оборудования
- комплекс мероприятий по обеспечению надежности функционирования технических средств
8
Расчет экономической эффективности системы
- сводная смета затрат, связанных с эксплуатацией систем
- расчет годовой экономической эффективности, источниками которой являются оптимизация производственной структуры хозяйства (объединения), снижение себестоимости продукции за счет рационального использования производственных ресурсов и уменьшения потерь, улучшения принимаемых управленческих решений
9
Мероприятия по подготовке объекта к внедрению системы
- перечень организационных мероприятий по совершенствованию бизнес-процессов
- перечень работ по внедрению системы, которые необходимо выполнить на стадии рабочего проектирования, с указанием сроков и ответственных лиц
10
Ведомость документов
В завершение стадии технического проектирования производится разработка документации на поставку серийно выпускаемых изделий для комплектования ИС, а также определяются технические требования и составляются ТЗ на разработку изделий, не изготовляемых серийно.
На стадии » рабочая документация » осуществляется создание программного продукта и разработка всей сопровождающей документации. Документация должна содержать все необходимые и достаточные сведения для обеспечения выполнения работпо вводу ИС в действие и ее эксплуатации, а также для поддержания уровня эксплуатационных характеристик (качества) системы. Разработанная документация должна быть соответствующим образом оформлена, согласована и утверждена.
Для ИС, которые являются разновидностью автоматизированных систем, устанавливают следующие основные виды испытаний: предварительные, опытная эксплуатация и приемочные. При необходимости допускается дополнительно проведение других видов испытаний системы и ее частей.
В зависимости от взаимосвязей частей ИС и объекта автоматизации испытания могут быть автономные или комплексные. Автономные испытания охватывают части системы. Их проводят по мере готовности частей системы к сдаче в опытную эксплуатацию. Комплексные испытания проводят для групп взаимосвязанных частей или для системы в целом.
Для планирования проведения всех видов испытаний разрабатывается документ «Программа и методика испытаний«. Разработчик документа устанавливается в договоре или ТЗ. В качестве приложения в документ могут включаться тесты или контрольные примеры.
Предварительные испытания проводят для определения работоспособности системы и решения вопроса о возможности ее приемки в опытную эксплуатацию. Предварительные испытания следует выполнять после проведения разработчиком отладки и тестирования поставляемых программных и технических средств системы и представления им соответствующих документов об их готовности к испытаниям, а также после ознакомления персонала ИС с эксплуатационной документацией.
-
Процессные потоковые модели
Разработка требований к проектируемой ИС строится на основе статического и динамичного описания компании. Статическое описание компании, рассмотренное в лекции 4, проводится на уровне функциональных моделей и включает описание бизнес-потенциала, функционала и соответствующих матриц ответственности.
Дальнейшее развитие (детализация) бизнес-модели происходит на этапе динамичного описания компании на уровне процессных потоковых моделей.
Процессные потоковые модели — это модели, описывающие процесс последовательного во времени преобразования материальных и информационных потоков компании в ходе реализации какой-либо бизнес-функции или функции менеджмента. На верхнем уровне описывается логика взаимодействия участников процесса, на нижнем — технология работы отдельных специалистов на своих рабочих местах. Процессные потоковые модели отвечают на вопросы кто—что—как—кому (см. лекцию 4рис. 4.3).
Современное состояние экономики характеризуется переходом от традиционной функциональной модели деятельности компании, построенной на принципах разделения труда, узкой специализации и жестких иерархических структурах, к модели процессной, основанной на интеграции работ вокруг бизнес-процессов.
Главными недостатками функционального подхода являются:
- разбиение технологий выполнения работы на отдельные фрагменты, иногда между собой несвязанные, которые выполняются различными структурными подразделениями;
- отсутствие целостного описания технологий выполнения работы;
- сложность увязывания простейших задач в технологию, производящую реальный товар или услугу;
- отсутствие ответственности за конечный результат;
- высокие затраты на согласование, налаживание взаимодействия, контроль и т. д.;
- отсутствие ориентации на клиента.
Процессный подход предполагает смещение акцентов от управления отдельными структурными элементами на управление сквозными бизнес-процессами, связывающими деятельность всех структурных элементов. Каждый деловой процесс проходит через ряд подразделений, т. е. в его выполнении участвуют специалисты различных отделов компании. Чаще всего приходится сталкиваться с ситуацией, когда собственно процессами никто не управляет, а управляют лишь подразделениями. Более того, структура компаний строится без учета возможностей оптимизации деловых процессов, обеспечивающих необходимые функции.Процессный подход позволяет устранить фрагментарность в работе, организационные и информационные разрывы, дублирование, нерациональное использование финансовых, материальных и кадровых ресурсов.
Процессный подход к организации деятельности предприятия предполагает:
- широкое делегирование полномочий и ответственности исполнителям;
- сокращение уровней принятия решений;
- сочетание принципа целевого управления с групповой организацией труда;
- повышенное внимание к вопросам обеспечения качества;
- автоматизация технологий выполнения бизнес-процессов.
Согласно стандарту «Основные Положения и Словарь — ИСО/ОПМС 9000:2000″ (п. 2.4) понятие » Процессный подход » определяется как:
«Любая деятельность, или комплекс деятельности, в которой используются ресурсы для преобразования входов в выходы, может рассматриваться как процесс. Чтобы результативно функционировать, организации должны определять и управлять многочисленными взаимосвязанными и взаимодействующими процессами. Часто выход одного процесса образует непосредственно вход следующего. Систематическая идентификация и менеджмент применяемых организацией процессов, и особенно взаимодействия таких процессов, могут считаться » процессным подходом «.
Основной принцип процессного подхода определяет структурирование бизнес–системы в соответствии с деятельностью и бизнес-процессами предприятия, а не в соответствии с его организационно-штатной структурой. Именно бизнес-процессы, обеспечивающие значимый для потребителя результат, представляют ценность и для специалистов, проектирующих ИС. Процессная модель компании должна строиться с учетом следующих положений:
- Верхний уровень модели должен отражать только контекст диаграммы – взаимодействие моделируемого единственным контекстным процессом предприятия с внешним миром.
- На втором уровне должны быть отражены тематически сгруппированные бизнес-процессы предприятия и их взаимосвязи.
- Каждая из деятельностей должна быть детализирована на бизнес-процессы.
- Детализация бизнес-процессов осуществляется посредством бизнес –функций.
- Описание элементарной бизнес–операции осуществляется с помощью миниспецификации.
Процессный подход требует комплексного изучения различных сторон жизни организации — правовых основ и правил деятельности, организационной структуры, функций и показателей результатов их исполнения, интерфейсов, ресурсного обеспечения, организационной культуры. В результате анализа создается модель деятельности «как есть». Обработка этой модели с помощью различных аналитических методов позволяет проверить, насколько деловые процессы рациональны, а также определить, является ли та или иная операция ориентированной на общественно значимый конечный результат или излишней бюрократической процедурой.
В ходе анализа деловых процессов детально исследуются сферы ответственности подразделений ведомства, его руководителей и сотрудников. Это позволяет установить адреса владельцев деловых процессов, в результате чего процессы перестают быть бесхозными, создаются условия для разработки и внедрения систем стимулирования и ответственности за конечные результаты, определяются моменты и процедуры передачи ответственности. Анализ и оценка деловых процессов позволяют подойти к обоснованию стандартов их выполнения, допустимых рисков и диапазонов свободы принятия решений исполнителями, предельных нормативов затрат ресурсов на единицу эффекта.
Однако чисто «процессная компания» является скорее иллюстрацией правильной организации работ. В действительности всебизнес-процессы компании протекают в рамках организационной структуры предприятия, описывающей функциональные компетентности и отношения.
Управление всей текущей деятельностью компании ведется по двум направлениям — управление функциональными областями, которые поддерживают множество унифицированных бизнес-процессов, разделенных на операции, и управление интегрированными бизнес-процессами, задачей которого является маршрутизация и координация унифицированных процессов для выполнения как оперативных заказов потребителей, так и глобальных проектов самой организации .
Фактически основной задачей организационного проектирования является выбор оптимального соотношения между эффективностью использования ресурсов и эффективностью процессов. Жесткая специализация подразделений экономит ресурсы организации, но снижает качество реализации процессов. Создание «процессных» команд, включающих собственных специалистов по всем ключевым операциям, обходится достаточно дорого, но при этом значительно сокращается время и повышается точность выполнения процесса. Иногда организации могут позволить себе выбрать этот путь, особенно в тех случаях, когда создается высокая ценность процесса, за которую потребитель согласен платить. Но, как правило, ищется какой-токомпромисс на основе процессно-матричных структур. Когда компания начинает ориентироваться на процессы, исключительно важной становится роль владельцев интегрированных межфункциональных процессов, касающихся многих функциональных областей. Кроме того, новая парадигма деятельности предприятия вызывает появление большого числа процессов управления, распределенных по всему предприятию, а не сосредоточенных в специализированных организационных единицах: это системы качества, бюджетирования, маркетинга и т.п. Поэтому постановка бюджетирования как организационной, а не только финансовой задачи предполагает делегирование полномочий, т.е. власти (с которой нелегко расстаются). На более низкие уровни делегируется ответственность за принятие финансовых решений: о заключении сделки-договора, об оплате, о закупке, о скидках и отпуске в кредит и т.п. Это позволяет упростить связи между подразделениями и снизить количество уровней вертикального прохождения документов, т.е. является необходимым условием реализации классической схемы реинжиниринга. Таким образом, процессная ориентация ведет к перестройке организационной структуры, делает организационную структуру компании более «плоской», что иллюстрирует тесную связь между «вертикальным» описанием организации (как структуры распределения ответственности, полномочий и взаимоотношений) и ее «горизонтальным» описанием, как системы процессов.
Основные элементы процессного подхода
В рамках процессного подхода любое предприятие рассматривается как бизнес-система – система, которая представляет собой связанное множество бизнес-процессов, конечными целями которых является выпуск продукции или услуг.
Под бизнес-процессом понимают совокупность различных видов деятельности, которые создают результат, имеющий ценность для потребителя. Бизнес-процесс – это цепочка работ (функций), результатом которой является какой-либо продукт или услуга.
Каждый бизнес-процесс имеет свои границы (подробнее см. лекции 6, 7) и роли.
В процессном подходе используются следующие ключевые роли:
Владелец процесса – человек, отвечающий за ход и результаты процесса в целом. Он должен знать бизнес-процесс, следить за его выполнением и совершенствовать его эффективность. Владельцу бизнес-процесса необходимо обладать коммуникативностью, энтузиазмом, способностью влиять на людей и производить изменения.
Лидер команды — работник, обладающий знаниями о бизнес-процессе и имеющий позитивные личные качества.
Коммуникатор – работник, обучающий команду различным методам работы, подготавливающий совместно с лидером совещания и анализирующий их результат.
Координатор процесса – работник, отвечающий за согласованную работу всех частей бизнеса и обеспечивающий связь с другими бизнес-процессами. Координатор должен обладать административными способностями и пониманием стратегических целей предприятия.
Участники команды – специалисты различных уровней иерархии. Участники команды получают поддержку и методическое обеспечение от консультанта и коммуникатора, вместе с лидером проводят моделирование, анализ и оценку бизнес-процесса.
Одним из основных элементов процессного подхода является команда. Существует несколько типов процессных команд:
Ситуационная команда – обычно работает на постоянной основе и выполняет периодически повторяющуюся работу.
Виртуальная команда – создается для разработки нового продукта или услуги.
Ситуационный менеджер – высококвалифицированный специалист, способный самостоятельно выполнить до 90% объемаработ.
Важной задачей процессного подхода является формирование процессных команд. Подготовка и формирование команды включает:
- учебные курсы;
- практический тренинг по освоению методов, методик и др.;
- психологическое тестирование;
- тестирование рабочих навыков.
Достижение определенной совокупности целей за счет выполнения бизнес-процессов называется деревом целей. Дерево целейимеет, как правило, иерархический вид. Каждая цель имеет свой вес и критерий (количественный или качественный) достижимости.
Бизнес-процессы реализуют бизнес-функции предприятия. Под бизнес-функцией понимают вид деятельности предприятия.Множество бизнес-функций представляет иерархическую декомпозицию функциональной деятельности и называется деревом функций .
Бизнес-функции связаны с показателями деятельности предприятия, образующими дерево показателей . На основании показателей строится система показателей оценки эффективности выполнения процессов. Владельцы процессов контролируют свои бизнес-процессы с помощью данной системы показателей. Наиболее общими показателями оценки эффективности бизнес-процессов являются:
- количество производимой продукции заданного качества за определенный интервал времени;
- количество потребляемой продукции;
- длительность выполнения типовых операций и др.
Выделение и классификация процессов
При процессном описании должны решаться, как минимум, две задачи:
- Идентификация всей системы «функциональных областей» и процессов компании и их взаимосвязей.
- Выделение «ключевых» интегрированных процессов и их описание на потоковом уровне.
Каждая деятельность компании реализуется как процесс, который имеет своего потребителя: внешнего — клиента или внутреннего — сотрудников или подразделения компании, реализующих другие процессы. На стадии системного описания процессов и выявляется значимость каждого процесса — в том числе происходит очищение от малопонятной деятельности. На этом этапе выбираются ключевые процессы для потокового описания, которое необходимо, например, для создания информационной системы предприятия.
Наиболее распространены следующие четыре вида бизнес-процессов:
- Процессы, создающие наибольшую добавленную стоимость (экономическую стоимость, которая определяется издержками компании, относимыми на продукцию).
- Процессы, создающие наибольшую ценность для клиентов (маркетинговую стоимость за счет дифференциации продукции).
- Процессы с наиболее интенсивным межзвенным взаимодействием, создающие транзакционные издержки.
- Процессы, определенные стандартами ИСО 9000, как обязательные к описанию при постановке системы менеджмента качества.
Важнейшим шагом при структуризации любой компании является выделение и классификация бизнес-процессов. Целесообразно основываться на следующих классах процессов:
- основные;
- процессы управления ;
- процессы обеспечения ;
- сопутствующие;
- вспомогательные;
- процессы развития.
Рассмотрим модель деятельности компании (рис. 5.2), при описании которой используют процессы управления, основные бизнес-процессы и процессы обеспечения.
Основные бизнес-процессы — это процессы, ориентированные на производство товаров и услуг, представляющие ценность для клиента и обеспечивающие получение дохода.
Основные процессы образуют «жизненный цикл» продукции компании. Критериями эффективности таких процессов являются обычно качество, точность и своевременность выполнения каждого заказа. Многие потребители рассматривают увеличение качества как нечто более важное, чем уменьшение цены. Искусный продавец может получить заказ на выполнение работ в условиях конкуренции с другими фирмами, однако только качество товара или услуги определяет в большей степени, повторит ли потребитель свой заказ у этого продавца еще раз. Таких процессов, при развитой деятельности компании, может быть много. Все они описываются по производственно-коммерческим цепочкам: «первичное взаимодействие с клиентом и определение его потребностей реализация запроса (заявки, заказа, контракта и т.п.) послепродажное сопровождение и мониторингудовлетворения потребностей». Процесс «реализации (запроса клиента)» может быть декомпозирован на следующие подпроцессы— процессы более низкого уровня:
- разработка (проектирование) продукции;
- закупка (товаров, материалов, комплектующих изделий);
- транспортировка (закупленного);
- разгрузка, приемка на склад и хранение (закупленного);
- производство (со своим технологическим циклом и внутренней логистикой);
- приемка на склад и хранение (готовой продукции);
- отгрузка (консервация и упаковка, погрузка, доставка);
- пуско-наладка;
- оказание услуг (предусмотренных контрактом на поставку или имеющих самостоятельное значение) и т.п.
Эти этапы цепочки также достаточно стандартны (например, в стандарте ИСО редакции 1994 г. приведены многие из этих процессов в качестве обязательных и подлежащих сертификации). Проверить, какие бизнес-цепочки существуют на предприятии, можно с помощью проекции каждого из выделенных «бизнесов, продукции и услуг» на вышеуказанный (стандартный) библиотечный классификатор жизненного или уже производственного цикла.
Для оценки этапов работы с любым документом можно использовать также анализ «жизненного цикла документа», который может выглядеть следующим образом:
- предоставляет исходные данные;
- подготавливает, разрабатывает;
- заполняет;
- корректирует;
- оформляет;
- подписывает;
- контролирует соответствие установленным требованиям;
- визирует;
- согласует;
- утверждает;
- акцентирует (принимает к сведению, использует);
- хранит;
- снимает копию.
-
Моделирование данных
Одной из основных частей информационного обеспечения является информационная база. Как было определено выше (см. лекцию 9), информационная база (ИБ) представляет собой совокупность данных, организованную определенным способом и хранимую в памяти вычислительной системы в виде файлов, с помощью которых удовлетворяются информационные потребности управленческих процессов и решаемых задач. Разработка БД выполняется с помощью моделирования данных. Цель моделирования данных состоит в обеспечении разработчика ИС концептуальной схемой базы данных в форме одной модели или нескольких локальных моделей, которые относительно легко могут быть отображены в любую систему баз данных. Наиболее распространенным средством моделирования данных являются диаграммы «сущность-связь» (ERD). С помощью ERDосуществляется детализация накопителей данных DFD – диаграммы, а также документируются информационные аспекты бизнес-системы, включая идентификацию объектов, важных для предметной области ( сущностей ), свойств этих объектов ( атрибутов ) и их связей с другими объектами (отношений).
Базовые понятия ERD
Сущность (Entity) — множество экземпляров реальных или абстрактных объектов (людей, событий, состояний, идей, предметов и др.), обладающих общими атрибутами или характеристиками. Любой объект системы может быть представлен только однойсущностью, которая должна быть уникально идентифицирована. При этом имя сущности должно отражать тип или класс объекта, а не его конкретный экземпляр (например, АЭРОПОРТ, а не ВНУКОВО).
Каждая сущность должна обладать уникальным идентификатором. Каждый экземпляр сущности должен однозначно идентифицироваться и отличаться от всех других экземпляров данного типа сущности. Каждая сущность должна обладать некоторыми свойствами:
- иметь уникальное имя; к одному и тому же имени должна всегда применяться одна и та же интерпретация; одна и та же интерпретация не может применяться к различным именам, если только они не являются псевдонимами;
- иметь один или несколько атрибутов, которые либо принадлежат сущности, либо наследуются через связь ;
- иметь один или несколько атрибутов, которые однозначно идентифицируют каждый экземпляр сущности.
Каждая сущность может обладать любым количеством связей с другими сущностями модели.
Связь (Relationship) — поименованная ассоциация между двумя сущностями, значимая для рассматриваемой предметной области.Связь — это ассоциация между сущностями, при которой каждый экземпляр одной сущности ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, и наоборот.
Атрибут (Attribute) — любая характеристика сущности, значимая для рассматриваемой предметной области и предназначенная для квалификации, идентификации, классификации, количественной характеристики или выражения состояния сущности .Атрибут представляет тип характеристик или свойств, ассоциированных с множеством реальных или абстрактных объектов (людей, мест, событий, состояний, идей, предметов и т.д.). Экземпляр атрибута — это определенная характеристика отдельного элемента множества. Экземпляр атрибута определяется типом характеристики и ее значением, называемым значениематрибута. На диаграмме «сущность-связь» атрибуты ассоциируются с конкретными сущностями. Таким образом, экземплярсущности должен обладать единственным определенным значением для ассоциированного атрибута.
Метод IDEFI
Наиболее распространенными методами для построения ERD-диаграмм являются метод Баркера и метод IDEFI.
Метод Баркера основан на нотации, предложенной автором, и используется в case-средстве Oracle Designer.
Метод IDEFI основан на подходе Чена и позволяет построить модель данных, эквивалентную реляционной модели в третьей нормальной форме. На основе совершенствования метода IDEFI создана его новая версия — метод IDEFIX, разработанный с учетом таких требований, как простота для изучения и возможность автоматизации. IDEFIX-диаграммы используются в ряде распространенных CASE-средств (в частности, ERwin, Design/IDEF).
В методе IDEFIX сущность является независимой от идентификаторов или просто независимой, если каждый экземпляр сущностиможет быть однозначно идентифицирован без определения его отношений с другими сущностями. Сущность называется зависимой от идентификаторов или просто зависимой, если однозначная идентификация экземпляра сущности зависит от его отношения к другой сущности (рис. 10.1, 10.2).
Каждой сущности присваиваются уникальные имя и номер, разделяемые косой чертой «/» и помещаемые над блоком.
Связь может дополнительно определяться с помощью указания степени или мощности (количества экземпляров сущности-потомка, которое может порождать каждый экземпляр сущности-родителя). В IDEFIX могут быть выражены следующие мощности связей:
- каждый экземпляр сущности-родителя может иметь ноль, один или более одного связанного с ним экземпляра сущности-потомка;
- каждый экземпляр сущности-родителя должен иметь не менее одного связанного с ним экземпляра сущности-потомка;
- каждый экземпляр сущности-родителя должен иметь не более одного связанного с ним экземпляра сущности-потомка;
- каждый экземпляр сущности-родителя связан с некоторым фиксированным числом экземпляров сущности-потомка.
Если экземпляр сущности-потомка однозначно определяется своей связью с сущностью-родителем, то связь называется идентифицирующей, в противном случае — неидентифицирующей.
Связь изображается линией, проводимой между сущностью-родителем и сущностью-потомком, с точкой на конце линии у сущности-потомка (рис. 10.3). Мощность связей может принимать следующие значения: N — ноль, один или более, Z — ноль или один, Р — один или более. По умолчанию мощность связей принимается равной N.
Идентифицирующая связь между сущностью-родителем и сущностью-потомком изображается сплошной линией. Сущность-потомок в идентифицирующей связи является зависимой от идентификатора сущностью. Сущность-родитель в идентифицирующей связиможет быть как независимой, так и зависимой от идентификатора сущностью (это определяется ее связями с другими сущностями).
Пунктирная линия изображает неидентифицирующую связь (рис. 10.4). Сущность-потомок в неидентифицирующей связи будет независимой от идентификатора, если она не является также сущностью-потомком в какой-либо идентифицирующей связи.
Атрибуты изображаются в виде списка имен внутри блока сущности. Атрибуты, определяющие первичный ключ, размещаются наверху списка и отделяются от других атрибутов горизонтальной чертой (рис. 10.4 ).
Сущности могут иметь также внешние ключи (Foreign Key), которые могут использоваться в качестве части или целого первичного ключа или неключевого атрибута. Для обозначения внешнего ключа внутрь блока сущности помещают имена атрибутов, после которых следуют буквы FK в скобках (рис. 10.4).
Отображение модели данных в инструментальном средстве ERwin
ERwin имеет два уровня представления модели — логический и физический.
Логический уровень — это абстрактный взгляд на данные, когда данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например «Постоянный клиент», «Отдел» или «Фамилия сотрудника». Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами.Логическая модель данных может быть построена на основе другой логической модели, например на основе модели процессов.Логическая модель данных является универсальной и никак не связана с конкретной реализацией СУБД.
Физическая модель данных, напротив, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация обо всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей. Если влогической модели не имеет значения, какой конкретно тип данных имеет атрибут, то в физической модели важно описать всю информацию о конкретных физических объектах — таблицах, колонках, индексах, процедурах и т.д.
Документирование модели
Многие СУБД имеют ограничение на именование объектов (например, ограничение на длину имени таблицы или запрет использования специальных символов — пробела и т. п.). Зачастую разработчики ИС имеют дело с нелокализованными версиями СУБД. Это означает, что объекты БД могут называться короткими словами, только латинскими символами и без использования специальных символов (т. е. нельзя назвать таблицу, используя предложение — ее можно назвать только одним словом). Кроме того, проектировщики БД нередко злоупотребляют «техническими» наименованиями, в результате таблица и колонки получают наименования типа RTD_324 или CUST_A12 и т.д. Полученную в результате структуру могут понять только специалисты (а чаще всего — только авторы модели), ее невозможно обсуждать с экспертами предметной области. Разделение модели на логическую и физическую позволяет решить эту проблему. На физическом уровне объекты БД могут называться так, как того требуют ограничения СУБД. На логическом уровне можно этим объектам дать синонимы — имена более понятные неспециалистам, в том числе на кириллице и с использованием специальных символов. Например, таблице CUST_A12 может соответствовать сущностьПостоянный клиент. Такое соответствие позволяет лучше документировать модель и дает возможность обсуждать структуру данных с экспертами предметной области.
Масштабирование
Создание модели данных, как правило, начинается с разработки логической модели. После описания логической моделипроектировщик может выбрать необходимую СУБД, и ERwin автоматически создаст соответствующую физическую модель. На основе физической модели ERwin может сгенерировать системный каталог СУБД или соответствующий SQL-скрипт. Этот процесс называется прямым проектированием (Forward Engineering). Тем самым достигается масштабируемость — создав одну логическую модель данных, можно сгенерировать физические модели под любую поддерживаемую ERwin СУБД. С другой стороны, ERwin способен по содержимому системного каталога или SQL-скрипту воссоздать физическую и логическую модель данных (Reverse Engineering). На основе полученной логической модели данных можно сгенерировать физическую модель для другой СУБД и затем создать ее системный каталог. Следовательно, ERwin позволяет решить задачу по переносу структуры данных с одного сервера на другой. Например, можно перенести структуру данных с Oracle на Informix (или наоборот) или перенести структуру dbf-файлов в реляционную СУБД, тем самым облегчив переход от файл-серверной к клиент-серверной ИС. Однако, формальный перенос структуры «плоских» таблиц на реляционную СУБД обычно неэффективен. Для того чтобы извлечь выгоды от перехода на клиент-серверную технологию, структуру данных следует модифицировать.
Для переключения между логической и физической моделью данных служит список выбора в центральной части панели инструментов ERwin (рис. 10.5).
Если при переключении физической модели еще не существует, она будет создана автоматически.
Интерфейс ERwin. Уровни отображения модели
Интерфейс выполнен в стиле Windows-приложений, достаточно прост и интуитивно понятен. Рассмотрим кратко основные функции ERwin по отображению модели.
Каждому уровню отображения модели соответствует своя палитра инструментов. На логическом уровне палитра инструментов имеет следующие кнопки:
- кнопку указателя (режим мыши) — в этом режиме можно установить фокус на каком-либо объекте модели;
- кнопку внесения сущности ;
- кнопку категории (категория, или категориальная связь, — специальный тип связи между сущностями, которая будет рассмотрена ниже);
- кнопку внесения текстового блока;
- кнопку перенесения атрибутов внутри сущностей и между ними;
- кнопки создания связей: идентифицирующую, «многие-ко-многим» и неидентифицирующую.
На физическом уровне палитра инструментов имеет:
- вместо кнопки категорий — кнопку внесения представлений (view);
- вместо кнопки связи «многие-ко-многим» — кнопку связей представлений.
Для создания моделей данных в ERwin можно использовать две нотации: IDEFIX и IE (Information Engineering). В дальнейшем будет рассматриваться нотация IDEFIX.
ERwin имеет несколько уровней отображения диаграммы: уровень сущностей, уровень атрибутов, уровень определений, уровеньпервичных ключей и уровень иконок. Переключиться между первыми тремя уровнями можно с использованием кнопок панели инструментов. Переключиться на другие уровни отображения можно при помощи контекстного меню, которое появляется, если «кликнуть» по любому месту диаграммы, не занятому объектами модели. В контекстном меню следует выбрать пункт Display Level (рис. 10.6) и затем — необходимый уровень отображения.
Создание логической модели данных
Уровни логической модели
Различают три уровня логической модели, отличающихся по глубине представления информации о данных:
- диаграмма сущность—связь (Entity Relationship Diagram, ERD);
- модель данных, основанная на ключах (Key Based model, KB);
- полная атрибутивная модель (Fully Attributed model, FA).
Диаграмма сущность-связь представляет собой модель данных верхнего уровня. Она включает сущности и взаимосвязи, отражающие основные бизнес-правила предметной области. Такая диаграмма не слишком детализирована, в нее включаются основные сущности и связи между ними, которые удовлетворяют основным требованиям, предъявляемым к ИС. Диаграмма сущность-связь может включать связи «многие-ко-многим» и не включать описание ключей. Как правило, ERD используется для презентаций и обсуждения структуры данных с экспертами предметной области.
Модель данных, основанная на ключах, — более подробное представление данных. Она включает описание всех сущностей ипервичных ключей и предназначена для представления структуры данных и ключей, которые соответствуют предметной области.
Полная атрибутивная модель — наиболее детальное представление структуры данных: представляет данные в третьей нормальной форме и включает все сущности, атрибуты и связи .
Сущности и атрибуты
Основные компоненты диаграммы ERwin — это сущности, атрибуты и связи. Каждая сущность является множеством подобных индивидуальных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться от всех остальных экземпляров. Атрибут выражает определенное свойство объекта. С точки зрения БД (физическая модель) сущности соответствует таблица, экземпляру сущности — строка в таблице, а атрибуту — колонка таблицы.
Построение модели данных предполагает определение сущностей и атрибутов, т. е. необходимо определить, какая информация будет храниться в конкретной сущности или атрибуте. Сущность можно определить как объект, событие или концепцию, информация о которых должна сохраняться. сущности должны иметь наименование с четким смысловым значением, именоваться существительным в единственном числе, не носить «технических» наименований и быть достаточно важными для того, чтобы их моделировать. Именование сущности в единственном числе облегчает в дальнейшем чтение модели. Фактически имя сущности дается по имени ее экземпляра. Примером может быть сущности Заказчик (но не Заказчики!) с атрибутамиНомер заказчика, Фамилия заказчика и Адрес заказчика. На уровне физической модели ей может соответствовать таблица Customer с колонками Customer_number, Customer_name и Customer_address. Каждая сущность должна быть полностью определена с помощью текстового описания. Для внесения дополнительных комментариев и определений к сущностислужат свойства, определенные пользователем (UDP). Использование (UDP) аналогично их использованию в BPwin.
Как было указано выше, каждый атрибут хранит информацию об определенном свойстве сущности, а каждый экземплярсущности должен быть уникальным. Атрибут или группа атрибутов, которые идентифицируют сущность, называется первичным ключом .
Очень важно дать атрибуту правильное имя. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Соблюдение этого правила позволяет частично решить проблему нормализации данных уже на этапе определенияатрибутов. Например, создание в сущности Сотрудник атрибута Телефоны сотрудника противоречит требованиям нормализации, поскольку атрибут должен быть атомарным, т. е. не содержать множественных значений. Согласно синтаксису IDEFIX имя атрибута должно быть уникально в рамках модели (а не только в рамках сущности!). По умолчанию при попытке внесения уже существующего имени атрибута ERwin переименовывает его.
Каждый атрибут должен быть определен, при этом следует избегать циклических определений, например, когда термин 1 определяется через термин 2, термин 2 — через термин 3, а термин 3 в свою очередь — через термин 1. Часто приходится создавать производные атрибуты, т. е. атрибуты, значение которых можно вычислить из других атрибутов. Примером производного атрибута может служить Возраст сотрудника, который может быть вычислен из атрибута Дата рождения сотрудника. Такой атрибут может привести к конфликтам; действительно, если вовремя не обновить значение атрибутаВозраст сотрудника, он может противоречить значению атрибута Дата рождения сотрудника. Производные атрибуты — ошибка нормализации, однако их вводят для повышения производительности системы, чтобы не проводить вычисления, которые на практике могут быть сложными.
Связи
Связь является логическим соотношением между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой. Имя связи выражает некоторое ограничение или бизнес-правило и облегчает чтение диаграммы. По умолчанию имя связина диаграмме не показывается. На логическом уровне можно установить идентифицирующую связь «один-ко-многим», связь«многие-ко-многим» и неидентифицирующую связь «один-ко-многим».
В IDEFIX различают зависимые и независимые сущности. Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи ) и зависимой (дочерний конец связи )сущностями. Когда рисуется идентифицирующая связь, ERwin автоматически преобразует дочернюю сущность в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами. Экземпляр зависимой сущности определяется только через отношение к родительской сущности. При установлении идентифицирующей связи атрибуты первичного ключародительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция дополненияатрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибутыпомечаются как внешний ключ — FK.
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключародительской сущности мигрируют в состав неключевых компонентов родительской сущности. Неидентифицирующая связьслужит для связывания независимых сущностей.
Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи, неидентифицирующая – пунктирной (см. рис. 10.6).
Мощность связей (Cardinality) — служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.
Различают четыре типа сущности:
- общий случай, когда одному экземпляру родительской сущности соответствуют 0, 1 или много экземпляров дочернейсущности ; не помечается каким-либо символом;
- символом Р помечается случай, когда одному экземпляру родительской сущности соответствуют 1 или много экземпляров дочерней сущности (исключено нулевое значение);
- символом Z помечается случай, когда одному экземпляру родительской сущности соответствуют 0 или 1 экземпляр дочернейсущности (исключены множественные значения);
- цифрой помечается случай точного соответствия, когда одному экземпляру родительской сущности соответствует заранее заданное число экземпляров дочерней сущности.
Имя связи (Verb Phrase) — фраза, характеризующая отношение между родительской и дочерней сущностями . Для связи «один-ко-многим», идентифицирующей или неидентифицирующей, достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent.
Типы сущностей и иерархия наследования
Как было указано выше, связи определяют, является ли сущность независимой или зависимой. Различают несколько типов зависимых сущностей.
Характеристическая — зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характеристиках родительской сущности.
Ассоциативная — сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию освязях сущностей.
Именующая — частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрировавших в качестве внешнего ключа).
Категориальная — дочерняя сущность в иерархии наследования.
Иерархия наследования (или иерархия категорий) представляет собой особый тип объединения сущностей, которые разделяют общие характеристики. Например, в организации работают служащие, занятые полный рабочий день (постоянные служащие), и совместители. Из их общих свойств можно сформировать обобщенную сущность (родовой предок) Сотрудник (рис. 10.8), чтобы представить информацию, общую для всех типов служащих. Специфическая для каждого типа информация может быть расположена в категориальных сущностях (потомках) Постоянный сотрудник и Совместитель.
Обычно иерархию наследования создают, когда несколько сущностей имеют общие по смыслу атрибуты, либо когда сущностиимеют общие по смыслу связи (например, если бы Постоянный сотрудник и Совместитель имели сходную по смыслу связь«работает в» с сущностью Организация ), либо когда это диктуется бизнес-правилами.
Для каждой категории можно указать дискриминатор — атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой ( атрибут Тип на рис. 10.8).
Иерархии категорий делятся на два типа — полные и неполные. В полной категории одному экземпляру родового предка (сущность Cjn, рис. 10.9) обязательно соответствует экземпляр в каком-либо потомке, т. е. в примере сотрудник обязательно является либо совместителем, либо консультантом, либо постоянным сотрудником.
Если категория еще не выстроена полностью и в родовом предке могут существовать экземпляры, которые не имеют соответствующих экземпляров в потомках, то такая категория будет неполной. На рис. 10.8 показана неполная категория — сотрудник может быть не только постоянным или совместителем, но и консультантом, однако сущность Консультант еще не внесена в иерархию наследования.
Ключи
Как было сказано выше, каждый экземпляр сущности должен быть уникален и должен отличаться от других атрибутов.
Первичный ключ (primary key) — это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности .атрибуты первичного ключа на диаграмме не требуют специального обозначения — это те атрибуты, которые находятся в спискеатрибутов выше горизонтальной линии (см., например, рис. 10.9).
В одной сущности могут оказаться несколько атрибутов или наборов атрибутов, претендующих на роль первичного ключа. Такие претенденты называются потенциальными ключами (candidate key).
Ключи могут быть сложными, т. е. содержащими несколько атрибутов. Сложные первичные ключи не требуют специального обозначения — это список атрибутов, расположенных выше горизонтальной линии.
Рассмотрим кандидатов на роль первичного ключа сущности Сотрудник (рис. 10.10).
Здесь можно выделить следующие потенциальные ключи:
- Табельный номер ;
- Номер паспорта ;
- Фамилия + Имя + Отчество.
Для того чтобы стать первичным, потенциальный ключ должен удовлетворять ряду требований:
Уникальность. Два экземпляра не должны иметь одинаковых значений возможного ключа. потенциальный ключ № 3 ( Фамилия + Имя + Отчество ) является плохим кандидатом, поскольку в организации могут работать полные тезки.
Компактность. Сложный возможный ключ не должен содержать ни одного атрибута, удаление которого не приводило бы к утрате уникальности. Для обеспечения уникальности ключа № 3 дополним его атрибутами Дата рождения и Цвет волос. Если бизнес-правила говорят, что сочетания атрибутов Фамилия + Имя + Отчество + Дата рождения достаточно для однозначной идентификации сотрудника, то Цвет волос оказывается лишним, т. е. ключ Фамилия + Имя + Отчество + Дата рождения + Цвет волос не является компактным.
При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т. е. ключам, содержащим меньшее количество атрибутов. В приведенном примере ключи № 1 и 2 предпочтительней ключа № 3.
Атрибуты ключа не должны содержать нулевых значений. Значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности. Сотрудница организации может выйти замуж и сменить как фамилию, так и паспорт. Поэтому ключи № 2 и 3 не подходят на роль первичного ключа.
Каждая сущность должна иметь по крайней мере один потенциальный ключ. Многие сущности имеют только один потенциальный ключ. Такой ключ становится первичным. Некоторые сущности могут иметь более одного возможного ключа. Тогда один из них становится первичным, а остальные — альтернативными ключами.
Альтернативный ключ (Alternate Key) — это потенциальный ключ, не ставший первичным.
Нормализация данных
Нормализация данных — процесс проверки и реорганизации сущностей и атрибутов с целью удовлетворения требований к реляционной модели данных. Нормализация позволяет быть уверенным, что каждый атрибут определен для своей сущности, а также значительно сократить объем памяти для хранения информации и устранить аномалии в организации хранения данных. В результате проведения нормализации должна быть создана структура данных, при которой информация о каждом факте хранится только в одном месте. Процесс нормализации сводится к последовательному приведению структуры данных к нормальным формам — формализованным требованиям к организации данных. Известны шесть нормальных форм.
На практике обычно ограничиваются приведением данных к третьей нормальной форме. Для углубленного изучения нормализации рекомендуется книга К. Дж. Дейта «Введение в системы баз данных» (Киев; М.: Диалектика, 1998).
ERwin не содержит полного алгоритма нормализации и не может проводить нормализацию автоматически, однако его возможности облегчают создание нормализованной модели данных. Запрет на присвоение неуникальных имен атрибутов в рамках модели (при соответствующей установке опции Unique Name) облегчает соблюдение правила «один факт — в одном месте». Имена ролей атрибутов внешних ключей и унификация атрибутов также облегчают построение нормализованной модели.
Домены
Домен можно определить как совокупность значений, из которых берутся значения атрибутов . Каждый атрибут может быть определен только на одном домене, но на каждом домене может быть определено множество атрибутов. В понятие доменавходит не только тип данных, но и область значений данных. Например, можно определить домен «Возраст» как положительное целое число и определить атрибут Возраст сотрудника как принадлежащий этому домену.
В ERwin домен может быть определен только один раз и использоваться как в логической, так и в физической модели.
Домены позволяют облегчить работу с данными как разработчикам на этапе проектирования, так и администраторам БД на этапе эксплуатации системы. На логическом уровне домены можно описать без конкретных физических свойств. На физическом уровне они автоматически получают специфические свойства, которые можно изменить вручную. Так, домен «Возраст» может иметь на логическом уровне тип Number, на физическом уровне колонкам домена будет присвоен тип INTEGER.
Каждый домен может быть описан, снабжен комментарием или свойством, определенным пользователем (UDP).
Создание физической модели данных
Физическая модель содержит всю информацию, необходимую для реализации конкретной БД. Различают два уровня физической модели:
- трансформационную модель;
- модель СУБД.
Трансформационная модель содержит информацию для реализации отдельного проекта, который может быть частью общей ИС и описывать подмножество предметной области. Данная модель позволяет проектировщикам и администраторам БД лучше представить, какие объекты БД хранятся в словаре данных, и проверить, насколько физическая модель удовлетворяет требованиям к ИС.
Модель СУБД автоматически генерируется из трансформационной модели и является точным отображением системного каталога СУБД.
Физический уровень представления модели зависит от выбранного сервера. ERwin поддерживает более 20 реляционных и нереляционных БД.
По умолчанию ERwin генерирует имена таблиц и индексов по шаблону на основе имен соответствующих сущностей и ключейлогической модели, которые в дальнейшем могут быть откорректированы вручную. Имена таблиц и колонок будут сгенерированы по умолчанию на основе имен сущностей и атрибутов логической модели.
Правила валидации и значения по умолчанию
ERwin поддерживает правила валидации для колонок, а также значение, присваиваемое колонкам по умолчанию.
Правило валидации задает список допустимых значений для конкретной колонки и/или правила проверки допустимых значений. В список допустимых значений можно вносить новые значения. ERwin позволяет сгенерировать правила валидации соответственно синтаксису выбранной СУБД с учетом границ диапазона или списка значений.
Значение по умолчанию – значение, которое нужно ввести в колонку, если никакое другое значение не задано явным образом во время ввода данных. С каждой колонкой или доменом можно связать значение по умолчанию. Список значений можно редактировать.
После создания правила валидации и значения по умолчанию их можно присвоить одной или нескольким колонкам или доменами.
Индексы
В БД данные обычно хранятся в том порядке, в котором их ввели в таблицу. Многие реляционные СУБД имеют страничную организацию, при которой таблица может храниться фрагментарно в разных областях диска, причем строки таблицы располагаются на страницах неупорядоченно. Такой способ позволяет быстро вводить новые данные, но затрудняет поиск данных.
Чтобы решить проблему поиска, СУБД используют объекты, называемые индексами. Индекс содержит отсортированную по колонке или нескольким колонкам информацию и указывает на строки, в которых хранится конкретное значение колонки. Поскольку значения в индексе хранятся в определенном порядке, при поиске просматривать нужно значительно меньший объем данных, что существенно уменьшает время выполнения запроса. Индекс рекомендуется создавать для тех колонок, по которым часто производится поиск.
При генерации схемы физической БД ERwin автоматически создает индекс на основе первичного ключа каждой таблицы, а также на основе всех альтернативных ключей и внешних ключей, поскольку эти колонки наиболее часто используются для поиска данных. Можно отказаться от генерации индексов по умолчанию и создать собственные индексы. Для увеличения эффективности поиска администратор БД должен анализировать часто выполняемые запросы и на основе анализа создавать собственные индексы.
Триггеры и хранимые процедуры
Триггеры и хранимые процедуры – это именованные блоки кода SQL, которые заранее откомпилированы и хранятся на сервере для того, чтобы быстро производить обработку запросов, валидацию данных и другие часто выполняемые функции. Хранение и выполнение кода на сервере позволяет создавать код только один раз, а не в каждом приложении, работающем с БД. Это экономит время при написании и сопровождении программ. При этом гарантируется, что целостность данных и бизнес-правила поддерживаются независимо от того, какое именно клиентское приложение обращается к данным.Триггеры и хранимые процедуры не требуется пересылать по сети из клиентского приложения, что значительно снижает сетевой трафик.
Хранимой процедурой называется именованный набор предварительно откомпилированных команд SQL, который может вызываться из клиентского приложения или из другой хранимой процедуры .
Триггером называется процедура, которая выполняется автоматически как реакция на событие. Таким событием может быть вставка, изменение или удаление строки в существующей таблице. Триггер сообщает СУБД, какие действия нужно выполнить при выполнении команд SQL INSERT, UPDATE или DELETE для обеспечения дополнительной функциональности, выполняемой на сервере.
Триггер ссылочной целостности – это особый вид триггера, используемый для поддержания целостности между двумя таблицами, которые связаны между собой. Если строка в одной таблице вставляется, изменяется или удаляется, то триггерссылочной целостности сообщает СУБД, что нужно делать с теми строками в других таблицах, у которых значение внешнего ключа совпадает со значением первичного ключа вставленной строки (измененной или удаленной строки).
Для генерации триггеров ERwin использует механизм шаблонов – специальных скриптов, использующих макрокоманды. При генерации кода триггера вместо макрокоманд подставляются имена таблиц, колонок, переменные и другие фрагменты кода, соответствующие синтаксису выбранной СУБД. Шаблоны триггеров ссылочной целостности, генерируемые ERwin по умолчанию, можно изменять.
Для создания и редактирования хранимых процедур ERwin располагает специальными редакторами, аналогичными редакторам, используемым для создания триггеров. В отличие от триггера хранимая процедура не выполняется в ответ на какое-то событие, а вызывается из другой программы, которая передает на сервер имя процедуры. Хранимая процедура более гибкая, чем триггер, поскольку может вызывать другие хранимые процедуры. Ей можно передавать параметры, и она может возвращать параметры, значения и сообщения.
Проектирование хранилищ данных
В хранилища данных помещают данные, которые редко меняются. Хранилища ориентированы на выполнение аналитических запросов, обеспечивающих поддержку принятия решений для руководителей и менеджеров. При проектировании хранилищ данных необходимо выполнять следующие требования:
- хранилище должно иметь понятную для пользователей структуру данных;
- должны быть выделены статические данные, которые модифицируются по расписанию (ежедневно, еженедельно, ежеквартально);
- должны быть упрощены требования к запросам для исключения запросов, требующих множественных утверждений SQL в традиционных реляционных СУБД;
- должна обеспечиваться поддержка сложных запросов SQL, требующих обработки миллионов записей.
Как видно из этих требований, по своей структуре реляционные СУБД существенно отличаются от хранилищ данных.Нормализация данных в реляционных СУБД приводит к созданию множества связанных между собой таблиц. Выполнение сложных запросов неизбежно приводит к объединению многих таблиц, что значительно увеличивает время отклика. Проектирование хранилища данных подразумевает создание денормализованной структуры данных, ориентированных в первую очередь на высокуюпроизводительность при выполнении аналитических запросов. Нормализация делает модель хранилища слишком сложной, затрудняет ее понимание и снижает скорость выполнения запроса. Для эффективного проектирования хранилищ данных ERwin использует размерную модель – методологию проектирования, предназначенную специально для разработки хранилищ данных. Размерное моделирование сходно с моделированием связей и сущностей для реляционной модели, но имеет другую цель. Реляционная модель акцентируется на целостности и эффективности ввода данных. Размерная модель ориентирована в первуюочередь на выполнение сложных запросов
В размерном моделировании принят стандарт модели, называемый схемой «звезда«, которая обеспечивает высокую скорость выполнения запроса посредством денормализации и разделения данных. Невозможно создать универсальную структуру данных, обеспечивающую высокую скорость обработки любого запроса, поэтому схема «звезда» строится для обеспечения наивысшей производительности при выполнении самого важного запроса (или группы запросов).
Схема «звезда» обычно содержит одну большую таблицу, называемую таблицей факта, помещенную в центре. Ее окружают меньшие таблицы, называемые таблицами размерности, которые связаны с таблицей факта радиальными связями.
Для создания БД со схемой «звезда» необходимо проанализировать бизнес-правила предметной области для выяснения центрального запроса. Данные, обеспечивающие выполнение этого запроса, должны быть помещены в центральную таблицу. При проектировании хранилища важно определить источник данных, метод, которым данные извлекаются, преобразуются и фильтруются, прежде чем они импортируются в хранилище. Знания об источнике данных позволяют поддерживать регулярное обновление и проверку качества данных.
Вычисление размера БД
ERwin позволяет рассчитать приблизительный размер БД в целом, а также таблиц, индексов и других объектов через определенный период времени после начала эксплуатации ИС. Расчет строится на основе следующих параметров: начальное количество строк; максимальное количество строк; прирост количества строк в месяц. Результаты расчетов сводятся в отчет.
Прямое и обратное проектирование
Прямым проектированием называется процесс генерации физической схемы БД из логической модели. При генерации физической схемы ERwin включает триггеры ссылочной целостности, хранимые процедуры, индексы, ограничения и другие возможности, доступные при определении таблиц в выбранной СУБД.
Обратным проектированием называется процесс генерации логической модели из физической БД. Обратное проектированиепозволяет конвертировать БД из одной СУБД в другую. После создания логической модели БД путем обратного проектированияможно переключиться на другой сервер и произвести прямое проектирование.
Кроме режима прямого и обратного проектирования программа обеспечивает синхронизацию между логической моделью и системным каталогом СУБД на протяжении всего жизненного цикла создания ИС.
Генерация кода клиентской части с помощью ERwin
Расширенные атрибуты
ERwin поддерживает не только проектирование сервера БД, но и автоматическую генерацию клиентского приложения в средах разработки MS Visual Basic и Power Builder. Технология генерации состоит в том, что на этапе разработки физической модели данных каждой колонке присваиваются расширенные атрибуты, содержащие информацию о свойствах объектов клиентского приложения (в том числе и визуальных), которые будут отображать информацию, хранящуюся в соответствующей колонке. Эта информация записывается в файле модели. На основе информации, содержащейся в расширенных атрибутах, генерируются экранные формы. Полученный код может быть откомпилирован и выполнен без дополнительного ручного кодирования.
Каждой колонке в модели ERwin можно задать предварительно описанные и именованные свойства:
- правила валидации (проверка значений);
- начальные значения, устанавливаемые по умолчанию;
- стиль визуального объекта (например, радиокнопка, поле ввода и др.);
- формат изображения.
Для описания каждого свойства ERwin содержит соответствующие редакторы.
Генерация кода в Visual Basic
ERwin поддерживает генерацию кода в Visual Basic версий 4.0 и 5.0. В качестве источника информации при генерации форм служит модель ERwin. С помощью ERwin можно одновременно описывать как клиентскую часть (объекты, отображающие данные на экране), так и сервер БД (процедуры и триггеры ), тем самым оптимально распределяя функциональность ИС между клиентской и серверной частью. Компонент ERwin Form Wizard автоматически проектирует формы с дочерними объектами – кнопками, списками, полями, радиокнопками и т. д., используя расширенные атрибуты. Совместное использование ERwin и Visual Basic позволяет сократить жизненный цикл разработки ИС путем употребления для каждой задачи наиболее эффективного инструмента. Visual Basic может быть использован для проектирования визуального интерфейса, а ERwin – для разработки физической и логической модели данных с последующей генерацией системного каталога сервера. Если БД уже существует, то с помощью ERwin можно провести обратное проектирование, полученную модель дополнить расширенными атрибутами и сгенерировать клиентское приложение.
Создание отчетов
Для генерации отчетов в ERwin имеется простой и эффективный инструмент – Report Browser. По умолчанию Report Browser содержит предварительно определенные отчеты, позволяющие наглядно представить информацию об основных объектах модели данных – как логической, так и физической. С помощью специального редактора существующие отчеты можно изменить или создать собственный отчет. Каждый отчет может быть настроен индивидуально, данные в нем могут быть отсортированы и отфильтрованы. Browser Report позволяет сохранять результаты выполнения отчетов, печатать и экспортировать их в распространенные форматы.
Генерация словарей
Для управления большими проектами ERwin имеет специальный инструмент – ERwin Dictionary, который обеспечивает коллективную работу над диаграммами и позволяет сохранять и документировать различные версии моделей данных. ERwin Dictionary представляет собой специальную БД, которая позволяет решить проблемы документирования и хранения моделей, однако не полностью отвечает требованиям многопользовательской работы.
Проектирование информационных систем
Часть 1. Этапы разработки проекта: стратегия и анализ
Введение
«Водопад» — схема разработки проекта
Стратегия
Анализ
ER-диаграммы
Дуги
Нормализация
Диаграммы потоков данных
Диаграммы изменения состояний STD
Некоторые принципы проверки качества и полноты информационной
модели
Качество сущностей
Качество атрибутов
Качество связи
Функции системы
Уточнение стратегии
Введение
Проектирование информационных систем всегда начинается с определения цели проекта.
Основная задача любого успешного проекта заключается в том, чтобы на момент
запуска системы и в течение всего времени ее эксплуатации можно было обеспечить:
- требуемую функциональность системы и степень адаптации к изменяющимся условиям
ее функционирования; - требуемую пропускную способность системы;
- требуемое время реакции системы на запрос;
- безотказную работу системы в требуемом режиме, иными словами — готовность
и доступность системы для обработки запросов пользователей; - простоту эксплуатации и поддержки системы;
- необходимую безопасность.
Производительность является главным фактором, определяющим эффективность системы.
Хорошее проектное решение служит основой высокопроизводительной системы.
Проектирование информационных систем охватывает три основные области:
- проектирование объектов данных, которые будут реализованы в базе данных;
- проектирование программ, экранных форм, отчетов, которые будут обеспечивать
выполнение запросов к данным; - учет конкретной среды или технологии, а именно: топологии сети, конфигурации
аппаратных средств, используемой архитектуры (файл-сервер или клиент-сервер),
параллельной обработки, распределенной обработки данных и т.п.
В реальных условиях проектирование — это поиск способа, который удовлетворяет
требованиям функциональности системы средствами имеющихся технологий с учетом
заданных ограничений.
К любому проекту предъявляется ряд абсолютных требований, например максимальное
время разработки проекта, максимальные денежные вложения в проект и т.д. Одна
из сложностей проектирования состоит в том, что оно не является такой структурированной
задачей, как анализ требований к проекту или реализация того или иного проектного
решения.
Считается, что сложную систему невозможно описать в принципе. Это, в частности,
касается систем управления предприятием. Одним из основных аргументов является
изменение условий функционирования системы, например директивное изменение тех
или иных потоков информации новым руководством. Еще один аргумент — объемы технического
задания, которые для крупного проекта могут составлять сотни страниц, в то время
как технический проект может содержать ошибки. Возникает вопрос: а может, лучше
вообще не проводить обследования и не делать никакого технического проекта,
а писать систему «с чистого листа» в надежде на то, что произойдет некое чудесное
совпадение желания заказчика с тем, что написали программисты, а также на то,
что все это будет стабильно работать?
Если разобраться, то так ли уж непредсказуемо развитие системы и действительно
ли получить информацию о ней невозможно? Вероятно, представление о системе в
целом и о предполагаемых (руководством) путях ее развития можно получить посредством
семинаров. После этого разбить сложную систему на более простые компоненты,
упростить связи между компонентами, предусмотреть независимость компонентов
и описать интерфейсы между ними (чтобы изменение одного компонента автоматически
не влекло за собой существенного изменения другого компонента), а также возможности
расширения системы и «заглушки» для нереализуемых в той или иной версии системы
функций. Исходя из подобных элементарных соображений описание того, что предполагается
реализовать в информационной системе, уже не кажется столь нереальным. Можно
придерживаться классических подходов к разработке информационных систем, один
из которых — схема «водопада» (рис. 1) — описан ниже. Кратко
будут рассмотрены и некоторые другие подходы к разработке информационных систем,
где использование элементов, описанных в схеме «водопада», также допустимо.
Какого подхода из описываемых ниже придерживаться (и есть ли смысл придумывать
собственный подход) — в какой-то мере дело вкуса и обстоятельств.
Жизненный цикл программного обеспечения представляет собой модель его создания
и использования. Модель отражает его различные состояния, начиная с момента
возникновения необходимости в данном ПО и заканчивая моментом его полного выхода
из употребления у всех пользователей. Известны следующие модели жизненного цикла:
- Каскадная модель. Переход на следующий этап означает полное завершение
работ на предыдущем этапе. - Поэтапная модель с промежуточным контролем. Разработка ПО ведется итерациями
с циклами обратной связи между этапами. Межэтапные корректировки позволяют
уменьшить трудоемкость процесса разработки по сравнению с каскадной моделью;
время жизни каждого из этапов растягивается на весь период разработки. - Спиральная модель. Особое внимание уделяется начальным этапам разработки —
выработке стратегии, анализу и проектированию, где реализуемость тех или иных
технических решений проверяется и обосновывается посредством создания прототипов
(макетирования). Каждый виток спирали предполагает создание некой версии продукта
или какого-либо его компонента, при этом уточняются характеристики и цели
проекта, определяется его качество и планируются работы следующего витка спирали.
Ниже мы рассмотрим некоторые схемы разработки проекта.
«Водопад» — схема разработки проекта
Очень часто проектирование описывают как отдельный этап разработки проекта
между анализом и разработкой. Однако в действительности четкого деления этапов
разработки проекта нет — проектирование, как правило, не имеет явно выраженного
начала и окончания и часто продолжается на этапах тестирования и реализации.
Говоря об этапе тестирования, также следует отметить, что и этап анализа, и
этап проектирования содержат элементы работы тестеров, например для получения
экспериментального обоснования выбора того или иного решения, а также для оценки
критериев качества получаемой системы. На этапе эксплуатации уместен разговор
и о сопровождении системы.
Ниже мы рассмотрим каждый из этапов, подробнее остановившись на этапе проектирования.
Стратегия
Определение стратегии предполагает обследование системы. Основная задача обследования —
оценка реального объема проекта, его целей и задач, а также получение определений
сущностей и функций на высоком уровне.
На этом этапе привлекаются высококвалифицированные бизнес-аналитики, которые
имеют постоянный доступ к руководству фирмы; этап предполагает тесное взаимодействие
с основными пользователями системы и бизнес-экспертами. Основная задача взаимодействия —
получить как можно более полную информацию о системе (полное и однозначное понимание
требований заказчика) и передать данную информацию в формализованном виде системным
аналитикам для последующего проведения этапа анализа. Как правило, информация
о системе может быть получена в результате бесед или семинаров с руководством,
экспертами и пользователями. Таким образом определяются суть данного бизнеса,
перспективы его развития и требования к системе.
По завершении основной стадии обследования системы технические специалисты формируют
вероятные технические подходы и приблизительно рассчитывают затраты на аппаратное
обеспечение, закупаемое программное обеспечение и разработку нового программного
обеспечения (что, собственно, и предполагается проектом).
Результатом этапа определения стратегии является документ, где четко сформулировано,
что получит заказчик, если согласится финансировать проект; когда он получит
готовый продукт (график выполнения работ); сколько это будет стоить (для крупных
проектов должен быть составлен график финансирования на разных этапах работ).
В документе должны быть отражены не только затраты, но и выгода, например время
окупаемости проекта, ожидаемый экономический эффект (если его удается оценить).
В документе обязательно должны быть описаны:
- ограничения, риски, критические факторы, влияющие на успешность проекта,
например время реакции системы на запрос является заданным ограничением, а
не желательным фактором; - совокупность условий, при которых предполагается эксплуатировать будущую
систему: архитектура системы, аппаратные и программные ресурсы, предоставляемые
системе, внешние условия ее функционирования, состав людей и работ, которые
обеспечивают бесперебойное функционирование системы; - сроки завершения отдельных этапов, форма сдачи работ, ресурсы, привлекаемые
в процессе разработки проекта, меры по защите информации; - описание выполняемых системой функций;
- будущие требования к системе в случае ее развития, например возможность
работы пользователя с системой с помощью Интернета и т.п.; - сущности, необходимые для выполнения функций системы;
- интерфейсы и распределение функций между человеком и системой;
- требования к программным и информационным компонентам ПО, требования к
СУБД (если проект предполагается реализовывать для нескольких СУБД, то требования
к каждой из них, или общие требования к абстрактной СУБД и список рекомендуемых
для данного проекта СУБД, которые удовлетворяют заданным условиям); - что не будет реализовано в рамках проекта.
Выполненная на данном этапе работа позволяет ответить на вопрос, стоит ли продолжать
данный проект и какие требования заказчика могут быть удовлетворены при тех
или иных условиях. Может оказаться, что проект продолжать не имеет смысла, например
из-за того, что те или иные требования не могут быть удовлетворены по каким-то
объективным причинам. Если принимается решение о продолжении проекта, то для
проведения следующего этапа анализа уже имеются представление об объеме проекта
и смета затрат.
Следует отметить, что и на этапе выбора стратегии, и на этапе анализа, и при
проектировании независимо от метода, применяемого при разработке проекта, всегда
следует классифицировать планируемые функции системы по степени важности. Один
из возможных форматов представления такой классификации — MoSCoW — предложен
в Clegg, Dai and Richard Barker, Case Method Fast-track: A RAD Approach, Adison-Wesley,
1994.
Эта аббревиатура расшифровывается так: Must have — необходимые функции; Should
have — желательные функции; Could have — возможные функции; Won’t have — отсутствующие
функции.
Функции первой категории обеспечивают критичные для успешной работы системы
возможности.
Реализация функций второй и третьей категорий ограничивается временными и финансовыми
рамками: разрабатываем то, что необходимо, а также максимально возможное в порядке
приоритета число функций второй и третьей категорий.
Последняя категория функций особенно важна, поскольку необходимо четко представлять
границы проекта и набор функций, которые будут отсутствовать в системе.
Анализ
Этап анализа предполагает подробное исследование бизнес-процессов (функций,
определенных на этапе выбора стратегии) и информации, необходимой для их выполнения
(сущностей, их атрибутов и связей (отношений)). На этом этапе создается информационная
модель, а на следующем за ним этапе проектирования — модель данных.
Вся информация о системе, собранная на этапе определения стратегии, формализуется
и уточняется на этапе анализа. Особое внимание следует уделить полноте переданной
информации, анализу информации на предмет отсутствия противоречий, а также поиску
неиспользуемой вообще или дублирующейся информации. Как правило, заказчик не
сразу формирует требования к системе в целом, а формулирует требования к отдельным
ее компонентам. Уделите внимание согласованности этих компонентов.
Аналитики собирают и фиксируют информацию в двух взаимосвязанных формах:
- функции — информация о событиях и процессах, которые происходят в бизнесе;
- сущности — информация о вещах, имеющих значение для организации и о которых
что-то известно.
Двумя классическими результатами анализа являются:
- иерархия функций, которая разбивает процесс обработки на составные части
(что делается и из чего это состоит); - модель «сущность-связь» (Entry Relationship model, ER-модель), которая
описывает сущности, их атрибуты и связи (отношения) между ними.
Эти результаты являются необходимыми, но не достаточными. К достаточным результатам
следует отнести диаграммы потоков данных и диаграммы жизненных циклов сущностей.
Довольно часто ошибки анализа возникают при попытке показать жизненный цикл
сущности на диаграмме ER.
Ниже мы рассмотрим три наиболее часто применяемые методологии структурного анализа:
- диаграммы «сущность-связь» (Entity-Relationship Diagrams, ERD), которые
служат для формализации информации о сущностях и их отношениях; - диаграммы потоков данных (Data Flow Diagrams, DFD), которые служат для
формализации представления функций системы; - диаграммы переходов состояний (State Transition Diagrams, STD), которые
отражают поведение системы, зависящее от времени; диаграммы жизненных циклов
сущностей относятся именно к этому классу диаграмм.
ER-диаграммы
ER-диаграммы (рис. 2) используются для разработки данных
и представляют собой стандартный способ определения данных и отношений между
ними. Таким образом, осуществляется детализация хранилищ данных. ER-диаграмма
содержит информацию о сущностях системы и способах их взаимодействия, включает
идентификацию объектов, важных для предметной области (сущностей), свойств этих
объектов (атрибутов) и их отношений с другими объектами (связей). Во многих
случаях информационная модель очень сложна и содержит множество объектов.
Сущность изображается в виде прямоугольника, вверху которого располагается имя
сущности (например, TITLES). В прямоугольнике могут быть перечислены атрибуты
сущности; атрибуты ER-диаграмм, набранные полужирным шрифтом1, являются ключевыми
(так Title Identity — ключевой атрибут сущности TITLES, остальные атрибуты ключевыми
не являются).
Отношение изображается линией между двумя сущностями (синие линии на рисунке).
Одиночная линия справа (рис. 3) означает «один», «птичья
лапка» слева — «многие», а отношение читается вдоль линии, например «один ко
многим». Вертикальная черта означает «обязательно», кружок — «не обязательно»,
например для каждого издания в TITLE обязательно должен быть указан издатель
в PUBLISHERS, а один издатель в PUBLISHERS может выпускать несколько наименований
изданий в TITLES. Следует отметить, что связи всегда комментируются (надпись
на линии, изображающей связь).
Приведем также пример (рис. 4) изображения рефлексивного
отношения «сотрудник», где один сотрудник может руководить несколькими подчиненными
и так далее вниз по иерархии должностей.
Следует обратить внимание на то, что такое отношение всегда является необязательным,
в противном случае это будет бесконечная иерархия.
Атрибуты сущностей могут быть ключевыми — они выделяются полужирным шрифтом;
обязательными — перед ними ставится знак «*», то есть их значение всегда известно,
необязательными (optional) — перед ними ставится О, то есть значения этого атрибута
в какие-то моменты могут отсутствовать или быть неопределенными.
Дуги
Если сущность имеет набор взаимоисключающих отношений с другими сущностями,
то говорят, что такие отношения находятся в дуге. Например, банковский счет
может быть оформлен или для юридического лица, или для физического лица. Фрагмент
ER-диаграммы для такого типа отношений приведен на рис. 5.
В этом случае атрибут ВЛАДЕЛЕЦ сущности СЧЕТ имеет особое значение для данной
сущности — сущность делится на типы по категориям: «для физического лица» и
«для юридического лица». Полученные в результате сущности называют подтипами,
а исходная сущность становится супертипом. Чтобы понять, нужен супертип или
нет, надо установить, сколько одинаковых свойств имеют различные подтипы. Следует
отметить, что злоупотребление подтипами и супертипами является довольно распространенной
ошибкой. Изображают их так, как показано на рис. 6.
Нормализация
Чтобы не допустить аномалий при обработке данных, используют нормализацию. Принципы
нормализации для объектов информационной модели в точности такие же, как и для
моделей данных.
Допустимые типы связей. При ближайшем рассмотрении связи типа «один к одному»
(рис. 7) почти всегда оказывается, что A и B представляют
собой в действительности разные подмножества одного и того же предмета или разные
точки зрения на него, просто имеющие отличные имена и по-разному описанные связи
и атрибуты.
Связи «многие к одному» представлены на рис. 8.
I — достаточно сильная конструкция, предполагающая, что вхождение сущности B
не может быть создано без одновременного создания по меньшей мере одного связанного
с ним вхождения сущности A.
II — это наиболее часто встречающаяся форма связи. Она предполагает, что каждое
и любое вхождение сущности A может существовать только в контексте одного (и
только одного) вхождения сущности B. В свою очередь, вхождения B могут существовать
как в связи с вхождениями A, так и без нее.
III — применяется редко. Как A, так и B могут существовать без связи между ними.
Связи «многие ко многим» представлены на рис. 9.
I — такая конструкция часто имеет место в начале этапа анализа и означает связь —
либо понятую не до конца и требующую дополнительного разрешения, либо отражающую
простое коллективное отношение — двунаправленный список.
II — применяется редко. Такие связи всегда подлежат дальнейшей детализации.
Рассмотрим теперь рекурсивные связи (рис. 10).
I — редко, но имеет место. Отражает связи альтернативного типа.
II — достаточно часто применяется для описания иерархий с любым числом уровней.
III — имеет место на ранних этапах. Часто отражает структуру «перечня материалов»
(взаимная вложенность компонентов). Пример: каждый КОМПОНЕНТ может состоять
из одного и более (других) КОМПОНЕНТОВ и каждый КОМПОНЕНТ может использоваться
в одном и более (других) КОМПОНЕНТОВ.
Недопустимые типы связей. К недопустимым типам связей относятся следующие:
обязательная связь «многие ко многим» (рис. 11) и ряд рекурсивных
связей (рис. 12).
Обязательная связь «многие ко многим» в принципе невозможна. Такая связь означала
бы, что ни одно из вхождений A не может существовать без B, и наоборот. На деле
каждая подобная конструкция всегда оказывается ошибочной.
Диаграммы потоков данных
Логическая DFD (рис. 13) показывает внешние по отношению
к системе источники и стоки (адресаты) данных, идентифицирует логические функции
(процессы) и группы элементов данных, связывающие одну функцию с другой (потоки),
а также идентифицирует хранилища (накопители) данных, к которым осуществляется
доступ. Структуры потоков данных и определения их компонентов хранятся и анализируются
в словаре данных. Каждая логическая функция (процесс) может быть детализирована
с помощью DFD нижнего уровня; когда дальнейшая детализация перестает быть полезной,
переходят к выражению логики функции при помощи спецификации процесса (мини-спецификации).
Содержимое каждого хранилища также сохраняют в словаре данных, модель данных
хранилища раскрывается с помощью ER-диаграмм.
В частности, в DFD не показываются процессы, которые управляют собственно потоком
данных и не приводятся различия между допустимыми и недопустимыми путями. DFD
содержат множество полезной информации, а кроме того:
- позволяют представить систему с точки зрения данных;
- иллюстрируют внешние механизмы подачи данных, которые потребуют наличия
специальных интерфейсов; - позволяют представить как автоматизированные, так и ручные процессы системы;
- выполняют ориентированное на данные секционирование всей системы.
Потоки данных используются для моделирования передачи информации (или даже физических
компонентов) из одной части системы в другую. Потоки на диаграммах изображаются
именованными стрелками, стрелки указывают направление движения информации. Иногда
информация может двигаться в одном направлении, обрабатываться и возвращаться
в ее источник. Такая ситуация может моделироваться либо двумя различными потоками,
либо одним двунаправленным.
Процесс преобразует входной поток данных в выходной в соответствии с действием,
задаваемым именем процесса. Каждый процесс должен иметь уникальный номер для
ссылок на него внутри диаграммы. Этот номер может использоваться совместно с
номером диаграммы для получения уникального индекса процесса во всей модели.
Хранилище данных (data storage) позволяет на ряде участков определять данные,
которые будут сохраняться в памяти между процессами. Фактически хранилище представляет
«срезы» потоков данных во времени. Информацию, которую оно содержит, можно использовать
в любое время после ее определения, при этом данные могут выбираться в произвольном
порядке. Имя хранилища должно идентифицировать его содержимое. В случае когда
поток данных входит (выходит) в (из) хранилище и его структура соответствует
структуре хранилища, он должен иметь то же самое имя, которое нет необходимости
отражать на диаграмме.
Внешняя сущность (терминатор) представляет сущность вне контекста системы, являющуюся
источником или приемником системных данных. Ее имя должно содержать существительное,
например «Клиент». Предполагается, что объекты, представленные такими узлами,
не должны участвовать ни в какой обработке.
Диаграммы изменения состояний STD
Жизненный цикл сущности относится к классу STD-диаграмм (рис.
14). Эта диаграмма отражает изменение состояния объекта с течением времени.
Например, рассмотрим состояние товара на складе: товар может быть заказан у
поставщика, поступить на склад, храниться на складе, проходить контроль качества,
может быть продан, забракован, возвращен поставщику. Стрелки на диаграмме показывают
допустимые изменения состояний.
Существует несколько различных вариантов изображения подобных диаграмм, на рисунке
приведен лишь один из них.
Некоторые принципы проверки качества и полноты информационной
модели
(источник — Richard Barker, Case Method: Entity Relationship Modelling, Addison-Wesley,
1990)
Если вы хотите создать качественную модель, то придется прибегать к помощи
аналитиков, хорошо владеющих CASE-технологией. Однако это не означает, что построением
и контролем информационной модели должны заниматься только аналитики. Помощь
коллег также может оказаться весьма полезной. Привлекайте их к проверке поставленной
цели и к детальному изучению построенной модели как с точки зрения логики, так
и с точки зрения учета аспектов предметной области. Большинство людей легче
находят недостатки в чужой работе.
Регулярно представляйте вашу информационную модель или ее отдельные фрагменты,
относительно которых у вас возникают сомнения, на одобрение пользователей. Особое
внимание уделяйте исключениям из правил и ограничениям.
Качество сущностей
Основной гарантией качества сущности является ответ на вопрос, действительно
ли объект является сущностью, то есть важным объектом или явлением, информация
о котором должна храниться в базе данных.
Список проверочных вопросов для сущности:
- Отражает ли имя сущности суть данного объекта?
- Нет ли пересечения с другими сущностями?
- Имеются ли хотя бы два атрибута?
- Всего атрибутов не более восьми?
- Есть ли синонимы/омонимы данной сущности?
- Сущность определена полностью?
- Есть ли уникальный идентификатор?
- Имеется ли хотя бы одна связь?
- Существует ли хотя бы одна функция по созданию, поиску, корректировке,
удалению, архивированию и использованию значения сущности? - Ведется ли история изменений?
- Имеет ли место соответствие принципам нормализации данных?
- Нет ли такой же сущности в другой прикладной системе, возможно, под другим
именем? - Не имеет ли сущность слишком общий смысл?
- Достаточен ли уровень обобщения, воплощенный в ней?
Список проверочных вопросов для подтипа:
- Отсутствуют ли пересечения с другими подтипами?
- Имеет ли подтип какие-нибудь атрибуты и/или связи?
- Имеют ли они все свои собственные уникальные идентификаторы или наследуют
один на всех от супертипа? - Имеется ли исчерпывающий набор подтипов?
- Не является ли подтип примером вхождения сущности?
- Знаете ли вы какие-нибудь атрибуты, связи и условия, отличающие данный
подтип от других?
Качество атрибутов
Следует выяснить, а действительно ли это атрибуты, то есть описывают ли они
тем или иным образом данную сущность.
Список проверочных вопросов для атрибута:
- Является ли наименование атрибута существительным единственного числа,
отражающим суть обозначаемого атрибутом свойства? - Не включает ли в себя наименование атрибута имя сущности (этого быть не
должно)? - Имеет ли атрибут только одно значение в каждый момент времени?
- Отсутствуют ли повторяющиеся значения (или группы)?
- Описаны ли формат, длина, допустимые значения, алгоритм получения и т.п.?
- Не может ли этот атрибут быть пропущенной сущностью, которая пригодилась
бы для другой прикладной системы (уже существующей или предполагаемой)? - Не может ли он быть пропущенной связью?
- Нет ли где-нибудь ссылки на атрибут как на «особенность проекта», которая
при переходе на прикладной уровень должна исчезнуть? - Есть ли необходимость в истории изменений?
- Зависит ли его значение только от данной сущности?
- Если значение атрибута является обязательным, всегда ли оно известно?
- Есть ли необходимость в создании домена для этого и ему подобных атрибутов?
- Зависит ли его значение только от какой-то части уникального идентификатора?
- Зависит ли его значение от значений некоторых атрибутов, не включенных
в уникальный идентификатор?
Качество связи
Нужно выяснить, отражают ли связи действительно важные отношения, наблюдаемые
между сущностями.
Список проверочных вопросов для связи:
- Имеется ли ее описание для каждой участвующей стороны, точно ли оно отражает
содержание связи и вписывается ли в принятый синтаксис? - Участвуют ли в ней только две стороны?
Не является ли связь переносимой?
- Заданы ли степень связи и обязательность для каждой стороны?
- Допустима ли конструкция связи?
Не относится ли конструкция связи к редко используемым?
- Не является ли она избыточной?
- Не изменяется ли она с течением времени?
- Если связь обязательная, всегда ли она отражает отношение к сущности, представляющей
противоположную сторону?
Для исключающей связи:
- Все ли концы связей, покрываемые исключающей дугой, имеют один и тот же
тип обязательности? - Все ли из них относятся к одной и той же сущности?
- Обычно дуги пересекают разветвляющиеся концы — что вы можете сказать о
данном случае? - Связь может покрываться только одной дугой. Так ли это?
- Все ли концы связей, покрываемые дугой, входят в уникальный идентификатор?
Функции системы
Часто аналитикам приходится описывать достаточно сложные бизнес-процессы. В
этом случае прибегают к функциональной декомпозиции, которая показывает разбиение
одного процесса на ряд более мелких функций до тех пор, пока каждую из них уже
нельзя будет разбить без ущерба для смысла. Конечный продукт декомпозиции представляет
собой иерархию функций, на самом нижнем уровне которой находятся атомарные с
точки зрения смысловой нагрузки функции. Приведем простой пример (рис.
15) такой декомпозиции. Рассмотрим простейшую задачу выписки счета клиенту
при отпуске товара со склада при условии, что набор товаров, которые хочет приобрести
клиент, уже известен (не будем рассматривать в данном примере задачу выбора
товаров).
Очевидно, что операция выбора и расчета скидок может быть также разбита на более
мелкие операции, например на расчет скидок за приверженность (клиент покупает
товары в течение долгого времени) и на расчет скидок за количество покупаемого
товара. Атомарные функции описываются подробно, например с помощью DFD и STD.
Очевидно, что такое описание функций не исключает и дополнительное словесное
описание (например, комментарии).
Следует отметить, что на этапе анализа следует уделить внимание функциям анализа
и обработки возможных ошибок и отклонений от предполагаемого эталона работы
системы. Следует выделить наиболее критичные для работы системы процессы и обеспечить
для них особенно строгий анализ ошибок. Обработка ошибок СУБД (коды возврата),
как правило, представляет собой обособленный набор функций или одну-единственную
функцию.
Уточнение стратегии
На этапе анализа происходит уточнение выбранных для конечной реализации аппаратных
и программных средств. Для этого могут привлекаться группы тестирования, технические
специалисты. При проектировании информационной системы важно учесть и дальнейшее
развитие системы, например рост объемов обрабатываемых данных, увеличение интенсивности
потока запросов, изменение требований надежности информационной системы.
На этапе анализа определяются наборы моделей задач для получения сравнительных
характеристик тех или иных СУБД, которые рассматривались на этапе определения
стратегии для реализации информационной системы. На этапе определения стратегии
может быть осуществлен выбор одной СУБД. Данных о системе на этапе анализа уже
намного больше, и они более подробны. Полученные данные, а также характеристики,
переданные группами тестирования, могут показать, что выбор СУБД на этапе определения
стратегии был неверным и что выбранная СУБД не может удовлетворять тем или иным
требованиям информационной системы. Такие же данные могут быть получены относительно
выбора аппаратной платформы и операционной системы. Получение подобных результатов
инициирует изменение данных, полученных на этапе определения стратегии, например
пересчитывается смета затрат на проект.
Выбор средств разработки также уточняется на этапе анализа. В силу того что
этап анализа дает более полное представление об информационной системе, чем
оно было на этапе определения стратегии, план работ может быть скорректирован.
Если выбранное на предыдущем этапе средство разработки не позволяет выполнить
ту или иную часть работ в заданный срок, то принимается решение об изменении
сроков (как правило, это увеличение срока разработки) или о смене средства разработки.
Осуществляя выбор тех или иных средств, следует учитывать наличие высококвалифицированного
персонала, который владеет выбранными средствами разработки, а также наличие
администраторов выбранной СУБД. Эти рекомендации также будут уточнять данные
этапа выбора стратегии (совокупность условий, при которых предполагается эксплуатировать
будущую систему).
Уточняются также ограничения, риски, критические факторы. Если какие-либо требования
не могут быть удовлетворены в информационной системе, реализованной с использованием
СУБД и программных средств, выбранных на этапе определения стратегии, то это
также инициирует уточнение и изменение получаемых данных (в конечном итоге сметы
затрат и планов работ, а возможно, и изменение требований заказчика к системе,
например их ослабление). Более подробно описываются те возможности, которые
не будут реализованы в системе.
КомпьютерПресс 9’2001