Методологии и средства разработки ИС
Разработка сложных информационных систем (ИС) таких, какими являются ИС административно-управленческой деятельности предприятий (организаций, учреждений и т.д.; в дальнейшем ИС предприятий), невозможна без тщательно обдуманного методологического подхода. Какие этапы необходимо пройти, какие методы и средства использовать, как организовать контроль за продвижением проекта и качеством выполнения работ – эти и другие вопросы решаются методологиями программной инженерии.
В настоящее время существует ряд общих методологий разработки ИС. Главное в них – единая дисциплина работы на всех этапах жизненного цикла системы, учет критических задач и контроль их решения, применение развитых инструментальных средств поддержки процессов анализа, проектирования и реализации ИС.
Для различных классов систем используются разные методы разработки, определяемые типом создаваемой системы и средствами реализации. Спецификации этих систем, в большинстве случаев, состоят из двух основных компонентов – функционального и информационного. По способу сочетания этих компонентов подходы к представлению информационных систем можно разбить на два основных типа – структурный и объектно-ориентированный.
В области создания систем автоматизации административно-управленческой деятельности доминируют структурные подходы, так как они максимально приспособлены для взаимодействия с пользователями (заказчиками), не являющимися специалистами в области информационных технологий. Адекватными инструментальными средствами, поддерживающими структурный подход к созданию информационных систем, являются так называемые CASE-системы автоматизации проектирования.
Основополагающая концепция состоит в построении совокупности логических моделей предметной области при помощи графических методов структурного анализа, которые дали бы возможность пользователям, аналитикам и разработчикам получить ясную общую картину проекта, а также обеспечили бы естественный переход к логической модели будущей ИС.
Аналитик должен определить, что является в настоящее время возможным с точки зрения технологии обработки данных и что стоит делать для данного конкретного предприятия.
Осуществление такого выбора, который был бы приемлемым для всех групп и выдержал бы проверку временем, – наиболее трудноразрешимая задача на этапе системного анализа. Если выполнить эту задачу наилучшим образом, то независимо от того, насколько трудным окажется проектирование и разработка, созданная система будет удовлетворять требованиям данного предприятия. Если же задача будет выполнена неудовлетворительно, то не имеет значения насколько хорошо пройдет реализация, так как созданная система не будет являться тем, что действительно необходимо данному предприятию, и затраты превзойдут полученные преимущества.
Структурный анализ как совокупность методов постановки задач проектирования информационных систем, ввиду значительной размерности решаемых задач, сам должен опираться на мощные средства компьютерной поддержки, обеспечивающей автоматизацию труда системных аналитиков. Такими средствами являются CASE-системы.
За последние несколько лет сформировалось новое направление в программотехнике – CASE (Computer Aided System/Software Engineering). Хотя в настоящее время не существует общепринятого определения CASE и содержание этого понятия обычно определяется перечнем решаемых задач, а также совокупностью применяемых методов и средств, можно сказать, что CASE представляет собой совокупность методологий анализа, разработки и сопровождения сложных систем (в основном систем программного обеспечения АСУ), поддержанную комплексом взаимосвязанных средств автоматизации. CASE – это инструментарий для системных аналитиков и программистов, позволяющий автоматизировать процессы анализа, проектирования и реализации систем.
К настоящему моменту дисциплина CASE оформилась в самостоятельное наукоемкое направление, повлекшее за собой образование мощной CASE-индустрии, объединившей сотни фирм различной ориентации.
CASE – наиболее динамично развиваемое направление в программотехнике. Практически ни один серьезный американский или японский программный проект не осуществляется без использования CASE-средств. Известная методология структурного системного анализа SADT – Structured Analysis and Design Technique (точнее ее подмножество IDEF0) принята в качестве стандарта на разработку средств программного обеспечения Министерством обороны США. Более того, среди менеджеров и руководителей компьютерных фирм считается чуть ли не правилом хорошего тона знать основы SADT и при обсуждении каких-либо вопросов нарисовать простейшую диаграмму, поясняющую суть дела.
Архитектура большинства CASE-средств основана на парадигме “методология – метод – нотация – средство”. Методология определяет критерии для оценки и выбора проекта создаваемой системы, этапы работы и их последовательность, а также правила распределения и назначения методов. Методы – это систематические процедуры, применяемые для генерации описаний подсистем и функциональных компонентов системы с использованием соответствующих нотаций. Нотации предназначены для представления проектных данных о структуре системы и способах ее функционирования, процессах, информационных потоках, накопителях и т.д. Средства – инструментарий для поддержки и усиления методов. Инструментальные средства поддерживают работу аналитиков при реализации проекта в сетевом интерактивном режиме, они способствуют организации проекта, обеспечивают управление процессами анализа и проектирования.
Жизненный цикл ИС
Одним из базовых понятий методологии проектирования ИС является понятие жизненного цикла ее программного обеспечения (ЖЦ ПО). ЖЦ ПО - это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации.
Основным нормативным документом, регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 (ISO - International Standardization Organization - Международная организация по стандартизации, IEC - International Electrotechnical Commission - Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО.
Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:
- основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);
- вспомогательные процессы, обеспечивающие выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, решение проблем);
- организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение).
Разработка включает в себя все работы по созданию ПО и его компонент в соответствии с заданными требованиями, в том числе оформление проектной и эксплуатационной документации, подготовку материалов, необходимых для проверки работоспособности и соответствующего качества программных продуктов, материалов, необходимых для организации обучения персонала и так далее. Разработка ПО включает в себя, как правило, анализ, проектирование и реализацию (программирование).
Эксплуатация включает в себя работы по внедрению компонентов ПО в эксплуатацию, в том числе конфигурирование базы данных и рабочих мест пользователей, обеспечение эксплуатационной документацией, проведение обучения персонала и т.д., и непосредственно эксплуатацию, в том числе локализацию проблем и устранение причин их возникновения, модификацию ПО в рамках установленного регламента, подготовку предложений по совершенствованию, развитию и модернизации системы.
Управление проектом связано с вопросами планирования и организации работ, создания коллективов разработчиков и контроля за сроками и качеством выполняемых работ. Техническое и организационное обеспечение проекта включает выбор методов и инструментальных средств для реализации проекта, определение методов описания промежуточных состояний разработки, разработку методов и средств испытаний ПО, обучение персонала и тому подобное. Обеспечение качества проекта связано с проблемами верификации, проверки и тестирования ПО. Верификация - это процесс определения того, отвечает ли текущее состояние разработки, достигнутое на данном этапе, требованиям этого этапа. Проверка позволяет оценить соответствие параметров разработки с исходными требованиями. Проверка частично совпадает с тестированием, которое связано с идентификацией различий между действительными и ожидаемыми результатами и оценкой соответствия характеристик ПО исходным требованиям. В процессе реализации проекта важное место занимают вопросы идентификации, описания и контроля конфигурации отдельных компонентов и всей системы в целом.
Управление конфигурацией является одним из вспомогательных процессов, поддерживающих основные процессы жизненного цикла ПО, прежде всего, процессы разработки и сопровождения ПО. При создании проектов сложных ИС, состоящих из многих компонентов, каждый из которых может иметь разновидности или версии, возникает проблема учета их связей и функций, создания унифицированной структуры и обеспечения развития всей системы. Управление конфигурацией позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях ЖЦ.
Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными на предыдущем этапе, и результатами. Результатами анализа, в частности, являются функциональные модели, информационные модели и соответствующие им диаграммы. ЖЦ ПО носит итерационный характер: результаты очередного этапа часто вызывают изменения в проектных решениях, выработанных на более ранних этапах.
Стандарт ISO/IEC 12207 не предлагает конкретную модель ЖЦ и методы разработки ПО. (Под моделью ЖЦ понимается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на протяжении ЖЦ. Модель ЖЦ зависит от специфики ИС и специфики условий, в которых последняя создается и функционирует). Его регламенты являются общими для любых моделей ЖЦ, методологий и технологий разработки. Стандарт ISO/IEC 12207 описывает структуру процессов ЖЦ ПО, но не конкретизирует в деталях, как реализовать или выполнить действия и задачи, включенные в эти процессы.
К настоящему времени наибольшее распространение получили следующие две основные модели ЖЦ:
- каскадная модель (1970-1985);
- спиральная модель (1986-2000).
В изначально существовавших однородных ИС каждое приложение представляло собой единое целое. Для разработки такого типа приложений применялся каскадный способ. Его основной характеристикой является разбиение всей разработки на этапы, причем переход с одного этапа на следующий происходит только после того, как будет полностью завершена работа на текущем (рис. 5). Каждый этап завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Положительные стороны применения каскадного подхода заключаются в следующем:
- на каждом этапе формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;
- выполняемые в логической последовательности этапы работ позволяют планировать сроки завершения всех работ и соответствующие затраты.
Рис. 5. Каскадная модель ЖЦ
Каскадный подход хорошо зарекомендовал себя при построении ИС, для которых в самом начале разработки можно достаточно точно и полно сформулировать все требования, с тем чтобы предоставить разработчикам свободу реализовать их как можно лучше с технической точки зрения. В эту категорию попадают сложные расчетные системы, системы реального времени и другие подобные задачи. Однако в процессе использования этого подхода обнаружился ряд его недостатков, вызванных прежде всего тем, что реальный процесс создания ПО никогда полностью не укладывался в такую жесткую схему. В процессе создания ПО постоянно возникала потребность в возврате к предыдущим этапам и уточнении или пересмотре ранее принятых решений. В результате реальный процесс создания ПО принимал следующий вид (рис. 6):
Рис. 6. Каскадная модель с возвратами.
Основным недостатком каскадного подхода является существенное запаздывание с получением результатов. Согласование результатов с пользователями производится только в точках, планируемых после завершения каждого этапа работ, требования к ИС "заморожены" в виде технического задания на все время ее создания. Таким образом, пользователи могут внести свои замечания только после того, как работа над системой будет полностью завершена. В случае неточного изложения требований или их изменения в течение длительного периода создания ПО пользователи получают систему, не удовлетворяющую их потребностям. Модели (как функциональные, так и информационные) автоматизируемого объекта могут устареть одновременно с их утверждением.
Для преодоления перечисленных проблем была предложена спиральная модель ЖЦ (рис. 7), делающая упор на начальные этапы ЖЦ: анализ и проектирование. На этих этапах реализуемость технических решений проверяется путем создания прототипов. Каждый виток спирали соответствует созданию фрагмента или версии ПО, на нем уточняются цели и характеристики проекта, определяется его качество и планируются работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.
Рис. 7. Спиральная модель ЖЦ
Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем. При итеративном способе разработки недостающую работу можно будет выполнить на следующей итерации. Главная же задача - как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Основная проблема спирального цикла - определение момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
Главная особенность современной индустрии ИС состоит в концентрации усилий на двух начальных этапах ее жизненного цикла - анализе и проектировании, при относительно невысокой сложности и трудозатратах на последующих этапах. Рассмотрим этап анализа более подробно.
Структурный анализ
Анализ является первым этапом создания ИС, на котором требования заказчика уточняются, формализуются и документируются. Фактически на этом этапе дается ответ на вопрос: “Что должна делать будущая система?”. Именно здесь лежит ключ к успеху всего проекта.
Целью анализа является преобразование общих, расплывчатых знаний об исходной предметной области в точные определения и спецификации, а также генерация функционального описания системы. На этом этапе специфицируются:
– внешние условия работы системы;
– функциональная структура системы;
– распределение функций между человеком и системой, интерфейсы;
– требования к техническим, информационным и программным компонентам системы;
– условия эксплуатации.
Разработка перечисленных выше спецификаций при создании ИС, предназначенной для автоматизации управленческих процессов, в общем случае, проходит четыре стадии.
Структурный анализ начинается с исследования того, как организована система управления предприятием, с обследования функциональной и информационной структуры системы управления. По результатам обследования аналитик на первой стадии анализа строит обобщенную логическую модель исходной предметной области, отображающую ее функциональную структуру, особенности основной деятельности и информационное пространство, в котором эта деятельность осуществляется. Используя специальную терминологию, можно сказать, что аналитик строит модель “как есть”.
Вторая стадия работы, к которой привлекаются заинтересованные представители заказчика, а при необходимости и независимые эксперты, состоит в анализе модели “как есть”, выявлении ее недостатков и узких мест, определении путей совершенствования системы управления на основе выделенных критериев качества.
Третья стадия анализа, содержащая элементы проектирования, – создание усовершенствованной обобщенной логической модели, отображающей реорганизованную предметную область или ее часть, которая подлежит автоматизации. Эту модель можно назвать моделью “как надо”.
Заканчивается процесс разработкой “карты автоматизации”, представляющей собой модель реорганизованной предметной области, на которой обозначены “границы автоматизации”.
Следует отметить, что на практике предложенную общую схему структурного анализа и проектирования, включающую стадию планирования реорганизованной деятельности предприятия, приходится встречать крайне редко. Такую работу могут выполнить для заказчиков лишь крупные, специализированные консалтинговые фирмы, способные подключить к работе специалистов - экспертов в той области деятельности, которая подлежит автоматизации. В большинстве случаев модель “как есть” улучшается системным аналитиком за счет устранения очевидных несоответствий и узких мест, а полученный таким образом вариант модели рассматривается в дальнейшем в качестве модели “как надо”.
Основным документом, отражающим результаты работ первого этапа создания ИС, является техническое задание на проект (разработку), содержащее, кроме вышеперечисленных определений и спецификаций, также сведения об очередности создания системы, сведения о выделяемых ресурсах, директивных сроках проведения отдельных этапов работы, организационных процедурах и мероприятиях по приемке этапов, защите проектной информации и т.д.
Автоматизация систем управления является лишь одной, наиболее продвинутой задачей структурного анализа. Другими, не менее важными и самостоятельными по характеру получаемых результатов, являются задачи спецификации и реорганизации процессов, протекающих в системах управления, то есть то, что сейчас называют реинжинирингом бизнес-процессов. Очевидно, что целенаправленное решение именно этих задач в некоторых случаях может привести к результатам, дающим ощутимый экономический эффект без значительных инвестиций в сферу автоматизации предприятия.
Анализ предметной области является важнейшим этапом среди всех этапов жизненного цикла системы. Он оказывает существенное влияние на все последующие этапы, являясь в то же время наименее изученным и понятным процессом. На этом этапе, во-первых, необходимо понять, что предполагается сделать, а во-вторых, задокументировать выдвинутые предложения, так как если проектные требования не зафиксированы и не сделаны доступными для участников разработки, то они вроде бы и не существуют вовсе. При этом язык, на котором формулируются результаты анализа, должен быть достаточно прост и понятен заказчику.
Во многих аспектах системный анализ является наиболее трудной частью процесса создания системы. Проблемы, с которыми сталкивается системный аналитик, взаимосвязаны, и это является одной из главных причин их трудноразрешимости:
– аналитику сложно получить исчерпывающую информацию для оценки требований к системе с точки зрения заказчика;
– заказчик, в свою очередь, не имеет достаточной информации о проблеме обработки данных, чтобы судить, что является выполнимым, а что – нет;
– аналитик сталкивается с чрезмерным количеством подробных сведений о предметной области и о новой системе;
– спецификация системы из-за объема и технических терминов непонятна для заказчика;
– в случае понятности спецификации для заказчика она будет недостаточной для разработчиков, создающих систему.
Решение этих проблем может быть существенно облегчено за счет применения современных структурных методов, среди которых центральное место занимают методологии структурного анализа.
Структурным анализом принято называть метод исследования системы с помощью ее графического модельного представления, которое начинается с общего обзора и затем детализируется, приобретая иерархическую структуру со все большим числом уровней. Для таких методов характерно: разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 9); ограниченный контекст, включающий лишь существенные на каждом уровне детали; дуальность данных и операций над ними; использование строгих формальных правил записи; последовательное приближение к конечному результату.
Все методологии структурного анализа базируются на ряде общих принципов, часть из которых регламентирует организацию работ на начальных этапах жизненного цикла. В качестве двух базовых принципов используются следующие: принцип декомпозиции и принцип иерархического упорядочения.
Выделение двух базовых принципов инженерии информационных систем не означает, что остальные принципы являются второстепенными. Отметим основные из них.
1. Принцип концептуальной общности - заключается в следовании единой философии на всех этапах жизненного цикла.
2. Принцип полноты - заключается в контроле на присутствие лишних элементов.
3. Принцип непротиворечивости - заключается в обоснованности и согласованности элементов системы.
4. Принцип абстрагирования - заключается в выделении существенных аспектов системы и отвлечении от несущественных с целью представления проблемы в более простом, общем виде.
5. Принцип упрятывания - заключается в упрятывании несущественной на конкретном этапе информации: каждая часть “знает” только необходимую ей информацию.
6. Принцип логической независимости - заключается в концентрации внимания на логическом описании системы, обеспечении независимости от ее физической реализации.
7. Принцип независимости данных - заключается в том, что модели данных могут быть проанализированы и спроектированы независимо от процессов их логической обработки, а также от их физической структуры и распределения.
Соблюдение указанных принципов необходимо при организации работ на начальных этапах жизненного цикла независимо от типа разрабатываемой ИС и используемой при этом методологии.
До разработки инструментария структурного системного анализа не было возможности показать лежащие в основе проекта логические функции и потребности системы, поскольку аналитик очень быстро утопал в деталях текущей или предполагаемой реализации проекта.
Сейчас для целей моделирования систем вообще, и структурного анализа в частности, используются три группы средств, отображающих:
– функции, которые система должна выполнять;
– процессы, обеспечивающие выполнение указанных функций;
– данные, используемые при выполнении функций, и отношения между этими данными.
Среди всего многообразия средств решения указанных задач в методологиях структурного анализа наиболее часто и эффективно применяемыми являются:
– FDD (Functional Decomposition Diagrams) – диаграммы функциональной декомпозиции;
– DFD (Data Flow Diagrams) – диаграммы потоков данных;
– ERD (Entity-Relationship Diagrams) – диаграммы “сущность-связь”.
Все они содержат графические и текстовые средства моделирования: первые – для удобства демонстрации основных компонентов модели и их связей, вторые – для обеспечения точного определения компонентов и связей.
При помощи этих средств строятся как логические модели исходной и реорганизованной систем управления, так и логическая модель автоматизированной системы управления – подробное описание того, что и как должна делать система, освобожденное, насколько это возможно, от рассмотрения путей реализации.
Источники:
1. Калянов Г. Н. Основы консалтинга при автоматизации предприятий и учреждений. Обзорный курс. Академия АйТи, 1988. Http://academy.it.ru/doc/consult-171.html.
2. А. М. Вендров. CASE-технологии. Современные методы и средства проектирования информационных систем. Http://www.citforum.ru/database/case/index.shtml.
Дата добавления: 2016-05-16; просмотров: 2506;