5fan_ru_Информационные системы. Курс лекций. Лекция 2 Модели жизненного цикла информационных систем 8 Основные процессы жизненного цикла 9 Вспомогательные процессы 9
Скачать 496.5 Kb.
|
Язык визуального моделирования (UML)13 января 1997 года вышла версия 1.0 нового объединенного языка объектно-ориентированного моделирования Unified Modeling Language, созданного по запросу Object Management Group (OMG) - организации, ответственной за принятие стандартов в области объектных технологий и баз данных. После обсуждения, версия 1.1 UML в сентябре 1997 года представлена на голосование в OMG. Мир информационных технологий ждет результатов голосования, но формальности здесь уже не так важны, поскольку этот язык объектно-ориентированного моделирования уже фактически стал стандартом. Разработку UML поддержали и уже используют в качестве стандартов такие гранды рынка информационных технологий, как Microsoft, IBM, Hewlett-Packard, Oracle, DEC, Sybase, Logic Works и множество других. Начиная с середины 60-х годов и до недавнего времени, широкое распространение получили структурные методологии анализа, проектирования и разработки информационных систем, которые характеризуются искусственным разделением (часто неоптимальным) системы на подсистемы, а также слабой взаимосвязью процессов и данных, присутствующих в системе. В отличие от них, объектные технологии, ориентированные на тесную взаимосвязь процессов и данных системы, позволяют программным системам быть более надежными, легко реализуемыми и устойчивыми к изменениям. Кроме того, такая философия моделирования наиболее соответствует общим концепциям поведения систем реального мира. Несмотря на явное преимущество объектно-ориентированных технологий анализа и проектирования перед структурными, их распространение было незначительным, поскольку ни один из методов не давал единой и цельной объектной модели системы. Каждый метод хорошо освещал одну или несколько сторон реальной системы, оставляя в тени множество других, не менее важных сторон. Кроме того, отсутствие единого стандарта очень мешало широкому распространению объектно-ориентированных методов при разработке программного обеспечения. В течение 1994-96 годов создатели трех наиболее распространенных методологий - Гради Буч (BOOCH), Джим Рамбо (OMT - Object Modeling Technique) и Айвар Якобсон (OOSE - Object Oriented Software Engineering) объединили свои усилия под эгидой Rational Software Corporation на создание единого языка моделирования, который объединил бы все существенные и успешные разработки в данной области и стал бы стандартом языка объектного моделирования. Грандиозный труд, в котором наряду с Rational участвовали представители множества компаний, таких, как Microsoft, IBM, Hewlett-Packard, Oracle, DEC, Unisys, IntelliCorp, Platinum Technology и нескольких сотен других завершился созданием в январе 1997 года версии 1.0 Объединенного Языка Моделирования - Unified Modeling Language (UML), которая после бурного обсуждения в течение 1997 года превратилась в сентябре в версию 1.1 и была передана в OMG для принятия UML в качестве отраслевого стандарта расширяемого языка объектного моделирования. OMG - некоммерческая международная организация, в которую входят более 600 ведущих мировых компаний и отвечающая за принятие стандартов в области информационных технологий. Теперь же пришло время для стандарта расширяемого языка визуального моделирования, и, учитывая огромный успех UML в мире, мало кто сомневается в его скором принятии. UML может быть применен на всех этапах жизненного цикла анализа бизнес-систем и разработки приложений. Различные виды диаграмм, поддерживаемые UML, и богатейший набор возможностей представления определенных аспектов системы делает UML универсальным средством описания как программных, так и деловых систем. Диаграммы дают возможность представить систему (как деловую, так и программную) в таком виде, чтобы ее можно было легко перевести в программный код. Кроме того ,UML специально создавался для оптимизации процесса разработки программных систем, что позволяет увеличить эффективность реализации программных систем в несколько раз и заметно улучшить качество конечного продукта. Несмотря на свою молодость, UML уже прекрасно зарекомендовал себя на множестве успешных программных проектов. Средства автоматической кодогенерации позволяют переводить модели на языке UML в исходный код объектно-ориентированных языков программирования, что еще более ускоряет процесс разработки. Практически все мировые производители CASE-средств заявили о реализации поддержки UML в ближайших версиях своих продуктов. Но уже сегодня существуют множество CASE-средств, автоматизирующих процесс анализа и проектирования в UML (Rational Rose, Paradigm Plus, Select Enterprise, Microsoft Visual Modeler for Visual Basic и др.), поддерживающих множество языков программирования, таких, как C++, Java, Delphi, Power Builder, Visual Basic, Centura, Forte, Ada, Smalltalk, а также позволяющих осуществлять генерацию базы данных для большинства из существующих SQL-серверов. Модели, разработанные в UML, позволяют значительно упростить процесс кодирования и направить усилия программистов непосредственно на реализацию системы. Диаграммы повышают сопровождаемость проекта и облегчают разработку документации к программной системе. UML необходим: руководителям проектов, которые управляют распределением задач и контролем за проектом; проектировщикам информационных систем, которые разрабатывают технические задания для программистов; бизнес-аналитикам, обследующим реальную систему и проводящим инжиниринг и реинжиниринг бизнеса компании; программистам, которые реализуют модули информационной системы. При модификации системы объектный подход позволяет легко включать в систему новые объекты и исключать устаревшие без существенного изменения ее жизнеспособности. Использование построенной модели при модификациях системы дает возможность устранить нежелательные последствия изменений, поскольку они не ломают устоявшейся структуры системы, а только изменяют поведение объектов. Язык UML представляет собой общецелевой язык визуального моделирования, который разработан для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения, бизнес-процессов и других систем. Язык UML одновременно является простым и мощным средством моделирования, который может быть эффективно использован для построения концептуальных, логических и графических моделей сложных систем самого различного целевого назначения. Этот язык вобрал в себя наилучшие качества методов программной инженерии, которые с успехом использовались на протяжении последних лет при моделировании больших и сложных систем. Язык UML основан на некотором числе базовых понятий, которые могут быть изучены и применены большинством программистов и разработчиков, знакомых с методами объектно-ориентированного анализа и проектирования. При этом базовые понятия могут комбинироваться и расширяться таким образом, что специалисты объектного моделирования получают возможность самостоятельно разрабатывать модели больших и сложных систем в самых различных областях приложений. Конструктивное использование языка UML основывается на понимании общих принципов моделирования сложных систем и особенностей процесса объектно-ориентированного анализа и проектирования в частности. Выбор выразительных средств для построения моделей сложных систем предопределяет те задачи, которые могут быть решены с использованием данных моделей. При этом одним из основных принципов построения моделей сложных систем является принцип абстрагирования, который предписывает включать в модель только те аспекты проектируемой системы, которые имеют непосредственное отношение к выполнению системой своих функций или своего целевого предназначения. При этом все второстепенные детали опускаются, чтобы чрезмерно не усложнять процесс анализа и исследования полученной модели. Другим принципом построения моделей сложных систем является принцип многомодельности. Этот принцип представляет собой утверждение о том, что никакая единственная модель не может с достаточной степенью адекватности описывать различные аспекты сложной системы. Применительно к методологии ООАП это означает, что достаточно полная модель сложной системы допускает некоторое число взаимосвязанных представлений (views), каждое из которых адекватно отражает некоторый аспект поведения или структуры системы. При этом наиболее общими представлениями сложной системы принято считать статическое и динамическое представления, которые в свою очередь могут подразделяться на другие более частные представления.) феномен сложной системы как раз и состоит в том, что никакое ее единственное представление не является достаточным для адекватного выражения всех особенностей моделируемой системы. Еще одним принципом прикладного системного анализа является принцип иерархического построения моделей сложных систем. Этот принцип предписывает рассматривать процесс построения модели на разных уровнях абстрагирования или детализации в рамках фиксированных представлений. При этом исходная или первоначальная модель сложной системы имеет наиболее общее представление (метапредставление). Такая модель строится на начальном этапе проектирования и может не содержать многих деталей и аспектов моделируемой системы. Язык UML предназначен для решения следующих задач: Предоставить в распоряжение пользователей легко воспринимаемый и выразительный язык визуального моделирования, специально предназначенный для разработки и документирования моделей сложных систем самого различного целевого назначения. Речь идет о том, что важным фактором дальнейшего развития и повсеместного использования методологии ООАП является интуитивная ясность и понятность основных конструкций соответствующего языка моделирования. Язык UML включает в себя не только абстрактные конструкции для представления метамоделей систем, но и целый ряд конкретных понятий, имеющих вполне определенную семантику. Это позволяет языку UML одновременно достичь не только универсальности представления моделей для самых различных приложений, но и возможности описания достаточно тонких деталей реализации этих моделей применительно к конкретным системам. Практика системного моделирования показала, что абстрактного описания языка на некотором метауровне недостаточно для разработчиков, которые ставят своей целью реализацию проекта системы в конкретные сроки. В настоящее время имеет место некоторый концептуальный разрыв между общей методологией моделирования сложных систем и конкретными инструментальными средствами быстрой разработки приложений. Именно этот разрыв по замыслу OMG и призван заполнить язык UML. Отсюда вытекает важное следствие - для адекватного понимания базовых конструкций языка UML важно не только владеть некоторыми навыками объектно-ориентированного программирования, но и хорошо представлять себе общую проблематику процесса разработки моделей систем. Именно интеграция этих представлений образует новую парадигму ООАП, практическим следствием и центральным стержнем которой является язык UML. Снабдить исходные понятия языка UML возможностью расширения и специализации для более точного представления моделей систем в конкретной предметной области. Хотя язык UML является формальным языком - спецификаций, формальность его описания отличается от синтаксиса как традиционных формально-логических языков, так и известных языков программирования. Разработчики из OMG предполагают, что язык UML как никакой другой может быть приспособлен для конкретных предметных областей. Это становится возможным по той причине, что в самом описании языка UML заложен механизм расширения базовых понятий, который является самостоятельным элементом языка и имеет собственное описание в форме правил расширения. В то же время разработчики из OMG считают крайне нежелательным переопределение базовых понятий языка по какой бы то ни было причине. Это может привести к неоднозначной интерпретации их семантики и возможной путанице. Базовые понятия языка UML не следует изменять больше, чем это необходимо для их расширения. Все пользователи должны быть способны строить модели систем для большинства обычных приложений с использованием только базовых конструкций языка UML без применения механизма расширения. При этом новые понятия и нотации целесообразно применять только в тех ситуациях, когда имеющихся базовых понятий явно недостаточно для построения моделей системы. Язык UML допускает также специализацию базовых понятий. Речь идет о том, что в конкретных7 приложениях пользователи должны уметь дополнять имеющиеся базовые понятия новыми характеристиками или свойствами, которые не противоречат семантике этих понятий в языке UML. Описание языка UML должно поддерживать такую спецификацию моделей, которая не зависит от конкретных языков программирования и инструментальных средств проектирования программных систем. Речь идет о том, что ни одна из конструкций языка UML не должна зависеть от особенностей ее реализации в известных языках программирования. То есть, хотя отдельные понятия языка UML и связаны с последними очень тесно, их жесткая интерпретация в форме каких бы то ни было конструкций программирования не может быть признана корректной. Другими словами, разработчики из OMG считают необходимым свойством языка UML его контекстно-программную независимость. С другой стороны, язык UML должен обладать потенциальной возможностью реализации своих конструкций на том или ином языке программирования. Конечно, в первую очередь имеются в виду языки, поддерживающие концепцию ООП, такие как C++, Java, Object Pascal. Именно это свойство языка UML делает его современным средством решения задач моделирования сложных систем. В то же время, предполагается, что для программной поддержки конструкций языка UML могут быть разработаны специальные инструментальные CASE-средства. Наличие последних имеет принципиальное значение для широкого распространения и использования языка UML. Описание языка UML должно включать в себя семантический базис для понимания общих особенностей ООАП. Говоря об этой особенности, имеют в виду самодостаточность языка UML для понимания не только его базовых конструкций, но что не менее важно - понимания общих принципов ООАП. В этой связи необходимо отметить, что поскольку язык UML не является языком программирования, а служит средством для решения задач объектно-ориентированного моделирования систем, описание языка UML должно по возможности включать в себя все необходимые понятия для ООАП. Без этого свойства язык UML может оказаться бесполезным и невостребованным большинством пользователей, которые не знакомы с проблематикой ООАП сложных систем. С другой стороны, какие бы то ни было ссылки на дополнительные источники, содержащие важную для понимания языка UML информацию, по мнению разработчиков из OMG, должны быть исключены. Это позволит избежать неоднозначного толкования принципиальных особенностей процесса ООАП и их реализации в форме базовых конструкций языка UML. Поощрять развитие рынка объектных инструментальных средств. Более 800 ведущих производителей программных и аппаратных средств, усилия которых сосредоточены в рамках OMG, видят перспективы развития современных информационных технологий и основу своего коммерческого успеха в широком продвижении на рынок инструментальных средств, поддерживающих объектные технологии. Говоря же об объектных технологиях, разработчики из OMG имеют в виду, прежде всего, совокупность технологических решений CORBA и UML. С этой точки зрения языку UML отводится роль базового средства для описания и документирования различных объектных компонентов CORBA. Способствовать распространению объектных технологий и соответствующих понятий ООАП. Эта задача тесно связана с предыдущей и имеет с ней много общего. Если исключить из рассмотрения рекламные заявления разработчиков об исключительной гибкости и мощности языка UML, а попытаться составить объективную картину возможностей этого языка, то можно прийти к следующему заключению. Следует признать, что усилия достаточно большой группы разработчиков были направлены на интеграцию в рамках языка UML многих известных техник визуального моделирования, которые успешно зарекомендовали себя на практике (см. главу 2). Хотя это привело к усложнению языка UML по сравнению с известными нотациями структурного системного анализа, платой за сложность являются действительно высокая гибкость и изобразительные возможности уже первых версий языка UML. В свою очередь, использование языка UML для решения всевозможных практических задач будет только способствовать его дальнейшему совершенствованию, а значит и дальнейшему развитию объектных технологий и практики ООАП. Интегрировать в себя новейшие и наилучшие достижения практики ООАП. Язык UML непрерывно совершенствуется разработчиками, и основой этой работы является его дальнейшая интеграция с современными модельными технологиями. При этом различные методы системного моделирования получают свое прикладное осмысление в рамках ООАП. В последующем эти методы могут быть включены в состав языка UML в форме дополнительных базовых понятий, наиболее адекватно и полно отражающие наилучшие достижения практики ООАП. Чтобы решить указанные выше задачи, за свою недолгую историю язык UML претерпел определенную эволюцию. В результате описание самого языка UML стало нетривиальным, поскольку семантика базовых понятий включает в себя целый ряд перекрестных связей с другими понятиями и конструкциями языка. В связи с этим так называемое линейное или последовательное рассмотрение основных конструкций языка UML стало практически невозможным, т. к. одни и те же понятия могут использоваться при построении различных диаграмм или представлений. В то же время каждое из представлений модели обладает собственными семантическими особенностями, которые накладывают отпечаток на семантику базовых понятий языка в целом. |